summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarl Worth <[email protected]>2010-05-29 05:07:24 -0700
committerCarl Worth <[email protected]>2010-05-29 05:07:24 -0700
commit631016946ca8134244c4e58bef6863d204b1119b (patch)
tree5d6eb18bcb55307c2306bf1685f07c5d4818b990
parent681afbc855c86df8c3521ccdfadb7f16b9729baa (diff)
Fix pass-through of '=' and add a test for it.
Previously '=' was not included in our PUNCTUATION regeular expression, but it *was* excldued from our OTHER regular expression, so we were getting the default (and hamful) lex action of just printing it. The test we add here is named "punctuator" with the idea that we can extend it as needed for other punctuator testing.
-rw-r--r--glcpp-lex.l2
-rw-r--r--glcpp-parse.y1
-rw-r--r--tests/071-punctuator.c1
3 files changed, 3 insertions, 1 deletions
diff --git a/glcpp-lex.l b/glcpp-lex.l
index 70d47d24975..52269c6b306 100644
--- a/glcpp-lex.l
+++ b/glcpp-lex.l
@@ -38,7 +38,7 @@ NEWLINE [\n]
HSPACE [ \t]
HASH ^{HSPACE}*#{HSPACE}*
IDENTIFIER [_a-zA-Z][_a-zA-Z0-9]*
-PUNCTUATION [][(){}.&*~!/%<>^|;,+-]
+PUNCTUATION [][(){}.&*~!/%<>^|;,=+-]
OTHER [^][(){}.&*~!/%<>^|;,=#[:space:]+-]+
DECIMAL_INTEGER [1-9][0-9]*[uU]?
diff --git a/glcpp-parse.y b/glcpp-parse.y
index c89d7bf159c..01ca08ec740 100644
--- a/glcpp-parse.y
+++ b/glcpp-parse.y
@@ -426,6 +426,7 @@ operator:
| OR { $$ = OR; }
| ';' { $$ = ';'; }
| ',' { $$ = ','; }
+| '=' { $$ = '='; }
| PASTE { $$ = PASTE; }
| DEFINED { $$ = DEFINED; }
;
diff --git a/tests/071-punctuator.c b/tests/071-punctuator.c
new file mode 100644
index 00000000000..959d6825988
--- /dev/null
+++ b/tests/071-punctuator.c
@@ -0,0 +1 @@
+a = b