diff --git a/src/catala/catala_surface/ast.ml b/src/catala/catala_surface/ast.ml
index c99771ae..00ac832e 100644
--- a/src/catala/catala_surface/ast.ml
+++ b/src/catala/catala_surface/ast.ml
@@ -87,7 +87,7 @@ type binop =
type unop = Not | Minus of op_kind
-type builtin_expression = Cardinal | Now
+type builtin_expression = Cardinal
type aggregate_func = AggregateSum of primitive_typ | AggregateCount
diff --git a/src/catala/catala_surface/desugaring.ml b/src/catala/catala_surface/desugaring.ml
index 9a252ba8..c4971581 100644
--- a/src/catala/catala_surface/desugaring.ml
+++ b/src/catala/catala_surface/desugaring.ml
@@ -410,7 +410,12 @@ let rec translate_expr (scope : Scopelang.Ast.ScopeName.t) (ctxt : Name_resoluti
( Scopelang.Ast.EAbs
( pos,
binder,
- [ (Scopelang.Ast.TLit t, Pos.get_position op'); (Scopelang.Ast.TAny, pos) ] ),
+ [
+ (Scopelang.Ast.TLit t, Pos.get_position op');
+ (Scopelang.Ast.TAny, pos)
+ (* we put any here because the type of the elements of the arrays is not
+ always the type of the accumulator; for instance in AggregateCount. *);
+ ] ),
pos ))
(Bindlib.bind_mvar [| acc_var; param |] f_body)
in
@@ -429,6 +434,45 @@ let rec translate_expr (scope : Scopelang.Ast.ScopeName.t) (ctxt : Name_resoluti
((Scopelang.Ast.EOp (Dcalc.Ast.Ternop Dcalc.Ast.Fold), pos), [ f; init; collection ]),
pos ))
f collection init
+ | MemCollection (member, collection) ->
+ let param_var = Scopelang.Ast.Var.make ("collection_member", pos) in
+ let param = Scopelang.Ast.make_var (param_var, pos) in
+ let collection = rec_helper collection in
+ let init = Bindlib.box (Scopelang.Ast.ELit (Dcalc.Ast.LBool false), pos) in
+ let acc_var = Scopelang.Ast.Var.make ("acc", pos) in
+ let acc = Scopelang.Ast.make_var (acc_var, pos) in
+ let f_body =
+ Bindlib.box_apply3
+ (fun member acc param ->
+ ( Scopelang.Ast.EApp
+ ( (Scopelang.Ast.EOp (Dcalc.Ast.Binop Dcalc.Ast.Or), pos),
+ [
+ ( Scopelang.Ast.EApp
+ ((Scopelang.Ast.EOp (Dcalc.Ast.Binop Dcalc.Ast.Eq), pos), [ member; param ]),
+ pos );
+ acc;
+ ] ),
+ pos ))
+ (translate_expr scope ctxt member)
+ acc param
+ in
+ let f =
+ Bindlib.box_apply
+ (fun binder ->
+ ( Scopelang.Ast.EAbs
+ ( pos,
+ binder,
+ [ (Scopelang.Ast.TLit Dcalc.Ast.TBool, pos); (Scopelang.Ast.TAny, pos) ] ),
+ pos ))
+ (Bindlib.bind_mvar [| acc_var; param_var |] f_body)
+ in
+ Bindlib.box_apply3
+ (fun f collection init ->
+ ( Scopelang.Ast.EApp
+ ((Scopelang.Ast.EOp (Dcalc.Ast.Ternop Dcalc.Ast.Fold), pos), [ f; init; collection ]),
+ pos ))
+ f collection init
+ | Builtin Cardinal -> Bindlib.box (Scopelang.Ast.EOp (Dcalc.Ast.Unop Dcalc.Ast.Length), pos)
| _ ->
Name_resolution.raise_unsupported_feature "desugaring not implemented for this expression" pos
diff --git a/src/catala/catala_surface/lexer.ml b/src/catala/catala_surface/lexer.ml
index a656cbbf..d35b6b1b 100644
--- a/src/catala/catala_surface/lexer.ml
+++ b/src/catala/catala_surface/lexer.ml
@@ -113,7 +113,6 @@ let token_list : (string * token) list =
("exists", EXISTS);
("such", SUCH);
("that", THAT);
- ("now", NOW);
("&&", AND);
("||", OR);
("not", NOT);
@@ -279,9 +278,6 @@ let rec lex_code (lexbuf : lexbuf) : token =
| "that" ->
update_acc lexbuf;
THAT
- | "now" ->
- update_acc lexbuf;
- NOW
| "&&" ->
update_acc lexbuf;
AND
diff --git a/src/catala/catala_surface/lexer_en.ml b/src/catala/catala_surface/lexer_en.ml
index 2952626f..78bda516 100644
--- a/src/catala/catala_surface/lexer_en.ml
+++ b/src/catala/catala_surface/lexer_en.ml
@@ -67,7 +67,6 @@ let token_list_en : (string * token) list =
("exists", EXISTS);
("such", SUCH);
("that", THAT);
- ("now", NOW);
("and", AND);
("or", OR);
("not", NOT);
@@ -236,9 +235,6 @@ let rec lex_code_en (lexbuf : lexbuf) : token =
| "that" ->
L.update_acc lexbuf;
THAT
- | "now" ->
- L.update_acc lexbuf;
- NOW
| "and" ->
L.update_acc lexbuf;
AND
diff --git a/src/catala/catala_surface/lexer_fr.ml b/src/catala/catala_surface/lexer_fr.ml
index 4107bccd..87cace82 100644
--- a/src/catala/catala_surface/lexer_fr.ml
+++ b/src/catala/catala_surface/lexer_fr.ml
@@ -65,7 +65,6 @@ let token_list_fr : (string * token) list =
("existe", EXISTS);
("tel", SUCH);
("que", THAT);
- ("maintenant", NOW);
("et", AND);
("ou", OR);
("non", NOT);
@@ -240,9 +239,6 @@ let rec lex_code_fr (lexbuf : lexbuf) : token =
| "que" ->
L.update_acc lexbuf;
THAT
- | "maintenant" ->
- L.update_acc lexbuf;
- NOW
| "et" ->
L.update_acc lexbuf;
AND
diff --git a/src/catala/catala_surface/parser.messages b/src/catala/catala_surface/parser.messages
index 93d3ee2d..b6ffb9f5 100644
--- a/src/catala/catala_surface/parser.messages
+++ b/src/catala/catala_surface/parser.messages
@@ -1,6 +1,6 @@
source_file_or_master: BEGIN_METADATA BEGIN_CODE END_CODE LAW_TEXT END_CODE
##
-## Ends in an error in state: 328.
+## Ends in an error in state: 327.
##
## metadata_block -> BEGIN_CODE option(law_text) code END_CODE option(law_text) . END_METADATA [ LAW_TEXT LAW_INCLUDE LAW_HEADING LAW_ARTICLE EOF BEGIN_METADATA ]
##
@@ -12,7 +12,7 @@ expected a metadata-closing tag
source_file_or_master: BEGIN_METADATA BEGIN_CODE END_CODE YEAR
##
-## Ends in an error in state: 327.
+## Ends in an error in state: 326.
##
## metadata_block -> BEGIN_CODE option(law_text) code END_CODE . option(law_text) END_METADATA [ LAW_TEXT LAW_INCLUDE LAW_HEADING LAW_ARTICLE EOF BEGIN_METADATA ]
##
@@ -72,7 +72,7 @@ expected a declaration or a scope use
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT CONSTRUCTOR CONTENT TEXT YEAR
##
-## Ends in an error in state: 321.
+## Ends in an error in state: 320.
##
## nonempty_list(enum_decl_line) -> enum_decl_line . [ SCOPE END_CODE DECLARATION ]
## nonempty_list(enum_decl_line) -> enum_decl_line . nonempty_list(enum_decl_line) [ SCOPE END_CODE DECLARATION ]
@@ -85,7 +85,7 @@ expected another enum case, or a new declaration or scope use
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT CONSTRUCTOR CONTENT YEAR
##
-## Ends in an error in state: 316.
+## Ends in an error in state: 315.
##
## enum_decl_line_payload -> CONTENT . typ [ SCOPE END_CODE DECLARATION ALT ]
##
@@ -97,7 +97,7 @@ expected a content type
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT CONSTRUCTOR YEAR
##
-## Ends in an error in state: 315.
+## Ends in an error in state: 314.
##
## enum_decl_line -> ALT constructor . option(enum_decl_line_payload) [ SCOPE END_CODE DECLARATION ALT ]
##
@@ -109,7 +109,7 @@ expected a payload for your enum case, or another case or declaration
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT YEAR
##
-## Ends in an error in state: 314.
+## Ends in an error in state: 313.
##
## enum_decl_line -> ALT . constructor option(enum_decl_line_payload) [ SCOPE END_CODE DECLARATION ALT ]
##
@@ -121,7 +121,7 @@ expected the name of an enum case
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON YEAR
##
-## Ends in an error in state: 313.
+## Ends in an error in state: 312.
##
## code_item -> DECLARATION ENUM constructor COLON . nonempty_list(enum_decl_line) [ SCOPE END_CODE DECLARATION ]
##
@@ -133,7 +133,7 @@ expected an enum case
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION ENUM CONSTRUCTOR YEAR
##
-## Ends in an error in state: 312.
+## Ends in an error in state: 311.
##
## code_item -> DECLARATION ENUM constructor . COLON nonempty_list(enum_decl_line) [ SCOPE END_CODE DECLARATION ]
##
@@ -145,7 +145,7 @@ expected a colon
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION ENUM YEAR
##
-## Ends in an error in state: 311.
+## Ends in an error in state: 310.
##
## code_item -> DECLARATION ENUM . constructor COLON nonempty_list(enum_decl_line) [ SCOPE END_CODE DECLARATION ]
##
@@ -157,7 +157,7 @@ expected the name of your enum
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON CONTEXT IDENT CONDITION YEAR
##
-## Ends in an error in state: 306.
+## Ends in an error in state: 305.
##
## scope_decl_item -> CONTEXT ident CONDITION . option(struct_scope_func) [ SCOPE END_CODE DECLARATION CONTEXT ]
##
@@ -169,7 +169,7 @@ expected the next context item or a dependency declaration for this item
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON CONTEXT IDENT CONTENT TEXT YEAR
##
-## Ends in an error in state: 304.
+## Ends in an error in state: 303.
##
## scope_decl_item -> CONTEXT ident CONTENT typ . option(struct_scope_func) [ SCOPE END_CODE DECLARATION CONTEXT ]
##
@@ -181,7 +181,7 @@ expected the next context item or a dependency declaration for this item
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON CONTEXT IDENT CONTENT YEAR
##
-## Ends in an error in state: 303.
+## Ends in an error in state: 302.
##
## scope_decl_item -> CONTEXT ident CONTENT . typ option(struct_scope_func) [ SCOPE END_CODE DECLARATION CONTEXT ]
##
@@ -193,7 +193,7 @@ expected the type of this context item
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON CONTEXT IDENT SCOPE CONSTRUCTOR YEAR
##
-## Ends in an error in state: 308.
+## Ends in an error in state: 307.
##
## nonempty_list(scope_decl_item) -> scope_decl_item . [ SCOPE END_CODE DECLARATION ]
## nonempty_list(scope_decl_item) -> scope_decl_item . nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ]
@@ -206,7 +206,7 @@ expected another scope context item or the end of the scope declaration
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON CONTEXT IDENT SCOPE YEAR
##
-## Ends in an error in state: 301.
+## Ends in an error in state: 300.
##
## scope_decl_item -> CONTEXT ident SCOPE . constructor [ SCOPE END_CODE DECLARATION CONTEXT ]
##
@@ -218,7 +218,7 @@ expected the name of the subscope for this context item
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON CONTEXT IDENT YEAR
##
-## Ends in an error in state: 300.
+## Ends in an error in state: 299.
##
## scope_decl_item -> CONTEXT ident . CONTENT typ option(struct_scope_func) [ SCOPE END_CODE DECLARATION CONTEXT ]
## scope_decl_item -> CONTEXT ident . SCOPE constructor [ SCOPE END_CODE DECLARATION CONTEXT ]
@@ -232,7 +232,7 @@ expected the kind of this context item: is it a condition, a sub-scope or a data
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON CONTEXT YEAR
##
-## Ends in an error in state: 299.
+## Ends in an error in state: 298.
##
## scope_decl_item -> CONTEXT . ident CONTENT typ option(struct_scope_func) [ SCOPE END_CODE DECLARATION CONTEXT ]
## scope_decl_item -> CONTEXT . ident SCOPE constructor [ SCOPE END_CODE DECLARATION CONTEXT ]
@@ -246,7 +246,7 @@ expected the name of this new context item
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON YEAR
##
-## Ends in an error in state: 298.
+## Ends in an error in state: 297.
##
## code_item -> DECLARATION SCOPE constructor COLON . nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ]
##
@@ -258,7 +258,7 @@ expected a context item introduced by "context"
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR YEAR
##
-## Ends in an error in state: 297.
+## Ends in an error in state: 296.
##
## code_item -> DECLARATION SCOPE constructor . COLON nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ]
##
@@ -270,7 +270,7 @@ expected a colon followed by the list of context items of this scope
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION SCOPE YEAR
##
-## Ends in an error in state: 296.
+## Ends in an error in state: 295.
##
## code_item -> DECLARATION SCOPE . constructor COLON nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ]
##
@@ -282,7 +282,7 @@ expected the name of the scope you are declaring
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT DEPENDS COLLECTION YEAR
##
-## Ends in an error in state: 283.
+## Ends in an error in state: 282.
##
## typ -> collection_marked . typ [ SCOPE END_CODE DEPENDS DECLARATION DATA CONTEXT CONDITION ALT ]
##
@@ -295,7 +295,7 @@ expected a new struct data, or another declaration or scope use
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT DEPENDS TEXT YEAR
##
-## Ends in an error in state: 291.
+## Ends in an error in state: 290.
##
## list(struct_scope) -> struct_scope . list(struct_scope) [ SCOPE END_CODE DECLARATION ]
##
@@ -307,7 +307,7 @@ expected a new struct data, or another declaration or scope use
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT DEPENDS YEAR
##
-## Ends in an error in state: 287.
+## Ends in an error in state: 286.
##
## struct_scope_func -> DEPENDS . typ [ SCOPE END_CODE DECLARATION DATA CONTEXT CONDITION ]
##
@@ -319,7 +319,7 @@ expected the type of the parameter of this struct data function
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT YEAR
##
-## Ends in an error in state: 286.
+## Ends in an error in state: 285.
##
## struct_scope -> struct_scope_base . option(struct_scope_func) [ SCOPE END_CODE DECLARATION DATA CONDITION ]
##
@@ -331,7 +331,7 @@ expected a new struct data, or another declaration or scope use
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION YEAR
##
-## Ends in an error in state: 293.
+## Ends in an error in state: 292.
##
## struct_scope_base -> condition_pos . ident [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ]
##
@@ -343,7 +343,7 @@ expected the name of this struct condition
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON DATA IDENT CONTENT YEAR
##
-## Ends in an error in state: 279.
+## Ends in an error in state: 278.
##
## struct_scope_base -> DATA ident CONTENT . typ [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ]
##
@@ -355,7 +355,7 @@ expected the type of this struct data
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON DATA IDENT YEAR
##
-## Ends in an error in state: 278.
+## Ends in an error in state: 277.
##
## struct_scope_base -> DATA ident . CONTENT typ [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ]
##
@@ -367,7 +367,7 @@ expected the type of this struct data, introduced by the content keyword
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON DATA YEAR
##
-## Ends in an error in state: 277.
+## Ends in an error in state: 276.
##
## struct_scope_base -> DATA . ident CONTENT typ [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ]
##
@@ -379,7 +379,7 @@ expected the name of this struct data
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON YEAR
##
-## Ends in an error in state: 276.
+## Ends in an error in state: 275.
##
## code_item -> DECLARATION STRUCT constructor COLON . list(struct_scope) [ SCOPE END_CODE DECLARATION ]
##
@@ -391,7 +391,7 @@ expected struct data or condition
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR YEAR
##
-## Ends in an error in state: 275.
+## Ends in an error in state: 274.
##
## code_item -> DECLARATION STRUCT constructor . COLON list(struct_scope) [ SCOPE END_CODE DECLARATION ]
##
@@ -403,7 +403,7 @@ expected a colon
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION STRUCT YEAR
##
-## Ends in an error in state: 274.
+## Ends in an error in state: 273.
##
## code_item -> DECLARATION STRUCT . constructor COLON list(struct_scope) [ SCOPE END_CODE DECLARATION ]
##
@@ -415,7 +415,7 @@ expected the struct name
source_file_or_master: LAW_ARTICLE BEGIN_CODE DECLARATION YEAR
##
-## Ends in an error in state: 273.
+## Ends in an error in state: 272.
##
## 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 ]
@@ -429,7 +429,7 @@ expected the kind of the declaration (struct, scope or enum)
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION CARDINAL THEN
##
-## Ends in an error in state: 244.
+## Ends in an error in state: 243.
##
## nonempty_list(scope_item) -> scope_item . [ SCOPE END_CODE DECLARATION ]
## nonempty_list(scope_item) -> scope_item . nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ]
@@ -441,23 +441,23 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 63, spurious reduction of production primitive_expression -> CARDINAL
-## In state 72, spurious reduction of production base_expression -> primitive_expression
-## In state 130, spurious reduction of production mult_expression -> base_expression
-## In state 117, spurious reduction of production sum_expression -> mult_expression
-## In state 93, spurious reduction of production compare_expression -> sum_expression
-## In state 153, spurious reduction of production logical_expression -> compare_expression
-## In state 168, spurious reduction of production expression -> logical_expression
-## In state 238, spurious reduction of production assertion_base -> expression
-## In state 239, spurious reduction of production assertion -> option(condition_consequence) assertion_base
-## In state 243, spurious reduction of production scope_item -> ASSERTION assertion
+## In state 62, spurious reduction of production primitive_expression -> CARDINAL
+## In state 71, spurious reduction of production base_expression -> primitive_expression
+## In state 129, spurious reduction of production mult_expression -> base_expression
+## In state 116, spurious reduction of production sum_expression -> mult_expression
+## In state 92, spurious reduction of production compare_expression -> sum_expression
+## In state 152, spurious reduction of production logical_expression -> compare_expression
+## In state 167, spurious reduction of production expression -> logical_expression
+## In state 237, spurious reduction of production assertion_base -> expression
+## In state 238, spurious reduction of production assertion -> option(condition_consequence) assertion_base
+## In state 242, spurious reduction of production scope_item -> ASSERTION assertion
##
expected a new scope use item
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION FIXED IDENT BY YEAR
##
-## Ends in an error in state: 235.
+## Ends in an error in state: 234.
##
## assertion -> FIXED qident BY . ident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -469,7 +469,7 @@ expected the legislative text by which the value of the variable is fixed
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION FIXED IDENT WITH_V
##
-## Ends in an error in state: 234.
+## Ends in an error in state: 233.
##
## assertion -> FIXED qident . BY ident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -480,15 +480,15 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 228, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident
-## In state 220, spurious reduction of production qident -> separated_nonempty_list(DOT,ident)
+## In state 227, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident
+## In state 219, spurious reduction of production qident -> separated_nonempty_list(DOT,ident)
##
expected the legislative text by which the value of the variable is fixed
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION FIXED YEAR
##
-## Ends in an error in state: 233.
+## Ends in an error in state: 232.
##
## assertion -> FIXED . qident BY ident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -500,7 +500,7 @@ expected the name of the variable that should be fixed
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION UNDER_CONDITION CARDINAL CONSEQUENCE BY
##
-## Ends in an error in state: 237.
+## Ends in an error in state: 236.
##
## assertion -> option(condition_consequence) . assertion_base [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -512,9 +512,9 @@ expected an expression for this definition under condition
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION UNDER_CONDITION CARDINAL THEN
##
-## Ends in an error in state: 241.
+## Ends in an error in state: 240.
##
-## condition_consequence -> condition . CONSEQUENCE [ VERTICAL TRUE SUM NOW NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FILLED FALSE EXISTS DEFINED_AS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
+## condition_consequence -> condition . CONSEQUENCE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FILLED FALSE EXISTS DEFINED_AS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
##
## The known suffix of the stack is as follows:
## condition
@@ -523,21 +523,21 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 63, spurious reduction of production primitive_expression -> CARDINAL
-## In state 72, spurious reduction of production base_expression -> primitive_expression
-## In state 130, spurious reduction of production mult_expression -> base_expression
-## In state 117, spurious reduction of production sum_expression -> mult_expression
-## In state 93, spurious reduction of production compare_expression -> sum_expression
-## In state 153, spurious reduction of production logical_expression -> compare_expression
-## In state 168, spurious reduction of production expression -> logical_expression
-## In state 232, spurious reduction of production condition -> UNDER_CONDITION expression
+## In state 62, spurious reduction of production primitive_expression -> CARDINAL
+## In state 71, spurious reduction of production base_expression -> primitive_expression
+## In state 129, spurious reduction of production mult_expression -> base_expression
+## In state 116, spurious reduction of production sum_expression -> mult_expression
+## In state 92, spurious reduction of production compare_expression -> sum_expression
+## In state 152, spurious reduction of production logical_expression -> compare_expression
+## In state 167, spurious reduction of production expression -> logical_expression
+## In state 231, spurious reduction of production condition -> UNDER_CONDITION expression
##
expected a consequence for this definition under condition
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION UNDER_CONDITION YEAR
##
-## Ends in an error in state: 231.
+## Ends in an error in state: 230.
##
## condition -> UNDER_CONDITION . expression [ CONSEQUENCE ]
##
@@ -549,7 +549,7 @@ expected an expression for this condition
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT UNDER_CONDITION
##
-## Ends in an error in state: 221.
+## Ends in an error in state: 220.
##
## assertion -> VARIES qident . WITH_V base_expression option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -560,15 +560,15 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 228, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident
-## In state 220, spurious reduction of production qident -> separated_nonempty_list(DOT,ident)
+## In state 227, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident
+## In state 219, spurious reduction of production qident -> separated_nonempty_list(DOT,ident)
##
expected an indication about what this variable varies with
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT WITH_V TRUE THEN
##
-## Ends in an error in state: 223.
+## Ends in an error in state: 222.
##
## assertion -> VARIES qident WITH_V base_expression . option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -579,15 +579,15 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 67, spurious reduction of production primitive_expression -> small_expression
-## In state 72, spurious reduction of production base_expression -> primitive_expression
+## In state 66, spurious reduction of production primitive_expression -> small_expression
+## In state 71, spurious reduction of production base_expression -> primitive_expression
##
expected an indication about the variation sense of the variable, or a new scope item
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT WITH_V YEAR
##
-## Ends in an error in state: 222.
+## Ends in an error in state: 221.
##
## assertion -> VARIES qident WITH_V . base_expression option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -599,7 +599,7 @@ the variable varies with an expression that was expected here
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES YEAR
##
-## Ends in an error in state: 219.
+## Ends in an error in state: 218.
##
## assertion -> VARIES . qident WITH_V base_expression option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -611,7 +611,7 @@ expecting the name of the varying variable
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION YEAR
##
-## Ends in an error in state: 218.
+## Ends in an error in state: 217.
##
## scope_item -> ASSERTION . assertion [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -623,7 +623,7 @@ expected an expression that shoud be asserted during execution
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT DEFINED_AS YEAR
##
-## Ends in an error in state: 266.
+## Ends in an error in state: 265.
##
## definition -> option(label) option(exception_to) DEFINITION qident option(definition_parameters) option(condition_consequence) DEFINED_AS . expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -635,7 +635,7 @@ expected an expression for the definition
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT OF IDENT DECREASING
##
-## Ends in an error in state: 264.
+## Ends in an error in state: 263.
##
## definition -> option(label) option(exception_to) DEFINITION qident option(definition_parameters) . option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -647,7 +647,7 @@ expected a expression for defining this function, introduced by the defined as k
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT UNDER_CONDITION CARDINAL CONSEQUENCE DECREASING
##
-## Ends in an error in state: 265.
+## Ends in an error in state: 264.
##
## definition -> option(label) option(exception_to) DEFINITION qident option(definition_parameters) option(condition_consequence) . DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -659,7 +659,7 @@ expected an expression for the consequence of this definition under condition
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT WITH_V
##
-## Ends in an error in state: 263.
+## Ends in an error in state: 262.
##
## definition -> option(label) option(exception_to) DEFINITION qident . option(definition_parameters) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -670,15 +670,15 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 228, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident
-## In state 220, spurious reduction of production qident -> separated_nonempty_list(DOT,ident)
+## In state 227, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident
+## In state 219, spurious reduction of production qident -> separated_nonempty_list(DOT,ident)
##
expected the defined as keyword to introduce the definition of this variable
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION YEAR
##
-## Ends in an error in state: 262.
+## Ends in an error in state: 261.
##
## definition -> option(label) option(exception_to) DEFINITION . qident option(definition_parameters) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -690,7 +690,7 @@ expected the name of the variable you want to define
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON EXCEPTION IDENT DEFINED_AS
##
-## Ends in an error in state: 249.
+## Ends in an error in state: 248.
##
## definition -> option(label) option(exception_to) . DEFINITION qident option(definition_parameters) 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) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
@@ -703,7 +703,7 @@ expected a rule or a definition after the exception declaration
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON EXCEPTION YEAR
##
-## Ends in an error in state: 247.
+## Ends in an error in state: 246.
##
## exception_to -> EXCEPTION . ident [ RULE DEFINITION ]
##
@@ -715,7 +715,7 @@ expected the label to which the exception is referring back
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON LABEL IDENT DEFINED_AS
##
-## Ends in an error in state: 246.
+## Ends in an error in state: 245.
##
## definition -> option(label) . option(exception_to) DEFINITION qident option(definition_parameters) 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) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
@@ -728,7 +728,7 @@ expected a rule or a definition after the label declaration
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON LABEL YEAR
##
-## Ends in an error in state: 216.
+## Ends in an error in state: 215.
##
## label -> LABEL . ident [ RULE EXCEPTION DEFINITION ]
##
@@ -740,7 +740,7 @@ expected the name of the label
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT DOT YEAR
##
-## Ends in an error in state: 229.
+## Ends in an error in state: 228.
##
## separated_nonempty_list(DOT,ident) -> ident DOT . separated_nonempty_list(DOT,ident) [ WITH_V UNDER_CONDITION OF NOT FILLED DEFINED_AS BY ]
##
@@ -752,7 +752,7 @@ expected a struct field or a sub-scope context item after the dot
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT NOT FALSE
##
-## Ends in an error in state: 255.
+## Ends in an error in state: 254.
##
## rule_consequence -> option(NOT) . FILLED [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -764,7 +764,7 @@ expected the filled keyword the this rule
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT OF IDENT YEAR
##
-## Ends in an error in state: 251.
+## Ends in an error in state: 250.
##
## rule -> option(label) option(exception_to) RULE rule_expr . option(condition_consequence) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -776,7 +776,7 @@ expected the expression of the rule
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT OF YEAR
##
-## Ends in an error in state: 258.
+## Ends in an error in state: 257.
##
## definition_parameters -> OF . ident [ UNDER_CONDITION NOT FILLED DEFINED_AS ]
##
@@ -788,7 +788,7 @@ expected the name of the parameter for this dependent variable
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT UNDER_CONDITION TRUE CONSEQUENCE FALSE
##
-## Ends in an error in state: 252.
+## Ends in an error in state: 251.
##
## rule -> option(label) option(exception_to) RULE rule_expr option(condition_consequence) . rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -800,7 +800,7 @@ expected filled or not filled for a rule consequence
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT WITH_V
##
-## Ends in an error in state: 257.
+## Ends in an error in state: 256.
##
## rule_expr -> qident . option(definition_parameters) [ UNDER_CONDITION NOT FILLED ]
##
@@ -811,15 +811,15 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 228, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident
-## In state 220, spurious reduction of production qident -> separated_nonempty_list(DOT,ident)
+## In state 227, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident
+## In state 219, spurious reduction of production qident -> separated_nonempty_list(DOT,ident)
##
expected a condition or a consequence for this rule
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT YEAR
##
-## Ends in an error in state: 228.
+## Ends in an error in state: 227.
##
## separated_nonempty_list(DOT,ident) -> ident . [ WITH_V UNDER_CONDITION OF NOT FILLED DEFINED_AS BY ]
## separated_nonempty_list(DOT,ident) -> ident . DOT separated_nonempty_list(DOT,ident) [ WITH_V UNDER_CONDITION OF NOT FILLED DEFINED_AS BY ]
@@ -832,7 +832,7 @@ expected a condition or a consequence for this rule, or the rest of the variable
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE YEAR
##
-## Ends in an error in state: 250.
+## Ends in an error in state: 249.
##
## rule -> option(label) option(exception_to) RULE . rule_expr option(condition_consequence) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ]
##
@@ -844,7 +844,7 @@ expected the name of the variable subject to the rule
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR COLON YEAR
##
-## Ends in an error in state: 215.
+## Ends in an error in state: 214.
##
## code_item -> SCOPE constructor option(scope_use_condition) COLON . nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ]
##
@@ -856,7 +856,7 @@ expected a scope use item: a rule, definition or assertion
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CARDINAL YEAR
##
-## Ends in an error in state: 63.
+## Ends in an error in state: 62.
##
## aggregate_func -> CARDINAL . [ FOR ]
## primitive_expression -> CARDINAL . [ WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
@@ -869,7 +869,7 @@ expected the keyword following cardinal to compute the number of elements in a s
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR CONTENT TRUE YEAR
##
-## Ends in an error in state: 161.
+## Ends in an error in state: 160.
##
## enum_inject_content -> CONTENT small_expression . [ WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
## small_expression -> small_expression . ARROW constructor [ WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION ARROW AND ALT ]
@@ -883,7 +883,7 @@ the expression for the content of the enum case is already well-formed, expected
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR CONTENT YEAR
##
-## Ends in an error in state: 160.
+## Ends in an error in state: 159.
##
## enum_inject_content -> CONTENT . small_expression [ WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
##
@@ -896,7 +896,7 @@ expected an expression for the content of this enum case
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT IDENT COLON CARDINAL ALT YEAR
##
-## Ends in an error in state: 89.
+## Ends in an error in state: 88.
##
## separated_nonempty_list(ALT,struct_content_field) -> struct_content_field ALT . separated_nonempty_list(ALT,struct_content_field) [ RBRACKET ]
##
@@ -908,7 +908,7 @@ expected the name of the structure field
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT IDENT COLON CARDINAL THEN
##
-## Ends in an error in state: 88.
+## Ends in an error in state: 87.
##
## separated_nonempty_list(ALT,struct_content_field) -> struct_content_field . [ RBRACKET ]
## separated_nonempty_list(ALT,struct_content_field) -> struct_content_field . ALT separated_nonempty_list(ALT,struct_content_field) [ RBRACKET ]
@@ -920,20 +920,20 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 63, spurious reduction of production primitive_expression -> CARDINAL
-## In state 72, spurious reduction of production base_expression -> primitive_expression
-## In state 130, spurious reduction of production mult_expression -> base_expression
-## In state 117, spurious reduction of production sum_expression -> mult_expression
-## In state 93, spurious reduction of production compare_expression -> sum_expression
-## In state 153, spurious reduction of production logical_expression -> compare_expression
-## In state 152, spurious reduction of production struct_content_field -> ident COLON logical_expression
+## In state 62, spurious reduction of production primitive_expression -> CARDINAL
+## In state 71, spurious reduction of production base_expression -> primitive_expression
+## In state 129, spurious reduction of production mult_expression -> base_expression
+## In state 116, spurious reduction of production sum_expression -> mult_expression
+## In state 92, spurious reduction of production compare_expression -> sum_expression
+## In state 152, spurious reduction of production logical_expression -> compare_expression
+## In state 151, spurious reduction of production struct_content_field -> ident COLON logical_expression
##
expected another structure field or the closing bracket
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT IDENT COLON YEAR
##
-## Ends in an error in state: 92.
+## Ends in an error in state: 91.
##
## struct_content_field -> ident COLON . logical_expression [ RBRACKET ALT ]
##
@@ -945,7 +945,7 @@ expected the expression for this struct field
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT IDENT YEAR
##
-## Ends in an error in state: 91.
+## Ends in an error in state: 90.
##
## struct_content_field -> ident . COLON logical_expression [ RBRACKET ALT ]
##
@@ -957,7 +957,7 @@ expected a colon
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT YEAR
##
-## Ends in an error in state: 87.
+## Ends in an error in state: 86.
##
## struct_or_enum_inject_content -> LBRACKET ALT . separated_nonempty_list(ALT,struct_content_field) RBRACKET [ WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
##
@@ -969,7 +969,7 @@ expected the name of the structure field
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET YEAR
##
-## Ends in an error in state: 86.
+## Ends in an error in state: 85.
##
## struct_or_enum_inject_content -> LBRACKET . ALT separated_nonempty_list(ALT,struct_content_field) RBRACKET [ WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
##
@@ -981,7 +981,7 @@ expected structure fields introduced by --
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR YEAR
##
-## Ends in an error in state: 85.
+## Ends in an error in state: 84.
##
## struct_or_enum_inject -> constructor . struct_or_enum_inject_content [ WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
##
@@ -993,7 +993,7 @@ expected a payload for the enum case constructor, or the rest of the expression
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN CARDINAL SUCH THAT YEAR
##
-## Ends in an error in state: 176.
+## Ends in an error in state: 175.
##
## expression -> exists_prefix . expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
##
@@ -1005,9 +1005,9 @@ expected an expression for the existential test
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN TRUE SUCH YEAR
##
-## Ends in an error in state: 182.
+## Ends in an error in state: 181.
##
-## exists_prefix -> exists_marked ident IN primitive_expression SUCH . THAT [ VERTICAL TRUE SUM NOW NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
+## exists_prefix -> exists_marked ident IN primitive_expression SUCH . THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
##
## The known suffix of the stack is as follows:
## exists_marked ident IN primitive_expression SUCH
@@ -1017,9 +1017,9 @@ expected a keyword to complete the "such that" construction
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN TRUE WITH
##
-## Ends in an error in state: 181.
+## Ends in an error in state: 180.
##
-## exists_prefix -> exists_marked ident IN primitive_expression . SUCH THAT [ VERTICAL TRUE SUM NOW NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
+## exists_prefix -> exists_marked ident IN primitive_expression . SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
##
## The known suffix of the stack is as follows:
## exists_marked ident IN primitive_expression
@@ -1028,16 +1028,16 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 67, spurious reduction of production primitive_expression -> small_expression
+## In state 66, spurious reduction of production primitive_expression -> small_expression
##
expected a keyword to form the "such that" expression for the existential test
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN YEAR
##
-## Ends in an error in state: 180.
+## Ends in an error in state: 179.
##
-## exists_prefix -> exists_marked ident IN . primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOW NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
+## exists_prefix -> exists_marked ident IN . primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
##
## The known suffix of the stack is as follows:
## exists_marked ident IN
@@ -1047,9 +1047,9 @@ expected an expression that designates the set subject to the existential test
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT YEAR
##
-## Ends in an error in state: 179.
+## Ends in an error in state: 178.
##
-## exists_prefix -> exists_marked ident . IN primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOW NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
+## exists_prefix -> exists_marked ident . IN primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
##
## The known suffix of the stack is as follows:
## exists_marked ident
@@ -1059,9 +1059,9 @@ expected the "in" keyword to continue this existential test
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS YEAR
##
-## Ends in an error in state: 178.
+## Ends in an error in state: 177.
##
-## exists_prefix -> exists_marked . ident IN primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOW NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
+## exists_prefix -> exists_marked . ident IN primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
##
## The known suffix of the stack is as follows:
## exists_marked
@@ -1071,7 +1071,7 @@ expected an identifier that will designate the existential witness for the test
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT IN CARDINAL WE_HAVE YEAR
##
-## Ends in an error in state: 169.
+## Ends in an error in state: 168.
##
## expression -> forall_prefix . expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
##
@@ -1083,9 +1083,9 @@ expected an expression for the universal test
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT IN TRUE WITH
##
-## Ends in an error in state: 173.
+## Ends in an error in state: 172.
##
-## forall_prefix -> for_all_marked ident IN primitive_expression . WE_HAVE [ VERTICAL TRUE SUM NOW NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
+## forall_prefix -> for_all_marked ident IN primitive_expression . WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
##
## The known suffix of the stack is as follows:
## for_all_marked ident IN primitive_expression
@@ -1094,16 +1094,16 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 67, spurious reduction of production primitive_expression -> small_expression
+## In state 66, spurious reduction of production primitive_expression -> small_expression
##
expected the "we have" keyword for this universal test
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT IN YEAR
##
-## Ends in an error in state: 172.
+## Ends in an error in state: 171.
##
-## forall_prefix -> for_all_marked ident IN . primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOW NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
+## forall_prefix -> for_all_marked ident IN . primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
##
## The known suffix of the stack is as follows:
## for_all_marked ident IN
@@ -1113,9 +1113,9 @@ expected the expression designating the set on which to perform the universal te
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT YEAR
##
-## Ends in an error in state: 171.
+## Ends in an error in state: 170.
##
-## forall_prefix -> for_all_marked ident . IN primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOW NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
+## forall_prefix -> for_all_marked ident . IN primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
##
## The known suffix of the stack is as follows:
## for_all_marked ident
@@ -1125,9 +1125,9 @@ expected the "in" keyword for the rest of the universal test
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL YEAR
##
-## Ends in an error in state: 170.
+## Ends in an error in state: 169.
##
-## forall_prefix -> for_all_marked . ident IN primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOW NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
+## forall_prefix -> for_all_marked . ident IN primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MATCH LSQUARE LPAREN INT_LITERAL IF IDENT FOR FALSE EXISTS DECIMAL_LITERAL CONSTRUCTOR CARDINAL ]
##
## The known suffix of the stack is as follows:
## for_all_marked
@@ -1137,7 +1137,7 @@ expected an identifier for the bound variable of the universal test
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR YEAR
##
-## Ends in an error in state: 58.
+## Ends in an error in state: 57.
##
## for_all_marked -> FOR . ALL [ IDENT ]
##
@@ -1149,7 +1149,7 @@ expected the "all" keyword to mean the "for all" construction of the universal t
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF TRUE SCOPE
##
-## Ends in an error in state: 184.
+## Ends in an error in state: 183.
##
## expression -> IF expression . THEN expression ELSE base_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
##
@@ -1160,20 +1160,20 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 67, spurious reduction of production primitive_expression -> small_expression
-## In state 72, spurious reduction of production base_expression -> primitive_expression
-## In state 130, spurious reduction of production mult_expression -> base_expression
-## In state 117, spurious reduction of production sum_expression -> mult_expression
-## In state 93, spurious reduction of production compare_expression -> sum_expression
-## In state 153, spurious reduction of production logical_expression -> compare_expression
-## In state 168, spurious reduction of production expression -> logical_expression
+## In state 66, spurious reduction of production primitive_expression -> small_expression
+## In state 71, spurious reduction of production base_expression -> primitive_expression
+## In state 129, spurious reduction of production mult_expression -> base_expression
+## In state 116, spurious reduction of production sum_expression -> mult_expression
+## In state 92, spurious reduction of production compare_expression -> sum_expression
+## In state 152, spurious reduction of production logical_expression -> compare_expression
+## In state 167, spurious reduction of production expression -> logical_expression
##
expected the "then" keyword as the conditional expression is complete
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF TRUE THEN TRUE ELSE YEAR
##
-## Ends in an error in state: 187.
+## Ends in an error in state: 186.
##
## expression -> IF expression THEN expression ELSE . base_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
##
@@ -1185,7 +1185,7 @@ expected an expression for the "else" branch of this conditional construction
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF TRUE THEN TRUE THEN
##
-## Ends in an error in state: 186.
+## Ends in an error in state: 185.
##
## expression -> IF expression THEN expression . ELSE base_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
##
@@ -1196,20 +1196,20 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 67, spurious reduction of production primitive_expression -> small_expression
-## In state 72, spurious reduction of production base_expression -> primitive_expression
-## In state 130, spurious reduction of production mult_expression -> base_expression
-## In state 117, spurious reduction of production sum_expression -> mult_expression
-## In state 93, spurious reduction of production compare_expression -> sum_expression
-## In state 153, spurious reduction of production logical_expression -> compare_expression
-## In state 168, spurious reduction of production expression -> logical_expression
+## In state 66, spurious reduction of production primitive_expression -> small_expression
+## In state 71, spurious reduction of production base_expression -> primitive_expression
+## In state 129, spurious reduction of production mult_expression -> base_expression
+## In state 116, spurious reduction of production sum_expression -> mult_expression
+## In state 92, spurious reduction of production compare_expression -> sum_expression
+## In state 152, spurious reduction of production logical_expression -> compare_expression
+## In state 167, spurious reduction of production expression -> logical_expression
##
expected the "else" branch of this conditional expression as the "then" branch is complete
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF TRUE THEN YEAR
##
-## Ends in an error in state: 185.
+## Ends in an error in state: 184.
##
## expression -> IF expression THEN . expression ELSE base_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
##
@@ -1221,7 +1221,7 @@ expected an expression the for the "then" branch of the conditiona
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF YEAR
##
-## Ends in an error in state: 56.
+## Ends in an error in state: 55.
##
## expression -> IF . expression THEN expression ELSE base_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
##
@@ -1233,7 +1233,7 @@ expected an expression for the test of the conditional
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION INT_LITERAL WITH_V
##
-## Ends in an error in state: 76.
+## Ends in an error in state: 75.
##
## literal -> num_literal . option(unit_literal) [ WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION ARROW AND ALT ]
##
@@ -1245,7 +1245,7 @@ expected a unit for this literal, or a valid operator to complete the expression
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LPAREN TRUE THEN
##
-## Ends in an error in state: 189.
+## Ends in an error in state: 188.
##
## atomic_expression -> LPAREN expression . RPAREN [ WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION ARROW AND ALT ]
##
@@ -1256,20 +1256,20 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 67, spurious reduction of production primitive_expression -> small_expression
-## In state 72, spurious reduction of production base_expression -> primitive_expression
-## In state 130, spurious reduction of production mult_expression -> base_expression
-## In state 117, spurious reduction of production sum_expression -> mult_expression
-## In state 93, spurious reduction of production compare_expression -> sum_expression
-## In state 153, spurious reduction of production logical_expression -> compare_expression
-## In state 168, spurious reduction of production expression -> logical_expression
+## In state 66, spurious reduction of production primitive_expression -> small_expression
+## In state 71, spurious reduction of production base_expression -> primitive_expression
+## In state 129, spurious reduction of production mult_expression -> base_expression
+## In state 116, spurious reduction of production sum_expression -> mult_expression
+## In state 92, spurious reduction of production compare_expression -> sum_expression
+## In state 152, spurious reduction of production logical_expression -> compare_expression
+## In state 167, spurious reduction of production expression -> logical_expression
##
unmatched parenthesis that should have been closed by here
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LPAREN YEAR
##
-## Ends in an error in state: 54.
+## Ends in an error in state: 53.
##
## atomic_expression -> LPAREN . expression RPAREN [ WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION ARROW AND ALT ]
##
@@ -1281,7 +1281,7 @@ expected an expression inside the parenthesis
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WE_HAVE
##
-## Ends in an error in state: 197.
+## Ends in an error in state: 196.
##
## expression -> MATCH primitive_expression . WITH match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
##
@@ -1292,14 +1292,14 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 67, spurious reduction of production primitive_expression -> small_expression
+## In state 66, spurious reduction of production primitive_expression -> small_expression
##
expected the "with patter" keyword to complete the pattern matching expression
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR COLON NOT TRUE OR
##
-## Ends in an error in state: 200.
+## Ends in an error in state: 199.
##
## match_arms -> ALT match_arm . match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
##
@@ -1310,20 +1310,20 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 67, spurious reduction of production primitive_expression -> small_expression
-## In state 72, spurious reduction of production base_expression -> primitive_expression
-## In state 130, spurious reduction of production mult_expression -> base_expression
-## In state 117, spurious reduction of production sum_expression -> mult_expression
-## In state 93, spurious reduction of production compare_expression -> sum_expression
-## In state 151, spurious reduction of production logical_expression -> logical_unop compare_expression
-## In state 204, spurious reduction of production match_arm -> constructor_binding COLON logical_expression
+## In state 66, spurious reduction of production primitive_expression -> small_expression
+## In state 71, spurious reduction of production base_expression -> primitive_expression
+## In state 129, spurious reduction of production mult_expression -> base_expression
+## In state 116, spurious reduction of production sum_expression -> mult_expression
+## In state 92, spurious reduction of production compare_expression -> sum_expression
+## In state 150, spurious reduction of production logical_expression -> logical_unop compare_expression
+## In state 203, spurious reduction of production match_arm -> constructor_binding COLON logical_expression
##
expected another match case or the rest of the expression since the previous match case is complete
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR COLON YEAR
##
-## Ends in an error in state: 203.
+## Ends in an error in state: 202.
##
## match_arm -> constructor_binding COLON . logical_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ALT ]
##
@@ -1335,7 +1335,7 @@ expected an expression for this pattern matching case
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR OF CONSTRUCTOR YEAR
##
-## Ends in an error in state: 208.
+## Ends in an error in state: 207.
##
## optional_binding -> OF constructor . constructor_binding [ COLON ]
##
@@ -1347,7 +1347,7 @@ expected a colon or a binding for the enum constructor payload
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR OF IDENT YEAR
##
-## Ends in an error in state: 202.
+## Ends in an error in state: 201.
##
## match_arm -> constructor_binding . COLON logical_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ALT ]
##
@@ -1359,7 +1359,7 @@ expected a colon and then the expression for this matching case
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR OF YEAR
##
-## Ends in an error in state: 206.
+## Ends in an error in state: 205.
##
## optional_binding -> OF . ident [ COLON ]
## optional_binding -> OF . constructor constructor_binding [ COLON ]
@@ -1372,7 +1372,7 @@ expected an identifier for this enum case binding
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR YEAR
##
-## Ends in an error in state: 205.
+## Ends in an error in state: 204.
##
## constructor_binding -> constructor . optional_binding [ COLON ]
##
@@ -1384,7 +1384,7 @@ expected a binding for the constructor payload, or a colon and the matching case
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT YEAR
##
-## Ends in an error in state: 199.
+## Ends in an error in state: 198.
##
## match_arms -> ALT . match_arm match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
##
@@ -1396,7 +1396,7 @@ expected the name of the constructor for the enum case in the pattern matching
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH YEAR
##
-## Ends in an error in state: 198.
+## Ends in an error in state: 197.
##
## expression -> MATCH primitive_expression WITH . match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
##
@@ -1408,7 +1408,7 @@ expected a pattern matching case
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH YEAR
##
-## Ends in an error in state: 52.
+## Ends in an error in state: 51.
##
## expression -> MATCH . primitive_expression WITH match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ]
##
@@ -1420,7 +1420,7 @@ expected an expression to match with
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MINUS YEAR
##
-## Ends in an error in state: 64.
+## Ends in an error in state: 63.
##
## sum_expression -> sum_unop . sum_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET OR NOT_EQUAL LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
##
@@ -1432,7 +1432,7 @@ expected an expression to take the opposite of
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION NOT YEAR
##
-## Ends in an error in state: 150.
+## Ends in an error in state: 149.
##
## logical_expression -> logical_unop . compare_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ALT ]
##
@@ -1461,7 +1461,7 @@ expected the "for" keyword to spell the aggregation
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE ARROW YEAR
##
-## Ends in an error in state: 70.
+## Ends in an error in state: 69.
##
## small_expression -> small_expression ARROW . constructor [ WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION ARROW AND ALT ]
##
@@ -1473,7 +1473,7 @@ expected a constructor, to get the payload of this enum case
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE ASSERTION
##
-## Ends in an error in state: 214.
+## Ends in an error in state: 213.
##
## code_item -> SCOPE constructor option(scope_use_condition) . COLON nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ]
##
@@ -1484,22 +1484,22 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 67, spurious reduction of production primitive_expression -> small_expression
-## In state 72, spurious reduction of production base_expression -> primitive_expression
-## In state 130, spurious reduction of production mult_expression -> base_expression
-## In state 117, spurious reduction of production sum_expression -> mult_expression
-## In state 93, spurious reduction of production compare_expression -> sum_expression
-## In state 153, spurious reduction of production logical_expression -> compare_expression
-## In state 168, spurious reduction of production expression -> logical_expression
-## In state 212, spurious reduction of production scope_use_condition -> UNDER_CONDITION expression
-## In state 213, spurious reduction of production option(scope_use_condition) -> scope_use_condition
+## In state 66, spurious reduction of production primitive_expression -> small_expression
+## In state 71, spurious reduction of production base_expression -> primitive_expression
+## In state 129, spurious reduction of production mult_expression -> base_expression
+## In state 116, spurious reduction of production sum_expression -> mult_expression
+## In state 92, spurious reduction of production compare_expression -> sum_expression
+## In state 152, spurious reduction of production logical_expression -> compare_expression
+## In state 167, spurious reduction of production expression -> logical_expression
+## In state 211, spurious reduction of production scope_use_condition -> UNDER_CONDITION expression
+## In state 212, spurious reduction of production option(scope_use_condition) -> scope_use_condition
##
expected a colon after the scope use precondition
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE DOT YEAR
##
-## Ends in an error in state: 68.
+## Ends in an error in state: 67.
##
## small_expression -> small_expression DOT . ident [ WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION ARROW AND ALT ]
##
@@ -1511,7 +1511,7 @@ expected an identifier standing for a struct field or a subscope name
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE IN YEAR
##
-## Ends in an error in state: 166.
+## Ends in an error in state: 165.
##
## base_expression -> primitive_expression IN . base_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
##
@@ -1523,7 +1523,7 @@ expected an expression standing for the set you want to test for membership
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE INCREASING
##
-## Ends in an error in state: 130.
+## Ends in an error in state: 129.
##
## mult_expression -> base_expression . [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
## mult_expression -> base_expression . mult_op mult_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
@@ -1535,15 +1535,15 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 67, spurious reduction of production primitive_expression -> small_expression
-## In state 72, spurious reduction of production base_expression -> primitive_expression
+## In state 66, spurious reduction of production primitive_expression -> small_expression
+## In state 71, spurious reduction of production base_expression -> primitive_expression
##
expected an operator to compose the expression on the left
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE MULT YEAR
##
-## Ends in an error in state: 137.
+## Ends in an error in state: 136.
##
## mult_expression -> base_expression mult_op . mult_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
##
@@ -1555,7 +1555,7 @@ expected an expression on the right side of the multiplication or division opera
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE NOT_EQUAL YEAR
##
-## Ends in an error in state: 116.
+## Ends in an error in state: 115.
##
## compare_expression -> sum_expression compare_op . compare_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET OR LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
##
@@ -1567,7 +1567,7 @@ expected an expression on the right side of the comparison operator
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE OF YEAR
##
-## Ends in an error in state: 75.
+## Ends in an error in state: 74.
##
## base_expression -> primitive_expression OF . base_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
##
@@ -1579,7 +1579,7 @@ expected an expression for the argument of this function call
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE OR YEAR
##
-## Ends in an error in state: 156.
+## Ends in an error in state: 155.
##
## logical_expression -> compare_expression logical_op . logical_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ALT ]
##
@@ -1591,7 +1591,7 @@ expected an expression on the right side of the logical operator
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE PLUS YEAR
##
-## Ends in an error in state: 128.
+## Ends in an error in state: 127.
##
## sum_expression -> mult_expression sum_op . sum_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET OR NOT_EQUAL LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
##
@@ -1603,7 +1603,7 @@ expected an expression on the right side of the sum or minus operator
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WE_HAVE
##
-## Ends in an error in state: 72.
+## Ends in an error in state: 71.
##
## base_expression -> primitive_expression . [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
## base_expression -> primitive_expression . OF base_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
@@ -1617,14 +1617,14 @@ source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION
## This implies that, although the LR(1) items shown above provide an
## accurate view of the past (what has been recognized so far), they
## may provide an INCOMPLETE view of the future (what was expected next).
-## In state 67, spurious reduction of production primitive_expression -> small_expression
+## In state 66, spurious reduction of production primitive_expression -> small_expression
##
expected an operator to compose the expression on the left with
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH YEAR
##
-## Ends in an error in state: 73.
+## Ends in an error in state: 72.
##
## base_expression -> primitive_expression WITH . constructor [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
##
@@ -1636,7 +1636,7 @@ expected an enum constructor to test if the expression on the left
source_file_or_master: LAW_ARTICLE BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE YEAR
##
-## Ends in an error in state: 67.
+## Ends in an error in state: 66.
##
## primitive_expression -> small_expression . [ WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ]
## small_expression -> small_expression . ARROW constructor [ WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION ARROW AND ALT ]
@@ -1758,7 +1758,7 @@ expected the name of the scope you want to use
source_file_or_master: LAW_ARTICLE BEGIN_CODE YEAR
##
-## Ends in an error in state: 337.
+## Ends in an error in state: 336.
##
## law_article_item -> BEGIN_CODE . code END_CODE [ LAW_TEXT LAW_INCLUDE LAW_HEADING LAW_ARTICLE EOF BEGIN_METADATA BEGIN_CODE ]
##
@@ -1770,7 +1770,7 @@ expected a declaration or a scope use
source_file_or_master: LAW_ARTICLE LAW_TEXT YEAR
##
-## Ends in an error in state: 342.
+## Ends in an error in state: 341.
##
## law_articles_items -> law_article_item . law_articles_items [ LAW_INCLUDE LAW_HEADING LAW_ARTICLE EOF BEGIN_METADATA ]
##
@@ -1782,7 +1782,7 @@ expected a code block, a metadata block, more law text or a heading
source_file_or_master: LAW_ARTICLE YEAR
##
-## Ends in an error in state: 336.
+## Ends in an error in state: 335.
##
## source_file_article -> law_article . law_articles_items [ LAW_INCLUDE LAW_HEADING LAW_ARTICLE EOF BEGIN_METADATA ]
##
@@ -1794,7 +1794,7 @@ expected a code block, a metadata block, more law text or a heading
source_file_or_master: LAW_HEADING YEAR
##
-## Ends in an error in state: 331.
+## Ends in an error in state: 330.
##
## source_file_after_text -> source_file_item . list(law_intermediate_text) source_file_after_text [ # ]
##
@@ -1806,7 +1806,7 @@ expected an article title, another heading or some text
source_file_or_master: LAW_TEXT YEAR
##
-## Ends in an error in state: 346.
+## Ends in an error in state: 345.
##
## list(law_intermediate_text) -> law_intermediate_text . list(law_intermediate_text) [ LAW_INCLUDE LAW_HEADING LAW_ARTICLE EOF BEGIN_METADATA ]
##
diff --git a/src/catala/catala_surface/parser.mly b/src/catala/catala_surface/parser.mly
index ee6eeac6..218cedda 100644
--- a/src/catala/catala_surface/parser.mly
+++ b/src/catala/catala_surface/parser.mly
@@ -47,7 +47,7 @@
%token LESSER_MONEY GREATER_MONEY LESSER_EQUAL_MONEY GREATER_EQUAL_MONEY
%token LESSER_DATE GREATER_DATE LESSER_EQUAL_DATE GREATER_EQUAL_DATE
%token LESSER_DURATION GREATER_DURATION LESSER_EQUAL_DURATION GREATER_EQUAL_DURATION
-%token EXISTS IN SUCH THAT NOW
+%token EXISTS IN SUCH THAT
%token DOT AND OR LPAREN RPAREN EQUAL
%token CARDINAL ASSERTION FIXED BY YEAR MONTH DAY
%token PLUS MINUS MULT DIV
@@ -137,7 +137,6 @@ struct_or_enum_inject:
primitive_expression:
| e = small_expression { e }
-| NOW { (Builtin Now, $sloc) }
| CARDINAL {
(Builtin Cardinal, $sloc)
}
diff --git a/src/catala/catala_surface/parser_errors.ml b/src/catala/catala_surface/parser_errors.ml
index 18e6d119..31f89845 100644
--- a/src/catala/catala_surface/parser_errors.ml
+++ b/src/catala/catala_surface/parser_errors.ml
@@ -13,11 +13,11 @@ let message s =
"expected another inclusion of a Catala file, since this file is a master file which can \
only contain inclusions of other Catala files\n"
| 8 -> "expected some text, another heading or a law article\n"
- | 346 -> "expected a heading, an article title or some text\n"
- | 331 -> "expected an article title, another heading or some text\n"
- | 336 -> "expected a code block, a metadata block, more law text or a heading\n"
- | 342 -> "expected a code block, a metadata block, more law text or a heading\n"
- | 337 -> "expected a declaration or a scope use\n"
+ | 345 -> "expected a heading, an article title or some text\n"
+ | 330 -> "expected an article title, another heading or some text\n"
+ | 335 -> "expected a code block, a metadata block, more law text or a heading\n"
+ | 341 -> "expected a code block, a metadata block, more law text or a heading\n"
+ | 336 -> "expected a declaration or a scope use\n"
| 22 -> "expected the name of the scope you want to use\n"
| 24 -> "expected a scope use precondition or a colon\n"
| 25 -> "expected an expression which will act as the condition\n"
@@ -27,138 +27,138 @@ let message s =
| 30 -> "expected a \"/\"\n"
| 31 -> "expected the third component of the date literal\n"
| 32 -> "expected a delimiter to finish the date literal\n"
- | 67 -> "expected an operator to compose the expression on the left with\n"
- | 73 -> "expected an enum constructor to test if the expression on the left\n"
- | 72 -> "expected an operator to compose the expression on the left with\n"
- | 128 -> "expected an expression on the right side of the sum or minus operator\n"
- | 156 -> "expected an expression on the right side of the logical operator\n"
- | 75 -> "expected an expression for the argument of this function call\n"
- | 116 -> "expected an expression on the right side of the comparison operator\n"
- | 137 -> "expected an expression on the right side of the multiplication or division operator\n"
- | 130 -> "expected an operator to compose the expression on the left\n"
- | 166 -> "expected an expression standing for the set you want to test for membership\n"
- | 68 -> "expected an identifier standing for a struct field or a subscope name\n"
- | 214 -> "expected a colon after the scope use precondition\n"
- | 70 -> "expected a constructor, to get the payload of this enum case\n"
+ | 66 -> "expected an operator to compose the expression on the left with\n"
+ | 72 -> "expected an enum constructor to test if the expression on the left\n"
+ | 71 -> "expected an operator to compose the expression on the left with\n"
+ | 127 -> "expected an expression on the right side of the sum or minus operator\n"
+ | 155 -> "expected an expression on the right side of the logical operator\n"
+ | 74 -> "expected an expression for the argument of this function call\n"
+ | 115 -> "expected an expression on the right side of the comparison operator\n"
+ | 136 -> "expected an expression on the right side of the multiplication or division operator\n"
+ | 129 -> "expected an operator to compose the expression on the left\n"
+ | 165 -> "expected an expression standing for the set you want to test for membership\n"
+ | 67 -> "expected an identifier standing for a struct field or a subscope name\n"
+ | 213 -> "expected a colon after the scope use precondition\n"
+ | 69 -> "expected a constructor, to get the payload of this enum case\n"
| 35 -> "expected the \"for\" keyword to spell the aggregation\n"
- | 150 -> "expected an expression to take the negation of\n"
- | 64 -> "expected an expression to take the opposite of\n"
- | 52 -> "expected an expression to match with\n"
- | 198 -> "expected a pattern matching case\n"
- | 199 -> "expected the name of the constructor for the enum case in the pattern matching\n"
- | 205 ->
+ | 149 -> "expected an expression to take the negation of\n"
+ | 63 -> "expected an expression to take the opposite of\n"
+ | 51 -> "expected an expression to match with\n"
+ | 197 -> "expected a pattern matching case\n"
+ | 198 -> "expected the name of the constructor for the enum case in the pattern matching\n"
+ | 204 ->
"expected a binding for the constructor payload, or a colon and the matching case expression\n"
- | 206 -> "expected an identifier for this enum case binding\n"
- | 202 -> "expected a colon and then the expression for this matching case\n"
- | 208 -> "expected a colon or a binding for the enum constructor payload\n"
- | 203 -> "expected an expression for this pattern matching case\n"
- | 200 ->
+ | 205 -> "expected an identifier for this enum case binding\n"
+ | 201 -> "expected a colon and then the expression for this matching case\n"
+ | 207 -> "expected a colon or a binding for the enum constructor payload\n"
+ | 202 -> "expected an expression for this pattern matching case\n"
+ | 199 ->
"expected another match case or the rest of the expression since the previous match case is \
complete\n"
- | 197 -> "expected the \"with patter\" keyword to complete the pattern matching expression\n"
- | 54 -> "expected an expression inside the parenthesis\n"
- | 189 -> "unmatched parenthesis that should have been closed by here\n"
- | 76 -> "expected a unit for this literal, or a valid operator to complete the expression \n"
- | 56 -> "expected an expression for the test of the conditional\n"
- | 185 -> "expected an expression the for the \"then\" branch of the conditiona\n"
- | 186 ->
+ | 196 -> "expected the \"with patter\" keyword to complete the pattern matching expression\n"
+ | 53 -> "expected an expression inside the parenthesis\n"
+ | 188 -> "unmatched parenthesis that should have been closed by here\n"
+ | 75 -> "expected a unit for this literal, or a valid operator to complete the expression \n"
+ | 55 -> "expected an expression for the test of the conditional\n"
+ | 184 -> "expected an expression the for the \"then\" branch of the conditiona\n"
+ | 185 ->
"expected the \"else\" branch of this conditional expression as the \"then\" branch is \
complete\n"
- | 187 -> "expected an expression for the \"else\" branch of this conditional construction\n"
- | 184 -> "expected the \"then\" keyword as the conditional expression is complete\n"
- | 58 ->
+ | 186 -> "expected an expression for the \"else\" branch of this conditional construction\n"
+ | 183 -> "expected the \"then\" keyword as the conditional expression is complete\n"
+ | 57 ->
"expected the \"all\" keyword to mean the \"for all\" construction of the universal test\n"
- | 170 -> "expected an identifier for the bound variable of the universal test\n"
- | 171 -> "expected the \"in\" keyword for the rest of the universal test\n"
- | 172 -> "expected the expression designating the set on which to perform the universal test\n"
- | 173 -> "expected the \"we have\" keyword for this universal test\n"
- | 169 -> "expected an expression for the universal test\n"
- | 178 -> "expected an identifier that will designate the existential witness for the test\n"
- | 179 -> "expected the \"in\" keyword to continue this existential test\n"
- | 180 -> "expected an expression that designates the set subject to the existential test\n"
- | 181 -> "expected a keyword to form the \"such that\" expression for the existential test\n"
- | 182 -> "expected a keyword to complete the \"such that\" construction\n"
- | 176 -> "expected an expression for the existential test\n"
- | 85 ->
+ | 169 -> "expected an identifier for the bound variable of the universal test\n"
+ | 170 -> "expected the \"in\" keyword for the rest of the universal test\n"
+ | 171 -> "expected the expression designating the set on which to perform the universal test\n"
+ | 172 -> "expected the \"we have\" keyword for this universal test\n"
+ | 168 -> "expected an expression for the universal test\n"
+ | 177 -> "expected an identifier that will designate the existential witness for the test\n"
+ | 178 -> "expected the \"in\" keyword to continue this existential test\n"
+ | 179 -> "expected an expression that designates the set subject to the existential test\n"
+ | 180 -> "expected a keyword to form the \"such that\" expression for the existential test\n"
+ | 181 -> "expected a keyword to complete the \"such that\" construction\n"
+ | 175 -> "expected an expression for the existential test\n"
+ | 84 ->
"expected a payload for the enum case constructor, or the rest of the expression (with an \
operator ?)\n"
- | 86 -> "expected structure fields introduced by --\n"
- | 87 -> "expected the name of the structure field\n"
- | 91 -> "expected a colon\n"
- | 92 -> "expected the expression for this struct field\n"
- | 88 -> "expected another structure field or the closing bracket\n"
- | 89 -> "expected the name of the structure field\n"
- | 160 -> "expected an expression for the content of this enum case\n"
- | 161 ->
+ | 85 -> "expected structure fields introduced by --\n"
+ | 86 -> "expected the name of the structure field\n"
+ | 90 -> "expected a colon\n"
+ | 91 -> "expected the expression for this struct field\n"
+ | 87 -> "expected another structure field or the closing bracket\n"
+ | 88 -> "expected the name of the structure field\n"
+ | 159 -> "expected an expression for the content of this enum case\n"
+ | 160 ->
"the expression for the content of the enum case is already well-formed, expected an \
operator to form a bigger expression\n"
- | 63 -> "expected the keyword following cardinal to compute the number of elements in a set\n"
- | 215 -> "expected a scope use item: a rule, definition or assertion\n"
- | 250 -> "expected the name of the variable subject to the rule\n"
- | 228 ->
+ | 62 -> "expected the keyword following cardinal to compute the number of elements in a set\n"
+ | 214 -> "expected a scope use item: a rule, definition or assertion\n"
+ | 249 -> "expected the name of the variable subject to the rule\n"
+ | 227 ->
"expected a condition or a consequence for this rule, or the rest of the variable qualified \
name\n"
- | 257 -> "expected a condition or a consequence for this rule\n"
- | 252 -> "expected filled or not filled for a rule consequence\n"
- | 258 -> "expected the name of the parameter for this dependent variable \n"
- | 251 -> "expected the expression of the rule\n"
- | 255 -> "expected the filled keyword the this rule \n"
- | 229 -> "expected a struct field or a sub-scope context item after the dot\n"
- | 216 -> "expected the name of the label\n"
- | 246 -> "expected a rule or a definition after the label declaration\n"
- | 247 -> "expected the label to which the exception is referring back\n"
- | 249 -> "expected a rule or a definition after the exception declaration\n"
- | 262 -> "expected the name of the variable you want to define\n"
- | 263 -> "expected the defined as keyword to introduce the definition of this variable\n"
- | 265 -> "expected an expression for the consequence of this definition under condition\n"
- | 264 ->
+ | 256 -> "expected a condition or a consequence for this rule\n"
+ | 251 -> "expected filled or not filled for a rule consequence\n"
+ | 257 -> "expected the name of the parameter for this dependent variable \n"
+ | 250 -> "expected the expression of the rule\n"
+ | 254 -> "expected the filled keyword the this rule \n"
+ | 228 -> "expected a struct field or a sub-scope context item after the dot\n"
+ | 215 -> "expected the name of the label\n"
+ | 245 -> "expected a rule or a definition after the label declaration\n"
+ | 246 -> "expected the label to which the exception is referring back\n"
+ | 248 -> "expected a rule or a definition after the exception declaration\n"
+ | 261 -> "expected the name of the variable you want to define\n"
+ | 262 -> "expected the defined as keyword to introduce the definition of this variable\n"
+ | 264 -> "expected an expression for the consequence of this definition under condition\n"
+ | 263 ->
"expected a expression for defining this function, introduced by the defined as keyword\n"
- | 266 -> "expected an expression for the definition\n"
- | 218 -> "expected an expression that shoud be asserted during execution\n"
- | 219 -> "expecting the name of the varying variable\n"
- | 222 -> "the variable varies with an expression that was expected here\n"
- | 223 -> "expected an indication about the variation sense of the variable, or a new scope item\n"
- | 221 -> "expected an indication about what this variable varies with\n"
- | 231 -> "expected an expression for this condition\n"
- | 241 -> "expected a consequence for this definition under condition\n"
- | 237 -> "expected an expression for this definition under condition\n"
- | 233 -> "expected the name of the variable that should be fixed\n"
+ | 265 -> "expected an expression for the definition\n"
+ | 217 -> "expected an expression that shoud be asserted during execution\n"
+ | 218 -> "expecting the name of the varying variable\n"
+ | 221 -> "the variable varies with an expression that was expected here\n"
+ | 222 -> "expected an indication about the variation sense of the variable, or a new scope item\n"
+ | 220 -> "expected an indication about what this variable varies with\n"
+ | 230 -> "expected an expression for this condition\n"
+ | 240 -> "expected a consequence for this definition under condition\n"
+ | 236 -> "expected an expression for this definition under condition\n"
+ | 232 -> "expected the name of the variable that should be fixed\n"
+ | 233 -> "expected the legislative text by which the value of the variable is fixed\n"
| 234 -> "expected the legislative text by which the value of the variable is fixed\n"
- | 235 -> "expected the legislative text by which the value of the variable is fixed\n"
- | 244 -> "expected a new scope use item \n"
- | 273 -> "expected the kind of the declaration (struct, scope or enum)\n"
- | 274 -> "expected the struct name\n"
- | 275 -> "expected a colon\n"
- | 276 -> "expected struct data or condition\n"
- | 277 -> "expected the name of this struct data \n"
- | 278 -> "expected the type of this struct data, introduced by the content keyword\n"
- | 279 -> "expected the type of this struct data\n"
- | 293 -> "expected the name of this struct condition\n"
- | 286 -> "expected a new struct data, or another declaration or scope use\n"
- | 287 -> "expected the type of the parameter of this struct data function\n"
- | 291 -> "expected a new struct data, or another declaration or scope use\n"
- | 283 -> "expected a new struct data, or another declaration or scope use\n"
- | 296 -> "expected the name of the scope you are declaring\n"
- | 297 -> "expected a colon followed by the list of context items of this scope\n"
- | 298 -> "expected a context item introduced by \"context\"\n"
- | 299 -> "expected the name of this new context item\n"
- | 300 -> "expected the kind of this context item: is it a condition, a sub-scope or a data?\n"
- | 301 -> "expected the name of the subscope for this context item\n"
- | 308 -> "expected another scope context item or the end of the scope declaration\n"
- | 303 -> "expected the type of this context item\n"
- | 304 -> "expected the next context item or a dependency declaration for this item\n"
- | 306 -> "expected the next context item or a dependency declaration for this item\n"
- | 311 -> "expected the name of your enum\n"
- | 312 -> "expected a colon\n"
- | 313 -> "expected an enum case\n"
- | 314 -> "expected the name of an enum case \n"
- | 315 -> "expected a payload for your enum case, or another case or declaration \n"
- | 316 -> "expected a content type\n"
- | 321 -> "expected another enum case, or a new declaration or scope use\n"
+ | 243 -> "expected a new scope use item \n"
+ | 272 -> "expected the kind of the declaration (struct, scope or enum)\n"
+ | 273 -> "expected the struct name\n"
+ | 274 -> "expected a colon\n"
+ | 275 -> "expected struct data or condition\n"
+ | 276 -> "expected the name of this struct data \n"
+ | 277 -> "expected the type of this struct data, introduced by the content keyword\n"
+ | 278 -> "expected the type of this struct data\n"
+ | 292 -> "expected the name of this struct condition\n"
+ | 285 -> "expected a new struct data, or another declaration or scope use\n"
+ | 286 -> "expected the type of the parameter of this struct data function\n"
+ | 290 -> "expected a new struct data, or another declaration or scope use\n"
+ | 282 -> "expected a new struct data, or another declaration or scope use\n"
+ | 295 -> "expected the name of the scope you are declaring\n"
+ | 296 -> "expected a colon followed by the list of context items of this scope\n"
+ | 297 -> "expected a context item introduced by \"context\"\n"
+ | 298 -> "expected the name of this new context item\n"
+ | 299 -> "expected the kind of this context item: is it a condition, a sub-scope or a data?\n"
+ | 300 -> "expected the name of the subscope for this context item\n"
+ | 307 -> "expected another scope context item or the end of the scope declaration\n"
+ | 302 -> "expected the type of this context item\n"
+ | 303 -> "expected the next context item or a dependency declaration for this item\n"
+ | 305 -> "expected the next context item or a dependency declaration for this item\n"
+ | 310 -> "expected the name of your enum\n"
+ | 311 -> "expected a colon\n"
+ | 312 -> "expected an enum case\n"
+ | 313 -> "expected the name of an enum case \n"
+ | 314 -> "expected a payload for your enum case, or another case or declaration \n"
+ | 315 -> "expected a content type\n"
+ | 320 -> "expected another enum case, or a new declaration or scope use\n"
| 18 -> "expected a declaration or a scope use\n"
| 19 -> "expected some text or the beginning of a code section\n"
| 20 -> "expected a declaration or a scope use\n"
| 21 -> "should not happen\n"
+ | 326 -> "expected a metadata-closing tag\n"
| 327 -> "expected a metadata-closing tag\n"
- | 328 -> "expected a metadata-closing tag\n"
| _ -> raise Not_found
diff --git a/syntax_highlighting/en/ace/mode-catala_en.js b/syntax_highlighting/en/ace/mode-catala_en.js
index fabc647f..d9fa9626 100644
--- a/syntax_highlighting/en/ace/mode-catala_en.js
+++ b/syntax_highlighting/en/ace/mode-catala_en.js
@@ -78,7 +78,7 @@ ace.define("ace/mode/catala_en_highlighting_rules", ["require", "exports", "modu
},
{
"token": "support.type",
- "regex": "\\b(integer|boolean|date|money|text|decimal|number|sum|now)\\b"
+ "regex": "\\b(integer|boolean|date|money|text|decimal|number|sum)\\b"
},
{
"token": ["entity.name.class", "punctuation", "entity.name.function"],
diff --git a/syntax_highlighting/en/atom/grammars/catala_en.cson b/syntax_highlighting/en/atom/grammars/catala_en.cson
index 03ce04fc..734544f5 100644
--- a/syntax_highlighting/en/atom/grammars/catala_en.cson
+++ b/syntax_highlighting/en/atom/grammars/catala_en.cson
@@ -124,7 +124,7 @@
'name' : 'keyword.operator.catala_en'
}
{
- 'match' : '\\b(integer|boolean|date|money|text|decimal|number|sum|now)\\b'
+ 'match' : '\\b(integer|boolean|date|money|text|decimal|number|sum)\\b'
'name' : 'support.type.catala_en'
}
{
diff --git a/syntax_highlighting/en/catala_en.iro b/syntax_highlighting/en/catala_en.iro
index 12bd5838..4c4e2ab1 100644
--- a/syntax_highlighting/en/catala_en.iro
+++ b/syntax_highlighting/en/catala_en.iro
@@ -245,7 +245,7 @@ code : context {
}
: pattern {
- regex \= \b(integer|boolean|date|money|text|decimal|number|sum|now)\b
+ regex \= \b(integer|boolean|date|money|text|decimal|number|sum)\b
styles [] = .primitive;
}
diff --git a/syntax_highlighting/en/pygments/catala_en.py b/syntax_highlighting/en/pygments/catala_en.py
index 24096add..e70604ea 100644
--- a/syntax_highlighting/en/pygments/catala_en.py
+++ b/syntax_highlighting/en/pygments/catala_en.py
@@ -35,7 +35,7 @@ class CatalaEnLexer(RegexLexer):
Operator)),
(u'(\\-\\>|\\+|\\-|\\*|/|\\!|not|or|and|=|>|<|\$|%|year|month|day)',
bygroups(Operator)),
- (u'\\b(integer|boolean|date|money|text|decimal|number|sum|now)\\b',
+ (u'\\b(integer|boolean|date|money|text|decimal|number|sum)\\b',
bygroups(Keyword.Type)),
(u'\\b([A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\']*)(\\.)([a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\']*)\\b', bygroups(Name.Class, Operator, Name.Variable)),
(u'\\b([a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\']*)(\\.)([a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\'\\.]*)\\b', bygroups(Name.Variable, Operator, Text)),
diff --git a/syntax_highlighting/en/vscode/syntaxes/catalavs.xml b/syntax_highlighting/en/vscode/syntaxes/catalavs.xml
index 70ae06b5..3eebc2b4 100644
--- a/syntax_highlighting/en/vscode/syntaxes/catalavs.xml
+++ b/syntax_highlighting/en/vscode/syntaxes/catalavs.xml
@@ -197,7 +197,7 @@
match
- \b(integer|boolean|date|money|text|decimal|number|sum|now)\b
+ \b(integer|boolean|date|money|text|decimal|number|sum)\b
name
support.type.catala_en
diff --git a/syntax_highlighting/fr/ace/mode-catala_fr.js b/syntax_highlighting/fr/ace/mode-catala_fr.js
index 08df1403..0b19c36b 100644
--- a/syntax_highlighting/fr/ace/mode-catala_fr.js
+++ b/syntax_highlighting/fr/ace/mode-catala_fr.js
@@ -78,7 +78,7 @@ ace.define("ace/mode/catala_fr_highlighting_rules", ["require", "exports", "modu
},
{
"token": "support.type",
- "regex": "\\b(entier|bool\u00e9en|date|argent|texte|d\u00e9cimal|d\u00e9cret|loi|nombre|somme|date_aujourd_hui)\\b"
+ "regex": "\\b(entier|bool\u00e9en|date|argent|texte|d\u00e9cimal|d\u00e9cret|loi|nombre|somme)\\b"
},
{
"token": ["entity.name.class", "punctuation", "entity.name.function"],
diff --git a/syntax_highlighting/fr/atom/grammars/catala_fr.cson b/syntax_highlighting/fr/atom/grammars/catala_fr.cson
index d1afa088..a74fb5fe 100644
--- a/syntax_highlighting/fr/atom/grammars/catala_fr.cson
+++ b/syntax_highlighting/fr/atom/grammars/catala_fr.cson
@@ -124,7 +124,7 @@
'name' : 'keyword.operator.catala_fr'
}
{
- 'match' : '\\b(entier|booléen|date|argent|texte|décimal|décret|loi|nombre|somme|date_aujourd_hui)\\b'
+ 'match' : '\\b(entier|booléen|date|argent|texte|décimal|décret|loi|nombre|somme)\\b'
'name' : 'support.type.catala_fr'
}
{
diff --git a/syntax_highlighting/fr/catala_fr.iro b/syntax_highlighting/fr/catala_fr.iro
index fab64f5e..500473d9 100644
--- a/syntax_highlighting/fr/catala_fr.iro
+++ b/syntax_highlighting/fr/catala_fr.iro
@@ -245,7 +245,7 @@ code : context {
}
: pattern {
- regex \= \b(entier|booléen|date|argent|texte|décimal|décret|loi|nombre|somme|date_aujourd_hui)\b
+ regex \= \b(entier|booléen|date|argent|texte|décimal|décret|loi|nombre|somme)\b
styles [] = .primitive;
}
diff --git a/syntax_highlighting/fr/pygments/catala_fr.py b/syntax_highlighting/fr/pygments/catala_fr.py
index 10d29754..e629980d 100644
--- a/syntax_highlighting/fr/pygments/catala_fr.py
+++ b/syntax_highlighting/fr/pygments/catala_fr.py
@@ -35,7 +35,7 @@ class CatalaFrLexer(RegexLexer):
Operator)),
(u'(\\-\\>|\\+|\\-|\\*|/|\\!|non|ou|et|=|>|<|\u20ac|%|an|mois|jour)',
bygroups(Operator)),
- (u'\\b(entier|bool\xe9en|date|argent|texte|d\xe9cimal|d\xe9cret|loi|nombre|somme|date_aujourd_hui)\\b',
+ (u'\\b(entier|bool\xe9en|date|argent|texte|d\xe9cimal|d\xe9cret|loi|nombre|somme)\\b',
bygroups(Keyword.Type)),
(u'\\b([A-Z\xc9\xc8\xc0\xc2\xd9\xce\xd4\xca\u0152\xc7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xf4\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xd4\xca\u0152\xc70-9_\\\']*)(\\.)([a-z\xe9\xe8\xe0\xe2\xf9\xee\xf4\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xf4\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xd4\xca\u0152\xc70-9_\\\']*)\\b', bygroups(Name.Class, Operator, Name.Variable)),
(u'\\b([a-z\xe9\xe8\xe0\xe2\xf9\xee\xf4\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xf4\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xd4\xca\u0152\xc70-9_\\\']*)(\\.)([a-z\xe9\xe8\xe0\xe2\xf9\xee\xf4\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xf4\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xd4\xca\u0152\xc70-9_\\\'\\.]*)\\b', bygroups(Name.Variable, Operator, Text)),
diff --git a/syntax_highlighting/fr/vscode/syntaxes/catalavs.xml b/syntax_highlighting/fr/vscode/syntaxes/catalavs.xml
index 69d8b3ad..47039654 100644
--- a/syntax_highlighting/fr/vscode/syntaxes/catalavs.xml
+++ b/syntax_highlighting/fr/vscode/syntaxes/catalavs.xml
@@ -197,7 +197,7 @@
match
- \b(entier|booléen|date|argent|texte|décimal|décret|loi|nombre|somme|date_aujourd_hui)\b
+ \b(entier|booléen|date|argent|texte|décimal|décret|loi|nombre|somme)\b
name
support.type.catala_fr
diff --git a/syntax_highlighting/nv/atom/grammars/catala_nv.cson b/syntax_highlighting/nv/atom/grammars/catala_nv.cson
index d2da1dc6..f732b837 100644
--- a/syntax_highlighting/nv/atom/grammars/catala_nv.cson
+++ b/syntax_highlighting/nv/atom/grammars/catala_nv.cson
@@ -124,7 +124,7 @@
'name' : 'keyword.operator.catala_nv'
}
{
- 'match' : '\\b(int|bool|date|money|text|decimal|number|sum|now)\\b'
+ 'match' : '\\b(int|bool|date|money|text|decimal|number|sum)\\b'
'name' : 'support.type.catala_nv'
}
{
diff --git a/syntax_highlighting/nv/catala_nv.iro b/syntax_highlighting/nv/catala_nv.iro
index f4da4f9c..0dbdc016 100644
--- a/syntax_highlighting/nv/catala_nv.iro
+++ b/syntax_highlighting/nv/catala_nv.iro
@@ -245,7 +245,7 @@ code : context {
}
: pattern {
- regex \= \b(int|bool|date|money|text|decimal|number|sum|now)\b
+ regex \= \b(int|bool|date|money|text|decimal|number|sum)\b
styles [] = .primitive;
}
diff --git a/syntax_highlighting/nv/pygments/catala_nv.py b/syntax_highlighting/nv/pygments/catala_nv.py
index 80d00de3..316f31a7 100644
--- a/syntax_highlighting/nv/pygments/catala_nv.py
+++ b/syntax_highlighting/nv/pygments/catala_nv.py
@@ -35,7 +35,7 @@ class CatalaNvLexer(RegexLexer):
bygroups(Operator)),
(u'(\\-\\>|\\+|\\-|\\*|/|\\!|not|or|and|=|>|<|\\$|%|year|month|day)',
bygroups(Operator)),
- (u'\\b(int|bool|date|money|text|decimal|number|sum|now)\\b',
+ (u'\\b(int|bool|date|money|text|decimal|number|sum)\\b',
bygroups(Keyword.Type)),
(u'\\b([A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\']*)(\\.)([a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\']*)\\b', bygroups(Name.Class, Operator, Name.Variable)),
(u'\\b([a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\']*)(\\.)([a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7][a-z\xe9\xe8\xe0\xe2\xf9\xee\xea\u0153\xe7A-Z\xc9\xc8\xc0\xc2\xd9\xce\xca\u0152\xc70-9_\\\'\\.]*)\\b', bygroups(Name.Variable, Operator, Text)),
diff --git a/syntax_highlighting/nv/vscode/syntaxes/catalavs.xml b/syntax_highlighting/nv/vscode/syntaxes/catalavs.xml
index b89a62d4..ec86f5e9 100644
--- a/syntax_highlighting/nv/vscode/syntaxes/catalavs.xml
+++ b/syntax_highlighting/nv/vscode/syntaxes/catalavs.xml
@@ -197,7 +197,7 @@
match
- \b(int|bool|date|money|text|decimal|number|sum|now)\b
+ \b(int|bool|date|money|text|decimal|number|sum)\b
name
support.type.catala_nv
diff --git a/tests/test_array/simple.catala b/tests/test_array/simple.catala
index 9f600ef6..48212111 100644
--- a/tests/test_array/simple.catala
+++ b/tests/test_array/simple.catala
@@ -9,10 +9,14 @@ scope A:
new scope B:
param a scope A
+ param v content int
+ param w content bool
param y content bool
param z content bool
scope B:
+ def v := number of a.x
+ def w := 64 in a.x
def y := exists m in a.x such that m = 9
def z := for all m in a.x we have m > 0
*/
\ No newline at end of file