Mercurial > genshi > mirror
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 """ |