glcpp: Pass #version, #extension, and #pragma directives through unchanged.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 16 Jun 2010 19:21:17 +0000 (12:21 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 21 Jun 2010 18:31:55 +0000 (11:31 -0700)
Let the main compiler's lexer/parser handle them.

glcpp/glcpp-lex.l

index f736ac4..c28f2f6 100644 (file)
@@ -61,6 +61,13 @@ NON_STARS_THEN_STARS [^*]*[*]+
                return SPACE;
 }
 
+       /* glcpp doesn't handle #extension, #version, or #pragma directives.
+        * Simply pass them through to the main compiler's lexer/parser. */
+{HASH}(extension|version|pragma).*\n {
+       yylval.str = xtalloc_strdup (yyextra, yytext);
+       return OTHER;
+}
+
 {HASH}if/.*\n {
        yyextra->lexing_if = 1;
        yyextra->space_tokens = 0;