From 8ce7ae0f276bb2b7d01e4cb6295a7e8052185135 Mon Sep 17 00:00:00 2001 From: Christian Rinderknecht Date: Sat, 20 Jun 2020 15:49:52 +0200 Subject: [PATCH 1/3] Fixed the parsing of sequences in CameLIGO. --- src/passes/01-parser/cameligo/Parser.mly | 77 ++- .../cameligo/error.messages.checked-in | 505 ++++++++++++------ 2 files changed, 387 insertions(+), 195 deletions(-) diff --git a/src/passes/01-parser/cameligo/Parser.mly b/src/passes/01-parser/cameligo/Parser.mly index 9dca6a5c4..27a75ba61 100644 --- a/src/passes/01-parser/cameligo/Parser.mly +++ b/src/passes/01-parser/cameligo/Parser.mly @@ -121,11 +121,10 @@ type_decl: "type" type_name "=" type_expr { Scoping.check_reserved_name $2; let region = cover $1 (type_expr_to_region $4) in - let value = { - kwd_type = $1; - name = $2; - eq = $3; - type_expr = $4} + let value = {kwd_type = $1; + name = $2; + eq = $3; + type_expr = $4} in {region; value} } type_expr: @@ -580,13 +579,24 @@ core_expr: | "false" { ELogic (BoolExpr (False $1)) } | "true" { ELogic (BoolExpr (True $1)) } | list__(expr) { EList (EListComp $1) } -| sequence { ESeq $1 } +| sequence { $1 } | record_expr { ERecord $1 } | update_record { EUpdate $1 } | code_insert { ECodeInsert $1 } | par(expr) { EPar $1 } | par(annot_expr) { EAnnot $1 } +code_insert: + "[" "%" Constr expr "]" { + let region = cover $1 $5 in + let value = { + lbracket =$1; + percent =$2; + language =$3; + code =$4; + rbracket =$5} + in {region; value} } + annot_expr: expr ":" type_expr { $1,$2,$3 } @@ -653,49 +663,41 @@ field_path_assignment : field_assignment: field_name "=" expr { let region = cover $1.region (expr_to_region $3) - and value = {field_name = $1; - assignment = $2; - field_expr = $3} + and value = {field_name=$1; assignment=$2; field_expr=$3} in {region; value} } path : "" { Name $1 } | projection { Path $1 } +(* Sequences *) + sequence: "begin" series? "end" { let region = cover $1 $3 and compound = BeginEnd ($1,$3) in - let elements, terminator = - match $2 with - None -> None, None - | Some (ne_elements, terminator) -> - Some ne_elements, terminator in - let value = {compound; elements; terminator} - in {region; value} } + let elements = $2 in + let value = {compound; elements; terminator=None} + in ESeq {region; value} } series: - last_expr { - let expr, term = $1 in (expr, []), term - } -| seq_expr ";" series { - let rest, term = $3 in - let seq = Utils.nsepseq_cons $1 $2 rest - in seq, term } + seq_expr ";" series { Utils.nsepseq_cons $1 $2 $3 } +| last_expr { $1,[] } last_expr: - seq_expr ";"? -| fun_expr(seq_expr) ";"? -| match_expr(seq_expr) ";"? { - $1,$2 - } -| "let" ioption("rec") let_binding seq(Attr) "in" series { - let seq, term = $6 in + seq_expr +| fun_expr(last_expr) +| match_expr(last_expr) +| let_in_sequence { $1 } + +let_in_sequence: + "let" ioption("rec") let_binding seq(Attr) "in" series { + let seq = $6 in let stop = nsepseq_to_region expr_to_region seq in let region = cover $1 stop in let compound = BeginEnd (Region.ghost, Region.ghost) in let elements = Some seq in - let value = {compound; elements; terminator=term} in + let value = {compound; elements; terminator=None} in let body = ESeq {region; value} in let value = {kwd_let = $1; kwd_rec = $2; @@ -703,18 +705,7 @@ last_expr: attributes = $4; kwd_in = $5; body} - in ELetIn {region; value}, term } + in ELetIn {region; value} } seq_expr: disj_expr_level | if_then_else (seq_expr) { $1 } - -code_insert: - "[" "%" Constr expr "]" { - let region = cover $1 $5 in - let value = { - lbracket =$1; - percent =$2; - language =$3; - code =$4; - rbracket =$5} - in {region; value} } diff --git a/src/passes/01-parser/cameligo/error.messages.checked-in b/src/passes/01-parser/cameligo/error.messages.checked-in index 8ac839bf3..78d9bc815 100644 --- a/src/passes/01-parser/cameligo/error.messages.checked-in +++ b/src/passes/01-parser/cameligo/error.messages.checked-in @@ -1,20 +1,40 @@ -interactive_expr: Begin Fun WILD ARROW Bytes SEMI With +interactive_expr: Begin Fun WILD ARROW Bytes SEMI ## -## Ends in an error in state: 488. +## Ends in an error in state: 497. ## ## sequence -> Begin option(series) . End [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## Begin option(series) ## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 227, spurious reduction of production call_expr_level -> core_expr +## In state 234, spurious reduction of production unary_expr_level -> call_expr_level +## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 224, spurious reduction of production add_expr_level -> mult_expr_level +## In state 314, spurious reduction of production cons_expr_level -> add_expr_level +## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 477, spurious reduction of production seq_expr -> disj_expr_level +## In state 441, spurious reduction of production last_expr -> seq_expr +## In state 444, spurious reduction of production fun_expr(last_expr) -> Fun nseq(irrefutable) ARROW last_expr +## In state 445, spurious reduction of production last_expr -> fun_expr(last_expr) +## In state 481, spurious reduction of production series -> last_expr +## In state 496, spurious reduction of production option(series) -> series +## interactive_expr: Begin Fun WILD ARROW With ## -## Ends in an error in state: 470. +## Ends in an error in state: 480. ## -## fun_expr(seq_expr) -> Fun nseq(irrefutable) ARROW . seq_expr [ SEMI End ] +## fun_expr(last_expr) -> Fun nseq(irrefutable) ARROW . last_expr [ End ] ## ## The known suffix of the stack is as follows: ## Fun nseq(irrefutable) ARROW @@ -24,9 +44,9 @@ interactive_expr: Begin Fun WILD ARROW With interactive_expr: Begin Fun With ## -## Ends in an error in state: 468. +## Ends in an error in state: 478. ## -## fun_expr(seq_expr) -> Fun . nseq(irrefutable) ARROW seq_expr [ SEMI End ] +## fun_expr(last_expr) -> Fun . nseq(irrefutable) ARROW last_expr [ End ] ## ## The known suffix of the stack is as follows: ## Fun @@ -36,7 +56,7 @@ interactive_expr: Begin Fun With interactive_expr: Begin If Verbatim Then Fun WILD ARROW With ## -## Ends in an error in state: 457. +## Ends in an error in state: 467. ## ## fun_expr(closed_if) -> Fun nseq(irrefutable) ARROW . closed_if [ Else ] ## @@ -48,7 +68,7 @@ interactive_expr: Begin If Verbatim Then Fun WILD ARROW With interactive_expr: Begin If Verbatim Then Fun With ## -## Ends in an error in state: 455. +## Ends in an error in state: 465. ## ## fun_expr(closed_if) -> Fun . nseq(irrefutable) ARROW closed_if [ Else ] ## @@ -60,7 +80,7 @@ interactive_expr: Begin If Verbatim Then Fun With interactive_expr: Begin If Verbatim Then If Verbatim Then Verbatim COMMA Bytes With ## -## Ends in an error in state: 460. +## Ends in an error in state: 470. ## ## if_then_else(closed_if) -> If expr Then closed_if . Else closed_if [ Else ] ## @@ -83,7 +103,7 @@ interactive_expr: Begin If Verbatim Then If Verbatim Then Verbatim COMMA Bytes W ## In state 347, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level ## In state 346, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) ## In state 223, spurious reduction of production tuple_expr -> tuple(disj_expr_level) -## In state 458, spurious reduction of production base_expr(closed_if) -> tuple_expr +## In state 468, spurious reduction of production base_expr(closed_if) -> tuple_expr ## In state 358, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) ## In state 357, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) ## @@ -92,7 +112,7 @@ interactive_expr: Begin If Verbatim Then If Verbatim Then Verbatim COMMA Bytes W interactive_expr: Begin If Verbatim Then If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 461. +## Ends in an error in state: 471. ## ## if_then_else(closed_if) -> If expr Then closed_if Else . closed_if [ Else ] ## @@ -104,7 +124,7 @@ interactive_expr: Begin If Verbatim Then If Verbatim Then Verbatim Else With interactive_expr: Begin If Verbatim Then If Verbatim Then With ## -## Ends in an error in state: 454. +## Ends in an error in state: 464. ## ## if_then_else(closed_if) -> If expr Then . closed_if Else closed_if [ Else ] ## @@ -116,7 +136,7 @@ interactive_expr: Begin If Verbatim Then If Verbatim Then With interactive_expr: Begin If Verbatim Then If Verbatim With ## -## Ends in an error in state: 453. +## Ends in an error in state: 463. ## ## if_then_else(closed_if) -> If expr . Then closed_if Else closed_if [ Else ] ## @@ -145,7 +165,7 @@ interactive_expr: Begin If Verbatim Then If Verbatim With interactive_expr: Begin If Verbatim Then If With ## -## Ends in an error in state: 452. +## Ends in an error in state: 462. ## ## if_then_else(closed_if) -> If . expr Then closed_if Else closed_if [ Else ] ## @@ -157,7 +177,7 @@ interactive_expr: Begin If Verbatim Then If With interactive_expr: Begin If Verbatim Then Let Rec WILD EQ Bytes Attr Type ## -## Ends in an error in state: 450. +## Ends in an error in state: 460. ## ## let_expr(closed_if) -> Let Rec let_binding seq(Attr) . In closed_if [ Else ] ## @@ -176,7 +196,7 @@ interactive_expr: Begin If Verbatim Then Let Rec WILD EQ Bytes Attr Type interactive_expr: Begin If Verbatim Then Let Rec WILD EQ Bytes In With ## -## Ends in an error in state: 451. +## Ends in an error in state: 461. ## ## let_expr(closed_if) -> Let Rec let_binding seq(Attr) In . closed_if [ Else ] ## @@ -188,7 +208,7 @@ interactive_expr: Begin If Verbatim Then Let Rec WILD EQ Bytes In With interactive_expr: Begin If Verbatim Then Let Rec WILD EQ Bytes With ## -## Ends in an error in state: 449. +## Ends in an error in state: 459. ## ## let_expr(closed_if) -> Let Rec let_binding . seq(Attr) In closed_if [ Else ] ## @@ -218,7 +238,7 @@ interactive_expr: Begin If Verbatim Then Let Rec WILD EQ Bytes With interactive_expr: Begin If Verbatim Then Let Rec With ## -## Ends in an error in state: 448. +## Ends in an error in state: 458. ## ## let_expr(closed_if) -> Let Rec . let_binding seq(Attr) In closed_if [ Else ] ## @@ -230,7 +250,7 @@ interactive_expr: Begin If Verbatim Then Let Rec With interactive_expr: Begin If Verbatim Then Let WILD EQ Bytes Attr Type ## -## Ends in an error in state: 463. +## Ends in an error in state: 473. ## ## let_expr(closed_if) -> Let let_binding seq(Attr) . In closed_if [ Else ] ## @@ -249,7 +269,7 @@ interactive_expr: Begin If Verbatim Then Let WILD EQ Bytes Attr Type interactive_expr: Begin If Verbatim Then Let WILD EQ Bytes In With ## -## Ends in an error in state: 464. +## Ends in an error in state: 474. ## ## let_expr(closed_if) -> Let let_binding seq(Attr) In . closed_if [ Else ] ## @@ -261,7 +281,7 @@ interactive_expr: Begin If Verbatim Then Let WILD EQ Bytes In With interactive_expr: Begin If Verbatim Then Let WILD EQ Bytes With ## -## Ends in an error in state: 462. +## Ends in an error in state: 472. ## ## let_expr(closed_if) -> Let let_binding . seq(Attr) In closed_if [ Else ] ## @@ -291,7 +311,7 @@ interactive_expr: Begin If Verbatim Then Let WILD EQ Bytes With interactive_expr: Begin If Verbatim Then Let With ## -## Ends in an error in state: 447. +## Ends in an error in state: 457. ## ## let_expr(closed_if) -> Let . let_binding seq(Attr) In closed_if [ Else ] ## let_expr(closed_if) -> Let . Rec let_binding seq(Attr) In closed_if [ Else ] @@ -401,7 +421,7 @@ interactive_expr: Begin If Verbatim Then Match With interactive_expr: Begin If Verbatim Then Verbatim COMMA Bytes With ## -## Ends in an error in state: 465. +## Ends in an error in state: 475. ## ## if_then_else(seq_expr) -> If expr Then closed_if . Else seq_expr [ SEMI End ] ## @@ -424,7 +444,7 @@ interactive_expr: Begin If Verbatim Then Verbatim COMMA Bytes With ## In state 347, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level ## In state 346, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) ## In state 223, spurious reduction of production tuple_expr -> tuple(disj_expr_level) -## In state 458, spurious reduction of production base_expr(closed_if) -> tuple_expr +## In state 468, spurious reduction of production base_expr(closed_if) -> tuple_expr ## In state 358, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) ## In state 357, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) ## @@ -433,7 +453,7 @@ interactive_expr: Begin If Verbatim Then Verbatim COMMA Bytes With interactive_expr: Begin If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 466. +## Ends in an error in state: 476. ## ## if_then_else(seq_expr) -> If expr Then closed_if Else . seq_expr [ SEMI End ] ## @@ -445,7 +465,7 @@ interactive_expr: Begin If Verbatim Then Verbatim Else With interactive_expr: Begin If Verbatim Then Verbatim With ## -## Ends in an error in state: 459. +## Ends in an error in state: 469. ## ## base_expr(closed_if) -> disj_expr_level . [ Else ] ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ Or Else COMMA BOOL_OR ] @@ -474,7 +494,7 @@ interactive_expr: Begin If Verbatim Then Verbatim With interactive_expr: Begin If Verbatim Then With ## -## Ends in an error in state: 446. +## Ends in an error in state: 456. ## ## if_then_else(seq_expr) -> If expr Then . closed_if Else seq_expr [ SEMI End ] ## @@ -486,7 +506,7 @@ interactive_expr: Begin If Verbatim Then With interactive_expr: Begin If Verbatim With ## -## Ends in an error in state: 445. +## Ends in an error in state: 455. ## ## if_then_else(seq_expr) -> If expr . Then closed_if Else seq_expr [ SEMI End ] ## @@ -515,7 +535,7 @@ interactive_expr: Begin If Verbatim With interactive_expr: Begin If With ## -## Ends in an error in state: 444. +## Ends in an error in state: 454. ## ## if_then_else(seq_expr) -> If . expr Then closed_if Else seq_expr [ SEMI End ] ## @@ -527,9 +547,9 @@ interactive_expr: Begin If With interactive_expr: Begin Let Rec WILD EQ Bytes Attr Type ## -## Ends in an error in state: 442. +## Ends in an error in state: 452. ## -## last_expr -> Let Rec let_binding seq(Attr) . In series [ End ] +## let_in_sequence -> Let Rec let_binding seq(Attr) . In series [ End ] ## ## The known suffix of the stack is as follows: ## Let Rec let_binding seq(Attr) @@ -546,9 +566,9 @@ interactive_expr: Begin Let Rec WILD EQ Bytes Attr Type interactive_expr: Begin Let Rec WILD EQ Bytes In With ## -## Ends in an error in state: 443. +## Ends in an error in state: 453. ## -## last_expr -> Let Rec let_binding seq(Attr) In . series [ End ] +## let_in_sequence -> Let Rec let_binding seq(Attr) In . series [ End ] ## ## The known suffix of the stack is as follows: ## Let Rec let_binding seq(Attr) In @@ -558,9 +578,9 @@ interactive_expr: Begin Let Rec WILD EQ Bytes In With interactive_expr: Begin Let Rec WILD EQ Bytes With ## -## Ends in an error in state: 441. +## Ends in an error in state: 451. ## -## last_expr -> Let Rec let_binding . seq(Attr) In series [ End ] +## let_in_sequence -> Let Rec let_binding . seq(Attr) In series [ End ] ## ## The known suffix of the stack is as follows: ## Let Rec let_binding @@ -588,9 +608,9 @@ interactive_expr: Begin Let Rec WILD EQ Bytes With interactive_expr: Begin Let Rec With ## -## Ends in an error in state: 440. +## Ends in an error in state: 450. ## -## last_expr -> Let Rec . let_binding seq(Attr) In series [ End ] +## let_in_sequence -> Let Rec . let_binding seq(Attr) In series [ End ] ## ## The known suffix of the stack is as follows: ## Let Rec @@ -600,9 +620,9 @@ interactive_expr: Begin Let Rec With interactive_expr: Begin Let WILD EQ Bytes Attr Type ## -## Ends in an error in state: 484. +## Ends in an error in state: 483. ## -## last_expr -> Let let_binding seq(Attr) . In series [ End ] +## let_in_sequence -> Let let_binding seq(Attr) . In series [ End ] ## ## The known suffix of the stack is as follows: ## Let let_binding seq(Attr) @@ -619,9 +639,9 @@ interactive_expr: Begin Let WILD EQ Bytes Attr Type interactive_expr: Begin Let WILD EQ Bytes In With ## -## Ends in an error in state: 485. +## Ends in an error in state: 484. ## -## last_expr -> Let let_binding seq(Attr) In . series [ End ] +## let_in_sequence -> Let let_binding seq(Attr) In . series [ End ] ## ## The known suffix of the stack is as follows: ## Let let_binding seq(Attr) In @@ -631,9 +651,9 @@ interactive_expr: Begin Let WILD EQ Bytes In With interactive_expr: Begin Let WILD EQ Bytes With ## -## Ends in an error in state: 483. +## Ends in an error in state: 482. ## -## last_expr -> Let let_binding . seq(Attr) In series [ End ] +## let_in_sequence -> Let let_binding . seq(Attr) In series [ End ] ## ## The known suffix of the stack is as follows: ## Let let_binding @@ -661,10 +681,10 @@ interactive_expr: Begin Let WILD EQ Bytes With interactive_expr: Begin Let With ## -## Ends in an error in state: 439. +## Ends in an error in state: 449. ## -## last_expr -> Let . let_binding seq(Attr) In series [ End ] -## last_expr -> Let . Rec let_binding seq(Attr) In series [ End ] +## let_in_sequence -> Let . let_binding seq(Attr) In series [ End ] +## let_in_sequence -> Let . Rec let_binding seq(Attr) In series [ End ] ## ## The known suffix of the stack is as follows: ## Let @@ -676,7 +696,7 @@ interactive_expr: Begin Match Verbatim Type ## ## Ends in an error in state: 245. ## -## match_expr(seq_expr) -> Match expr . With option(VBAR) cases(seq_expr) [ SEMI End ] +## match_expr(last_expr) -> Match expr . With option(VBAR) cases(last_expr) [ End ] ## ## The known suffix of the stack is as follows: ## Match expr @@ -705,7 +725,7 @@ interactive_expr: Begin Match Verbatim With VBAR Begin ## ## Ends in an error in state: 248. ## -## match_expr(seq_expr) -> Match expr With option(VBAR) . cases(seq_expr) [ SEMI End ] +## match_expr(last_expr) -> Match expr With option(VBAR) . cases(last_expr) [ End ] ## ## The known suffix of the stack is as follows: ## Match expr With option(VBAR) @@ -715,10 +735,10 @@ interactive_expr: Begin Match Verbatim With VBAR Begin interactive_expr: Begin Match Verbatim With WILD ARROW Bytes VBAR With ## -## Ends in an error in state: 436. +## Ends in an error in state: 493. ## ## cases(base_cond) -> cases(base_cond) VBAR . case_clause(base_cond) [ VBAR ] -## cases(seq_expr) -> cases(base_cond) VBAR . case_clause(seq_expr) [ SEMI End ] +## cases(last_expr) -> cases(base_cond) VBAR . case_clause(last_expr) [ End ] ## ## The known suffix of the stack is as follows: ## cases(base_cond) VBAR @@ -726,9 +746,35 @@ interactive_expr: Begin Match Verbatim With WILD ARROW Bytes VBAR With +interactive_expr: Begin Match Verbatim With WILD ARROW Fun WILD ARROW With +## +## Ends in an error in state: 440. +## +## fun_expr(base_cond) -> Fun nseq(irrefutable) ARROW . base_cond [ VBAR ] +## fun_expr(last_expr) -> Fun nseq(irrefutable) ARROW . last_expr [ End ] +## +## The known suffix of the stack is as follows: +## Fun nseq(irrefutable) ARROW +## + + + +interactive_expr: Begin Match Verbatim With WILD ARROW Fun With +## +## Ends in an error in state: 438. +## +## fun_expr(base_cond) -> Fun . nseq(irrefutable) ARROW base_cond [ VBAR ] +## fun_expr(last_expr) -> Fun . nseq(irrefutable) ARROW last_expr [ End ] +## +## The known suffix of the stack is as follows: +## Fun +## + + + interactive_expr: Begin Match Verbatim With WILD ARROW If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 429. +## Ends in an error in state: 416. ## ## if_then_else(base_cond) -> If expr Then closed_if Else . base_cond [ VBAR ] ## if_then_else(seq_expr) -> If expr Then closed_if Else . seq_expr [ SEMI End ] @@ -741,7 +787,7 @@ interactive_expr: Begin Match Verbatim With WILD ARROW If Verbatim Then Verbatim interactive_expr: Begin Match Verbatim With WILD ARROW If Verbatim Then With ## -## Ends in an error in state: 427. +## Ends in an error in state: 267. ## ## if_then(base_cond) -> If expr Then . base_cond [ VBAR ] ## if_then_else(base_cond) -> If expr Then . closed_if Else base_cond [ VBAR ] @@ -755,7 +801,7 @@ interactive_expr: Begin Match Verbatim With WILD ARROW If Verbatim Then With interactive_expr: Begin Match Verbatim With WILD ARROW If Verbatim With ## -## Ends in an error in state: 426. +## Ends in an error in state: 266. ## ## if_then(base_cond) -> If expr . Then base_cond [ VBAR ] ## if_then_else(base_cond) -> If expr . Then closed_if Else base_cond [ VBAR ] @@ -786,7 +832,7 @@ interactive_expr: Begin Match Verbatim With WILD ARROW If Verbatim With interactive_expr: Begin Match Verbatim With WILD ARROW If With ## -## Ends in an error in state: 425. +## Ends in an error in state: 265. ## ## if_then(base_cond) -> If . expr Then base_cond [ VBAR ] ## if_then_else(base_cond) -> If . expr Then closed_if Else base_cond [ VBAR ] @@ -798,12 +844,168 @@ interactive_expr: Begin Match Verbatim With WILD ARROW If With +interactive_expr: Begin Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes Attr Type +## +## Ends in an error in state: 263. +## +## let_expr(base_cond) -> Let Rec let_binding seq(Attr) . In base_cond [ VBAR ] +## let_in_sequence -> Let Rec let_binding seq(Attr) . In series [ End ] +## +## The known suffix of the stack is as follows: +## Let Rec let_binding seq(Attr) +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 176, spurious reduction of production seq(Attr) -> +## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## + + + +interactive_expr: Begin Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes In With +## +## Ends in an error in state: 264. +## +## let_expr(base_cond) -> Let Rec let_binding seq(Attr) In . base_cond [ VBAR ] +## let_in_sequence -> Let Rec let_binding seq(Attr) In . series [ End ] +## +## The known suffix of the stack is as follows: +## Let Rec let_binding seq(Attr) In +## + + + +interactive_expr: Begin Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes With +## +## Ends in an error in state: 262. +## +## let_expr(base_cond) -> Let Rec let_binding . seq(Attr) In base_cond [ VBAR ] +## let_in_sequence -> Let Rec let_binding . seq(Attr) In series [ End ] +## +## The known suffix of the stack is as follows: +## Let Rec let_binding +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 227, spurious reduction of production call_expr_level -> core_expr +## In state 234, spurious reduction of production unary_expr_level -> call_expr_level +## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 224, spurious reduction of production add_expr_level -> mult_expr_level +## In state 314, spurious reduction of production cons_expr_level -> add_expr_level +## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## + + + +interactive_expr: Begin Match Verbatim With WILD ARROW Let Rec With +## +## Ends in an error in state: 261. +## +## let_expr(base_cond) -> Let Rec . let_binding seq(Attr) In base_cond [ VBAR ] +## let_in_sequence -> Let Rec . let_binding seq(Attr) In series [ End ] +## +## The known suffix of the stack is as follows: +## Let Rec +## + + + +interactive_expr: Begin Match Verbatim With WILD ARROW Let WILD EQ Bytes Attr Type +## +## Ends in an error in state: 488. +## +## let_expr(base_cond) -> Let let_binding seq(Attr) . In base_cond [ VBAR ] +## let_in_sequence -> Let let_binding seq(Attr) . In series [ End ] +## +## The known suffix of the stack is as follows: +## Let let_binding seq(Attr) +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 176, spurious reduction of production seq(Attr) -> +## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## + + + +interactive_expr: Begin Match Verbatim With WILD ARROW Let WILD EQ Bytes In With +## +## Ends in an error in state: 489. +## +## let_expr(base_cond) -> Let let_binding seq(Attr) In . base_cond [ VBAR ] +## let_in_sequence -> Let let_binding seq(Attr) In . series [ End ] +## +## The known suffix of the stack is as follows: +## Let let_binding seq(Attr) In +## + + + +interactive_expr: Begin Match Verbatim With WILD ARROW Let WILD EQ Bytes With +## +## Ends in an error in state: 487. +## +## let_expr(base_cond) -> Let let_binding . seq(Attr) In base_cond [ VBAR ] +## let_in_sequence -> Let let_binding . seq(Attr) In series [ End ] +## +## The known suffix of the stack is as follows: +## Let let_binding +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 227, spurious reduction of production call_expr_level -> core_expr +## In state 234, spurious reduction of production unary_expr_level -> call_expr_level +## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 224, spurious reduction of production add_expr_level -> mult_expr_level +## In state 314, spurious reduction of production cons_expr_level -> add_expr_level +## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## + + + +interactive_expr: Begin Match Verbatim With WILD ARROW Let With +## +## Ends in an error in state: 260. +## +## let_expr(base_cond) -> Let . let_binding seq(Attr) In base_cond [ VBAR ] +## let_expr(base_cond) -> Let . Rec let_binding seq(Attr) In base_cond [ VBAR ] +## let_in_sequence -> Let . let_binding seq(Attr) In series [ End ] +## let_in_sequence -> Let . Rec let_binding seq(Attr) In series [ End ] +## +## The known suffix of the stack is as follows: +## Let +## + + + interactive_expr: Begin Match Verbatim With WILD ARROW Verbatim COMMA Bytes With ## -## Ends in an error in state: 435. +## Ends in an error in state: 492. ## ## cases(base_cond) -> cases(base_cond) . VBAR case_clause(base_cond) [ VBAR ] -## cases(seq_expr) -> cases(base_cond) . VBAR case_clause(seq_expr) [ SEMI End ] +## cases(last_expr) -> cases(base_cond) . VBAR case_clause(last_expr) [ End ] ## ## The known suffix of the stack is as follows: ## cases(base_cond) @@ -824,7 +1026,7 @@ interactive_expr: Begin Match Verbatim With WILD ARROW Verbatim COMMA Bytes With ## In state 347, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level ## In state 346, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) ## In state 223, spurious reduction of production tuple_expr -> tuple(disj_expr_level) -## In state 420, spurious reduction of production base_expr(base_cond) -> tuple_expr +## In state 430, spurious reduction of production base_expr(base_cond) -> tuple_expr ## In state 359, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) ## In state 360, spurious reduction of production base_cond -> base_cond__open(base_cond) ## In state 406, spurious reduction of production case_clause(base_cond) -> pattern ARROW base_cond @@ -835,7 +1037,7 @@ interactive_expr: Begin Match Verbatim With WILD ARROW Verbatim COMMA Bytes With interactive_expr: Begin Match Verbatim With WILD ARROW Verbatim With ## -## Ends in an error in state: 432. +## Ends in an error in state: 437. ## ## base_expr(base_cond) -> disj_expr_level . [ VBAR ] ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ VBAR SEMI Or End COMMA BOOL_OR ] @@ -868,7 +1070,7 @@ interactive_expr: Begin Match Verbatim With WILD ARROW With ## Ends in an error in state: 259. ## ## case_clause(base_cond) -> pattern ARROW . base_cond [ VBAR ] -## case_clause(seq_expr) -> pattern ARROW . seq_expr [ SEMI End ] +## case_clause(last_expr) -> pattern ARROW . last_expr [ End ] ## ## The known suffix of the stack is as follows: ## pattern ARROW @@ -881,7 +1083,7 @@ interactive_expr: Begin Match Verbatim With WILD CONS Bytes SEMI ## Ends in an error in state: 258. ## ## case_clause(base_cond) -> pattern . ARROW base_cond [ VBAR ] -## case_clause(seq_expr) -> pattern . ARROW seq_expr [ SEMI End ] +## case_clause(last_expr) -> pattern . ARROW last_expr [ End ] ## ## The known suffix of the stack is as follows: ## pattern @@ -900,7 +1102,7 @@ interactive_expr: Begin Match Verbatim With With ## ## Ends in an error in state: 246. ## -## match_expr(seq_expr) -> Match expr With . option(VBAR) cases(seq_expr) [ SEMI End ] +## match_expr(last_expr) -> Match expr With . option(VBAR) cases(last_expr) [ End ] ## ## The known suffix of the stack is as follows: ## Match expr With @@ -912,7 +1114,7 @@ interactive_expr: Begin Match With ## ## Ends in an error in state: 207. ## -## match_expr(seq_expr) -> Match . expr With option(VBAR) cases(seq_expr) [ SEMI End ] +## match_expr(last_expr) -> Match . expr With option(VBAR) cases(last_expr) [ End ] ## ## The known suffix of the stack is as follows: ## Match @@ -922,9 +1124,8 @@ interactive_expr: Begin Match With interactive_expr: Begin Verbatim SEMI With ## -## Ends in an error in state: 474. +## Ends in an error in state: 448. ## -## option(SEMI) -> SEMI . [ End ] ## series -> seq_expr SEMI . series [ End ] ## ## The known suffix of the stack is as follows: @@ -935,7 +1136,7 @@ interactive_expr: Begin Verbatim SEMI With interactive_expr: Begin Verbatim With ## -## Ends in an error in state: 467. +## Ends in an error in state: 477. ## ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ SEMI Or End BOOL_OR ] ## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ SEMI Or End BOOL_OR ] @@ -1165,7 +1366,7 @@ interactive_expr: Ident WILD interactive_expr: If Verbatim Then Fun WILD ARROW With ## -## Ends in an error in state: 509. +## Ends in an error in state: 518. ## ## fun_expr(closed_if) -> Fun nseq(irrefutable) ARROW . closed_if [ Else ] ## fun_expr(expr) -> Fun nseq(irrefutable) ARROW . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1178,7 +1379,7 @@ interactive_expr: If Verbatim Then Fun WILD ARROW With interactive_expr: If Verbatim Then Fun With ## -## Ends in an error in state: 507. +## Ends in an error in state: 516. ## ## fun_expr(closed_if) -> Fun . nseq(irrefutable) ARROW closed_if [ Else ] ## fun_expr(expr) -> Fun . nseq(irrefutable) ARROW expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1191,7 +1392,7 @@ interactive_expr: If Verbatim Then Fun With interactive_expr: If Verbatim Then If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 514. +## Ends in an error in state: 523. ## ## if_then_else(closed_if) -> If expr Then closed_if Else . closed_if [ Else ] ## if_then_else(expr) -> If expr Then closed_if Else . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1204,7 +1405,7 @@ interactive_expr: If Verbatim Then If Verbatim Then Verbatim Else With interactive_expr: If Verbatim Then If Verbatim Then With ## -## Ends in an error in state: 506. +## Ends in an error in state: 515. ## ## if_then(expr) -> If expr Then . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(closed_if) -> If expr Then . closed_if Else closed_if [ Else ] @@ -1218,7 +1419,7 @@ interactive_expr: If Verbatim Then If Verbatim Then With interactive_expr: If Verbatim Then If Verbatim With ## -## Ends in an error in state: 505. +## Ends in an error in state: 514. ## ## if_then(expr) -> If expr . Then expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(closed_if) -> If expr . Then closed_if Else closed_if [ Else ] @@ -1249,7 +1450,7 @@ interactive_expr: If Verbatim Then If Verbatim With interactive_expr: If Verbatim Then If With ## -## Ends in an error in state: 504. +## Ends in an error in state: 513. ## ## if_then(expr) -> If . expr Then expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(closed_if) -> If . expr Then closed_if Else closed_if [ Else ] @@ -1263,7 +1464,7 @@ interactive_expr: If Verbatim Then If With interactive_expr: If Verbatim Then Let Rec WILD EQ Bytes Attr Type ## -## Ends in an error in state: 502. +## Ends in an error in state: 511. ## ## let_expr(closed_if) -> Let Rec let_binding seq(Attr) . In closed_if [ Else ] ## let_expr(expr) -> Let Rec let_binding seq(Attr) . In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1283,7 +1484,7 @@ interactive_expr: If Verbatim Then Let Rec WILD EQ Bytes Attr Type interactive_expr: If Verbatim Then Let Rec WILD EQ Bytes In With ## -## Ends in an error in state: 503. +## Ends in an error in state: 512. ## ## let_expr(closed_if) -> Let Rec let_binding seq(Attr) In . closed_if [ Else ] ## let_expr(expr) -> Let Rec let_binding seq(Attr) In . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1296,7 +1497,7 @@ interactive_expr: If Verbatim Then Let Rec WILD EQ Bytes In With interactive_expr: If Verbatim Then Let Rec WILD EQ Bytes With ## -## Ends in an error in state: 501. +## Ends in an error in state: 510. ## ## let_expr(closed_if) -> Let Rec let_binding . seq(Attr) In closed_if [ Else ] ## let_expr(expr) -> Let Rec let_binding . seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1327,7 +1528,7 @@ interactive_expr: If Verbatim Then Let Rec WILD EQ Bytes With interactive_expr: If Verbatim Then Let Rec With ## -## Ends in an error in state: 500. +## Ends in an error in state: 509. ## ## let_expr(closed_if) -> Let Rec . let_binding seq(Attr) In closed_if [ Else ] ## let_expr(expr) -> Let Rec . let_binding seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1340,7 +1541,7 @@ interactive_expr: If Verbatim Then Let Rec With interactive_expr: If Verbatim Then Let WILD EQ Bytes Attr Type ## -## Ends in an error in state: 518. +## Ends in an error in state: 527. ## ## let_expr(closed_if) -> Let let_binding seq(Attr) . In closed_if [ Else ] ## let_expr(expr) -> Let let_binding seq(Attr) . In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1360,7 +1561,7 @@ interactive_expr: If Verbatim Then Let WILD EQ Bytes Attr Type interactive_expr: If Verbatim Then Let WILD EQ Bytes In With ## -## Ends in an error in state: 519. +## Ends in an error in state: 528. ## ## let_expr(closed_if) -> Let let_binding seq(Attr) In . closed_if [ Else ] ## let_expr(expr) -> Let let_binding seq(Attr) In . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1373,7 +1574,7 @@ interactive_expr: If Verbatim Then Let WILD EQ Bytes In With interactive_expr: If Verbatim Then Let WILD EQ Bytes With ## -## Ends in an error in state: 517. +## Ends in an error in state: 526. ## ## let_expr(closed_if) -> Let let_binding . seq(Attr) In closed_if [ Else ] ## let_expr(expr) -> Let let_binding . seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1404,7 +1605,7 @@ interactive_expr: If Verbatim Then Let WILD EQ Bytes With interactive_expr: If Verbatim Then Let With ## -## Ends in an error in state: 499. +## Ends in an error in state: 508. ## ## let_expr(closed_if) -> Let . let_binding seq(Attr) In closed_if [ Else ] ## let_expr(closed_if) -> Let . Rec let_binding seq(Attr) In closed_if [ Else ] @@ -1419,7 +1620,7 @@ interactive_expr: If Verbatim Then Let With interactive_expr: If Verbatim Then Match Verbatim Type ## -## Ends in an error in state: 495. +## Ends in an error in state: 504. ## ## match_expr(base_cond) -> Match expr . With option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## match_expr(base_if_then_else) -> Match expr . With option(VBAR) cases(base_if_then_else) [ Else ] @@ -1449,7 +1650,7 @@ interactive_expr: If Verbatim Then Match Verbatim Type interactive_expr: If Verbatim Then Match Verbatim With VBAR Begin ## -## Ends in an error in state: 497. +## Ends in an error in state: 506. ## ## match_expr(base_cond) -> Match expr With option(VBAR) . cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## match_expr(base_if_then_else) -> Match expr With option(VBAR) . cases(base_if_then_else) [ Else ] @@ -1792,7 +1993,7 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD CONS Bytes SEMI interactive_expr: If Verbatim Then Match Verbatim With With ## -## Ends in an error in state: 496. +## Ends in an error in state: 505. ## ## match_expr(base_cond) -> Match expr With . option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## match_expr(base_if_then_else) -> Match expr With . option(VBAR) cases(base_if_then_else) [ Else ] @@ -1805,7 +2006,7 @@ interactive_expr: If Verbatim Then Match Verbatim With With interactive_expr: If Verbatim Then Match With ## -## Ends in an error in state: 494. +## Ends in an error in state: 503. ## ## match_expr(base_cond) -> Match . expr With option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## match_expr(base_if_then_else) -> Match . expr With option(VBAR) cases(base_if_then_else) [ Else ] @@ -1818,7 +2019,7 @@ interactive_expr: If Verbatim Then Match With interactive_expr: If Verbatim Then Verbatim COMMA Bytes VBAR ## -## Ends in an error in state: 510. +## Ends in an error in state: 519. ## ## base_expr(closed_if) -> tuple_expr . [ Else ] ## base_expr(expr) -> tuple_expr . [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1848,7 +2049,7 @@ interactive_expr: If Verbatim Then Verbatim COMMA Bytes VBAR interactive_expr: If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 522. +## Ends in an error in state: 531. ## ## if_then_else(expr) -> If expr Then closed_if Else . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -1860,7 +2061,7 @@ interactive_expr: If Verbatim Then Verbatim Else With interactive_expr: If Verbatim Then Verbatim VBAR ## -## Ends in an error in state: 511. +## Ends in an error in state: 520. ## ## base_expr(closed_if) -> disj_expr_level . [ Else ] ## base_expr(expr) -> disj_expr_level . [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1890,7 +2091,7 @@ interactive_expr: If Verbatim Then Verbatim VBAR interactive_expr: If Verbatim Then With ## -## Ends in an error in state: 493. +## Ends in an error in state: 502. ## ## if_then(expr) -> If expr Then . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(expr) -> If expr Then . closed_if Else expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1903,7 +2104,7 @@ interactive_expr: If Verbatim Then With interactive_expr: If Verbatim With ## -## Ends in an error in state: 492. +## Ends in an error in state: 501. ## ## if_then(expr) -> If expr . Then expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(expr) -> If expr . Then closed_if Else expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1946,7 +2147,7 @@ interactive_expr: If With interactive_expr: LBRACE Constr DOT Ident With ## -## Ends in an error in state: 526. +## Ends in an error in state: 535. ## ## projection -> Constr DOT Ident . DOT nsepseq(selection,DOT) [ With EQ ] ## @@ -1958,7 +2159,7 @@ interactive_expr: LBRACE Constr DOT Ident With interactive_expr: LBRACE Constr DOT With ## -## Ends in an error in state: 525. +## Ends in an error in state: 534. ## ## projection -> Constr DOT . Ident DOT nsepseq(selection,DOT) [ With EQ ] ## @@ -1970,7 +2171,7 @@ interactive_expr: LBRACE Constr DOT With interactive_expr: LBRACE Constr With ## -## Ends in an error in state: 524. +## Ends in an error in state: 533. ## ## projection -> Constr . DOT Ident DOT nsepseq(selection,DOT) [ With EQ ] ## @@ -1982,7 +2183,7 @@ interactive_expr: LBRACE Constr With interactive_expr: LBRACE Ident DOT Ident Verbatim ## -## Ends in an error in state: 530. +## Ends in an error in state: 539. ## ## update_record -> LBRACE path . With sep_or_term_list(field_path_assignment,SEMI) RBRACE [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## @@ -1995,14 +2196,14 @@ interactive_expr: LBRACE Ident DOT Ident Verbatim ## may provide an INCOMPLETE view of the future (what was expected next). ## In state 189, spurious reduction of production nsepseq(selection,DOT) -> selection ## In state 192, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) -## In state 529, spurious reduction of production path -> projection +## In state 538, spurious reduction of production path -> projection ## interactive_expr: LBRACE Ident EQ Bytes SEMI Ident EQ Bytes SEMI With ## -## Ends in an error in state: 555. +## Ends in an error in state: 564. ## ## nsepseq(field_assignment,SEMI) -> field_assignment SEMI . nsepseq(field_assignment,SEMI) [ RBRACE ] ## seq(__anonymous_0(field_assignment,SEMI)) -> field_assignment SEMI . seq(__anonymous_0(field_assignment,SEMI)) [ RBRACE ] @@ -2015,7 +2216,7 @@ interactive_expr: LBRACE Ident EQ Bytes SEMI Ident EQ Bytes SEMI With interactive_expr: LBRACE Ident EQ Bytes SEMI Ident EQ Bytes With ## -## Ends in an error in state: 554. +## Ends in an error in state: 563. ## ## nsepseq(field_assignment,SEMI) -> field_assignment . [ RBRACE ] ## nsepseq(field_assignment,SEMI) -> field_assignment . SEMI nsepseq(field_assignment,SEMI) [ RBRACE ] @@ -2040,14 +2241,14 @@ interactive_expr: LBRACE Ident EQ Bytes SEMI Ident EQ Bytes With ## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level ## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) ## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 523, spurious reduction of production field_assignment -> Ident EQ expr +## In state 532, spurious reduction of production field_assignment -> Ident EQ expr ## interactive_expr: LBRACE Ident EQ Bytes SEMI Ident With ## -## Ends in an error in state: 551. +## Ends in an error in state: 560. ## ## field_assignment -> Ident . EQ expr [ SEMI RBRACE ] ## @@ -2059,7 +2260,7 @@ interactive_expr: LBRACE Ident EQ Bytes SEMI Ident With interactive_expr: LBRACE Ident EQ Bytes SEMI With ## -## Ends in an error in state: 550. +## Ends in an error in state: 559. ## ## nsepseq(field_assignment,SEMI) -> field_assignment SEMI . nsepseq(field_assignment,SEMI) [ RBRACE ] ## nseq(__anonymous_0(field_assignment,SEMI)) -> field_assignment SEMI . seq(__anonymous_0(field_assignment,SEMI)) [ RBRACE ] @@ -2072,7 +2273,7 @@ interactive_expr: LBRACE Ident EQ Bytes SEMI With interactive_expr: LBRACE Ident EQ Bytes With ## -## Ends in an error in state: 549. +## Ends in an error in state: 558. ## ## nsepseq(field_assignment,SEMI) -> field_assignment . [ RBRACE ] ## nsepseq(field_assignment,SEMI) -> field_assignment . SEMI nsepseq(field_assignment,SEMI) [ RBRACE ] @@ -2097,7 +2298,7 @@ interactive_expr: LBRACE Ident EQ Bytes With ## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level ## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) ## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 523, spurious reduction of production field_assignment -> Ident EQ expr +## In state 532, spurious reduction of production field_assignment -> Ident EQ expr ## @@ -2130,7 +2331,7 @@ interactive_expr: LBRACE Ident WILD interactive_expr: LBRACE Ident With Ident DOT Ident With ## -## Ends in an error in state: 535. +## Ends in an error in state: 544. ## ## field_path_assignment -> path . EQ expr [ SEMI RBRACE ] ## @@ -2143,14 +2344,14 @@ interactive_expr: LBRACE Ident With Ident DOT Ident With ## may provide an INCOMPLETE view of the future (what was expected next). ## In state 189, spurious reduction of production nsepseq(selection,DOT) -> selection ## In state 192, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) -## In state 529, spurious reduction of production path -> projection +## In state 538, spurious reduction of production path -> projection ## interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI Ident EQ Bytes SEMI With ## -## Ends in an error in state: 545. +## Ends in an error in state: 554. ## ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment SEMI . nsepseq(field_path_assignment,SEMI) [ RBRACE ] ## seq(__anonymous_0(field_path_assignment,SEMI)) -> field_path_assignment SEMI . seq(__anonymous_0(field_path_assignment,SEMI)) [ RBRACE ] @@ -2163,7 +2364,7 @@ interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI Ident EQ Bytes SEMI With interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI Ident EQ Bytes With ## -## Ends in an error in state: 544. +## Ends in an error in state: 553. ## ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . [ RBRACE ] ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . SEMI nsepseq(field_path_assignment,SEMI) [ RBRACE ] @@ -2188,14 +2389,14 @@ interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI Ident EQ Bytes With ## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level ## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) ## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 537, spurious reduction of production field_path_assignment -> path EQ expr +## In state 546, spurious reduction of production field_path_assignment -> path EQ expr ## interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI With ## -## Ends in an error in state: 541. +## Ends in an error in state: 550. ## ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment SEMI . nsepseq(field_path_assignment,SEMI) [ RBRACE ] ## nseq(__anonymous_0(field_path_assignment,SEMI)) -> field_path_assignment SEMI . seq(__anonymous_0(field_path_assignment,SEMI)) [ RBRACE ] @@ -2208,7 +2409,7 @@ interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI With interactive_expr: LBRACE Ident With Ident EQ Bytes With ## -## Ends in an error in state: 540. +## Ends in an error in state: 549. ## ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . [ RBRACE ] ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . SEMI nsepseq(field_path_assignment,SEMI) [ RBRACE ] @@ -2233,14 +2434,14 @@ interactive_expr: LBRACE Ident With Ident EQ Bytes With ## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level ## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) ## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 537, spurious reduction of production field_path_assignment -> path EQ expr +## In state 546, spurious reduction of production field_path_assignment -> path EQ expr ## interactive_expr: LBRACE Ident With Ident EQ With ## -## Ends in an error in state: 536. +## Ends in an error in state: 545. ## ## field_path_assignment -> path EQ . expr [ SEMI RBRACE ] ## @@ -2252,7 +2453,7 @@ interactive_expr: LBRACE Ident With Ident EQ With interactive_expr: LBRACE Ident With Ident With ## -## Ends in an error in state: 532. +## Ends in an error in state: 541. ## ## path -> Ident . [ EQ ] ## projection -> Ident . DOT nsepseq(selection,DOT) [ EQ ] @@ -2265,7 +2466,7 @@ interactive_expr: LBRACE Ident With Ident With interactive_expr: LBRACE Ident With With ## -## Ends in an error in state: 531. +## Ends in an error in state: 540. ## ## update_record -> LBRACE path With . sep_or_term_list(field_path_assignment,SEMI) RBRACE [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## @@ -2290,7 +2491,7 @@ interactive_expr: LBRACE With interactive_expr: LBRACKET PERCENT Constr Verbatim With ## -## Ends in an error in state: 560. +## Ends in an error in state: 569. ## ## code_insert -> LBRACKET PERCENT Constr expr . RBRACKET [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## @@ -2343,7 +2544,7 @@ interactive_expr: LBRACKET PERCENT With interactive_expr: LBRACKET Verbatim SEMI Verbatim SEMI With ## -## Ends in an error in state: 572. +## Ends in an error in state: 581. ## ## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET ] ## seq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET ] @@ -2356,7 +2557,7 @@ interactive_expr: LBRACKET Verbatim SEMI Verbatim SEMI With interactive_expr: LBRACKET Verbatim SEMI Verbatim With ## -## Ends in an error in state: 571. +## Ends in an error in state: 580. ## ## nsepseq(expr,SEMI) -> expr . [ RBRACKET ] ## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET ] @@ -2387,7 +2588,7 @@ interactive_expr: LBRACKET Verbatim SEMI Verbatim With interactive_expr: LBRACKET Verbatim SEMI With ## -## Ends in an error in state: 568. +## Ends in an error in state: 577. ## ## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET ] ## nseq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET ] @@ -2400,7 +2601,7 @@ interactive_expr: LBRACKET Verbatim SEMI With interactive_expr: LBRACKET Verbatim With ## -## Ends in an error in state: 567. +## Ends in an error in state: 576. ## ## nsepseq(expr,SEMI) -> expr . [ RBRACKET ] ## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET ] @@ -2444,7 +2645,7 @@ interactive_expr: LBRACKET With interactive_expr: LPAR Verbatim COLON Ident VBAR ## -## Ends in an error in state: 586. +## Ends in an error in state: 595. ## ## par(annot_expr) -> LPAR annot_expr . RPAR [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## @@ -2458,14 +2659,14 @@ interactive_expr: LPAR Verbatim COLON Ident VBAR ## In state 28, spurious reduction of production cartesian -> core_type ## In state 36, spurious reduction of production fun_type -> cartesian ## In state 27, spurious reduction of production type_expr -> fun_type -## In state 585, spurious reduction of production annot_expr -> expr COLON type_expr +## In state 594, spurious reduction of production annot_expr -> expr COLON type_expr ## interactive_expr: LPAR Verbatim COLON With ## -## Ends in an error in state: 584. +## Ends in an error in state: 593. ## ## annot_expr -> expr COLON . type_expr [ RPAR ] ## @@ -2477,7 +2678,7 @@ interactive_expr: LPAR Verbatim COLON With interactive_expr: LPAR Verbatim With ## -## Ends in an error in state: 582. +## Ends in an error in state: 591. ## ## annot_expr -> expr . COLON type_expr [ RPAR ] ## par(expr) -> LPAR expr . RPAR [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] @@ -2594,7 +2795,7 @@ interactive_expr: Let Rec With interactive_expr: Let WILD EQ Bytes Attr Type ## -## Ends in an error in state: 558. +## Ends in an error in state: 567. ## ## let_expr(expr) -> Let let_binding seq(Attr) . In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2613,7 +2814,7 @@ interactive_expr: Let WILD EQ Bytes Attr Type interactive_expr: Let WILD EQ Bytes In With ## -## Ends in an error in state: 559. +## Ends in an error in state: 568. ## ## let_expr(expr) -> Let let_binding seq(Attr) In . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2625,7 +2826,7 @@ interactive_expr: Let WILD EQ Bytes In With interactive_expr: Let WILD EQ Bytes With ## -## Ends in an error in state: 557. +## Ends in an error in state: 566. ## ## let_expr(expr) -> Let let_binding . seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2680,7 +2881,7 @@ interactive_expr: MINUS With interactive_expr: Match Verbatim Type ## -## Ends in an error in state: 575. +## Ends in an error in state: 584. ## ## match_expr(base_cond) -> Match expr . With option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2722,7 +2923,7 @@ interactive_expr: Match Verbatim With LPAR Bytes RPAR With interactive_expr: Match Verbatim With VBAR Begin ## -## Ends in an error in state: 577. +## Ends in an error in state: 586. ## ## match_expr(base_cond) -> Match expr With option(VBAR) . cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2734,7 +2935,7 @@ interactive_expr: Match Verbatim With VBAR Begin interactive_expr: Match Verbatim With WILD ARROW Bytes VBAR With ## -## Ends in an error in state: 581. +## Ends in an error in state: 590. ## ## cases(base_cond) -> cases(base_cond) VBAR . case_clause(base_cond) [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2746,7 +2947,7 @@ interactive_expr: Match Verbatim With WILD ARROW Bytes VBAR With interactive_expr: Match Verbatim With WILD ARROW Fun WILD ARROW With ## -## Ends in an error in state: 419. +## Ends in an error in state: 429. ## ## fun_expr(base_cond) -> Fun nseq(irrefutable) ARROW . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2758,7 +2959,7 @@ interactive_expr: Match Verbatim With WILD ARROW Fun WILD ARROW With interactive_expr: Match Verbatim With WILD ARROW Fun With ## -## Ends in an error in state: 417. +## Ends in an error in state: 427. ## ## fun_expr(base_cond) -> Fun . nseq(irrefutable) ARROW base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3024,7 +3225,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let With interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 416. +## Ends in an error in state: 426. ## ## if_then_else(base_cond) -> If expr Then closed_if Else . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3066,7 +3267,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Verbatim End interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then With ## -## Ends in an error in state: 267. +## Ends in an error in state: 424. ## ## if_then(base_cond) -> If expr Then . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(base_cond) -> If expr Then . closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -3079,7 +3280,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then With interactive_expr: Match Verbatim With WILD ARROW If Verbatim With ## -## Ends in an error in state: 266. +## Ends in an error in state: 423. ## ## if_then(base_cond) -> If expr . Then base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(base_cond) -> If expr . Then closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -3109,7 +3310,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim With interactive_expr: Match Verbatim With WILD ARROW If With ## -## Ends in an error in state: 265. +## Ends in an error in state: 422. ## ## if_then(base_cond) -> If . expr Then base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(base_cond) -> If . expr Then closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -3122,7 +3323,7 @@ interactive_expr: Match Verbatim With WILD ARROW If With interactive_expr: Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes Attr Type ## -## Ends in an error in state: 263. +## Ends in an error in state: 420. ## ## let_expr(base_cond) -> Let Rec let_binding seq(Attr) . In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3141,7 +3342,7 @@ interactive_expr: Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes Attr Type interactive_expr: Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes In With ## -## Ends in an error in state: 264. +## Ends in an error in state: 421. ## ## let_expr(base_cond) -> Let Rec let_binding seq(Attr) In . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3153,7 +3354,7 @@ interactive_expr: Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes In With interactive_expr: Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes With ## -## Ends in an error in state: 262. +## Ends in an error in state: 419. ## ## let_expr(base_cond) -> Let Rec let_binding . seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3183,7 +3384,7 @@ interactive_expr: Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes With interactive_expr: Match Verbatim With WILD ARROW Let Rec With ## -## Ends in an error in state: 261. +## Ends in an error in state: 418. ## ## let_expr(base_cond) -> Let Rec . let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3195,7 +3396,7 @@ interactive_expr: Match Verbatim With WILD ARROW Let Rec With interactive_expr: Match Verbatim With WILD ARROW Let WILD EQ Bytes Attr Type ## -## Ends in an error in state: 423. +## Ends in an error in state: 433. ## ## let_expr(base_cond) -> Let let_binding seq(Attr) . In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3214,7 +3415,7 @@ interactive_expr: Match Verbatim With WILD ARROW Let WILD EQ Bytes Attr Type interactive_expr: Match Verbatim With WILD ARROW Let WILD EQ Bytes In With ## -## Ends in an error in state: 424. +## Ends in an error in state: 434. ## ## let_expr(base_cond) -> Let let_binding seq(Attr) In . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3226,7 +3427,7 @@ interactive_expr: Match Verbatim With WILD ARROW Let WILD EQ Bytes In With interactive_expr: Match Verbatim With WILD ARROW Let WILD EQ Bytes With ## -## Ends in an error in state: 422. +## Ends in an error in state: 432. ## ## let_expr(base_cond) -> Let let_binding . seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3256,7 +3457,7 @@ interactive_expr: Match Verbatim With WILD ARROW Let WILD EQ Bytes With interactive_expr: Match Verbatim With WILD ARROW Let With ## -## Ends in an error in state: 260. +## Ends in an error in state: 417. ## ## let_expr(base_cond) -> Let . let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(base_cond) -> Let . Rec let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -3269,7 +3470,7 @@ interactive_expr: Match Verbatim With WILD ARROW Let With interactive_expr: Match Verbatim With WILD ARROW Verbatim COMMA Bytes Else ## -## Ends in an error in state: 580. +## Ends in an error in state: 589. ## ## cases(base_cond) -> cases(base_cond) . VBAR case_clause(base_cond) [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## match_expr(base_cond) -> Match expr With option(VBAR) cases(base_cond) . [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -3293,7 +3494,7 @@ interactive_expr: Match Verbatim With WILD ARROW Verbatim COMMA Bytes Else ## In state 347, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level ## In state 346, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) ## In state 223, spurious reduction of production tuple_expr -> tuple(disj_expr_level) -## In state 420, spurious reduction of production base_expr(base_cond) -> tuple_expr +## In state 430, spurious reduction of production base_expr(base_cond) -> tuple_expr ## In state 359, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) ## In state 360, spurious reduction of production base_cond -> base_cond__open(base_cond) ## In state 406, spurious reduction of production case_clause(base_cond) -> pattern ARROW base_cond @@ -3304,7 +3505,7 @@ interactive_expr: Match Verbatim With WILD ARROW Verbatim COMMA Bytes Else interactive_expr: Match Verbatim With WILD ARROW Verbatim End ## -## Ends in an error in state: 421. +## Ends in an error in state: 431. ## ## base_expr(base_cond) -> disj_expr_level . [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or Let In EOF COMMA COLON BOOL_OR Attr ] @@ -3333,7 +3534,7 @@ interactive_expr: Match Verbatim With WILD ARROW Verbatim End interactive_expr: Match Verbatim With WILD ARROW With ## -## Ends in an error in state: 579. +## Ends in an error in state: 588. ## ## case_clause(base_cond) -> pattern ARROW . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3382,7 +3583,7 @@ interactive_expr: Match Verbatim With WILD COMMA With interactive_expr: Match Verbatim With WILD CONS Bytes SEMI ## -## Ends in an error in state: 578. +## Ends in an error in state: 587. ## ## case_clause(base_cond) -> pattern . ARROW base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3426,7 +3627,7 @@ interactive_expr: Match Verbatim With WILD With interactive_expr: Match Verbatim With With ## -## Ends in an error in state: 576. +## Ends in an error in state: 585. ## ## match_expr(base_cond) -> Match expr With . option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3816,7 +4017,7 @@ interactive_expr: Verbatim WILD interactive_expr: Verbatim With ## -## Ends in an error in state: 603. +## Ends in an error in state: 612. ## ## interactive_expr -> expr . EOF [ # ] ## @@ -3845,7 +4046,7 @@ interactive_expr: Verbatim With interactive_expr: With ## -## Ends in an error in state: 601. +## Ends in an error in state: 610. ## ## interactive_expr' -> . interactive_expr [ # ] ## @@ -4291,7 +4492,7 @@ contract: Let LPAR With contract: Let Rec WILD EQ Bytes With ## -## Ends in an error in state: 590. +## Ends in an error in state: 599. ## ## let_declaration -> Let Rec let_binding . seq(Attr) [ Type Let EOF ] ## @@ -4416,7 +4617,7 @@ contract: Let WILD EQ Bytes Attr With contract: Let WILD EQ Bytes With ## -## Ends in an error in state: 592. +## Ends in an error in state: 601. ## ## let_declaration -> Let let_binding . seq(Attr) [ Type Let EOF ] ## @@ -4552,7 +4753,7 @@ contract: Type Ident EQ Constr With contract: Type Ident EQ Ident VBAR ## -## Ends in an error in state: 598. +## Ends in an error in state: 607. ## ## declarations -> declaration . [ EOF ] ## declarations -> declaration . declarations [ EOF ] @@ -4568,7 +4769,7 @@ contract: Type Ident EQ Ident VBAR ## In state 36, spurious reduction of production fun_type -> cartesian ## In state 27, spurious reduction of production type_expr -> fun_type ## In state 61, spurious reduction of production type_decl -> Type Ident EQ type_expr -## In state 594, spurious reduction of production declaration -> type_decl +## In state 603, spurious reduction of production declaration -> type_decl ## From bc5a5cd75b1c84b9a41790d90a913a0fc9b68f7d Mon Sep 17 00:00:00 2001 From: Christian Rinderknecht Date: Sat, 20 Jun 2020 20:03:04 +0200 Subject: [PATCH 2/3] Move ESeq back to its original semantic action. --- src/passes/01-parser/cameligo/Parser.mly | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/passes/01-parser/cameligo/Parser.mly b/src/passes/01-parser/cameligo/Parser.mly index 27a75ba61..d9ee47ba4 100644 --- a/src/passes/01-parser/cameligo/Parser.mly +++ b/src/passes/01-parser/cameligo/Parser.mly @@ -579,7 +579,7 @@ core_expr: | "false" { ELogic (BoolExpr (False $1)) } | "true" { ELogic (BoolExpr (True $1)) } | list__(expr) { EList (EListComp $1) } -| sequence { $1 } +| sequence { ESeq $1 } | record_expr { ERecord $1 } | update_record { EUpdate $1 } | code_insert { ECodeInsert $1 } @@ -678,7 +678,7 @@ sequence: and compound = BeginEnd ($1,$3) in let elements = $2 in let value = {compound; elements; terminator=None} - in ESeq {region; value} } + in {region; value} } series: seq_expr ";" series { Utils.nsepseq_cons $1 $2 $3 } From c379d1078e0d4627b3351acf08e3be8be0d1a62d Mon Sep 17 00:00:00 2001 From: Christian Rinderknecht Date: Tue, 23 Jun 2020 00:37:57 +0200 Subject: [PATCH 3/3] Fixed builds of ParserMain.exe. Fixed parser (code_inj). --- src/passes/01-parser/cameligo/AST.ml | 1 - src/passes/01-parser/cameligo/Parser.mly | 19 +++---------- src/passes/01-parser/cameligo/dune | 36 +++++++++--------------- src/passes/01-parser/pascaligo/dune | 36 +++++++++--------------- src/passes/01-parser/reasonligo/dune | 35 +++++++++-------------- 5 files changed, 44 insertions(+), 83 deletions(-) diff --git a/src/passes/01-parser/cameligo/AST.ml b/src/passes/01-parser/cameligo/AST.ml index 76654aac3..a6002e729 100644 --- a/src/passes/01-parser/cameligo/AST.ml +++ b/src/passes/01-parser/cameligo/AST.ml @@ -56,7 +56,6 @@ type c_Some = Region.t type arrow = Region.t (* "->" *) type cons = Region.t (* "::" *) -type percent = Region.t (* "%" *) type cat = Region.t (* "^" *) type append = Region.t (* "@" *) type dot = Region.t (* "." *) diff --git a/src/passes/01-parser/cameligo/Parser.mly b/src/passes/01-parser/cameligo/Parser.mly index 6c0e0f2da..85ad87f3c 100644 --- a/src/passes/01-parser/cameligo/Parser.mly +++ b/src/passes/01-parser/cameligo/Parser.mly @@ -586,15 +586,10 @@ core_expr: | par(expr) { EPar $1 } | par(annot_expr) { EAnnot $1 } -code_insert: - "[" "%" Constr expr "]" { - let region = cover $1 $5 in - let value = { - lbracket =$1; - percent =$2; - language =$3; - code =$4; - rbracket =$5} +code_inj: + "" expr "]" { + let region = cover $1.region $3 + and value = {language=$1; code=$2; rbracket=$3} in {region; value} } annot_expr: @@ -709,9 +704,3 @@ let_in_sequence: seq_expr: disj_expr_level | if_then_else (seq_expr) { $1 } - -code_inj: - "" expr "]" { - let region = cover $1.region $3 - and value = {language=$1; code=$2; rbracket=$3} - in {region; value} } diff --git a/src/passes/01-parser/cameligo/dune b/src/passes/01-parser/cameligo/dune index ff5896de8..6c5257688 100644 --- a/src/passes/01-parser/cameligo/dune +++ b/src/passes/01-parser/cameligo/dune @@ -53,7 +53,7 @@ (executable (name ParserMain) (libraries parser_cameligo) - (modules ParserMain) + (modules ParserMain Parser_msg) (preprocess (pps bisect_ppx --conditional)) (flags (:standard -open Simple_utils -open Parser_shared -open Parser_cameligo))) @@ -65,6 +65,19 @@ (deps (:script_messages ../../../../vendors/ligo-utils/simple-utils/messages.sh) Parser.mly LexToken.mli ParToken.mly) (action (run %{script_messages} --lex-tokens=LexToken.mli --par-tokens=ParToken.mly Parser.mly))) +(rule + (targets Parser_msg.ml) + (deps Parser.mly ParToken.mly Parser.msg) + (action + (with-stdout-to %{targets} + (bash + "menhir \ + --compile-errors Parser.msg \ + --external-tokens LexToken \ + --base Parser \ + ParToken.mly \ + Parser.mly")))) + ;; Build of all the LIGO source file that cover all error states (rule @@ -74,27 +87,6 @@ ;; Error messages -;; Generate error messages from scratch -; (rule -; (targets error.messages) -; (deps Parser.mly ParToken.mly error.messages.checked-in) -; (action -; (with-stdout-to %{targets} -; (bash -; "menhir \ -; --unused-tokens \ -; --list-errors \ -; --table \ -; --strict \ -; --external-tokens LexToken.mli \ -; --base Parser.mly \ -; ParToken.mly \ -; Parser.mly -; " -; ) -; )) -; ) - (rule (targets error.messages) (mode (promote (until-clean) (only *))) diff --git a/src/passes/01-parser/pascaligo/dune b/src/passes/01-parser/pascaligo/dune index 5b2f099ca..855fb0da9 100644 --- a/src/passes/01-parser/pascaligo/dune +++ b/src/passes/01-parser/pascaligo/dune @@ -66,6 +66,19 @@ (deps (:script_messages ../../../../vendors/ligo-utils/simple-utils/messages.sh) Parser.mly LexToken.mli ParToken.mly) (action (run %{script_messages} --lex-tokens=LexToken.mli --par-tokens=ParToken.mly Parser.mly))) +(rule + (targets Parser_msg.ml) + (deps Parser.mly ParToken.mly Parser.msg) + (action + (with-stdout-to %{targets} + (bash + "menhir \ + --compile-errors Parser.msg \ + --external-tokens LexToken \ + --base Parser \ + ParToken.mly \ + Parser.mly")))) + ;; Build of all the LIGO source file that cover all error states (rule @@ -75,27 +88,6 @@ ;; Error messages -;; Generate error messages from scratch -; (rule -; (targets error.messages) -; (deps Parser.mly ParToken.mly error.messages.checked-in) -; (action -; (with-stdout-to %{targets} -; (bash -; "menhir \ -; --unused-tokens \ -; --list-errors \ -; --table \ -; --strict \ -; --external-tokens LexToken.mli \ -; --base Parser.mly \ -; ParToken.mly \ -; Parser.mly -; " -; ) -; )) -; ) - (rule (targets error.messages) (mode (promote (until-clean) (only *))) @@ -155,8 +147,6 @@ ) ) - - (rule (targets ParErr.ml) (mode (promote (until-clean) (only *))) diff --git a/src/passes/01-parser/reasonligo/dune b/src/passes/01-parser/reasonligo/dune index f41445b7d..38170a812 100644 --- a/src/passes/01-parser/reasonligo/dune +++ b/src/passes/01-parser/reasonligo/dune @@ -65,6 +65,19 @@ (deps (:script_messages ../../../../vendors/ligo-utils/simple-utils/messages.sh) Parser.mly LexToken.mli ParToken.mly) (action (run %{script_messages} --lex-tokens=LexToken.mli --par-tokens=ParToken.mly Parser.mly ))) +(rule + (targets Parser_msg.ml) + (deps Parser.mly ParToken.mly Parser.msg) + (action + (with-stdout-to %{targets} + (bash + "menhir \ + --compile-errors Parser.msg \ + --external-tokens LexToken \ + --base Parser \ + ParToken.mly \ + Parser.mly")))) + ;; Build of all the LIGO source file that cover all error states (rule @@ -72,28 +85,6 @@ (deps (:script_cover ../../../../vendors/ligo-utils/simple-utils/cover.sh) Parser.mly LexToken.mli ParToken.mly Parser.msg Unlexer.exe) (action (run %{script_cover} --lex-tokens=LexToken.mli --par-tokens=ParToken.mly --ext=religo --unlexer=./Unlexer.exe --messages=Parser.msg --dir=. --concatenate Parser.mly ))) -;; Error messages -;; Generate error messages from scratch -; (rule -; (targets error.messages) -; (deps Parser.mly ParToken.mly error.messages.checked-in) -; (action -; (with-stdout-to %{targets} -; (bash -; "menhir \ -; --unused-tokens \ -; --list-errors \ -; --table \ -; --strict \ -; --external-tokens LexToken.mli \ -; --base Parser.mly \ -; ParToken.mly \ -; Parser.mly -; " -; ) -; )) -; ) - (rule (targets error.messages) (mode (promote (until-clean) (only *)))