glsl/glcpp: Rename HASH token to HASH_TOKEN
authorCarl Worth <cworth@cworth.org>
Wed, 25 Jun 2014 18:59:55 +0000 (11:59 -0700)
committerCarl Worth <cworth@cworth.org>
Tue, 29 Jul 2014 22:11:49 +0000 (15:11 -0700)
This is in preparation for the planned addition of a new <HASH> start
condition to the lexer. Both start conditions and token types are, of course,
in the same default C namespace, so a start condition and a token type with
the same name will collide. (And unfortunately, they are both apparently
implemented as equivalent numeric types so the collision is undetected at
compile time and simply leads to unpredictable behavior at run time.)

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
src/glsl/glcpp/glcpp-lex.l
src/glsl/glcpp/glcpp-parse.y

index f13b3dacb16166dd43a6de4338470d9f97bb1d9a..5a5bbe1886a84575949802bc6a6a9d127ae850cd 100644 (file)
@@ -344,7 +344,7 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]?
 
 {HASH} {
        yyextra->space_tokens = 0;
-       RETURN_TOKEN (HASH);
+       RETURN_TOKEN (HASH_TOKEN);
 }
 
 {DECIMAL_INTEGER} {
index 4913330b3c083cf0159144ce6bd4da5e1370ece1..7454fb0112fd7494c987473e226b524a9adda1f7 100644 (file)
@@ -164,7 +164,10 @@ add_builtin_define(glcpp_parser_t *parser, const char *name, int value);
 %lex-param {glcpp_parser_t *parser}
 
 %expect 0
-%token COMMA_FINAL DEFINED ELIF_EXPANDED HASH HASH_DEFINE FUNC_IDENTIFIER OBJ_IDENTIFIER HASH_ELIF HASH_ELSE HASH_ENDIF HASH_IF HASH_IFDEF HASH_IFNDEF HASH_LINE HASH_UNDEF HASH_VERSION IDENTIFIER IF_EXPANDED INTEGER INTEGER_STRING LINE_EXPANDED NEWLINE OTHER PLACEHOLDER SPACE
+
+       /* We use HASH_TOKEN, not HASH to avoid a conflict with the <HASH>
+         * start condition in the lexer. */
+%token COMMA_FINAL DEFINED ELIF_EXPANDED HASH_TOKEN HASH_DEFINE FUNC_IDENTIFIER OBJ_IDENTIFIER HASH_ELIF HASH_ELSE HASH_ENDIF HASH_IF HASH_IFDEF HASH_IFNDEF HASH_LINE HASH_UNDEF HASH_VERSION IDENTIFIER IF_EXPANDED INTEGER INTEGER_STRING LINE_EXPANDED NEWLINE OTHER PLACEHOLDER SPACE
 %token PASTE
 %type <ival> INTEGER operator SPACE integer_constant
 %type <expression_value> expression
@@ -214,7 +217,7 @@ line:
                ralloc_free ($1);
        }
 |      expanded_line
-|      HASH non_directive
+|      HASH_TOKEN non_directive
 ;
 
 expanded_line:
@@ -400,7 +403,7 @@ control_line:
                }
                _glcpp_parser_handle_version_declaration(parser, $2, $3, true);
        }
-|      HASH NEWLINE {
+|      HASH_TOKEN NEWLINE {
                glcpp_parser_resolve_implicit_version(parser);
        }
 ;
@@ -2028,7 +2031,7 @@ glcpp_parser_lex (YYSTYPE *yylval, YYLTYPE *yylloc, glcpp_parser_t *parser)
                           ret == HASH_UNDEF || ret == HASH_IF ||
                           ret == HASH_IFDEF || ret == HASH_IFNDEF ||
                           ret == HASH_ELIF || ret == HASH_ELSE ||
-                          ret == HASH_ENDIF || ret == HASH)
+                          ret == HASH_ENDIF || ret == HASH_TOKEN)
                {
                        parser->in_control_line = 1;
                }