From 9aaa614410d0755bdc09d4fd2b72c9dfa82bd871 Mon Sep 17 00:00:00 2001 From: Emile Rolley Date: Fri, 1 Oct 2021 10:01:25 +0200 Subject: [PATCH] refactor(parser): add the new catala-metadata markup --- CONTRIBUTING.md | 6 +- compiler/surface/lexer.cppo.ml | 8 +- compiler/surface/lexer_en.cppo.ml | 2 - compiler/surface/lexer_fr.cppo.ml | 2 - compiler/surface/lexer_pl.cppo.ml | 2 - compiler/surface/parser.messages | 496 +++++++++--------- compiler/surface/parser.mly | 2 +- compiler/surface/tokens.mly | 2 +- .../allocations_familiales/epilogue.catala_fr | 12 +- .../allocations_familiales/prologue.catala_fr | 4 +- .../code_general_impots/prologue.catala_fr | 4 +- .../droit_successions.catala_fr | 4 +- .../Title17-MotorAndOtherVehicles.catala_en | 5 +- examples/tutorial_en/tutorial_en.catala_en | 16 +- examples/tutoriel_fr/tutoriel_fr.catala_fr | 16 +- examples/us_tax_code/preamble.catala_en | 6 +- examples/us_tax_code/section_1015.catala_en | 5 +- examples/us_tax_code/section_121.catala_en | 4 +- examples/us_tax_code/section_132.catala_en | 5 +- .../test_markup_refactoring.catala_en.S.out | 2 + .../test_markup_refactoring.catala_en.S2.out | 2 + .../good/test_markup_refactoring.catala_en | 29 + 22 files changed, 307 insertions(+), 327 deletions(-) create mode 100644 tests/test_metadata/good/output/test_markup_refactoring.catala_en.S.out create mode 100644 tests/test_metadata/good/output/test_markup_refactoring.catala_en.S2.out create mode 100644 tests/test_metadata/good/test_markup_refactoring.catala_en diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a46bbdf7..973249a6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -66,17 +66,13 @@ mark some as "metadata" so that they are printed differently on lawyer-facing documents. Here's how it works: ````markdown -> Begin metadata # > Début métadonnées en français - -```catala +```catala-metadata declaration structure FooBar: data foo content boolean data bar content money ``` - -> End metadata # > Fin métadonnées en français ```` Again, make sure to regularly check that your example is parsing correctly. The error message from the compiler should help you debug the syntax if need be. You can also diff --git a/compiler/surface/lexer.cppo.ml b/compiler/surface/lexer.cppo.ml index cca8aa93..dd52ac22 100644 --- a/compiler/surface/lexer.cppo.ml +++ b/compiler/surface/lexer.cppo.ml @@ -735,8 +735,6 @@ let rec lex_directive (lexbuf : lexbuf) : token = let prev_pos = lexing_positions lexbuf in match%sedlex lexbuf with | Plus hspace -> lex_directive lexbuf - | MR_BEGIN_METADATA -> BEGIN_METADATA - | MR_END_METADATA -> END_METADATA | MR_LAW_INCLUDE -> LAW_INCLUDE | ":" -> L.context := Directive_args; @@ -754,10 +752,14 @@ let lex_law (lexbuf : lexbuf) : token = if at_bol then match%sedlex lexbuf with | eof -> EOF - | "```catala", Plus white_space -> + | "```catala", Star white_space, ('\n' | eof) -> L.context := Code; Buffer.clear L.code_buffer; BEGIN_CODE + | "```catala-metadata", Star white_space, ('\n' | eof) -> + L.context := Code; + Buffer.clear L.code_buffer; + BEGIN_METADATA | '>' -> L.context := Directive; BEGIN_DIRECTIVE diff --git a/compiler/surface/lexer_en.cppo.ml b/compiler/surface/lexer_en.cppo.ml index 5c48f187..a77a1ed7 100644 --- a/compiler/surface/lexer_en.cppo.ml +++ b/compiler/surface/lexer_en.cppo.ml @@ -102,8 +102,6 @@ (* Directives *) -#define MR_BEGIN_METADATA "Begin", Plus hspace, "metadata" -#define MR_END_METADATA "End", Plus hspace, "metadata" #define MR_LAW_INCLUDE "Include" #define MX_AT_PAGE \ '@', Star hspace, "p.", Star hspace, Plus digit -> \ diff --git a/compiler/surface/lexer_fr.cppo.ml b/compiler/surface/lexer_fr.cppo.ml index d65e2329..34538931 100644 --- a/compiler/surface/lexer_fr.cppo.ml +++ b/compiler/surface/lexer_fr.cppo.ml @@ -109,8 +109,6 @@ (* Directives *) -#define MR_BEGIN_METADATA "Début", Plus hspace, "métadonnées" -#define MR_END_METADATA "Fin", Plus hspace, "métadonnées" #define MR_LAW_INCLUDE "Inclusion" #define MX_AT_PAGE \ '@', Star hspace, "p.", Star hspace, Plus digit -> \ diff --git a/compiler/surface/lexer_pl.cppo.ml b/compiler/surface/lexer_pl.cppo.ml index ec54c20c..58365f97 100644 --- a/compiler/surface/lexer_pl.cppo.ml +++ b/compiler/surface/lexer_pl.cppo.ml @@ -107,8 +107,6 @@ (* Directives *) -#define MR_BEGIN_METADATA "Poczatek", Plus hspace, "metadanych" -#define MR_END_METADATA "Koniec", Plus hspace, "metadanych" #define MR_LAW_INCLUDE "Include" #define MX_AT_PAGE \ '@', Star hspace, "p.", Star hspace, Plus digit -> \ diff --git a/compiler/surface/parser.messages b/compiler/surface/parser.messages index 7c02591d..6e3510d3 100644 --- a/compiler/surface/parser.messages +++ b/compiler/surface/parser.messages @@ -1,6 +1,6 @@ source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT CONSTRUCTOR CONTENT TEXT YEAR ## -## Ends in an error in state: 348. +## Ends in an error in state: 337. ## ## 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 ] @@ -13,7 +13,7 @@ expected another enum case, or a new declaration or scope use source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT CONSTRUCTOR CONTENT YEAR ## -## Ends in an error in state: 343. +## Ends in an error in state: 332. ## ## enum_decl_line_payload -> CONTENT . typ [ SCOPE END_CODE DECLARATION ALT ] ## @@ -25,7 +25,7 @@ expected a content type source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT CONSTRUCTOR YEAR ## -## Ends in an error in state: 342. +## Ends in an error in state: 331. ## ## enum_decl_line -> ALT constructor . option(enum_decl_line_payload) [ SCOPE END_CODE DECLARATION ALT ] ## @@ -37,7 +37,7 @@ expected a payload for your enum case, or another case or declaration source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT YEAR ## -## Ends in an error in state: 341. +## Ends in an error in state: 330. ## ## enum_decl_line -> ALT . constructor option(enum_decl_line_payload) [ SCOPE END_CODE DECLARATION ALT ] ## @@ -49,7 +49,7 @@ expected the name of an enum case source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON YEAR ## -## Ends in an error in state: 340. +## Ends in an error in state: 329. ## ## code_item -> DECLARATION ENUM constructor COLON . nonempty_list(enum_decl_line) [ SCOPE END_CODE DECLARATION ] ## @@ -61,7 +61,7 @@ expected an enum case source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR YEAR ## -## Ends in an error in state: 339. +## Ends in an error in state: 328. ## ## code_item -> DECLARATION ENUM constructor . COLON nonempty_list(enum_decl_line) [ SCOPE END_CODE DECLARATION ] ## @@ -73,7 +73,7 @@ expected a colon source_file: BEGIN_CODE DECLARATION ENUM YEAR ## -## Ends in an error in state: 338. +## Ends in an error in state: 327. ## ## code_item -> DECLARATION ENUM . constructor COLON nonempty_list(enum_decl_line) [ SCOPE END_CODE DECLARATION ] ## @@ -85,7 +85,7 @@ expected the name of your enum source_file: BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON CONTEXT IDENT CONDITION YEAR ## -## Ends in an error in state: 333. +## Ends in an error in state: 322. ## ## scope_decl_item -> CONTEXT ident CONDITION . option(struct_scope_func) [ SCOPE END_CODE DECLARATION CONTEXT ] ## @@ -97,7 +97,7 @@ expected the next context item or a dependency declaration for this item source_file: BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON CONTEXT IDENT CONTENT TEXT YEAR ## -## Ends in an error in state: 331. +## Ends in an error in state: 320. ## ## scope_decl_item -> CONTEXT ident CONTENT typ . option(struct_scope_func) [ SCOPE END_CODE DECLARATION CONTEXT ] ## @@ -109,7 +109,7 @@ expected the next context item or a dependency declaration for this item source_file: BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON CONTEXT IDENT CONTENT YEAR ## -## Ends in an error in state: 330. +## Ends in an error in state: 319. ## ## scope_decl_item -> CONTEXT ident CONTENT . typ option(struct_scope_func) [ SCOPE END_CODE DECLARATION CONTEXT ] ## @@ -121,7 +121,7 @@ expected the type of this context item source_file: BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON CONTEXT IDENT SCOPE CONSTRUCTOR YEAR ## -## Ends in an error in state: 335. +## Ends in an error in state: 324. ## ## 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 ] @@ -134,7 +134,7 @@ expected another scope context item or the end of the scope declaration source_file: BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON CONTEXT IDENT SCOPE YEAR ## -## Ends in an error in state: 328. +## Ends in an error in state: 317. ## ## scope_decl_item -> CONTEXT ident SCOPE . constructor [ SCOPE END_CODE DECLARATION CONTEXT ] ## @@ -146,7 +146,7 @@ expected the name of the subscope for this context item source_file: BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON CONTEXT IDENT YEAR ## -## Ends in an error in state: 327. +## Ends in an error in state: 316. ## ## 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 ] @@ -160,7 +160,7 @@ expected the kind of this context item: is it a condition, a sub-scope or a data source_file: BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON CONTEXT YEAR ## -## Ends in an error in state: 326. +## Ends in an error in state: 315. ## ## 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 ] @@ -174,7 +174,7 @@ expected the name of this new context item source_file: BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON YEAR ## -## Ends in an error in state: 325. +## Ends in an error in state: 314. ## ## code_item -> DECLARATION SCOPE constructor COLON . nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ] ## @@ -186,7 +186,7 @@ expected a context item introduced by "context" source_file: BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR YEAR ## -## Ends in an error in state: 324. +## Ends in an error in state: 313. ## ## code_item -> DECLARATION SCOPE constructor . COLON nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ] ## @@ -198,7 +198,7 @@ expected a colon followed by the list of context items of this scope source_file: BEGIN_CODE DECLARATION SCOPE YEAR ## -## Ends in an error in state: 323. +## Ends in an error in state: 312. ## ## code_item -> DECLARATION SCOPE . constructor COLON nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ] ## @@ -210,7 +210,7 @@ expected the name of the scope you are declaring source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT DEPENDS COLLECTION YEAR ## -## Ends in an error in state: 310. +## Ends in an error in state: 299. ## ## typ -> collection_marked . typ [ SCOPE END_CODE DEPENDS DECLARATION DATA CONTEXT CONDITION ALT ] ## @@ -222,7 +222,7 @@ expected a new struct data, or another declaration or scope use source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT DEPENDS TEXT YEAR ## -## Ends in an error in state: 318. +## Ends in an error in state: 307. ## ## list(struct_scope) -> struct_scope . list(struct_scope) [ SCOPE END_CODE DECLARATION ] ## @@ -234,7 +234,7 @@ expected a new struct data, or another declaration or scope use source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT DEPENDS YEAR ## -## Ends in an error in state: 314. +## Ends in an error in state: 303. ## ## struct_scope_func -> DEPENDS . typ [ SCOPE END_CODE DECLARATION DATA CONTEXT CONDITION ] ## @@ -246,7 +246,7 @@ expected the type of the parameter of this struct data function source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT YEAR ## -## Ends in an error in state: 313. +## Ends in an error in state: 302. ## ## struct_scope -> struct_scope_base . option(struct_scope_func) [ SCOPE END_CODE DECLARATION DATA CONDITION ] ## @@ -258,7 +258,7 @@ expected a new struct data, or another declaration or scope use source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION YEAR ## -## Ends in an error in state: 320. +## Ends in an error in state: 309. ## ## struct_scope_base -> condition_pos . ident [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ] ## @@ -270,7 +270,7 @@ expected the name of this struct condition source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON DATA IDENT CONTENT YEAR ## -## Ends in an error in state: 306. +## Ends in an error in state: 295. ## ## struct_scope_base -> DATA ident CONTENT . typ [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ] ## @@ -282,7 +282,7 @@ expected the type of this struct data source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON DATA IDENT YEAR ## -## Ends in an error in state: 305. +## Ends in an error in state: 294. ## ## struct_scope_base -> DATA ident . CONTENT typ [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ] ## @@ -294,7 +294,7 @@ expected the type of this struct data, introduced by the content keyword source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON DATA YEAR ## -## Ends in an error in state: 304. +## Ends in an error in state: 293. ## ## struct_scope_base -> DATA . ident CONTENT typ [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ] ## @@ -306,7 +306,7 @@ expected the name of this struct data source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON YEAR ## -## Ends in an error in state: 303. +## Ends in an error in state: 292. ## ## code_item -> DECLARATION STRUCT constructor COLON . list(struct_scope) [ SCOPE END_CODE DECLARATION ] ## @@ -318,7 +318,7 @@ expected struct data or condition source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR YEAR ## -## Ends in an error in state: 302. +## Ends in an error in state: 291. ## ## code_item -> DECLARATION STRUCT constructor . COLON list(struct_scope) [ SCOPE END_CODE DECLARATION ] ## @@ -330,7 +330,7 @@ expected a colon source_file: BEGIN_CODE DECLARATION STRUCT YEAR ## -## Ends in an error in state: 301. +## Ends in an error in state: 290. ## ## code_item -> DECLARATION STRUCT . constructor COLON list(struct_scope) [ SCOPE END_CODE DECLARATION ] ## @@ -342,7 +342,7 @@ expected the struct name source_file: BEGIN_CODE DECLARATION YEAR ## -## Ends in an error in state: 300. +## Ends in an error in state: 289. ## ## 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 ] @@ -356,7 +356,7 @@ expected the kind of the declaration (struct, scope or enum) source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION CARDINAL THEN ## -## Ends in an error in state: 270. +## Ends in an error in state: 259. ## ## nonempty_list(scope_item) -> scope_item . [ SCOPE END_CODE DECLARATION ] ## nonempty_list(scope_item) -> scope_item . nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ] @@ -368,23 +368,23 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION CARDINAL THEN ## 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 97, spurious reduction of production primitive_expression -> CARDINAL -## In state 100, spurious reduction of production base_expression -> primitive_expression -## In state 140, spurious reduction of production mult_expression -> base_expression -## In state 126, spurious reduction of production sum_expression -> mult_expression -## In state 150, spurious reduction of production compare_expression -> sum_expression -## In state 178, spurious reduction of production logical_expression -> compare_expression -## In state 207, spurious reduction of production expression -> logical_expression -## In state 264, spurious reduction of production assertion_base -> expression -## In state 265, spurious reduction of production assertion -> option(condition_consequence) assertion_base -## In state 269, spurious reduction of production scope_item -> ASSERTION assertion +## In state 86, spurious reduction of production primitive_expression -> CARDINAL +## In state 89, spurious reduction of production base_expression -> primitive_expression +## In state 129, spurious reduction of production mult_expression -> base_expression +## In state 115, spurious reduction of production sum_expression -> mult_expression +## In state 139, spurious reduction of production compare_expression -> sum_expression +## In state 167, spurious reduction of production logical_expression -> compare_expression +## In state 196, spurious reduction of production expression -> logical_expression +## In state 253, spurious reduction of production assertion_base -> expression +## In state 254, spurious reduction of production assertion -> option(condition_consequence) assertion_base +## In state 258, spurious reduction of production scope_item -> ASSERTION assertion ## expected a new scope use item source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION FIXED IDENT BY YEAR ## -## Ends in an error in state: 261. +## Ends in an error in state: 250. ## ## assertion -> FIXED qident BY . ident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -396,7 +396,7 @@ expected the legislative text by which the value of the variable is fixed source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION FIXED IDENT WITH_V ## -## Ends in an error in state: 260. +## Ends in an error in state: 249. ## ## assertion -> FIXED qident . BY ident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -407,15 +407,15 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION FIXED IDENT WITH_V ## 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 254, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident -## In state 246, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) +## In state 243, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident +## In state 235, 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: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION FIXED YEAR ## -## Ends in an error in state: 259. +## Ends in an error in state: 248. ## ## assertion -> FIXED . qident BY ident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -427,7 +427,7 @@ expected the name of the variable that should be fixed source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION UNDER_CONDITION TRUE CONSEQUENCE BY ## -## Ends in an error in state: 263. +## Ends in an error in state: 252. ## ## assertion -> option(condition_consequence) . assertion_base [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -439,7 +439,7 @@ expected an expression for this definition under condition source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION UNDER_CONDITION TRUE THEN ## -## Ends in an error in state: 267. +## Ends in an error in state: 256. ## ## condition_consequence -> condition . CONSEQUENCE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN INT_LITERAL IF IDENT FOR FILTER FILLED FALSE EXISTS DEFINED_AS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## @@ -450,21 +450,21 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION UNDER_CONDITION TRUE T ## 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 62, spurious reduction of production primitive_expression -> small_expression -## In state 100, spurious reduction of production base_expression -> primitive_expression -## In state 140, spurious reduction of production mult_expression -> base_expression -## In state 126, spurious reduction of production sum_expression -> mult_expression -## In state 150, spurious reduction of production compare_expression -> sum_expression -## In state 178, spurious reduction of production logical_expression -> compare_expression -## In state 207, spurious reduction of production expression -> logical_expression -## In state 258, spurious reduction of production condition -> UNDER_CONDITION expression +## In state 51, spurious reduction of production primitive_expression -> small_expression +## In state 89, spurious reduction of production base_expression -> primitive_expression +## In state 129, spurious reduction of production mult_expression -> base_expression +## In state 115, spurious reduction of production sum_expression -> mult_expression +## In state 139, spurious reduction of production compare_expression -> sum_expression +## In state 167, spurious reduction of production logical_expression -> compare_expression +## In state 196, spurious reduction of production expression -> logical_expression +## In state 247, spurious reduction of production condition -> UNDER_CONDITION expression ## expected a consequence for this definition under condition source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION UNDER_CONDITION YEAR ## -## Ends in an error in state: 257. +## Ends in an error in state: 246. ## ## condition -> UNDER_CONDITION . expression [ CONSEQUENCE ] ## @@ -476,7 +476,7 @@ expected an expression for this condition source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT UNDER_CONDITION ## -## Ends in an error in state: 247. +## Ends in an error in state: 236. ## ## assertion -> VARIES qident . WITH_V base_expression option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -487,15 +487,15 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT UNDER_CON ## 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 254, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident -## In state 246, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) +## In state 243, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident +## In state 235, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) ## expected an indication about what this variable varies with source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT WITH_V TRUE XOR ## -## Ends in an error in state: 249. +## Ends in an error in state: 238. ## ## assertion -> VARIES qident WITH_V base_expression . option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -506,15 +506,15 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT WITH_V TR ## 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 62, spurious reduction of production primitive_expression -> small_expression -## In state 100, spurious reduction of production base_expression -> primitive_expression +## In state 51, spurious reduction of production primitive_expression -> small_expression +## In state 89, 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: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT WITH_V YEAR ## -## Ends in an error in state: 248. +## Ends in an error in state: 237. ## ## assertion -> VARIES qident WITH_V . base_expression option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -526,7 +526,7 @@ the variable varies with an expression that was expected here source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES YEAR ## -## Ends in an error in state: 245. +## Ends in an error in state: 234. ## ## assertion -> VARIES . qident WITH_V base_expression option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -538,7 +538,7 @@ expecting the name of the varying variable source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION YEAR ## -## Ends in an error in state: 244. +## Ends in an error in state: 233. ## ## scope_item -> ASSERTION . assertion [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -550,7 +550,7 @@ expected an expression that shoud be asserted during execution source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT DEFINED_AS YEAR ## -## Ends in an error in state: 293. +## Ends in an error in state: 282. ## ## 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 ] ## @@ -562,7 +562,7 @@ expected an expression for the definition source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT OF IDENT DECREASING ## -## Ends in an error in state: 291. +## Ends in an error in state: 280. ## ## 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 ] ## @@ -574,7 +574,7 @@ expected a expression for defining this function, introduced by the defined as k source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT UNDER_CONDITION CARDINAL CONSEQUENCE DECREASING ## -## Ends in an error in state: 292. +## Ends in an error in state: 281. ## ## 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 ] ## @@ -586,7 +586,7 @@ expected an expression for the consequence of this definition under condition source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT WITH_V ## -## Ends in an error in state: 290. +## Ends in an error in state: 279. ## ## 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 ] ## @@ -597,15 +597,15 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT WITH_V ## 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 254, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident -## In state 246, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) +## In state 243, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident +## In state 235, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) ## expected the defined as keyword to introduce the definition of this variable source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION YEAR ## -## Ends in an error in state: 289. +## Ends in an error in state: 278. ## ## 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 ] ## @@ -617,7 +617,7 @@ expected the name of the variable you want to define source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON EXCEPTION IDENT YEAR ## -## Ends in an error in state: 276. +## 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 ] ## rule -> option(label) option(exception_to) . RULE rule_expr option(condition_consequence) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] @@ -630,7 +630,7 @@ expected a rule or a definition after the exception declaration source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON EXCEPTION YEAR ## -## Ends in an error in state: 273. +## Ends in an error in state: 262. ## ## exception_to -> EXCEPTION . option(ident) [ RULE DEFINITION ] ## @@ -642,7 +642,7 @@ expected the label to which the exception is referring back source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON LABEL IDENT DEFINED_AS ## -## Ends in an error in state: 272. +## 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 ] ## rule -> option(label) . option(exception_to) RULE rule_expr option(condition_consequence) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] @@ -655,7 +655,7 @@ expected a rule or a definition after the label declaration source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON LABEL YEAR ## -## Ends in an error in state: 242. +## Ends in an error in state: 231. ## ## label -> LABEL . ident [ RULE EXCEPTION DEFINITION ] ## @@ -667,7 +667,7 @@ expected the name of the label source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT DOT YEAR ## -## Ends in an error in state: 255. +## Ends in an error in state: 244. ## ## separated_nonempty_list(DOT,ident) -> ident DOT . separated_nonempty_list(DOT,ident) [ WITH_V UNDER_CONDITION OF NOT FILLED DEFINED_AS BY ] ## @@ -679,7 +679,7 @@ expected a struct field or a sub-scope context item after the dot source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT NOT FALSE ## -## Ends in an error in state: 282. +## Ends in an error in state: 271. ## ## rule_consequence -> option(NOT) . FILLED [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -691,7 +691,7 @@ expected the filled keyword the this rule source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT OF IDENT YEAR ## -## Ends in an error in state: 278. +## Ends in an error in state: 267. ## ## 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 the expression of the rule source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT OF YEAR ## -## Ends in an error in state: 285. +## Ends in an error in state: 274. ## ## definition_parameters -> OF . ident [ UNDER_CONDITION NOT FILLED DEFINED_AS ] ## @@ -715,7 +715,7 @@ expected the name of the parameter for this dependent variable source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT UNDER_CONDITION CARDINAL CONSEQUENCE FALSE ## -## Ends in an error in state: 279. +## Ends in an error in state: 268. ## ## rule -> option(label) option(exception_to) RULE rule_expr option(condition_consequence) . rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -727,7 +727,7 @@ expected filled or not filled for a rule consequence source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT WITH_V ## -## Ends in an error in state: 284. +## Ends in an error in state: 273. ## ## rule_expr -> qident . option(definition_parameters) [ UNDER_CONDITION NOT FILLED ] ## @@ -738,15 +738,15 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT WITH_V ## 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 254, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident -## In state 246, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) +## In state 243, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident +## In state 235, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) ## expected a condition or a consequence for this rule source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT YEAR ## -## Ends in an error in state: 254. +## Ends in an error in state: 243. ## ## 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 ] @@ -759,7 +759,7 @@ expected a condition or a consequence for this rule, or the rest of the variable source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE YEAR ## -## Ends in an error in state: 277. +## Ends in an error in state: 266. ## ## rule -> option(label) option(exception_to) RULE . rule_expr option(condition_consequence) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -771,7 +771,7 @@ expected the name of the variable subject to the rule source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON YEAR ## -## Ends in an error in state: 241. +## Ends in an error in state: 230. ## ## code_item -> SCOPE constructor option(scope_use_condition) COLON . nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ] ## @@ -783,7 +783,7 @@ expected a scope use item: a rule, definition or assertion source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CARDINAL YEAR ## -## Ends in an error in state: 97. +## Ends in an error in state: 86. ## ## aggregate_func -> CARDINAL . [ FOR ] ## primitive_expression -> CARDINAL . [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] @@ -796,7 +796,7 @@ expected the keyword following cardinal to compute the number of elements in a s source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR CONTENT TRUE YEAR ## -## Ends in an error in state: 189. +## Ends in an error in state: 178. ## ## enum_inject_content -> CONTENT small_expression . [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## small_expression -> small_expression . DOT option(terminated(constructor,DOT)) ident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] @@ -809,7 +809,7 @@ the expression for the content of the enum case is already well-formed, expected source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR CONTENT YEAR ## -## Ends in an error in state: 188. +## Ends in an error in state: 177. ## ## enum_inject_content -> CONTENT . small_expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -821,7 +821,7 @@ expected an expression for the content of this enum case source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR DOT CONSTRUCTOR ALL ## -## Ends in an error in state: 187. +## Ends in an error in state: 176. ## ## struct_or_enum_inject -> constructor option(preceded(DOT,constructor)) . option(enum_inject_content) [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -833,7 +833,7 @@ expected the rest of the path, or the content of the enum constructor source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR DOT YEAR ## -## Ends in an error in state: 107. +## Ends in an error in state: 96. ## ## option(preceded(DOT,constructor)) -> DOT . constructor [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONTENT CONSTRUCTOR CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -845,7 +845,7 @@ expected the rest of the path after the dot source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT IDENT COLON CARDINAL ALT YEAR ## -## Ends in an error in state: 93. +## Ends in an error in state: 82. ## ## separated_nonempty_list(ALT,struct_content_field) -> struct_content_field ALT . separated_nonempty_list(ALT,struct_content_field) [ RBRACKET ] ## @@ -857,7 +857,7 @@ expected the name of the structure field source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT IDENT COLON CARDINAL THEN ## -## Ends in an error in state: 92. +## Ends in an error in state: 81. ## ## 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 ] @@ -869,20 +869,20 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET A ## 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 97, spurious reduction of production primitive_expression -> CARDINAL -## In state 100, spurious reduction of production base_expression -> primitive_expression -## In state 140, spurious reduction of production mult_expression -> base_expression -## In state 126, spurious reduction of production sum_expression -> mult_expression -## In state 150, spurious reduction of production compare_expression -> sum_expression -## In state 178, spurious reduction of production logical_expression -> compare_expression -## In state 177, spurious reduction of production struct_content_field -> ident COLON logical_expression +## In state 86, spurious reduction of production primitive_expression -> CARDINAL +## In state 89, spurious reduction of production base_expression -> primitive_expression +## In state 129, spurious reduction of production mult_expression -> base_expression +## In state 115, spurious reduction of production sum_expression -> mult_expression +## In state 139, spurious reduction of production compare_expression -> sum_expression +## In state 167, spurious reduction of production logical_expression -> compare_expression +## In state 166, spurious reduction of production struct_content_field -> ident COLON logical_expression ## expected another structure field or the closing bracket source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT IDENT COLON YEAR ## -## Ends in an error in state: 96. +## Ends in an error in state: 85. ## ## struct_content_field -> ident COLON . logical_expression [ RBRACKET ALT ] ## @@ -894,7 +894,7 @@ expected the expression for this struct field source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT IDENT YEAR ## -## Ends in an error in state: 95. +## Ends in an error in state: 84. ## ## struct_content_field -> ident . COLON logical_expression [ RBRACKET ALT ] ## @@ -906,7 +906,7 @@ expected a colon source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT YEAR ## -## Ends in an error in state: 91. +## Ends in an error in state: 80. ## ## struct_inject_content -> LBRACKET ALT . separated_nonempty_list(ALT,struct_content_field) RBRACKET [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -918,7 +918,7 @@ expected the name of the structure field source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET YEAR ## -## Ends in an error in state: 90. +## Ends in an error in state: 79. ## ## struct_inject_content -> LBRACKET . ALT separated_nonempty_list(ALT,struct_content_field) RBRACKET [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -930,7 +930,7 @@ expected structure fields introduced by -- source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR YEAR ## -## Ends in an error in state: 89. +## Ends in an error in state: 78. ## ## struct_or_enum_inject -> constructor . option(preceded(DOT,constructor)) option(enum_inject_content) [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## struct_or_enum_inject -> constructor . struct_inject_content [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] @@ -943,7 +943,7 @@ expected a payload for the enum case constructor, or the rest of the expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONTENT MAXIMUM TEXT INIT YEAR ## -## Ends in an error in state: 194. +## Ends in an error in state: 183. ## ## aggregate_func -> CONTENT MAXIMUM typ_base INIT . primitive_expression [ FOR ] ## @@ -955,7 +955,7 @@ expected the initial expression for the maximum source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONTENT MAXIMUM TEXT YEAR ## -## Ends in an error in state: 193. +## Ends in an error in state: 182. ## ## aggregate_func -> CONTENT MAXIMUM typ_base . INIT primitive_expression [ FOR ] ## @@ -967,7 +967,7 @@ expected the "initial" keyword introducing the initial expression for the maximu source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONTENT MAXIMUM YEAR ## -## Ends in an error in state: 192. +## Ends in an error in state: 181. ## ## aggregate_func -> CONTENT MAXIMUM . typ_base INIT primitive_expression [ FOR ] ## @@ -979,7 +979,7 @@ expected the type of the elements compared to get the maximum source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONTENT MINIMUM TEXT INIT YEAR ## -## Ends in an error in state: 79. +## Ends in an error in state: 68. ## ## aggregate_func -> CONTENT MINIMUM typ_base INIT . primitive_expression [ FOR ] ## @@ -991,7 +991,7 @@ expected the initial expression for the minimum source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONTENT MINIMUM TEXT YEAR ## -## Ends in an error in state: 78. +## Ends in an error in state: 67. ## ## aggregate_func -> CONTENT MINIMUM typ_base . INIT primitive_expression [ FOR ] ## @@ -1003,7 +1003,7 @@ expected the "initial" keyword introducing the initial expression for the minimu source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONTENT MINIMUM YEAR ## -## Ends in an error in state: 77. +## Ends in an error in state: 66. ## ## aggregate_func -> CONTENT MINIMUM . typ_base INIT primitive_expression [ FOR ] ## @@ -1015,7 +1015,7 @@ expected the type of the elements compared to get the minimum source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONTENT YEAR ## -## Ends in an error in state: 76. +## Ends in an error in state: 65. ## ## aggregate_func -> CONTENT . MAXIMUM typ_base INIT primitive_expression [ FOR ] ## aggregate_func -> CONTENT . MINIMUM typ_base INIT primitive_expression [ FOR ] @@ -1028,7 +1028,7 @@ this is the start of an arg-maximum or arg-minimum expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN CARDINAL SUCH THAT YEAR ## -## Ends in an error in state: 215. +## Ends in an error in state: 204. ## ## expression -> exists_prefix . expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1040,7 +1040,7 @@ expected an expression for the existential test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN TRUE SUCH YEAR ## -## Ends in an error in state: 221. +## Ends in an error in state: 210. ## ## exists_prefix -> exists_marked ident IN primitive_expression SUCH . THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## @@ -1052,7 +1052,7 @@ expected a keyword to complete the "such that" construction source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN TRUE XOR ## -## Ends in an error in state: 220. +## Ends in an error in state: 209. ## ## exists_prefix -> exists_marked ident IN primitive_expression . SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## @@ -1063,14 +1063,14 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN TRUE X ## 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 62, spurious reduction of production primitive_expression -> small_expression +## In state 51, spurious reduction of production primitive_expression -> small_expression ## expected a keyword to form the "such that" expression for the existential test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN YEAR ## -## Ends in an error in state: 219. +## Ends in an error in state: 208. ## ## exists_prefix -> exists_marked ident IN . primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## @@ -1082,7 +1082,7 @@ expected an expression that designates the set subject to the existential test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT YEAR ## -## Ends in an error in state: 218. +## Ends in an error in state: 207. ## ## exists_prefix -> exists_marked ident . IN primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## @@ -1094,7 +1094,7 @@ expected the "in" keyword to continue this existential test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS YEAR ## -## Ends in an error in state: 217. +## Ends in an error in state: 206. ## ## exists_prefix -> exists_marked . ident IN primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## @@ -1106,7 +1106,7 @@ expected an identifier that will designate the existential witness for the test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT IN CARDINAL WE_HAVE YEAR ## -## Ends in an error in state: 208. +## Ends in an error in state: 197. ## ## expression -> forall_prefix . expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1118,7 +1118,7 @@ expected an expression for the universal test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT IN TRUE XOR ## -## Ends in an error in state: 212. +## Ends in an error in state: 201. ## ## forall_prefix -> for_all_marked ident IN primitive_expression . WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## @@ -1129,14 +1129,14 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT IN TRUE ## 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 62, spurious reduction of production primitive_expression -> small_expression +## In state 51, spurious reduction of production primitive_expression -> small_expression ## expected the "we have" keyword for this universal test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT IN YEAR ## -## Ends in an error in state: 211. +## Ends in an error in state: 200. ## ## forall_prefix -> for_all_marked ident IN . primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## @@ -1148,7 +1148,7 @@ expected the expression designating the set on which to perform the universal te source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT YEAR ## -## Ends in an error in state: 210. +## Ends in an error in state: 199. ## ## forall_prefix -> for_all_marked ident . IN primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## @@ -1160,7 +1160,7 @@ expected the "in" keyword for the rest of the universal test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL YEAR ## -## Ends in an error in state: 209. +## Ends in an error in state: 198. ## ## forall_prefix -> for_all_marked . ident IN primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## @@ -1172,7 +1172,7 @@ expected an identifier for the bound variable of the universal test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR YEAR ## -## Ends in an error in state: 204. +## Ends in an error in state: 193. ## ## for_all_marked -> FOR . ALL [ IDENT ] ## @@ -1184,7 +1184,7 @@ expected the "all" keyword to mean the "for all" construction of the universal t source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF TRUE SEMICOLON ## -## Ends in an error in state: 223. +## Ends in an error in state: 212. ## ## expression -> IF expression . THEN expression ELSE base_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1195,20 +1195,20 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF TRUE SEMICOLON ## 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 62, spurious reduction of production primitive_expression -> small_expression -## In state 100, spurious reduction of production base_expression -> primitive_expression -## In state 140, spurious reduction of production mult_expression -> base_expression -## In state 126, spurious reduction of production sum_expression -> mult_expression -## In state 150, spurious reduction of production compare_expression -> sum_expression -## In state 178, spurious reduction of production logical_expression -> compare_expression -## In state 207, spurious reduction of production expression -> logical_expression +## In state 51, spurious reduction of production primitive_expression -> small_expression +## In state 89, spurious reduction of production base_expression -> primitive_expression +## In state 129, spurious reduction of production mult_expression -> base_expression +## In state 115, spurious reduction of production sum_expression -> mult_expression +## In state 139, spurious reduction of production compare_expression -> sum_expression +## In state 167, spurious reduction of production logical_expression -> compare_expression +## In state 196, spurious reduction of production expression -> logical_expression ## expected the "then" keyword as the conditional expression is complete source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF TRUE THEN TRUE ELSE YEAR ## -## Ends in an error in state: 226. +## Ends in an error in state: 215. ## ## expression -> IF expression THEN expression ELSE . base_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1220,7 +1220,7 @@ expected an expression for the "else" branch of this conditional construction source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF TRUE THEN TRUE THEN ## -## Ends in an error in state: 225. +## Ends in an error in state: 214. ## ## expression -> IF expression THEN expression . ELSE base_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1231,20 +1231,20 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF TRUE THEN TRUE THEN ## 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 62, spurious reduction of production primitive_expression -> small_expression -## In state 100, spurious reduction of production base_expression -> primitive_expression -## In state 140, spurious reduction of production mult_expression -> base_expression -## In state 126, spurious reduction of production sum_expression -> mult_expression -## In state 150, spurious reduction of production compare_expression -> sum_expression -## In state 178, spurious reduction of production logical_expression -> compare_expression -## In state 207, spurious reduction of production expression -> logical_expression +## In state 51, spurious reduction of production primitive_expression -> small_expression +## In state 89, spurious reduction of production base_expression -> primitive_expression +## In state 129, spurious reduction of production mult_expression -> base_expression +## In state 115, spurious reduction of production sum_expression -> mult_expression +## In state 139, spurious reduction of production compare_expression -> sum_expression +## In state 167, spurious reduction of production logical_expression -> compare_expression +## In state 196, spurious reduction of production expression -> logical_expression ## expected the "else" branch of this conditional expression as the "then" branch is complete source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF TRUE THEN YEAR ## -## Ends in an error in state: 224. +## Ends in an error in state: 213. ## ## expression -> IF expression THEN . expression ELSE base_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1256,7 +1256,7 @@ expected an expression the for the "then" branch of the conditiona source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF YEAR ## -## Ends in an error in state: 203. +## Ends in an error in state: 192. ## ## expression -> IF . expression THEN expression ELSE base_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1268,7 +1268,7 @@ expected an expression for the test of the conditional source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION INT_LITERAL WITH_V ## -## Ends in an error in state: 81. +## Ends in an error in state: 70. ## ## literal -> num_literal . option(unit_literal) [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1280,7 +1280,7 @@ expected a unit for this literal, or a valid operator to complete the expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LPAREN TRUE THEN ## -## Ends in an error in state: 228. +## Ends in an error in state: 217. ## ## atomic_expression -> LPAREN expression . RPAREN [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1291,20 +1291,20 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LPAREN TRUE THEN ## 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 62, spurious reduction of production primitive_expression -> small_expression -## In state 100, spurious reduction of production base_expression -> primitive_expression -## In state 140, spurious reduction of production mult_expression -> base_expression -## In state 126, spurious reduction of production sum_expression -> mult_expression -## In state 150, spurious reduction of production compare_expression -> sum_expression -## In state 178, spurious reduction of production logical_expression -> compare_expression -## In state 207, spurious reduction of production expression -> logical_expression +## In state 51, spurious reduction of production primitive_expression -> small_expression +## In state 89, spurious reduction of production base_expression -> primitive_expression +## In state 129, spurious reduction of production mult_expression -> base_expression +## In state 115, spurious reduction of production sum_expression -> mult_expression +## In state 139, spurious reduction of production compare_expression -> sum_expression +## In state 167, spurious reduction of production logical_expression -> compare_expression +## In state 196, spurious reduction of production expression -> logical_expression ## unmatched parenthesis that should have been closed by here source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LPAREN YEAR ## -## Ends in an error in state: 54. +## Ends in an error in state: 43. ## ## atomic_expression -> LPAREN . expression RPAREN [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1316,7 +1316,7 @@ expected an expression inside the parenthesis source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LSQUARE TRUE SEMICOLON YEAR ## -## Ends in an error in state: 235. +## Ends in an error in state: 224. ## ## separated_nonempty_list(SEMICOLON,expression) -> expression SEMICOLON . separated_nonempty_list(SEMICOLON,expression) [ RSQUARE ] ## @@ -1328,7 +1328,7 @@ expected another element of the collection source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LSQUARE TRUE THEN ## -## Ends in an error in state: 234. +## Ends in an error in state: 223. ## ## separated_nonempty_list(SEMICOLON,expression) -> expression . [ RSQUARE ] ## separated_nonempty_list(SEMICOLON,expression) -> expression . SEMICOLON separated_nonempty_list(SEMICOLON,expression) [ RSQUARE ] @@ -1340,20 +1340,20 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LSQUARE TRUE THEN ## 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 62, spurious reduction of production primitive_expression -> small_expression -## In state 100, spurious reduction of production base_expression -> primitive_expression -## In state 140, spurious reduction of production mult_expression -> base_expression -## In state 126, spurious reduction of production sum_expression -> mult_expression -## In state 150, spurious reduction of production compare_expression -> sum_expression -## In state 178, spurious reduction of production logical_expression -> compare_expression -## In state 207, spurious reduction of production expression -> logical_expression +## In state 51, spurious reduction of production primitive_expression -> small_expression +## In state 89, spurious reduction of production base_expression -> primitive_expression +## In state 129, spurious reduction of production mult_expression -> base_expression +## In state 115, spurious reduction of production sum_expression -> mult_expression +## In state 139, spurious reduction of production compare_expression -> sum_expression +## In state 167, spurious reduction of production logical_expression -> compare_expression +## In state 196, spurious reduction of production expression -> logical_expression ## expected a semicolon or a right square bracket after the collection element source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LSQUARE YEAR ## -## Ends in an error in state: 50. +## Ends in an error in state: 39. ## ## primitive_expression -> LSQUARE . loption(separated_nonempty_list(SEMICOLON,expression)) RSQUARE [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1365,7 +1365,7 @@ expected a collection element source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAP FOR IDENT IN TRUE OF YEAR ## -## Ends in an error in state: 121. +## Ends in an error in state: 110. ## ## aggregate -> aggregate_func FOR ident IN primitive_expression OF . base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1377,7 +1377,7 @@ expected an expression for the map predicate source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAP FOR IDENT IN TRUE XOR ## -## Ends in an error in state: 120. +## Ends in an error in state: 109. ## ## aggregate -> aggregate_func FOR ident IN primitive_expression . OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1388,14 +1388,14 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAP FOR IDENT IN TRUE ## 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 62, spurious reduction of production primitive_expression -> small_expression +## In state 51, spurious reduction of production primitive_expression -> small_expression ## expected the "of" keyword to introduce the map predicate source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAP FOR IDENT IN YEAR ## -## Ends in an error in state: 119. +## Ends in an error in state: 108. ## ## aggregate -> aggregate_func FOR ident IN . primitive_expression OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1407,7 +1407,7 @@ expected the collection argument to map source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAP FOR IDENT YEAR ## -## Ends in an error in state: 118. +## Ends in an error in state: 107. ## ## aggregate -> aggregate_func FOR ident . IN primitive_expression OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1419,7 +1419,7 @@ expected the "in" keyword to introduce the collection argument to map source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAP FOR YEAR ## -## Ends in an error in state: 117. +## Ends in an error in state: 106. ## ## aggregate -> aggregate_func FOR . ident IN primitive_expression OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1431,7 +1431,7 @@ expected the identifier for the map predicate source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAP YEAR ## -## Ends in an error in state: 116. +## Ends in an error in state: 105. ## ## aggregate -> aggregate_func . FOR ident IN primitive_expression OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1443,7 +1443,7 @@ expected the "for" keyword to introduce the identifier for the map predicate source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR COLON CARDINAL RBRACKET ## -## Ends in an error in state: 197. +## Ends in an error in state: 186. ## ## match_arms -> ALT match_arm . match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1454,20 +1454,20 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CO ## 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 97, spurious reduction of production primitive_expression -> CARDINAL -## In state 100, spurious reduction of production base_expression -> primitive_expression -## In state 140, spurious reduction of production mult_expression -> base_expression -## In state 126, spurious reduction of production sum_expression -> mult_expression -## In state 150, spurious reduction of production compare_expression -> sum_expression -## In state 178, spurious reduction of production logical_expression -> compare_expression -## In state 201, spurious reduction of production match_arm -> constructor_binding COLON logical_expression +## In state 86, spurious reduction of production primitive_expression -> CARDINAL +## In state 89, spurious reduction of production base_expression -> primitive_expression +## In state 129, spurious reduction of production mult_expression -> base_expression +## In state 115, spurious reduction of production sum_expression -> mult_expression +## In state 139, spurious reduction of production compare_expression -> sum_expression +## In state 167, spurious reduction of production logical_expression -> compare_expression +## In state 190, spurious reduction of production match_arm -> constructor_binding COLON logical_expression ## expected the "with pattern" keyword to complete the pattern matching expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR COLON YEAR ## -## Ends in an error in state: 200. +## Ends in an error in state: 189. ## ## match_arm -> constructor_binding COLON . logical_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ALT ] ## @@ -1479,7 +1479,7 @@ expected a correct expression for this match arm source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR XOR ## -## Ends in an error in state: 199. +## Ends in an error in state: 188. ## ## match_arm -> constructor_binding . COLON logical_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ALT ] ## @@ -1490,17 +1490,17 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CO ## 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 106, spurious reduction of production option(preceded(DOT,constructor)) -> -## In state 109, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor)) -## In state 102, spurious reduction of production optional_binding -> -## In state 111, spurious reduction of production constructor_binding -> maybe_qualified_constructor optional_binding +## In state 95, spurious reduction of production option(preceded(DOT,constructor)) -> +## In state 98, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor)) +## In state 91, spurious reduction of production optional_binding -> +## In state 100, spurious reduction of production constructor_binding -> maybe_qualified_constructor optional_binding ## expected a constructor payload binding or a colon source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT YEAR ## -## Ends in an error in state: 71. +## Ends in an error in state: 60. ## ## match_arms -> ALT . match_arm match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1512,7 +1512,7 @@ expected the name of the constructor for the enum case in the pattern matching source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH YEAR ## -## Ends in an error in state: 70. +## Ends in an error in state: 59. ## ## expression -> MATCH primitive_expression WITH . match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1524,7 +1524,7 @@ expected a pattern matching case source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE XOR ## -## Ends in an error in state: 69. +## Ends in an error in state: 58. ## ## expression -> MATCH primitive_expression . WITH match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1535,14 +1535,14 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE XOR ## 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 62, spurious reduction of production primitive_expression -> small_expression +## In state 51, spurious reduction of production primitive_expression -> small_expression ## expected the "with pattern" keyword source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH YEAR ## -## Ends in an error in state: 55. +## Ends in an error in state: 44. ## ## expression -> MATCH . primitive_expression WITH match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1554,7 +1554,7 @@ expected an expression to match with source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAXIMUM TEXT INIT YEAR ## -## Ends in an error in state: 53. +## Ends in an error in state: 42. ## ## aggregate_func -> MAXIMUM typ_base INIT . primitive_expression [ FOR ] ## @@ -1566,7 +1566,7 @@ expected the maximum initial expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAXIMUM TEXT YEAR ## -## Ends in an error in state: 52. +## Ends in an error in state: 41. ## ## aggregate_func -> MAXIMUM typ_base . INIT primitive_expression [ FOR ] ## @@ -1578,7 +1578,7 @@ expected the "initial" keyword to introduce the maximum initial expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAXIMUM YEAR ## -## Ends in an error in state: 51. +## Ends in an error in state: 40. ## ## aggregate_func -> MAXIMUM . typ_base INIT primitive_expression [ FOR ] ## @@ -1590,7 +1590,7 @@ expected the type of the elements compared for the maximum source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MINIMUM TEXT INIT YEAR ## -## Ends in an error in state: 49. +## Ends in an error in state: 38. ## ## aggregate_func -> MINIMUM typ_base INIT . primitive_expression [ FOR ] ## @@ -1602,7 +1602,7 @@ expected the minimum initial expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MINIMUM TEXT YEAR ## -## Ends in an error in state: 48. +## Ends in an error in state: 37. ## ## aggregate_func -> MINIMUM typ_base . INIT primitive_expression [ FOR ] ## @@ -1614,7 +1614,7 @@ expected the "initial" keyword to introduce the minimum initial expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MINIMUM YEAR ## -## Ends in an error in state: 47. +## Ends in an error in state: 36. ## ## aggregate_func -> MINIMUM . typ_base INIT primitive_expression [ FOR ] ## @@ -1626,7 +1626,7 @@ expected the type of the elements compared for the minimum source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MINUSMONEY YEAR ## -## Ends in an error in state: 98. +## Ends in an error in state: 87. ## ## sum_expression -> sum_unop . sum_expression [ XOR 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 ] ## @@ -1638,7 +1638,7 @@ expected an expression to take the opposite of source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION NOT YEAR ## -## Ends in an error in state: 175. +## Ends in an error in state: 164. ## ## logical_expression -> logical_unop . compare_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ALT ] ## @@ -1650,7 +1650,7 @@ expected an expression to take the negation of source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION SUM YEAR ## -## Ends in an error in state: 31. +## Ends in an error in state: 20. ## ## aggregate_func -> SUM . typ_base [ FOR ] ## @@ -1662,7 +1662,7 @@ expected the "for" keyword to spell the aggregation source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE ASSERTION ## -## Ends in an error in state: 240. +## Ends in an error in state: 229. ## ## code_item -> SCOPE constructor option(scope_use_condition) . COLON nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ] ## @@ -1673,22 +1673,22 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE 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 62, spurious reduction of production primitive_expression -> small_expression -## In state 100, spurious reduction of production base_expression -> primitive_expression -## In state 140, spurious reduction of production mult_expression -> base_expression -## In state 126, spurious reduction of production sum_expression -> mult_expression -## In state 150, spurious reduction of production compare_expression -> sum_expression -## In state 178, spurious reduction of production logical_expression -> compare_expression -## In state 207, spurious reduction of production expression -> logical_expression -## In state 238, spurious reduction of production scope_use_condition -> UNDER_CONDITION expression -## In state 239, spurious reduction of production option(scope_use_condition) -> scope_use_condition +## In state 51, spurious reduction of production primitive_expression -> small_expression +## In state 89, spurious reduction of production base_expression -> primitive_expression +## In state 129, spurious reduction of production mult_expression -> base_expression +## In state 115, spurious reduction of production sum_expression -> mult_expression +## In state 139, spurious reduction of production compare_expression -> sum_expression +## In state 167, spurious reduction of production logical_expression -> compare_expression +## In state 196, spurious reduction of production expression -> logical_expression +## In state 227, spurious reduction of production scope_use_condition -> UNDER_CONDITION expression +## In state 228, spurious reduction of production option(scope_use_condition) -> scope_use_condition ## expected a colon after the scope use precondition source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE DOT CONSTRUCTOR DOT YEAR ## -## Ends in an error in state: 64. +## Ends in an error in state: 53. ## ## small_expression -> small_expression DOT option(terminated(constructor,DOT)) . ident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1700,7 +1700,7 @@ expected the rest of the path after the dot source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE DOT CONSTRUCTOR YEAR ## -## Ends in an error in state: 67. +## Ends in an error in state: 56. ## ## option(terminated(constructor,DOT)) -> constructor . DOT [ IDENT ] ## @@ -1712,7 +1712,7 @@ expected the rest of the path after a dot source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE DOT YEAR ## -## Ends in an error in state: 63. +## Ends in an error in state: 52. ## ## small_expression -> small_expression DOT . option(terminated(constructor,DOT)) ident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1724,7 +1724,7 @@ expected the name of the struct field of the expression before source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE IN YEAR ## -## Ends in an error in state: 124. +## Ends in an error in state: 113. ## ## base_expression -> primitive_expression IN . base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1736,7 +1736,7 @@ expected an expression standing for the set you want to test for membership source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE INCREASING ## -## Ends in an error in state: 140. +## Ends in an error in state: 129. ## ## mult_expression -> base_expression . [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 ] @@ -1748,15 +1748,15 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE INCREASING ## 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 62, spurious reduction of production primitive_expression -> small_expression -## In state 100, spurious reduction of production base_expression -> primitive_expression +## In state 51, spurious reduction of production primitive_expression -> small_expression +## In state 89, spurious reduction of production base_expression -> primitive_expression ## expected an operator to compose the expression on the left source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE MULTMONEY YEAR ## -## Ends in an error in state: 148. +## Ends in an error in state: 137. ## ## mult_expression -> base_expression mult_op . mult_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 ] ## @@ -1768,7 +1768,7 @@ expected an expression on the right side of the multiplication or division opera source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE NOT_EQUAL YEAR ## -## Ends in an error in state: 173. +## Ends in an error in state: 162. ## ## compare_expression -> sum_expression compare_op . compare_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET OR LABEL EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1780,7 +1780,7 @@ expected an expression on the right side of the comparison operator source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE OF YEAR ## -## Ends in an error in state: 113. +## Ends in an error in state: 102. ## ## base_expression -> primitive_expression OF . base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1792,7 +1792,7 @@ expected an expression for the argument of this function call source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE PLUSMONEY YEAR ## -## Ends in an error in state: 138. +## Ends in an error in state: 127. ## ## sum_expression -> mult_expression sum_op . sum_expression [ XOR 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 ] ## @@ -1804,7 +1804,7 @@ expected an expression after the plus or minus operator source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WE_HAVE ## -## Ends in an error in state: 100. +## Ends in an error in state: 89. ## ## base_expression -> primitive_expression . [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## base_expression -> primitive_expression . OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] @@ -1818,14 +1818,14 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WE_HAVE ## 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 62, spurious reduction of production primitive_expression -> small_expression +## In state 51, spurious reduction of production primitive_expression -> small_expression ## the expression before ended, what follows next should be an operator or the rest of the code structure source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR CONSTRUCTOR ## -## Ends in an error in state: 102. +## Ends in an error in state: 91. ## ## constructor_binding -> maybe_qualified_constructor . optional_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1836,15 +1836,15 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR ## 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 106, spurious reduction of production option(preceded(DOT,constructor)) -> -## In state 109, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor)) +## In state 95, spurious reduction of production option(preceded(DOT,constructor)) -> +## In state 98, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor)) ## a enum constructor pattern should be followed by a payload source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR OF CONSTRUCTOR XOR ## -## Ends in an error in state: 104. +## Ends in an error in state: 93. ## ## optional_binding -> OF maybe_qualified_constructor . constructor_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1855,15 +1855,15 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR ## 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 106, spurious reduction of production option(preceded(DOT,constructor)) -> -## In state 109, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor)) +## In state 95, spurious reduction of production option(preceded(DOT,constructor)) -> +## In state 98, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor)) ## unexpected expression following a function application with an enum constructor name source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR OF YEAR ## -## Ends in an error in state: 103. +## Ends in an error in state: 92. ## ## optional_binding -> OF . ident [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## optional_binding -> OF . maybe_qualified_constructor constructor_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] @@ -1876,7 +1876,7 @@ expecting an expression to stand in as the function argument source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR YEAR ## -## Ends in an error in state: 106. +## Ends in an error in state: 95. ## ## maybe_qualified_constructor -> constructor . option(preceded(DOT,constructor)) [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSTRUCTOR CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1888,7 +1888,7 @@ the expression before ended, what follows next should be an operator or the rest source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH YEAR ## -## Ends in an error in state: 101. +## Ends in an error in state: 90. ## ## base_expression -> primitive_expression WITH . constructor_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1900,7 +1900,7 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH YEAR source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE XOR YEAR ## -## Ends in an error in state: 182. +## Ends in an error in state: 171. ## ## 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 ] ## @@ -1912,7 +1912,7 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE XOR YEAR source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE YEAR ## -## Ends in an error in state: 62. +## Ends in an error in state: 51. ## ## primitive_expression -> small_expression . [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## small_expression -> small_expression . DOT option(terminated(constructor,DOT)) ident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] @@ -1925,7 +1925,7 @@ expected an enum constructor to test if the expression on the left source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION VERTICAL INT_LITERAL MINUS INT_LITERAL MINUS INT_LITERAL YEAR ## -## Ends in an error in state: 28. +## Ends in an error in state: 17. ## ## literal -> VERTICAL date_int MINUS date_int MINUS date_int . VERTICAL [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1937,7 +1937,7 @@ expected a vertical bar to end the date literal source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION VERTICAL INT_LITERAL MINUS INT_LITERAL MINUS YEAR ## -## Ends in an error in state: 27. +## Ends in an error in state: 16. ## ## literal -> VERTICAL date_int MINUS date_int MINUS . date_int VERTICAL [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1949,7 +1949,7 @@ expected the day of the month source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION VERTICAL INT_LITERAL MINUS INT_LITERAL YEAR ## -## Ends in an error in state: 26. +## Ends in an error in state: 15. ## ## literal -> VERTICAL date_int MINUS date_int . MINUS date_int VERTICAL [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1961,7 +1961,7 @@ expected the "-" sign after the month of the year source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION VERTICAL INT_LITERAL MINUS YEAR ## -## Ends in an error in state: 25. +## Ends in an error in state: 14. ## ## literal -> VERTICAL date_int MINUS . date_int MINUS date_int VERTICAL [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1973,7 +1973,7 @@ expected the month of the year source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION VERTICAL INT_LITERAL YEAR ## -## Ends in an error in state: 24. +## Ends in an error in state: 13. ## ## literal -> VERTICAL date_int . MINUS date_int MINUS date_int VERTICAL [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1985,7 +1985,7 @@ expected the "-" sign after the year source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION VERTICAL YEAR ## -## Ends in an error in state: 22. +## Ends in an error in state: 11. ## ## literal -> VERTICAL . date_int MINUS date_int MINUS date_int VERTICAL [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS 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 FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDURATION DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1997,7 +1997,7 @@ expected the year for this date literal source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION YEAR ## -## Ends in an error in state: 21. +## Ends in an error in state: 10. ## ## scope_use_condition -> UNDER_CONDITION . expression [ COLON ] ## @@ -2009,7 +2009,7 @@ expected an expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR YEAR ## -## Ends in an error in state: 20. +## Ends in an error in state: 9. ## ## code_item -> SCOPE constructor . option(scope_use_condition) COLON nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ] ## @@ -2021,7 +2021,7 @@ expected a scope use condition or the content of this scope use source_file: BEGIN_CODE SCOPE YEAR ## -## Ends in an error in state: 18. +## Ends in an error in state: 7. ## ## code_item -> SCOPE . constructor option(scope_use_condition) COLON nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ] ## @@ -2033,9 +2033,9 @@ expected the name of the scope being used source_file: BEGIN_CODE YEAR ## -## Ends in an error in state: 361. +## Ends in an error in state: 355. ## -## source_file_item -> BEGIN_CODE . code END_CODE [ LAW_TEXT LAW_HEADING EOF BEGIN_DIRECTIVE BEGIN_CODE ] +## source_file_item -> BEGIN_CODE . code END_CODE [ LAW_TEXT LAW_HEADING EOF BEGIN_METADATA BEGIN_DIRECTIVE BEGIN_CODE ] ## ## The known suffix of the stack is as follows: ## BEGIN_CODE @@ -2052,8 +2052,8 @@ source_file: LAW_TEXT YEAR ## ## Ends in an error in state: 1. ## -## nonempty_list(LAW_TEXT) -> LAW_TEXT . [ LAW_TEXT LAW_HEADING EOF BEGIN_DIRECTIVE BEGIN_CODE ] -## nonempty_list(LAW_TEXT) -> LAW_TEXT . nonempty_list(LAW_TEXT) [ LAW_TEXT LAW_HEADING EOF BEGIN_DIRECTIVE BEGIN_CODE ] +## nonempty_list(LAW_TEXT) -> LAW_TEXT . [ SCOPE LAW_TEXT LAW_HEADING EOF END_CODE DECLARATION BEGIN_METADATA BEGIN_DIRECTIVE BEGIN_CODE ] +## nonempty_list(LAW_TEXT) -> LAW_TEXT . nonempty_list(LAW_TEXT) [ SCOPE LAW_TEXT LAW_HEADING EOF END_CODE DECLARATION BEGIN_METADATA BEGIN_DIRECTIVE BEGIN_CODE ] ## ## The known suffix of the stack is as follows: ## LAW_TEXT diff --git a/compiler/surface/parser.mly b/compiler/surface/parser.mly index 9137b275..c19588c4 100644 --- a/compiler/surface/parser.mly +++ b/compiler/surface/parser.mly @@ -558,7 +558,7 @@ code: | code = list(code_item) { (code, Pos.from_lpos $sloc) } metadata_block: -| BEGIN_DIRECTIVE BEGIN_METADATA END_DIRECTIVE option(law_text) BEGIN_CODE code_and_pos = code text = END_CODE option(law_text) BEGIN_DIRECTIVE END_METADATA END_DIRECTIVE { +| BEGIN_METADATA option(law_text) code_and_pos = code text = END_CODE { let (code, pos) = code_and_pos in (code, (text, pos)) } diff --git a/compiler/surface/tokens.mly b/compiler/surface/tokens.mly index 995a42b0..9f2d5fc8 100644 --- a/compiler/surface/tokens.mly +++ b/compiler/surface/tokens.mly @@ -58,7 +58,7 @@ %token SCOPE FILLED NOT_EQUAL DEFINITION %token STRUCT CONTENT IF THEN DEPENDS DECLARATION %token CONTEXT ENUM ELSE DATE SUM -%token BEGIN_METADATA END_METADATA MONEY DECIMAL +%token BEGIN_METADATA MONEY DECIMAL %token UNDER_CONDITION CONSEQUENCE LBRACKET RBRACKET %token LABEL EXCEPTION LSQUARE RSQUARE SEMICOLON %token MAXIMUM MINIMUM INIT diff --git a/examples/allocations_familiales/epilogue.catala_fr b/examples/allocations_familiales/epilogue.catala_fr index 59625f2c..17599c45 100644 --- a/examples/allocations_familiales/epilogue.catala_fr +++ b/examples/allocations_familiales/epilogue.catala_fr @@ -7,9 +7,7 @@ kécessaires au calcul. Cependant, certaines règles de calcul sont implicites dans ces textes et doivent être explicitées pour le calcul informatique. C'est la fonction du bloc de code ci-dessous. -> Début métadonnées - -```catala +```catala-metadata champ d'application EnfantLePlusÂgé: définition le_plus_âgé égal à contenu maximum entier initial Enfant { @@ -53,8 +51,6 @@ champ d'application AllocationsFamiliales: sinon 0€ ``` -> Fin métadonnées - ### Interface du programme Le calcul des allocations familiales nécessite un certain nombre d'informations @@ -64,9 +60,7 @@ naissance. Le but du block ci-dessous est d'encoder ces dépendances, de telle sorte que l'utilisateur puisse ne doive saisir que le nombre minimal d'informations sur les enfants à charge. -> Début métadonnées - -```catala +```catala-metadata déclaration structure EnfantEntrée: donnée d_identifiant contenu entier donnée d_rémuneration_mensuelle contenu argent @@ -99,8 +93,6 @@ champ d'application InterfaceAllocationsFamiliales: rempli ``` -> Fin métadonnées - #### Code de l'éducation #### Article L131-1|LEGIARTI000038901859 diff --git a/examples/allocations_familiales/prologue.catala_fr b/examples/allocations_familiales/prologue.catala_fr index 68a4cf78..0cac2f70 100644 --- a/examples/allocations_familiales/prologue.catala_fr +++ b/examples/allocations_familiales/prologue.catala_fr @@ -4,8 +4,7 @@ Avant de présenter les textes réglementaires qui régissent le calcul des allocations familiales, il est nécessaire de définir les structures de données informatiques qui modélisent la situation dont parlent ces textes législatifs. -> Début métadonnées -```catala +```catala-metadata déclaration énumération PriseEnCharge : -- GardeAlternéePartageAllocations -- GardeAlternéeAllocataireUnique @@ -158,4 +157,3 @@ champ d'application AllocationsFamiliales: résidence ``` -> Fin métadonnées diff --git a/examples/code_general_impots/prologue.catala_fr b/examples/code_general_impots/prologue.catala_fr index 48f33a54..c5bcc8cb 100644 --- a/examples/code_general_impots/prologue.catala_fr +++ b/examples/code_general_impots/prologue.catala_fr @@ -1,7 +1,6 @@ ## Prologue -> Début métadonnées -```catala +```catala-metadata déclaration énumération DomicileFiscal: -- France -- HorsDeFrance @@ -35,4 +34,3 @@ déclaration champ d'application CalculImpôtSurLeRevenu : contexte montants_sources_revenus contenu MontantsSourcesRevenus contexte domicile_fiscal contenu DomicileFiscal ``` -> Fin métadonnées diff --git a/examples/droit_successions/droit_successions.catala_fr b/examples/droit_successions/droit_successions.catala_fr index 4bccdb4d..2e97b170 100644 --- a/examples/droit_successions/droit_successions.catala_fr +++ b/examples/droit_successions/droit_successions.catala_fr @@ -18,8 +18,7 @@ La quotité disponible est la part des biens et droits successoraux qui n'est pas réservée par la loi et dont le défunt a pu disposer librement par des libéralités. -> Début métadonnées -```catala +```catala-metadata déclaration structure Enfant: donnée identifiant contenu entier donnée a_renoncé_à_la_succession contenu booléen @@ -42,7 +41,6 @@ déclaration champ d'application RéserveHéréditaire: contexte patrimoine_assiette_réserve_héréditaire contenu argent contexte montant_réserve_héréditaire contenu argent ``` -> Fin métadonnées ######## Article 913 | LEGIARTI000006435557 diff --git a/examples/hawaii_lfo/Title17-MotorAndOtherVehicles.catala_en b/examples/hawaii_lfo/Title17-MotorAndOtherVehicles.catala_en index ce943511..09469bfb 100644 --- a/examples/hawaii_lfo/Title17-MotorAndOtherVehicles.catala_en +++ b/examples/hawaii_lfo/Title17-MotorAndOtherVehicles.catala_en @@ -1,8 +1,6 @@ ## Title17 -> Begin metadata - -```catala +```catala-metadata declaration enumeration Violation_83_135: -- Section286_102 -- Section286_122 @@ -51,7 +49,6 @@ declaration scope Penalty286_83_135: context ok condition ``` -> End metadata ## 286-136 Penalty diff --git a/examples/tutorial_en/tutorial_en.catala_en b/examples/tutorial_en/tutorial_en.catala_en index 9a3d321e..705b569e 100644 --- a/examples/tutorial_en/tutorial_en.catala_en +++ b/examples/tutorial_en/tutorial_en.catala_en @@ -57,8 +57,7 @@ inside the law. Let's start our metadata section by declaring the type information for the individual: -> Begin metadata -```catala +```catala-metadata declaration structure Individual: # The name of the structure "Individual", must start with an # uppercase letter: this is the CamelCase convention. @@ -71,7 +70,6 @@ declaration structure Individual: # "income" and "number_of_children" start by a lowercase letter, # they follow the snake_case convention ``` -> End metadata This structure contains two data fields, "income" and "number_of_children". Structures are useful to group together data that goes together. Usually, you @@ -82,8 +80,7 @@ but you should aim to optimize code readability. Sometimes, the law gives an enumeration of different situations. These enumerations are modeled in Catala using an enumeration type, like: -> Begin metadata -```catala +```catala-metadata declaration enumeration TaxCredit: # The name "TaxCredit" is also written in CamelCase -- NoTaxCredit @@ -95,7 +92,6 @@ declaration enumeration TaxCredit: # by the tax credit. This means that if you're in the "ChildrenTaxCredit" # situation, you will also have access to this number of children ``` -> End metadata In computer science terms, such an enumeration is called a "sum type" or simply an enum. The combination of structures and enumerations allow the Catala @@ -107,8 +103,7 @@ to define the logical context in which these data will evolve. This is done in Catala using "scopes". Scopes are close to functions in terms of traditional programming. Scopes also have to be declared in metadata, so here we go: -> Begin metadata -```catala +```catala-metadata declaration scope IncomeTaxComputation: # Scope names use CamelCase context individual content Individual @@ -118,7 +113,6 @@ declaration scope IncomeTaxComputation: context fixed_percentage content decimal context income_tax content money ``` -> End metadata We now have everything to annotate the contents of article 1, which is copied over below. @@ -208,8 +202,7 @@ Catala lets you define functions anywhere in your data. Here's what it looks like in the metadata definition when we want to define a two-brackets tax computation: -> Begin metadata -```catala +```catala-metadata declaration structure TwoBrackets: data breakpoint content money data rate1 content decimal @@ -219,7 +212,6 @@ declaration scope TwoBracketsTaxComputation : context brackets content TwoBrackets context tax_formula content money depends on money ``` -> End metadata And in the code: diff --git a/examples/tutoriel_fr/tutoriel_fr.catala_fr b/examples/tutoriel_fr/tutoriel_fr.catala_fr index f6c89e47..6cd146e1 100644 --- a/examples/tutoriel_fr/tutoriel_fr.catala_fr +++ b/examples/tutoriel_fr/tutoriel_fr.catala_fr @@ -59,8 +59,7 @@ la forme et les types de données contenues dans la loi. Commençons notre section métadonnées en déclarant l'information sur le type personne : -> Début métadonnées -```catala +```catala-metadata déclaration structure Personne: # Le nom de la structure "Personne", doit commencer # par une lettre majuscule: c'est la convention CamelCase. @@ -74,7 +73,6 @@ déclaration structure Personne: # "revenu" and "nombre_enfants" commençent par une lettre minuscule, # ils adhèrent à la convention snake_case ``` -> Fin métadonnées Cette structure contient deux champs de de données, "revenu" et "nombre_enfants". Les structures sont utiles pour regrouper des données qui vont ensemble. @@ -85,8 +83,7 @@ les données mais vous devrez viser à optimiser la lisibilité du code. Parfois, la loi donne une énumération de différentes situations. Ces énumérations sont modélisés en Catala par le type énumération, comme suit : -> Début métadonnées -```catala +```catala-metadata déclaration énumération CréditImpôt: # Le nom "CréditImpôt" s'écrit aussi en CamelCase -- AucunCréditImpôt @@ -99,7 +96,6 @@ déclaration énumération CréditImpôt: # d'impôt. Cela signifie que si vous êtes dans la situation # "CréditImpôtEnfants", vous aurez aussi accès à ce nombre d'enfants. ``` -> Fin métadonnées En informatique, une telle énumération est appelée "type somme" ou simplement énumération. La combinaison de structures et d'énumération permet au programmeur @@ -113,8 +109,7 @@ Les champs d'application sont proches des fonctions en termes de programmation traditionnelle. Les champs d'application doivent avoir été déclarés préalablement dans les métadonnées, de la manière suivante: -> Début métadonnées -```catala +```catala-metadata déclaration champ d'application CalculImpôtRevenu: # Les champs d'application utilisent le CamelCase contexte personne contenu Personne @@ -124,7 +119,6 @@ déclaration champ d'application CalculImpôtRevenu: contexte pourcentage_fixe contenu décimal contexte impôt_revenu contenu argent ``` -> Fin métadonnées Nous avons maintenant tout ce dont nous avons besoin pour annoter le contenu de l'article 1 qui a été copié ci-dessous. @@ -217,8 +211,7 @@ Catala vous permet de définir des fonctions partout dans vos données. Voici à quoi cela ressemble dans la définition des métadonnées quand nous voulons définir un calcul de l'impôt sur le revenu à deux tranches : -> Début métadonnées -```catala +```catala-metadata déclaration structure DeuxTranches: donnée seuil contenu argent donnée taux1 contenu décimal @@ -228,7 +221,6 @@ déclaration champ d'application CalculImpôtDeuxTranches : contexte tranches contenu DeuxTranches contexte formule_imposition contenu argent dépend de argent ``` -> Fin métadonnées Et dans le code : diff --git a/examples/us_tax_code/preamble.catala_en b/examples/us_tax_code/preamble.catala_en index bfd645e2..0e9d691d 100644 --- a/examples/us_tax_code/preamble.catala_en +++ b/examples/us_tax_code/preamble.catala_en @@ -1,10 +1,6 @@ ## The US Tax Code -> Begin metadata - -```catala +```catala-metadata declaration structure Person: data id content integer ``` - -> End metadata diff --git a/examples/us_tax_code/section_1015.catala_en b/examples/us_tax_code/section_1015.catala_en index f919c2bb..fa11651a 100644 --- a/examples/us_tax_code/section_1015.catala_en +++ b/examples/us_tax_code/section_1015.catala_en @@ -1,8 +1,6 @@ ## Section 1015 -> Begin metadata - -```catala +```catala-metadata declaration enumeration AcquisitionMethod: -- Gift -- Trust @@ -31,7 +29,6 @@ declaration scope BasisOfGift: context transferor content Transferor context gift_tax_paid content money ``` -> End metadata ### (a) Gifts after December 31, 1920 diff --git a/examples/us_tax_code/section_121.catala_en b/examples/us_tax_code/section_121.catala_en index 424ba409..4975899b 100644 --- a/examples/us_tax_code/section_121.catala_en +++ b/examples/us_tax_code/section_121.catala_en @@ -1,7 +1,6 @@ ## Section 121 -> Begin metadata -```catala +```catala-metadata declaration structure Period: data begin content date data end content date @@ -157,7 +156,6 @@ scope Section121TwoPasses: definition income_excluded_from_gross_income equals second_pass.income_excluded_from_gross_income ``` -> End metadata ### (a) Exclusion diff --git a/examples/us_tax_code/section_132.catala_en b/examples/us_tax_code/section_132.catala_en index aca5b3e4..1827db19 100644 --- a/examples/us_tax_code/section_132.catala_en +++ b/examples/us_tax_code/section_132.catala_en @@ -1,7 +1,6 @@ ## Section 132 -> Begin metadata -```catala +```catala-metadata # We only formalize part (c) here declaration enumeration DiscountType: -- Property @@ -26,8 +25,6 @@ scope QualifiedEmployeeDiscount: -- Property: false -- Services: true ``` -> End metadata - ### (c) Qualified employee discount defined For purposes of this section— diff --git a/tests/test_metadata/good/output/test_markup_refactoring.catala_en.S.out b/tests/test_metadata/good/output/test_markup_refactoring.catala_en.S.out new file mode 100644 index 00000000..d32077a6 --- /dev/null +++ b/tests/test_metadata/good/output/test_markup_refactoring.catala_en.S.out @@ -0,0 +1,2 @@ +[RESULT] Computation successful! Results: +[RESULT] a = A () diff --git a/tests/test_metadata/good/output/test_markup_refactoring.catala_en.S2.out b/tests/test_metadata/good/output/test_markup_refactoring.catala_en.S2.out new file mode 100644 index 00000000..4a296897 --- /dev/null +++ b/tests/test_metadata/good/output/test_markup_refactoring.catala_en.S2.out @@ -0,0 +1,2 @@ +[RESULT] Computation successful! Results: +[RESULT] b = B () diff --git a/tests/test_metadata/good/test_markup_refactoring.catala_en b/tests/test_metadata/good/test_markup_refactoring.catala_en new file mode 100644 index 00000000..a677b8f4 --- /dev/null +++ b/tests/test_metadata/good/test_markup_refactoring.catala_en @@ -0,0 +1,29 @@ +# Test the refactored metatdata markup + +```catala-metadata +declaration enumeration E: + -- A + -- B + +declaration scope S: + context a content E +``` + +Some law text... + +```catala-metadata +declaration scope S2: + context b content E +``` + +## PROGRAM + +```catala +scope S: + definition a equals A +``` + +```catala +scope S2: + definition b equals B +```