Fix two whitespace bugs in the lexer.
authorCarl Worth <cworth@cworth.org>
Sat, 15 May 2010 00:29:24 +0000 (17:29 -0700)
committerCarl Worth <cworth@cworth.org>
Sat, 15 May 2010 00:29:24 +0000 (17:29 -0700)
The first bug was not allowing whitespace between '#' and the
directive name.

The second bug was swallowing a terminating newline along with any
trailing whitespace on a line.

With these two fixes, and the previous commit to stop emitting SPACE
tokens, the recently added extra-whitespace test now passes.

glcpp-lex.l

index 3c9dda46d4790a75d3820917babce99649846855..97ff1175f1bf4d52fe075a82b6081b02620dbf80 100644 (file)
@@ -39,7 +39,7 @@ SPACE         [[:space:]]
 NONSPACE       [^[:space:]]
 NEWLINE                [\n]
 HSPACE         [ \t]
-HASH           ^{HSPACE}*#
+HASH           ^{HSPACE}*#{HSPACE}*
 IDENTIFIER     [_a-zA-Z][_a-zA-Z0-9]*
 TOKEN          [^[:space:](),]+
 
@@ -109,6 +109,6 @@ TOKEN               [^[:space:](),]+
        return NEWLINE;
 }
 
-{SPACE}+
+{HSPACE}+
 
 %%