summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2010-05-29 05:07:24 -0700
committerCarl Worth <cworth@cworth.org>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 70d47d2..52269c6 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 c89d7bf..01ca08e 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 0000000..959d682
--- /dev/null
+++ b/tests/071-punctuator.c
@@ -0,0 +1 @@
+a = b