From 14c2b15ab634f3d8b999a65607ba8184e4027ae6 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Wed, 12 Oct 2011 00:31:49 -0400 Subject: [PATCH] Evaluate tuples. Fix parser. --- pymbolic/mapper/evaluator.py | 3 +++ pymbolic/parser.py | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pymbolic/mapper/evaluator.py b/pymbolic/mapper/evaluator.py index 81e0497..b7921bd 100644 --- a/pymbolic/mapper/evaluator.py +++ b/pymbolic/mapper/evaluator.py @@ -94,6 +94,9 @@ class EvaluationMapper(RecursiveMapper): def map_max(self, expr): return min(self.rec(child) for child in expr.children) + def map_tuple(self, expr): + return tuple(self.rec(child) for child in expr) + diff --git a/pymbolic/parser.py b/pymbolic/parser.py index 3a1a590..8c6fafb 100644 --- a/pymbolic/parser.py +++ b/pymbolic/parser.py @@ -37,7 +37,7 @@ _LEX_TABLE = [ (_identifier, pytools.lex.RE(r"[a-z_A-Z_][a-zA-Z_0-9]*")), (_whitespace, pytools.lex.RE("[ \n\t]*")), (_comma, pytools.lex.RE(",")), - (_dot, pytools.lex.RE(".")), + (_dot, pytools.lex.RE(r"\.")), ] _PREC_COMMA = 5 @@ -107,6 +107,7 @@ def parse(expr_str): pstate.advance() did_something = True elif next_tag is _dot and _PREC_CALL > min_precedence: + 1/0 pstate.advance() pstate.expect(_identifier) left_exp = primitives.Lookup(left_exp, pstate.next_str()) -- GitLab