Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
menhir
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
12
Issues
12
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
POTTIER Francois
menhir
Commits
47bb88b9
Commit
47bb88b9
authored
May 18, 2016
by
POTTIER Francois
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Re-generated expected output due to whitespace adjustment.
parent
0fd68fa7
Changes
220
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
220 changed files
with
10634 additions
and
10634 deletions
+10634
-10634
bench/good/JSParse.opp.exp
bench/good/JSParse.opp.exp
+117
-117
bench/good/K3Parser.opp.exp
bench/good/K3Parser.opp.exp
+53
-53
bench/good/albatross.opp.exp
bench/good/albatross.opp.exp
+91
-91
bench/good/alphaCaml-demos-interactive.opp.exp
bench/good/alphaCaml-demos-interactive.opp.exp
+2
-2
bench/good/alphaCaml-demos-mixins.opp.exp
bench/good/alphaCaml-demos-mixins.opp.exp
+13
-13
bench/good/alphaCaml-demos-poplmark.opp.exp
bench/good/alphaCaml-demos-poplmark.opp.exp
+19
-19
bench/good/alphaCaml.opp.exp
bench/good/alphaCaml.opp.exp
+27
-27
bench/good/alphaprolog.opp.exp
bench/good/alphaprolog.opp.exp
+34
-34
bench/good/amalthea.opp.exp
bench/good/amalthea.opp.exp
+14
-14
bench/good/anonymous.opp.exp
bench/good/anonymous.opp.exp
+3
-3
bench/good/atd_parser.opp.exp
bench/good/atd_parser.opp.exp
+21
-21
bench/good/attapl-deptypes.opp.exp
bench/good/attapl-deptypes.opp.exp
+15
-15
bench/good/attapl-mini.opp.exp
bench/good/attapl-mini.opp.exp
+28
-28
bench/good/bauer.opp.exp
bench/good/bauer.opp.exp
+9
-9
bench/good/belloeil.opp.exp
bench/good/belloeil.opp.exp
+3
-3
bench/good/bibtex_parser.opp.exp
bench/good/bibtex_parser.opp.exp
+9
-9
bench/good/bison-mysterious-conflict.opp.exp
bench/good/bison-mysterious-conflict.opp.exp
+6
-6
bench/good/boris-mini.opp.exp
bench/good/boris-mini.opp.exp
+3
-3
bench/good/bran.opp.exp
bench/good/bran.opp.exp
+78
-78
bench/good/c.opp.exp
bench/good/c.opp.exp
+63
-63
bench/good/c_unambiguous.opp.exp
bench/good/c_unambiguous.opp.exp
+68
-68
bench/good/calc-anonymous.opp.exp
bench/good/calc-anonymous.opp.exp
+2
-2
bench/good/calc-locations.opp.exp
bench/good/calc-locations.opp.exp
+2
-2
bench/good/calc.opp.exp
bench/good/calc.opp.exp
+2
-2
bench/good/christian.opp.exp
bench/good/christian.opp.exp
+285
-285
bench/good/cigen-cparser.opp.exp
bench/good/cigen-cparser.opp.exp
+27
-27
bench/good/cil-cparser.opp.exp
bench/good/cil-cparser.opp.exp
+116
-116
bench/good/cil-formatparse.opp.exp
bench/good/cil-formatparse.opp.exp
+28
-28
bench/good/cime-coq.opp.exp
bench/good/cime-coq.opp.exp
+15
-15
bench/good/cime-genpoly.opp.exp
bench/good/cime-genpoly.opp.exp
+7
-7
bench/good/cime-parameterized-signatures.opp.exp
bench/good/cime-parameterized-signatures.opp.exp
+16
-16
bench/good/cime-poly-interp.opp.exp
bench/good/cime-poly-interp.opp.exp
+7
-7
bench/good/cime-poly.opp.exp
bench/good/cime-poly.opp.exp
+4
-4
bench/good/cime-signature.opp.exp
bench/good/cime-signature.opp.exp
+6
-6
bench/good/cime-syntax.opp.exp
bench/good/cime-syntax.opp.exp
+58
-58
bench/good/cime-term.opp.exp
bench/good/cime-term.opp.exp
+6
-6
bench/good/cime-terms-signature.opp.exp
bench/good/cime-terms-signature.opp.exp
+12
-12
bench/good/cime-terms.opp.exp
bench/good/cime-terms.opp.exp
+20
-20
bench/good/cime-theory.opp.exp
bench/good/cime-theory.opp.exp
+7
-7
bench/good/cime-toplevel.opp.exp
bench/good/cime-toplevel.opp.exp
+8
-8
bench/good/cime-word.opp.exp
bench/good/cime-word.opp.exp
+10
-10
bench/good/cminor.opp.exp
bench/good/cminor.opp.exp
+24
-24
bench/good/cocci.opp.exp
bench/good/cocci.opp.exp
+198
-198
bench/good/coercion-constraint.opp.exp
bench/good/coercion-constraint.opp.exp
+26
-26
bench/good/coercion-mini.opp.exp
bench/good/coercion-mini.opp.exp
+48
-48
bench/good/compcert_pre_parser.opp.exp
bench/good/compcert_pre_parser.opp.exp
+104
-104
bench/good/compcert_pre_parser_new.opp.exp
bench/good/compcert_pre_parser_new.opp.exp
+145
-145
bench/good/compsyn.opp.exp
bench/good/compsyn.opp.exp
+156
-156
bench/good/condition_parser.opp.exp
bench/good/condition_parser.opp.exp
+4
-4
bench/good/confluence-fnf.opp.exp
bench/good/confluence-fnf.opp.exp
+14
-14
bench/good/confluence-psl.opp.exp
bench/good/confluence-psl.opp.exp
+21
-21
bench/good/confluence.opp.exp
bench/good/confluence.opp.exp
+34
-34
bench/good/couac.opp.exp
bench/good/couac.opp.exp
+14
-14
bench/good/cutdown.opp.exp
bench/good/cutdown.opp.exp
+7
-7
bench/good/dario.opp.exp
bench/good/dario.opp.exp
+5
-5
bench/good/dml.opp.exp
bench/good/dml.opp.exp
+67
-67
bench/good/docOckXmlParser.opp.exp
bench/good/docOckXmlParser.opp.exp
+159
-159
bench/good/dule.opp.exp
bench/good/dule.opp.exp
+52
-52
bench/good/duplicated_prec.opp.exp
bench/good/duplicated_prec.opp.exp
+3
-3
bench/good/efuns.opp.exp
bench/good/efuns.opp.exp
+3
-3
bench/good/empty-action.opp.exp
bench/good/empty-action.opp.exp
+2
-2
bench/good/end-of-stream-conflict.opp.exp
bench/good/end-of-stream-conflict.opp.exp
+1
-1
bench/good/execparser.opp.exp
bench/good/execparser.opp.exp
+42
-42
bench/good/featherweight.opp.exp
bench/good/featherweight.opp.exp
+22
-22
bench/good/filiot.opp.exp
bench/good/filiot.opp.exp
+7
-7
bench/good/flowcaml-docgen.opp.exp
bench/good/flowcaml-docgen.opp.exp
+2
-2
bench/good/flowcaml.opp.exp
bench/good/flowcaml.opp.exp
+129
-129
bench/good/focc-pure-def.opp.exp
bench/good/focc-pure-def.opp.exp
+6
-6
bench/good/foo.opp.exp
bench/good/foo.opp.exp
+1
-1
bench/good/fork.opp.exp
bench/good/fork.opp.exp
+23
-23
bench/good/fp.opp.exp
bench/good/fp.opp.exp
+7
-7
bench/good/framac-cparser.opp.exp
bench/good/framac-cparser.opp.exp
+140
-140
bench/good/framac-print_api-grammar.opp.exp
bench/good/framac-print_api-grammar.opp.exp
+3
-3
bench/good/fsharp.opp.exp
bench/good/fsharp.opp.exp
+276
-276
bench/good/fslexpars.opp.exp
bench/good/fslexpars.opp.exp
+12
-12
bench/good/fstar.opp.exp
bench/good/fstar.opp.exp
+125
-125
bench/good/fsyaccpars.opp.exp
bench/good/fsyaccpars.opp.exp
+13
-13
bench/good/godiva.opp.exp
bench/good/godiva.opp.exp
+23
-23
bench/good/gromit.opp.exp
bench/good/gromit.opp.exp
+13
-13
bench/good/hmx-multi.opp.exp
bench/good/hmx-multi.opp.exp
+13
-13
bench/good/hmx-sets.opp.exp
bench/good/hmx-sets.opp.exp
+8
-8
bench/good/htparser.opp.exp
bench/good/htparser.opp.exp
+99
-99
bench/good/ibal.opp.exp
bench/good/ibal.opp.exp
+67
-67
bench/good/ics.opp.exp
bench/good/ics.opp.exp
+39
-39
bench/good/idl_parser.opp.exp
bench/good/idl_parser.opp.exp
+78
-78
bench/good/ilpars.opp.exp
bench/good/ilpars.opp.exp
+36
-36
bench/good/infinite.opp.exp
bench/good/infinite.opp.exp
+2
-2
bench/good/inline-multi-level.opp.exp
bench/good/inline-multi-level.opp.exp
+2
-2
bench/good/inline-multi-sons.opp.exp
bench/good/inline-multi-sons.opp.exp
+1
-1
bench/good/inline-position.opp.exp
bench/good/inline-position.opp.exp
+9
-9
bench/good/inline-rename.opp.exp
bench/good/inline-rename.opp.exp
+2
-2
bench/good/inline-shift.opp.exp
bench/good/inline-shift.opp.exp
+2
-2
bench/good/inline-test.opp.exp
bench/good/inline-test.opp.exp
+2
-2
bench/good/inline-with-dollar.opp.exp
bench/good/inline-with-dollar.opp.exp
+1
-1
bench/good/inlined-dollar.opp.exp
bench/good/inlined-dollar.opp.exp
+1
-1
bench/good/inlining-capture.opp.exp
bench/good/inlining-capture.opp.exp
+1
-1
bench/good/jasmc.opp.exp
bench/good/jasmc.opp.exp
+105
-105
bench/good/java.opp.exp
bench/good/java.opp.exp
+73
-73
bench/good/jml.opp.exp
bench/good/jml.opp.exp
+83
-83
bench/good/jocaml-ambients.opp.exp
bench/good/jocaml-ambients.opp.exp
+5
-5
bench/good/jocaml-new-parser.opp.exp
bench/good/jocaml-new-parser.opp.exp
+126
-126
bench/good/jocaml.opp.exp
bench/good/jocaml.opp.exp
+134
-134
bench/good/jparser.opp.exp
bench/good/jparser.opp.exp
+144
-144
bench/good/judicael.opp.exp
bench/good/judicael.opp.exp
+3
-3
bench/good/julia.opp.exp
bench/good/julia.opp.exp
+3
-3
bench/good/ketti.opp.exp
bench/good/ketti.opp.exp
+3
-3
bench/good/kimmit.opp.exp
bench/good/kimmit.opp.exp
+1
-1
bench/good/labltk-compiler.opp.exp
bench/good/labltk-compiler.opp.exp
+28
-28
bench/good/labltk-ppyac.opp.exp
bench/good/labltk-ppyac.opp.exp
+2
-2
bench/good/lambdoc_rlambtex_parser.opp.exp
bench/good/lambdoc_rlambtex_parser.opp.exp
+122
-122
bench/good/lem.opp.exp
bench/good/lem.opp.exp
+123
-123
bench/good/liberty_parser.opp.exp
bench/good/liberty_parser.opp.exp
+14
-14
bench/good/link.opp.exp
bench/good/link.opp.exp
+3
-3
bench/good/links.opp.exp
bench/good/links.opp.exp
+157
-157
bench/good/llparse.opp.exp
bench/good/llparse.opp.exp
+87
-87
bench/good/logic_parser.opp.exp
bench/good/logic_parser.opp.exp
+182
-182
bench/good/loop.opp.exp
bench/good/loop.opp.exp
+3
-3
bench/good/lr-but-not-lalr.opp.exp
bench/good/lr-but-not-lalr.opp.exp
+3
-3
bench/good/ltlparser.opp.exp
bench/good/ltlparser.opp.exp
+9
-9
bench/good/lustreParser.opp.exp
bench/good/lustreParser.opp.exp
+75
-75
bench/good/macrodown.opp.exp
bench/good/macrodown.opp.exp
+34
-34
bench/good/maple.opp.exp
bench/good/maple.opp.exp
+23
-23
bench/good/mcc-fc.opp.exp
bench/good/mcc-fc.opp.exp
+97
-97
bench/good/mcc-fj.opp.exp
bench/good/mcc-fj.opp.exp
+56
-56
bench/good/mcc-frontends.opp.exp
bench/good/mcc-frontends.opp.exp
+10
-10
bench/good/mcc-mc.opp.exp
bench/good/mcc-mc.opp.exp
+7
-7
bench/good/mcc-moogle.opp.exp
bench/good/mcc-moogle.opp.exp
+63
-63
bench/good/mcc-naml.opp.exp
bench/good/mcc-naml.opp.exp
+60
-60
bench/good/mcc-pascal.opp.exp
bench/good/mcc-pascal.opp.exp
+86
-86
bench/good/mcc-pasqual.opp.exp
bench/good/mcc-pasqual.opp.exp
+136
-136
bench/good/mcc-phobos.opp.exp
bench/good/mcc-phobos.opp.exp
+87
-87
bench/good/mcc-prof.opp.exp
bench/good/mcc-prof.opp.exp
+7
-7
bench/good/mcc-python.opp.exp
bench/good/mcc-python.opp.exp
+87
-87
bench/good/metaocaml.opp.exp
bench/good/metaocaml.opp.exp
+144
-144
bench/good/mezzo.opp.exp
bench/good/mezzo.opp.exp
+84
-84
bench/good/miniCparser.opp.exp
bench/good/miniCparser.opp.exp
+24
-24
bench/good/miniMLparser.opp.exp
bench/good/miniMLparser.opp.exp
+24
-24
bench/good/modelica.opp.exp
bench/good/modelica.opp.exp
+114
-114
bench/good/modelyze.opp.exp
bench/good/modelyze.opp.exp
+32
-32
bench/good/modulo.opp.exp
bench/good/modulo.opp.exp
+47
-47
bench/good/multiple-functor.opp.exp
bench/good/multiple-functor.opp.exp
+1
-1
bench/good/name-clash-1.opp.exp
bench/good/name-clash-1.opp.exp
+4
-4
bench/good/netsem.opp.exp
bench/good/netsem.opp.exp
+98
-98
bench/good/nexus.opp.exp
bench/good/nexus.opp.exp
+93
-93
bench/good/nml-ip-parser.opp.exp
bench/good/nml-ip-parser.opp.exp
+65
-65
bench/good/no-end-of-stream-conflict.opp.exp
bench/good/no-end-of-stream-conflict.opp.exp
+2
-2
bench/good/obc-sym.opp.exp
bench/good/obc-sym.opp.exp
+17
-17
bench/good/obc.opp.exp
bench/good/obc.opp.exp
+55
-55
bench/good/ocaml-debugger.opp.exp
bench/good/ocaml-debugger.opp.exp
+23
-23
bench/good/ocaml-lex.opp.exp
bench/good/ocaml-lex.opp.exp
+13
-13
bench/good/ocaml-test-Lex.opp.exp
bench/good/ocaml-test-Lex.opp.exp
+10
-10
bench/good/ocaml-testasmcomp-cmm.opp.exp
bench/good/ocaml-testasmcomp-cmm.opp.exp
+22
-22
bench/good/ocaml.opp.exp
bench/good/ocaml.opp.exp
+211
-211
bench/good/ocamldoc-odoc.opp.exp
bench/good/ocamldoc-odoc.opp.exp
+15
-15
bench/good/ocamldoc-odoc_text.opp.exp
bench/good/ocamldoc-odoc_text.opp.exp
+11
-11
bench/good/ocamlweb-yacc.opp.exp
bench/good/ocamlweb-yacc.opp.exp
+10
-10
bench/good/oclisp.opp.exp
bench/good/oclisp.opp.exp
+5
-5
bench/good/oflux.opp.exp
bench/good/oflux.opp.exp
+53
-53
bench/good/ojacare.opp.exp
bench/good/ojacare.opp.exp
+24
-24
bench/good/omake_ast_parse.opp.exp
bench/good/omake_ast_parse.opp.exp
+77
-77
bench/good/omake_shell_parse.opp.exp
bench/good/omake_shell_parse.opp.exp
+11
-11
bench/good/parameterized-nonterminal.opp.exp
bench/good/parameterized-nonterminal.opp.exp
+4
-4
bench/good/parse_xquery.opp.exp
bench/good/parse_xquery.opp.exp
+96
-96
bench/good/parser_cocci_menhir.opp.exp
bench/good/parser_cocci_menhir.opp.exp
+318
-318
bench/good/parser_cpp.opp.exp
bench/good/parser_cpp.opp.exp
+177
-177
bench/good/parser_css.opp.exp
bench/good/parser_css.opp.exp
+29
-29
bench/good/parser_java.opp.exp
bench/good/parser_java.opp.exp
+196
-196
bench/good/parser_js.opp.exp
bench/good/parser_js.opp.exp
+141
-141
bench/good/parser_php.opp.exp
bench/good/parser_php.opp.exp
+173
-173
bench/good/petit-1.opp.exp
bench/good/petit-1.opp.exp
+26
-26
bench/good/photos.opp.exp
bench/good/photos.opp.exp
+5
-5
bench/good/phpparser.opp.exp
bench/good/phpparser.opp.exp
+76
-76
bench/good/pippijn.opp.exp
bench/good/pippijn.opp.exp
+209
-209
bench/good/pre_parser.opp.exp
bench/good/pre_parser.opp.exp
+138
-138
bench/good/prec_inline.opp.exp
bench/good/prec_inline.opp.exp
+2
-2
bench/good/private-and-public-1.opp.exp
bench/good/private-and-public-1.opp.exp
+4
-4
bench/good/promelaparser.opp.exp
bench/good/promelaparser.opp.exp
+9
-9
bench/good/promelaparser_withexps.opp.exp
bench/good/promelaparser_withexps.opp.exp
+16
-16
bench/good/prooflang.opp.exp
bench/good/prooflang.opp.exp
+22
-22
bench/good/public-1.opp.exp
bench/good/public-1.opp.exp
+1
-1
bench/good/public-inline-1.opp.exp
bench/good/public-inline-1.opp.exp
+1
-1
bench/good/pxp-m2parsergen.opp.exp
bench/good/pxp-m2parsergen.opp.exp
+17
-17
bench/good/rdf_sparql_parser.opp.exp
bench/good/rdf_sparql_parser.opp.exp
+159
-159
bench/good/ruby18_parser.opp.exp
bench/good/ruby18_parser.opp.exp
+131
-131
bench/good/sage.opp.exp
bench/good/sage.opp.exp
+19
-19
bench/good/scilabParser.opp.exp
bench/good/scilabParser.opp.exp
+68
-68
bench/good/self.opp.exp
bench/good/self.opp.exp
+1
-1
bench/good/simnml.opp.exp
bench/good/simnml.opp.exp
+77
-77
bench/good/simple-if-conflict.opp.exp
bench/good/simple-if-conflict.opp.exp
+1
-1
bench/good/spike.opp.exp
bench/good/spike.opp.exp
+123
-123
bench/good/subiso.opp.exp
bench/good/subiso.opp.exp
+4
-4
bench/good/subtle-conflict-pager.opp.exp
bench/good/subtle-conflict-pager.opp.exp
+5
-5
bench/good/symbolstartofs.opp.exp
bench/good/symbolstartofs.opp.exp
+1
-1
bench/good/symbolstartpos.opp.exp
bench/good/symbolstartpos.opp.exp
+6
-6
bench/good/sysver.opp.exp
bench/good/sysver.opp.exp
+472
-472
bench/good/talparser.opp.exp
bench/good/talparser.opp.exp
+94
-94
bench/good/tony-rc_parse.opp.exp
bench/good/tony-rc_parse.opp.exp
+5
-5
bench/good/tony-xmlparse.opp.exp
bench/good/tony-xmlparse.opp.exp
+30
-30
bench/good/toy.opp.exp
bench/good/toy.opp.exp
+19
-19
bench/good/tptp2cime.opp.exp
bench/good/tptp2cime.opp.exp
+13
-13
bench/good/typage.opp.exp
bench/good/typage.opp.exp
+6
-6
bench/good/typed-freshml.opp.exp
bench/good/typed-freshml.opp.exp
+42
-42
bench/good/unigram.opp.exp
bench/good/unigram.opp.exp
+62
-62
bench/good/unreachable-symbol.opp.exp
bench/good/unreachable-symbol.opp.exp
+1
-1
bench/good/unused-pseudo-token.opp.exp
bench/good/unused-pseudo-token.opp.exp
+1
-1
bench/good/unused-token1.opp.exp
bench/good/unused-token1.opp.exp
+1
-1
bench/good/unused-value.opp.exp
bench/good/unused-value.opp.exp
+1
-1
bench/good/uppercase.opp.exp
bench/good/uppercase.opp.exp
+3
-3
bench/good/useless-priorities.opp.exp
bench/good/useless-priorities.opp.exp
+3
-3
bench/good/useless-pseudo-token.opp.exp
bench/good/useless-pseudo-token.opp.exp
+1
-1
bench/good/verilog.opp.exp
bench/good/verilog.opp.exp
+223
-223
bench/good/wallace.opp.exp
bench/good/wallace.opp.exp
+35
-35
bench/good/why-clparser.opp.exp
bench/good/why-clparser.opp.exp
+35
-35
bench/good/why-cparser.opp.exp
bench/good/why-cparser.opp.exp
+76
-76
bench/good/xpath_parser.opp.exp
bench/good/xpath_parser.opp.exp
+21
-21
bench/good/yann.opp.exp
bench/good/yann.opp.exp
+6
-6
bench/good/yaparser.opp.exp
bench/good/yaparser.opp.exp
+24
-24
bench/good/zenon.opp.exp
bench/good/zenon.opp.exp
+27
-27
bench/good/zyvaall.opp.exp
bench/good/zyvaall.opp.exp
+20
-20
bench/good/zyvaflo.opp.exp
bench/good/zyvaflo.opp.exp
+20
-20
No files found.
bench/good/JSParse.opp.exp
View file @
47bb88b9
This diff is collapsed.
Click to expand it.
bench/good/K3Parser.opp.exp
View file @
47bb88b9
...
@@ -254,13 +254,13 @@ Warning: symbol integer_list is unreachable from any of the start symbol(s).
...
@@ -254,13 +254,13 @@ Warning: symbol integer_list is unreachable from any of the start symbol(s).
%%
%%
program:
program:
_1 = declaration
_1 = declaration
{ ( if !numerrors>=1 then raise Exit else [_1, []] )}
{ ( if !numerrors>=1 then raise Exit else [_1, []] )}
| _1 = declaration _2 = program
| _1 = declaration _2 = program
{ ( (_1, []) :: _2 )}
{ ( (_1, []) :: _2 )}
declaration:
declaration:
_1 = DECLARE _2 = IDENTIFIER _3 = COLON _4 = type_expr
_1 = DECLARE _2 = IDENTIFIER _3 = COLON _4 = type_expr
{ ( Global(_2, _4, None) )}
{ ( Global(_2, _4, None) )}
| _1 = DECLARE _2 = IDENTIFIER _3 = COLON _4 = type_expr _5 = GETS _6 = anno_expr
| _1 = DECLARE _2 = IDENTIFIER _3 = COLON _4 = type_expr _5 = GETS _6 = anno_expr
{ ( Global(_2, _4, Some _6) )}
{ ( Global(_2, _4, Some _6) )}
...
@@ -294,13 +294,13 @@ _1 = DECLARE _2 = IDENTIFIER _3 = COLON _4 = type_expr
...
@@ -294,13 +294,13 @@ _1 = DECLARE _2 = IDENTIFIER _3 = COLON _4 = type_expr
{ ( id_error() )}
{ ( id_error() )}
flow_program:
flow_program:
_1 = flow_statement
_1 = flow_statement
{ ( [_1, []] )}
{ ( [_1, []] )}
| _1 = flow_statement _2 = flow_program
| _1 = flow_statement _2 = flow_program
{ ( (_1,[]) :: _2 )}
{ ( (_1,[]) :: _2 )}
flow_statement:
flow_statement:
_1 = resource
_1 = resource
{ ( _1 )}
{ ( _1 )}
| _1 = instruction
| _1 = instruction
{ ( Instruction(_1) )}
{ ( Instruction(_1) )}
...
@@ -333,11 +333,11 @@ _1 = resource
...
@@ -333,11 +333,11 @@ _1 = resource
{ ( print_error("Invalid bind source") )}
{ ( print_error("Invalid bind source") )}
instruction:
instruction:
_1 = CONSUME _2 = IDENTIFIER
_1 = CONSUME _2 = IDENTIFIER
{ ( Consume(_2) )}
{ ( Consume(_2) )}
resource:
resource:
_1 = SOURCE _2 = IDENTIFIER _3 = COLON _4 = type_expr _5 = GETS _6 = handle
_1 = SOURCE _2 = IDENTIFIER _3 = COLON _4 = type_expr _5 = GETS _6 = handle
{ (
{ (
let channel_type, channel_format = _6
let channel_type, channel_format = _6
in Source(Resource(_2, Handle(_4, channel_type, channel_format)))
in Source(Resource(_2, Handle(_4, channel_type, channel_format)))
...
@@ -361,19 +361,19 @@ _1 = SOURCE _2 = IDENTIFIER _3 = COLON _4 = type_expr _5 = GETS _6 = handle
...
@@ -361,19 +361,19 @@ _1 = SOURCE _2 = IDENTIFIER _3 = COLON _4 = type_expr _5 = GETS _6 = handle
)}
)}
handle:
handle:
_1 = FILE _2 = LPAREN _3 = STRING _4 = COMMA _5 = IDENTIFIER _6 = RPAREN
_1 = FILE _2 = LPAREN _3 = STRING _4 = COMMA _5 = IDENTIFIER _6 = RPAREN
{ ( File(_3), parse_format _5 )}
{ ( File(_3), parse_format _5 )}
| _1 = SOCKET _2 = LPAREN _3 = STRING _4 = COMMA _5 = INTEGER _6 = COMMA _7 = IDENTIFIER _8 = RPAREN
| _1 = SOCKET _2 = LPAREN _3 = STRING _4 = COMMA _5 = INTEGER _6 = COMMA _7 = IDENTIFIER _8 = RPAREN
{ ( Network(_3, _5), parse_format _7 )}
{ ( Network(_3, _5), parse_format _7 )}
stream:
stream:
_1 = STREAM _2 = LPAREN _3 = anno_expr _4 = RPAREN
_1 = STREAM _2 = LPAREN _3 = anno_expr _4 = RPAREN
{ ( ConstStream(_3) )}
{ ( ConstStream(_3) )}
| _1 = RANDOM _2 = LPAREN _3 = INTEGER _4 = RPAREN
| _1 = RANDOM _2 = LPAREN _3 = INTEGER _4 = RPAREN
{ ( RandomStream(_3) )}
{ ( RandomStream(_3) )}
resource_pattern:
resource_pattern:
_1 = IDENTIFIER
_1 = IDENTIFIER
{ ( Terminal(_1) )}
{ ( Terminal(_1) )}
| _1 = LPAREN _2 = resource_pattern _3 = RPAREN
| _1 = LPAREN _2 = resource_pattern _3 = RPAREN
{ ( _2 )}
{ ( _2 )}
...
@@ -393,17 +393,17 @@ _1 = IDENTIFIER
...
@@ -393,17 +393,17 @@ _1 = IDENTIFIER
)}
)}
annotations:
annotations:
_1 = annotation
_1 = annotation
{ ( [_1] )}
{ ( [_1] )}
| _1 = annotation _2 = SEMICOLON _3 = annotations
| _1 = annotation _2 = SEMICOLON _3 = annotations
{ ( _1::_3 )}
{ ( _1::_3 )}
annotation:
annotation:
_1 = identifier_stream
_1 = identifier_stream
{ ( Property(String.concat " " _1) )}
{ ( Property(String.concat " " _1) )}
type_expr:
type_expr:
_1 = type_expr _2 = RARROW _3 = fn_type_expr_list %prec UMINUS
_1 = type_expr _2 = RARROW _3 = fn_type_expr_list %prec UMINUS
{ ( let is, o = list_split (-1) (_1::_3) in
{ ( let is, o = list_split (-1) (_1::_3) in
match (hd o).typ with
match (hd o).typ with
| TFunction(is', o') -> wrap_tfunc (is@is') o'
| TFunction(is', o') -> wrap_tfunc (is@is') o'
...
@@ -425,29 +425,29 @@ _1 = type_expr _2 = RARROW _3 = fn_type_expr_list %prec UMINUS
...
@@ -425,29 +425,29 @@ _1 = type_expr _2 = RARROW _3 = fn_type_expr_list %prec UMINUS
{ ( let c, anno = _1 in { (canonical c) with anno} )}
{ ( let c, anno = _1 in { (canonical c) with anno} )}
fn_type_expr_list:
fn_type_expr_list:
_1 = type_expr _2 = RARROW _3 = fn_type_expr_list
_1 = type_expr _2 = RARROW _3 = fn_type_expr_list
{ ( _1 :: _3 )}
{ ( _1 :: _3 )}
| _1 = type_expr
| _1 = type_expr
{ ( [_1] )}
{ ( [_1] )}
type_expr_tuple:
type_expr_tuple:
_1 = type_expr_list
_1 = type_expr_list
{ ( wrap_ttuple _1 )}
{ ( wrap_ttuple _1 )}
type_expr_list:
type_expr_list:
_1 = type_expr
_1 = type_expr
{ ( [_1] )}
{ ( [_1] )}
| _1 = type_expr _2 = COMMA _3 = type_expr_list
| _1 = type_expr _2 = COMMA _3 = type_expr_list
{ ( _1 :: _3 )}
{ ( _1 :: _3 )}
annotated_collection_type:
annotated_collection_type:
_1 = collection_type
_1 = collection_type
{ ( _1, [] )}
{ ( _1, [] )}
| _1 = collection_type _2 = ANNOTATE _3 = LBRACE _4 = annotations _5 = RBRACE
| _1 = collection_type _2 = ANNOTATE _3 = LBRACE _4 = annotations _5 = RBRACE
{ ( _1, _4 )}
{ ( _1, _4 )}
collection_type:
collection_type:
_1 = LBRACE _2 = type_expr _3 = RBRACE
_1 = LBRACE _2 = type_expr _3 = RBRACE
{ ( TCollection(TSet, _2) )}
{ ( TCollection(TSet, _2) )}
| _1 = LBRACE _2 = type_expr_tuple _3 = RBRACE
| _1 = LBRACE _2 = type_expr_tuple _3 = RBRACE
{ ( TCollection(TSet, _2) )}
{ ( TCollection(TSet, _2) )}
...
@@ -485,25 +485,25 @@ _1 = LBRACE _2 = type_expr _3 = RBRACE
...
@@ -485,25 +485,25 @@ _1 = LBRACE _2 = type_expr _3 = RBRACE
{ ( TCollection(TSortedSet, _2) )}
{ ( TCollection(TSortedSet, _2) )}
int_list_list:
int_list_list:
_1 = int_list
_1 = int_list
{ ([_1])}
{ ([_1])}
| _1 = int_list _2 = SEMICOLON _3 = int_list_list
| _1 = int_list _2 = SEMICOLON _3 = int_list_list
{ ( _1::_3 )}
{ ( _1::_3 )}
int_list:
int_list:
_1 = INTEGER
_1 = INTEGER
{ ([_1])}
{ ([_1])}
| _1 = INTEGER _2 = COMMA _3 = int_list
| _1 = INTEGER _2 = COMMA _3 = int_list
{ ( _1::_3 )}
{ ( _1::_3 )}
anno_expr:
anno_expr:
_1 = expr _2 = ANNOTATE _3 = LBRACE _4 = annotations _5 = RBRACE
_1 = expr _2 = ANNOTATE _3 = LBRACE _4 = annotations _5 = RBRACE
{ ( K3Util.add_annos _4 _1 )}
{ ( K3Util.add_annos _4 _1 )}
| _1 = expr
| _1 = expr
{ ( _1 )}
{ ( _1 )}
expr:
expr:
_1 = LPAREN _2 = tuple _3 = RPAREN
_1 = LPAREN _2 = tuple _3 = RPAREN
{ ( _2 )}
{ ( _2 )}
| _1 = block
| _1 = block
{ ( _1 )}
{ ( _1 )}
...
@@ -571,47 +571,47 @@ _1 = LPAREN _2 = tuple _3 = RPAREN
...
@@ -571,47 +571,47 @@ _1 = LPAREN _2 = tuple _3 = RPAREN
{ ( print_error("Function application error") )}
{ ( print_error("Function application error") )}
id_unknown:
id_unknown:
_1 = UNKNOWN
_1 = UNKNOWN
{ ( "_" )}
{ ( "_" )}
| _1 = IDENTIFIER
| _1 = IDENTIFIER
{ ( _1 )}
{ ( _1 )}
id_list:
id_list:
_1 = id_unknown
_1 = id_unknown
{ ( [_1] )}
{ ( [_1] )}
| _1 = id_unknown _2 = COMMA _3 = id_list
| _1 = id_unknown _2 = COMMA _3 = id_list
{ ( _1 :: _3 )}
{ ( _1 :: _3 )}
expr_list:
expr_list:
_1 = anno_expr
_1 = anno_expr
{ ( [_1] )}
{ ( [_1] )}
| _1 = anno_expr _2 = COMMA _3 = expr_list
| _1 = anno_expr _2 = COMMA _3 = expr_list
{ ( _1 :: _3 )}
{ ( _1 :: _3 )}
expr_seq:
expr_seq:
_1 = tuple
_1 = tuple
{ ( [_1] )}
{ ( [_1] )}
| _1 = tuple _2 = SEMICOLON _3 = expr_seq
| _1 = tuple _2 = SEMICOLON _3 = expr_seq
{ ( _1 :: _3 )}
{ ( _1 :: _3 )}
tuple:
tuple:
_1 = expr_list
_1 = expr_list
{ ( if List.length _1 = 1 then List.hd _1 else mkexpr Tuple _1 )}
{ ( if List.length _1 = 1 then List.hd _1 else mkexpr Tuple _1 )}
value_typed_identifier:
value_typed_identifier:
_1 = IDENTIFIER _2 = COLON _3 = type_expr
_1 = IDENTIFIER _2 = COLON _3 = type_expr
{ ( (_1, _3) )}
{ ( (_1, _3) )}
| _1 = IDENTIFIER _2 = COLON _3 = error
| _1 = IDENTIFIER _2 = COLON _3 = error
{ ( type_error() )}
{ ( type_error() )}
value_typed_identifier_list:
value_typed_identifier_list:
_1 = value_typed_identifier
_1 = value_typed_identifier
{ ( [_1] )}
{ ( [_1] )}
| _1 = value_typed_identifier _2 = COMMA _3 = value_typed_identifier_list
| _1 = value_typed_identifier _2 = COMMA _3 = value_typed_identifier_list
{ ( _1 :: _3 )}
{ ( _1 :: _3 )}
arg:
arg:
_1 = LPAREN _2 = arg_list _3 = RPAREN
_1 = LPAREN _2 = arg_list _3 = RPAREN
{ ( ATuple(_2) )}
{ ( ATuple(_2) )}
| _1 = UNKNOWN
| _1 = UNKNOWN
{ ( AIgnored )}
{ ( AIgnored )}
...
@@ -619,13 +619,13 @@ _1 = LPAREN _2 = arg_list _3 = RPAREN
...
@@ -619,13 +619,13 @@ _1 = LPAREN _2 = arg_list _3 = RPAREN
{ ( AVar(fst _1, snd _1) )}
{ ( AVar(fst _1, snd _1) )}
arg_list:
arg_list:
_1 = arg
_1 = arg
{ ( [(_1)] )}
{ ( [(_1)] )}
| _1 = arg _2 = COMMA _3 = arg_list
| _1 = arg _2 = COMMA _3 = arg_list
{ ( _1 :: _3 )}
{ ( _1 :: _3 )}
constant:
constant:
_1 = UNKNOWN
_1 = UNKNOWN
{ ( CUnknown )}
{ ( CUnknown )}
| _1 = UNIT
| _1 = UNIT
{ ( CUnit )}
{ ( CUnit )}
...
@@ -641,7 +641,7 @@ _1 = UNKNOWN
...
@@ -641,7 +641,7 @@ _1 = UNKNOWN
{ ( _1 )}
{ ( _1 )}
range:
range:
_1 = LBRACE _2 = anno_expr _3 = COLON _4 = COLON _5 = anno_expr _6 = COLON _7 = COLON _8 = anno_expr _9 = RBRACE
_1 = LBRACE _2 = anno_expr _3 = COLON _4 = COLON _5 = anno_expr _6 = COLON _7 = COLON _8 = anno_expr _9 = RBRACE
{ ( mkexpr (Range(TSet)) [_2; _5; _8] )}
{ ( mkexpr (Range(TSet)) [_2; _5; _8] )}
| _1 = LBRACEBAR _2 = anno_expr _3 = COLON _4 = COLON _5 = anno_expr _6 = COLON _7 = COLON _8 = anno_expr _9 = RBRACEBAR
| _1 = LBRACEBAR _2 = anno_expr _3 = COLON _4 = COLON _5 = anno_expr _6 = COLON _7 = COLON _8 = anno_expr _9 = RBRACEBAR
{ ( mkexpr (Range(TBag)) [_2; _5; _8] )}
{ ( mkexpr (Range(TBag)) [_2; _5; _8] )}
...
@@ -651,7 +651,7 @@ _1 = LBRACE _2 = anno_expr _3 = COLON _4 = COLON _5 = anno_expr _6 = COLON _7 =
...
@@ -651,7 +651,7 @@ _1 = LBRACE _2 = anno_expr _3 = COLON _4 = COLON _5 = anno_expr _6 = COLON _7 =
{ ( mkexpr (Range(TVector)) [_2; _5; _8] )}
{ ( mkexpr (Range(TVector)) [_2; _5; _8] )}
collection:
collection:
_1 = LBRACE _2 = RBRACE _3 = COLON _4 = type_expr
_1 = LBRACE _2 = RBRACE _3 = COLON _4 = type_expr
{ ( build_collection [] _4 )}
{ ( build_collection [] _4 )}
| _1 = LBRACEBAR _2 = RBRACEBAR _3 = COLON _4 = type_expr
| _1 = LBRACEBAR _2 = RBRACEBAR _3 = COLON _4 = type_expr
{ ( build_collection [] _4 )}
{ ( build_collection [] _4 )}
...
@@ -699,11 +699,11 @@ _1 = LBRACE _2 = RBRACE _3 = COLON _4 = type_expr
...
@@ -699,11 +699,11 @@ _1 = LBRACE _2 = RBRACE _3 = COLON _4 = type_expr
{ ( build_collection _2 (mk_unknown_collection (TVMap None)) )}
{ ( build_collection _2 (mk_unknown_collection (TVMap None)) )}
variable:
variable:
_1 = IDENTIFIER
_1 = IDENTIFIER
{ ( _1 )}
{ ( _1 )}
address:
address:
_1 = IDENTIFIER _2 = COLON _3 = INTEGER
_1 = IDENTIFIER _2 = COLON _3 = INTEGER
{ ( CAddress(_1,_3) )}
{ ( CAddress(_1,_3) )}
| _1 = IP _2 = COLON _3 = INTEGER
| _1 = IP _2 = COLON _3 = INTEGER
{ (
{ (
...
@@ -714,7 +714,7 @@ _1 = IDENTIFIER _2 = COLON _3 = INTEGER
...
@@ -714,7 +714,7 @@ _1 = IDENTIFIER _2 = COLON _3 = INTEGER
)}
)}
arithmetic:
arithmetic:
_1 = NEG _2 = anno_expr
_1 = NEG _2 = anno_expr
{ ( mkexpr Neg [_2] )}
{ ( mkexpr Neg [_2] )}
| _1 = anno_expr _2 = PLUS _3 = anno_expr
| _1 = anno_expr _2 = PLUS _3 = anno_expr
{ ( mkexpr Add [_1; _3] )}
{ ( mkexpr Add [_1; _3] )}
...
@@ -738,7 +738,7 @@ _1 = NEG _2 = anno_expr
...
@@ -738,7 +738,7 @@ _1 = NEG _2 = anno_expr
{ ( arith_error 2 )}
{ ( arith_error 2 )}
predicate:
predicate:
_1 = NOT _2 = anno_expr
_1 = NOT _2 = anno_expr
{ ( mkexpr Neg [_2] )}
{ ( mkexpr Neg [_2] )}
| _1 = anno_expr _2 = AND _3 = anno_expr
| _1 = anno_expr _2 = AND _3 = anno_expr
{ ( mkexpr Mult [_1; _3] )}
{ ( mkexpr Mult [_1; _3] )}
...
@@ -770,7 +770,7 @@ _1 = NOT _2 = anno_expr
...
@@ -770,7 +770,7 @@ _1 = NOT _2 = anno_expr
{ ( comp_error() )}
{ ( comp_error() )}
conditional:
conditional:
_1 = IF _2 = anno_expr _3 = THEN _4 = anno_expr _5 = ELSE _6 = anno_expr
_1 = IF _2 = anno_expr _3 = THEN _4 = anno_expr _5 = ELSE _6 = anno_expr
{ ( mkexpr IfThenElse [_2; _4; _6] )}
{ ( mkexpr IfThenElse [_2; _4; _6] )}
| _1 = IF _2 = anno_expr _3 = THEN _4 = anno_expr _5 = ELSE _6 = error
| _1 = IF _2 = anno_expr _3 = THEN _4 = anno_expr _5 = ELSE _6 = error
{ ( cond_error "else branch" )}
{ ( cond_error "else branch" )}
...
@@ -780,7 +780,7 @@ _1 = IF _2 = anno_expr _3 = THEN _4 = anno_expr _5 = ELSE _6 = anno_expr
...
@@ -780,7 +780,7 @@ _1 = IF _2 = anno_expr _3 = THEN _4 = anno_expr _5 = ELSE _6 = anno_expr
{ ( cond_error "predicate" )}
{ ( cond_error "predicate" )}
case:
case:
_1 = CASE _2 = anno_expr _3 = OF _4 = LBRACE _5 = JUST _6 = id_unknown _7 = RARROW _8 = anno_expr _9 = RBRACE _10 = LBRACE _11 = NOTHING _12 = RARROW _13 = anno_expr _14 = RBRACE
_1 = CASE _2 = anno_expr _3 = OF _4 = LBRACE _5 = JUST _6 = id_unknown _7 = RARROW _8 = anno_expr _9 = RBRACE _10 = LBRACE _11 = NOTHING _12 = RARROW _13 = anno_expr _14 = RBRACE
{ ( mk_case_sn _2 _6 _8 _13 )}
{ ( mk_case_sn _2 _6 _8 _13 )}
| _1 = CASE _2 = anno_expr _3 = OF _4 = LBRACE _5 = NOTHING _6 = RARROW _7 = anno_expr _8 = RBRACE _9 = LBRACE _10 = JUST _11 = id_unknown _12 = RARROW _13 = anno_expr _14 = RBRACE
| _1 = CASE _2 = anno_expr _3 = OF _4 = LBRACE _5 = NOTHING _6 = RARROW _7 = anno_expr _8 = RBRACE _9 = LBRACE _10 = JUST _11 = id_unknown _12 = RARROW _13 = anno_expr _14 = RBRACE
{ ( mk_case_sn _2 _11 _7 _13 )}
{ ( mk_case_sn _2 _11 _7 _13 )}
...
@@ -794,7 +794,7 @@ _1 = CASE _2 = anno_expr _3 = OF _4 = LBRACE _5 = JUST _6 = id_unknown _7 = RARR
...
@@ -794,7 +794,7 @@ _1 = CASE _2 = anno_expr _3 = OF _4 = LBRACE _5 = JUST _6 = id_unknown _7 = RARR
{ ( case_error "predicate" )}
{ ( case_error "predicate" )}
letin:
letin:
_1 = LET _2 = LPAREN _3 = id_list _4 = RPAREN _5 = GETS _6 = anno_expr _7 = IN _8 = anno_expr
_1 = LET _2 = LPAREN _3 = id_list _4 = RPAREN _5 = GETS _6 = anno_expr _7 = IN _8 = anno_expr
{ ( mk_let _3 _6 _8 )}
{ ( mk_let _3 _6 _8 )}
| _1 = LET _2 = IDENTIFIER _3 = GETS _4 = anno_expr _5 = IN _6 = anno_expr
| _1 = LET _2 = IDENTIFIER _3 = GETS _4 = anno_expr _5 = IN _6 = anno_expr
{ ( mk_let [_2] _4 _6 )}
{ ( mk_let [_2] _4 _6 )}
...
@@ -810,7 +810,7 @@ _1 = LET _2 = LPAREN _3 = id_list _4 = RPAREN _5 = GETS _6 = anno_expr _7 = IN _
...
@@ -810,7 +810,7 @@ _1 = LET _2 = LPAREN _3 = id_list _4 = RPAREN _5 = GETS _6 = anno_expr _7 = IN _
{ ( print_error "Let binding error" )}
{ ( print_error "Let binding error" )}
bind:
bind:
_1 = BIND _2 = anno_expr _3 = AS _4 = IDENTIFIER _5 = IN _6 = anno_expr
_1 = BIND _2 = anno_expr _3 = AS _4 = IDENTIFIER _5 = IN _6 = anno_expr
{ ( mk_bind _2 _4 _6 )}
{ ( mk_bind _2 _4 _6 )}
| _1 = BIND _2 = anno_expr _3 = AS _4 = IDENTIFIER _5 = IN _6 = error
| _1 = BIND _2 = anno_expr _3 = AS _4 = IDENTIFIER _5 = IN _6 = error
{ ( bind_error "expr" )}
{ ( bind_error "expr" )}
...
@@ -824,7 +824,7 @@ _1 = BIND _2 = anno_expr _3 = AS _4 = IDENTIFIER _5 = IN _6 = anno_expr
...
@@ -824,7 +824,7 @@ _1 = BIND _2 = anno_expr _3 = AS _4 = IDENTIFIER _5 = IN _6 = anno_expr
{ ( bind_error "predicate" )}
{ ( bind_error "predicate" )}
lambda:
lambda:
_1 = BACKSLASH _2 = arg _3 = RARROW _4 = anno_expr
_1 = BACKSLASH _2 = arg _3 = RARROW _4 = anno_expr
{ ( mkexpr (Lambda(_2)) [_4] )}
{ ( mkexpr (Lambda(_2)) [_4] )}
| _1 = BACKSLASH _2 = arg _3 = RARROW _4 = error
| _1 = BACKSLASH _2 = arg _3 = RARROW _4 = error
{ ( lambda_error "body" )}
{ ( lambda_error "body" )}
...
@@ -832,11 +832,11 @@ _1 = BACKSLASH _2 = arg _3 = RARROW _4 = anno_expr
...
@@ -832,11 +832,11 @@ _1 = BACKSLASH _2 = arg _3 = RARROW _4 = anno_expr
{ ( lambda_error "argument" )}
{ ( lambda_error "argument" )}
tuple_index:
tuple_index:
_1 = anno_expr _2 = PERIOD _3 = LBRACKET _4 = INTEGER _5 = RBRACKET
_1 = anno_expr _2 = PERIOD _3 = LBRACKET _4 = INTEGER _5 = RBRACKET
{ ( mkexpr (Subscript _4) [_1] )}
{ ( mkexpr (Subscript _4) [_1] )}
access:
access:
_1 = anno_expr _2 = LBRACKET _3 = tuple _4 = RBRACKET
_1 = anno_expr _2 = LBRACKET _3 = tuple _4 = RBRACKET
{ ( mkexpr Slice [_1; _3] )}
{ ( mkexpr Slice [_1; _3] )}
| _1 = anno_expr _2 = LBRACKETLT _3 = tuple _4 = RBRACKET
| _1 = anno_expr _2 = LBRACKETLT _3 = tuple _4 = RBRACKET
{ ( mkexpr SliceFrontier [_1; _3] )}
{ ( mkexpr SliceFrontier [_1; _3] )}
...
@@ -852,7 +852,7 @@ _1 = anno_expr _2 = LBRACKET _3 = tuple _4 = RBRACKET
...
@@ -852,7 +852,7 @@ _1 = anno_expr _2 = LBRACKET _3 = tuple _4 = RBRACKET
{ ( mkexpr MinWith [_3; _5; _7] )}
{ ( mkexpr MinWith [_3; _5; _7] )}
mutation:
mutation:
_1 = INSERT _2 = LPAREN _3 = variable _4 = COMMA _5 = tuple _6 = RPAREN
_1 = INSERT _2 = LPAREN _3 = variable _4 = COMMA _5 = tuple _6 = RPAREN
{ ( mkexpr Insert [mk_var _3; _5] )}
{ ( mkexpr Insert [mk_var _3; _5] )}
| _1 = UPSERT_WITH _2 = LPAREN _3 = variable _4 = COMMA _5 = LPAREN _6 = tuple _7 = RPAREN _8 = COMMA _9 = anno_expr _10 = COMMA _11 = anno_expr _12 = RPAREN
| _1 = UPSERT_WITH _2 = LPAREN _3 = variable _4 = COMMA _5 = LPAREN _6 = tuple _7 = RPAREN _8 = COMMA _9 = anno_expr _10 = COMMA _11 = anno_expr _12 = RPAREN
{ ( mkexpr UpsertWith [mk_var _3; _6; _9; _11] )}
{ ( mkexpr UpsertWith [mk_var _3; _6; _9; _11] )}
...
@@ -892,7 +892,7 @@ _1 = INSERT _2 = LPAREN _3 = variable _4 = COMMA _5 = tuple _6 = RPAREN
...
@@ -892,7 +892,7 @@ _1 = INSERT _2 = LPAREN _3 = variable _4 = COMMA _5 = tuple _6 = RPAREN
{ ( assign_error "reference" )}
{ ( assign_error "reference" )}
transformers:
transformers:
_1 = anno_expr _2 = CONCAT _3 = anno_expr
_1 = anno_expr _2 = CONCAT _3 = anno_expr
{ ( mkexpr Combine [_1; _3] )}
{ ( mkexpr Combine [_1; _3] )}
| _1 = MAP _2 = LPAREN _3 = anno_expr _4 = COMMA _5 = anno_expr _6 = RPAREN
| _1 = MAP _2 = LPAREN _3 = anno_expr _4 = COMMA _5 = anno_expr _6 = RPAREN
{ ( mkexpr Map [_3; _5] )}
{ ( mkexpr Map [_3; _5] )}
...
@@ -958,17 +958,17 @@ _1 = anno_expr _2 = CONCAT _3 = anno_expr
...
@@ -958,17 +958,17 @@ _1 = anno_expr _2 = CONCAT _3 = anno_expr
{ ( print_error("Invalid groupby syntax") )}
{ ( print_error("Invalid groupby syntax") )}
block:
block:
_1 = DO _2 = LBRACE _3 = expr_seq _4 = RBRACE
_1 = DO _2 = LBRACE _3 = expr_seq _4 = RBRACE
{ ( mkexpr Block _3 )}
{ ( mkexpr Block _3 )}
identifier_stream:
identifier_stream:
_1 = IDENTIFIER
_1 = IDENTIFIER
{ ([_1])}
{ ([_1])}
| _1 = IDENTIFIER _2 = identifier_stream
| _1 = IDENTIFIER _2 = identifier_stream
{ ( _1::_2 )}
{ ( _1::_2 )}
program_test:
program_test:
_1 = program _2 = EXPECTED _3 = named_expr_list
_1 = program _2 = EXPECTED _3 = named_expr_list
{ ( ProgTest (_1, _3) )}
{ ( ProgTest (_1, _3) )}
| _1 = program _2 = NETWORK _3 = EXPECTED _4 = named_expr_list