glsl/glcpp: Fix to emit spaces following directives

The glcpp lexer and parser use the space_tokens state bit to avoid emitting
tokens for spaces while parsing a directive. Previously, this bit was only
being set again by the first non-space token following a directive.

This led to a bug where a space, (or a comment that should emit a space),
immediately following a directive, (optionally searated by newlines), would be
omitted from the output.

Here we fix the bug by also setting the space_tokens bit whenever we lex a
newline in the standard start conditions.
This commit is contained in:
Carl Worth
2014-07-28 08:59:25 -07:00
parent 49e2275d0d
commit da7f226a27
2 changed files with 3 additions and 2 deletions
+1
View File
@@ -355,6 +355,7 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]?
if (parser->commented_newlines) {
BEGIN NEWLINE_CATCHUP;
}
yyextra->space_tokens = 1;
yyextra->lexing_directive = 0;
yylineno++;
yycolumn = 0;
@@ -8,6 +8,7 @@
#version 300 es
@@ -15,8 +16,7 @@
Success