2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT CONSTRUCTOR CONTENT TEXT YEAR
2020-12-24 19:17:11 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 335.
2020-10-04 02:25:37 +03:00
##
2022-03-28 15:43:38 +03:00
## list(enum_decl_line) -> enum_decl_line . list(enum_decl_line) [ SCOPE END_CODE DECLARATION ]
2020-10-04 02:25:37 +03:00
##
## The known suffix of the stack is as follows:
## enum_decl_line
2020-04-25 20:22:53 +03:00
##
2020-10-04 02:25:37 +03:00
2020-10-04 02:52:58 +03:00
expected another enum case, or a new declaration or scope use
2020-10-04 02:25:37 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT CONSTRUCTOR CONTENT YEAR
2020-10-04 02:25:37 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 330.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## enum_decl_line_payload -> CONTENT . typ [ SCOPE END_CODE DECLARATION ALT ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## CONTENT
##
2020-10-04 02:52:58 +03:00
expected a content type
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT CONSTRUCTOR YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 329.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## enum_decl_line -> ALT constructor . option(enum_decl_line_payload) [ SCOPE END_CODE DECLARATION ALT ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## ALT constructor
##
2021-05-15 02:16:08 +03:00
expected a payload for your enum case, or another case or declaration
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 328.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## enum_decl_line -> ALT . constructor option(enum_decl_line_payload) [ SCOPE END_CODE DECLARATION ALT ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## ALT
##
2021-05-15 02:16:08 +03:00
expected the name of an enum case
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 327.
2020-04-25 20:22:53 +03:00
##
2022-03-28 15:43:38 +03:00
## code_item -> DECLARATION ENUM constructor COLON . list(enum_decl_line) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## DECLARATION ENUM constructor COLON
##
2020-10-04 02:52:58 +03:00
expected an enum case
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 326.
2020-04-25 20:22:53 +03:00
##
2022-03-28 15:43:38 +03:00
## code_item -> DECLARATION ENUM constructor . COLON list(enum_decl_line) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## DECLARATION ENUM constructor
##
2020-10-04 02:52:58 +03:00
expected a colon
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION ENUM YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 325.
2020-04-25 20:22:53 +03:00
##
2022-03-28 15:43:38 +03:00
## code_item -> DECLARATION ENUM . constructor COLON list(enum_decl_line) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## DECLARATION ENUM
##
2020-10-04 02:52:58 +03:00
expected the name of your enum
2020-04-25 20:22:53 +03:00
2020-10-04 02:25:37 +03:00
2020-04-25 20:22:53 +03:00
2020-10-04 02:25:37 +03:00
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 300.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## code_item -> DECLARATION SCOPE constructor COLON . nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-05-15 00:31:57 +03:00
## DECLARATION SCOPE constructor COLON
2020-04-25 20:22:53 +03:00
##
2020-10-04 02:52:58 +03:00
expected a context item introduced by "context"
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 299.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## code_item -> DECLARATION SCOPE constructor . COLON nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-05-15 00:31:57 +03:00
## DECLARATION SCOPE constructor
2020-04-25 20:22:53 +03:00
##
2020-10-04 02:52:58 +03:00
expected a colon followed by the list of context items of this scope
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION SCOPE YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 298.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## code_item -> DECLARATION SCOPE . constructor COLON nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-05-15 00:31:57 +03:00
## DECLARATION SCOPE
2020-04-25 20:22:53 +03:00
##
2020-10-04 02:52:58 +03:00
expected the name of the scope you are declaring
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT DEPENDS COLLECTION YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 285.
2020-04-25 20:22:53 +03:00
##
2022-02-28 16:33:07 +03:00
## typ -> collection_marked . typ [ STATE SCOPE OUTPUT INTERNAL INPUT IDENT END_CODE DEPENDS DECLARATION DATA CONTEXT CONDITION ALT ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-05-07 10:40:09 +03:00
## collection_marked
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected a new struct data, or another declaration or scope use
2020-10-04 02:25:37 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT DEPENDS TEXT YEAR
2020-10-04 02:25:37 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 293.
2020-10-04 02:25:37 +03:00
##
## list(struct_scope) -> struct_scope . list(struct_scope) [ SCOPE END_CODE DECLARATION ]
##
## The known suffix of the stack is as follows:
## struct_scope
##
2020-10-04 17:49:45 +03:00
expected a new struct data, or another declaration or scope use
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT DEPENDS YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 289.
2020-04-25 20:22:53 +03:00
##
2022-02-28 16:33:07 +03:00
## struct_scope_func -> DEPENDS . typ [ STATE SCOPE OUTPUT INTERNAL INPUT IDENT END_CODE DECLARATION DATA CONTEXT CONDITION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## DEPENDS
##
2020-10-04 17:49:45 +03:00
expected the type of the parameter of this struct data function
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 288.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## struct_scope -> struct_scope_base . option(struct_scope_func) [ SCOPE END_CODE DECLARATION DATA CONDITION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-05-14 22:19:46 +03:00
## struct_scope_base
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected a new struct data, or another declaration or scope use
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 295.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## struct_scope_base -> condition_pos . ident [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## condition_pos
##
2020-10-04 17:49:45 +03:00
expected the name of this struct condition
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON DATA IDENT CONTENT YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 281.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## struct_scope_base -> DATA ident CONTENT . typ [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## DATA ident CONTENT
##
2020-10-04 17:49:45 +03:00
expected the type of this struct data
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON DATA IDENT YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 280.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## struct_scope_base -> DATA ident . CONTENT typ [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## DATA ident
##
2020-10-04 17:49:45 +03:00
expected the type of this struct data, introduced by the content keyword
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON DATA YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 279.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## struct_scope_base -> DATA . ident CONTENT typ [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## DATA
##
2021-05-15 02:16:08 +03:00
expected the name of this struct data
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 278.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## code_item -> DECLARATION STRUCT constructor COLON . list(struct_scope) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## DECLARATION STRUCT constructor COLON
##
2020-10-04 17:49:45 +03:00
expected struct data or condition
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 277.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## code_item -> DECLARATION STRUCT constructor . COLON list(struct_scope) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## DECLARATION STRUCT constructor
##
2020-10-04 17:49:45 +03:00
expected a colon
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION STRUCT YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 276.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## code_item -> DECLARATION STRUCT . constructor COLON list(struct_scope) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## DECLARATION STRUCT
##
2020-10-04 17:49:45 +03:00
expected the struct name
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE DECLARATION YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 275.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## code_item -> DECLARATION . STRUCT constructor COLON list(struct_scope) [ SCOPE END_CODE DECLARATION ]
## code_item -> DECLARATION . SCOPE constructor COLON nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ]
2022-03-28 15:43:38 +03:00
## code_item -> DECLARATION . ENUM constructor COLON list(enum_decl_line) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
## DECLARATION
##
2020-10-04 17:49:45 +03:00
expected the kind of the declaration (struct, scope or enum)
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION CARDINAL THEN
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 240.
2020-04-25 20:22:53 +03:00
##
2020-05-15 00:31:57 +03:00
## nonempty_list(scope_item) -> scope_item . [ SCOPE END_CODE DECLARATION ]
## nonempty_list(scope_item) -> scope_item . nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-05-15 00:31:57 +03:00
## scope_item
2020-04-25 20:22:53 +03:00
##
## 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).
2022-12-12 18:02:07 +03:00
## In state 78, spurious reduction of production small_expression -> CARDINAL
## In state 82, spurious reduction of production primitive_expression -> small_expression
## In state 84, spurious reduction of production base_expression -> primitive_expression
## In state 123, spurious reduction of production unop_expression -> base_expression
## In state 79, spurious reduction of production mult_expression -> unop_expression
## In state 141, spurious reduction of production sum_expression -> mult_expression
## In state 124, spurious reduction of production compare_expression -> sum_expression
## In state 152, spurious reduction of production logical_atom -> compare_expression
## In state 147, spurious reduction of production logical_or_expression -> logical_atom
## In state 143, spurious reduction of production logical_expression -> logical_or_expression
## In state 174, spurious reduction of production expression -> logical_expression
## In state 234, spurious reduction of production assertion_base -> expression
## In state 235, spurious reduction of production assertion -> option(condition_consequence) assertion_base
## In state 239, spurious reduction of production scope_item -> ASSERTION assertion
2020-04-25 20:22:53 +03:00
##
2021-05-15 02:16:08 +03:00
expected a new scope use item
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION FIXED IDENT BY YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 231.
2020-04-25 20:22:53 +03:00
##
2020-12-18 15:13:51 +03:00
## assertion -> FIXED qident BY . ident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## FIXED qident BY
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected the legislative text by which the value of the variable is fixed
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION FIXED IDENT WITH_V
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 230.
2020-04-25 20:22:53 +03:00
##
2020-12-18 15:13:51 +03:00
## assertion -> FIXED qident . BY ident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## FIXED qident
##
## 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).
2022-12-12 18:02:07 +03:00
## In state 224, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident
## In state 216, spurious reduction of production qident -> separated_nonempty_list(DOT,ident)
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected the legislative text by which the value of the variable is fixed
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION FIXED YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 229.
2020-04-25 20:22:53 +03:00
##
2020-12-18 15:13:51 +03:00
## assertion -> FIXED . qident BY ident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## FIXED
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected the name of the variable that should be fixed
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION UNDER_CONDITION TRUE THEN
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 237.
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## condition_consequence -> condition . CONSEQUENCE [ VERTICAL TRUE SUM STATE NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FILLED FALSE EXISTS DEFINED_AS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## condition
##
## 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).
2022-12-12 18:02:07 +03:00
## In state 82, spurious reduction of production primitive_expression -> small_expression
## In state 84, spurious reduction of production base_expression -> primitive_expression
## In state 123, spurious reduction of production unop_expression -> base_expression
## In state 79, spurious reduction of production mult_expression -> unop_expression
## In state 141, spurious reduction of production sum_expression -> mult_expression
## In state 124, spurious reduction of production compare_expression -> sum_expression
## In state 152, spurious reduction of production logical_atom -> compare_expression
## In state 147, spurious reduction of production logical_or_expression -> logical_atom
## In state 143, spurious reduction of production logical_expression -> logical_or_expression
## In state 174, spurious reduction of production expression -> logical_expression
## In state 228, spurious reduction of production condition -> UNDER_CONDITION expression
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected a consequence for this definition under condition
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION UNDER_CONDITION YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 227.
2020-04-25 20:22:53 +03:00
##
2020-10-04 02:25:37 +03:00
## condition -> UNDER_CONDITION . expression [ CONSEQUENCE ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## UNDER_CONDITION
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected an expression for this condition
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT UNDER_CONDITION
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 217.
2020-04-25 20:22:53 +03:00
##
2020-12-18 15:13:51 +03:00
## assertion -> VARIES qident . WITH_V base_expression option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## VARIES qident
##
## 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).
2022-12-12 18:02:07 +03:00
## In state 224, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident
## In state 216, spurious reduction of production qident -> separated_nonempty_list(DOT,ident)
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected an indication about what this variable varies with
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT WITH_V TRUE XOR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 219.
2020-04-25 20:22:53 +03:00
##
2020-12-18 15:13:51 +03:00
## assertion -> VARIES qident WITH_V base_expression . option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## VARIES qident WITH_V base_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).
2022-12-12 18:02:07 +03:00
## In state 82, spurious reduction of production primitive_expression -> small_expression
## In state 84, spurious reduction of production base_expression -> primitive_expression
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected an indication about the variation sense of the variable, or a new scope item
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT WITH_V YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 218.
2020-04-25 20:22:53 +03:00
##
2020-12-18 15:13:51 +03:00
## assertion -> VARIES qident WITH_V . base_expression option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## VARIES qident WITH_V
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
the variable varies with an expression that was expected here
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 215.
2020-04-25 20:22:53 +03:00
##
2020-12-18 15:13:51 +03:00
## assertion -> VARIES . qident WITH_V base_expression option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## VARIES
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expecting the name of the varying variable
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 214.
2020-04-25 20:22:53 +03:00
##
2020-12-18 15:13:51 +03:00
## scope_item -> ASSERTION . assertion [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## ASSERTION
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected an expression that shoud be asserted during execution
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT DEFINED_AS YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 268.
2020-04-25 20:22:53 +03:00
##
2022-02-28 16:33:07 +03:00
## definition -> option(label) option(exception_to) DEFINITION qident option(definition_parameters) option(state) option(condition_consequence) DEFINED_AS . expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2022-02-28 16:33:07 +03:00
## option(label) option(exception_to) DEFINITION qident option(definition_parameters) option(state) option(condition_consequence) DEFINED_AS
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected an expression for the definition
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT OF IDENT DECREASING
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 265.
2020-04-25 20:22:53 +03:00
##
2022-02-28 16:33:07 +03:00
## definition -> option(label) option(exception_to) DEFINITION qident option(definition_parameters) . option(state) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-12-18 15:13:51 +03:00
## option(label) option(exception_to) DEFINITION qident option(definition_parameters)
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected a expression for defining this function, introduced by the defined as keyword
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT WITH_V
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 264.
2020-04-25 20:22:53 +03:00
##
2022-02-28 16:33:07 +03:00
## definition -> option(label) option(exception_to) DEFINITION qident . option(definition_parameters) option(state) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-12-18 15:13:51 +03:00
## option(label) option(exception_to) DEFINITION qident
2020-10-04 02:25:37 +03:00
##
## 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).
2022-12-12 18:02:07 +03:00
## In state 224, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident
## In state 216, spurious reduction of production qident -> separated_nonempty_list(DOT,ident)
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected the defined as keyword to introduce the definition of this variable
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 263.
2020-04-25 20:22:53 +03:00
##
2022-02-28 16:33:07 +03:00
## definition -> option(label) option(exception_to) DEFINITION . qident option(definition_parameters) option(state) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-12-18 15:13:51 +03:00
## option(label) option(exception_to) DEFINITION
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected the name of the variable you want to define
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON EXCEPTION IDENT YEAR
2020-12-24 19:17:11 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 246.
2020-12-24 19:17:11 +03:00
##
2022-02-28 16:33:07 +03:00
## definition -> option(label) option(exception_to) . DEFINITION qident option(definition_parameters) option(state) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
## rule -> option(label) option(exception_to) . RULE rule_expr option(condition_consequence) option(state) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-12-24 19:17:11 +03:00
##
## The known suffix of the stack is as follows:
## option(label) option(exception_to)
##
expected a rule or a definition after the exception declaration
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON EXCEPTION YEAR
2020-12-24 19:17:11 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 243.
2020-12-24 19:17:11 +03:00
##
2021-01-21 05:48:10 +03:00
## exception_to -> EXCEPTION . option(ident) [ RULE DEFINITION ]
2020-12-24 19:17:11 +03:00
##
## The known suffix of the stack is as follows:
## EXCEPTION
##
expected the label to which the exception is referring back
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON LABEL IDENT DEFINED_AS
2020-12-24 19:17:11 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 242.
2020-12-24 19:17:11 +03:00
##
2022-02-28 16:33:07 +03:00
## definition -> option(label) . option(exception_to) DEFINITION qident option(definition_parameters) option(state) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
## rule -> option(label) . option(exception_to) RULE rule_expr option(condition_consequence) option(state) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-12-24 19:17:11 +03:00
##
## The known suffix of the stack is as follows:
## option(label)
##
expected a rule or a definition after the label declaration
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON LABEL YEAR
2020-12-24 19:17:11 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 212.
2020-12-24 19:17:11 +03:00
##
## label -> LABEL . ident [ RULE EXCEPTION DEFINITION ]
##
## The known suffix of the stack is as follows:
## LABEL
##
expected the name of the label
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT DOT YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 225.
2020-04-25 20:22:53 +03:00
##
2022-02-28 16:33:07 +03:00
## separated_nonempty_list(DOT,ident) -> ident DOT . separated_nonempty_list(DOT,ident) [ WITH_V UNDER_CONDITION STATE OF NOT FILLED DEFINED_AS BY ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## ident DOT
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected a struct field or a sub-scope context item after the dot
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT NOT FALSE
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 256.
2020-04-25 20:22:53 +03:00
##
2020-12-18 15:13:51 +03:00
## rule_consequence -> option(NOT) . FILLED [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## option(NOT)
2020-04-25 20:22:53 +03:00
##
2021-05-15 02:16:08 +03:00
expected the filled keyword the this rule
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT OF IDENT YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 248.
2020-04-25 20:22:53 +03:00
##
2022-02-28 16:33:07 +03:00
## rule -> option(label) option(exception_to) RULE rule_expr . option(condition_consequence) option(state) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-12-18 15:13:51 +03:00
## option(label) option(exception_to) RULE rule_expr
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected the expression of the rule
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT OF YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 259.
2020-04-25 20:22:53 +03:00
##
2022-02-28 16:33:07 +03:00
## definition_parameters -> OF . ident [ UNDER_CONDITION STATE NOT FILLED DEFINED_AS ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## OF
2020-04-25 20:22:53 +03:00
##
2021-05-15 02:16:08 +03:00
expected the name of the parameter for this dependent variable
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT WITH_V
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 258.
2020-04-25 20:22:53 +03:00
##
2022-02-28 16:33:07 +03:00
## rule_expr -> qident . option(definition_parameters) [ UNDER_CONDITION STATE NOT FILLED ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## qident
2020-04-25 20:22:53 +03:00
##
## 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).
2022-12-12 18:02:07 +03:00
## In state 224, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident
## In state 216, spurious reduction of production qident -> separated_nonempty_list(DOT,ident)
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected a condition or a consequence for this rule
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 224.
2020-04-25 20:22:53 +03:00
##
2022-02-28 16:33:07 +03:00
## separated_nonempty_list(DOT,ident) -> ident . [ WITH_V UNDER_CONDITION STATE OF NOT FILLED DEFINED_AS BY ]
## separated_nonempty_list(DOT,ident) -> ident . DOT separated_nonempty_list(DOT,ident) [ WITH_V UNDER_CONDITION STATE OF NOT FILLED DEFINED_AS BY ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## ident
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected a condition or a consequence for this rule, or the rest of the variable qualified name
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 247.
2020-04-25 20:22:53 +03:00
##
2022-02-28 16:33:07 +03:00
## rule -> option(label) option(exception_to) RULE . rule_expr option(condition_consequence) option(state) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-12-18 15:13:51 +03:00
## option(label) option(exception_to) RULE
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected the name of the variable subject to the rule
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 211.
2020-04-25 20:22:53 +03:00
##
2020-10-04 02:25:37 +03:00
## code_item -> SCOPE constructor option(scope_use_condition) COLON . nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## SCOPE constructor option(scope_use_condition) COLON
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected a scope use item: a rule, definition or assertion
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR CONTENT TRUE YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 109.
2020-04-25 20:22:53 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## enum_inject_content -> CONTENT small_expression . [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
## small_expression -> small_expression . DOT option(terminated(constructor,DOT)) ident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## CONTENT small_expression
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
the expression for the content of the enum case is already well-formed, expected an operator to form a bigger expression
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR CONTENT YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 108.
2020-04-25 20:22:53 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## enum_inject_content -> CONTENT . small_expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## CONTENT
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected an expression for the content of this enum case
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR DOT CONSTRUCTOR ALL
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 107.
2021-05-15 02:16:08 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## struct_or_enum_inject -> constructor option(preceded(DOT,constructor)) . option(enum_inject_content) [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
2021-05-15 02:16:08 +03:00
##
## The known suffix of the stack is as follows:
## constructor option(preceded(DOT,constructor))
##
expected the rest of the path, or the content of the enum constructor
2020-12-24 19:17:11 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR DOT YEAR
2020-12-24 19:17:11 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 91.
2021-05-15 02:16:08 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## option(preceded(DOT,constructor)) -> DOT . constructor [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTENT CONTAINS CONSTRUCTOR CONSEQUENCE COLON ASSERTION AND ALT ]
2021-05-15 02:16:08 +03:00
##
## The known suffix of the stack is as follows:
## DOT
##
expected the rest of the path after the dot
2020-12-24 19:17:11 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT IDENT COLON CARDINAL THEN
2020-12-24 19:17:11 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 74.
2020-12-24 19:17:11 +03:00
##
2022-10-21 16:47:17 +03:00
## nonempty_list(preceded(ALT,struct_content_field)) -> ALT struct_content_field . [ RBRACKET ]
## nonempty_list(preceded(ALT,struct_content_field)) -> ALT struct_content_field . nonempty_list(preceded(ALT,struct_content_field)) [ RBRACKET ]
2020-12-24 19:17:11 +03:00
##
## The known suffix of the stack is as follows:
2022-10-21 16:47:17 +03:00
## ALT struct_content_field
2020-12-24 19:17:11 +03:00
##
## 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).
2022-12-12 18:02:07 +03:00
## In state 78, spurious reduction of production small_expression -> CARDINAL
## In state 82, spurious reduction of production primitive_expression -> small_expression
## In state 84, spurious reduction of production base_expression -> primitive_expression
## In state 123, spurious reduction of production unop_expression -> base_expression
## In state 79, spurious reduction of production mult_expression -> unop_expression
## In state 141, spurious reduction of production sum_expression -> mult_expression
## In state 124, spurious reduction of production compare_expression -> sum_expression
## In state 152, spurious reduction of production logical_atom -> compare_expression
## In state 147, spurious reduction of production logical_or_expression -> logical_atom
## In state 143, spurious reduction of production logical_expression -> logical_or_expression
## In state 153, spurious reduction of production struct_content_field -> ident COLON logical_expression
2020-12-24 19:17:11 +03:00
##
expected another structure field or the closing bracket
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT IDENT COLON YEAR
2020-12-24 19:17:11 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 77.
2020-12-24 19:17:11 +03:00
##
## struct_content_field -> ident COLON . logical_expression [ RBRACKET ALT ]
##
## The known suffix of the stack is as follows:
## ident COLON
##
expected the expression for this struct field
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT IDENT YEAR
2020-12-24 19:17:11 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 76.
2020-12-24 19:17:11 +03:00
##
## struct_content_field -> ident . COLON logical_expression [ RBRACKET ALT ]
##
## The known suffix of the stack is as follows:
## ident
##
expected a colon
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT YEAR
2020-12-24 19:17:11 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 73.
2020-12-24 19:17:11 +03:00
##
2022-10-21 16:47:17 +03:00
## nonempty_list(preceded(ALT,struct_content_field)) -> ALT . struct_content_field [ RBRACKET ]
## nonempty_list(preceded(ALT,struct_content_field)) -> ALT . struct_content_field nonempty_list(preceded(ALT,struct_content_field)) [ RBRACKET ]
2020-12-24 19:17:11 +03:00
##
## The known suffix of the stack is as follows:
2022-10-21 16:47:17 +03:00
## ALT
2020-12-24 19:17:11 +03:00
##
expected the name of the structure field
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET YEAR
2020-12-24 19:17:11 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 72.
2020-12-24 19:17:11 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## struct_inject_content -> LBRACKET . nonempty_list(preceded(ALT,struct_content_field)) RBRACKET [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
2020-12-24 19:17:11 +03:00
##
## The known suffix of the stack is as follows:
## LBRACKET
##
expected structure fields introduced by --
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 98.
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## base_expression -> constructor . OF LBRACKET list(preceded(ALT,struct_content_field)) RBRACKET [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
## struct_or_enum_inject -> constructor . option(preceded(DOT,constructor)) option(enum_inject_content) [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
## struct_or_enum_inject -> constructor . struct_inject_content [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## constructor
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected a payload for the enum case constructor, or the rest of the expression (with an operator ?)
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN CARDINAL SUCH THAT YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 182.
2020-04-25 20:22:53 +03:00
##
2022-07-26 14:40:43 +03:00
## expression -> exists_prefix . expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## exists_prefix
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected an expression for the existential test
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN TRUE SUCH YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 188.
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## exists_prefix -> exists_marked ident IN primitive_expression SUCH . THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## exists_marked ident IN primitive_expression SUCH
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected a keyword to complete the "such that" construction
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 186.
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## exists_prefix -> exists_marked ident IN . primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## exists_marked ident IN
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected an expression that designates the set subject to the existential test
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 185.
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## exists_prefix -> exists_marked ident . IN primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## exists_marked ident
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected the "in" keyword to continue this existential test
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 184.
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## exists_prefix -> exists_marked . ident IN primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## exists_marked
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected an identifier that will designate the existential witness for the test
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT IN CARDINAL WE_HAVE YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 175.
2020-04-25 20:22:53 +03:00
##
2022-07-26 14:40:43 +03:00
## expression -> forall_prefix . expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## forall_prefix
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected an expression for the universal test
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT IN YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 178.
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## forall_prefix -> for_all_marked ident IN . primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## for_all_marked ident IN
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected the expression designating the set on which to perform the universal test
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 177.
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## forall_prefix -> for_all_marked ident . IN primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## for_all_marked ident
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected the "in" keyword for the rest of the universal test
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 176.
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## forall_prefix -> for_all_marked . ident IN primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## for_all_marked
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected an identifier for the bound variable of the universal test
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 171.
2020-04-25 20:22:53 +03:00
##
2020-10-04 02:25:37 +03:00
## for_all_marked -> FOR . ALL [ IDENT ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## FOR
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected the "all" keyword to mean the "for all" construction of the universal test
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF TRUE SEMICOLON
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 190.
2020-04-25 20:22:53 +03:00
##
2022-07-26 14:40:43 +03:00
## expression -> IF expression . THEN expression ELSE expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## IF 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).
2022-12-12 18:02:07 +03:00
## In state 82, spurious reduction of production primitive_expression -> small_expression
## In state 84, spurious reduction of production base_expression -> primitive_expression
## In state 123, spurious reduction of production unop_expression -> base_expression
## In state 79, spurious reduction of production mult_expression -> unop_expression
## In state 141, spurious reduction of production sum_expression -> mult_expression
## In state 124, spurious reduction of production compare_expression -> sum_expression
## In state 152, spurious reduction of production logical_atom -> compare_expression
## In state 147, spurious reduction of production logical_or_expression -> logical_atom
## In state 143, spurious reduction of production logical_expression -> logical_or_expression
## In state 174, spurious reduction of production expression -> logical_expression
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected the "then" keyword as the conditional expression is complete
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 170.
2020-04-25 20:22:53 +03:00
##
2022-07-26 14:40:43 +03:00
## expression -> IF . expression THEN expression ELSE expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## IF
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected an expression for the test of the conditional
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION INT_LITERAL WITH_V
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 63.
2020-04-25 20:22:53 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## literal -> num_literal . option(unit_literal) [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## num_literal
2020-04-25 20:22:53 +03:00
##
2021-05-15 02:16:08 +03:00
expected a unit for this literal, or a valid operator to complete the expression
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LPAREN TRUE THEN
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 198.
2020-04-25 20:22:53 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## atomic_expression -> LPAREN expression . RPAREN [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## LPAREN 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).
2022-12-12 18:02:07 +03:00
## In state 82, spurious reduction of production primitive_expression -> small_expression
## In state 84, spurious reduction of production base_expression -> primitive_expression
## In state 123, spurious reduction of production unop_expression -> base_expression
## In state 79, spurious reduction of production mult_expression -> unop_expression
## In state 141, spurious reduction of production sum_expression -> mult_expression
## In state 124, spurious reduction of production compare_expression -> sum_expression
## In state 152, spurious reduction of production logical_atom -> compare_expression
## In state 147, spurious reduction of production logical_or_expression -> logical_atom
## In state 143, spurious reduction of production logical_expression -> logical_or_expression
## In state 174, spurious reduction of production expression -> logical_expression
2020-04-25 20:22:53 +03:00
##
2020-10-05 01:39:29 +03:00
unmatched parenthesis that should have been closed by here
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LPAREN YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 36.
2020-04-25 20:22:53 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## atomic_expression -> LPAREN . expression RPAREN [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## LPAREN
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected an expression inside the parenthesis
2020-04-25 20:22:53 +03:00
2021-01-10 20:28:56 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LSQUARE TRUE THEN
2021-01-10 20:28:56 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 204.
2021-01-10 20:28:56 +03:00
##
## separated_nonempty_list(SEMICOLON,expression) -> expression . [ RSQUARE ]
## separated_nonempty_list(SEMICOLON,expression) -> expression . SEMICOLON separated_nonempty_list(SEMICOLON,expression) [ RSQUARE ]
##
## The known suffix of the stack is as follows:
## 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).
2022-12-12 18:02:07 +03:00
## In state 82, spurious reduction of production primitive_expression -> small_expression
## In state 84, spurious reduction of production base_expression -> primitive_expression
## In state 123, spurious reduction of production unop_expression -> base_expression
## In state 79, spurious reduction of production mult_expression -> unop_expression
## In state 141, spurious reduction of production sum_expression -> mult_expression
## In state 124, spurious reduction of production compare_expression -> sum_expression
## In state 152, spurious reduction of production logical_atom -> compare_expression
## In state 147, spurious reduction of production logical_or_expression -> logical_atom
## In state 143, spurious reduction of production logical_expression -> logical_or_expression
## In state 174, spurious reduction of production expression -> logical_expression
2021-01-10 20:28:56 +03:00
##
2021-05-15 02:16:08 +03:00
expected a semicolon or a right square bracket after the collection element
2021-01-10 20:28:56 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LSQUARE YEAR
2021-01-10 20:28:56 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 32.
2021-01-10 20:28:56 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## small_expression -> LSQUARE . loption(separated_nonempty_list(SEMICOLON,expression)) RSQUARE [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
2021-01-10 20:28:56 +03:00
##
## The known suffix of the stack is as follows:
## LSQUARE
##
expected a collection element
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR COLON CARDINAL RBRACKET
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 161.
2020-04-25 20:22:53 +03:00
##
2022-07-26 14:40:43 +03:00
## match_arms -> ALT match_arm . match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2021-05-15 02:16:08 +03:00
## ALT match_arm
2020-10-04 02:25:37 +03:00
##
## 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).
2022-12-12 18:02:07 +03:00
## In state 78, spurious reduction of production small_expression -> CARDINAL
## In state 82, spurious reduction of production primitive_expression -> small_expression
## In state 84, spurious reduction of production base_expression -> primitive_expression
## In state 123, spurious reduction of production unop_expression -> base_expression
## In state 79, spurious reduction of production mult_expression -> unop_expression
## In state 141, spurious reduction of production sum_expression -> mult_expression
## In state 124, spurious reduction of production compare_expression -> sum_expression
## In state 152, spurious reduction of production logical_atom -> compare_expression
## In state 147, spurious reduction of production logical_or_expression -> logical_atom
## In state 143, spurious reduction of production logical_expression -> logical_or_expression
## In state 165, spurious reduction of production match_arm -> constructor_binding COLON logical_expression
2020-04-25 20:22:53 +03:00
##
2021-05-15 02:16:08 +03:00
expected the "with pattern" keyword to complete the pattern matching expression
2020-10-04 02:25:37 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR COLON YEAR
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 164.
2021-05-15 02:16:08 +03:00
##
2022-07-26 14:40:43 +03:00
## match_arm -> constructor_binding COLON . logical_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ALT ]
2021-05-15 02:16:08 +03:00
##
## The known suffix of the stack is as follows:
## constructor_binding COLON
##
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
expected a correct expression for this match arm
2020-10-04 02:25:37 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR XOR
2020-10-04 02:25:37 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 163.
2020-10-04 02:25:37 +03:00
##
2022-07-26 14:40:43 +03:00
## match_arm -> constructor_binding . COLON logical_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ALT ]
2020-10-04 02:25:37 +03:00
##
## The known suffix of the stack is as follows:
2021-05-15 02:16:08 +03:00
## constructor_binding
##
## 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).
2022-12-12 18:02:07 +03:00
## In state 90, spurious reduction of production option(preceded(DOT,constructor)) ->
## In state 93, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor))
## In state 86, spurious reduction of production optional_binding ->
## In state 95, spurious reduction of production constructor_binding -> maybe_qualified_constructor optional_binding
2020-04-25 20:22:53 +03:00
##
2021-05-15 02:16:08 +03:00
expected a constructor payload binding or a colon
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 53.
2020-04-25 20:22:53 +03:00
##
2022-07-26 14:40:43 +03:00
## match_arms -> ALT . match_arm match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## ALT
2020-04-25 20:22:53 +03:00
##
2020-10-04 17:49:45 +03:00
expected the name of the constructor for the enum case in the pattern matching
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 52.
2020-04-25 20:22:53 +03:00
##
2022-07-26 14:40:43 +03:00
## expression -> MATCH primitive_expression WITH . match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## MATCH primitive_expression WITH
2020-04-25 20:22:53 +03:00
##
2020-10-05 00:52:55 +03:00
expected a pattern matching case
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH YEAR
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 37.
2021-05-15 02:16:08 +03:00
##
2022-07-26 14:40:43 +03:00
## expression -> MATCH . primitive_expression WITH match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## MATCH
2020-04-25 20:22:53 +03:00
##
2020-10-05 00:52:55 +03:00
expected an expression to match with
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION SUM YEAR
2020-04-25 20:22:53 +03:00
##
2022-07-21 15:14:22 +03:00
## Ends in an error in state: 15.
2020-04-25 20:22:53 +03:00
##
2020-12-30 01:43:00 +03:00
## aggregate_func -> SUM . typ_base [ FOR ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-12-30 01:43:00 +03:00
## SUM
2020-04-25 20:22:53 +03:00
##
2020-10-05 00:52:55 +03:00
expected the "for" keyword to spell the aggregation
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE ASSERTION
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 210.
2020-04-25 20:22:53 +03:00
##
2020-10-04 02:25:37 +03:00
## code_item -> SCOPE constructor option(scope_use_condition) . COLON nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## SCOPE constructor option(scope_use_condition)
2020-04-25 20:22:53 +03:00
##
## 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).
2022-12-12 18:02:07 +03:00
## In state 82, spurious reduction of production primitive_expression -> small_expression
## In state 84, spurious reduction of production base_expression -> primitive_expression
## In state 123, spurious reduction of production unop_expression -> base_expression
## In state 79, spurious reduction of production mult_expression -> unop_expression
## In state 141, spurious reduction of production sum_expression -> mult_expression
## In state 124, spurious reduction of production compare_expression -> sum_expression
## In state 152, spurious reduction of production logical_atom -> compare_expression
## In state 147, spurious reduction of production logical_or_expression -> logical_atom
## In state 143, spurious reduction of production logical_expression -> logical_or_expression
## In state 174, spurious reduction of production expression -> logical_expression
## In state 208, spurious reduction of production scope_use_condition -> UNDER_CONDITION expression
## In state 209, spurious reduction of production option(scope_use_condition) -> scope_use_condition
2020-04-25 20:22:53 +03:00
##
2020-10-05 00:52:55 +03:00
expected a colon after the scope use precondition
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE DOT CONSTRUCTOR DOT YEAR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 46.
2021-05-15 02:16:08 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## small_expression -> small_expression DOT option(terminated(constructor,DOT)) . ident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
2021-05-15 02:16:08 +03:00
##
## The known suffix of the stack is as follows:
## small_expression DOT option(terminated(constructor,DOT))
##
expected the rest of the path after the dot
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE DOT CONSTRUCTOR YEAR
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 49.
2021-05-15 02:16:08 +03:00
##
## option(terminated(constructor,DOT)) -> constructor . DOT [ IDENT ]
##
## The known suffix of the stack is as follows:
## constructor
##
expected the rest of the path after a dot
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE DOT YEAR
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 45.
2020-04-25 20:22:53 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## small_expression -> small_expression DOT . option(terminated(constructor,DOT)) ident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## small_expression DOT
2020-04-25 20:22:53 +03:00
##
2021-05-15 02:16:08 +03:00
expected the name of the struct field of the expression before
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE INCREASING
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 141.
2020-04-25 20:22:53 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## mult_expression -> mult_expression . mult_op unop_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
## sum_expression -> mult_expression . [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MINUS LESSER_EQUAL LESSER LABEL IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2022-07-29 18:45:48 +03:00
## mult_expression
2020-10-04 02:25:37 +03:00
##
## 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).
2022-12-12 18:02:07 +03:00
## In state 82, spurious reduction of production primitive_expression -> small_expression
## In state 84, spurious reduction of production base_expression -> primitive_expression
## In state 123, spurious reduction of production unop_expression -> base_expression
## In state 79, spurious reduction of production mult_expression -> unop_expression
2020-04-25 20:22:53 +03:00
##
2020-10-05 00:52:55 +03:00
expected an operator to compose the expression on the left
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR CONSTRUCTOR
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 86.
2021-05-15 02:16:08 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## constructor_binding -> maybe_qualified_constructor . optional_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
2021-05-15 02:16:08 +03:00
##
## The known suffix of the stack is as follows:
## maybe_qualified_constructor
##
## 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).
2022-12-12 18:02:07 +03:00
## In state 90, spurious reduction of production option(preceded(DOT,constructor)) ->
## In state 93, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor))
2020-04-25 20:22:53 +03:00
##
2021-05-15 02:16:08 +03:00
a enum constructor pattern should be followed by a payload
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR OF CONSTRUCTOR XOR
2020-04-25 20:22:53 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 88.
2021-05-15 02:16:08 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## optional_binding -> OF maybe_qualified_constructor . constructor_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
2021-05-15 02:16:08 +03:00
##
## The known suffix of the stack is as follows:
## OF maybe_qualified_constructor
##
## 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).
2022-12-12 18:02:07 +03:00
## In state 90, spurious reduction of production option(preceded(DOT,constructor)) ->
## In state 93, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor))
2021-05-15 02:16:08 +03:00
##
unexpected expression following a function application with an enum constructor name
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR OF YEAR
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 87.
2021-05-15 02:16:08 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## optional_binding -> OF . ident [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
## optional_binding -> OF . maybe_qualified_constructor constructor_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
2021-05-15 02:16:08 +03:00
##
## The known suffix of the stack is as follows:
## OF
##
expecting an expression to stand in as the function argument
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR YEAR
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 90.
2021-05-15 02:16:08 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## maybe_qualified_constructor -> constructor . option(preceded(DOT,constructor)) [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSTRUCTOR CONSEQUENCE COLON ASSERTION AND ALT ]
2021-05-15 02:16:08 +03:00
##
## The known suffix of the stack is as follows:
## constructor
##
the expression before ended, what follows next should be an operator or the rest of the code structure
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE YEAR
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 82.
2020-04-25 20:22:53 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## base_expression -> small_expression . OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
## primitive_expression -> small_expression . [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
## small_expression -> small_expression . DOT option(terminated(constructor,DOT)) ident [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2020-10-04 02:25:37 +03:00
## small_expression
2020-04-25 20:22:53 +03:00
##
2022-09-15 18:32:20 +03:00
expected the function application operator
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION VERTICAL YEAR
2020-10-04 02:25:37 +03:00
##
2021-10-01 11:01:25 +03:00
## Ends in an error in state: 11.
2020-10-04 02:25:37 +03:00
##
Add overloaded operators for the common operations
This uses the same disambiguation mechanism put in place for
structures, calling the typer on individual rules on the desugared AST
to propagate types, in order to resolve ambiguous operators like `+`
to their strongly typed counterparts (`+!`, `+.`, `+$`, `+@`, `+$`) in
the translation to scopelang.
The patch includes some normalisation of the definition of all the
operators, and classifies them based on their typing policy instead of
their arity. It also adds a little more flexibility:
- a couple new operators, like `-` on date and duration
- optional type annotation on some aggregation constructions
The `Shared_ast` lib is also lightly restructured, with the `Expr`
module split into `Type`, `Operator` and `Expr`.
2022-11-29 11:47:53 +03:00
## literal -> VERTICAL . DATE_LITERAL VERTICAL [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ]
2020-10-04 02:25:37 +03:00
##
## The known suffix of the stack is as follows:
2021-05-15 02:16:08 +03:00
## VERTICAL
2020-10-04 02:25:37 +03:00
##
2021-05-15 02:16:08 +03:00
expected the year for this date literal
2020-10-04 02:25:37 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION YEAR
2020-04-25 20:22:53 +03:00
##
2021-10-01 11:01:25 +03:00
## Ends in an error in state: 10.
2020-04-25 20:22:53 +03:00
##
2021-05-15 02:16:08 +03:00
## scope_use_condition -> UNDER_CONDITION . expression [ COLON ]
2020-10-04 02:25:37 +03:00
##
## The known suffix of the stack is as follows:
2021-05-15 02:16:08 +03:00
## UNDER_CONDITION
2020-10-04 02:25:37 +03:00
##
2021-05-15 02:16:08 +03:00
expected an expression
2020-10-04 02:25:37 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE CONSTRUCTOR YEAR
2020-10-04 02:25:37 +03:00
##
2021-10-01 11:01:25 +03:00
## Ends in an error in state: 9.
2020-10-04 02:25:37 +03:00
##
2021-05-15 02:16:08 +03:00
## code_item -> SCOPE constructor . option(scope_use_condition) COLON nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2021-05-15 02:16:08 +03:00
## SCOPE constructor
2020-04-25 20:22:53 +03:00
##
2021-05-15 02:16:08 +03:00
expected a scope use condition or the content of this scope use
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE SCOPE YEAR
2020-04-25 20:22:53 +03:00
##
2021-10-01 11:01:25 +03:00
## Ends in an error in state: 7.
2020-04-25 20:22:53 +03:00
##
2021-05-15 02:16:08 +03:00
## code_item -> SCOPE . constructor option(scope_use_condition) COLON nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2021-05-15 02:16:08 +03:00
## SCOPE
2020-10-04 02:25:37 +03:00
##
2021-05-15 02:16:08 +03:00
expected the name of the scope being used
2020-10-04 02:25:37 +03:00
2021-05-15 02:16:08 +03:00
source_file: BEGIN_CODE YEAR
2020-10-04 02:25:37 +03:00
##
2022-12-12 18:02:07 +03:00
## Ends in an error in state: 353.
2020-10-04 02:25:37 +03:00
##
2021-10-01 11:01:25 +03:00
## source_file_item -> BEGIN_CODE . code END_CODE [ LAW_TEXT LAW_HEADING EOF BEGIN_METADATA BEGIN_DIRECTIVE BEGIN_CODE ]
2020-10-04 02:25:37 +03:00
##
## The known suffix of the stack is as follows:
2021-05-15 02:16:08 +03:00
## BEGIN_CODE
2020-04-25 20:22:53 +03:00
##
2021-05-15 02:16:08 +03:00
expected some declaration or scope use inside this code block
2020-04-25 20:22:53 +03:00
2020-12-24 19:17:11 +03:00
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: LAW_TEXT YEAR
2020-04-25 20:22:53 +03:00
##
2021-08-17 16:49:48 +03:00
## Ends in an error in state: 1.
2020-04-25 20:22:53 +03:00
##
2021-10-01 11:01:25 +03:00
## nonempty_list(LAW_TEXT) -> LAW_TEXT . [ SCOPE LAW_TEXT LAW_HEADING EOF END_CODE DECLARATION BEGIN_METADATA BEGIN_DIRECTIVE BEGIN_CODE ]
## nonempty_list(LAW_TEXT) -> LAW_TEXT . nonempty_list(LAW_TEXT) [ SCOPE LAW_TEXT LAW_HEADING EOF END_CODE DECLARATION BEGIN_METADATA BEGIN_DIRECTIVE BEGIN_CODE ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
2021-08-17 16:49:48 +03:00
## LAW_TEXT
2020-04-25 20:22:53 +03:00
##
2021-05-15 02:16:08 +03:00
expected some law text or code block
2020-04-25 20:22:53 +03:00
2021-05-15 02:16:08 +03:00
source_file: YEAR
2020-04-25 20:22:53 +03:00
##
2020-04-29 16:55:50 +03:00
## Ends in an error in state: 0.
2020-04-25 20:22:53 +03:00
##
2021-05-15 02:16:08 +03:00
## source_file' -> . source_file [ # ]
2020-04-25 20:22:53 +03:00
##
## The known suffix of the stack is as follows:
##
##
2021-05-15 02:16:08 +03:00
expected some law text or code block