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