aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChimrod <>2023-09-23 16:23:54 +0200
committerChimrod <>2023-09-23 16:23:54 +0200
commite21c752ccd0d3d73921beddb671aa48429c2dd90 (patch)
tree0750ea3f269efc57cfbaa48093334483626c9707
parent557d60d5df5258a29ce964fac1f5ffdc625dcb2a (diff)
Correction in the parser preseance
-rw-r--r--lib/expression_parser.messages549
-rw-r--r--lib/lexer.mll10
-rw-r--r--lib/qsp_expression.mly3
-rw-r--r--syntax/t.ml1
-rw-r--r--test/qsp_parser_test.ml21
5 files changed, 288 insertions, 296 deletions
diff --git a/lib/expression_parser.messages b/lib/expression_parser.messages
index 174f037..6907c43 100644
--- a/lib/expression_parser.messages
+++ b/lib/expression_parser.messages
@@ -12,7 +12,7 @@ Unexpected expression here.
main: LOCATION_START EOL L_PAREN INTEGER SET
##
-## Ends in an error in state: 70.
+## Ends in an error in state: 68.
##
## expression -> L_PAREN expression . R_PAREN [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . EQUAL expression [ STAR R_PAREN PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV AND ]
@@ -40,7 +40,7 @@ Unexpected '('. Did you forgot a function before ?
main: LOCATION_START EOL IF INTEGER SET
##
-## Ends in an error in state: 87.
+## Ends in an error in state: 85.
##
## expression -> expression . EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
## expression -> expression . LT GT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
@@ -58,8 +58,8 @@ main: LOCATION_START EOL IF INTEGER SET
## expression -> expression . EQUAL LT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
## expression -> expression . AND expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
## expression -> expression . OR expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
-## line_statement -> IF expression . COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> IF expression . COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF expression . COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF expression . COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
## onliner(IF) -> IF expression . COLUMN final_inline_instruction [ EOL ELSE AMPERSAND ]
##
## The known suffix of the stack is as follows:
@@ -70,9 +70,9 @@ Invalid `IF` condition. You probably missed a ':'
main: LOCATION_START EOL COLUMN STAR
##
-## Ends in an error in state: 92.
+## Ends in an error in state: 90.
##
-## line_statement -> COLUMN . IDENT list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> COLUMN . IDENT list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## COLUMN
@@ -82,7 +82,7 @@ A location is expected after ':' not an expression
main: LOCATION_START EOL ACT INTEGER SET
##
-## Ends in an error in state: 96.
+## Ends in an error in state: 94.
##
## expression -> expression . EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
## expression -> expression . LT GT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
@@ -100,8 +100,8 @@ main: LOCATION_START EOL ACT INTEGER SET
## expression -> expression . EQUAL LT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
## expression -> expression . AND expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
## expression -> expression . OR expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
-## line_statement -> ACT expression . COLUMN nonempty_list(EOL) list(line_statement) empty_body END option(ACT) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> ACT expression . COLUMN nonempty_list(EOL) list(line_statement) empty_body END option(ACT) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> ACT expression . COLUMN nonempty_list(EOL) list(line_statement) empty_body END option(ACT) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> ACT expression . COLUMN nonempty_list(EOL) list(line_statement) empty_body END option(ACT) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
## onliner(ACT) -> ACT expression . COLUMN final_inline_instruction [ EOL AMPERSAND ]
##
## The known suffix of the stack is as follows:
@@ -112,10 +112,10 @@ Invalid `ACT` label. You probably missed a ':'
main: LOCATION_START EOL ACT IDENT COLUMN EOL LOCATION_END
##
-## Ends in an error in state: 98.
+## Ends in an error in state: 96.
##
-## line_statement -> ACT expression COLUMN nonempty_list(EOL) . list(line_statement) empty_body END option(ACT) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> ACT expression COLUMN nonempty_list(EOL) . list(line_statement) empty_body END option(ACT) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> ACT expression COLUMN nonempty_list(EOL) . list(line_statement) empty_body END option(ACT) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> ACT expression COLUMN nonempty_list(EOL) . list(line_statement) empty_body END option(ACT) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## ACT expression COLUMN nonempty_list(EOL)
@@ -132,7 +132,7 @@ If there are nested blocks, the error will points the highest block.
main: LOCATION_START EOL IF IDENT COLUMN ELSE R_PAREN
##
-## Ends in an error in state: 104.
+## Ends in an error in state: 102.
##
## option(preceded(ELSE,instruction)) -> ELSE . instruction [ EOL ELSE AMPERSAND ]
##
@@ -144,10 +144,10 @@ Too manies instructions on a single line.
main: LOCATION_START EOL IF IDENT COLUMN EOL IDENT AMPERSAND LOCATION_END
##
-## Ends in an error in state: 152.
+## Ends in an error in state: 150.
##
-## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) . elif_else_body END option(IF) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) . elif_else_body END option(IF) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) . elif_else_body END option(IF) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) . elif_else_body END option(IF) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## IF expression COLUMN nonempty_list(EOL) list(line_statement)
@@ -156,11 +156,11 @@ main: LOCATION_START EOL IF IDENT COLUMN EOL IDENT AMPERSAND LOCATION_END
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 123, spurious reduction of production nonempty_list(AMPERSAND) -> AMPERSAND
-## In state 132, spurious reduction of production list(EOL) ->
-## In state 133, spurious reduction of production line_statement -> instruction nonempty_list(AMPERSAND) list(EOL)
-## In state 128, spurious reduction of production list(line_statement) ->
-## In state 129, spurious reduction of production list(line_statement) -> line_statement list(line_statement)
+## In state 121, spurious reduction of production nonempty_list(AMPERSAND) -> AMPERSAND
+## In state 130, spurious reduction of production list(EOL) ->
+## In state 131, spurious reduction of production line_statement -> instruction nonempty_list(AMPERSAND) list(EOL)
+## In state 126, spurious reduction of production list(line_statement) ->
+## In state 127, spurious reduction of production list(line_statement) -> line_statement list(line_statement)
##
Unclosed statement.
@@ -168,7 +168,7 @@ Unclosed statement.
main: LOCATION_START EOL IF IDENT COLUMN EOL ELSE EOL LOCATION_END
##
-## Ends in an error in state: 160.
+## Ends in an error in state: 158.
##
## else_ -> ELSE nonempty_list(EOL) . list(line_statement) [ END ]
##
@@ -187,7 +187,7 @@ If there are nested blocks, the error will points the highest block.
main: LOCATION_START EOL IDENT AMPERSAND END
##
-## Ends in an error in state: 172.
+## Ends in an error in state: 170.
##
## main -> list(EOL) LOCATION_START nonempty_list(EOL) list(line_statement) . LOCATION_END list(EOL) EOF [ # ]
##
@@ -198,11 +198,11 @@ main: LOCATION_START EOL IDENT AMPERSAND END
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 123, spurious reduction of production nonempty_list(AMPERSAND) -> AMPERSAND
-## In state 132, spurious reduction of production list(EOL) ->
-## In state 133, spurious reduction of production line_statement -> instruction nonempty_list(AMPERSAND) list(EOL)
-## In state 128, spurious reduction of production list(line_statement) ->
-## In state 129, spurious reduction of production list(line_statement) -> line_statement list(line_statement)
+## In state 121, spurious reduction of production nonempty_list(AMPERSAND) -> AMPERSAND
+## In state 130, spurious reduction of production list(EOL) ->
+## In state 131, spurious reduction of production line_statement -> instruction nonempty_list(AMPERSAND) list(EOL)
+## In state 126, spurious reduction of production list(line_statement) ->
+## In state 127, spurious reduction of production list(line_statement) -> line_statement list(line_statement)
##
Unexpected `END`.
@@ -220,12 +220,40 @@ main: STAR
Missing location name
+main: LOCATION_START EOL INTEGER SET
+##
+## Ends in an error in state: 113.
+##
+## expression -> expression . EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . LT GT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . EXCLAMATION expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . PLUS expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . MINUS expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . STAR expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . DIV expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . MOD expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . GT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . LT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . GT EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . LT EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . EQUAL GT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . EQUAL LT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . AND expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## expression -> expression . OR expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
+## single_instruction -> expression . [ EOL ELSE AMPERSAND ]
+##
+## The known suffix of the stack is as follows:
+## expression
+##
+
+Unexpected expression here.
+
main: LOCATION_START EOL R_PAREN
##
## Ends in an error in state: 6.
##
-## nonempty_list(EOL) -> EOL . [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## nonempty_list(EOL) -> EOL . nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## nonempty_list(EOL) -> EOL . [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## nonempty_list(EOL) -> EOL . nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## EOL
@@ -237,7 +265,7 @@ main: LOCATION_START EOL STAR STAR
##
## Ends in an error in state: 9.
##
-## keyword -> STAR . KEYWORD [ PLUS OBJ NO MINUS L_PAREN LOC LITERAL INTEGER IDENT FUNCTION EOL ELSE AMPERSAND ]
+## keyword -> STAR . KEYWORD [ PLUS OBJ NO MINUS L_PAREN LITERAL INTEGER IDENT FUNCTION EOL ELSE AMPERSAND ]
##
## The known suffix of the stack is as follows:
## STAR
@@ -283,9 +311,10 @@ main: LOCATION_START EOL L_PAREN STAR
main: LOCATION_START EOL FUNCTION STAR
##
-## Ends in an error in state: 22.
+## Ends in an error in state: 21.
##
-## expression -> FUNCTION . qsp_expression_argument(expression) [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> FUNCTION . L_PAREN arguments(expression) R_PAREN [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> FUNCTION . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
## The known suffix of the stack is as follows:
## FUNCTION
@@ -295,60 +324,20 @@ main: LOCATION_START EOL FUNCTION STAR
main: LOCATION_START EOL FUNCTION L_PAREN STAR
##
-## Ends in an error in state: 23.
+## Ends in an error in state: 22.
##
## expression -> L_PAREN . expression R_PAREN [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## qsp_expression_argument(expression) -> L_PAREN . arguments(expression) R_PAREN [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-##
-## The known suffix of the stack is as follows:
-## L_PAREN
-##
-
-<YOUR SYNTAX ERROR MESSAGE HERE>
-
-main: LOCATION_START EOL LOC STAR
-##
-## Ends in an error in state: 25.
-##
-## expression -> unary_operator . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> FUNCTION L_PAREN . arguments(expression) R_PAREN [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
## The known suffix of the stack is as follows:
-## unary_operator
-##
-
-<YOUR SYNTAX ERROR MESSAGE HERE>
-
-main: LOCATION_START EOL LOC INTEGER SET
-##
-## Ends in an error in state: 26.
-##
-## expression -> unary_operator expression . [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . EXCLAMATION expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . PLUS expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . MINUS expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . STAR expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . DIV expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . MOD expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . LT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . GT EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . LT EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . EQUAL GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . EQUAL LT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . AND expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . OR expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-##
-## The known suffix of the stack is as follows:
-## unary_operator expression
+## FUNCTION L_PAREN
##
<YOUR SYNTAX ERROR MESSAGE HERE>
main: LOCATION_START EOL IDENT STAR STAR
##
-## Ends in an error in state: 27.
+## Ends in an error in state: 26.
##
## expression -> expression STAR . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
@@ -360,7 +349,7 @@ main: LOCATION_START EOL IDENT STAR STAR
main: LOCATION_START EOL IDENT STAR INTEGER SET
##
-## Ends in an error in state: 28.
+## Ends in an error in state: 27.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -388,7 +377,7 @@ main: LOCATION_START EOL IDENT STAR INTEGER SET
main: LOCATION_START EOL IDENT PLUS STAR
##
-## Ends in an error in state: 29.
+## Ends in an error in state: 28.
##
## expression -> expression PLUS . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
@@ -400,7 +389,7 @@ main: LOCATION_START EOL IDENT PLUS STAR
main: LOCATION_START EOL IDENT PLUS INTEGER SET
##
-## Ends in an error in state: 30.
+## Ends in an error in state: 29.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -428,7 +417,7 @@ main: LOCATION_START EOL IDENT PLUS INTEGER SET
main: LOCATION_START EOL IDENT MOD STAR
##
-## Ends in an error in state: 31.
+## Ends in an error in state: 30.
##
## expression -> expression MOD . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
@@ -440,7 +429,7 @@ main: LOCATION_START EOL IDENT MOD STAR
main: LOCATION_START EOL IDENT MOD INTEGER SET
##
-## Ends in an error in state: 32.
+## Ends in an error in state: 31.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -468,7 +457,7 @@ main: LOCATION_START EOL IDENT MOD INTEGER SET
main: LOCATION_START EOL IDENT MINUS STAR
##
-## Ends in an error in state: 33.
+## Ends in an error in state: 32.
##
## expression -> expression MINUS . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
@@ -480,7 +469,7 @@ main: LOCATION_START EOL IDENT MINUS STAR
main: LOCATION_START EOL IDENT MINUS INTEGER SET
##
-## Ends in an error in state: 34.
+## Ends in an error in state: 33.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -508,7 +497,7 @@ main: LOCATION_START EOL IDENT MINUS INTEGER SET
main: LOCATION_START EOL IDENT LT STAR
##
-## Ends in an error in state: 35.
+## Ends in an error in state: 34.
##
## expression -> expression LT . GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression LT . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -522,7 +511,7 @@ main: LOCATION_START EOL IDENT LT STAR
main: LOCATION_START EOL IDENT LT GT STAR
##
-## Ends in an error in state: 36.
+## Ends in an error in state: 35.
##
## expression -> expression LT GT . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
@@ -534,7 +523,7 @@ main: LOCATION_START EOL IDENT LT GT STAR
main: LOCATION_START EOL IDENT LT GT INTEGER SET
##
-## Ends in an error in state: 37.
+## Ends in an error in state: 36.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -562,7 +551,7 @@ main: LOCATION_START EOL IDENT LT GT INTEGER SET
main: LOCATION_START EOL IDENT GT STAR
##
-## Ends in an error in state: 38.
+## Ends in an error in state: 37.
##
## expression -> expression GT . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression GT . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -575,7 +564,7 @@ main: LOCATION_START EOL IDENT GT STAR
main: LOCATION_START EOL IDENT GT EQUAL STAR
##
-## Ends in an error in state: 39.
+## Ends in an error in state: 38.
##
## expression -> expression GT EQUAL . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
@@ -587,7 +576,7 @@ main: LOCATION_START EOL IDENT GT EQUAL STAR
main: LOCATION_START EOL IDENT GT EQUAL INTEGER SET
##
-## Ends in an error in state: 40.
+## Ends in an error in state: 39.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -615,7 +604,7 @@ main: LOCATION_START EOL IDENT GT EQUAL INTEGER SET
main: LOCATION_START EOL INTEGER EQUAL STAR
##
-## Ends in an error in state: 41.
+## Ends in an error in state: 42.
##
## expression -> expression EQUAL . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression EQUAL . GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -629,7 +618,7 @@ main: LOCATION_START EOL INTEGER EQUAL STAR
main: LOCATION_START EOL INTEGER EQUAL LT STAR
##
-## Ends in an error in state: 42.
+## Ends in an error in state: 43.
##
## expression -> expression EQUAL LT . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
@@ -641,7 +630,7 @@ main: LOCATION_START EOL INTEGER EQUAL LT STAR
main: LOCATION_START EOL INTEGER EQUAL LT INTEGER SET
##
-## Ends in an error in state: 43.
+## Ends in an error in state: 44.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -669,7 +658,7 @@ main: LOCATION_START EOL INTEGER EQUAL LT INTEGER SET
main: LOCATION_START EOL IDENT DIV STAR
##
-## Ends in an error in state: 44.
+## Ends in an error in state: 45.
##
## expression -> expression DIV . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
@@ -681,7 +670,7 @@ main: LOCATION_START EOL IDENT DIV STAR
main: LOCATION_START EOL IDENT DIV INTEGER SET
##
-## Ends in an error in state: 45.
+## Ends in an error in state: 46.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -709,7 +698,7 @@ main: LOCATION_START EOL IDENT DIV INTEGER SET
main: LOCATION_START EOL INTEGER EQUAL GT STAR
##
-## Ends in an error in state: 46.
+## Ends in an error in state: 47.
##
## expression -> expression EQUAL GT . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
@@ -721,7 +710,7 @@ main: LOCATION_START EOL INTEGER EQUAL GT STAR
main: LOCATION_START EOL INTEGER EQUAL GT INTEGER SET
##
-## Ends in an error in state: 47.
+## Ends in an error in state: 48.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -749,7 +738,7 @@ main: LOCATION_START EOL INTEGER EQUAL GT INTEGER SET
main: LOCATION_START EOL INTEGER EQUAL INTEGER SET
##
-## Ends in an error in state: 48.
+## Ends in an error in state: 49.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression EQUAL expression . [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -777,7 +766,7 @@ main: LOCATION_START EOL INTEGER EQUAL INTEGER SET
main: LOCATION_START EOL IDENT GT INTEGER SET
##
-## Ends in an error in state: 49.
+## Ends in an error in state: 50.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -805,7 +794,7 @@ main: LOCATION_START EOL IDENT GT INTEGER SET
main: LOCATION_START EOL IDENT LT EQUAL STAR
##
-## Ends in an error in state: 50.
+## Ends in an error in state: 51.
##
## expression -> expression LT EQUAL . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
@@ -817,7 +806,7 @@ main: LOCATION_START EOL IDENT LT EQUAL STAR
main: LOCATION_START EOL IDENT LT EQUAL INTEGER SET
##
-## Ends in an error in state: 51.
+## Ends in an error in state: 52.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -845,7 +834,7 @@ main: LOCATION_START EOL IDENT LT EQUAL INTEGER SET
main: LOCATION_START EOL IDENT LT INTEGER SET
##
-## Ends in an error in state: 52.
+## Ends in an error in state: 53.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -873,7 +862,7 @@ main: LOCATION_START EOL IDENT LT INTEGER SET
main: LOCATION_START EOL IDENT OR STAR
##
-## Ends in an error in state: 53.
+## Ends in an error in state: 54.
##
## expression -> expression OR . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
@@ -885,7 +874,7 @@ main: LOCATION_START EOL IDENT OR STAR
main: LOCATION_START EOL IDENT OR INTEGER SET
##
-## Ends in an error in state: 54.
+## Ends in an error in state: 55.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -913,7 +902,7 @@ main: LOCATION_START EOL IDENT OR INTEGER SET
main: LOCATION_START EOL IDENT AND STAR
##
-## Ends in an error in state: 55.
+## Ends in an error in state: 56.
##
## expression -> expression AND . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
@@ -925,7 +914,7 @@ main: LOCATION_START EOL IDENT AND STAR
main: LOCATION_START EOL IDENT AND INTEGER SET
##
-## Ends in an error in state: 56.
+## Ends in an error in state: 57.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -953,7 +942,7 @@ main: LOCATION_START EOL IDENT AND INTEGER SET
main: LOCATION_START EOL KEYWORD L_PAREN INTEGER SET
##
-## Ends in an error in state: 57.
+## Ends in an error in state: 58.
##
## arguments(expression) -> expression . COMA separated_nonempty_list(COMA,expression) [ R_PAREN ]
## expression -> L_PAREN expression . R_PAREN [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -982,7 +971,7 @@ main: LOCATION_START EOL KEYWORD L_PAREN INTEGER SET
main: LOCATION_START EOL IDENT EXCLAMATION STAR
##
-## Ends in an error in state: 59.
+## Ends in an error in state: 40.
##
## expression -> expression EXCLAMATION . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
@@ -994,7 +983,7 @@ main: LOCATION_START EOL IDENT EXCLAMATION STAR
main: LOCATION_START EOL IDENT EXCLAMATION INTEGER SET
##
-## Ends in an error in state: 60.
+## Ends in an error in state: 41.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
@@ -1022,7 +1011,7 @@ main: LOCATION_START EOL IDENT EXCLAMATION INTEGER SET
main: LOCATION_START EOL KEYWORD IDENT COMA STAR
##
-## Ends in an error in state: 61.
+## Ends in an error in state: 60.
##
## arguments(expression) -> expression COMA . separated_nonempty_list(COMA,expression) [ R_PAREN EOL ELSE AMPERSAND ]
##
@@ -1034,7 +1023,7 @@ main: LOCATION_START EOL KEYWORD IDENT COMA STAR
main: LOCATION_START EOL KEYWORD IDENT COMA INTEGER SET
##
-## Ends in an error in state: 63.
+## Ends in an error in state: 62.
##
## expression -> expression . EQUAL expression [ STAR R_PAREN PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR R_PAREN PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA AND AMPERSAND ]
@@ -1063,7 +1052,7 @@ main: LOCATION_START EOL KEYWORD IDENT COMA INTEGER SET
main: LOCATION_START EOL KEYWORD IDENT COMA IDENT COMA STAR
##
-## Ends in an error in state: 64.
+## Ends in an error in state: 63.
##
## separated_nonempty_list(COMA,expression) -> expression COMA . separated_nonempty_list(COMA,expression) [ R_PAREN EOL ELSE AMPERSAND ]
##
@@ -1075,57 +1064,29 @@ main: LOCATION_START EOL KEYWORD IDENT COMA IDENT COMA STAR
main: LOCATION_START EOL FUNCTION L_PAREN IDENT COMA IDENT EOL
##
-## Ends in an error in state: 66.
+## Ends in an error in state: 65.
##
-## qsp_expression_argument(expression) -> L_PAREN arguments(expression) . R_PAREN [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> FUNCTION L_PAREN arguments(expression) . R_PAREN [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
##
## The known suffix of the stack is as follows:
-## L_PAREN arguments(expression)
+## FUNCTION L_PAREN arguments(expression)
##
## WARNING: This example involves spurious reductions.
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 12, spurious reduction of production option(delimited(L_BRACKET,option(expression),R_BRACKET)) ->
-## In state 74, spurious reduction of production variable -> IDENT option(delimited(L_BRACKET,option(expression),R_BRACKET))
-## In state 24, spurious reduction of production expression -> variable
-## In state 63, spurious reduction of production separated_nonempty_list(COMA,expression) -> expression
-## In state 62, spurious reduction of production arguments(expression) -> expression COMA separated_nonempty_list(COMA,expression)
-##
-
-<YOUR SYNTAX ERROR MESSAGE HERE>
-
-main: LOCATION_START EOL FUNCTION INTEGER SET
-##
-## Ends in an error in state: 69.
-##
-## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . EXCLAMATION expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . PLUS expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . MINUS expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . STAR expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . DIV expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . MOD expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . LT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . GT EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . LT EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . EQUAL GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . EQUAL LT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . AND expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## expression -> expression . OR expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-## qsp_expression_argument(expression) -> expression . [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
-##
-## The known suffix of the stack is as follows:
-## expression
+## In state 72, spurious reduction of production variable -> IDENT option(delimited(L_BRACKET,option(expression),R_BRACKET))
+## In state 23, spurious reduction of production expression -> variable
+## In state 62, spurious reduction of production separated_nonempty_list(COMA,expression) -> expression
+## In state 61, spurious reduction of production arguments(expression) -> expression COMA separated_nonempty_list(COMA,expression)
##
<YOUR SYNTAX ERROR MESSAGE HERE>
main: LOCATION_START EOL IDENT L_BRACKET INTEGER SET
##
-## Ends in an error in state: 73.
+## Ends in an error in state: 71.
##
## expression -> expression . EQUAL expression [ STAR R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV AND ]
## expression -> expression . LT GT expression [ STAR R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV AND ]
@@ -1153,7 +1114,7 @@ main: LOCATION_START EOL IDENT L_BRACKET INTEGER SET
main: LOCATION_START EOL SET IDENT STAR
##
-## Ends in an error in state: 75.
+## Ends in an error in state: 73.
##
## let_assignation -> SET variable . assignation_operator expression [ EOL ELSE AMPERSAND ]
##
@@ -1165,14 +1126,14 @@ main: LOCATION_START EOL SET IDENT STAR
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 12, spurious reduction of production option(delimited(L_BRACKET,option(expression),R_BRACKET)) ->
-## In state 74, spurious reduction of production variable -> IDENT option(delimited(L_BRACKET,option(expression),R_BRACKET))
+## In state 72, spurious reduction of production variable -> IDENT option(delimited(L_BRACKET,option(expression),R_BRACKET))
##
<YOUR SYNTAX ERROR MESSAGE HERE>
main: LOCATION_START EOL SET IDENT DECR STAR
##
-## Ends in an error in state: 79.
+## Ends in an error in state: 77.
##
## let_assignation -> SET variable assignation_operator . expression [ EOL ELSE AMPERSAND ]
##
@@ -1184,7 +1145,7 @@ main: LOCATION_START EOL SET IDENT DECR STAR
main: LOCATION_START EOL SET IDENT DECR INTEGER SET
##
-## Ends in an error in state: 80.
+## Ends in an error in state: 78.
##
## expression -> expression . EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
@@ -1212,7 +1173,7 @@ main: LOCATION_START EOL SET IDENT DECR INTEGER SET
main: LOCATION_START EOL LET STAR
##
-## Ends in an error in state: 81.
+## Ends in an error in state: 79.
##
## let_assignation -> LET . variable assignation_operator expression [ EOL ELSE AMPERSAND ]
##
@@ -1224,7 +1185,7 @@ main: LOCATION_START EOL LET STAR
main: LOCATION_START EOL LET IDENT STAR
##
-## Ends in an error in state: 82.
+## Ends in an error in state: 80.
##
## let_assignation -> LET variable . assignation_operator expression [ EOL ELSE AMPERSAND ]
##
@@ -1236,14 +1197,14 @@ main: LOCATION_START EOL LET IDENT STAR
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 12, spurious reduction of production option(delimited(L_BRACKET,option(expression),R_BRACKET)) ->
-## In state 74, spurious reduction of production variable -> IDENT option(delimited(L_BRACKET,option(expression),R_BRACKET))
+## In state 72, spurious reduction of production variable -> IDENT option(delimited(L_BRACKET,option(expression),R_BRACKET))
##
<YOUR SYNTAX ERROR MESSAGE HERE>
main: LOCATION_START EOL LET IDENT DECR STAR
##
-## Ends in an error in state: 83.
+## Ends in an error in state: 81.
##
## let_assignation -> LET variable assignation_operator . expression [ EOL ELSE AMPERSAND ]
##
@@ -1255,7 +1216,7 @@ main: LOCATION_START EOL LET IDENT DECR STAR
main: LOCATION_START EOL LET IDENT DECR INTEGER SET
##
-## Ends in an error in state: 84.
+## Ends in an error in state: 82.
##
## expression -> expression . EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
@@ -1283,10 +1244,10 @@ main: LOCATION_START EOL LET IDENT DECR INTEGER SET
main: LOCATION_START EOL IF STAR
##
-## Ends in an error in state: 86.
+## Ends in an error in state: 84.
##
-## line_statement -> IF . expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> IF . expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF . expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF . expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
## onliner(IF) -> IF . expression COLUMN final_inline_instruction [ EOL ELSE AMPERSAND ]
##
## The known suffix of the stack is as follows:
@@ -1297,10 +1258,10 @@ main: LOCATION_START EOL IF STAR
main: LOCATION_START EOL IF IDENT COLUMN R_PAREN
##
-## Ends in an error in state: 88.
+## Ends in an error in state: 86.
##
-## line_statement -> IF expression COLUMN . nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> IF expression COLUMN . nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF expression COLUMN . nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF expression COLUMN . nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
## onliner(IF) -> IF expression COLUMN . final_inline_instruction [ EOL ELSE AMPERSAND ]
##
## The known suffix of the stack is as follows:
@@ -1311,10 +1272,10 @@ main: LOCATION_START EOL IF IDENT COLUMN R_PAREN
main: LOCATION_START EOL IF IDENT COLUMN EOL LOCATION_END
##
-## Ends in an error in state: 89.
+## Ends in an error in state: 87.
##
-## line_statement -> IF expression COLUMN nonempty_list(EOL) . list(line_statement) elif_else_body END option(IF) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> IF expression COLUMN nonempty_list(EOL) . list(line_statement) elif_else_body END option(IF) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF expression COLUMN nonempty_list(EOL) . list(line_statement) elif_else_body END option(IF) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF expression COLUMN nonempty_list(EOL) . list(line_statement) elif_else_body END option(IF) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## IF expression COLUMN nonempty_list(EOL)
@@ -1330,9 +1291,9 @@ main: LOCATION_START EOL IF IDENT COLUMN EOL LOCATION_END
main: LOCATION_START EOL COMMENT STAR
##
-## Ends in an error in state: 90.
+## Ends in an error in state: 88.
##
-## line_statement -> COMMENT . nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> COMMENT . nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## COMMENT
@@ -1342,9 +1303,9 @@ main: LOCATION_START EOL COMMENT STAR
main: LOCATION_START EOL COLUMN IDENT R_PAREN
##
-## Ends in an error in state: 93.
+## Ends in an error in state: 91.
##
-## line_statement -> COLUMN IDENT . list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> COLUMN IDENT . list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## COLUMN IDENT
@@ -1354,10 +1315,10 @@ main: LOCATION_START EOL COLUMN IDENT R_PAREN
main: LOCATION_START EOL ACT STAR
##
-## Ends in an error in state: 95.
+## Ends in an error in state: 93.
##
-## line_statement -> ACT . expression COLUMN nonempty_list(EOL) list(line_statement) empty_body END option(ACT) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> ACT . expression COLUMN nonempty_list(EOL) list(line_statement) empty_body END option(ACT) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> ACT . expression COLUMN nonempty_list(EOL) list(line_statement) empty_body END option(ACT) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> ACT . expression COLUMN nonempty_list(EOL) list(line_statement) empty_body END option(ACT) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
## onliner(ACT) -> ACT . expression COLUMN final_inline_instruction [ EOL AMPERSAND ]
##
## The known suffix of the stack is as follows:
@@ -1368,10 +1329,10 @@ main: LOCATION_START EOL ACT STAR
main: LOCATION_START EOL ACT IDENT COLUMN R_PAREN
##
-## Ends in an error in state: 97.
+## Ends in an error in state: 95.
##
-## line_statement -> ACT expression COLUMN . nonempty_list(EOL) list(line_statement) empty_body END option(ACT) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> ACT expression COLUMN . nonempty_list(EOL) list(line_statement) empty_body END option(ACT) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> ACT expression COLUMN . nonempty_list(EOL) list(line_statement) empty_body END option(ACT) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> ACT expression COLUMN . nonempty_list(EOL) list(line_statement) empty_body END option(ACT) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
## onliner(ACT) -> ACT expression COLUMN . final_inline_instruction [ EOL AMPERSAND ]
##
## The known suffix of the stack is as follows:
@@ -1382,7 +1343,7 @@ main: LOCATION_START EOL ACT IDENT COLUMN R_PAREN
main: LOCATION_START EOL IDENT R_PAREN
##
-## Ends in an error in state: 99.
+## Ends in an error in state: 97.
##
## expression -> variable . [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
## let_assignation -> variable . assignation_operator expression [ EOL ELSE AMPERSAND ]
@@ -1395,14 +1356,14 @@ main: LOCATION_START EOL IDENT R_PAREN
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 12, spurious reduction of production option(delimited(L_BRACKET,option(expression),R_BRACKET)) ->
-## In state 74, spurious reduction of production variable -> IDENT option(delimited(L_BRACKET,option(expression),R_BRACKET))
+## In state 72, spurious reduction of production variable -> IDENT option(delimited(L_BRACKET,option(expression),R_BRACKET))
##
<YOUR SYNTAX ERROR MESSAGE HERE>
main: LOCATION_START EOL IDENT DECR STAR
##
-## Ends in an error in state: 100.
+## Ends in an error in state: 98.
##
## let_assignation -> variable assignation_operator . expression [ EOL ELSE AMPERSAND ]
##
@@ -1414,7 +1375,7 @@ main: LOCATION_START EOL IDENT DECR STAR
main: LOCATION_START EOL IDENT DECR INTEGER SET
##
-## Ends in an error in state: 101.
+## Ends in an error in state: 99.
##
## expression -> expression . EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
## expression -> expression . LT GT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
@@ -1442,7 +1403,7 @@ main: LOCATION_START EOL IDENT DECR INTEGER SET
main: LOCATION_START EOL IF IDENT COLUMN COMMENT STAR
##
-## Ends in an error in state: 103.
+## Ends in an error in state: 101.
##
## inline_action -> onliner(IF) . option(preceded(ELSE,instruction)) [ EOL ELSE AMPERSAND ]
##
@@ -1454,7 +1415,7 @@ main: LOCATION_START EOL IF IDENT COLUMN COMMENT STAR
main: LOCATION_START EOL KEYWORD STAR
##
-## Ends in an error in state: 106.
+## Ends in an error in state: 104.
##
## single_instruction -> keyword . qsp_instruction_argument(expression) [ EOL ELSE AMPERSAND ]
##
@@ -1466,7 +1427,7 @@ main: LOCATION_START EOL KEYWORD STAR
main: LOCATION_START EOL KEYWORD L_PAREN STAR
##
-## Ends in an error in state: 107.
+## Ends in an error in state: 105.
##
## expression -> L_PAREN . expression R_PAREN [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA AND AMPERSAND ]
## optionnal_delimited(L_PAREN,arguments(expression),R_PAREN) -> L_PAREN . arguments(expression) R_PAREN [ EOL ELSE AMPERSAND ]
@@ -1479,7 +1440,7 @@ main: LOCATION_START EOL KEYWORD L_PAREN STAR
main: LOCATION_START EOL KEYWORD L_PAREN IDENT COMA IDENT EOL
##
-## Ends in an error in state: 108.
+## Ends in an error in state: 106.
##
## optionnal_delimited(L_PAREN,arguments(expression),R_PAREN) -> L_PAREN arguments(expression) . R_PAREN [ EOL ELSE AMPERSAND ]
##
@@ -1491,17 +1452,17 @@ main: LOCATION_START EOL KEYWORD L_PAREN IDENT COMA IDENT EOL
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 12, spurious reduction of production option(delimited(L_BRACKET,option(expression),R_BRACKET)) ->
-## In state 74, spurious reduction of production variable -> IDENT option(delimited(L_BRACKET,option(expression),R_BRACKET))
-## In state 24, spurious reduction of production expression -> variable
-## In state 63, spurious reduction of production separated_nonempty_list(COMA,expression) -> expression
-## In state 62, spurious reduction of production arguments(expression) -> expression COMA separated_nonempty_list(COMA,expression)
+## In state 72, spurious reduction of production variable -> IDENT option(delimited(L_BRACKET,option(expression),R_BRACKET))
+## In state 23, spurious reduction of production expression -> variable
+## In state 62, spurious reduction of production separated_nonempty_list(COMA,expression) -> expression
+## In state 61, spurious reduction of production arguments(expression) -> expression COMA separated_nonempty_list(COMA,expression)
##
<YOUR SYNTAX ERROR MESSAGE HERE>
main: LOCATION_START EOL KEYWORD INTEGER SET
##
-## Ends in an error in state: 112.
+## Ends in an error in state: 110.
##
## arguments(expression) -> expression . COMA separated_nonempty_list(COMA,expression) [ EOL ELSE AMPERSAND ]
## expression -> expression . EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA AND AMPERSAND ]
@@ -1528,40 +1489,12 @@ main: LOCATION_START EOL KEYWORD INTEGER SET
<YOUR SYNTAX ERROR MESSAGE HERE>
-main: LOCATION_START EOL INTEGER SET
-##
-## Ends in an error in state: 115.
-##
-## expression -> expression . EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . LT GT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . EXCLAMATION expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . PLUS expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . MINUS expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . STAR expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . DIV expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . MOD expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . GT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . LT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . GT EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . LT EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . EQUAL GT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . EQUAL LT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . AND expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## expression -> expression . OR expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV AND AMPERSAND ]
-## single_instruction -> expression . [ EOL ELSE AMPERSAND ]
-##
-## The known suffix of the stack is as follows:
-## expression
-##
-
-Unexpected expression here.
-
main: LOCATION_START EOL ACT IDENT COLUMN EOL IDENT AMPERSAND LOCATION_END
##
-## Ends in an error in state: 119.
+## Ends in an error in state: 117.
##
-## line_statement -> ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body . END option(ACT) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body . END option(ACT) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body . END option(ACT) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body . END option(ACT) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body
@@ -1570,22 +1503,22 @@ main: LOCATION_START EOL ACT IDENT COLUMN EOL IDENT AMPERSAND LOCATION_END
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 123, spurious reduction of production nonempty_list(AMPERSAND) -> AMPERSAND
-## In state 132, spurious reduction of production list(EOL) ->
-## In state 133, spurious reduction of production line_statement -> instruction nonempty_list(AMPERSAND) list(EOL)
-## In state 128, spurious reduction of production list(line_statement) ->
-## In state 129, spurious reduction of production list(line_statement) -> line_statement list(line_statement)
-## In state 118, spurious reduction of production empty_body ->
+## In state 121, spurious reduction of production nonempty_list(AMPERSAND) -> AMPERSAND
+## In state 130, spurious reduction of production list(EOL) ->
+## In state 131, spurious reduction of production line_statement -> instruction nonempty_list(AMPERSAND) list(EOL)
+## In state 126, spurious reduction of production list(line_statement) ->
+## In state 127, spurious reduction of production list(line_statement) -> line_statement list(line_statement)
+## In state 116, spurious reduction of production empty_body ->
##
<YOUR SYNTAX ERROR MESSAGE HERE>
main: LOCATION_START EOL ACT IDENT COLUMN EOL END STAR
##
-## Ends in an error in state: 120.
+## Ends in an error in state: 118.
##
-## line_statement -> ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body END . option(ACT) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body END . option(ACT) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body END . option(ACT) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body END . option(ACT) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body END
@@ -1595,10 +1528,10 @@ main: LOCATION_START EOL ACT IDENT COLUMN EOL END STAR
main: LOCATION_START EOL ACT IDENT COLUMN EOL END ACT STAR
##
-## Ends in an error in state: 122.
+## Ends in an error in state: 120.
##
-## line_statement -> ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body END option(ACT) . nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body END option(ACT) . nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body END option(ACT) . nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body END option(ACT) . nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## ACT expression COLUMN nonempty_list(EOL) list(line_statement) empty_body END option(ACT)
@@ -1608,10 +1541,10 @@ main: LOCATION_START EOL ACT IDENT COLUMN EOL END ACT STAR
main: LOCATION_START EOL IDENT AMPERSAND R_PAREN
##
-## Ends in an error in state: 123.
+## Ends in an error in state: 121.
##
-## nonempty_list(AMPERSAND) -> AMPERSAND . [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION EOL END ELSE ELIF COMMENT COLUMN AMPERSAND ACT ]
-## nonempty_list(AMPERSAND) -> AMPERSAND . nonempty_list(AMPERSAND) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION EOL END ELSE ELIF COMMENT COLUMN AMPERSAND ACT ]
+## nonempty_list(AMPERSAND) -> AMPERSAND . [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION EOL END ELSE ELIF COMMENT COLUMN AMPERSAND ACT ]
+## nonempty_list(AMPERSAND) -> AMPERSAND . nonempty_list(AMPERSAND) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION EOL END ELSE ELIF COMMENT COLUMN AMPERSAND ACT ]
##
## The known suffix of the stack is as follows:
## AMPERSAND
@@ -1621,7 +1554,7 @@ main: LOCATION_START EOL IDENT AMPERSAND R_PAREN
main: LOCATION_START EOL IDENT AMPERSAND EOL EOF
##
-## Ends in an error in state: 128.
+## Ends in an error in state: 126.
##
## list(line_statement) -> line_statement . list(line_statement) [ LOCATION_END END ELSE ELIF ]
##
@@ -1634,17 +1567,17 @@ main: LOCATION_START EOL IDENT AMPERSAND EOL EOF
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 1, spurious reduction of production list(EOL) ->
## In state 2, spurious reduction of production list(EOL) -> EOL list(EOL)
-## In state 133, spurious reduction of production line_statement -> instruction nonempty_list(AMPERSAND) list(EOL)
+## In state 131, spurious reduction of production line_statement -> instruction nonempty_list(AMPERSAND) list(EOL)
##
<YOUR SYNTAX ERROR MESSAGE HERE>
main: LOCATION_START EOL IDENT ELSE
##
-## Ends in an error in state: 130.
+## Ends in an error in state: 128.
##
-## line_statement -> instruction . nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> instruction . nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> instruction . nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> instruction . nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## instruction
@@ -1654,20 +1587,20 @@ main: LOCATION_START EOL IDENT ELSE
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
## In state 12, spurious reduction of production option(delimited(L_BRACKET,option(expression),R_BRACKET)) ->
-## In state 74, spurious reduction of production variable -> IDENT option(delimited(L_BRACKET,option(expression),R_BRACKET))
-## In state 99, spurious reduction of production expression -> variable
-## In state 115, spurious reduction of production single_instruction -> expression
-## In state 102, spurious reduction of production instruction -> single_instruction
+## In state 72, spurious reduction of production variable -> IDENT option(delimited(L_BRACKET,option(expression),R_BRACKET))
+## In state 97, spurious reduction of production expression -> variable
+## In state 113, spurious reduction of production single_instruction -> expression
+## In state 100, spurious reduction of production instruction -> single_instruction
##
<YOUR SYNTAX ERROR MESSAGE HERE>
main: LOCATION_START EOL ACT IDENT COLUMN COMMENT STAR
##
-## Ends in an error in state: 134.
+## Ends in an error in state: 132.
##
-## line_statement -> inline_action . nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> inline_action . nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> inline_action . nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> inline_action . nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## inline_action
@@ -1677,13 +1610,13 @@ main: LOCATION_START EOL ACT IDENT COLUMN COMMENT STAR
main: LOCATION_START EOL ACT IDENT COLUMN IDENT AMPERSAND LOCATION_END
##
-## Ends in an error in state: 138.
+## Ends in an error in state: 136.
##
## final_inline_instruction -> inline_instruction . instruction [ EOL ELSE AMPERSAND ]
## final_inline_instruction -> inline_instruction . inline_action [ EOL ELSE AMPERSAND ]
## final_inline_instruction -> inline_instruction . COMMENT [ EOL ELSE AMPERSAND ]
## final_inline_instruction -> inline_instruction . [ EOL ELSE AMPERSAND ]
-## inline_instruction -> inline_instruction . single_instruction nonempty_list(AMPERSAND) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION EOL ELSE COMMENT AMPERSAND ACT ]
+## inline_instruction -> inline_instruction . single_instruction nonempty_list(AMPERSAND) [ STAR SET PLUS OBJ NO MINUS L_PAREN LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION EOL ELSE COMMENT AMPERSAND ACT ]
##
## The known suffix of the stack is as follows:
## inline_instruction
@@ -1692,15 +1625,15 @@ main: LOCATION_START EOL ACT IDENT COLUMN IDENT AMPERSAND LOCATION_END
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 123, spurious reduction of production nonempty_list(AMPERSAND) -> AMPERSAND
-## In state 149, spurious reduction of production inline_instruction -> inline_instruction single_instruction nonempty_list(AMPERSAND)
+## In state 121, spurious reduction of production nonempty_list(AMPERSAND) -> AMPERSAND
+## In state 147, spurious reduction of production inline_instruction -> inline_instruction single_instruction nonempty_list(AMPERSAND)
##
<YOUR SYNTAX ERROR MESSAGE HERE>
main: LOCATION_START EOL ACT IDENT COLUMN IF STAR
##
-## Ends in an error in state: 139.
+## Ends in an error in state: 137.
##
## onliner(IF) -> IF . expression COLUMN final_inline_instruction [ EOL ELSE AMPERSAND ]
##
@@ -1712,7 +1645,7 @@ main: LOCATION_START EOL ACT IDENT COLUMN IF STAR
main: LOCATION_START EOL ACT IDENT COLUMN IF INTEGER SET
##
-## Ends in an error in state: 140.
+## Ends in an error in state: 138.
##
## expression -> expression . EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
## expression -> expression . LT GT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
@@ -1740,7 +1673,7 @@ main: LOCATION_START EOL ACT IDENT COLUMN IF INTEGER SET
main: LOCATION_START EOL ACT IDENT COLUMN ACT STAR
##
-## Ends in an error in state: 144.
+## Ends in an error in state: 142.
##
## onliner(ACT) -> ACT . expression COLUMN final_inline_instruction [ EOL ELSE AMPERSAND ]
##
@@ -1752,7 +1685,7 @@ main: LOCATION_START EOL ACT IDENT COLUMN ACT STAR
main: LOCATION_START EOL ACT IDENT COLUMN ACT INTEGER SET
##
-## Ends in an error in state: 145.
+## Ends in an error in state: 143.
##
## expression -> expression . EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
## expression -> expression . LT GT expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
@@ -1780,9 +1713,9 @@ main: LOCATION_START EOL ACT IDENT COLUMN ACT INTEGER SET
main: LOCATION_START EOL ACT IDENT COLUMN KEYWORD L_PAREN R_PAREN STAR
##
-## Ends in an error in state: 148.
+## Ends in an error in state: 146.
##
-## inline_instruction -> inline_instruction single_instruction . nonempty_list(AMPERSAND) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION EOL ELSE COMMENT AMPERSAND ACT ]
+## inline_instruction -> inline_instruction single_instruction . nonempty_list(AMPERSAND) [ STAR SET PLUS OBJ NO MINUS L_PAREN LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION EOL ELSE COMMENT AMPERSAND ACT ]
## instruction -> single_instruction . [ EOL ELSE AMPERSAND ]
##
## The known suffix of the stack is as follows:
@@ -1793,7 +1726,7 @@ main: LOCATION_START EOL ACT IDENT COLUMN KEYWORD L_PAREN R_PAREN STAR
main: LOCATION_START EOL IF IDENT COLUMN EOL ELIF STAR
##
-## Ends in an error in state: 153.
+## Ends in an error in state: 151.
##
## elif -> ELIF . expression COLUMN nonempty_list(EOL) list(line_statement) [ END ELSE ELIF ]
##
@@ -1805,7 +1738,7 @@ main: LOCATION_START EOL IF IDENT COLUMN EOL ELIF STAR
main: LOCATION_START EOL IF IDENT COLUMN EOL ELIF INTEGER SET
##
-## Ends in an error in state: 154.
+## Ends in an error in state: 152.
##
## elif -> ELIF expression . COLUMN nonempty_list(EOL) list(line_statement) [ END ELSE ELIF ]
## expression -> expression . EQUAL expression [ STAR PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL DIV COLUMN AND ]
@@ -1833,7 +1766,7 @@ main: LOCATION_START EOL IF IDENT COLUMN EOL ELIF INTEGER SET
main: LOCATION_START EOL IF IDENT COLUMN EOL ELIF IDENT COLUMN STAR
##
-## Ends in an error in state: 155.
+## Ends in an error in state: 153.
##
## elif -> ELIF expression COLUMN . nonempty_list(EOL) list(line_statement) [ END ELSE ELIF ]
##
@@ -1845,7 +1778,7 @@ main: LOCATION_START EOL IF IDENT COLUMN EOL ELIF IDENT COLUMN STAR
main: LOCATION_START EOL IF IDENT COLUMN EOL ELIF IDENT COLUMN EOL LOCATION_END
##
-## Ends in an error in state: 156.
+## Ends in an error in state: 154.
##
## elif -> ELIF expression COLUMN nonempty_list(EOL) . list(line_statement) [ END ELSE ELIF ]
##
@@ -1863,7 +1796,7 @@ main: LOCATION_START EOL IF IDENT COLUMN EOL ELIF IDENT COLUMN EOL LOCATION_END
main: LOCATION_START EOL IF IDENT COLUMN EOL ELSE STAR
##
-## Ends in an error in state: 159.
+## Ends in an error in state: 157.
##
## else_ -> ELSE . nonempty_list(EOL) list(line_statement) [ END ]
##
@@ -1875,10 +1808,10 @@ main: LOCATION_START EOL IF IDENT COLUMN EOL ELSE STAR
main: LOCATION_START EOL IF IDENT COLUMN EOL ELSE EOL IDENT AMPERSAND LOCATION_END
##
-## Ends in an error in state: 163.
+## Ends in an error in state: 161.
##
-## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body . END option(IF) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body . END option(IF) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body . END option(IF) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body . END option(IF) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body
@@ -1887,23 +1820,23 @@ main: LOCATION_START EOL IF IDENT COLUMN EOL ELSE EOL IDENT AMPERSAND LOCATION_E
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 123, spurious reduction of production nonempty_list(AMPERSAND) -> AMPERSAND
-## In state 132, spurious reduction of production list(EOL) ->
-## In state 133, spurious reduction of production line_statement -> instruction nonempty_list(AMPERSAND) list(EOL)
-## In state 128, spurious reduction of production list(line_statement) ->
-## In state 129, spurious reduction of production list(line_statement) -> line_statement list(line_statement)
-## In state 161, spurious reduction of production else_ -> ELSE nonempty_list(EOL) list(line_statement)
-## In state 162, spurious reduction of production elif_else_body -> list(elif) else_
+## In state 121, spurious reduction of production nonempty_list(AMPERSAND) -> AMPERSAND
+## In state 130, spurious reduction of production list(EOL) ->
+## In state 131, spurious reduction of production line_statement -> instruction nonempty_list(AMPERSAND) list(EOL)
+## In state 126, spurious reduction of production list(line_statement) ->
+## In state 127, spurious reduction of production list(line_statement) -> line_statement list(line_statement)
+## In state 159, spurious reduction of production else_ -> ELSE nonempty_list(EOL) list(line_statement)
+## In state 160, spurious reduction of production elif_else_body -> list(elif) else_
##
<YOUR SYNTAX ERROR MESSAGE HERE>
main: LOCATION_START EOL IF IDENT COLUMN EOL END STAR
##
-## Ends in an error in state: 164.
+## Ends in an error in state: 162.
##
-## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END . option(IF) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END . option(IF) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END . option(IF) nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END . option(IF) nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END
@@ -1913,10 +1846,10 @@ main: LOCATION_START EOL IF IDENT COLUMN EOL END STAR
main: LOCATION_START EOL IF IDENT COLUMN EOL END IF STAR
##
-## Ends in an error in state: 166.
+## Ends in an error in state: 164.
##
-## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) . nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
-## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) . nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) . nonempty_list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
+## line_statement -> IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END option(IF) . nonempty_list(AMPERSAND) list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## IF expression COLUMN nonempty_list(EOL) list(line_statement) elif_else_body END option(IF)
@@ -1926,7 +1859,7 @@ main: LOCATION_START EOL IF IDENT COLUMN EOL END IF STAR
main: LOCATION_START EOL IF IDENT COLUMN EOL ELIF IDENT COLUMN EOL IDENT AMPERSAND LOCATION_END
##
-## Ends in an error in state: 170.
+## Ends in an error in state: 168.
##
## list(elif) -> elif . list(elif) [ END ELSE ]
##
@@ -1937,19 +1870,19 @@ main: LOCATION_START EOL IF IDENT COLUMN EOL ELIF IDENT COLUMN EOL IDENT AMPERSA
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 123, spurious reduction of production nonempty_list(AMPERSAND) -> AMPERSAND
-## In state 132, spurious reduction of production list(EOL) ->
-## In state 133, spurious reduction of production line_statement -> instruction nonempty_list(AMPERSAND) list(EOL)
-## In state 128, spurious reduction of production list(line_statement) ->
-## In state 129, spurious reduction of production list(line_statement) -> line_statement list(line_statement)
-## In state 157, spurious reduction of production elif -> ELIF expression COLUMN nonempty_list(EOL) list(line_statement)
+## In state 121, spurious reduction of production nonempty_list(AMPERSAND) -> AMPERSAND
+## In state 130, spurious reduction of production list(EOL) ->
+## In state 131, spurious reduction of production line_statement -> instruction nonempty_list(AMPERSAND) list(EOL)
+## In state 126, spurious reduction of production list(line_statement) ->
+## In state 127, spurious reduction of production list(line_statement) -> line_statement list(line_statement)
+## In state 155, spurious reduction of production elif -> ELIF expression COLUMN nonempty_list(EOL) list(line_statement)
##
<YOUR SYNTAX ERROR MESSAGE HERE>
main: LOCATION_START EOL LOCATION_END STAR
##
-## Ends in an error in state: 173.
+## Ends in an error in state: 171.
##
## main -> list(EOL) LOCATION_START nonempty_list(EOL) list(line_statement) LOCATION_END . list(EOL) EOF [ # ]
##
@@ -1961,7 +1894,7 @@ main: LOCATION_START EOL LOCATION_END STAR
main: LOCATION_START EOL LOCATION_END EOL STAR
##
-## Ends in an error in state: 174.
+## Ends in an error in state: 172.
##
## main -> list(EOL) LOCATION_START nonempty_list(EOL) list(line_statement) LOCATION_END list(EOL) . EOF [ # ]
##
@@ -1982,7 +1915,7 @@ main: EOL R_PAREN
##
## Ends in an error in state: 1.
##
-## list(EOL) -> EOL . list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_START LOCATION_END LOC LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION EOF END ELSE ELIF COMMENT COLUMN ACT ]
+## list(EOL) -> EOL . list(EOL) [ STAR SET PLUS OBJ NO MINUS L_PAREN LOCATION_START LOCATION_END LITERAL LET KEYWORD INTEGER IF IDENT FUNCTION EOF END ELSE ELIF COMMENT COLUMN ACT ]
##
## The known suffix of the stack is as follows:
## EOL
@@ -2038,3 +1971,43 @@ main: LOCATION_START EOL END
##
<YOUR SYNTAX ERROR MESSAGE HERE>
+
+main: LOCATION_START EOL MINUS STAR
+##
+## Ends in an error in state: 24.
+##
+## expression -> unary_operator . expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+##
+## The known suffix of the stack is as follows:
+## unary_operator
+##
+
+<YOUR SYNTAX ERROR MESSAGE HERE>
+
+main: LOCATION_START EOL MINUS INTEGER SET
+##
+## Ends in an error in state: 25.
+##
+## expression -> unary_operator expression . [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . LT GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . EXCLAMATION expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . PLUS expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . MINUS expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . STAR expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . DIV expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . MOD expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . LT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . GT EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . LT EQUAL expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . EQUAL GT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . EQUAL LT expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . AND expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+## expression -> expression . OR expression [ STAR R_PAREN R_BRACKET PLUS OR MOD MINUS LT GT EXCLAMATION EQUAL EOL ELSE DIV COMA COLUMN AND AMPERSAND ]
+##
+## The known suffix of the stack is as follows:
+## unary_operator expression
+##
+
+<YOUR SYNTAX ERROR MESSAGE HERE>
diff --git a/lib/lexer.mll b/lib/lexer.mll
index 4796e62..0288983 100644
--- a/lib/lexer.mll
+++ b/lib/lexer.mll
@@ -58,9 +58,9 @@
; "COPYARR", KEYWORD "COPYARR"
; "COUNTOBJ", FUNCTION T.Countobj
; "CURACTS", IDENT "CURACTS"
- ; "$CURACTS", IDENT "CURACTS"
+ ; "$CURACTS", IDENT "$CURACTS"
; "CURLOC", IDENT "CURLOC"
- ; "$CURLOC", IDENT "CURLOC"
+ ; "$CURLOC", IDENT "$CURLOC"
(*
; "DEBUG", KEYWORD "DEBUG"
*)
@@ -123,7 +123,7 @@
*)
; "LEN", FUNCTION T.Len
; "LET", LET
- ; "LOC", LOC
+ ; "LOC", FUNCTION T.Loc
; "MAINTXT", IDENT "MAINTXT"
; "$MAINTXT", IDENT "MAINTXT"
; "MAX", FUNCTION T.Max
@@ -168,9 +168,9 @@
; "RND", FUNCTION T.Rnd
; "SAVEGAME", KEYWORD "SAVEGAME"
; "SELACT", FUNCTION T.Selact
- ; "$SELACT", IDENT "SELACT"
+ ; "$SELACT", IDENT "$SELACT"
; "SELOBJ", IDENT "SELOBJ"
- ; "$SELOBJ", IDENT "SELOBJ"
+ ; "$SELOBJ", IDENT "$SELOBJ"
; "SET", SET
; "SETTIMER", KEYWORD "SETTIMER"
; "SHOWACTS", KEYWORD "SHOWACTS"
diff --git a/lib/qsp_expression.mly b/lib/qsp_expression.mly
index 07da032..d1680f3 100644
--- a/lib/qsp_expression.mly
+++ b/lib/qsp_expression.mly
@@ -19,7 +19,7 @@
paren, they belongs to the expression.
*)
-argument(X):
+%inline argument(X):
| a = delimited(L_PAREN, arguments(X), R_PAREN) { a }
| a = X { [ a ] }
@@ -49,7 +49,6 @@ argument(X):
unary_operator:
| OBJ
- | LOC
| NO { T.No }
| MINUS { T.Neg }
| PLUS { T.Add }
diff --git a/syntax/t.ml b/syntax/t.ml
index 12be4b4..0014d47 100644
--- a/syntax/t.ml
+++ b/syntax/t.ml
@@ -46,6 +46,7 @@ type function_ =
| Lcase
| Lcase'
| Len
+ | Loc
| Max
| Max'
| Mid
diff --git a/test/qsp_parser_test.ml b/test/qsp_parser_test.ml
index ef19ed9..6ac8bfa 100644
--- a/test/qsp_parser_test.ml
+++ b/test/qsp_parser_test.ml
@@ -1,4 +1,5 @@
module Parser = Qsp_parser.Parser.Make (Qsp_syntax.Tree)
+module Tree = Qsp_syntax.Tree
module Ast = Qsp_syntax.Tree.Ast
module T = Ast
@@ -594,7 +595,7 @@ let test_gt () =
Ast.Ident
{
Ast.pos = _position;
- name = "CURLOC";
+ name = "$CURLOC";
index = Some (Ast.Integer (_position, "0"));
};
] );
@@ -682,6 +683,23 @@ let test_dyneval () =
(Ast.Function (_position, Dyneval, [ Ast.Literal (_position, "") ]));
]
+(** The parens after input are considered as arguments for the function, not a
+ following expression.
+
+ This expression is a boolean.
+*)
+let test_input () =
+ _test_instruction "( input('') = '' )"
+ [
+ Tree.Ast.Expression
+ (Tree.Ast.BinaryOp
+ ( _position,
+ Eq,
+ Tree.Ast.Function
+ (_position, Input, [ Tree.Ast.Literal (_position, "") ]),
+ Tree.Ast.Literal (_position, "") ));
+ ]
+
let syntax =
( "Syntax",
[
@@ -742,6 +760,7 @@ let syntax =
Alcotest.test_case "Operator" `Quick test_operator;
Alcotest.test_case "Operator2" `Quick test_operator2;
Alcotest.test_case "Dyneval" `Quick test_dyneval;
+ Alcotest.test_case "Input" `Quick test_input;
] )
let () = Alcotest.run "qsp_parser" [ syntax ]