From 11ad715cd4d00ac4d8c0f808e07d6f2de1915b97 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Thu, 13 Jun 2013 23:05:50 -0400
Subject: [PATCH] Tolerate a[b[i]] (i.e. don't force that to be
 close-linear-index)

---
 loopy/symbolic.py | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/loopy/symbolic.py b/loopy/symbolic.py
index de821eea4..9748f872c 100644
--- a/loopy/symbolic.py
+++ b/loopy/symbolic.py
@@ -643,7 +643,6 @@ TRAILING_FLOAT_TAG_RE = re.compile("^(.*?)([a-zA-Z]*)$")
 class LoopyParser(ParserBase):
     lex_table = [
             (_open_dbl_bracket, pytools.lex.RE(r"\[\[")),
-            (_close_dbl_bracket, pytools.lex.RE(r"\]\]")),
             ] + ParserBase.lex_table
 
     def parse_float(self, s):
@@ -663,13 +662,13 @@ class LoopyParser(ParserBase):
             return float(val)  # generic float
 
     def parse_postfix(self, pstate, min_precedence, left_exp):
-        from pymbolic.parser import _PREC_CALL
+        from pymbolic.parser import _PREC_CALL, _closebracket
         if pstate.next_tag() is _open_dbl_bracket and _PREC_CALL > min_precedence:
             pstate.advance()
             pstate.expect_not_end()
             left_exp = LinearSubscript(left_exp, self.parse_expression(pstate))
-            pstate.expect(_close_dbl_bracket)
-            pstate.advance()
+            pstate.expect(_closebracket)
+            pstate.expect(_closebracket)
             return left_exp, True
 
         return ParserBase.parse_postfix(self, pstate, min_precedence, left_exp)
-- 
GitLab