comparison markup/eval.py @ 198:ca8a9defe6fe trunk

Implemented support for generator expressions (fixes #16)
author mgood
date Thu, 24 Aug 2006 22:42:07 +0000
parents c0535b218466
children 48fab34e5e4d
comparison
equal deleted inserted replaced
197:b0e1adbf1173 198:ca8a9defe6fe
329 329
330 def visitListCompIf(self, node, *args, **kwargs): 330 def visitListCompIf(self, node, *args, **kwargs):
331 node.test = self.visit(node.test, *args, **kwargs) 331 node.test = self.visit(node.test, *args, **kwargs)
332 return node 332 return node
333 333
334 def visitGenExpr(self, node, *args, **kwargs):
335 node.code = self.visit(node.code, *args, **kwargs)
336 node.filename = '<string>' # workaround for bug in pycodegen
337 return node
338
339 def visitGenExprFor(self, node, *args, **kwargs):
340 node.assign = self.visit(node.assign, *args, **kwargs)
341 node.iter = self.visit(node.iter, *args, **kwargs)
342 node.ifs = map(lambda x: self.visit(x, *args, **kwargs), node.ifs)
343 return node
344
345 def visitGenExprIf(self, node, *args, **kwargs):
346 node.test = self.visit(node.test, locals_=True, *args, **kwargs)
347 return node
348
349 def visitGenExprInner(self, node, *args, **kwargs):
350 node.expr = self.visit(node.expr, locals_=True, *args, **kwargs)
351 node.quals = map(lambda x: self.visit(x, *args, **kwargs), node.quals)
352 return node
353
334 354
335 class ExpressionASTTransformer(ASTTransformer): 355 class ExpressionASTTransformer(ASTTransformer):
336 """Concrete AST transformer that implements the AST transformations needed 356 """Concrete AST transformer that implements the AST transformations needed
337 for template expressions. 357 for template expressions.
338 """ 358 """
Copyright (C) 2012-2017 Edgewall Software