mirror of
https://github.com/CatalaLang/catala.git
synced 2024-09-19 00:15:39 +03:00
Allow deconstruction of tuples using let in
This commit is contained in:
parent
df3ab64fe9
commit
94ebc1b65e
@ -459,12 +459,18 @@ let rec translate_expr
|
||||
ScopeVar.Map.empty fields
|
||||
in
|
||||
Expr.escopecall ~scope:called_scope ~args:in_struct emark
|
||||
| LetIn (x, e1, e2) ->
|
||||
let v = Var.make (Mark.remove x) in
|
||||
let local_vars = Ident.Map.add (Mark.remove x) v local_vars in
|
||||
let tau = TAny, Mark.get x in
|
||||
| LetIn (xs, e1, e2) ->
|
||||
let vs = List.map (fun x -> Var.make (Mark.remove x)) xs in
|
||||
let local_vars =
|
||||
List.fold_left2
|
||||
(fun local_vars x v -> Ident.Map.add (Mark.remove x) v local_vars)
|
||||
local_vars xs vs
|
||||
in
|
||||
let taus = List.map (fun x -> TAny, Mark.get x) xs in
|
||||
(* This type will be resolved in Scopelang.Desambiguation *)
|
||||
let fn = Expr.make_abs [| v |] (rec_helper ~local_vars e2) [tau] pos in
|
||||
let fn =
|
||||
Expr.make_abs (Array.of_list vs) (rec_helper ~local_vars e2) taus pos
|
||||
in
|
||||
Expr.eapp fn [rec_helper e1] emark
|
||||
| StructLit (((path, s_name), _), fields) ->
|
||||
let ctxt = Name_resolution.module_ctx ctxt path in
|
||||
|
@ -181,7 +181,7 @@ and naked_expression =
|
||||
| FunCall of expression * expression list
|
||||
| ScopeCall of
|
||||
(path * uident Mark.pos) Mark.pos * (lident Mark.pos * expression) list
|
||||
| LetIn of lident Mark.pos * expression * expression
|
||||
| LetIn of lident Mark.pos list * expression * expression
|
||||
| Builtin of builtin_expression
|
||||
| Literal of literal
|
||||
| EnumInject of (path * uident Mark.pos) Mark.pos * expression option
|
||||
|
@ -250,7 +250,7 @@ expected the kind of the declaration (struct, scope or enum)
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON ASSERTION CARDINAL THEN
|
||||
##
|
||||
## Ends in an error in state: 244.
|
||||
## Ends in an error in state: 247.
|
||||
##
|
||||
## assertion -> option(condition_consequence) expression . [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION DATE ASSERTION ]
|
||||
## expression -> expression . DOT qlident [ XOR WITH SCOPE RULE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE DOT DIV DEFINITION DECLARATION DATE CONTAINS ASSERTION AND ]
|
||||
@ -282,7 +282,7 @@ expected a new scope use item
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON ASSERTION FIXED LIDENT BY YEAR
|
||||
##
|
||||
## Ends in an error in state: 241.
|
||||
## Ends in an error in state: 244.
|
||||
##
|
||||
## assertion -> FIXED separated_nonempty_list(DOT,addpos(LIDENT)) BY . lident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION DATE ASSERTION ]
|
||||
##
|
||||
@ -294,7 +294,7 @@ expected the legislative text by which the value of the variable is fixed
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON ASSERTION FIXED LIDENT WITH_V
|
||||
##
|
||||
## Ends in an error in state: 240.
|
||||
## Ends in an error in state: 243.
|
||||
##
|
||||
## assertion -> FIXED separated_nonempty_list(DOT,addpos(LIDENT)) . BY lident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION DATE ASSERTION ]
|
||||
##
|
||||
@ -305,14 +305,14 @@ source_file: BEGIN_CODE SCOPE UIDENT COLON ASSERTION FIXED LIDENT 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 228, spurious reduction of production separated_nonempty_list(DOT,addpos(LIDENT)) -> LIDENT
|
||||
## In state 231, spurious reduction of production separated_nonempty_list(DOT,addpos(LIDENT)) -> LIDENT
|
||||
##
|
||||
|
||||
expected the legislative text by which the value of the variable is fixed
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON ASSERTION FIXED YEAR
|
||||
##
|
||||
## Ends in an error in state: 239.
|
||||
## Ends in an error in state: 242.
|
||||
##
|
||||
## assertion -> FIXED . separated_nonempty_list(DOT,addpos(LIDENT)) BY lident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION DATE ASSERTION ]
|
||||
##
|
||||
@ -324,7 +324,7 @@ expected the name of the variable that should be fixed
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON ASSERTION UNDER_CONDITION TRUE THEN
|
||||
##
|
||||
## Ends in an error in state: 237.
|
||||
## Ends in an error in state: 240.
|
||||
##
|
||||
## condition_consequence -> UNDER_CONDITION expression . CONSEQUENCE [ UIDENT TRUE SUM OUTPUT NOT MONEY_AMOUNT MONEY MINUS MINIMUM MAXIMUM MATCH LPAREN LIDENT LET LBRACKET INT_LITERAL IF FOR FILLED FALSE EXISTS DEFINED_AS DECIMAL_LITERAL DECIMAL DATE_LITERAL CARDINAL ]
|
||||
## expression -> expression . DOT qlident [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS CONSEQUENCE AND ]
|
||||
@ -356,7 +356,7 @@ expected a consequence for this definition under condition
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON ASSERTION UNDER_CONDITION YEAR
|
||||
##
|
||||
## Ends in an error in state: 236.
|
||||
## Ends in an error in state: 239.
|
||||
##
|
||||
## condition_consequence -> UNDER_CONDITION . expression CONSEQUENCE [ UIDENT TRUE SUM OUTPUT NOT MONEY_AMOUNT MONEY MINUS MINIMUM MAXIMUM MATCH LPAREN LIDENT LET LBRACKET INT_LITERAL IF FOR FILLED FALSE EXISTS DEFINED_AS DECIMAL_LITERAL DECIMAL DATE_LITERAL CARDINAL ]
|
||||
##
|
||||
@ -368,7 +368,7 @@ expected an expression for this condition
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON ASSERTION VARIES LIDENT UNDER_CONDITION
|
||||
##
|
||||
## Ends in an error in state: 231.
|
||||
## Ends in an error in state: 234.
|
||||
##
|
||||
## assertion -> VARIES separated_nonempty_list(DOT,addpos(LIDENT)) . WITH_V expression option(addpos(variation_type)) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION DATE ASSERTION ]
|
||||
##
|
||||
@ -379,14 +379,14 @@ source_file: BEGIN_CODE SCOPE UIDENT COLON ASSERTION VARIES LIDENT UNDER_CONDITI
|
||||
## This implies that, although the LR(1) items shown above provide an
|
||||
## accurate view of the past (what has been recognized so far), they
|
||||
## may provide an INCOMPLETE view of the future (what was expected next).
|
||||
## In state 228, spurious reduction of production separated_nonempty_list(DOT,addpos(LIDENT)) -> LIDENT
|
||||
## In state 231, spurious reduction of production separated_nonempty_list(DOT,addpos(LIDENT)) -> LIDENT
|
||||
##
|
||||
|
||||
expected an indication about what this variable varies with
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON ASSERTION VARIES LIDENT WITH_V YEAR
|
||||
##
|
||||
## Ends in an error in state: 232.
|
||||
## Ends in an error in state: 235.
|
||||
##
|
||||
## assertion -> VARIES separated_nonempty_list(DOT,addpos(LIDENT)) WITH_V . expression option(addpos(variation_type)) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION DATE ASSERTION ]
|
||||
##
|
||||
@ -398,7 +398,7 @@ the variable varies with an expression that was expected here
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON ASSERTION VARIES YEAR
|
||||
##
|
||||
## Ends in an error in state: 227.
|
||||
## Ends in an error in state: 230.
|
||||
##
|
||||
## assertion -> VARIES . separated_nonempty_list(DOT,addpos(LIDENT)) WITH_V expression option(addpos(variation_type)) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION DATE ASSERTION ]
|
||||
##
|
||||
@ -410,7 +410,7 @@ expecting the name of the varying variable
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON ASSERTION YEAR
|
||||
##
|
||||
## Ends in an error in state: 226.
|
||||
## Ends in an error in state: 229.
|
||||
##
|
||||
## scope_item -> ASSERTION . assertion [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION DATE ASSERTION ]
|
||||
##
|
||||
@ -434,7 +434,7 @@ expected an expression for the definition
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON DEFINITION LIDENT OF LIDENT DECREASING
|
||||
##
|
||||
## Ends in an error in state: 258.
|
||||
## Ends in an error in state: 180.
|
||||
##
|
||||
## separated_nonempty_list(COMMA,lident) -> lident . [ UNDER_CONDITION STATE NOT FILLED DEFINED_AS ]
|
||||
## separated_nonempty_list(COMMA,lident) -> lident . COMMA separated_nonempty_list(COMMA,lident) [ UNDER_CONDITION STATE NOT FILLED DEFINED_AS ]
|
||||
@ -447,7 +447,7 @@ expected an expression for defining this function, introduced by the defined as
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON DEFINITION LIDENT WITH_V
|
||||
##
|
||||
## Ends in an error in state: 255.
|
||||
## Ends in an error in state: 258.
|
||||
##
|
||||
## definition -> option(label) option(exception_to) DEFINITION separated_nonempty_list(DOT,addpos(LIDENT)) . option(addpos(definition_parameters)) option(state) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION DATE ASSERTION ]
|
||||
##
|
||||
@ -458,14 +458,14 @@ source_file: BEGIN_CODE SCOPE UIDENT COLON DEFINITION LIDENT 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 228, spurious reduction of production separated_nonempty_list(DOT,addpos(LIDENT)) -> LIDENT
|
||||
## In state 231, spurious reduction of production separated_nonempty_list(DOT,addpos(LIDENT)) -> LIDENT
|
||||
##
|
||||
|
||||
expected the defined as keyword to introduce the definition of this variable
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON DEFINITION YEAR
|
||||
##
|
||||
## Ends in an error in state: 254.
|
||||
## Ends in an error in state: 257.
|
||||
##
|
||||
## definition -> option(label) option(exception_to) DEFINITION . separated_nonempty_list(DOT,addpos(LIDENT)) option(addpos(definition_parameters)) option(state) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION DATE ASSERTION ]
|
||||
##
|
||||
@ -490,7 +490,7 @@ expected a rule or a definition after the exception declaration
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON EXCEPTION YEAR
|
||||
##
|
||||
## Ends in an error in state: 250.
|
||||
## Ends in an error in state: 253.
|
||||
##
|
||||
## exception_to -> EXCEPTION . option(lident) [ RULE DEFINITION ]
|
||||
##
|
||||
@ -502,7 +502,7 @@ expected the label to which the exception is referring back
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON LABEL LIDENT DEFINED_AS
|
||||
##
|
||||
## Ends in an error in state: 249.
|
||||
## Ends in an error in state: 252.
|
||||
##
|
||||
## definition -> option(label) . option(exception_to) DEFINITION separated_nonempty_list(DOT,addpos(LIDENT)) option(addpos(definition_parameters)) option(state) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION DATE ASSERTION ]
|
||||
## rule -> option(label) . option(addpos(exception_to)) RULE rule_expr option(state) option(condition_consequence) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION DATE ASSERTION ]
|
||||
@ -515,7 +515,7 @@ expected a rule or a definition after the label declaration
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON LABEL YEAR
|
||||
##
|
||||
## Ends in an error in state: 219.
|
||||
## Ends in an error in state: 222.
|
||||
##
|
||||
## label -> LABEL . lident [ RULE EXCEPTION DEFINITION ]
|
||||
##
|
||||
@ -527,7 +527,7 @@ expected the name of the label
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON RULE LIDENT DOT YEAR
|
||||
##
|
||||
## Ends in an error in state: 229.
|
||||
## Ends in an error in state: 232.
|
||||
##
|
||||
## separated_nonempty_list(DOT,addpos(LIDENT)) -> LIDENT DOT . separated_nonempty_list(DOT,addpos(LIDENT)) [ WITH_V UNDER_CONDITION STATE OF NOT FILLED DEFINED_AS BY ]
|
||||
##
|
||||
@ -551,7 +551,7 @@ expected the filled keyword the this rule
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON RULE LIDENT OF YEAR
|
||||
##
|
||||
## Ends in an error in state: 256.
|
||||
## Ends in an error in state: 259.
|
||||
##
|
||||
## definition_parameters -> OF . separated_nonempty_list(COMMA,lident) [ UNDER_CONDITION STATE NOT FILLED DEFINED_AS ]
|
||||
##
|
||||
@ -574,14 +574,14 @@ source_file: BEGIN_CODE SCOPE UIDENT COLON RULE LIDENT 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 228, spurious reduction of production separated_nonempty_list(DOT,addpos(LIDENT)) -> LIDENT
|
||||
## In state 231, spurious reduction of production separated_nonempty_list(DOT,addpos(LIDENT)) -> LIDENT
|
||||
##
|
||||
|
||||
expected a condition or a consequence for this rule
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON RULE LIDENT YEAR
|
||||
##
|
||||
## Ends in an error in state: 228.
|
||||
## Ends in an error in state: 231.
|
||||
##
|
||||
## separated_nonempty_list(DOT,addpos(LIDENT)) -> LIDENT . [ WITH_V UNDER_CONDITION STATE OF NOT FILLED DEFINED_AS BY ]
|
||||
## separated_nonempty_list(DOT,addpos(LIDENT)) -> LIDENT . DOT separated_nonempty_list(DOT,addpos(LIDENT)) [ WITH_V UNDER_CONDITION STATE OF NOT FILLED DEFINED_AS BY ]
|
||||
@ -606,7 +606,7 @@ expected the name of the variable subject to the rule
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON YEAR
|
||||
##
|
||||
## Ends in an error in state: 218.
|
||||
## Ends in an error in state: 221.
|
||||
##
|
||||
## code_item -> SCOPE UIDENT option(preceded(UNDER_CONDITION,expression)) COLON . nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ]
|
||||
##
|
||||
@ -748,7 +748,7 @@ expected a unit for this literal, or a valid operator to complete the expression
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION LPAREN TRUE THEN
|
||||
##
|
||||
## Ends in an error in state: 182.
|
||||
## Ends in an error in state: 185.
|
||||
##
|
||||
## expression -> expression . DOT qlident [ XOR WITH RPAREN PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS COMMA AND ]
|
||||
## expression -> expression . OF funcall_args [ XOR WITH RPAREN PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS COMMA AND ]
|
||||
@ -838,7 +838,7 @@ expected a list element
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MATCH TRUE WITH ALT YEAR
|
||||
##
|
||||
## Ends in an error in state: 187.
|
||||
## Ends in an error in state: 190.
|
||||
##
|
||||
## nonempty_list(addpos(preceded(ALT,match_arm))) -> ALT . match_arm [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## nonempty_list(addpos(preceded(ALT,match_arm))) -> ALT . match_arm nonempty_list(addpos(preceded(ALT,match_arm))) [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
@ -851,7 +851,7 @@ expected the name of the constructor for the enum case in the pattern matching
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MATCH TRUE WITH YEAR
|
||||
##
|
||||
## Ends in an error in state: 186.
|
||||
## Ends in an error in state: 189.
|
||||
##
|
||||
## expression -> expression WITH . constructor_binding [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
## expression -> MATCH expression WITH . nonempty_list(addpos(preceded(ALT,match_arm))) [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
@ -876,7 +876,7 @@ expected an expression to match with
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION TRUE YEAR
|
||||
##
|
||||
## Ends in an error in state: 216.
|
||||
## Ends in an error in state: 219.
|
||||
##
|
||||
## expression -> expression . DOT qlident [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS COLON AND ]
|
||||
## expression -> expression . OF funcall_args [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS COLON AND ]
|
||||
@ -1313,7 +1313,7 @@ source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION LET YEAR
|
||||
##
|
||||
## Ends in an error in state: 54.
|
||||
##
|
||||
## expression -> LET . lident DEFINED_AS expression IN expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> LET . separated_nonempty_list(COMMA,lident) DEFINED_AS expression IN expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
##
|
||||
## The known suffix of the stack is as follows:
|
||||
## LET
|
||||
@ -1321,26 +1321,14 @@ source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION LET YEAR
|
||||
|
||||
expected 'var equals expression' after 'let'
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION LET LIDENT YEAR
|
||||
##
|
||||
## Ends in an error in state: 55.
|
||||
##
|
||||
## expression -> LET lident . DEFINED_AS expression IN expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
##
|
||||
## The known suffix of the stack is as follows:
|
||||
## LET lident
|
||||
##
|
||||
|
||||
expected 'equals expression' after 'let'
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION LET LIDENT DEFINED_AS YEAR
|
||||
##
|
||||
## Ends in an error in state: 56.
|
||||
##
|
||||
## expression -> LET lident DEFINED_AS . expression IN expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> LET separated_nonempty_list(COMMA,lident) DEFINED_AS . expression IN expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
##
|
||||
## The known suffix of the stack is as follows:
|
||||
## LET lident DEFINED_AS
|
||||
## LET separated_nonempty_list(COMMA,lident) DEFINED_AS
|
||||
##
|
||||
|
||||
expected an expression
|
||||
@ -2960,11 +2948,11 @@ source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION LET LIDENT DEFINED_AS FALSE
|
||||
## expression -> expression . AND expression [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER IN GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
## expression -> expression . OR expression [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER IN GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
## expression -> expression . XOR expression [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER IN GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
## expression -> LET lident DEFINED_AS expression . IN expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> LET separated_nonempty_list(COMMA,lident) DEFINED_AS expression . IN expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> expression . FOR lident AMONG expression SUCH THAT expression [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER IN GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
##
|
||||
## The known suffix of the stack is as follows:
|
||||
## LET lident DEFINED_AS expression
|
||||
## LET separated_nonempty_list(COMMA,lident) DEFINED_AS expression
|
||||
##
|
||||
|
||||
expected the keyword 'in'
|
||||
@ -2973,10 +2961,10 @@ source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION LET LIDENT DEFINED_AS UIDEN
|
||||
##
|
||||
## Ends in an error in state: 178.
|
||||
##
|
||||
## expression -> LET lident DEFINED_AS expression IN . expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> LET separated_nonempty_list(COMMA,lident) DEFINED_AS expression IN . expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
##
|
||||
## The known suffix of the stack is as follows:
|
||||
## LET lident DEFINED_AS expression IN
|
||||
## LET separated_nonempty_list(COMMA,lident) DEFINED_AS expression IN
|
||||
##
|
||||
|
||||
expected an expression
|
||||
@ -3004,18 +2992,18 @@ source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION LET LIDENT DEFINED_AS UIDEN
|
||||
## expression -> expression . AND expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> expression . OR expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> expression . XOR expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> LET lident DEFINED_AS expression IN expression . [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> LET separated_nonempty_list(COMMA,lident) DEFINED_AS expression IN expression . [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> expression . FOR lident AMONG expression SUCH THAT expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
##
|
||||
## The known suffix of the stack is as follows:
|
||||
## LET lident DEFINED_AS expression IN expression
|
||||
## LET separated_nonempty_list(COMMA,lident) DEFINED_AS expression IN expression
|
||||
##
|
||||
|
||||
expected a binary operator continuing the expression, or a keyword ending the expression and starting the next item
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MATCH FALSE YEAR
|
||||
##
|
||||
## Ends in an error in state: 185.
|
||||
## Ends in an error in state: 188.
|
||||
##
|
||||
## expression -> expression . DOT qlident [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
## expression -> expression . OF funcall_args [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
@ -3047,7 +3035,7 @@ expected 'with pattern -- <pattern> : <expression> ...'
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MATCH UIDENT WITH ALT WILDCARD YEAR
|
||||
##
|
||||
## Ends in an error in state: 188.
|
||||
## Ends in an error in state: 191.
|
||||
##
|
||||
## match_arm -> WILDCARD . COLON expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
##
|
||||
@ -3059,7 +3047,7 @@ expected ':' followed by an expression
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MATCH UIDENT WITH ALT WILDCARD COLON YEAR
|
||||
##
|
||||
## Ends in an error in state: 189.
|
||||
## Ends in an error in state: 192.
|
||||
##
|
||||
## match_arm -> WILDCARD COLON . expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
##
|
||||
@ -3071,7 +3059,7 @@ expected an expression
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MATCH UIDENT WITH ALT WILDCARD COLON FALSE YEAR
|
||||
##
|
||||
## Ends in an error in state: 190.
|
||||
## Ends in an error in state: 193.
|
||||
##
|
||||
## expression -> expression . DOT qlident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> expression . OF funcall_args [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
@ -3103,7 +3091,7 @@ expected a binary operator continuing the expression, or a keyword ending the ex
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MATCH UIDENT WITH ALT UIDENT XOR
|
||||
##
|
||||
## Ends in an error in state: 193.
|
||||
## Ends in an error in state: 196.
|
||||
##
|
||||
## match_arm -> constructor_binding . COLON expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
##
|
||||
@ -3122,7 +3110,7 @@ expected a colon followed by an expression, as in '-- Case : <expression>'
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MATCH UIDENT WITH ALT UIDENT COLON YEAR
|
||||
##
|
||||
## Ends in an error in state: 194.
|
||||
## Ends in an error in state: 197.
|
||||
##
|
||||
## match_arm -> constructor_binding COLON . expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
##
|
||||
@ -3134,7 +3122,7 @@ expected an expression
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MATCH UIDENT WITH ALT UIDENT COLON FALSE YEAR
|
||||
##
|
||||
## Ends in an error in state: 195.
|
||||
## Ends in an error in state: 198.
|
||||
##
|
||||
## expression -> expression . DOT qlident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> expression . OF funcall_args [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
@ -3167,7 +3155,7 @@ expected a binary operator, or the next case in the form '-- NextCase : <express
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MAXIMUM OF FALSE YEAR
|
||||
##
|
||||
## Ends in an error in state: 197.
|
||||
## Ends in an error in state: 200.
|
||||
##
|
||||
## expression -> expression . DOT qlident [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
## expression -> expression . OF funcall_args [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
@ -3199,7 +3187,7 @@ expected 'or if list empty then <expression>'
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MAXIMUM OF UIDENT OR YEAR
|
||||
##
|
||||
## Ends in an error in state: 198.
|
||||
## Ends in an error in state: 201.
|
||||
##
|
||||
## expression -> MAXIMUM OF expression OR . IF LIST_EMPTY THEN expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> expression OR . expression [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
@ -3212,7 +3200,7 @@ expected the form 'or if list empty then <expression>'
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MAXIMUM OF UIDENT OR IF YEAR
|
||||
##
|
||||
## Ends in an error in state: 199.
|
||||
## Ends in an error in state: 202.
|
||||
##
|
||||
## expression -> MAXIMUM OF expression OR IF . LIST_EMPTY THEN expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> IF . expression THEN expression ELSE expression [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
@ -3225,7 +3213,7 @@ expected the form 'or if list empty then <expression>'
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MAXIMUM OF UIDENT OR IF LIST_EMPTY YEAR
|
||||
##
|
||||
## Ends in an error in state: 200.
|
||||
## Ends in an error in state: 203.
|
||||
##
|
||||
## expression -> MAXIMUM OF expression OR IF LIST_EMPTY . THEN expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
##
|
||||
@ -3237,7 +3225,7 @@ expected the form 'or if list empty then <expression>'
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MAXIMUM OF UIDENT OR IF LIST_EMPTY THEN YEAR
|
||||
##
|
||||
## Ends in an error in state: 201.
|
||||
## Ends in an error in state: 204.
|
||||
##
|
||||
## expression -> MAXIMUM OF expression OR IF LIST_EMPTY THEN . expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
##
|
||||
@ -3249,7 +3237,7 @@ expected an expression, following the form 'or if list empty then <expression>'
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MAXIMUM OF UIDENT OR IF LIST_EMPTY THEN FALSE YEAR
|
||||
##
|
||||
## Ends in an error in state: 202.
|
||||
## Ends in an error in state: 205.
|
||||
##
|
||||
## expression -> expression . DOT qlident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> expression . OF funcall_args [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
@ -3281,7 +3269,7 @@ expected a binary operator continuing the expression, or a keyword ending the ex
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MINIMUM OF FALSE YEAR
|
||||
##
|
||||
## Ends in an error in state: 203.
|
||||
## Ends in an error in state: 206.
|
||||
##
|
||||
## expression -> expression . DOT qlident [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
## expression -> expression . OF funcall_args [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
@ -3313,7 +3301,7 @@ expected 'or if list empty then <expression>'
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MINIMUM OF UIDENT OR YEAR
|
||||
##
|
||||
## Ends in an error in state: 204.
|
||||
## Ends in an error in state: 207.
|
||||
##
|
||||
## expression -> MINIMUM OF expression OR . IF LIST_EMPTY THEN expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> expression OR . expression [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
@ -3326,7 +3314,7 @@ expected the form 'or if list empty then <expression>'
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MINIMUM OF UIDENT OR IF YEAR
|
||||
##
|
||||
## Ends in an error in state: 205.
|
||||
## Ends in an error in state: 208.
|
||||
##
|
||||
## expression -> MINIMUM OF expression OR IF . LIST_EMPTY THEN expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> IF . expression THEN expression ELSE expression [ XOR WITH PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ]
|
||||
@ -3339,7 +3327,7 @@ expected the form 'or if list empty then <expression>'
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MINIMUM OF UIDENT OR IF LIST_EMPTY YEAR
|
||||
##
|
||||
## Ends in an error in state: 206.
|
||||
## Ends in an error in state: 209.
|
||||
##
|
||||
## expression -> MINIMUM OF expression OR IF LIST_EMPTY . THEN expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
##
|
||||
@ -3351,7 +3339,7 @@ expected the form 'or if list empty then <expression>'
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MINIMUM OF UIDENT OR IF LIST_EMPTY THEN YEAR
|
||||
##
|
||||
## Ends in an error in state: 207.
|
||||
## Ends in an error in state: 210.
|
||||
##
|
||||
## expression -> MINIMUM OF expression OR IF LIST_EMPTY THEN . expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
##
|
||||
@ -3364,7 +3352,7 @@ expected an expression, following the form 'or if list empty then
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MINIMUM OF UIDENT OR IF LIST_EMPTY THEN FALSE YEAR
|
||||
##
|
||||
## Ends in an error in state: 208.
|
||||
## Ends in an error in state: 211.
|
||||
##
|
||||
## expression -> expression . DOT qlident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> expression . OF funcall_args [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
@ -3396,7 +3384,7 @@ expected a binary operator continuing the expression, or a keyword ending the ex
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION MINUS FALSE YEAR
|
||||
##
|
||||
## Ends in an error in state: 209.
|
||||
## Ends in an error in state: 212.
|
||||
##
|
||||
## expression -> expression . DOT qlident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> expression . OF funcall_args [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
@ -3428,7 +3416,7 @@ expected a binary operator continuing the expression, or a keyword ending the ex
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION NOT FALSE YEAR
|
||||
##
|
||||
## Ends in an error in state: 210.
|
||||
## Ends in an error in state: 213.
|
||||
##
|
||||
## expression -> expression . DOT qlident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> expression . OF funcall_args [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
@ -3460,7 +3448,7 @@ expected a binary operator continuing the expression, or a keyword ending the ex
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION UIDENT LBRACE ALT LIDENT COLON FALSE YEAR
|
||||
##
|
||||
## Ends in an error in state: 211.
|
||||
## Ends in an error in state: 214.
|
||||
##
|
||||
## expression -> expression . DOT qlident [ XOR WITH RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ALT ]
|
||||
## expression -> expression . OF funcall_args [ XOR WITH RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER GREATER_EQUAL GREATER FOR EQUAL DOT DIV CONTAINS AND ALT ]
|
||||
@ -3492,7 +3480,7 @@ expected another field in the form '-- <var>: <expression>', or a closing '}' br
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT UNDER_CONDITION SUM UIDENT OF FALSE YEAR
|
||||
##
|
||||
## Ends in an error in state: 215.
|
||||
## Ends in an error in state: 218.
|
||||
##
|
||||
## expression -> expression . DOT qlident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
## expression -> expression . OF funcall_args [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RPAREN RBRACKET RBRACE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IS INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS CONSEQUENCE COMMA COLON ASSERTION AND ALT ]
|
||||
@ -3524,7 +3512,7 @@ expected a binary operator continuing the expression, or a keyword ending the ex
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON ASSERTION VARIES LIDENT WITH_V FALSE YEAR
|
||||
##
|
||||
## Ends in an error in state: 233.
|
||||
## Ends in an error in state: 236.
|
||||
##
|
||||
## assertion -> VARIES separated_nonempty_list(DOT,addpos(LIDENT)) WITH_V expression . option(addpos(variation_type)) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION DATE ASSERTION ]
|
||||
## expression -> expression . DOT qlident [ XOR WITH SCOPE RULE PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE DOT DIV DEFINITION DECREASING DECLARATION DATE CONTAINS ASSERTION AND ]
|
||||
@ -3556,7 +3544,7 @@ expected a binary operator continuing the expression, or a keyword ending the ex
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON ASSERTION UNDER_CONDITION UIDENT CONSEQUENCE YEAR
|
||||
##
|
||||
## Ends in an error in state: 243.
|
||||
## Ends in an error in state: 246.
|
||||
##
|
||||
## assertion -> option(condition_consequence) . expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION DATE ASSERTION ]
|
||||
##
|
||||
@ -3568,7 +3556,7 @@ expected either 'fulfilled' or 'not fulfilled'
|
||||
|
||||
source_file: BEGIN_CODE SCOPE UIDENT COLON RULE LIDENT FILLED YEAR
|
||||
##
|
||||
## Ends in an error in state: 247.
|
||||
## Ends in an error in state: 250.
|
||||
##
|
||||
## nonempty_list(scope_item) -> scope_item . [ SCOPE END_CODE DECLARATION ]
|
||||
## nonempty_list(scope_item) -> scope_item . nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ]
|
||||
|
@ -254,10 +254,10 @@ let naked_expression ==
|
||||
ELSE ; e3 = expression ; {
|
||||
IfThenElse (e1, e2, e3)
|
||||
} %prec let_expr
|
||||
| LET ; id = lident ;
|
||||
| LET ; ids = separated_nonempty_list(COMMA,lident) ;
|
||||
DEFINED_AS ; e1 = expression ;
|
||||
IN ; e2 = expression ; {
|
||||
LetIn (id, e1, e2)
|
||||
LetIn (ids, e1, e2)
|
||||
} %prec let_expr
|
||||
| i = lident ;
|
||||
AMONG ; coll = expression ;
|
||||
|
34
tests/test_tuples/good/tuples.catala_en
Normal file
34
tests/test_tuples/good/tuples.catala_en
Normal file
@ -0,0 +1,34 @@
|
||||
|
||||
```catala
|
||||
declaration structure Str:
|
||||
data x1 content (integer, date)
|
||||
|
||||
declaration enumeration En:
|
||||
-- One content Str
|
||||
-- Two content (integer, Str)
|
||||
|
||||
declaration str content Str equals
|
||||
Str { --x1: (12, |2001-01-01|) }
|
||||
|
||||
declaration f2 content decimal
|
||||
depends on str content Str,
|
||||
en content En
|
||||
equals
|
||||
match en with pattern
|
||||
-- One of str1:
|
||||
let a, w equals str.x1 in
|
||||
let b, w equals str1.x1 in
|
||||
a / b
|
||||
-- Two of z:
|
||||
let z1, z2 equals z in z1 / 2
|
||||
|
||||
declaration scope Test:
|
||||
output o content (date, decimal)
|
||||
|
||||
scope Test:
|
||||
definition o equals
|
||||
(|2001-01-03|,
|
||||
f2 of str, Two content (12, str))
|
||||
```
|
||||
|
||||
Test in progress
|
Loading…
Reference in New Issue
Block a user