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