Add support for record expressions of only one field.
This commit is contained in:
parent
4f61c75799
commit
38edf5ce74
@ -20,7 +20,6 @@ type 'a record_elements = {
|
|||||||
type 'a sequence_or_record =
|
type 'a sequence_or_record =
|
||||||
PaSequence of 'a sequence_elements
|
PaSequence of 'a sequence_elements
|
||||||
| PaRecord of 'a record_elements
|
| PaRecord of 'a record_elements
|
||||||
| PaSingleExpr of expr
|
|
||||||
|
|
||||||
let (<@) f g x = f (g x)
|
let (<@) f g x = f (g x)
|
||||||
|
|
||||||
@ -912,18 +911,26 @@ expr_with_let_expr:
|
|||||||
expr { $1 }
|
expr { $1 }
|
||||||
| let_expr(expr_with_let_expr) { $1 }
|
| let_expr(expr_with_let_expr) { $1 }
|
||||||
|
|
||||||
|
more_field_assignments:
|
||||||
|
"," sep_or_term_list(field_assignment_punning,",") {
|
||||||
|
let elts, _region = $2 in
|
||||||
|
$1, elts
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
sequence_or_record_in:
|
sequence_or_record_in:
|
||||||
expr_with_let_expr ";" sep_or_term_list(expr_with_let_expr,";") {
|
sep_or_term_list(expr_with_let_expr,";") {
|
||||||
let elts, _region = $3 in
|
let elts, _region = $1 in
|
||||||
let s_elts = Utils.nsepseq_cons $1 $2 elts
|
PaSequence {s_elts = elts; s_terminator=None}
|
||||||
in PaSequence {s_elts; s_terminator=None}
|
|
||||||
}
|
}
|
||||||
| field_assignment "," sep_or_term_list(field_assignment,",") {
|
| field_assignment more_field_assignments? {
|
||||||
let elts, _region = $3 in
|
match $2 with
|
||||||
let r_elts = Utils.nsepseq_cons $1 $2 elts
|
| Some (comma, elts) ->
|
||||||
in PaRecord {r_elts; r_terminator = None}
|
let r_elts = Utils.nsepseq_cons $1 comma elts in
|
||||||
|
PaRecord {r_elts; r_terminator = None}
|
||||||
|
| None ->
|
||||||
|
PaRecord {r_elts = ($1, []); r_terminator = None}
|
||||||
}
|
}
|
||||||
| expr_with_let_expr ";"? { PaSingleExpr $1 }
|
|
||||||
|
|
||||||
sequence_or_record:
|
sequence_or_record:
|
||||||
"{" sequence_or_record_in "}" {
|
"{" sequence_or_record_in "}" {
|
||||||
@ -939,18 +946,25 @@ sequence_or_record:
|
|||||||
let value = {compound;
|
let value = {compound;
|
||||||
ne_elements = r.r_elts;
|
ne_elements = r.r_elts;
|
||||||
terminator = r.r_terminator}
|
terminator = r.r_terminator}
|
||||||
in ERecord {region; value}
|
in ERecord {region; value}}
|
||||||
| PaSingleExpr e -> e }
|
|
||||||
|
|
||||||
field_assignment:
|
field_assignment_punning:
|
||||||
|
(* This can only happen with multiple fields -
|
||||||
|
one item punning does NOT work in ReasonML *)
|
||||||
field_name {
|
field_name {
|
||||||
let value = {
|
let value = {
|
||||||
field_name = $1;
|
field_name = $1;
|
||||||
assignment = ghost;
|
assignment = ghost;
|
||||||
field_expr = EVar $1 }
|
field_expr = EVar $1 }
|
||||||
in {$1 with value}
|
in
|
||||||
|
{$1 with value}
|
||||||
}
|
}
|
||||||
| field_name ":" expr {
|
| field_assignment {
|
||||||
|
$1
|
||||||
|
}
|
||||||
|
|
||||||
|
field_assignment:
|
||||||
|
field_name ":" expr {
|
||||||
let start = $1.region in
|
let start = $1.region in
|
||||||
let stop = expr_to_region $3 in
|
let stop = expr_to_region $3 in
|
||||||
let region = cover start stop in
|
let region = cover start stop in
|
||||||
|
@ -1150,11 +1150,130 @@ interactive_expr: LBRACE ELLIPSIS WILD
|
|||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
<YOUR SYNTAX ERROR MESSAGE HERE>
|
||||||
|
|
||||||
|
interactive_expr: LBRACE Ident COLON Bytes COMMA Ident COLON Bytes VBAR
|
||||||
|
##
|
||||||
|
## Ends in an error in state: 477.
|
||||||
|
##
|
||||||
|
## nsepseq(field_assignment_punning,COMMA) -> field_assignment_punning . [ RBRACE ]
|
||||||
|
## nsepseq(field_assignment_punning,COMMA) -> field_assignment_punning . COMMA nsepseq(field_assignment_punning,COMMA) [ RBRACE ]
|
||||||
|
## nseq(__anonymous_0(field_assignment_punning,COMMA)) -> field_assignment_punning . COMMA seq(__anonymous_0(field_assignment_punning,COMMA)) [ RBRACE ]
|
||||||
|
##
|
||||||
|
## The known suffix of the stack is as follows:
|
||||||
|
## field_assignment_punning
|
||||||
|
##
|
||||||
|
## 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 155, spurious reduction of production call_expr_level_in -> core_expr
|
||||||
|
## In state 173, spurious reduction of production option(type_annotation_simple) ->
|
||||||
|
## In state 174, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple)
|
||||||
|
## In state 175, spurious reduction of production unary_expr_level -> call_expr_level
|
||||||
|
## In state 128, spurious reduction of production mult_expr_level -> unary_expr_level
|
||||||
|
## In state 152, spurious reduction of production add_expr_level -> mult_expr_level
|
||||||
|
## In state 183, spurious reduction of production cat_expr_level -> add_expr_level
|
||||||
|
## In state 204, spurious reduction of production comp_expr_level -> cat_expr_level
|
||||||
|
## In state 211, spurious reduction of production conj_expr_level -> comp_expr_level
|
||||||
|
## In state 218, spurious reduction of production disj_expr_level -> conj_expr_level
|
||||||
|
## In state 165, spurious reduction of production base_expr(expr) -> disj_expr_level
|
||||||
|
## In state 222, spurious reduction of production base_cond__open(expr) -> base_expr(expr)
|
||||||
|
## In state 223, spurious reduction of production expr -> base_cond__open(expr)
|
||||||
|
## In state 465, spurious reduction of production field_assignment -> Ident COLON expr
|
||||||
|
## In state 484, spurious reduction of production field_assignment_punning -> field_assignment
|
||||||
|
##
|
||||||
|
|
||||||
|
<YOUR SYNTAX ERROR MESSAGE HERE>
|
||||||
|
|
||||||
|
interactive_expr: LBRACE Ident COLON Bytes COMMA Ident COMMA Ident COLON Bytes VBAR
|
||||||
|
##
|
||||||
|
## Ends in an error in state: 481.
|
||||||
|
##
|
||||||
|
## nsepseq(field_assignment_punning,COMMA) -> field_assignment_punning . [ RBRACE ]
|
||||||
|
## nsepseq(field_assignment_punning,COMMA) -> field_assignment_punning . COMMA nsepseq(field_assignment_punning,COMMA) [ RBRACE ]
|
||||||
|
## seq(__anonymous_0(field_assignment_punning,COMMA)) -> field_assignment_punning . COMMA seq(__anonymous_0(field_assignment_punning,COMMA)) [ RBRACE ]
|
||||||
|
##
|
||||||
|
## The known suffix of the stack is as follows:
|
||||||
|
## field_assignment_punning
|
||||||
|
##
|
||||||
|
## 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 155, spurious reduction of production call_expr_level_in -> core_expr
|
||||||
|
## In state 173, spurious reduction of production option(type_annotation_simple) ->
|
||||||
|
## In state 174, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple)
|
||||||
|
## In state 175, spurious reduction of production unary_expr_level -> call_expr_level
|
||||||
|
## In state 128, spurious reduction of production mult_expr_level -> unary_expr_level
|
||||||
|
## In state 152, spurious reduction of production add_expr_level -> mult_expr_level
|
||||||
|
## In state 183, spurious reduction of production cat_expr_level -> add_expr_level
|
||||||
|
## In state 204, spurious reduction of production comp_expr_level -> cat_expr_level
|
||||||
|
## In state 211, spurious reduction of production conj_expr_level -> comp_expr_level
|
||||||
|
## In state 218, spurious reduction of production disj_expr_level -> conj_expr_level
|
||||||
|
## In state 165, spurious reduction of production base_expr(expr) -> disj_expr_level
|
||||||
|
## In state 222, spurious reduction of production base_cond__open(expr) -> base_expr(expr)
|
||||||
|
## In state 223, spurious reduction of production expr -> base_cond__open(expr)
|
||||||
|
## In state 465, spurious reduction of production field_assignment -> Ident COLON expr
|
||||||
|
## In state 484, spurious reduction of production field_assignment_punning -> field_assignment
|
||||||
|
##
|
||||||
|
|
||||||
|
<YOUR SYNTAX ERROR MESSAGE HERE>
|
||||||
|
|
||||||
|
interactive_expr: LBRACE Ident COLON Bytes COMMA Ident COMMA Ident COMMA WILD
|
||||||
|
##
|
||||||
|
## Ends in an error in state: 482.
|
||||||
|
##
|
||||||
|
## nsepseq(field_assignment_punning,COMMA) -> field_assignment_punning COMMA . nsepseq(field_assignment_punning,COMMA) [ RBRACE ]
|
||||||
|
## seq(__anonymous_0(field_assignment_punning,COMMA)) -> field_assignment_punning COMMA . seq(__anonymous_0(field_assignment_punning,COMMA)) [ RBRACE ]
|
||||||
|
##
|
||||||
|
## The known suffix of the stack is as follows:
|
||||||
|
## field_assignment_punning COMMA
|
||||||
|
##
|
||||||
|
|
||||||
|
<YOUR SYNTAX ERROR MESSAGE HERE>
|
||||||
|
|
||||||
|
interactive_expr: LBRACE Ident COLON Bytes COMMA Ident COMMA WILD
|
||||||
|
##
|
||||||
|
## Ends in an error in state: 478.
|
||||||
|
##
|
||||||
|
## nsepseq(field_assignment_punning,COMMA) -> field_assignment_punning COMMA . nsepseq(field_assignment_punning,COMMA) [ RBRACE ]
|
||||||
|
## nseq(__anonymous_0(field_assignment_punning,COMMA)) -> field_assignment_punning COMMA . seq(__anonymous_0(field_assignment_punning,COMMA)) [ RBRACE ]
|
||||||
|
##
|
||||||
|
## The known suffix of the stack is as follows:
|
||||||
|
## field_assignment_punning COMMA
|
||||||
|
##
|
||||||
|
|
||||||
|
<YOUR SYNTAX ERROR MESSAGE HERE>
|
||||||
|
|
||||||
|
interactive_expr: LBRACE Ident COLON Bytes COMMA Ident WILD
|
||||||
|
##
|
||||||
|
## Ends in an error in state: 473.
|
||||||
|
##
|
||||||
|
## field_assignment -> Ident . COLON expr [ RBRACE COMMA ]
|
||||||
|
## field_assignment_punning -> Ident . [ RBRACE COMMA ]
|
||||||
|
##
|
||||||
|
## The known suffix of the stack is as follows:
|
||||||
|
## Ident
|
||||||
|
##
|
||||||
|
|
||||||
|
<YOUR SYNTAX ERROR MESSAGE HERE>
|
||||||
|
|
||||||
|
interactive_expr: LBRACE Ident COLON Bytes COMMA WILD
|
||||||
|
##
|
||||||
|
## Ends in an error in state: 472.
|
||||||
|
##
|
||||||
|
## more_field_assignments -> COMMA . sep_or_term_list(field_assignment_punning,COMMA) [ RBRACE ]
|
||||||
|
##
|
||||||
|
## The known suffix of the stack is as follows:
|
||||||
|
## COMMA
|
||||||
|
##
|
||||||
|
|
||||||
|
<YOUR SYNTAX ERROR MESSAGE HERE>
|
||||||
|
|
||||||
interactive_expr: LBRACE Ident COLON Bytes VBAR
|
interactive_expr: LBRACE Ident COLON Bytes VBAR
|
||||||
##
|
##
|
||||||
## Ends in an error in state: 468.
|
## Ends in an error in state: 471.
|
||||||
##
|
##
|
||||||
## sequence_or_record_in -> field_assignment . COMMA sep_or_term_list(field_assignment,COMMA) [ RBRACE ]
|
## sequence_or_record_in -> field_assignment . option(more_field_assignments) [ RBRACE ]
|
||||||
##
|
##
|
||||||
## The known suffix of the stack is as follows:
|
## The known suffix of the stack is as follows:
|
||||||
## field_assignment
|
## field_assignment
|
||||||
@ -1193,130 +1312,12 @@ interactive_expr: LBRACE Ident COLON VBAR
|
|||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
<YOUR SYNTAX ERROR MESSAGE HERE>
|
||||||
|
|
||||||
interactive_expr: LBRACE Ident COMMA Ident COLON Bytes VBAR
|
|
||||||
##
|
|
||||||
## Ends in an error in state: 474.
|
|
||||||
##
|
|
||||||
## nsepseq(field_assignment,COMMA) -> field_assignment . [ RBRACE ]
|
|
||||||
## nsepseq(field_assignment,COMMA) -> field_assignment . COMMA nsepseq(field_assignment,COMMA) [ RBRACE ]
|
|
||||||
## nseq(__anonymous_0(field_assignment,COMMA)) -> field_assignment . COMMA seq(__anonymous_0(field_assignment,COMMA)) [ RBRACE ]
|
|
||||||
##
|
|
||||||
## The known suffix of the stack is as follows:
|
|
||||||
## field_assignment
|
|
||||||
##
|
|
||||||
## 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 155, spurious reduction of production call_expr_level_in -> core_expr
|
|
||||||
## In state 173, spurious reduction of production option(type_annotation_simple) ->
|
|
||||||
## In state 174, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple)
|
|
||||||
## In state 175, spurious reduction of production unary_expr_level -> call_expr_level
|
|
||||||
## In state 128, spurious reduction of production mult_expr_level -> unary_expr_level
|
|
||||||
## In state 152, spurious reduction of production add_expr_level -> mult_expr_level
|
|
||||||
## In state 183, spurious reduction of production cat_expr_level -> add_expr_level
|
|
||||||
## In state 204, spurious reduction of production comp_expr_level -> cat_expr_level
|
|
||||||
## In state 211, spurious reduction of production conj_expr_level -> comp_expr_level
|
|
||||||
## In state 218, spurious reduction of production disj_expr_level -> conj_expr_level
|
|
||||||
## In state 165, spurious reduction of production base_expr(expr) -> disj_expr_level
|
|
||||||
## In state 222, spurious reduction of production base_cond__open(expr) -> base_expr(expr)
|
|
||||||
## In state 223, spurious reduction of production expr -> base_cond__open(expr)
|
|
||||||
## In state 465, spurious reduction of production field_assignment -> Ident COLON expr
|
|
||||||
##
|
|
||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
|
||||||
|
|
||||||
interactive_expr: LBRACE Ident COMMA Ident COMMA Ident COLON Bytes VBAR
|
|
||||||
##
|
|
||||||
## Ends in an error in state: 478.
|
|
||||||
##
|
|
||||||
## nsepseq(field_assignment,COMMA) -> field_assignment . [ RBRACE ]
|
|
||||||
## nsepseq(field_assignment,COMMA) -> field_assignment . COMMA nsepseq(field_assignment,COMMA) [ RBRACE ]
|
|
||||||
## seq(__anonymous_0(field_assignment,COMMA)) -> field_assignment . COMMA seq(__anonymous_0(field_assignment,COMMA)) [ RBRACE ]
|
|
||||||
##
|
|
||||||
## The known suffix of the stack is as follows:
|
|
||||||
## field_assignment
|
|
||||||
##
|
|
||||||
## 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 155, spurious reduction of production call_expr_level_in -> core_expr
|
|
||||||
## In state 173, spurious reduction of production option(type_annotation_simple) ->
|
|
||||||
## In state 174, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple)
|
|
||||||
## In state 175, spurious reduction of production unary_expr_level -> call_expr_level
|
|
||||||
## In state 128, spurious reduction of production mult_expr_level -> unary_expr_level
|
|
||||||
## In state 152, spurious reduction of production add_expr_level -> mult_expr_level
|
|
||||||
## In state 183, spurious reduction of production cat_expr_level -> add_expr_level
|
|
||||||
## In state 204, spurious reduction of production comp_expr_level -> cat_expr_level
|
|
||||||
## In state 211, spurious reduction of production conj_expr_level -> comp_expr_level
|
|
||||||
## In state 218, spurious reduction of production disj_expr_level -> conj_expr_level
|
|
||||||
## In state 165, spurious reduction of production base_expr(expr) -> disj_expr_level
|
|
||||||
## In state 222, spurious reduction of production base_cond__open(expr) -> base_expr(expr)
|
|
||||||
## In state 223, spurious reduction of production expr -> base_cond__open(expr)
|
|
||||||
## In state 465, spurious reduction of production field_assignment -> Ident COLON expr
|
|
||||||
##
|
|
||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
|
||||||
|
|
||||||
interactive_expr: LBRACE Ident COMMA Ident COMMA Ident COMMA WILD
|
|
||||||
##
|
|
||||||
## Ends in an error in state: 479.
|
|
||||||
##
|
|
||||||
## nsepseq(field_assignment,COMMA) -> field_assignment COMMA . nsepseq(field_assignment,COMMA) [ RBRACE ]
|
|
||||||
## seq(__anonymous_0(field_assignment,COMMA)) -> field_assignment COMMA . seq(__anonymous_0(field_assignment,COMMA)) [ RBRACE ]
|
|
||||||
##
|
|
||||||
## The known suffix of the stack is as follows:
|
|
||||||
## field_assignment COMMA
|
|
||||||
##
|
|
||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
|
||||||
|
|
||||||
interactive_expr: LBRACE Ident COMMA Ident COMMA WILD
|
|
||||||
##
|
|
||||||
## Ends in an error in state: 475.
|
|
||||||
##
|
|
||||||
## nsepseq(field_assignment,COMMA) -> field_assignment COMMA . nsepseq(field_assignment,COMMA) [ RBRACE ]
|
|
||||||
## nseq(__anonymous_0(field_assignment,COMMA)) -> field_assignment COMMA . seq(__anonymous_0(field_assignment,COMMA)) [ RBRACE ]
|
|
||||||
##
|
|
||||||
## The known suffix of the stack is as follows:
|
|
||||||
## field_assignment COMMA
|
|
||||||
##
|
|
||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
|
||||||
|
|
||||||
interactive_expr: LBRACE Ident COMMA Ident WILD
|
|
||||||
##
|
|
||||||
## Ends in an error in state: 470.
|
|
||||||
##
|
|
||||||
## field_assignment -> Ident . [ RBRACE COMMA ]
|
|
||||||
## field_assignment -> Ident . COLON expr [ RBRACE COMMA ]
|
|
||||||
##
|
|
||||||
## The known suffix of the stack is as follows:
|
|
||||||
## Ident
|
|
||||||
##
|
|
||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
|
||||||
|
|
||||||
interactive_expr: LBRACE Ident COMMA WILD
|
|
||||||
##
|
|
||||||
## Ends in an error in state: 469.
|
|
||||||
##
|
|
||||||
## sequence_or_record_in -> field_assignment COMMA . sep_or_term_list(field_assignment,COMMA) [ RBRACE ]
|
|
||||||
##
|
|
||||||
## The known suffix of the stack is as follows:
|
|
||||||
## field_assignment COMMA
|
|
||||||
##
|
|
||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
|
||||||
|
|
||||||
interactive_expr: LBRACE Ident WILD
|
interactive_expr: LBRACE Ident WILD
|
||||||
##
|
##
|
||||||
## Ends in an error in state: 463.
|
## Ends in an error in state: 463.
|
||||||
##
|
##
|
||||||
## common_expr -> Ident . [ TIMES SLASH SEMI RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ COLON CAT BOOL_OR BOOL_AND ARROW ]
|
## common_expr -> Ident . [ TIMES SLASH SEMI RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ COLON CAT BOOL_OR BOOL_AND ARROW ]
|
||||||
## field_assignment -> Ident . [ COMMA ]
|
## field_assignment -> Ident . COLON expr [ RBRACE COMMA ]
|
||||||
## field_assignment -> Ident . COLON expr [ COMMA ]
|
|
||||||
## projection -> Ident . selection [ TIMES SLASH SEMI RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ COLON CAT BOOL_OR BOOL_AND ARROW ]
|
## projection -> Ident . selection [ TIMES SLASH SEMI RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ COLON CAT BOOL_OR BOOL_AND ARROW ]
|
||||||
##
|
##
|
||||||
## The known suffix of the stack is as follows:
|
## The known suffix of the stack is as follows:
|
||||||
@ -1340,20 +1341,7 @@ interactive_expr: LBRACE VBAR
|
|||||||
|
|
||||||
interactive_expr: LBRACE WILD SEMI VBAR
|
interactive_expr: LBRACE WILD SEMI VBAR
|
||||||
##
|
##
|
||||||
## Ends in an error in state: 482.
|
## Ends in an error in state: 488.
|
||||||
##
|
|
||||||
## option(SEMI) -> SEMI . [ RBRACE ]
|
|
||||||
## sequence_or_record_in -> expr_with_let_expr SEMI . sep_or_term_list(expr_with_let_expr,SEMI) [ RBRACE ]
|
|
||||||
##
|
|
||||||
## The known suffix of the stack is as follows:
|
|
||||||
## expr_with_let_expr SEMI
|
|
||||||
##
|
|
||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
|
||||||
|
|
||||||
interactive_expr: LBRACE WILD SEMI WILD SEMI VBAR
|
|
||||||
##
|
|
||||||
## Ends in an error in state: 487.
|
|
||||||
##
|
##
|
||||||
## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr SEMI . nsepseq(expr_with_let_expr,SEMI) [ RBRACE ]
|
## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr SEMI . nsepseq(expr_with_let_expr,SEMI) [ RBRACE ]
|
||||||
## nseq(__anonymous_0(expr_with_let_expr,SEMI)) -> expr_with_let_expr SEMI . seq(__anonymous_0(expr_with_let_expr,SEMI)) [ RBRACE ]
|
## nseq(__anonymous_0(expr_with_let_expr,SEMI)) -> expr_with_let_expr SEMI . seq(__anonymous_0(expr_with_let_expr,SEMI)) [ RBRACE ]
|
||||||
@ -1364,9 +1352,9 @@ interactive_expr: LBRACE WILD SEMI WILD SEMI VBAR
|
|||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
<YOUR SYNTAX ERROR MESSAGE HERE>
|
||||||
|
|
||||||
interactive_expr: LBRACE WILD SEMI WILD SEMI WILD SEMI VBAR
|
interactive_expr: LBRACE WILD SEMI WILD SEMI VBAR
|
||||||
##
|
##
|
||||||
## Ends in an error in state: 491.
|
## Ends in an error in state: 492.
|
||||||
##
|
##
|
||||||
## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr SEMI . nsepseq(expr_with_let_expr,SEMI) [ RBRACE ]
|
## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr SEMI . nsepseq(expr_with_let_expr,SEMI) [ RBRACE ]
|
||||||
## seq(__anonymous_0(expr_with_let_expr,SEMI)) -> expr_with_let_expr SEMI . seq(__anonymous_0(expr_with_let_expr,SEMI)) [ RBRACE ]
|
## seq(__anonymous_0(expr_with_let_expr,SEMI)) -> expr_with_let_expr SEMI . seq(__anonymous_0(expr_with_let_expr,SEMI)) [ RBRACE ]
|
||||||
@ -1377,9 +1365,9 @@ interactive_expr: LBRACE WILD SEMI WILD SEMI WILD SEMI VBAR
|
|||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
<YOUR SYNTAX ERROR MESSAGE HERE>
|
||||||
|
|
||||||
interactive_expr: LBRACE WILD SEMI WILD SEMI WILD VBAR
|
interactive_expr: LBRACE WILD SEMI WILD VBAR
|
||||||
##
|
##
|
||||||
## Ends in an error in state: 490.
|
## Ends in an error in state: 491.
|
||||||
##
|
##
|
||||||
## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr . [ RBRACE ]
|
## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr . [ RBRACE ]
|
||||||
## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr . SEMI nsepseq(expr_with_let_expr,SEMI) [ RBRACE ]
|
## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr . SEMI nsepseq(expr_with_let_expr,SEMI) [ RBRACE ]
|
||||||
@ -1410,9 +1398,9 @@ interactive_expr: LBRACE WILD SEMI WILD SEMI WILD VBAR
|
|||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
<YOUR SYNTAX ERROR MESSAGE HERE>
|
||||||
|
|
||||||
interactive_expr: LBRACE WILD SEMI WILD VBAR
|
interactive_expr: LBRACE WILD VBAR
|
||||||
##
|
##
|
||||||
## Ends in an error in state: 486.
|
## Ends in an error in state: 487.
|
||||||
##
|
##
|
||||||
## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr . [ RBRACE ]
|
## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr . [ RBRACE ]
|
||||||
## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr . SEMI nsepseq(expr_with_let_expr,SEMI) [ RBRACE ]
|
## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr . SEMI nsepseq(expr_with_let_expr,SEMI) [ RBRACE ]
|
||||||
@ -1443,38 +1431,6 @@ interactive_expr: LBRACE WILD SEMI WILD VBAR
|
|||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
<YOUR SYNTAX ERROR MESSAGE HERE>
|
||||||
|
|
||||||
interactive_expr: LBRACE WILD VBAR
|
|
||||||
##
|
|
||||||
## Ends in an error in state: 481.
|
|
||||||
##
|
|
||||||
## sequence_or_record_in -> expr_with_let_expr . SEMI sep_or_term_list(expr_with_let_expr,SEMI) [ RBRACE ]
|
|
||||||
## sequence_or_record_in -> expr_with_let_expr . option(SEMI) [ RBRACE ]
|
|
||||||
##
|
|
||||||
## The known suffix of the stack is as follows:
|
|
||||||
## expr_with_let_expr
|
|
||||||
##
|
|
||||||
## 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 155, spurious reduction of production call_expr_level_in -> core_expr
|
|
||||||
## In state 173, spurious reduction of production option(type_annotation_simple) ->
|
|
||||||
## In state 174, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple)
|
|
||||||
## In state 175, spurious reduction of production unary_expr_level -> call_expr_level
|
|
||||||
## In state 128, spurious reduction of production mult_expr_level -> unary_expr_level
|
|
||||||
## In state 152, spurious reduction of production add_expr_level -> mult_expr_level
|
|
||||||
## In state 183, spurious reduction of production cat_expr_level -> add_expr_level
|
|
||||||
## In state 204, spurious reduction of production comp_expr_level -> cat_expr_level
|
|
||||||
## In state 211, spurious reduction of production conj_expr_level -> comp_expr_level
|
|
||||||
## In state 218, spurious reduction of production disj_expr_level -> conj_expr_level
|
|
||||||
## In state 165, spurious reduction of production base_expr(expr) -> disj_expr_level
|
|
||||||
## In state 222, spurious reduction of production base_cond__open(expr) -> base_expr(expr)
|
|
||||||
## In state 223, spurious reduction of production expr -> base_cond__open(expr)
|
|
||||||
## In state 400, spurious reduction of production expr_with_let_expr -> expr
|
|
||||||
##
|
|
||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
|
||||||
|
|
||||||
interactive_expr: LBRACKET VBAR
|
interactive_expr: LBRACKET VBAR
|
||||||
##
|
##
|
||||||
## Ends in an error in state: 91.
|
## Ends in an error in state: 91.
|
||||||
@ -4150,3 +4106,4 @@ contract: WILD
|
|||||||
##
|
##
|
||||||
|
|
||||||
<YOUR SYNTAX ERROR MESSAGE HERE>
|
<YOUR SYNTAX ERROR MESSAGE HERE>
|
||||||
|
|
||||||
|
5
src/test/contracts/single_record_item.religo
Normal file
5
src/test/contracts/single_record_item.religo
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
type p = {x: int}
|
||||||
|
|
||||||
|
let o = (p: int): p => {
|
||||||
|
x: p
|
||||||
|
}
|
@ -2325,6 +2325,10 @@ let tuple_list_religo () : unit result =
|
|||||||
let%bind _ = retype_file "./contracts/tuple_list.religo" in
|
let%bind _ = retype_file "./contracts/tuple_list.religo" in
|
||||||
ok ()
|
ok ()
|
||||||
|
|
||||||
|
let single_record_expr_religo () : unit result =
|
||||||
|
let%bind _ = retype_file "./contracts/single_record_item.religo" in
|
||||||
|
ok ()
|
||||||
|
|
||||||
let loop_bugs_ligo () : unit result =
|
let loop_bugs_ligo () : unit result =
|
||||||
let%bind program = type_file "./contracts/loop_bugs.ligo" in
|
let%bind program = type_file "./contracts/loop_bugs.ligo" in
|
||||||
let input = e_unit () in
|
let input = e_unit () in
|
||||||
@ -2512,4 +2516,5 @@ let main = test_suite "Integration (End to End)" [
|
|||||||
test "no semicolon (religo)" no_semicolon_religo ;
|
test "no semicolon (religo)" no_semicolon_religo ;
|
||||||
test "loop_bugs (ligo)" loop_bugs_ligo ;
|
test "loop_bugs (ligo)" loop_bugs_ligo ;
|
||||||
test "tuple_list (religo)" tuple_list_religo ;
|
test "tuple_list (religo)" tuple_list_religo ;
|
||||||
|
test "single_record_expr (religo)" single_record_expr_religo ;
|
||||||
]
|
]
|
||||||
|
Loading…
Reference in New Issue
Block a user