From 876086f768da6ff3a5726255e55f92b689f8d13c Mon Sep 17 00:00:00 2001 From: rlar Date: Wed, 16 Dec 2015 19:17:18 +0100 Subject: [PATCH] fix commit "frontend/parse.c, bug fix, PPlex(.."dc1.@m1[vth][1]"..)" which broke let something = foo[var] notably used in examples/Monte_Carlo/MC_ring.sp --- src/frontend/parse.c | 5 +++-- tests/regression/misc/bugs-2.cir | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/frontend/parse.c b/src/frontend/parse.c index e4bbf9e9c..f0db7f0bd 100644 --- a/src/frontend/parse.c +++ b/src/frontend/parse.c @@ -680,8 +680,9 @@ PPlex(YYSTYPE *lvalp, struct PPltype *llocp, char **line) atsign = 1; else if (!atsign && *sbuf == '[') break; - else if (atsign && *sbuf == ']') { - sbuf++; + else if (*sbuf == ']') { + if (atsign) + sbuf++; break; } diff --git a/tests/regression/misc/bugs-2.cir b/tests/regression/misc/bugs-2.cir index 1e4014f51..bb47305db 100644 --- a/tests/regression/misc/bugs-2.cir +++ b/tests/regression/misc/bugs-2.cir @@ -17,6 +17,9 @@ let gold = 500m let bar = foo[2] let baz = @v1[dc][2] +let two = 2 +let argh = foo[two] + let fail_count = 0 if bar <> 0.5 @@ -29,6 +32,11 @@ if baz <> 0.5 let fail_count = fail_count + 1 end +if argh <> 0.5 + echo "ERROR: bar = $&argh should be 0.5" + let fail_count = fail_count + 1 +end + if fail_count > 0 echo "ERROR: $&fail_count tests failed" quit 1