diff options
Diffstat (limited to 'lib/mako/ast.py')
-rw-r--r-- | lib/mako/ast.py | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/lib/mako/ast.py b/lib/mako/ast.py index c07cd81..a17969b 100644 --- a/lib/mako/ast.py +++ b/lib/mako/ast.py @@ -230,13 +230,32 @@ class ExpressionGenerator(object): if node.upper is not None: self.visit(node.upper) self.buf.write("]") + def visitDict(self, node): + self.buf.write("{") + c = node.getChildren() + for i in range(0, len(c), 2): + self.visit(c[i]) + self.buf.write(": ") + self.visit(c[i+1]) + if i<len(c) -2: + self.buf.write(", ") + self.buf.write("}") + def visitList(self, node): + self.buf.write("[") + c = node.getChildren() + for i in range(0, len(c)): + self.visit(c[i]) + if i<len(c) - 1: + self.buf.write(", ") + self.buf.write("]") def visitCallFunc(self, node, *args): self.visit(node.node) self.buf.write("(") - self.visit(node.args[0]) - for a in node.args[1:]: - self.buf.write(", ") - self.visit(a) + if len(node.args): + self.visit(node.args[0]) + for a in node.args[1:]: + self.buf.write(", ") + self.visit(a) self.buf.write(")")
\ No newline at end of file |