11MAX_DEPTH = 2
22
3- #class StatementGenerator(BaseGenerator):
3+ #class StatementGenerator(BaseGenerator):
44# def generate(self, depth): raise NotImplementedError
55
66######################################################################
@@ -12,7 +12,7 @@ def generate(self, depth): raise NotImplementedError
1212class BinaryExpression (ExpressionGenerator ):
1313 def __init__ (self , op ):
1414 self .op = op
15- def generate (self , depth ):
15+ def generate (self , depth ):
1616 exprs = list (MakeExpressionGenerator (depth + 1 ))
1717 for x in exprs :
1818 for y in exprs :
@@ -21,10 +21,10 @@ def generate(self, depth):
2121class UnaryExpression (ExpressionGenerator ):
2222 def __init__ (self , op ):
2323 self .op = op
24- def generate (self , depth ):
24+ def generate (self , depth ):
2525 for x in MakeExpressionGenerator (depth + 1 ):
2626 yield self .op + ' ' + x
27-
27+
2828class EmptyExpression (ExpressionGenerator ):
2929 def generate (self , depth ):
3030 yield ' '
@@ -40,7 +40,7 @@ def __init__(self, value):
4040 self .value = value
4141 def generate (self , depth ):
4242 yield self .value
43-
43+
4444class InvalidExpression (ExpressionGenerator ):
4545 def __init__ (self , value ):
4646 self .value = value
@@ -53,16 +53,16 @@ def __init__(self, trailingComma):
5353 def generate (self , depth ):
5454 subexprs = list (MakeExpressionGenerator (depth + 1 ))
5555 head = '('
56-
56+
5757 if self .trailingComma :
5858 tail = ', )'
5959 else :
6060 tail = ')'
61-
61+
6262 args3 = [x + ', ' + y + ', ' + z for x in subexprs for y in subexprs for z in subexprs ]
6363 args2 = [x + ', ' + y for x in subexprs for y in subexprs ]
6464 args1 = [x for x in subexprs ]
65-
65+
6666 yield head + tail
6767 for values in args1 + args2 + args3 :
6868 yield head + values + tail
@@ -75,19 +75,19 @@ def generate(self, depth):
7575 yield '(' + expr + ' for ' + target + ' in ' + inTest + ')'
7676 for cond in MakeExpressionGenerator (depth + 1 ):
7777 yield '(' + expr + ' for ' + target + ' in ' + inTest + ' if ' + cond + ')'
78-
78+
7979
8080class DictionaryDisplay (ExpressionGenerator ):
8181 def generate (self , depth ):
8282 subexprs = list (MakeExpressionGenerator (depth + 1 ))
83-
83+
8484 args = [x + ': ' + y for x in subexprs for y in subexprs ]
8585 yield '{}'
86-
86+
8787 for x in args :
8888 yield '{' + x + '}'
8989 yield '{' + x + ', }'
90-
90+
9191 for x , y in zip (args , args ):
9292 yield '{' + x + ', ' + y + '}'
9393 yield '{' + x + ', ' + y + ', }'
@@ -112,52 +112,52 @@ def generate(self, depth):
112112class SubscriptionExpression (object ):
113113 def generate (self , depth ):
114114 for expr in MakeExpressionGenerator (depth + 1 ):
115- for subscript in MakeExpressionGenerator (depth + 1 ):
115+ for subscript in MakeExpressionGenerator (depth + 1 ):
116116 yield expr + '[' + subscript + ']'
117117 yield expr + '[' + subscript + ', ]'
118118
119119 for expr in MakeExpressionGenerator (depth + 1 ):
120- for subscript in MakeExpressionGenerator (depth + 1 ):
121- for subscript2 in MakeExpressionGenerator (depth + 1 ):
120+ for subscript in MakeExpressionGenerator (depth + 1 ):
121+ for subscript2 in MakeExpressionGenerator (depth + 1 ):
122122 yield expr + '[' + subscript + ', ' + subscript2 + ']'
123123 yield expr + '[' + subscript + ', ' + subscript2 + ', ]'
124124
125125class SlicingExpression (object ):
126126 def generate (self , depth ):
127127 for expr in MakeExpressionGenerator (depth + 1 ):
128- for subscript in MakeExpressionGenerator (depth + 1 ):
128+ for subscript in MakeExpressionGenerator (depth + 1 ):
129129 yield expr + '[' + subscript + ':]'
130130 #yield expr + '[:' + subscript + ']'
131131 #yield expr + '[' + subscript + '::]'
132132 #yield expr + '[::' + subscript + ']'
133133
134134 for expr in MakeExpressionGenerator (depth + 1 ):
135- for subscript in MakeExpressionGenerator (depth + 1 ):
136- for subscript2 in MakeExpressionGenerator (depth + 1 ):
135+ for subscript in MakeExpressionGenerator (depth + 1 ):
136+ for subscript2 in MakeExpressionGenerator (depth + 1 ):
137137 yield expr + '[' + subscript + ': ' + subscript2 + ']'
138138 #yield expr + '[' + subscript + ', ' + subscript2 + ': ]'
139139 #yield expr + '[ :' + subscript + ', ' + subscript2 + ']'
140140
141141 for expr in MakeExpressionGenerator (depth + 1 ):
142- for subscript in MakeExpressionGenerator (depth + 1 ):
143- for subscript2 in MakeExpressionGenerator (depth + 1 ):
144- for subscript3 in MakeExpressionGenerator (depth + 1 ):
142+ for subscript in MakeExpressionGenerator (depth + 1 ):
143+ for subscript2 in MakeExpressionGenerator (depth + 1 ):
144+ for subscript3 in MakeExpressionGenerator (depth + 1 ):
145145 yield expr + '[' + subscript + ': ' + subscript2 + ':' + subscript3 + ']'
146146
147147class CallExpression (object ):
148148 def generate (self , depth ):
149149 for expr in MakeExpressionGenerator (depth + 1 ):
150- for subscript in MakeExpressionGenerator (depth + 1 ):
150+ for subscript in MakeExpressionGenerator (depth + 1 ):
151151 yield expr + '(' + subscript + ')'
152152 yield expr + '(' + subscript + ', )'
153153 yield expr + '(*' + subscript + ')'
154154 yield expr + '(**' + subscript + ', )'
155155 for name in MakeExpressionGenerator (depth + 1 ):
156- yield expr + '(' + name + ' = ' + subscript + ')'
156+ yield expr + '(' + name + ' = ' + subscript + ')'
157157
158158 for expr in MakeExpressionGenerator (depth + 1 ):
159- for subscript in MakeExpressionGenerator (depth + 1 ):
160- for subscript2 in MakeExpressionGenerator (depth + 1 ):
159+ for subscript in MakeExpressionGenerator (depth + 1 ):
160+ for subscript2 in MakeExpressionGenerator (depth + 1 ):
161161 yield expr + '(' + subscript + ', ' + subscript2 + ')'
162162 yield expr + '(' + subscript + ', ' + subscript2 + ', )'
163163 yield expr + '(*' + subscript + ', ' + subscript2 + ')'
@@ -209,7 +209,7 @@ def generate(self, depth):
209209class PassStatement (ExpressionGenerator ):
210210 def generate (self , depth ):
211211 yield 'pass\n '
212-
212+
213213class IfStatement (ExpressionGenerator ):
214214 def generate (self , depth ):
215215 for expr in MakeExpressionGenerator (0 ):
@@ -239,21 +239,21 @@ class ExpressionStatement(ExpressionGenerator):
239239 def generate (self , depth ):
240240 for expr in MakeExpressionGenerator (0 ):
241241 yield expr + '\n '
242-
242+
243243######################################################################
244244# Factories
245245
246246class BinaryMaker (object ):
247247 def __init__ (self , value ):
248- self .value = value
248+ self .value = value
249249 def __call__ (self ):
250250 return BinaryExpression (self .value )
251251 def __repr__ (self ):
252252 return 'BinaryMaker(' + repr (self .value ) + ')'
253253
254254class UnaryMaker (object ):
255255 def __init__ (self , value ):
256- self .value = value
256+ self .value = value
257257 def __call__ (self ):
258258 return UnaryExpression (self .value )
259259 def __repr__ (self ):
@@ -291,11 +291,11 @@ def __call__(self):
291291 def __repr__ (self ):
292292 return 'ParenthFormMaker(' + self .trailingComma + ')'
293293
294- identifier_exprs = [NameMaker ('foo' ), NameMaker ('...' ), NameMaker ('reallylongname' * 200 )] # NameMaker('_bar'),
294+ identifier_exprs = [NameMaker ('foo' ), NameMaker ('...' ), NameMaker ('reallylongname' * 200 )] # NameMaker('_bar'),
295295
296296expr_gens = identifier_exprs + \
297- [BinaryMaker ('+' ), BinaryMaker ('**' ), BinaryMaker ('<<' ), BinaryMaker ('&' ), BinaryMaker ('==' ), BinaryMaker ('>' ), BinaryMaker (' in ' ), # BinaryMaker('-'), BinaryMaker('|'), BinaryMaker('^'),
298- UnaryMaker ('~' ), UnaryMaker (' not ' ), # UnaryMaker('-'), UnaryMaker('+'),
297+ [BinaryMaker ('+' ), BinaryMaker ('**' ), BinaryMaker ('<<' ), BinaryMaker ('&' ), BinaryMaker ('==' ), BinaryMaker ('>' ), BinaryMaker (' in ' ), # BinaryMaker('-'), BinaryMaker('|'), BinaryMaker('^'),
298+ UnaryMaker ('~' ), UnaryMaker (' not ' ), # UnaryMaker('-'), UnaryMaker('+'),
299299 EmptyExpression ,
300300 GeneratorExpression ,
301301 DictionaryDisplay ,
@@ -304,7 +304,7 @@ def __repr__(self):
304304 SubscriptionExpression ,
305305 SlicingExpression ,
306306 ConstantMaker (1 ), ConstantMaker ('abc' ), ConstantMaker (1 ), ConstantMaker (1.0 ), ConstantMaker (1j ),
307- ParenthFormMaker (False ), ParenthFormMaker (True ),
307+ ParenthFormMaker (False ), ParenthFormMaker (True ),
308308 StringConversion ,
309309 YieldExpression ,
310310 InvalidMaker ('$' ), InvalidMaker ('@' ), InvalidMaker ('!' ), InvalidMaker ('\\ ' ), #InvalidMaker('\0'),
@@ -315,35 +315,35 @@ def __repr__(self):
315315
316316def MakeExpressionGenerator (depth ):
317317 """yields all possible expressions"""
318- if depth == MAX_DEPTH :
318+ if depth == MAX_DEPTH :
319319 yield '' # empty expr
320- else :
321- for exprGen in expr_gens :
320+ else :
321+ for exprGen in expr_gens :
322322 for value in exprGen ().generate (depth ):
323323 yield value
324324
325325def Indent (value , depth ):
326- if depth == 0 :
326+ if depth == 0 :
327327 return value
328328 indent = ' ' * depth
329329 return indent + value .replace ('\n ' , '\n ' + indent )
330330
331331def MakeStatementGenerator (depth ):
332332 """yields all possible expressions"""
333- if depth == MAX_DEPTH :
333+ if depth == MAX_DEPTH :
334334 yield '' # empty expr
335- else :
336- for stmtGen in stmt_gens :
335+ else :
336+ for stmtGen in stmt_gens :
337337 for value in stmtGen ().generate (depth ):
338338 yield Indent (value , depth )
339339
340340def MakeIdentifierGenerator (depth ):
341- for exprGen in identifier_exprs :
341+ for exprGen in identifier_exprs :
342342 for value in exprGen ().generate (depth ):
343343 yield value
344-
344+
345345i = 0
346- for x in MakeStatementGenerator (0 ):
346+ for x in MakeStatementGenerator (0 ):
347347 i += 1
348348 if i % 1000 == 0 :
349349 print ('.' , end = ' ' )
@@ -352,4 +352,4 @@ def MakeIdentifierGenerator(depth):
352352 except SyntaxError :
353353 pass
354354
355- print ('Ran %d tests' , i )
355+ print ('Ran %d tests' % i )
0 commit comments