summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--parser.y3
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 25868383..fe4ad2c8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2011-09-27 Kaz Kylheku <kaz@kylheku.com>
+ * parser.y ('{', '}'): Bugfix: precedence of these
+ terminals was causing @foo@foo to be parsed differently
+ from @foo@{foo}. We need consecutive variables to be
+ specially folded in the syntax under a single var_s
+ node.
+
+2011-09-27 Kaz Kylheku <kaz@kylheku.com>
+
* match.c (match_files): One more fix to this, argh.
The test for !data should be done after matching,
before incrementing to the next line. Then it is a true
diff --git a/parser.y b/parser.y
index 2ad2d53f..74331810 100644
--- a/parser.y
+++ b/parser.y
@@ -77,8 +77,9 @@ static val parsed_spec;
%nonassoc LOW /* used for precedence assertion */
%nonassoc ALL SOME NONE MAYBE CASES AND OR END COLLECT UNTIL COLL
%nonassoc OUTPUT REPEAT REP FIRST LAST EMPTY DEFINE
-%nonassoc '{' '}' '[' ']' '(' ')'
+%nonassoc '[' ']' '(' ')'
%right IDENT TEXT NUMBER
+%nonassoc '{' '}'
%left '-'
%left '|' '/'
%left '&'