summaryrefslogtreecommitdiffstats
path: root/src/qlalr.qlalr
diff options
context:
space:
mode:
Diffstat (limited to 'src/qlalr.qlalr')
-rw-r--r--src/qlalr.qlalr9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/qlalr.qlalr b/src/qlalr.qlalr
index 2d564ab..5fea41d 100644
--- a/src/qlalr.qlalr
+++ b/src/qlalr.qlalr
@@ -56,6 +56,7 @@
%token IMPL_FILE
%token EXPECT
%token EXPECT_RR
+%token GLR_PARSER
%token IDENTIFIER
%token STRING_LITERAL
@@ -334,6 +335,13 @@ case $rule_number: {
} break;
./
+Directive ::= GLR_PARSER;
+/.
+case $rule_number: {
+ flags->glr_parser = true;
+} break;
+./
+
TokenKind ::= TOKEN ;
/.
case $rule_number: {
@@ -492,6 +500,7 @@ again:
else if (yytext == QLatin1String("right")) return T_RIGHT;
else if (yytext == QLatin1String("nonassoc")) return T_NONASSOC;
else if (yytext == QLatin1String("prec")) return T_PREC;
+ else if (yytext == QLatin1String("glr-parser")) return T_GLR_PARSER;
fprintf(stderr, "unrecognized directive %s\n", qPrintable(yytext));
return T_ERROR;
} else if ((ch == QLatin1Char('-') && yychar == QLatin1Char('-')) ||