Using a single rule here means that we can use the <*> syntax to match
all start conditions. This makes the catch-all rule more robust against
the addition of future start conditions, (no need to maintain an ever-
growing list of start conditions for this rul).
---
 src/glsl/glcpp/glcpp-lex.l | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/glsl/glcpp/glcpp-lex.l b/src/glsl/glcpp/glcpp-lex.l
index e82b85d..333d4ae 100644
--- a/src/glsl/glcpp/glcpp-lex.l
+++ b/src/glsl/glcpp/glcpp-lex.l
@@ -542,17 +542,17 @@ HEXADECIMAL_INTEGER       0[xX][0-9a-fA-F]+[uU]?
         * rule, then we have made a mistake above and need to fix one or more
         * of the preceding patterns to match that input. */
 
-<INITIAL,COMMENT,DEFINE,DONE,HASH,NEWLINE_CATCHUP>. {
+<*>. {
        glcpp_error(yylloc, yyextra, "Internal compiler error: Unexpected 
character: %s", yytext);
-}
 
        /* We don't actually use the UNREACHABLE start condition. We
-       only have this action here so that we can pretend to call some
+       only have this block here so that we can pretend to call some
        generated functions, (to avoid "defined but not used"
        warnings. */
-<UNREACHABLE>. {
-       unput('.');
-       yy_top_state(yyextra);
+        if (YY_START == UNREACHABLE) {
+               unput('.');
+               yy_top_state(yyextra);
+       }
 }
 
 %%
-- 
2.0.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to