diff --git a/src/GrammarParser.y b/src/GrammarParser.y index da1bccba..3cff5643 100644 --- a/src/GrammarParser.y +++ b/src/GrammarParser.y @@ -145,6 +145,8 @@ END 0 "end of file" %type InvariantDefinition %type ImportDefinition %type StructureDefinition +%type StructureDefinitionElement +%type StructureDefinitionList %type FeatureDefinition %type FeatureDeclarationOrDefinition %type FeatureDeclarationsAndDefinitions @@ -551,6 +553,10 @@ InvariantDefinition } ; +// +// +// StructureDefinition +// ImportDefinition : IMPORT IdentifierPath @@ -565,7 +571,7 @@ ImportDefinition StructureDefinition -: STRUCTURE Identifier EQUAL LCURPAREN FunctionDefinitions RCURPAREN +: STRUCTURE Identifier EQUAL LCURPAREN StructureDefinitionList RCURPAREN { // TODO: FIXME: @ppaulweber: handle AST keyword tokens $1, $3, $4, and $6 // $$ = Ast::make< StructureDefinition >( @$, $2, $5 ); @@ -573,6 +579,40 @@ StructureDefinition ; +StructureDefinitionElement +: LSQPAREN Attributes RSQPAREN FunctionDefinition + { + auto definition = $4; + definition->setAttributes( $2 ); + $$ = definition; + } +| FunctionDefinition + { + $$ = $1; + } +; + + +StructureDefinitionList +: StructureDefinitionList StructureDefinitionElement + { + auto functions = $1; + functions->add( $2 ); + $$ = functions; + } +| StructureDefinitionElement + { + auto functions = Ast::make< FunctionDefinitions >( @$ ); + functions->add( $1 ); + $$ = functions; + } +; + +// +// +// FeatureDefinition +// + FeatureDefinition : FEATURE Identifier EQUAL LCURPAREN FeatureDeclarationsAndDefinitions RCURPAREN { @@ -613,6 +653,10 @@ FeatureDeclarationsAndDefinitions } ; +// +// +// ImplementationDefinition +// ImplementationDefinition : IMPLEMENTS IdentifierPath FOR Type EQUAL LCURPAREN ImplementationDefinitionDefinitions RCURPAREN @@ -655,6 +699,10 @@ ImplementationDefinitionDefinitions } ; +// +// +// DeclarationDefinition +// DeclarationDefinition : DERIVED Identifier COLON MaybeFunctionParameters MAPS Type @@ -673,7 +721,7 @@ DeclarationDefinition } ; - +// // // Rules // diff --git a/src/various/Grammar.org b/src/various/Grammar.org index 0608bafa..c6a91df6 100644 --- a/src/various/Grammar.org +++ b/src/various/Grammar.org @@ -105,16 +105,6 @@ RuleDefinition ::= "rule" Identifier "=" Rule #+html: {{page>.:grammar:RuleDefinition&noheader&nofooter}} -** FunctionDefinitions - -#+begin_src -FunctionDefinitions ::= FunctionDefinitions FunctionDefinition - | FunctionDefinition -#+end_src - -#+html: {{page>.:grammar:FunctionDefinitions&noheader&nofooter}} - - ** FunctionDefinition #+begin_src @@ -185,12 +175,32 @@ ImportDefinition ::= "import" IdentifierPath ** StructureDefinition #+begin_src -StructureDefinition ::= "structure" Identifier "=" "{" FunctionDefinitions "}" +StructureDefinition ::= "structure" Identifier "=" "{" StructureDefinitionList "}" #+end_src #+html: {{page>.:grammar:StructureDefinition&noheader&nofooter}} +** StructureDefinitionElement + +#+begin_src +StructureDefinitionElement ::= "[" Attributes "]" FunctionDefinition + | FunctionDefinition +#+end_src + +#+html: {{page>.:grammar:StructureDefinitionElement&noheader&nofooter}} + + +** StructureDefinitionList + +#+begin_src +StructureDefinitionList ::= StructureDefinitionList StructureDefinitionElement + | StructureDefinitionElement +#+end_src + +#+html: {{page>.:grammar:StructureDefinitionList&noheader&nofooter}} + + ** FeatureDefinition #+begin_src diff --git a/src/various/GrammarParser.cpp b/src/various/GrammarParser.cpp index 4421ffe5..dc6711af 100644 --- a/src/various/GrammarParser.cpp +++ b/src/various/GrammarParser.cpp @@ -437,12 +437,13 @@ namespace libcasm_fe { break; case symbol_kind::S_FunctionDefinition: // FunctionDefinition + case symbol_kind::S_StructureDefinitionElement: // StructureDefinitionElement case symbol_kind::S_AttributedLocalFunctionDefinition: // AttributedLocalFunctionDefinition case symbol_kind::S_LocalFunctionDefinition: // LocalFunctionDefinition value.YY_MOVE_OR_COPY< FunctionDefinition::Ptr > (YY_MOVE (that.value)); break; - case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions + case symbol_kind::S_StructureDefinitionList: // StructureDefinitionList case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.YY_MOVE_OR_COPY< FunctionDefinitions::Ptr > (YY_MOVE (that.value)); break; @@ -894,12 +895,13 @@ namespace libcasm_fe { break; case symbol_kind::S_FunctionDefinition: // FunctionDefinition + case symbol_kind::S_StructureDefinitionElement: // StructureDefinitionElement case symbol_kind::S_AttributedLocalFunctionDefinition: // AttributedLocalFunctionDefinition case symbol_kind::S_LocalFunctionDefinition: // LocalFunctionDefinition value.move< FunctionDefinition::Ptr > (YY_MOVE (that.value)); break; - case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions + case symbol_kind::S_StructureDefinitionList: // StructureDefinitionList case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.move< FunctionDefinitions::Ptr > (YY_MOVE (that.value)); break; @@ -1351,12 +1353,13 @@ namespace libcasm_fe { break; case symbol_kind::S_FunctionDefinition: // FunctionDefinition + case symbol_kind::S_StructureDefinitionElement: // StructureDefinitionElement case symbol_kind::S_AttributedLocalFunctionDefinition: // AttributedLocalFunctionDefinition case symbol_kind::S_LocalFunctionDefinition: // LocalFunctionDefinition value.copy< FunctionDefinition::Ptr > (that.value); break; - case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions + case symbol_kind::S_StructureDefinitionList: // StructureDefinitionList case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.copy< FunctionDefinitions::Ptr > (that.value); break; @@ -1807,12 +1810,13 @@ namespace libcasm_fe { break; case symbol_kind::S_FunctionDefinition: // FunctionDefinition + case symbol_kind::S_StructureDefinitionElement: // StructureDefinitionElement case symbol_kind::S_AttributedLocalFunctionDefinition: // AttributedLocalFunctionDefinition case symbol_kind::S_LocalFunctionDefinition: // LocalFunctionDefinition value.move< FunctionDefinition::Ptr > (that.value); break; - case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions + case symbol_kind::S_StructureDefinitionList: // StructureDefinitionList case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.move< FunctionDefinitions::Ptr > (that.value); break; @@ -2508,12 +2512,13 @@ namespace libcasm_fe { break; case symbol_kind::S_FunctionDefinition: // FunctionDefinition + case symbol_kind::S_StructureDefinitionElement: // StructureDefinitionElement case symbol_kind::S_AttributedLocalFunctionDefinition: // AttributedLocalFunctionDefinition case symbol_kind::S_LocalFunctionDefinition: // LocalFunctionDefinition yylhs.value.emplace< FunctionDefinition::Ptr > (); break; - case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions + case symbol_kind::S_StructureDefinitionList: // StructureDefinitionList case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions yylhs.value.emplace< FunctionDefinitions::Ptr > (); break; @@ -2758,304 +2763,284 @@ namespace libcasm_fe { switch (yyn) { case 2: // Specification: Header Definitions -#line 433 "../../obj/src/GrammarParser.y" +#line 435 "../../obj/src/GrammarParser.y" { m_specification.setHeader( yystack_[1].value.as < HeaderDefinition::Ptr > () ); m_specification.setDefinitions( yystack_[0].value.as < Definitions::Ptr > () ); m_specification.setSpans( m_lexer.fetchSpansAndReset() ); } -#line 2768 "GrammarParser.cpp" +#line 2773 "GrammarParser.cpp" break; case 3: // Header: Attributes "CASM" -#line 443 "../../obj/src/GrammarParser.y" +#line 445 "../../obj/src/GrammarParser.y" { auto definition = Ast::make< HeaderDefinition >( yylhs.location, yystack_[0].value.as < Ast::Token::Ptr > () ); definition->setAttributes( yystack_[1].value.as < Attributes::Ptr > () ); yylhs.value.as < HeaderDefinition::Ptr > () = definition; } -#line 2778 "GrammarParser.cpp" +#line 2783 "GrammarParser.cpp" break; case 4: // Header: "CASM" -#line 449 "../../obj/src/GrammarParser.y" +#line 451 "../../obj/src/GrammarParser.y" { yylhs.value.as < HeaderDefinition::Ptr > () = Ast::make< HeaderDefinition >( yylhs.location, yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 2786 "GrammarParser.cpp" +#line 2791 "GrammarParser.cpp" break; case 5: // Definitions: Definitions AttributedDefinition -#line 457 "../../obj/src/GrammarParser.y" +#line 459 "../../obj/src/GrammarParser.y" { auto definitions = yystack_[1].value.as < Definitions::Ptr > (); definitions->add( yystack_[0].value.as < Definition::Ptr > () ); yylhs.value.as < Definitions::Ptr > () = definitions; } -#line 2796 "GrammarParser.cpp" +#line 2801 "GrammarParser.cpp" break; case 6: // Definitions: AttributedDefinition -#line 463 "../../obj/src/GrammarParser.y" +#line 465 "../../obj/src/GrammarParser.y" { auto definitions = Ast::make< Definitions >( yylhs.location ); definitions->add( yystack_[0].value.as < Definition::Ptr > () ); yylhs.value.as < Definitions::Ptr > () = definitions; } -#line 2806 "GrammarParser.cpp" +#line 2811 "GrammarParser.cpp" break; case 7: // AttributedDefinition: Attributes Definition -#line 473 "../../obj/src/GrammarParser.y" +#line 475 "../../obj/src/GrammarParser.y" { auto definition = yystack_[0].value.as < Definition::Ptr > (); definition->setAttributes( yystack_[1].value.as < Attributes::Ptr > () ); yylhs.value.as < Definition::Ptr > () = definition; } -#line 2816 "GrammarParser.cpp" +#line 2821 "GrammarParser.cpp" break; case 8: // AttributedDefinition: Definition -#line 479 "../../obj/src/GrammarParser.y" +#line 481 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < Definition::Ptr > (); } -#line 2824 "GrammarParser.cpp" +#line 2829 "GrammarParser.cpp" break; case 9: // AttributedDefinition: error -#line 483 "../../obj/src/GrammarParser.y" +#line 485 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = nullptr; } -#line 2832 "GrammarParser.cpp" +#line 2837 "GrammarParser.cpp" break; case 10: // Definition: InitDefinition -#line 491 "../../obj/src/GrammarParser.y" +#line 493 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < InitDefinition::Ptr > (); } -#line 2840 "GrammarParser.cpp" +#line 2845 "GrammarParser.cpp" break; case 11: // Definition: EnumerationDefinition -#line 495 "../../obj/src/GrammarParser.y" +#line 497 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < EnumerationDefinition::Ptr > (); } -#line 2848 "GrammarParser.cpp" +#line 2853 "GrammarParser.cpp" break; case 12: // Definition: DerivedDefinition -#line 499 "../../obj/src/GrammarParser.y" +#line 501 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < DerivedDefinition::Ptr > (); } -#line 2856 "GrammarParser.cpp" +#line 2861 "GrammarParser.cpp" break; case 13: // Definition: RuleDefinition -#line 503 "../../obj/src/GrammarParser.y" +#line 505 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < RuleDefinition::Ptr > (); } -#line 2864 "GrammarParser.cpp" +#line 2869 "GrammarParser.cpp" break; case 14: // Definition: FunctionDefinition -#line 507 "../../obj/src/GrammarParser.y" +#line 509 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < FunctionDefinition::Ptr > (); } -#line 2872 "GrammarParser.cpp" +#line 2877 "GrammarParser.cpp" break; case 15: // Definition: UsingDefinition -#line 511 "../../obj/src/GrammarParser.y" +#line 513 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < UsingDefinition::Ptr > (); } -#line 2880 "GrammarParser.cpp" +#line 2885 "GrammarParser.cpp" break; case 16: // Definition: UsingPathDefinition -#line 515 "../../obj/src/GrammarParser.y" +#line 517 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < UsingPathDefinition::Ptr > (); } -#line 2888 "GrammarParser.cpp" +#line 2893 "GrammarParser.cpp" break; case 17: // Definition: InvariantDefinition -#line 519 "../../obj/src/GrammarParser.y" +#line 521 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < InvariantDefinition::Ptr > (); } -#line 2896 "GrammarParser.cpp" +#line 2901 "GrammarParser.cpp" break; case 18: // Definition: ImportDefinition -#line 523 "../../obj/src/GrammarParser.y" +#line 525 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < ImportDefinition::Ptr > (); } -#line 2904 "GrammarParser.cpp" +#line 2909 "GrammarParser.cpp" break; case 19: // Definition: StructureDefinition -#line 527 "../../obj/src/GrammarParser.y" +#line 529 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < StructureDefinition::Ptr > (); } -#line 2912 "GrammarParser.cpp" +#line 2917 "GrammarParser.cpp" break; case 20: // Definition: FeatureDefinition -#line 531 "../../obj/src/GrammarParser.y" +#line 533 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < FeatureDefinition::Ptr > (); } -#line 2920 "GrammarParser.cpp" +#line 2925 "GrammarParser.cpp" break; case 21: // Definition: ImplementationDefinition -#line 535 "../../obj/src/GrammarParser.y" +#line 537 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < ImplementationDefinition::Ptr > (); } -#line 2928 "GrammarParser.cpp" +#line 2933 "GrammarParser.cpp" break; case 22: // InitDefinition: "init" IdentifierPath -#line 543 "../../obj/src/GrammarParser.y" +#line 545 "../../obj/src/GrammarParser.y" { yylhs.value.as < InitDefinition::Ptr > () = Ast::make< InitDefinition >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < IdentifierPath::Ptr > () ); } -#line 2936 "GrammarParser.cpp" +#line 2941 "GrammarParser.cpp" break; case 23: // InitDefinition: "init" "{" Initializers "}" -#line 547 "../../obj/src/GrammarParser.y" +#line 549 "../../obj/src/GrammarParser.y" { yylhs.value.as < InitDefinition::Ptr > () = Ast::make< InitDefinition >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Initializers::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 2944 "GrammarParser.cpp" +#line 2949 "GrammarParser.cpp" break; case 24: // EnumerationDefinition: "enumeration" Identifier "=" "{" Enumerators "}" -#line 555 "../../obj/src/GrammarParser.y" +#line 557 "../../obj/src/GrammarParser.y" { yylhs.value.as < EnumerationDefinition::Ptr > () = Ast::make< EnumerationDefinition >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Identifier::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Enumerators::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 2952 "GrammarParser.cpp" +#line 2957 "GrammarParser.cpp" break; case 25: // DerivedDefinition: "derived" Identifier "->" Type "=" Term -#line 563 "../../obj/src/GrammarParser.y" +#line 565 "../../obj/src/GrammarParser.y" { const auto params = Ast::make< NodeList< VariableDefinition > >( yylhs.location ); yylhs.value.as < DerivedDefinition::Ptr > () = Ast::make< DerivedDefinition >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Identifier::Ptr > (), params, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 2961 "GrammarParser.cpp" +#line 2966 "GrammarParser.cpp" break; case 26: // DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type "=" Term -#line 568 "../../obj/src/GrammarParser.y" +#line 570 "../../obj/src/GrammarParser.y" { yylhs.value.as < DerivedDefinition::Ptr > () = Ast::make< DerivedDefinition >( yylhs.location, yystack_[8].value.as < Ast::Token::Ptr > (), yystack_[7].value.as < Identifier::Ptr > (), yystack_[5].value.as < VariableDefinitions::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); yylhs.value.as < DerivedDefinition::Ptr > ()->setLeftBracketToken( yystack_[6].value.as < Ast::Token::Ptr > () ); yylhs.value.as < DerivedDefinition::Ptr > ()->setRightBracketToken( yystack_[4].value.as < Ast::Token::Ptr > () ); } -#line 2971 "GrammarParser.cpp" +#line 2976 "GrammarParser.cpp" break; case 27: // DerivedDefinition: "derived" Identifier "(" error ")" "->" Type "=" Term -#line 574 "../../obj/src/GrammarParser.y" +#line 576 "../../obj/src/GrammarParser.y" { yylhs.value.as < DerivedDefinition::Ptr > () = nullptr; } -#line 2979 "GrammarParser.cpp" +#line 2984 "GrammarParser.cpp" break; case 28: // RuleDefinition: "rule" Identifier "=" Rule -#line 582 "../../obj/src/GrammarParser.y" +#line 584 "../../obj/src/GrammarParser.y" { const auto params = Ast::make< NodeList< VariableDefinition > >( yylhs.location ); const auto vType = createVoidType( yylhs.location ); yylhs.value.as < RuleDefinition::Ptr > () = Ast::make< RuleDefinition >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Identifier::Ptr > (), params, Token::unresolved(), vType, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 2989 "GrammarParser.cpp" +#line 2994 "GrammarParser.cpp" break; case 29: // RuleDefinition: "rule" Identifier "->" Type "=" Rule -#line 588 "../../obj/src/GrammarParser.y" +#line 590 "../../obj/src/GrammarParser.y" { const auto params = Ast::make< NodeList< VariableDefinition > >( yylhs.location ); yylhs.value.as < RuleDefinition::Ptr > () = Ast::make< RuleDefinition >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Identifier::Ptr > (), params, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 2998 "GrammarParser.cpp" +#line 3003 "GrammarParser.cpp" break; case 30: // RuleDefinition: "rule" Identifier "(" Parameters ")" "=" Rule -#line 593 "../../obj/src/GrammarParser.y" +#line 595 "../../obj/src/GrammarParser.y" { const auto vType = createVoidType( yylhs.location ); yylhs.value.as < RuleDefinition::Ptr > () = Ast::make< RuleDefinition >( yylhs.location, yystack_[6].value.as < Ast::Token::Ptr > (), yystack_[5].value.as < Identifier::Ptr > (), yystack_[3].value.as < VariableDefinitions::Ptr > (), Token::unresolved(), vType, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); yylhs.value.as < RuleDefinition::Ptr > ()->setLeftBracketToken( yystack_[4].value.as < Ast::Token::Ptr > () ); yylhs.value.as < RuleDefinition::Ptr > ()->setRightBracketToken( yystack_[2].value.as < Ast::Token::Ptr > () ); } -#line 3009 "GrammarParser.cpp" +#line 3014 "GrammarParser.cpp" break; case 31: // RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type "=" Rule -#line 600 "../../obj/src/GrammarParser.y" +#line 602 "../../obj/src/GrammarParser.y" { yylhs.value.as < RuleDefinition::Ptr > () = Ast::make< RuleDefinition >( yylhs.location, yystack_[8].value.as < Ast::Token::Ptr > (), yystack_[7].value.as < Identifier::Ptr > (), yystack_[5].value.as < VariableDefinitions::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); yylhs.value.as < RuleDefinition::Ptr > ()->setLeftBracketToken( yystack_[6].value.as < Ast::Token::Ptr > () ); yylhs.value.as < RuleDefinition::Ptr > ()->setRightBracketToken( yystack_[4].value.as < Ast::Token::Ptr > () ); } -#line 3019 "GrammarParser.cpp" +#line 3024 "GrammarParser.cpp" break; case 32: // RuleDefinition: "rule" Identifier "(" error ")" "=" Rule -#line 606 "../../obj/src/GrammarParser.y" +#line 608 "../../obj/src/GrammarParser.y" { yylhs.value.as < RuleDefinition::Ptr > () = nullptr; } -#line 3027 "GrammarParser.cpp" +#line 3032 "GrammarParser.cpp" break; case 33: // RuleDefinition: "rule" Identifier "(" error ")" "->" Type "=" Rule -#line 610 "../../obj/src/GrammarParser.y" +#line 612 "../../obj/src/GrammarParser.y" { yylhs.value.as < RuleDefinition::Ptr > () = nullptr; } -#line 3035 "GrammarParser.cpp" +#line 3040 "GrammarParser.cpp" break; - case 34: // FunctionDefinitions: FunctionDefinitions FunctionDefinition -#line 618 "../../obj/src/GrammarParser.y" - { - auto functions = yystack_[1].value.as < FunctionDefinitions::Ptr > (); - functions->add( yystack_[0].value.as < FunctionDefinition::Ptr > () ); - yylhs.value.as < FunctionDefinitions::Ptr > () = functions; - } -#line 3045 "GrammarParser.cpp" - break; - - case 35: // FunctionDefinitions: FunctionDefinition -#line 624 "../../obj/src/GrammarParser.y" - { - auto functions = Ast::make< FunctionDefinitions >( yylhs.location ); - functions->add( yystack_[0].value.as < FunctionDefinition::Ptr > () ); - yylhs.value.as < FunctionDefinitions::Ptr > () = functions; - } -#line 3055 "GrammarParser.cpp" - break; - - case 36: // FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially -#line 634 "../../obj/src/GrammarParser.y" + case 34: // FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially +#line 636 "../../obj/src/GrammarParser.y" { yylhs.value.as < FunctionDefinition::Ptr > () = Ast::make< FunctionDefinition >( yylhs.location, yystack_[7].value.as < Ast::Token::Ptr > (), yystack_[6].value.as < Identifier::Ptr > (), yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Types::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Defined::Ptr > (), yystack_[0].value.as < Initially::Ptr > () ); @@ -3066,1298 +3051,1336 @@ namespace libcasm_fe { initializer->setFunction( yylhs.value.as < FunctionDefinition::Ptr > () ); } } -#line 3070 "GrammarParser.cpp" +#line 3055 "GrammarParser.cpp" break; - case 37: // EnumeratorDefinition: Identifier -#line 649 "../../obj/src/GrammarParser.y" + case 35: // EnumeratorDefinition: Identifier +#line 651 "../../obj/src/GrammarParser.y" { yylhs.value.as < EnumeratorDefinition::Ptr > () = Ast::make< EnumeratorDefinition >( yylhs.location, yystack_[0].value.as < Identifier::Ptr > () ); } -#line 3078 "GrammarParser.cpp" +#line 3063 "GrammarParser.cpp" break; - case 38: // EnumeratorDefinition: Attributes Identifier -#line 653 "../../obj/src/GrammarParser.y" + case 36: // EnumeratorDefinition: Attributes Identifier +#line 655 "../../obj/src/GrammarParser.y" { auto enumerator = Ast::make< EnumeratorDefinition >( yylhs.location, yystack_[0].value.as < Identifier::Ptr > () ); enumerator->setAttributes( yystack_[1].value.as < Attributes::Ptr > () ); yylhs.value.as < EnumeratorDefinition::Ptr > () = enumerator; } -#line 3088 "GrammarParser.cpp" +#line 3073 "GrammarParser.cpp" break; - case 39: // EnumeratorDefinition: error -#line 659 "../../obj/src/GrammarParser.y" + case 37: // EnumeratorDefinition: error +#line 661 "../../obj/src/GrammarParser.y" { yylhs.value.as < EnumeratorDefinition::Ptr > () = nullptr; } -#line 3096 "GrammarParser.cpp" +#line 3081 "GrammarParser.cpp" break; - case 40: // Enumerators: Enumerators "," EnumeratorDefinition -#line 667 "../../obj/src/GrammarParser.y" + case 38: // Enumerators: Enumerators "," EnumeratorDefinition +#line 669 "../../obj/src/GrammarParser.y" { auto enumerators = yystack_[2].value.as < Enumerators::Ptr > (); yystack_[0].value.as < EnumeratorDefinition::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); enumerators->add( yystack_[0].value.as < EnumeratorDefinition::Ptr > () ); yylhs.value.as < Enumerators::Ptr > () = enumerators; } -#line 3107 "GrammarParser.cpp" +#line 3092 "GrammarParser.cpp" break; - case 41: // Enumerators: EnumeratorDefinition -#line 674 "../../obj/src/GrammarParser.y" + case 39: // Enumerators: EnumeratorDefinition +#line 676 "../../obj/src/GrammarParser.y" { auto enumerators = Ast::make< Enumerators >( yylhs.location ); enumerators->add( yystack_[0].value.as < EnumeratorDefinition::Ptr > () ); yylhs.value.as < Enumerators::Ptr > () = enumerators; } -#line 3117 "GrammarParser.cpp" +#line 3102 "GrammarParser.cpp" break; - case 42: // UsingDefinition: "using" Identifier "=" Type -#line 684 "../../obj/src/GrammarParser.y" + case 40: // UsingDefinition: "using" Identifier "=" Type +#line 686 "../../obj/src/GrammarParser.y" { yylhs.value.as < UsingDefinition::Ptr > () = Ast::make< UsingDefinition >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Identifier::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); } -#line 3125 "GrammarParser.cpp" +#line 3110 "GrammarParser.cpp" break; - case 43: // UsingPathDefinition: "using" IdentifierPath -#line 692 "../../obj/src/GrammarParser.y" + case 41: // UsingPathDefinition: "using" IdentifierPath +#line 694 "../../obj/src/GrammarParser.y" { yylhs.value.as < UsingPathDefinition::Ptr > () = Ast::make< UsingPathDefinition >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < IdentifierPath::Ptr > () ); } -#line 3133 "GrammarParser.cpp" +#line 3118 "GrammarParser.cpp" break; - case 44: // UsingPathDefinition: "using" IdentifierPath "::" "*" -#line 696 "../../obj/src/GrammarParser.y" + case 42: // UsingPathDefinition: "using" IdentifierPath "::" "*" +#line 698 "../../obj/src/GrammarParser.y" { yylhs.value.as < UsingPathDefinition::Ptr > () = Ast::make< UsingPathDefinition >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < IdentifierPath::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3141 "GrammarParser.cpp" +#line 3126 "GrammarParser.cpp" break; - case 45: // InvariantDefinition: "invariant" Identifier "=" Term -#line 704 "../../obj/src/GrammarParser.y" + case 43: // InvariantDefinition: "invariant" Identifier "=" Term +#line 706 "../../obj/src/GrammarParser.y" { yylhs.value.as < InvariantDefinition::Ptr > () = Ast::make< InvariantDefinition >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Identifier::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 3149 "GrammarParser.cpp" +#line 3134 "GrammarParser.cpp" break; - case 46: // ImportDefinition: "import" IdentifierPath -#line 712 "../../obj/src/GrammarParser.y" + case 44: // ImportDefinition: "import" IdentifierPath +#line 718 "../../obj/src/GrammarParser.y" { yylhs.value.as < ImportDefinition::Ptr > () = Ast::make< ImportDefinition >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < IdentifierPath::Ptr > () ); } -#line 3157 "GrammarParser.cpp" +#line 3142 "GrammarParser.cpp" break; - case 47: // ImportDefinition: "import" IdentifierPath "as" Identifier -#line 716 "../../obj/src/GrammarParser.y" + case 45: // ImportDefinition: "import" IdentifierPath "as" Identifier +#line 722 "../../obj/src/GrammarParser.y" { yylhs.value.as < ImportDefinition::Ptr > () = Ast::make< ImportDefinition >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < IdentifierPath::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Identifier::Ptr > () ); } -#line 3165 "GrammarParser.cpp" +#line 3150 "GrammarParser.cpp" break; - case 48: // StructureDefinition: "structure" Identifier "=" "{" FunctionDefinitions "}" -#line 724 "../../obj/src/GrammarParser.y" + case 46: // StructureDefinition: "structure" Identifier "=" "{" StructureDefinitionList "}" +#line 730 "../../obj/src/GrammarParser.y" { // TODO: FIXME: @ppaulweber: handle AST keyword tokens $1, $3, $4, and $6 // $$ = Ast::make< StructureDefinition >( @$, $2, $5 ); } -#line 3174 "GrammarParser.cpp" +#line 3159 "GrammarParser.cpp" + break; + + case 47: // StructureDefinitionElement: "[" Attributes "]" FunctionDefinition +#line 739 "../../obj/src/GrammarParser.y" + { + auto definition = yystack_[0].value.as < FunctionDefinition::Ptr > (); + definition->setAttributes( yystack_[2].value.as < Attributes::Ptr > () ); + yylhs.value.as < FunctionDefinition::Ptr > () = definition; + } +#line 3169 "GrammarParser.cpp" + break; + + case 48: // StructureDefinitionElement: FunctionDefinition +#line 745 "../../obj/src/GrammarParser.y" + { + yylhs.value.as < FunctionDefinition::Ptr > () = yystack_[0].value.as < FunctionDefinition::Ptr > (); + } +#line 3177 "GrammarParser.cpp" break; - case 49: // FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" -#line 733 "../../obj/src/GrammarParser.y" + case 49: // StructureDefinitionList: StructureDefinitionList StructureDefinitionElement +#line 753 "../../obj/src/GrammarParser.y" + { + auto functions = yystack_[1].value.as < FunctionDefinitions::Ptr > (); + functions->add( yystack_[0].value.as < FunctionDefinition::Ptr > () ); + yylhs.value.as < FunctionDefinitions::Ptr > () = functions; + } +#line 3187 "GrammarParser.cpp" + break; + + case 50: // StructureDefinitionList: StructureDefinitionElement +#line 759 "../../obj/src/GrammarParser.y" + { + auto functions = Ast::make< FunctionDefinitions >( yylhs.location ); + functions->add( yystack_[0].value.as < FunctionDefinition::Ptr > () ); + yylhs.value.as < FunctionDefinitions::Ptr > () = functions; + } +#line 3197 "GrammarParser.cpp" + break; + + case 51: // FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" +#line 773 "../../obj/src/GrammarParser.y" { // TODO: FIXME: @ppaulweber: handle AST keyword tokens $1, $3, $4, and $6 yylhs.value.as < FeatureDefinition::Ptr > () = Ast::make< FeatureDefinition >( yylhs.location, yystack_[4].value.as < Identifier::Ptr > (), yystack_[1].value.as < Definitions::Ptr > () ); } -#line 3183 "GrammarParser.cpp" +#line 3206 "GrammarParser.cpp" break; - case 50: // FeatureDeclarationOrDefinition: DeclarationDefinition -#line 742 "../../obj/src/GrammarParser.y" + case 52: // FeatureDeclarationOrDefinition: DeclarationDefinition +#line 782 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < DeclarationDefinition::Ptr > (); } -#line 3191 "GrammarParser.cpp" +#line 3214 "GrammarParser.cpp" break; - case 51: // FeatureDeclarationOrDefinition: DerivedDefinition -#line 746 "../../obj/src/GrammarParser.y" + case 53: // FeatureDeclarationOrDefinition: DerivedDefinition +#line 786 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < DerivedDefinition::Ptr > (); } -#line 3199 "GrammarParser.cpp" +#line 3222 "GrammarParser.cpp" break; - case 52: // FeatureDeclarationOrDefinition: RuleDefinition -#line 750 "../../obj/src/GrammarParser.y" + case 54: // FeatureDeclarationOrDefinition: RuleDefinition +#line 790 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < RuleDefinition::Ptr > (); } -#line 3207 "GrammarParser.cpp" +#line 3230 "GrammarParser.cpp" break; - case 53: // FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition -#line 758 "../../obj/src/GrammarParser.y" + case 55: // FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition +#line 798 "../../obj/src/GrammarParser.y" { auto definitions = yystack_[1].value.as < Definitions::Ptr > (); definitions->add( yystack_[0].value.as < Definition::Ptr > () ); yylhs.value.as < Definitions::Ptr > () = definitions; } -#line 3217 "GrammarParser.cpp" +#line 3240 "GrammarParser.cpp" break; - case 54: // FeatureDeclarationsAndDefinitions: FeatureDeclarationOrDefinition -#line 764 "../../obj/src/GrammarParser.y" + case 56: // FeatureDeclarationsAndDefinitions: FeatureDeclarationOrDefinition +#line 804 "../../obj/src/GrammarParser.y" { auto definitions = Ast::make< Definitions >( yylhs.location ); definitions->add( yystack_[0].value.as < Definition::Ptr > () ); yylhs.value.as < Definitions::Ptr > () = definitions; } -#line 3227 "GrammarParser.cpp" +#line 3250 "GrammarParser.cpp" break; - case 55: // ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" -#line 774 "../../obj/src/GrammarParser.y" + case 57: // ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" +#line 818 "../../obj/src/GrammarParser.y" { yylhs.value.as < ImplementationDefinition::Ptr > () = Ast::make< ImplementationDefinition >( yylhs.location, yystack_[6].value.as < IdentifierPath::Ptr > (), yystack_[4].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Definitions::Ptr > () ); } -#line 3235 "GrammarParser.cpp" +#line 3258 "GrammarParser.cpp" break; - case 56: // ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" -#line 778 "../../obj/src/GrammarParser.y" + case 58: // ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" +#line 822 "../../obj/src/GrammarParser.y" { const auto name = Ast::make< Identifier >( yylhs.location, "" ); const auto path = asIdentifierPath( name ); yylhs.value.as < ImplementationDefinition::Ptr > () = Ast::make< ImplementationDefinition >( yylhs.location, path, yystack_[4].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Definitions::Ptr > () ); } -#line 3245 "GrammarParser.cpp" +#line 3268 "GrammarParser.cpp" break; - case 57: // ImplementationDefinitionDefinition: DerivedDefinition -#line 788 "../../obj/src/GrammarParser.y" + case 59: // ImplementationDefinitionDefinition: DerivedDefinition +#line 832 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < DerivedDefinition::Ptr > (); } -#line 3253 "GrammarParser.cpp" +#line 3276 "GrammarParser.cpp" break; - case 58: // ImplementationDefinitionDefinition: RuleDefinition -#line 792 "../../obj/src/GrammarParser.y" + case 60: // ImplementationDefinitionDefinition: RuleDefinition +#line 836 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < RuleDefinition::Ptr > (); } -#line 3261 "GrammarParser.cpp" +#line 3284 "GrammarParser.cpp" break; - case 59: // ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions -#line 800 "../../obj/src/GrammarParser.y" + case 61: // ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions +#line 844 "../../obj/src/GrammarParser.y" { auto definitions = yystack_[0].value.as < Definitions::Ptr > (); definitions->add( yystack_[1].value.as < Definition::Ptr > () ); yylhs.value.as < Definitions::Ptr > () = definitions; } -#line 3271 "GrammarParser.cpp" +#line 3294 "GrammarParser.cpp" break; - case 60: // ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition -#line 806 "../../obj/src/GrammarParser.y" + case 62: // ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition +#line 850 "../../obj/src/GrammarParser.y" { auto definitions = Ast::make< Definitions >( yylhs.location ); definitions->add( yystack_[0].value.as < Definition::Ptr > () ); yylhs.value.as < Definitions::Ptr > () = definitions; } -#line 3281 "GrammarParser.cpp" +#line 3304 "GrammarParser.cpp" break; - case 61: // DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type -#line 816 "../../obj/src/GrammarParser.y" + case 63: // DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type +#line 864 "../../obj/src/GrammarParser.y" { // TODO: FIXME: @ppaulweber: handle AST keyword tokens $1, $3, and $5 auto declaration = Ast::make< DeclarationDefinition >( yylhs.location, yystack_[4].value.as < Identifier::Ptr > (), yystack_[2].value.as < Types::Ptr > (), yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); declaration->setKind( DeclarationDefinition::Kind::DERIVED ); yylhs.value.as < DeclarationDefinition::Ptr > () = declaration; } -#line 3292 "GrammarParser.cpp" +#line 3315 "GrammarParser.cpp" break; - case 62: // DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters "->" Type -#line 823 "../../obj/src/GrammarParser.y" + case 64: // DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters "->" Type +#line 871 "../../obj/src/GrammarParser.y" { // TODO: FIXME: @ppaulweber: handle AST keyword tokens $1, $3, and $5 auto declaration = Ast::make< DeclarationDefinition >( yylhs.location, yystack_[4].value.as < Identifier::Ptr > (), yystack_[2].value.as < Types::Ptr > (), yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); declaration->setKind( DeclarationDefinition::Kind::RULE ); yylhs.value.as < DeclarationDefinition::Ptr > () = declaration; } -#line 3303 "GrammarParser.cpp" +#line 3326 "GrammarParser.cpp" break; - case 63: // Rules: Rules Rule -#line 838 "../../obj/src/GrammarParser.y" + case 65: // Rules: Rules Rule +#line 886 "../../obj/src/GrammarParser.y" { auto rules = yystack_[1].value.as < Rules::Ptr > (); rules->add( yystack_[0].value.as < Rule::Ptr > () ); yylhs.value.as < Rules::Ptr > () = rules; } -#line 3313 "GrammarParser.cpp" +#line 3336 "GrammarParser.cpp" break; - case 64: // Rules: Rule -#line 844 "../../obj/src/GrammarParser.y" + case 66: // Rules: Rule +#line 892 "../../obj/src/GrammarParser.y" { auto rules = Ast::make< Rules >( yylhs.location ); rules->add( yystack_[0].value.as < Rule::Ptr > () ); yylhs.value.as < Rules::Ptr > () = rules; } -#line 3323 "GrammarParser.cpp" +#line 3346 "GrammarParser.cpp" break; - case 65: // Rule: SkipRule -#line 854 "../../obj/src/GrammarParser.y" + case 67: // Rule: SkipRule +#line 902 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < SkipRule::Ptr > (); } -#line 3331 "GrammarParser.cpp" +#line 3354 "GrammarParser.cpp" break; - case 66: // Rule: ConditionalRule -#line 858 "../../obj/src/GrammarParser.y" + case 68: // Rule: ConditionalRule +#line 906 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < ConditionalRule::Ptr > (); } -#line 3339 "GrammarParser.cpp" +#line 3362 "GrammarParser.cpp" break; - case 67: // Rule: CaseRule -#line 862 "../../obj/src/GrammarParser.y" + case 69: // Rule: CaseRule +#line 910 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < CaseRule::Ptr > (); } -#line 3347 "GrammarParser.cpp" +#line 3370 "GrammarParser.cpp" break; - case 68: // Rule: LetRule -#line 866 "../../obj/src/GrammarParser.y" + case 70: // Rule: LetRule +#line 914 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < LetRule::Ptr > (); } -#line 3355 "GrammarParser.cpp" +#line 3378 "GrammarParser.cpp" break; - case 69: // Rule: LocalRule -#line 870 "../../obj/src/GrammarParser.y" + case 71: // Rule: LocalRule +#line 918 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < LocalRule::Ptr > (); } -#line 3363 "GrammarParser.cpp" +#line 3386 "GrammarParser.cpp" break; - case 70: // Rule: ForallRule -#line 874 "../../obj/src/GrammarParser.y" + case 72: // Rule: ForallRule +#line 922 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < ForallRule::Ptr > (); } -#line 3371 "GrammarParser.cpp" +#line 3394 "GrammarParser.cpp" break; - case 71: // Rule: ChooseRule -#line 878 "../../obj/src/GrammarParser.y" + case 73: // Rule: ChooseRule +#line 926 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < ChooseRule::Ptr > (); } -#line 3379 "GrammarParser.cpp" +#line 3402 "GrammarParser.cpp" break; - case 72: // Rule: IterateRule -#line 882 "../../obj/src/GrammarParser.y" + case 74: // Rule: IterateRule +#line 930 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < IterateRule::Ptr > (); } -#line 3387 "GrammarParser.cpp" +#line 3410 "GrammarParser.cpp" break; - case 73: // Rule: BlockRule -#line 886 "../../obj/src/GrammarParser.y" + case 75: // Rule: BlockRule +#line 934 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < BlockRule::Ptr > (); } -#line 3395 "GrammarParser.cpp" +#line 3418 "GrammarParser.cpp" break; - case 74: // Rule: SequenceRule -#line 890 "../../obj/src/GrammarParser.y" + case 76: // Rule: SequenceRule +#line 938 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < SequenceRule::Ptr > (); } -#line 3403 "GrammarParser.cpp" +#line 3426 "GrammarParser.cpp" break; - case 75: // Rule: UpdateRule -#line 894 "../../obj/src/GrammarParser.y" + case 77: // Rule: UpdateRule +#line 942 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < UpdateRule::Ptr > (); } -#line 3411 "GrammarParser.cpp" +#line 3434 "GrammarParser.cpp" break; - case 76: // Rule: CallRule -#line 898 "../../obj/src/GrammarParser.y" + case 78: // Rule: CallRule +#line 946 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < CallRule::Ptr > (); } -#line 3419 "GrammarParser.cpp" +#line 3442 "GrammarParser.cpp" break; - case 77: // Rule: WhileRule -#line 902 "../../obj/src/GrammarParser.y" + case 79: // Rule: WhileRule +#line 950 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < WhileRule::Ptr > (); } -#line 3427 "GrammarParser.cpp" +#line 3450 "GrammarParser.cpp" break; - case 78: // SkipRule: "skip" -#line 910 "../../obj/src/GrammarParser.y" + case 80: // SkipRule: "skip" +#line 958 "../../obj/src/GrammarParser.y" { yylhs.value.as < SkipRule::Ptr > () = Ast::make< SkipRule >( yylhs.location, yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3435 "GrammarParser.cpp" +#line 3458 "GrammarParser.cpp" break; - case 79: // ConditionalRule: "if" Term "then" Rule -#line 918 "../../obj/src/GrammarParser.y" + case 81: // ConditionalRule: "if" Term "then" Rule +#line 966 "../../obj/src/GrammarParser.y" { yylhs.value.as < ConditionalRule::Ptr > () = Ast::make< ConditionalRule >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3443 "GrammarParser.cpp" +#line 3466 "GrammarParser.cpp" break; - case 80: // ConditionalRule: "if" Term "then" Rule "else" Rule -#line 922 "../../obj/src/GrammarParser.y" + case 82: // ConditionalRule: "if" Term "then" Rule "else" Rule +#line 970 "../../obj/src/GrammarParser.y" { yylhs.value.as < ConditionalRule::Ptr > () = Ast::make< ConditionalRule >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Expression::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Rule::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3451 "GrammarParser.cpp" +#line 3474 "GrammarParser.cpp" break; - case 81: // CaseRule: "case" Term "of" "{" CaseLabels "}" -#line 930 "../../obj/src/GrammarParser.y" + case 83: // CaseRule: "case" Term "of" "{" CaseLabels "}" +#line 978 "../../obj/src/GrammarParser.y" { yylhs.value.as < CaseRule::Ptr > () = Ast::make< CaseRule >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Expression::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Cases::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3459 "GrammarParser.cpp" +#line 3482 "GrammarParser.cpp" break; - case 82: // CaseRule: "case" Term "of" "{" error "}" -#line 934 "../../obj/src/GrammarParser.y" + case 84: // CaseRule: "case" Term "of" "{" error "}" +#line 982 "../../obj/src/GrammarParser.y" { yylhs.value.as < CaseRule::Ptr > () = nullptr; } -#line 3467 "GrammarParser.cpp" +#line 3490 "GrammarParser.cpp" break; - case 83: // CaseLabels: CaseLabels CaseLabel -#line 942 "../../obj/src/GrammarParser.y" + case 85: // CaseLabels: CaseLabels CaseLabel +#line 990 "../../obj/src/GrammarParser.y" { auto cases = yystack_[1].value.as < Cases::Ptr > (); cases->add( yystack_[0].value.as < Case::Ptr > () ); yylhs.value.as < Cases::Ptr > () = cases; } -#line 3477 "GrammarParser.cpp" +#line 3500 "GrammarParser.cpp" break; - case 84: // CaseLabels: CaseLabel -#line 948 "../../obj/src/GrammarParser.y" + case 86: // CaseLabels: CaseLabel +#line 996 "../../obj/src/GrammarParser.y" { auto cases = Ast::make< Cases >( yylhs.location ); cases->add( yystack_[0].value.as < Case::Ptr > () ); yylhs.value.as < Cases::Ptr > () = cases; } -#line 3487 "GrammarParser.cpp" +#line 3510 "GrammarParser.cpp" break; - case 85: // CaseLabel: "default" ":" Rule -#line 958 "../../obj/src/GrammarParser.y" + case 87: // CaseLabel: "default" ":" Rule +#line 1006 "../../obj/src/GrammarParser.y" { yylhs.value.as < Case::Ptr > () = Ast::make< DefaultCase >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3495 "GrammarParser.cpp" +#line 3518 "GrammarParser.cpp" break; - case 86: // CaseLabel: "_" ":" Rule -#line 962 "../../obj/src/GrammarParser.y" + case 88: // CaseLabel: "_" ":" Rule +#line 1010 "../../obj/src/GrammarParser.y" { yylhs.value.as < Case::Ptr > () = Ast::make< DefaultCase >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3503 "GrammarParser.cpp" +#line 3526 "GrammarParser.cpp" break; - case 87: // CaseLabel: Term ":" Rule -#line 966 "../../obj/src/GrammarParser.y" + case 89: // CaseLabel: Term ":" Rule +#line 1014 "../../obj/src/GrammarParser.y" { yylhs.value.as < Case::Ptr > () = Ast::make< ExpressionCase >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3511 "GrammarParser.cpp" +#line 3534 "GrammarParser.cpp" break; - case 88: // LetRule: "let" VariableBindings "in" Rule -#line 974 "../../obj/src/GrammarParser.y" + case 90: // LetRule: "let" VariableBindings "in" Rule +#line 1022 "../../obj/src/GrammarParser.y" { yylhs.value.as < LetRule::Ptr > () = Ast::make< LetRule >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < VariableBindings::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3519 "GrammarParser.cpp" +#line 3542 "GrammarParser.cpp" break; - case 89: // LocalRule: "local" LocalFunctionDefinitions "in" Rule -#line 982 "../../obj/src/GrammarParser.y" + case 91: // LocalRule: "local" LocalFunctionDefinitions "in" Rule +#line 1030 "../../obj/src/GrammarParser.y" { yylhs.value.as < LocalRule::Ptr > () = Ast::make< LocalRule >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < FunctionDefinitions::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3527 "GrammarParser.cpp" +#line 3550 "GrammarParser.cpp" break; - case 90: // ForallRule: "forall" AttributedVariables "in" Term "do" Rule -#line 990 "../../obj/src/GrammarParser.y" + case 92: // ForallRule: "forall" AttributedVariables "in" Term "do" Rule +#line 1038 "../../obj/src/GrammarParser.y" { yylhs.value.as < ForallRule::Ptr > () = Ast::make< ForallRule >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < VariableDefinitions::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3535 "GrammarParser.cpp" +#line 3558 "GrammarParser.cpp" break; - case 91: // ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" Rule -#line 994 "../../obj/src/GrammarParser.y" + case 93: // ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" Rule +#line 1042 "../../obj/src/GrammarParser.y" { yylhs.value.as < ForallRule::Ptr > () = Ast::make< ForallRule >( yylhs.location, yystack_[7].value.as < Ast::Token::Ptr > (), yystack_[6].value.as < VariableDefinitions::Ptr > (), yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Expression::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3543 "GrammarParser.cpp" +#line 3566 "GrammarParser.cpp" break; - case 92: // ChooseRule: "choose" AttributedVariables "in" Term "do" Rule -#line 1002 "../../obj/src/GrammarParser.y" + case 94: // ChooseRule: "choose" AttributedVariables "in" Term "do" Rule +#line 1050 "../../obj/src/GrammarParser.y" { yylhs.value.as < ChooseRule::Ptr > () = Ast::make< ChooseRule >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < VariableDefinitions::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3551 "GrammarParser.cpp" +#line 3574 "GrammarParser.cpp" break; - case 93: // IterateRule: "iterate" Rule -#line 1010 "../../obj/src/GrammarParser.y" + case 95: // IterateRule: "iterate" Rule +#line 1058 "../../obj/src/GrammarParser.y" { yylhs.value.as < IterateRule::Ptr > () = Ast::make< IterateRule >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3559 "GrammarParser.cpp" +#line 3582 "GrammarParser.cpp" break; - case 94: // BlockRule: "{" Rules "}" -#line 1018 "../../obj/src/GrammarParser.y" + case 96: // BlockRule: "{" Rules "}" +#line 1066 "../../obj/src/GrammarParser.y" { yylhs.value.as < BlockRule::Ptr > () = Ast::make< BlockRule >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Rules::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3567 "GrammarParser.cpp" +#line 3590 "GrammarParser.cpp" break; - case 95: // BlockRule: "par" Rules "endpar" -#line 1022 "../../obj/src/GrammarParser.y" + case 97: // BlockRule: "par" Rules "endpar" +#line 1070 "../../obj/src/GrammarParser.y" { yylhs.value.as < BlockRule::Ptr > () = Ast::make< BlockRule >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Rules::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3575 "GrammarParser.cpp" +#line 3598 "GrammarParser.cpp" break; - case 96: // BlockRule: "{" error "}" -#line 1026 "../../obj/src/GrammarParser.y" + case 98: // BlockRule: "{" error "}" +#line 1074 "../../obj/src/GrammarParser.y" { yylhs.value.as < BlockRule::Ptr > () = nullptr; yyerrok; } -#line 3584 "GrammarParser.cpp" +#line 3607 "GrammarParser.cpp" break; - case 97: // BlockRule: "par" error "endpar" -#line 1031 "../../obj/src/GrammarParser.y" + case 99: // BlockRule: "par" error "endpar" +#line 1079 "../../obj/src/GrammarParser.y" { yylhs.value.as < BlockRule::Ptr > () = nullptr; yyerrok; } -#line 3593 "GrammarParser.cpp" +#line 3616 "GrammarParser.cpp" break; - case 98: // SequenceRule: "{|" Rules "|}" -#line 1040 "../../obj/src/GrammarParser.y" + case 100: // SequenceRule: "{|" Rules "|}" +#line 1088 "../../obj/src/GrammarParser.y" { yylhs.value.as < SequenceRule::Ptr > () = Ast::make< SequenceRule >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Rules::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3601 "GrammarParser.cpp" +#line 3624 "GrammarParser.cpp" break; - case 99: // SequenceRule: "seq" Rules "endseq" -#line 1044 "../../obj/src/GrammarParser.y" + case 101: // SequenceRule: "seq" Rules "endseq" +#line 1092 "../../obj/src/GrammarParser.y" { yylhs.value.as < SequenceRule::Ptr > () = Ast::make< SequenceRule >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Rules::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3609 "GrammarParser.cpp" +#line 3632 "GrammarParser.cpp" break; - case 100: // SequenceRule: "{|" error "|}" -#line 1048 "../../obj/src/GrammarParser.y" + case 102: // SequenceRule: "{|" error "|}" +#line 1096 "../../obj/src/GrammarParser.y" { yylhs.value.as < SequenceRule::Ptr > () = nullptr; yyerrok; } -#line 3618 "GrammarParser.cpp" +#line 3641 "GrammarParser.cpp" break; - case 101: // SequenceRule: "seq" error "endseq" -#line 1053 "../../obj/src/GrammarParser.y" + case 103: // SequenceRule: "seq" error "endseq" +#line 1101 "../../obj/src/GrammarParser.y" { yylhs.value.as < SequenceRule::Ptr > () = nullptr; yyerrok; } -#line 3627 "GrammarParser.cpp" +#line 3650 "GrammarParser.cpp" break; - case 102: // UpdateRule: DirectCallExpression ":=" Term -#line 1062 "../../obj/src/GrammarParser.y" + case 104: // UpdateRule: DirectCallExpression ":=" Term +#line 1110 "../../obj/src/GrammarParser.y" { yylhs.value.as < UpdateRule::Ptr > () = Ast::make< UpdateRule >( yylhs.location, yystack_[2].value.as < DirectCallExpression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 3635 "GrammarParser.cpp" +#line 3658 "GrammarParser.cpp" break; - case 103: // CallRule: CallExpression -#line 1070 "../../obj/src/GrammarParser.y" + case 105: // CallRule: CallExpression +#line 1118 "../../obj/src/GrammarParser.y" { yylhs.value.as < CallRule::Ptr > () = Ast::make< CallRule >( yylhs.location, yystack_[0].value.as < CallExpression::Ptr > () ); } -#line 3643 "GrammarParser.cpp" +#line 3666 "GrammarParser.cpp" break; - case 104: // WhileRule: "while" Term "do" Rule -#line 1078 "../../obj/src/GrammarParser.y" + case 106: // WhileRule: "while" Term "do" Rule +#line 1126 "../../obj/src/GrammarParser.y" { yylhs.value.as < WhileRule::Ptr > () = Ast::make< WhileRule >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3651 "GrammarParser.cpp" +#line 3674 "GrammarParser.cpp" break; - case 105: // Terms: Terms "," Term -#line 1090 "../../obj/src/GrammarParser.y" + case 107: // Terms: Terms "," Term +#line 1138 "../../obj/src/GrammarParser.y" { auto expressions = yystack_[2].value.as < Expressions::Ptr > (); yystack_[0].value.as < Expression::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); expressions->add( yystack_[0].value.as < Expression::Ptr > () ); yylhs.value.as < Expressions::Ptr > () = expressions; } -#line 3662 "GrammarParser.cpp" +#line 3685 "GrammarParser.cpp" break; - case 106: // Terms: Term -#line 1097 "../../obj/src/GrammarParser.y" + case 108: // Terms: Term +#line 1145 "../../obj/src/GrammarParser.y" { const auto expressions = Ast::make< Expressions >( yylhs.location ); expressions->add( yystack_[0].value.as < Expression::Ptr > () ); yylhs.value.as < Expressions::Ptr > () = expressions; } -#line 3672 "GrammarParser.cpp" +#line 3695 "GrammarParser.cpp" break; - case 107: // Term: SimpleOrClaspedTerm -#line 1107 "../../obj/src/GrammarParser.y" + case 109: // Term: SimpleOrClaspedTerm +#line 1155 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < Expression::Ptr > (); } -#line 3680 "GrammarParser.cpp" +#line 3703 "GrammarParser.cpp" break; - case 108: // Term: TypeCastingExpression -#line 1111 "../../obj/src/GrammarParser.y" + case 110: // Term: TypeCastingExpression +#line 1159 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < TypeCastingExpression::Ptr > (); } -#line 3688 "GrammarParser.cpp" +#line 3711 "GrammarParser.cpp" break; - case 109: // Term: OperatorExpression -#line 1115 "../../obj/src/GrammarParser.y" + case 111: // Term: OperatorExpression +#line 1163 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < Expression::Ptr > (); } -#line 3696 "GrammarParser.cpp" +#line 3719 "GrammarParser.cpp" break; - case 110: // Term: LetExpression -#line 1119 "../../obj/src/GrammarParser.y" + case 112: // Term: LetExpression +#line 1167 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < LetExpression::Ptr > (); } -#line 3704 "GrammarParser.cpp" +#line 3727 "GrammarParser.cpp" break; - case 111: // Term: ConditionalExpression -#line 1123 "../../obj/src/GrammarParser.y" + case 113: // Term: ConditionalExpression +#line 1171 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < ConditionalExpression::Ptr > (); } -#line 3712 "GrammarParser.cpp" +#line 3735 "GrammarParser.cpp" break; - case 112: // Term: ChooseExpression -#line 1127 "../../obj/src/GrammarParser.y" + case 114: // Term: ChooseExpression +#line 1175 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < ChooseExpression::Ptr > (); } -#line 3720 "GrammarParser.cpp" +#line 3743 "GrammarParser.cpp" break; - case 113: // Term: UniversalQuantifierExpression -#line 1131 "../../obj/src/GrammarParser.y" + case 115: // Term: UniversalQuantifierExpression +#line 1179 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < UniversalQuantifierExpression::Ptr > (); } -#line 3728 "GrammarParser.cpp" +#line 3751 "GrammarParser.cpp" break; - case 114: // Term: ExistentialQuantifierExpression -#line 1135 "../../obj/src/GrammarParser.y" + case 116: // Term: ExistentialQuantifierExpression +#line 1183 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < ExistentialQuantifierExpression::Ptr > (); } -#line 3736 "GrammarParser.cpp" +#line 3759 "GrammarParser.cpp" break; - case 115: // Term: CardinalityExpression -#line 1139 "../../obj/src/GrammarParser.y" + case 117: // Term: CardinalityExpression +#line 1187 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < CardinalityExpression::Ptr > (); } -#line 3744 "GrammarParser.cpp" +#line 3767 "GrammarParser.cpp" break; - case 116: // SimpleOrClaspedTerm: "(" Term ")" -#line 1147 "../../obj/src/GrammarParser.y" + case 118: // SimpleOrClaspedTerm: "(" Term ")" +#line 1195 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< Ast::EmbracedExpression >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Expression::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3752 "GrammarParser.cpp" +#line 3775 "GrammarParser.cpp" break; - case 117: // SimpleOrClaspedTerm: "(" error ")" -#line 1151 "../../obj/src/GrammarParser.y" + case 119: // SimpleOrClaspedTerm: "(" error ")" +#line 1199 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = nullptr; } -#line 3760 "GrammarParser.cpp" +#line 3783 "GrammarParser.cpp" break; - case 118: // SimpleOrClaspedTerm: CallExpression -#line 1155 "../../obj/src/GrammarParser.y" + case 120: // SimpleOrClaspedTerm: CallExpression +#line 1203 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < CallExpression::Ptr > (); } -#line 3768 "GrammarParser.cpp" +#line 3791 "GrammarParser.cpp" break; - case 119: // SimpleOrClaspedTerm: LiteralCallExpression -#line 1159 "../../obj/src/GrammarParser.y" + case 121: // SimpleOrClaspedTerm: LiteralCallExpression +#line 1207 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < LiteralCallExpression::Ptr > (); } -#line 3776 "GrammarParser.cpp" +#line 3799 "GrammarParser.cpp" break; - case 120: // SimpleOrClaspedTerm: Literal -#line 1163 "../../obj/src/GrammarParser.y" + case 122: // SimpleOrClaspedTerm: Literal +#line 1211 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < Literal::Ptr > (); } -#line 3784 "GrammarParser.cpp" +#line 3807 "GrammarParser.cpp" break; - case 121: // SimpleOrClaspedTerm: "+" SimpleOrClaspedTerm -#line 1167 "../../obj/src/GrammarParser.y" + case 123: // SimpleOrClaspedTerm: "+" SimpleOrClaspedTerm +#line 1215 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< UnaryExpression >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::ADD_INSTRUCTION ); } -#line 3792 "GrammarParser.cpp" +#line 3815 "GrammarParser.cpp" break; - case 122: // SimpleOrClaspedTerm: "-" SimpleOrClaspedTerm -#line 1171 "../../obj/src/GrammarParser.y" + case 124: // SimpleOrClaspedTerm: "-" SimpleOrClaspedTerm +#line 1219 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< UnaryExpression >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::INV_INSTRUCTION ); } -#line 3800 "GrammarParser.cpp" +#line 3823 "GrammarParser.cpp" break; - case 123: // OperatorExpression: Term "+" Term -#line 1183 "../../obj/src/GrammarParser.y" + case 125: // OperatorExpression: Term "+" Term +#line 1231 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::ADD_INSTRUCTION ); } -#line 3808 "GrammarParser.cpp" +#line 3831 "GrammarParser.cpp" break; - case 124: // OperatorExpression: Term "-" Term -#line 1187 "../../obj/src/GrammarParser.y" + case 126: // OperatorExpression: Term "-" Term +#line 1235 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::SUB_INSTRUCTION ); } -#line 3816 "GrammarParser.cpp" +#line 3839 "GrammarParser.cpp" break; - case 125: // OperatorExpression: Term "*" Term -#line 1191 "../../obj/src/GrammarParser.y" + case 127: // OperatorExpression: Term "*" Term +#line 1239 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::MUL_INSTRUCTION ); } -#line 3824 "GrammarParser.cpp" +#line 3847 "GrammarParser.cpp" break; - case 126: // OperatorExpression: Term "/" Term -#line 1195 "../../obj/src/GrammarParser.y" + case 128: // OperatorExpression: Term "/" Term +#line 1243 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::DIV_INSTRUCTION ); } -#line 3832 "GrammarParser.cpp" +#line 3855 "GrammarParser.cpp" break; - case 127: // OperatorExpression: Term "%" Term -#line 1199 "../../obj/src/GrammarParser.y" + case 129: // OperatorExpression: Term "%" Term +#line 1247 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::MOD_INSTRUCTION ); } -#line 3840 "GrammarParser.cpp" +#line 3863 "GrammarParser.cpp" break; - case 128: // OperatorExpression: Term "^" Term -#line 1203 "../../obj/src/GrammarParser.y" + case 130: // OperatorExpression: Term "^" Term +#line 1251 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::POW_INSTRUCTION ); } -#line 3848 "GrammarParser.cpp" +#line 3871 "GrammarParser.cpp" break; - case 129: // OperatorExpression: Term "!=" Term -#line 1207 "../../obj/src/GrammarParser.y" + case 131: // OperatorExpression: Term "!=" Term +#line 1255 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::NEQ_INSTRUCTION ); } -#line 3856 "GrammarParser.cpp" +#line 3879 "GrammarParser.cpp" break; - case 130: // OperatorExpression: Term "=" Term -#line 1211 "../../obj/src/GrammarParser.y" + case 132: // OperatorExpression: Term "=" Term +#line 1259 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::EQU_INSTRUCTION ); } -#line 3864 "GrammarParser.cpp" +#line 3887 "GrammarParser.cpp" break; - case 131: // OperatorExpression: Term "<" Term -#line 1215 "../../obj/src/GrammarParser.y" + case 133: // OperatorExpression: Term "<" Term +#line 1263 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::LTH_INSTRUCTION ); } -#line 3872 "GrammarParser.cpp" +#line 3895 "GrammarParser.cpp" break; - case 132: // OperatorExpression: Term ">" Term -#line 1219 "../../obj/src/GrammarParser.y" + case 134: // OperatorExpression: Term ">" Term +#line 1267 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::GTH_INSTRUCTION ); } -#line 3880 "GrammarParser.cpp" +#line 3903 "GrammarParser.cpp" break; - case 133: // OperatorExpression: Term "<=" Term -#line 1223 "../../obj/src/GrammarParser.y" + case 135: // OperatorExpression: Term "<=" Term +#line 1271 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::LEQ_INSTRUCTION ); } -#line 3888 "GrammarParser.cpp" +#line 3911 "GrammarParser.cpp" break; - case 134: // OperatorExpression: Term ">=" Term -#line 1227 "../../obj/src/GrammarParser.y" + case 136: // OperatorExpression: Term ">=" Term +#line 1275 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::GEQ_INSTRUCTION ); } -#line 3896 "GrammarParser.cpp" +#line 3919 "GrammarParser.cpp" break; - case 135: // OperatorExpression: Term "or" Term -#line 1231 "../../obj/src/GrammarParser.y" + case 137: // OperatorExpression: Term "or" Term +#line 1279 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::OR_INSTRUCTION ); } -#line 3904 "GrammarParser.cpp" +#line 3927 "GrammarParser.cpp" break; - case 136: // OperatorExpression: Term "xor" Term -#line 1235 "../../obj/src/GrammarParser.y" + case 138: // OperatorExpression: Term "xor" Term +#line 1283 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::XOR_INSTRUCTION ); } -#line 3912 "GrammarParser.cpp" +#line 3935 "GrammarParser.cpp" break; - case 137: // OperatorExpression: Term "and" Term -#line 1239 "../../obj/src/GrammarParser.y" + case 139: // OperatorExpression: Term "and" Term +#line 1287 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::AND_INSTRUCTION ); } -#line 3920 "GrammarParser.cpp" +#line 3943 "GrammarParser.cpp" break; - case 138: // OperatorExpression: Term "=>" Term -#line 1243 "../../obj/src/GrammarParser.y" + case 140: // OperatorExpression: Term "=>" Term +#line 1291 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::IMP_INSTRUCTION ); } -#line 3928 "GrammarParser.cpp" +#line 3951 "GrammarParser.cpp" break; - case 139: // OperatorExpression: Term "implies" Term -#line 1247 "../../obj/src/GrammarParser.y" + case 141: // OperatorExpression: Term "implies" Term +#line 1295 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::IMP_INSTRUCTION ); } -#line 3936 "GrammarParser.cpp" +#line 3959 "GrammarParser.cpp" break; - case 140: // OperatorExpression: "not" Term -#line 1251 "../../obj/src/GrammarParser.y" + case 142: // OperatorExpression: "not" Term +#line 1299 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< UnaryExpression >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::NOT_INSTRUCTION ); } -#line 3944 "GrammarParser.cpp" +#line 3967 "GrammarParser.cpp" break; - case 141: // CallExpression: DirectCallExpression -#line 1259 "../../obj/src/GrammarParser.y" + case 143: // CallExpression: DirectCallExpression +#line 1307 "../../obj/src/GrammarParser.y" { yylhs.value.as < CallExpression::Ptr > () = yystack_[0].value.as < DirectCallExpression::Ptr > (); } -#line 3952 "GrammarParser.cpp" +#line 3975 "GrammarParser.cpp" break; - case 142: // CallExpression: MethodCallExpression -#line 1263 "../../obj/src/GrammarParser.y" + case 144: // CallExpression: MethodCallExpression +#line 1311 "../../obj/src/GrammarParser.y" { yylhs.value.as < CallExpression::Ptr > () = yystack_[0].value.as < MethodCallExpression::Ptr > (); } -#line 3960 "GrammarParser.cpp" +#line 3983 "GrammarParser.cpp" break; - case 143: // CallExpression: IndirectCallExpression -#line 1267 "../../obj/src/GrammarParser.y" + case 145: // CallExpression: IndirectCallExpression +#line 1315 "../../obj/src/GrammarParser.y" { yylhs.value.as < CallExpression::Ptr > () = yystack_[0].value.as < IndirectCallExpression::Ptr > (); } -#line 3968 "GrammarParser.cpp" +#line 3991 "GrammarParser.cpp" break; - case 144: // DirectCallExpression: IdentifierPath -#line 1275 "../../obj/src/GrammarParser.y" + case 146: // DirectCallExpression: IdentifierPath +#line 1323 "../../obj/src/GrammarParser.y" { const auto arguments = Ast::make< Expressions >( yylhs.location ); yylhs.value.as < DirectCallExpression::Ptr > () = Ast::make< DirectCallExpression >( yylhs.location, yystack_[0].value.as < IdentifierPath::Ptr > (), arguments ); } -#line 3977 "GrammarParser.cpp" +#line 4000 "GrammarParser.cpp" break; - case 145: // DirectCallExpression: IdentifierPath "(" ")" -#line 1280 "../../obj/src/GrammarParser.y" + case 147: // DirectCallExpression: IdentifierPath "(" ")" +#line 1328 "../../obj/src/GrammarParser.y" { const auto arguments = Ast::make< Expressions >( yylhs.location ); yylhs.value.as < DirectCallExpression::Ptr > () = Ast::make< DirectCallExpression >( yylhs.location, yystack_[2].value.as < IdentifierPath::Ptr > (), arguments ); yylhs.value.as < DirectCallExpression::Ptr > ()->setLeftBracketToken( yystack_[1].value.as < Ast::Token::Ptr > () ); yylhs.value.as < DirectCallExpression::Ptr > ()->setRightBracketToken( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3988 "GrammarParser.cpp" +#line 4011 "GrammarParser.cpp" break; - case 146: // DirectCallExpression: IdentifierPath "(" Terms ")" -#line 1287 "../../obj/src/GrammarParser.y" + case 148: // DirectCallExpression: IdentifierPath "(" Terms ")" +#line 1335 "../../obj/src/GrammarParser.y" { yylhs.value.as < DirectCallExpression::Ptr > () = Ast::make< DirectCallExpression >( yylhs.location, yystack_[3].value.as < IdentifierPath::Ptr > (), yystack_[1].value.as < Expressions::Ptr > () ); yylhs.value.as < DirectCallExpression::Ptr > ()->setLeftBracketToken( yystack_[2].value.as < Ast::Token::Ptr > () ); yylhs.value.as < DirectCallExpression::Ptr > ()->setRightBracketToken( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3998 "GrammarParser.cpp" +#line 4021 "GrammarParser.cpp" break; - case 147: // DirectCallExpression: IdentifierPath "(" error ")" -#line 1293 "../../obj/src/GrammarParser.y" + case 149: // DirectCallExpression: IdentifierPath "(" error ")" +#line 1341 "../../obj/src/GrammarParser.y" { yylhs.value.as < DirectCallExpression::Ptr > () = nullptr; } -#line 4006 "GrammarParser.cpp" +#line 4029 "GrammarParser.cpp" break; - case 148: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier -#line 1301 "../../obj/src/GrammarParser.y" + case 150: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier +#line 1349 "../../obj/src/GrammarParser.y" { const auto arguments = Ast::make< Expressions >( yylhs.location ); yylhs.value.as < MethodCallExpression::Ptr > () = Ast::make< MethodCallExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Identifier::Ptr > (), arguments ); } -#line 4015 "GrammarParser.cpp" +#line 4038 "GrammarParser.cpp" break; - case 149: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" ")" -#line 1306 "../../obj/src/GrammarParser.y" + case 151: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" ")" +#line 1354 "../../obj/src/GrammarParser.y" { const auto arguments = Ast::make< Expressions >( yylhs.location ); yylhs.value.as < MethodCallExpression::Ptr > () = Ast::make< MethodCallExpression >( yylhs.location, yystack_[4].value.as < Expression::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Identifier::Ptr > (), arguments ); yylhs.value.as < MethodCallExpression::Ptr > ()->setLeftBracketToken( yystack_[1].value.as < Ast::Token::Ptr > () ); yylhs.value.as < MethodCallExpression::Ptr > ()->setRightBracketToken( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4026 "GrammarParser.cpp" +#line 4049 "GrammarParser.cpp" break; - case 150: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms ")" -#line 1313 "../../obj/src/GrammarParser.y" + case 152: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms ")" +#line 1361 "../../obj/src/GrammarParser.y" { yylhs.value.as < MethodCallExpression::Ptr > () = Ast::make< MethodCallExpression >( yylhs.location, yystack_[5].value.as < Expression::Ptr > (), yystack_[4].value.as < Ast::Token::Ptr > (), yystack_[3].value.as < Identifier::Ptr > (), yystack_[1].value.as < Expressions::Ptr > () ); yylhs.value.as < MethodCallExpression::Ptr > ()->setLeftBracketToken( yystack_[2].value.as < Ast::Token::Ptr > () ); yylhs.value.as < MethodCallExpression::Ptr > ()->setRightBracketToken( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4036 "GrammarParser.cpp" +#line 4059 "GrammarParser.cpp" break; - case 151: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error ")" -#line 1319 "../../obj/src/GrammarParser.y" + case 153: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error ")" +#line 1367 "../../obj/src/GrammarParser.y" { yylhs.value.as < MethodCallExpression::Ptr > () = nullptr; } -#line 4044 "GrammarParser.cpp" +#line 4067 "GrammarParser.cpp" break; - case 152: // LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral -#line 1327 "../../obj/src/GrammarParser.y" + case 154: // LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral +#line 1375 "../../obj/src/GrammarParser.y" { yylhs.value.as < LiteralCallExpression::Ptr > () = Ast::make< LiteralCallExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < ValueLiteral::Ptr > () ); } -#line 4052 "GrammarParser.cpp" +#line 4075 "GrammarParser.cpp" break; - case 153: // IndirectCallExpression: CallExpression "(" ")" -#line 1335 "../../obj/src/GrammarParser.y" + case 155: // IndirectCallExpression: CallExpression "(" ")" +#line 1383 "../../obj/src/GrammarParser.y" { const auto arguments = Ast::make< Expressions >( yylhs.location ); yylhs.value.as < IndirectCallExpression::Ptr > () = Ast::make< IndirectCallExpression >( yylhs.location, yystack_[2].value.as < CallExpression::Ptr > (), arguments ); yylhs.value.as < IndirectCallExpression::Ptr > ()->setLeftBracketToken( yystack_[1].value.as < Ast::Token::Ptr > () ); yylhs.value.as < IndirectCallExpression::Ptr > ()->setRightBracketToken( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4063 "GrammarParser.cpp" +#line 4086 "GrammarParser.cpp" break; - case 154: // IndirectCallExpression: CallExpression "(" Terms ")" -#line 1342 "../../obj/src/GrammarParser.y" + case 156: // IndirectCallExpression: CallExpression "(" Terms ")" +#line 1390 "../../obj/src/GrammarParser.y" { yylhs.value.as < IndirectCallExpression::Ptr > () = Ast::make< IndirectCallExpression >( yylhs.location, yystack_[3].value.as < CallExpression::Ptr > (), yystack_[1].value.as < Expressions::Ptr > () ); yylhs.value.as < IndirectCallExpression::Ptr > ()->setLeftBracketToken( yystack_[2].value.as < Ast::Token::Ptr > () ); yylhs.value.as < IndirectCallExpression::Ptr > ()->setRightBracketToken( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4073 "GrammarParser.cpp" +#line 4096 "GrammarParser.cpp" break; - case 155: // IndirectCallExpression: CallExpression "(" error ")" -#line 1348 "../../obj/src/GrammarParser.y" + case 157: // IndirectCallExpression: CallExpression "(" error ")" +#line 1396 "../../obj/src/GrammarParser.y" { yylhs.value.as < IndirectCallExpression::Ptr > () = nullptr; } -#line 4081 "GrammarParser.cpp" +#line 4104 "GrammarParser.cpp" break; - case 156: // TypeCastingExpression: SimpleOrClaspedTerm "as" Type -#line 1356 "../../obj/src/GrammarParser.y" + case 158: // TypeCastingExpression: SimpleOrClaspedTerm "as" Type +#line 1404 "../../obj/src/GrammarParser.y" { yylhs.value.as < TypeCastingExpression::Ptr > () = Ast::make< TypeCastingExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); } -#line 4089 "GrammarParser.cpp" +#line 4112 "GrammarParser.cpp" break; - case 157: // LetExpression: "let" VariableBindings "in" Term -#line 1364 "../../obj/src/GrammarParser.y" + case 159: // LetExpression: "let" VariableBindings "in" Term +#line 1412 "../../obj/src/GrammarParser.y" { yylhs.value.as < LetExpression::Ptr > () = Ast::make< LetExpression >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < VariableBindings::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4097 "GrammarParser.cpp" +#line 4120 "GrammarParser.cpp" break; - case 158: // ConditionalExpression: "if" Term "then" Term "else" Term -#line 1372 "../../obj/src/GrammarParser.y" + case 160: // ConditionalExpression: "if" Term "then" Term "else" Term +#line 1420 "../../obj/src/GrammarParser.y" { yylhs.value.as < ConditionalExpression::Ptr > () = Ast::make< ConditionalExpression >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Expression::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4105 "GrammarParser.cpp" +#line 4128 "GrammarParser.cpp" break; - case 159: // ChooseExpression: "choose" AttributedVariables "in" Term "do" Term -#line 1380 "../../obj/src/GrammarParser.y" + case 161: // ChooseExpression: "choose" AttributedVariables "in" Term "do" Term +#line 1428 "../../obj/src/GrammarParser.y" { yylhs.value.as < ChooseExpression::Ptr > () = Ast::make< ChooseExpression >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < VariableDefinitions::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4113 "GrammarParser.cpp" +#line 4136 "GrammarParser.cpp" break; - case 160: // UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term -#line 1388 "../../obj/src/GrammarParser.y" + case 162: // UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term +#line 1436 "../../obj/src/GrammarParser.y" { yylhs.value.as < UniversalQuantifierExpression::Ptr > () = Ast::make< UniversalQuantifierExpression >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < VariableDefinitions::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4121 "GrammarParser.cpp" +#line 4144 "GrammarParser.cpp" break; - case 161: // ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term -#line 1396 "../../obj/src/GrammarParser.y" + case 163: // ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term +#line 1444 "../../obj/src/GrammarParser.y" { yylhs.value.as < ExistentialQuantifierExpression::Ptr > () = Ast::make< ExistentialQuantifierExpression >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < VariableDefinitions::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4129 "GrammarParser.cpp" +#line 4152 "GrammarParser.cpp" break; - case 162: // CardinalityExpression: "|" SimpleOrClaspedTerm "|" -#line 1404 "../../obj/src/GrammarParser.y" + case 164: // CardinalityExpression: "|" SimpleOrClaspedTerm "|" +#line 1452 "../../obj/src/GrammarParser.y" { yylhs.value.as < CardinalityExpression::Ptr > () = Ast::make< CardinalityExpression >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Expression::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4137 "GrammarParser.cpp" +#line 4160 "GrammarParser.cpp" break; - case 163: // Literal: UndefinedLiteral -#line 1417 "../../obj/src/GrammarParser.y" + case 165: // Literal: UndefinedLiteral +#line 1465 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < UndefLiteral::Ptr > (); } -#line 4145 "GrammarParser.cpp" +#line 4168 "GrammarParser.cpp" break; - case 164: // Literal: BooleanLiteral -#line 1421 "../../obj/src/GrammarParser.y" + case 166: // Literal: BooleanLiteral +#line 1469 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4153 "GrammarParser.cpp" +#line 4176 "GrammarParser.cpp" break; - case 165: // Literal: IntegerLiteral -#line 1425 "../../obj/src/GrammarParser.y" + case 167: // Literal: IntegerLiteral +#line 1473 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4161 "GrammarParser.cpp" +#line 4184 "GrammarParser.cpp" break; - case 166: // Literal: RationalLiteral -#line 1429 "../../obj/src/GrammarParser.y" + case 168: // Literal: RationalLiteral +#line 1477 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4169 "GrammarParser.cpp" +#line 4192 "GrammarParser.cpp" break; - case 167: // Literal: DecimalLiteral -#line 1433 "../../obj/src/GrammarParser.y" + case 169: // Literal: DecimalLiteral +#line 1481 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4177 "GrammarParser.cpp" +#line 4200 "GrammarParser.cpp" break; - case 168: // Literal: BinaryLiteral -#line 1437 "../../obj/src/GrammarParser.y" + case 170: // Literal: BinaryLiteral +#line 1485 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4185 "GrammarParser.cpp" +#line 4208 "GrammarParser.cpp" break; - case 169: // Literal: StringLiteral -#line 1441 "../../obj/src/GrammarParser.y" + case 171: // Literal: StringLiteral +#line 1489 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4193 "GrammarParser.cpp" +#line 4216 "GrammarParser.cpp" break; - case 170: // Literal: ReferenceLiteral -#line 1445 "../../obj/src/GrammarParser.y" + case 172: // Literal: ReferenceLiteral +#line 1493 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ReferenceLiteral::Ptr > (); } -#line 4201 "GrammarParser.cpp" +#line 4224 "GrammarParser.cpp" break; - case 171: // Literal: ListLiteral -#line 1449 "../../obj/src/GrammarParser.y" + case 173: // Literal: ListLiteral +#line 1497 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ListLiteral::Ptr > (); } -#line 4209 "GrammarParser.cpp" +#line 4232 "GrammarParser.cpp" break; - case 172: // Literal: RangeLiteral -#line 1453 "../../obj/src/GrammarParser.y" + case 174: // Literal: RangeLiteral +#line 1501 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < RangeLiteral::Ptr > (); } -#line 4217 "GrammarParser.cpp" +#line 4240 "GrammarParser.cpp" break; - case 173: // Literal: TupleLiteral -#line 1457 "../../obj/src/GrammarParser.y" + case 175: // Literal: TupleLiteral +#line 1505 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < TupleLiteral::Ptr > (); } -#line 4225 "GrammarParser.cpp" +#line 4248 "GrammarParser.cpp" break; - case 174: // Literal: RecordLiteral -#line 1461 "../../obj/src/GrammarParser.y" + case 176: // Literal: RecordLiteral +#line 1509 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < RecordLiteral::Ptr > (); } -#line 4233 "GrammarParser.cpp" +#line 4256 "GrammarParser.cpp" break; - case 175: // UndefinedLiteral: "undef" -#line 1469 "../../obj/src/GrammarParser.y" + case 177: // UndefinedLiteral: "undef" +#line 1517 "../../obj/src/GrammarParser.y" { yylhs.value.as < UndefLiteral::Ptr > () = Ast::make< UndefLiteral >( yylhs.location ); yylhs.value.as < UndefLiteral::Ptr > ()->setSpans( yystack_[0].value.as < Ast::Token::Ptr > ()->spans() ); } -#line 4242 "GrammarParser.cpp" +#line 4265 "GrammarParser.cpp" break; - case 176: // BooleanLiteral: "true" -#line 1478 "../../obj/src/GrammarParser.y" + case 178: // BooleanLiteral: "true" +#line 1526 "../../obj/src/GrammarParser.y" { const auto value = libstdhl::Memory::get< libcasm_ir::BooleanConstant >( true ); yylhs.value.as < ValueLiteral::Ptr > () = Ast::make< ValueLiteral >( yylhs.location, value ); yylhs.value.as < ValueLiteral::Ptr > ()->setSpans( yystack_[0].value.as < Ast::Token::Ptr > ()->spans() ); } -#line 4252 "GrammarParser.cpp" +#line 4275 "GrammarParser.cpp" break; - case 177: // BooleanLiteral: "false" -#line 1484 "../../obj/src/GrammarParser.y" + case 179: // BooleanLiteral: "false" +#line 1532 "../../obj/src/GrammarParser.y" { const auto value = libstdhl::Memory::get< libcasm_ir::BooleanConstant >( false ); yylhs.value.as < ValueLiteral::Ptr > () = Ast::make< ValueLiteral >( yylhs.location, value ); yylhs.value.as < ValueLiteral::Ptr > ()->setSpans( yystack_[0].value.as < Ast::Token::Ptr > ()->spans() ); } -#line 4262 "GrammarParser.cpp" +#line 4285 "GrammarParser.cpp" break; - case 178: // IntegerLiteral: "integer" -#line 1494 "../../obj/src/GrammarParser.y" + case 180: // IntegerLiteral: "integer" +#line 1542 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4270 "GrammarParser.cpp" +#line 4293 "GrammarParser.cpp" break; - case 179: // RationalLiteral: "rational" -#line 1502 "../../obj/src/GrammarParser.y" + case 181: // RationalLiteral: "rational" +#line 1550 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4278 "GrammarParser.cpp" +#line 4301 "GrammarParser.cpp" break; - case 180: // DecimalLiteral: "decimal" -#line 1510 "../../obj/src/GrammarParser.y" + case 182: // DecimalLiteral: "decimal" +#line 1558 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4286 "GrammarParser.cpp" +#line 4309 "GrammarParser.cpp" break; - case 181: // BinaryLiteral: "binary" -#line 1518 "../../obj/src/GrammarParser.y" + case 183: // BinaryLiteral: "binary" +#line 1566 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4294 "GrammarParser.cpp" +#line 4317 "GrammarParser.cpp" break; - case 182: // BinaryLiteral: "hexadecimal" -#line 1522 "../../obj/src/GrammarParser.y" + case 184: // BinaryLiteral: "hexadecimal" +#line 1570 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4302 "GrammarParser.cpp" +#line 4325 "GrammarParser.cpp" break; - case 183: // StringLiteral: "string" -#line 1530 "../../obj/src/GrammarParser.y" + case 185: // StringLiteral: "string" +#line 1578 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4310 "GrammarParser.cpp" +#line 4333 "GrammarParser.cpp" break; - case 184: // ReferenceLiteral: "@" IdentifierPath -#line 1538 "../../obj/src/GrammarParser.y" + case 186: // ReferenceLiteral: "@" IdentifierPath +#line 1586 "../../obj/src/GrammarParser.y" { yylhs.value.as < ReferenceLiteral::Ptr > () = Ast::make< ReferenceLiteral >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < IdentifierPath::Ptr > () ); } -#line 4318 "GrammarParser.cpp" +#line 4341 "GrammarParser.cpp" break; - case 185: // ListLiteral: "[" "]" -#line 1546 "../../obj/src/GrammarParser.y" + case 187: // ListLiteral: "[" "]" +#line 1594 "../../obj/src/GrammarParser.y" { const auto expressions = Ast::make< Expressions >( yylhs.location ); yylhs.value.as < ListLiteral::Ptr > () = Ast::make< ListLiteral >( yylhs.location, expressions ); yylhs.value.as < ListLiteral::Ptr > ()->setLeftBracket( yystack_[1].value.as < Ast::Token::Ptr > () ); yylhs.value.as < ListLiteral::Ptr > ()->setRightBracket( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4329 "GrammarParser.cpp" +#line 4352 "GrammarParser.cpp" break; - case 186: // ListLiteral: "[" Terms "]" -#line 1553 "../../obj/src/GrammarParser.y" + case 188: // ListLiteral: "[" Terms "]" +#line 1601 "../../obj/src/GrammarParser.y" { yylhs.value.as < ListLiteral::Ptr > () = Ast::make< ListLiteral >( yylhs.location, yystack_[1].value.as < Expressions::Ptr > () ); yylhs.value.as < ListLiteral::Ptr > ()->setLeftBracket( yystack_[2].value.as < Ast::Token::Ptr > () ); yylhs.value.as < ListLiteral::Ptr > ()->setRightBracket( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4339 "GrammarParser.cpp" +#line 4362 "GrammarParser.cpp" break; - case 187: // ListLiteral: "[" error "]" -#line 1559 "../../obj/src/GrammarParser.y" + case 189: // ListLiteral: "[" error "]" +#line 1607 "../../obj/src/GrammarParser.y" { yylhs.value.as < ListLiteral::Ptr > () = nullptr; } -#line 4347 "GrammarParser.cpp" +#line 4370 "GrammarParser.cpp" break; - case 188: // RangeLiteral: "[" Term ".." Term "]" -#line 1567 "../../obj/src/GrammarParser.y" + case 190: // RangeLiteral: "[" Term ".." Term "]" +#line 1615 "../../obj/src/GrammarParser.y" { yylhs.value.as < RangeLiteral::Ptr > () = Ast::make< RangeLiteral >( yylhs.location, yystack_[3].value.as < Expression::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Expression::Ptr > () ); yylhs.value.as < RangeLiteral::Ptr > ()->setLeftBracket( yystack_[4].value.as < Ast::Token::Ptr > () ); yylhs.value.as < RangeLiteral::Ptr > ()->setRightBracket( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4357 "GrammarParser.cpp" +#line 4380 "GrammarParser.cpp" break; - case 189: // TupleLiteral: "(" Terms "," Term ")" -#line 1576 "../../obj/src/GrammarParser.y" + case 191: // TupleLiteral: "(" Terms "," Term ")" +#line 1624 "../../obj/src/GrammarParser.y" { const auto expressions = yystack_[3].value.as < Expressions::Ptr > (); yystack_[1].value.as < Expression::Ptr > ()->setDelimiterToken( yystack_[2].value.as < Ast::Token::Ptr > () ); @@ -4366,531 +4389,531 @@ namespace libcasm_fe { yylhs.value.as < TupleLiteral::Ptr > ()->setLeftBracket( yystack_[4].value.as < Ast::Token::Ptr > () ); yylhs.value.as < TupleLiteral::Ptr > ()->setRightBracket( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4370 "GrammarParser.cpp" +#line 4393 "GrammarParser.cpp" break; - case 190: // RecordLiteral: "(" Assignments ")" -#line 1587 "../../obj/src/GrammarParser.y" + case 192: // RecordLiteral: "(" Assignments ")" +#line 1635 "../../obj/src/GrammarParser.y" { yylhs.value.as < RecordLiteral::Ptr > () = Ast::make< RecordLiteral >( yylhs.location, yystack_[1].value.as < NamedExpressions::Ptr > () ); yylhs.value.as < RecordLiteral::Ptr > ()->setLeftBracket( yystack_[2].value.as < Ast::Token::Ptr > () ); yylhs.value.as < RecordLiteral::Ptr > ()->setRightBracket( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4380 "GrammarParser.cpp" +#line 4403 "GrammarParser.cpp" break; - case 191: // Assignments: Assignments "," Assignment -#line 1596 "../../obj/src/GrammarParser.y" + case 193: // Assignments: Assignments "," Assignment +#line 1644 "../../obj/src/GrammarParser.y" { auto assignments = yystack_[2].value.as < NamedExpressions::Ptr > (); yystack_[0].value.as < NamedExpression::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); assignments->add( yystack_[0].value.as < NamedExpression::Ptr > () ); yylhs.value.as < NamedExpressions::Ptr > () = assignments; } -#line 4391 "GrammarParser.cpp" +#line 4414 "GrammarParser.cpp" break; - case 192: // Assignments: Assignment -#line 1603 "../../obj/src/GrammarParser.y" + case 194: // Assignments: Assignment +#line 1651 "../../obj/src/GrammarParser.y" { auto assignments = Ast::make< NamedExpressions >( yylhs.location ); assignments->add( yystack_[0].value.as < NamedExpression::Ptr > () ); yylhs.value.as < NamedExpressions::Ptr > () = assignments; } -#line 4401 "GrammarParser.cpp" +#line 4424 "GrammarParser.cpp" break; - case 193: // Assignment: Identifier ":" Term -#line 1612 "../../obj/src/GrammarParser.y" + case 195: // Assignment: Identifier ":" Term +#line 1660 "../../obj/src/GrammarParser.y" { yylhs.value.as < NamedExpression::Ptr > () = Ast::make< NamedExpression >( yylhs.location, yystack_[2].value.as < Identifier::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4409 "GrammarParser.cpp" +#line 4432 "GrammarParser.cpp" break; - case 194: // Types: Types "," Type -#line 1624 "../../obj/src/GrammarParser.y" + case 196: // Types: Types "," Type +#line 1672 "../../obj/src/GrammarParser.y" { auto types = yystack_[2].value.as < Types::Ptr > (); yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); types->add( yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); yylhs.value.as < Types::Ptr > () = types; } -#line 4420 "GrammarParser.cpp" +#line 4443 "GrammarParser.cpp" break; - case 195: // Types: Type -#line 1631 "../../obj/src/GrammarParser.y" + case 197: // Types: Type +#line 1679 "../../obj/src/GrammarParser.y" { auto types = Ast::make< Types >( yylhs.location ); types->add( yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); yylhs.value.as < Types::Ptr > () = types; } -#line 4430 "GrammarParser.cpp" +#line 4453 "GrammarParser.cpp" break; - case 196: // Type: BasicType -#line 1640 "../../obj/src/GrammarParser.y" + case 198: // Type: BasicType +#line 1688 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < BasicType::Ptr > (); } -#line 4438 "GrammarParser.cpp" +#line 4461 "GrammarParser.cpp" break; - case 197: // Type: TupleType -#line 1644 "../../obj/src/GrammarParser.y" + case 199: // Type: TupleType +#line 1692 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < TupleType::Ptr > (); } -#line 4446 "GrammarParser.cpp" +#line 4469 "GrammarParser.cpp" break; - case 198: // Type: RecordType -#line 1648 "../../obj/src/GrammarParser.y" + case 200: // Type: RecordType +#line 1696 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < RecordType::Ptr > (); } -#line 4454 "GrammarParser.cpp" +#line 4477 "GrammarParser.cpp" break; - case 199: // Type: TemplateType -#line 1652 "../../obj/src/GrammarParser.y" + case 201: // Type: TemplateType +#line 1700 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < TemplateType::Ptr > (); } -#line 4462 "GrammarParser.cpp" +#line 4485 "GrammarParser.cpp" break; - case 200: // Type: RelationType -#line 1656 "../../obj/src/GrammarParser.y" + case 202: // Type: RelationType +#line 1704 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < RelationType::Ptr > (); } -#line 4470 "GrammarParser.cpp" +#line 4493 "GrammarParser.cpp" break; - case 201: // Type: FixedSizedType -#line 1660 "../../obj/src/GrammarParser.y" + case 203: // Type: FixedSizedType +#line 1708 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < FixedSizedType::Ptr > (); } -#line 4478 "GrammarParser.cpp" +#line 4501 "GrammarParser.cpp" break; - case 202: // BasicType: IdentifierPath -#line 1668 "../../obj/src/GrammarParser.y" + case 204: // BasicType: IdentifierPath +#line 1716 "../../obj/src/GrammarParser.y" { yylhs.value.as < BasicType::Ptr > () = Ast::make< BasicType >( yylhs.location, yystack_[0].value.as < IdentifierPath::Ptr > () ); } -#line 4486 "GrammarParser.cpp" +#line 4509 "GrammarParser.cpp" break; - case 203: // TupleType: "(" Types "," Type ")" -#line 1676 "../../obj/src/GrammarParser.y" + case 205: // TupleType: "(" Types "," Type ")" +#line 1724 "../../obj/src/GrammarParser.y" { auto subTypes = yystack_[3].value.as < Types::Ptr > (); yystack_[1].value.as < libcasm_fe::Ast::Type::Ptr > ()->setDelimiterToken( yystack_[2].value.as < Ast::Token::Ptr > () ); subTypes->add( yystack_[1].value.as < libcasm_fe::Ast::Type::Ptr > () ); yylhs.value.as < TupleType::Ptr > () = Ast::make< TupleType >( yylhs.location, yystack_[4].value.as < Ast::Token::Ptr > (), subTypes, yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4497 "GrammarParser.cpp" +#line 4520 "GrammarParser.cpp" break; - case 204: // RecordType: "(" TypedVariables "," TypedVariable ")" -#line 1687 "../../obj/src/GrammarParser.y" + case 206: // RecordType: "(" TypedVariables "," TypedVariable ")" +#line 1735 "../../obj/src/GrammarParser.y" { auto namedSubTypes = yystack_[3].value.as < VariableDefinitions::Ptr > (); yystack_[1].value.as < VariableDefinition::Ptr > ()->setDelimiterToken( yystack_[2].value.as < Ast::Token::Ptr > () ); namedSubTypes->add( yystack_[1].value.as < VariableDefinition::Ptr > () ); yylhs.value.as < RecordType::Ptr > () = Ast::make< RecordType >( yylhs.location, yystack_[4].value.as < Ast::Token::Ptr > (), namedSubTypes, yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4508 "GrammarParser.cpp" +#line 4531 "GrammarParser.cpp" break; - case 205: // TemplateType: IdentifierPath "<" Types ">" -#line 1698 "../../obj/src/GrammarParser.y" + case 207: // TemplateType: IdentifierPath "<" Types ">" +#line 1746 "../../obj/src/GrammarParser.y" { yylhs.value.as < TemplateType::Ptr > () = Ast::make< TemplateType >( yylhs.location, yystack_[3].value.as < IdentifierPath::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Types::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4516 "GrammarParser.cpp" +#line 4539 "GrammarParser.cpp" break; - case 206: // RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" -#line 1706 "../../obj/src/GrammarParser.y" + case 208: // RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" +#line 1754 "../../obj/src/GrammarParser.y" { yylhs.value.as < RelationType::Ptr > () = Ast::make< RelationType >( yylhs.location, yystack_[5].value.as < IdentifierPath::Ptr > (), yystack_[4].value.as < Ast::Token::Ptr > (), yystack_[3].value.as < Types::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4524 "GrammarParser.cpp" +#line 4547 "GrammarParser.cpp" break; - case 207: // FixedSizedType: IdentifierPath "'" Term -#line 1714 "../../obj/src/GrammarParser.y" + case 209: // FixedSizedType: IdentifierPath "'" Term +#line 1762 "../../obj/src/GrammarParser.y" { yylhs.value.as < FixedSizedType::Ptr > () = Ast::make< FixedSizedType >( yylhs.location, yystack_[2].value.as < IdentifierPath::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4532 "GrammarParser.cpp" +#line 4555 "GrammarParser.cpp" break; - case 208: // FunctionParameters: FunctionParameters "*" Type -#line 1726 "../../obj/src/GrammarParser.y" + case 210: // FunctionParameters: FunctionParameters "*" Type +#line 1774 "../../obj/src/GrammarParser.y" { auto types = yystack_[2].value.as < Types::Ptr > (); yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); types->add( yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); yylhs.value.as < Types::Ptr > () = types; } -#line 4543 "GrammarParser.cpp" +#line 4566 "GrammarParser.cpp" break; - case 209: // FunctionParameters: Type -#line 1733 "../../obj/src/GrammarParser.y" + case 211: // FunctionParameters: Type +#line 1781 "../../obj/src/GrammarParser.y" { auto types = Ast::make< Types >( yylhs.location ); types->add( yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); yylhs.value.as < Types::Ptr > () = types; } -#line 4553 "GrammarParser.cpp" +#line 4576 "GrammarParser.cpp" break; - case 210: // MaybeFunctionParameters: FunctionParameters -#line 1743 "../../obj/src/GrammarParser.y" + case 212: // MaybeFunctionParameters: FunctionParameters +#line 1791 "../../obj/src/GrammarParser.y" { yylhs.value.as < Types::Ptr > () = yystack_[0].value.as < Types::Ptr > (); } -#line 4561 "GrammarParser.cpp" +#line 4584 "GrammarParser.cpp" break; - case 211: // MaybeFunctionParameters: %empty -#line 1747 "../../obj/src/GrammarParser.y" + case 213: // MaybeFunctionParameters: %empty +#line 1795 "../../obj/src/GrammarParser.y" { yylhs.value.as < Types::Ptr > () = Ast::make< Types >( yylhs.location ); } -#line 4569 "GrammarParser.cpp" +#line 4592 "GrammarParser.cpp" break; - case 212: // Parameters: Parameters "," TypedAttributedVariable -#line 1755 "../../obj/src/GrammarParser.y" + case 214: // Parameters: Parameters "," TypedAttributedVariable +#line 1803 "../../obj/src/GrammarParser.y" { auto parameters = yystack_[2].value.as < VariableDefinitions::Ptr > (); yystack_[0].value.as < VariableDefinition::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); parameters->add( yystack_[0].value.as < VariableDefinition::Ptr > () ); yylhs.value.as < VariableDefinitions::Ptr > () = parameters; } -#line 4580 "GrammarParser.cpp" +#line 4603 "GrammarParser.cpp" break; - case 213: // Parameters: TypedAttributedVariable -#line 1762 "../../obj/src/GrammarParser.y" + case 215: // Parameters: TypedAttributedVariable +#line 1810 "../../obj/src/GrammarParser.y" { auto parameters = Ast::make< NodeList< VariableDefinition > >( yylhs.location ); parameters->add( yystack_[0].value.as < VariableDefinition::Ptr > () ); yylhs.value.as < VariableDefinitions::Ptr > () = parameters; } -#line 4590 "GrammarParser.cpp" +#line 4613 "GrammarParser.cpp" break; - case 214: // MaybeDefined: "defined" "{" Term "}" -#line 1776 "../../obj/src/GrammarParser.y" + case 216: // MaybeDefined: "defined" "{" Term "}" +#line 1824 "../../obj/src/GrammarParser.y" { yylhs.value.as < Defined::Ptr > () = Ast::make< Defined >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Expression::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4598 "GrammarParser.cpp" +#line 4621 "GrammarParser.cpp" break; - case 215: // MaybeDefined: %empty -#line 1780 "../../obj/src/GrammarParser.y" + case 217: // MaybeDefined: %empty +#line 1828 "../../obj/src/GrammarParser.y" { yylhs.value.as < Defined::Ptr > () = Ast::make< Defined >( yylhs.location, Token::unresolved(), Token::unresolved(), Ast::make< UndefLiteral >( yylhs.location ), Token::unresolved() ); } -#line 4606 "GrammarParser.cpp" +#line 4629 "GrammarParser.cpp" break; - case 216: // MaybeInitially: "=" "{" Initializers "}" -#line 1788 "../../obj/src/GrammarParser.y" + case 218: // MaybeInitially: "=" "{" Initializers "}" +#line 1836 "../../obj/src/GrammarParser.y" { yylhs.value.as < Initially::Ptr > () = Ast::make< Initially >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Initializers::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4614 "GrammarParser.cpp" +#line 4637 "GrammarParser.cpp" break; - case 217: // MaybeInitially: %empty -#line 1792 "../../obj/src/GrammarParser.y" + case 219: // MaybeInitially: %empty +#line 1840 "../../obj/src/GrammarParser.y" { const auto initializers = Ast::make< Initializers >( yylhs.location ); yylhs.value.as < Initially::Ptr > () = Ast::make< Initially >( yylhs.location, Token::unresolved(), Token::unresolved(), initializers, Token::unresolved() ); } -#line 4623 "GrammarParser.cpp" +#line 4646 "GrammarParser.cpp" break; - case 218: // Initializers: Initializers "," Initializer -#line 1801 "../../obj/src/GrammarParser.y" + case 220: // Initializers: Initializers "," Initializer +#line 1849 "../../obj/src/GrammarParser.y" { auto initializers = yystack_[2].value.as < Initializers::Ptr > (); yystack_[0].value.as < Initializer::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); initializers->add( yystack_[0].value.as < Initializer::Ptr > () ); yylhs.value.as < Initializers::Ptr > () = initializers; } -#line 4634 "GrammarParser.cpp" +#line 4657 "GrammarParser.cpp" break; - case 219: // Initializers: Initializer -#line 1808 "../../obj/src/GrammarParser.y" + case 221: // Initializers: Initializer +#line 1856 "../../obj/src/GrammarParser.y" { auto initializers = Ast::make< Initializers >( yylhs.location ); initializers->add( yystack_[0].value.as < Initializer::Ptr > () ); yylhs.value.as < Initializers::Ptr > () = initializers; } -#line 4644 "GrammarParser.cpp" +#line 4667 "GrammarParser.cpp" break; - case 220: // Initializer: Term -#line 1818 "../../obj/src/GrammarParser.y" + case 222: // Initializer: Term +#line 1866 "../../obj/src/GrammarParser.y" { const auto arguments = Ast::make< Expressions >( yylhs.location ); yylhs.value.as < Initializer::Ptr > () = Ast::make< Initializer >( yylhs.location, Token::unresolved(), arguments, Token::unresolved(), Token::unresolved(), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4653 "GrammarParser.cpp" +#line 4676 "GrammarParser.cpp" break; - case 221: // Initializer: "(" Term ")" "->" Term -#line 1823 "../../obj/src/GrammarParser.y" + case 223: // Initializer: "(" Term ")" "->" Term +#line 1871 "../../obj/src/GrammarParser.y" { auto arguments = Ast::make< Expressions >( yylhs.location ); arguments->add( yystack_[3].value.as < Expression::Ptr > () ); yylhs.value.as < Initializer::Ptr > () = Ast::make< Initializer >( yylhs.location, yystack_[4].value.as < Ast::Token::Ptr > (), arguments, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4663 "GrammarParser.cpp" +#line 4686 "GrammarParser.cpp" break; - case 222: // Initializer: TupleLiteral "->" Term -#line 1829 "../../obj/src/GrammarParser.y" + case 224: // Initializer: TupleLiteral "->" Term +#line 1877 "../../obj/src/GrammarParser.y" { const auto arguments = yystack_[2].value.as < TupleLiteral::Ptr > ()->expressions(); const auto lbToken = yystack_[2].value.as < TupleLiteral::Ptr > ()->leftBracket(); const auto rbToken = yystack_[2].value.as < TupleLiteral::Ptr > ()->rightBracket(); yylhs.value.as < Initializer::Ptr > () = Ast::make< Initializer >( yylhs.location, lbToken, arguments, rbToken, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4674 "GrammarParser.cpp" +#line 4697 "GrammarParser.cpp" break; - case 223: // Identifier: "identifier" -#line 1844 "../../obj/src/GrammarParser.y" + case 225: // Identifier: "identifier" +#line 1892 "../../obj/src/GrammarParser.y" { yylhs.value.as < Identifier::Ptr > () = yystack_[0].value.as < Identifier::Ptr > (); } -#line 4682 "GrammarParser.cpp" +#line 4705 "GrammarParser.cpp" break; - case 224: // Identifier: "in" -#line 1848 "../../obj/src/GrammarParser.y" + case 226: // Identifier: "in" +#line 1896 "../../obj/src/GrammarParser.y" { yylhs.value.as < Identifier::Ptr > () = Ast::make< Identifier >( yylhs.location, "in" ); yylhs.value.as < Identifier::Ptr > ()->setSpans( m_lexer.fetchSpansAndReset() ); } -#line 4691 "GrammarParser.cpp" +#line 4714 "GrammarParser.cpp" break; - case 225: // IdentifierPath: IdentifierPath "::" Identifier -#line 1857 "../../obj/src/GrammarParser.y" + case 227: // IdentifierPath: IdentifierPath "::" Identifier +#line 1905 "../../obj/src/GrammarParser.y" { auto path = yystack_[2].value.as < IdentifierPath::Ptr > (); yystack_[0].value.as < Identifier::Ptr > ()->setDoubleColon( yystack_[1].value.as < Ast::Token::Ptr > () ); path->addIdentifier( yystack_[0].value.as < Identifier::Ptr > () ); yylhs.value.as < IdentifierPath::Ptr > () = path; } -#line 4702 "GrammarParser.cpp" +#line 4725 "GrammarParser.cpp" break; - case 226: // IdentifierPath: Identifier -#line 1864 "../../obj/src/GrammarParser.y" + case 228: // IdentifierPath: Identifier +#line 1912 "../../obj/src/GrammarParser.y" { yylhs.value.as < IdentifierPath::Ptr > () = Ast::make< IdentifierPath >( yylhs.location, yystack_[0].value.as < Identifier::Ptr > () ); } -#line 4710 "GrammarParser.cpp" +#line 4733 "GrammarParser.cpp" break; - case 227: // Variable: TypedVariable -#line 1876 "../../obj/src/GrammarParser.y" + case 229: // Variable: TypedVariable +#line 1924 "../../obj/src/GrammarParser.y" { yylhs.value.as < VariableDefinition::Ptr > () = yystack_[0].value.as < VariableDefinition::Ptr > (); } -#line 4718 "GrammarParser.cpp" +#line 4741 "GrammarParser.cpp" break; - case 228: // Variable: Identifier -#line 1880 "../../obj/src/GrammarParser.y" + case 230: // Variable: Identifier +#line 1928 "../../obj/src/GrammarParser.y" { const auto unresolvedType = Ast::make< UnresolvedType >( yylhs.location ); yylhs.value.as < VariableDefinition::Ptr > () = Ast::make< VariableDefinition >( yylhs.location, yystack_[0].value.as < Identifier::Ptr > (), Token::unresolved(), unresolvedType ); } -#line 4727 "GrammarParser.cpp" +#line 4750 "GrammarParser.cpp" break; - case 229: // AttributedVariables: AttributedVariables "," AttributedVariable -#line 1889 "../../obj/src/GrammarParser.y" + case 231: // AttributedVariables: AttributedVariables "," AttributedVariable +#line 1937 "../../obj/src/GrammarParser.y" { auto variables = yystack_[2].value.as < VariableDefinitions::Ptr > (); yystack_[0].value.as < VariableDefinition::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); variables->add( yystack_[0].value.as < VariableDefinition::Ptr > () ); yylhs.value.as < VariableDefinitions::Ptr > () = variables; } -#line 4738 "GrammarParser.cpp" +#line 4761 "GrammarParser.cpp" break; - case 230: // AttributedVariables: AttributedVariable -#line 1896 "../../obj/src/GrammarParser.y" + case 232: // AttributedVariables: AttributedVariable +#line 1944 "../../obj/src/GrammarParser.y" { auto variables = Ast::make< VariableDefinitions >( yylhs.location ); variables->add( yystack_[0].value.as < VariableDefinition::Ptr > () ); yylhs.value.as < VariableDefinitions::Ptr > () = variables; } -#line 4748 "GrammarParser.cpp" +#line 4771 "GrammarParser.cpp" break; - case 231: // TypedVariables: TypedVariables "," TypedVariable -#line 1906 "../../obj/src/GrammarParser.y" + case 233: // TypedVariables: TypedVariables "," TypedVariable +#line 1954 "../../obj/src/GrammarParser.y" { auto typedVariables = yystack_[2].value.as < VariableDefinitions::Ptr > (); yystack_[0].value.as < VariableDefinition::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); typedVariables->add( yystack_[0].value.as < VariableDefinition::Ptr > () ); yylhs.value.as < VariableDefinitions::Ptr > () = typedVariables; } -#line 4759 "GrammarParser.cpp" +#line 4782 "GrammarParser.cpp" break; - case 232: // TypedVariables: TypedVariable -#line 1913 "../../obj/src/GrammarParser.y" + case 234: // TypedVariables: TypedVariable +#line 1961 "../../obj/src/GrammarParser.y" { auto typedVariables = Ast::make< VariableDefinitions >( yylhs.location ); typedVariables->add( yystack_[0].value.as < VariableDefinition::Ptr > () ); yylhs.value.as < VariableDefinitions::Ptr > () = typedVariables; } -#line 4769 "GrammarParser.cpp" +#line 4792 "GrammarParser.cpp" break; - case 233: // TypedVariable: Identifier ":" Type -#line 1923 "../../obj/src/GrammarParser.y" + case 235: // TypedVariable: Identifier ":" Type +#line 1971 "../../obj/src/GrammarParser.y" { auto variable = Ast::make< VariableDefinition >( yylhs.location, yystack_[2].value.as < Identifier::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); yylhs.value.as < VariableDefinition::Ptr > () = variable; } -#line 4778 "GrammarParser.cpp" +#line 4801 "GrammarParser.cpp" break; - case 234: // AttributedVariable: Attributes Variable -#line 1932 "../../obj/src/GrammarParser.y" + case 236: // AttributedVariable: Attributes Variable +#line 1980 "../../obj/src/GrammarParser.y" { auto variable = yystack_[0].value.as < VariableDefinition::Ptr > (); variable->setAttributes( yystack_[1].value.as < Attributes::Ptr > () ); yylhs.value.as < VariableDefinition::Ptr > () = variable; } -#line 4788 "GrammarParser.cpp" +#line 4811 "GrammarParser.cpp" break; - case 235: // AttributedVariable: Variable -#line 1938 "../../obj/src/GrammarParser.y" + case 237: // AttributedVariable: Variable +#line 1986 "../../obj/src/GrammarParser.y" { yylhs.value.as < VariableDefinition::Ptr > () = yystack_[0].value.as < VariableDefinition::Ptr > (); } -#line 4796 "GrammarParser.cpp" +#line 4819 "GrammarParser.cpp" break; - case 236: // TypedAttributedVariable: Attributes TypedVariable -#line 1946 "../../obj/src/GrammarParser.y" + case 238: // TypedAttributedVariable: Attributes TypedVariable +#line 1994 "../../obj/src/GrammarParser.y" { auto variable = yystack_[0].value.as < VariableDefinition::Ptr > (); variable->setAttributes( yystack_[1].value.as < Attributes::Ptr > () ); yylhs.value.as < VariableDefinition::Ptr > () = variable; } -#line 4806 "GrammarParser.cpp" +#line 4829 "GrammarParser.cpp" break; - case 237: // TypedAttributedVariable: TypedVariable -#line 1952 "../../obj/src/GrammarParser.y" + case 239: // TypedAttributedVariable: TypedVariable +#line 2000 "../../obj/src/GrammarParser.y" { yylhs.value.as < VariableDefinition::Ptr > () = yystack_[0].value.as < VariableDefinition::Ptr > (); } -#line 4814 "GrammarParser.cpp" +#line 4837 "GrammarParser.cpp" break; - case 238: // VariableBindings: VariableBindings "," VariableBinding -#line 1964 "../../obj/src/GrammarParser.y" + case 240: // VariableBindings: VariableBindings "," VariableBinding +#line 2012 "../../obj/src/GrammarParser.y" { auto variableBindings = yystack_[2].value.as < VariableBindings::Ptr > (); yystack_[0].value.as < VariableBinding::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); variableBindings->add( yystack_[0].value.as < VariableBinding::Ptr > () ); yylhs.value.as < VariableBindings::Ptr > () = variableBindings; } -#line 4825 "GrammarParser.cpp" +#line 4848 "GrammarParser.cpp" break; - case 239: // VariableBindings: VariableBinding -#line 1971 "../../obj/src/GrammarParser.y" + case 241: // VariableBindings: VariableBinding +#line 2019 "../../obj/src/GrammarParser.y" { auto variableBindings = Ast::make< VariableBindings >( yylhs.location ); variableBindings->add( yystack_[0].value.as < VariableBinding::Ptr > () ); yylhs.value.as < VariableBindings::Ptr > () = variableBindings; } -#line 4835 "GrammarParser.cpp" +#line 4858 "GrammarParser.cpp" break; - case 240: // VariableBinding: AttributedVariable "=" Term -#line 1980 "../../obj/src/GrammarParser.y" + case 242: // VariableBinding: AttributedVariable "=" Term +#line 2028 "../../obj/src/GrammarParser.y" { yylhs.value.as < VariableBinding::Ptr > () = Ast::make< VariableBinding >( yylhs.location, yystack_[2].value.as < VariableDefinition::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4843 "GrammarParser.cpp" +#line 4866 "GrammarParser.cpp" break; - case 241: // LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition -#line 1992 "../../obj/src/GrammarParser.y" + case 243: // LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition +#line 2040 "../../obj/src/GrammarParser.y" { auto definitions = yystack_[2].value.as < FunctionDefinitions::Ptr > (); yystack_[0].value.as < FunctionDefinition::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); definitions->add( yystack_[0].value.as < FunctionDefinition::Ptr > () ); yylhs.value.as < FunctionDefinitions::Ptr > () = definitions; } -#line 4854 "GrammarParser.cpp" +#line 4877 "GrammarParser.cpp" break; - case 242: // LocalFunctionDefinitions: AttributedLocalFunctionDefinition -#line 1999 "../../obj/src/GrammarParser.y" + case 244: // LocalFunctionDefinitions: AttributedLocalFunctionDefinition +#line 2047 "../../obj/src/GrammarParser.y" { auto definitions = Ast::make< FunctionDefinitions >( yylhs.location ); definitions->add( yystack_[0].value.as < FunctionDefinition::Ptr > () ); yylhs.value.as < FunctionDefinitions::Ptr > () = definitions; } -#line 4864 "GrammarParser.cpp" +#line 4887 "GrammarParser.cpp" break; - case 243: // AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition -#line 2008 "../../obj/src/GrammarParser.y" + case 245: // AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition +#line 2056 "../../obj/src/GrammarParser.y" { auto definition = yystack_[0].value.as < FunctionDefinition::Ptr > (); definition->setAttributes( yystack_[1].value.as < Attributes::Ptr > () ); yylhs.value.as < FunctionDefinition::Ptr > () = definition; } -#line 4874 "GrammarParser.cpp" +#line 4897 "GrammarParser.cpp" break; - case 244: // AttributedLocalFunctionDefinition: LocalFunctionDefinition -#line 2014 "../../obj/src/GrammarParser.y" + case 246: // AttributedLocalFunctionDefinition: LocalFunctionDefinition +#line 2062 "../../obj/src/GrammarParser.y" { yylhs.value.as < FunctionDefinition::Ptr > () = yystack_[0].value.as < FunctionDefinition::Ptr > (); } -#line 4882 "GrammarParser.cpp" +#line 4905 "GrammarParser.cpp" break; - case 245: // AttributedLocalFunctionDefinition: error -#line 2018 "../../obj/src/GrammarParser.y" + case 247: // AttributedLocalFunctionDefinition: error +#line 2066 "../../obj/src/GrammarParser.y" { yylhs.value.as < FunctionDefinition::Ptr > () = nullptr; } -#line 4890 "GrammarParser.cpp" +#line 4913 "GrammarParser.cpp" break; - case 246: // LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially -#line 2025 "../../obj/src/GrammarParser.y" + case 248: // LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially +#line 2073 "../../obj/src/GrammarParser.y" { yylhs.value.as < FunctionDefinition::Ptr > () = Ast::make< FunctionDefinition >( yylhs.location, Token::unresolved(), yystack_[6].value.as < Identifier::Ptr > (), yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Types::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Defined::Ptr > (), yystack_[0].value.as < Initially::Ptr > () ); yylhs.value.as < FunctionDefinition::Ptr > ()->setClassification( FunctionDefinition::Classification::LOCAL ); @@ -4902,77 +4925,77 @@ namespace libcasm_fe { initializer->setFunction( yylhs.value.as < FunctionDefinition::Ptr > () ); } } -#line 4906 "GrammarParser.cpp" +#line 4929 "GrammarParser.cpp" break; - case 247: // Attributes: Attributes Attribute -#line 2045 "../../obj/src/GrammarParser.y" + case 249: // Attributes: Attributes Attribute +#line 2093 "../../obj/src/GrammarParser.y" { auto attributes = yystack_[1].value.as < Attributes::Ptr > (); attributes->add( yystack_[0].value.as < Attribute::Ptr > () ); yylhs.value.as < Attributes::Ptr > () = attributes; } -#line 4916 "GrammarParser.cpp" +#line 4939 "GrammarParser.cpp" break; - case 248: // Attributes: Attribute -#line 2051 "../../obj/src/GrammarParser.y" + case 250: // Attributes: Attribute +#line 2099 "../../obj/src/GrammarParser.y" { auto attributes = Ast::make< Attributes >( yylhs.location ); attributes->add( yystack_[0].value.as < Attribute::Ptr > () ); yylhs.value.as < Attributes::Ptr > () = attributes; } -#line 4926 "GrammarParser.cpp" +#line 4949 "GrammarParser.cpp" break; - case 249: // Attribute: "[" BasicAttribute "]" -#line 2060 "../../obj/src/GrammarParser.y" + case 251: // Attribute: "[" BasicAttribute "]" +#line 2108 "../../obj/src/GrammarParser.y" { auto attribute = yystack_[1].value.as < BasicAttribute::Ptr > (); yystack_[1].value.as < BasicAttribute::Ptr > ()->setLeftBrace( yystack_[2].value.as < Ast::Token::Ptr > () ); yystack_[1].value.as < BasicAttribute::Ptr > ()->setRightBrace( yystack_[0].value.as < Ast::Token::Ptr > () ); yylhs.value.as < Attribute::Ptr > () = attribute; } -#line 4937 "GrammarParser.cpp" +#line 4960 "GrammarParser.cpp" break; - case 250: // Attribute: "[" ExpressionAttribute "]" -#line 2067 "../../obj/src/GrammarParser.y" + case 252: // Attribute: "[" ExpressionAttribute "]" +#line 2115 "../../obj/src/GrammarParser.y" { auto attribute = yystack_[1].value.as < ExpressionAttribute::Ptr > (); yystack_[1].value.as < ExpressionAttribute::Ptr > ()->setLeftBrace( yystack_[2].value.as < Ast::Token::Ptr > () ); yystack_[1].value.as < ExpressionAttribute::Ptr > ()->setRightBrace( yystack_[0].value.as < Ast::Token::Ptr > () ); yylhs.value.as < Attribute::Ptr > () = attribute; } -#line 4948 "GrammarParser.cpp" +#line 4971 "GrammarParser.cpp" break; - case 251: // Attribute: "[" error "]" -#line 2074 "../../obj/src/GrammarParser.y" + case 253: // Attribute: "[" error "]" +#line 2122 "../../obj/src/GrammarParser.y" { yylhs.value.as < Attribute::Ptr > () = nullptr; } -#line 4956 "GrammarParser.cpp" +#line 4979 "GrammarParser.cpp" break; - case 252: // BasicAttribute: Identifier -#line 2081 "../../obj/src/GrammarParser.y" + case 254: // BasicAttribute: Identifier +#line 2129 "../../obj/src/GrammarParser.y" { yylhs.value.as < BasicAttribute::Ptr > () = Ast::make< BasicAttribute >( yylhs.location, yystack_[0].value.as < Identifier::Ptr > () ); } -#line 4964 "GrammarParser.cpp" +#line 4987 "GrammarParser.cpp" break; - case 253: // ExpressionAttribute: Identifier Term -#line 2088 "../../obj/src/GrammarParser.y" + case 255: // ExpressionAttribute: Identifier Term +#line 2136 "../../obj/src/GrammarParser.y" { yylhs.value.as < ExpressionAttribute::Ptr > () = Ast::make< ExpressionAttribute >( yylhs.location, yystack_[1].value.as < Identifier::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4972 "GrammarParser.cpp" +#line 4995 "GrammarParser.cpp" break; -#line 4976 "GrammarParser.cpp" +#line 4999 "GrammarParser.cpp" default: break; @@ -5321,784 +5344,785 @@ namespace libcasm_fe { } - const short Parser::yypact_ninf_ = -356; + const short Parser::yypact_ninf_ = -347; - const short Parser::yytable_ninf_ = -210; + const short Parser::yytable_ninf_ = -212; const short Parser::yypact_[] = { - 33, -356, 30, 50, 280, 68, -356, -18, -356, -356, - 1941, -2, 22, -356, -356, -5, 16, 16, 16, 16, - 16, 16, 16, 16, -12, 16, 130, -356, -356, -356, - -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, - -356, 296, -356, -356, -356, 2, 2, 2, 1941, 2, - -356, -356, -356, 1941, 715, 715, 1461, 1201, 715, 16, - -356, -356, -356, -356, -356, -356, 2655, 7, -356, 13, - -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, - -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, - -356, -356, -356, -356, -356, 133, -356, -356, 2006, 21, - 0, 55, 76, 73, 86, 120, 113, 125, 142, -12, - 143, -356, -356, -356, -356, -356, -356, 56, 158, -356, - -356, 162, -356, -356, 173, 37, -356, 2, 60, -356, - 84, 2192, 94, -356, -356, -356, 175, 181, 2410, 164, - -356, 208, 193, -356, 135, 2445, 49, 21, 1941, 1941, - 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, 1941, - 1941, 1941, 1941, 1941, 1941, -12, 10, 1266, 1331, 16, - 1461, 2655, 203, 174, -356, 4, -12, 215, 1811, 14, - -12, -12, 24, 1941, 16, 222, 226, 231, -356, 162, - 105, 232, -356, 241, -12, -12, 1941, -12, -12, 1941, - 1941, 2, -356, 1941, 2, 1941, 1941, 1941, -356, 1941, - -356, -356, 16, 1941, -356, -356, 1941, 1941, -356, 275, - 2690, 2720, 768, 288, 288, 354, 261, 261, 229, 229, - 229, -356, 768, 354, 261, 261, -356, -356, 262, 264, - -356, 170, 2655, 268, -356, 179, -356, 2480, 1941, -356, - 2006, 269, 182, 162, -356, -356, 2, 272, 18, 861, - 931, -356, 2, 29, 2, 2, 1811, 1941, 1941, 1941, - 1001, 1071, -356, -356, -356, -356, -356, -356, -356, -356, - -356, -356, -356, -356, -356, -356, 243, 116, 257, 282, - 190, 285, -356, -356, 2655, -356, 322, 149, -12, 16, - 267, 294, 200, 3, 283, 287, -356, -356, 289, -356, - 2655, 2655, -356, 2340, -356, 2030, 2269, 2375, 2515, -356, - 208, 2655, 2655, 2550, 1396, -356, -356, -356, -356, 291, - 2655, -356, 295, 297, 2, -356, 1941, -356, -356, 189, - -356, 2, 329, 1531, -356, 337, 1601, 100, -356, 303, - 104, -356, -356, 2, 107, 126, -356, 2231, 2305, 2071, - 317, 1671, 300, 1741, 1941, -9, -6, 1811, 17, -356, - 16, 16, -356, -356, -356, 27, -356, 323, 324, -356, - -356, 267, 325, 330, -12, -356, -12, -12, -12, 1941, - 1941, 1941, 1941, -356, -356, 338, -356, 196, 1941, -12, - -12, -356, 2655, -356, 18, -356, -356, -356, -356, -356, - -356, 1811, -12, 1811, 29, -356, 1941, 1941, 1811, 336, - 1811, -356, -356, -356, -356, 2655, 1811, -12, 1811, -12, - -356, -356, -356, 5, 8, -356, -356, -356, -356, -356, - -356, 267, -356, -356, 328, 377, 2655, 2655, 2655, 2655, - -356, -356, 2655, 344, 348, -356, -356, 327, -356, -356, - 520, 2112, 369, 1136, -356, -356, 351, -356, 356, -12, - -12, 352, -356, 349, 359, 1941, 1941, -12, 1811, 1941, - 1811, 1811, 367, 353, 355, 1876, -356, 2585, 1811, 1811, - 357, 360, -356, 1941, 371, -356, 2655, 2655, 377, -356, - 2153, -356, -356, -356, 1811, 1811, -356, -356, 1811, -356, - -356, -12, -12, 2620, 2006, 359, 1811, -356, -356, -356, - -356, -356, -356, 198, -356, -356, -356 + 26, -347, 25, 61, 234, 27, -347, 37, -347, -347, + 1915, 126, 142, -347, -347, -2, 9, 9, 9, 9, + 9, 9, 9, 9, -1, 9, 130, -347, -347, -347, + -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, + -347, 286, -347, -347, -347, 2, 2, 2, 1915, 2, + -347, -347, -347, 1915, 556, 556, 1435, 1175, 556, 9, + -347, -347, -347, -347, -347, -347, 2597, 106, -347, 12, + -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, + -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, + -347, -347, -347, -347, -347, 134, -347, -347, 1980, 167, + 95, 28, -16, 181, 178, 197, 112, 200, 206, -1, + 217, -347, -347, -347, -347, -347, -347, 59, 205, -347, + -347, 216, -347, -347, 225, 7, -347, 2, 14, -347, + 50, 688, 57, -347, -347, -347, 227, 219, 2352, 136, + -347, 255, 245, -347, 212, 2387, -6, 167, 1915, 1915, + 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, 1915, + 1915, 1915, 1915, 1915, 1915, -1, 8, 1240, 1305, 9, + 1435, 2597, 243, -5, -347, 6, -1, 259, 1785, 13, + -1, -1, 3, 1915, 9, 261, 262, 256, -347, 216, + -11, 260, -347, 268, -1, -1, 1915, -1, -1, 1915, + 1915, 2, -347, 1915, 2, 1915, 1915, 1915, -347, 1915, + -347, -347, 9, 1915, -347, -347, 1915, 1915, -347, 2703, + 2667, 2697, 2632, 242, 242, 329, 237, 237, 265, 265, + 265, -347, 2632, 329, 237, 237, -347, -347, 273, 278, + -347, 171, 2597, 283, -347, 201, -347, 2422, 1915, -347, + 1980, 284, 202, 216, -347, -347, 2, 287, 17, 900, + 970, -347, 2, 20, 2, 2, 1785, 1915, 1915, 1915, + 1040, 1110, -347, -347, -347, -347, -347, -347, -347, -347, + -347, -347, -347, -347, -347, -347, 267, 115, 266, 290, + 218, 293, -347, -347, 2597, -347, 24, 147, -1, 9, + 151, 294, 135, 241, 281, 275, -347, -347, 277, -347, + 2597, 2597, -347, 2282, -347, 2047, 2247, 2317, 2457, -347, + 255, 2597, 2597, 2492, 1370, -347, -347, -347, -347, 279, + 2597, -347, 280, 288, 2, -347, 1915, -347, -347, 48, + -347, 2, 332, 1505, -347, 333, 1575, 58, -347, 302, + 94, -347, -347, 2, 99, 100, -347, 2209, 830, 2088, + 305, 1645, 292, 1715, 1915, -8, 11, 1785, 309, -347, + -347, 60, 9, 9, -347, -347, -347, 42, -347, 311, + 317, -347, -347, 151, 319, 328, -1, -347, -1, -1, + -1, 1915, 1915, 1915, 1915, -347, -347, 335, -347, 226, + 1915, -1, -1, -347, 2597, -347, 17, -347, -347, -347, + -347, -347, -347, 1785, -1, 1785, 20, -347, 1915, 1915, + 1785, 334, 1785, -347, -347, -347, -347, 2597, 1785, -1, + 1785, -1, -347, 176, -347, -347, 118, 75, -347, -347, + -347, -347, -347, -347, 151, -347, -347, 320, 374, 2597, + 2597, 2597, 2597, -347, -347, 2597, 341, 349, -347, -347, + 330, -347, -347, 2006, 2129, 369, 775, -347, -347, 351, + -347, 353, 389, -1, -1, 352, -347, 355, 361, 1915, + 1915, -1, 1785, 1915, 1785, 1785, 356, 360, 362, 1850, + -347, 2527, 1785, 1785, -347, 342, 354, -347, 1915, 370, + -347, 2597, 2597, 374, -347, 2170, -347, -347, -347, 1785, + 1785, -347, -347, 1785, -347, -347, -1, -1, 2562, 1980, + 361, 1785, -347, -347, -347, -347, -347, -347, 65, -347, + -347, -347 }; const unsigned char Parser::yydefact_[] = { - 0, 4, 0, 0, 0, 0, 248, 0, 224, 223, - 252, 0, 0, 1, 9, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 0, 250, 0, 226, 225, + 254, 0, 0, 1, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 0, 3, 247, 251, 0, 0, 0, 0, 0, - 175, 177, 176, 0, 0, 0, 0, 0, 0, 0, - 181, 182, 178, 179, 180, 183, 253, 107, 109, 118, - 141, 142, 119, 143, 108, 110, 111, 112, 113, 114, - 115, 120, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 226, 144, 249, 250, 0, 22, - 0, 0, 0, 226, 43, 0, 46, 0, 0, 0, - 0, 196, 197, 198, 199, 200, 201, 202, 0, 5, - 7, 228, 235, 227, 0, 0, 239, 0, 0, 230, - 0, 0, 0, 140, 121, 122, 0, 0, 106, 0, - 192, 226, 0, 185, 0, 106, 0, 184, 0, 0, + 21, 0, 3, 249, 253, 0, 0, 0, 0, 0, + 177, 179, 178, 0, 0, 0, 0, 0, 0, 0, + 183, 184, 180, 181, 182, 185, 255, 109, 111, 120, + 143, 144, 121, 145, 110, 112, 113, 114, 115, 116, + 117, 122, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 228, 146, 251, 252, 0, 22, + 0, 0, 0, 228, 41, 0, 44, 0, 0, 0, + 0, 198, 199, 200, 201, 202, 203, 204, 0, 5, + 7, 230, 237, 229, 0, 0, 241, 0, 0, 232, + 0, 0, 0, 142, 123, 124, 0, 0, 108, 0, + 194, 228, 0, 187, 0, 108, 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 220, 173, 0, 219, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 195, 226, - 202, 0, 232, 0, 0, 211, 0, 211, 0, 0, - 0, 0, 234, 0, 0, 0, 0, 0, 117, 0, - 116, 190, 0, 0, 187, 186, 0, 0, 162, 137, - 135, 136, 139, 123, 124, 130, 131, 132, 125, 126, - 127, 128, 138, 129, 133, 134, 156, 152, 148, 0, - 153, 0, 106, 0, 145, 0, 225, 106, 0, 23, - 0, 0, 0, 0, 237, 213, 0, 0, 0, 0, - 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 0, 103, 141, 0, - 0, 0, 42, 44, 45, 47, 0, 0, 0, 0, - 0, 0, 0, 195, 210, 0, 207, 209, 0, 233, - 240, 157, 238, 0, 229, 0, 0, 0, 105, 191, - 0, 193, 105, 0, 0, 155, 154, 147, 146, 116, - 222, 218, 0, 0, 0, 236, 0, 39, 41, 0, - 37, 0, 0, 0, 64, 0, 0, 0, 245, 0, - 0, 242, 244, 0, 0, 0, 93, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, - 0, 0, 51, 52, 54, 0, 50, 194, 231, 57, - 58, 60, 0, 0, 0, 205, 0, 0, 0, 0, - 0, 0, 0, 189, 188, 0, 149, 0, 0, 0, - 0, 212, 25, 24, 0, 38, 101, 99, 63, 97, - 95, 0, 211, 0, 0, 243, 0, 0, 0, 0, - 0, 96, 94, 100, 98, 102, 0, 0, 0, 0, - 29, 48, 34, 0, 0, 49, 53, 203, 204, 59, - 56, 0, 194, 208, 0, 215, 160, 159, 158, 161, - 151, 150, 221, 0, 0, 40, 88, 0, 89, 241, - 0, 0, 79, 0, 104, 32, 0, 30, 0, 211, - 211, 0, 206, 0, 217, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, - 0, 0, 55, 0, 0, 36, 27, 26, 215, 90, - 0, 92, 80, 82, 0, 0, 81, 83, 0, 33, - 31, 0, 0, 0, 0, 217, 0, 85, 86, 87, - 61, 62, 214, 0, 246, 91, 216 + 0, 222, 175, 0, 221, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 197, 228, + 204, 0, 234, 0, 0, 213, 0, 213, 0, 0, + 0, 0, 236, 0, 0, 0, 0, 0, 119, 0, + 118, 192, 0, 0, 189, 188, 0, 0, 164, 139, + 137, 138, 141, 125, 126, 132, 133, 134, 127, 128, + 129, 130, 140, 131, 135, 136, 158, 154, 150, 0, + 155, 0, 108, 0, 147, 0, 227, 108, 0, 23, + 0, 0, 0, 0, 239, 215, 0, 0, 0, 0, + 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 28, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 0, 105, 143, 0, + 0, 0, 40, 42, 43, 45, 0, 0, 0, 0, + 0, 0, 0, 197, 212, 0, 209, 211, 0, 235, + 242, 159, 240, 0, 231, 0, 0, 0, 107, 193, + 0, 195, 107, 0, 0, 157, 156, 149, 148, 118, + 224, 220, 0, 0, 0, 238, 0, 37, 39, 0, + 35, 0, 0, 0, 66, 0, 0, 0, 247, 0, + 0, 244, 246, 0, 0, 0, 95, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 50, 0, 0, 0, 53, 54, 56, 0, 52, 196, + 233, 59, 60, 62, 0, 0, 0, 207, 0, 0, + 0, 0, 0, 0, 0, 191, 190, 0, 151, 0, + 0, 0, 0, 214, 25, 24, 0, 36, 103, 101, + 65, 99, 97, 0, 213, 0, 0, 245, 0, 0, + 0, 0, 0, 98, 96, 102, 100, 104, 0, 0, + 0, 0, 29, 0, 46, 49, 0, 0, 51, 55, + 205, 206, 61, 58, 0, 196, 210, 0, 217, 162, + 161, 160, 163, 153, 152, 223, 0, 0, 38, 90, + 0, 91, 243, 0, 0, 81, 0, 106, 32, 0, + 30, 0, 0, 213, 213, 0, 208, 0, 219, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 0, 0, 47, 0, 0, 57, 0, 0, + 34, 27, 26, 217, 92, 0, 94, 82, 84, 0, + 0, 83, 85, 0, 33, 31, 0, 0, 0, 0, + 219, 0, 87, 88, 89, 63, 64, 216, 0, 248, + 93, 218 }; const short Parser::yypgoto_[] = { - -356, -356, -356, -356, 399, 387, -356, -356, -283, -279, - -356, -273, 25, -356, -356, -356, -356, -356, -356, -356, - 59, -356, -356, -356, -355, -356, -74, 362, -356, -356, - -356, -356, -50, -356, -356, -356, -356, -356, -356, -356, - -356, -356, -356, -55, 51, -30, -356, 211, 258, -356, - -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, - -356, -356, 271, -356, -356, -356, -356, -356, -356, -356, - -97, -356, -356, 227, 249, -21, -356, -356, -356, -356, - -356, -356, -356, -190, 259, -53, -69, -67, 202, 486, - -15, 326, -39, -356, -61, -23, 123, 199, 263, -356, - 46, 110, 12, 6, -356, -356 + -347, -347, -347, -347, 399, 387, -347, -347, -280, -275, + -284, 23, -347, -347, -347, -347, -347, -347, 62, -347, + -347, 55, -347, -347, -347, -346, -347, -75, 357, -347, + -347, -347, -347, -53, -347, -347, -347, -347, -347, -347, + -347, -347, -347, -347, -52, 53, 164, -347, 204, 400, + -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, + -347, -347, -347, 274, -347, -347, -347, -347, -347, -347, + -347, -97, -347, -347, 229, 244, -21, -347, -347, -347, + -347, -347, -347, -347, -189, 263, -60, -72, -70, 207, + 310, -15, 323, -36, -347, -107, -29, 117, 190, 253, + -347, 39, 103, 15, 5, -347, -347 }; const short Parser::yydefgoto_[] = { 0, 3, 4, 26, 27, 28, 29, 30, 31, 32, - 368, 33, 338, 339, 34, 35, 36, 37, 38, 39, - 374, 375, 40, 381, 382, 376, 343, 344, 273, 274, - 275, 485, 486, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 137, 171, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 139, 140, 187, 307, 111, 112, 113, 114, - 115, 116, 304, 305, 252, 474, 495, 173, 174, 94, - 95, 122, 128, 191, 123, 129, 255, 125, 126, 350, - 351, 352, 127, 6, 11, 12 + 33, 338, 339, 34, 35, 36, 37, 38, 370, 371, + 39, 376, 377, 40, 383, 384, 378, 343, 344, 273, + 274, 275, 489, 490, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 137, 171, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 139, 140, 187, 307, 111, 112, 113, + 114, 115, 116, 304, 305, 252, 478, 500, 173, 174, + 94, 95, 122, 128, 191, 123, 129, 255, 125, 126, + 350, 351, 352, 127, 6, 11, 12 }; const short Parser::yytable_[] = { - 99, 172, 144, 110, 104, 251, 106, 308, 130, 117, - 132, 43, 5, 8, 372, 289, 41, 379, 373, 337, - 8, 380, 124, 369, 134, 135, 439, 8, 146, 8, - 348, 7, 370, 25, 371, 8, 1, 44, 41, 8, - 109, 8, 426, 8, 147, 428, 165, 43, 192, 8, - 13, 98, 175, 96, 8, 8, 2, 175, 2, 178, - 179, 66, 200, 469, 427, 167, 470, 429, 2, -209, - 194, 42, 2, 176, 431, 9, -209, 97, 176, 166, - 169, 180, 9, 2, 435, 203, 471, 2, 188, 9, - 293, 9, 372, 62, 190, 432, 373, 9, 379, 131, - 201, 9, 380, 9, 133, 9, 177, 138, 145, 205, - 218, 9, 241, 245, 254, 169, 9, 9, 254, 207, - 195, 166, 2, 204, 181, 411, 196, 178, 179, 413, - -2, 14, 416, 43, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 236, 182, 25, 204, 286, 180, - 190, 417, 184, 172, 370, 257, 371, 204, 379, 291, - 292, 190, 380, 201, 169, 190, 190, 414, 167, 195, - 204, 183, 169, 301, 303, 196, 185, 309, 124, 190, - 190, 314, 190, 190, 2, 168, 346, 256, -118, 204, - 215, 256, 169, 186, 193, 335, 361, 363, 216, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 197, 211, 242, 242, - 198, 247, 457, 326, 199, 354, 355, 212, 208, 286, - 286, 249, 328, 216, 294, 333, 286, 250, 378, 124, - 286, 286, 216, 366, 209, 334, 403, 306, 214, 451, - 310, 311, 404, 334, 313, 526, 315, 316, 317, 216, - 318, 250, 43, 384, 321, 385, 213, 322, 323, 397, - 341, 258, 16, 254, 18, 353, 248, 377, 296, 490, - 491, 14, 297, 190, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 298, 299, 25, 300, 160, 330, + 99, 172, 192, 110, 104, 144, 106, 251, 308, 117, + 43, 130, 369, 132, 289, 5, 124, 374, 337, 41, + 381, 348, 375, 8, 8, 382, 7, 8, 8, 1, + 42, 8, 200, 8, 8, 178, 179, 442, 8, 203, + 25, 41, 8, 428, 147, 8, 43, 372, 169, 373, + 8, 109, 249, 195, 98, 218, 2, 180, 250, 196, + 2, 13, 430, 66, 167, 429, 166, 2, 254, 293, + 201, 2, 254, 194, 2, 205, 25, 204, 368, 177, + 2, 2, 207, 413, 431, 9, 9, 369, 188, 9, + 9, 62, 44, 9, 190, 9, 9, 374, 475, 438, + 9, 131, 375, 381, 9, 405, 133, 9, 382, 138, + 145, 406, 9, 204, 368, 241, 245, 434, 169, 415, + 204, 201, 531, 195, 418, 419, 178, 179, 250, 196, + -2, 14, 43, 474, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 236, 165, 25, 175, 180, 335, + 190, 184, 372, 172, 373, 257, 16, 416, 18, 291, + 292, 190, 204, 204, 381, 190, 190, 167, 176, 382, + 175, 169, 124, 301, 303, 314, 473, 309, 166, 190, + 190, 96, 190, 190, 2, 346, 168, -120, 494, 211, + 256, 176, 380, 169, 256, 361, 363, 97, 386, 212, + 387, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 134, 135, + 242, 242, 146, 247, 326, 460, 169, 254, 354, 355, + 2, 472, 181, 124, 216, 14, 294, 182, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 183, 306, + 25, 185, 310, 311, 328, 333, 313, 186, 315, 316, + 317, 43, 318, 197, 216, 334, 321, 215, 193, 322, + 323, 366, 399, 341, 198, 216, 199, 379, 353, 454, + 208, 334, 209, 190, 495, 496, 152, 153, 2, 216, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 152, 153, 25, 286, 324, 166, 286, 325, 357, 358, - 359, 327, 332, 336, 152, 153, 154, 157, 158, 159, - 160, 286, 364, 286, 2, 365, 367, 286, 25, 155, - 156, 157, 158, 159, 160, 383, 256, 43, 406, 386, - 2, 162, 163, 164, 157, 158, 159, 160, 409, 43, - 387, 412, 388, 442, 398, 443, 444, 445, 399, 190, - 400, 190, 190, 190, 421, 242, 437, 438, 453, 454, - 423, 286, 440, 286, 190, 190, 441, 402, 286, 287, - 286, 450, 463, 472, 473, 475, 286, 190, 286, 476, - 477, 481, 488, 152, 153, 493, 466, 489, 468, 492, - 494, 504, 190, 505, 190, 425, 341, 172, 155, 156, - 157, 158, 159, 160, 503, 119, 353, 514, 120, 455, - 511, 163, 164, 512, 436, 507, 288, 237, 290, 319, - 446, 447, 448, 449, 302, 515, 524, 523, 286, 452, - 286, 286, 331, 202, 190, 190, 498, 401, 286, 286, - 459, 347, 190, 415, 312, 0, 0, 460, 461, 0, - 287, 287, 0, 0, 286, 286, 0, 287, 286, 0, - 0, 287, 287, 0, 0, 0, 286, 0, 10, 0, - 520, 521, 0, 0, 0, 0, 190, 190, 0, 0, - 0, 0, 100, 101, 102, 103, 105, 0, 107, 108, - 0, 118, 0, 0, 487, 0, 0, 288, 288, 0, - 0, 0, 0, 0, 288, 0, 496, 497, 288, 288, - 500, 121, 121, 121, 0, 121, 487, 0, 0, 0, - 272, 0, 141, 0, 513, 0, 0, 0, 0, 478, - 0, 0, 0, 0, 287, 0, 0, 287, 479, 0, - 0, 0, 0, 0, 148, 149, 150, 151, 0, 152, - 153, 154, 287, 0, 287, 0, 0, 0, 287, 0, - 0, 0, 0, 0, 155, 156, 157, 158, 159, 160, - 0, 0, 0, 0, 161, 189, 162, 163, 164, 0, - 0, 288, 0, 0, 288, 0, 0, 0, 0, 0, - 0, 0, 0, 121, 0, 0, 0, 0, 0, 288, - 0, 288, 287, 0, 287, 288, 0, 0, 356, 287, - 0, 287, 0, 0, 0, 0, 0, 287, 0, 287, + 214, 330, 25, 157, 158, 159, 160, -211, 157, 158, + 159, 160, 10, 213, -211, 258, 248, 296, 297, 298, + 357, 358, 359, 299, 300, 324, 100, 101, 102, 103, + 105, 325, 107, 108, 160, 118, 327, 332, 336, 166, + 2, 364, 286, 365, 367, 385, 43, 388, 389, 256, + 390, 408, 400, 401, 411, 121, 121, 121, 43, 121, + 414, 402, 423, 2, 440, 445, 141, 446, 447, 448, + 441, 190, 425, 190, 190, 190, 443, 242, 152, 153, + 456, 457, 287, 433, 444, 476, 190, 190, 453, 404, + 466, 477, 479, 155, 156, 157, 158, 159, 160, 190, + 480, 485, 492, 481, 493, 25, 163, 164, 469, 497, + 471, 498, 499, 508, 190, 516, 190, 427, 509, 189, + 510, 341, 172, 286, 286, 119, 519, 517, 120, 458, + 286, 353, 439, 435, 286, 286, 512, 121, 43, 302, + 237, 319, 290, 520, 449, 450, 451, 452, 529, 528, + 202, 403, 347, 455, 312, 462, 417, 331, 190, 190, + 503, 0, 0, 287, 287, 0, 190, 0, 0, 0, + 287, 463, 464, 0, 287, 287, 238, 0, 0, 246, + 141, 0, 0, 0, 0, 253, 0, 0, 0, 253, + 0, 0, 246, 0, 295, 525, 526, 0, 0, 0, + 0, 190, 190, 0, 0, 0, 0, 286, 0, 0, + 286, 121, 0, 0, 121, 0, 0, 0, 0, 491, + 0, 0, 320, 0, 0, 286, 0, 286, 0, 0, + 0, 286, 501, 502, 0, 272, 505, 0, 0, 0, + 0, 0, 491, 0, 0, 0, 0, 287, 0, 0, + 287, 518, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 287, 253, 287, 340, 0, + 0, 287, 121, 349, 121, 121, 0, 286, 288, 286, + 0, 8, 0, 0, 286, 0, 286, 0, 0, 0, + 0, 0, 286, 0, 286, 0, 0, 50, 51, 52, + 0, 0, 0, 0, 0, 54, 55, 0, 56, 253, + 57, 0, 0, 0, 0, 0, 0, 287, 59, 287, + 0, 0, 0, 356, 287, 0, 287, 0, 0, 0, + 0, 0, 287, 0, 287, 0, 0, 60, 61, 62, + 63, 64, 65, 9, 253, 0, 286, 0, 286, 286, + 0, 407, 0, 0, 0, 0, 286, 286, 0, 288, + 288, 0, 0, 349, 0, 0, 288, 0, 0, 0, + 288, 288, 0, 286, 286, 0, 0, 286, 0, 0, + 0, 0, 436, 437, 0, 286, 287, 0, 287, 287, + 0, 0, 0, 0, 0, 0, 287, 287, 0, 0, + 410, 0, 0, 410, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 287, 287, 0, 340, 287, 410, 206, + 410, 0, 0, 0, 432, 287, 349, 0, 0, 0, + 0, 0, 148, 149, 150, 151, 0, 152, 153, 154, + 0, 0, 0, 288, 0, 0, 288, 0, 0, 0, + 0, 0, 155, 156, 157, 158, 159, 160, 0, 0, + 0, 288, 161, 288, 162, 163, 164, 288, 0, 0, + 459, 0, 461, 0, 0, 0, 486, 465, 0, 467, + 0, 0, 0, 0, 0, 468, 0, 470, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, + 8, 46, 47, 0, 0, 48, 0, 0, 0, 0, + 487, 0, 49, 288, 0, 288, 50, 51, 52, 0, + 288, 0, 288, 53, 54, 55, 0, 56, 288, 57, + 288, 0, 0, 0, 0, 488, 58, 59, 0, 504, + 0, 506, 507, 0, 0, 0, 0, 0, 0, 514, + 515, 0, 0, 0, 0, 0, 60, 61, 62, 63, + 64, 65, 9, 0, 421, 0, 522, 523, 0, 0, + 524, 0, 0, 0, 148, 149, 150, 151, 530, 152, + 153, 154, 288, 0, 288, 288, 0, 0, 0, 0, + 0, 0, 288, 288, 155, 156, 157, 158, 159, 160, + 0, 342, 0, 0, 161, 0, 162, 163, 164, 288, + 288, 0, 0, 288, 0, 0, 0, 0, 259, 0, + 260, 288, 261, 262, 263, 8, 264, 265, 266, 0, + 267, 0, 0, 268, 0, 0, 0, 0, 0, 0, + 269, 50, 51, 52, 0, 0, 0, 0, 0, 54, + 55, 0, 56, 0, 57, 0, 270, 0, 0, 0, + 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, + 0, 345, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 60, 61, 62, 63, 64, 65, 9, 259, 0, + 260, 0, 261, 262, 263, 8, 264, 265, 266, 0, + 267, 0, 0, 268, 0, 0, 0, 0, 0, 0, + 269, 50, 51, 52, 0, 0, 0, 0, 0, 54, + 55, 0, 56, 0, 57, 0, 270, 0, 0, 0, + 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, + 0, 360, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 60, 61, 62, 63, 64, 65, 9, 259, 0, + 260, 0, 261, 262, 263, 8, 264, 265, 266, 0, + 267, 0, 0, 268, 0, 0, 0, 0, 0, 0, + 269, 50, 51, 52, 0, 0, 0, 0, 0, 54, + 55, 0, 56, 0, 57, 0, 270, 0, 0, 0, + 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, + 0, 362, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 60, 61, 62, 63, 64, 65, 9, 259, 0, + 260, 0, 261, 262, 263, 8, 264, 265, 266, 0, + 267, 0, 0, 268, 0, 0, 0, 0, 0, 0, + 269, 50, 51, 52, 0, 0, 0, 0, 0, 54, + 55, 0, 56, 0, 57, 0, 270, 0, 0, 0, + 0, 0, 59, 0, 0, 0, 142, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 60, 61, 62, 63, 64, 65, 9, 45, 0, + 8, 46, 47, 0, 0, 48, 0, 0, 0, 0, + 0, 0, 49, 0, 0, 0, 50, 51, 52, 0, + 0, 0, 0, 53, 54, 55, 0, 56, 0, 57, + 143, 0, 0, 0, 0, 0, 58, 59, 0, 0, + 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 60, 61, 62, 63, + 64, 65, 9, 45, 0, 8, 46, 47, 0, 0, + 48, 0, 0, 0, 0, 0, 0, 49, 0, 0, + 0, 50, 51, 52, 0, 0, 0, 0, 53, 54, + 55, 0, 56, 240, 57, 0, 0, 0, 0, 0, + 0, 58, 59, 0, 0, 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 238, 0, 0, 246, 141, 0, 0, 0, - 0, 253, 0, 0, 0, 253, 0, 0, 246, 288, - 295, 288, 0, 0, 0, 0, 288, 0, 288, 0, - 0, 0, 0, 0, 288, 0, 288, 121, 0, 287, - 121, 287, 287, 0, 0, 0, 0, 0, 320, 287, - 287, 0, 0, 0, 0, 408, 0, 0, 408, 0, - 0, 0, 0, 0, 0, 287, 287, 0, 0, 287, - 0, 0, 0, 408, 0, 408, 0, 287, 0, 430, - 0, 0, 0, 0, 0, 0, 288, 0, 288, 288, - 8, 0, 253, 0, 340, 0, 288, 288, 121, 349, - 121, 121, 0, 0, 0, 0, 50, 51, 52, 0, - 0, 0, 288, 288, 54, 55, 288, 56, 0, 57, - 0, 0, 0, 456, 288, 458, 0, 59, 0, 0, - 462, 0, 464, 0, 0, 253, 0, 0, 465, 0, - 467, 0, 0, 0, 0, 0, 60, 61, 62, 63, - 64, 65, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 148, 149, 150, 0, 0, 152, 153, 154, - 253, 0, 0, 0, 0, 0, 0, 405, 0, 0, - 0, 0, 155, 156, 157, 158, 159, 160, 0, 349, - 499, 0, 501, 502, 162, 163, 164, 0, 0, 0, - 509, 510, 0, 0, 0, 0, 433, 434, 0, 0, - 0, 0, 342, 0, 0, 0, 517, 518, 0, 0, - 519, 0, 0, 0, 0, 0, 0, 0, 525, 259, - 0, 260, 0, 261, 262, 263, 8, 264, 265, 266, - 340, 267, 0, 0, 268, 0, 0, 0, 0, 0, - 349, 269, 50, 51, 52, 0, 0, 0, 0, 0, - 54, 55, 0, 56, 0, 57, 0, 270, 0, 0, - 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, - 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, - 271, 0, 60, 61, 62, 63, 64, 65, 9, 259, - 0, 260, 0, 261, 262, 263, 8, 264, 265, 266, - 0, 267, 0, 0, 268, 0, 0, 0, 0, 0, - 0, 269, 50, 51, 52, 0, 0, 0, 0, 0, - 54, 55, 0, 56, 0, 57, 0, 270, 0, 0, - 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, - 0, 0, 360, 0, 0, 0, 0, 0, 0, 0, - 271, 0, 60, 61, 62, 63, 64, 65, 9, 259, - 0, 260, 0, 261, 262, 263, 8, 264, 265, 266, - 0, 267, 0, 0, 268, 0, 0, 0, 0, 0, - 0, 269, 50, 51, 52, 0, 0, 0, 0, 0, - 54, 55, 0, 56, 0, 57, 0, 270, 0, 0, - 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, - 0, 0, 362, 0, 0, 0, 0, 0, 0, 0, - 271, 0, 60, 61, 62, 63, 64, 65, 9, 259, - 0, 260, 0, 261, 262, 263, 8, 264, 265, 266, - 0, 267, 0, 0, 268, 0, 0, 0, 0, 0, - 0, 269, 50, 51, 52, 0, 0, 0, 0, 0, - 54, 55, 0, 56, 0, 57, 0, 270, 0, 0, - 0, 0, 0, 59, 0, 0, 0, 482, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 9, 45, 0, + 8, 46, 47, 0, 0, 48, 0, 0, 0, 0, + 0, 0, 49, 0, 0, 0, 50, 51, 52, 0, + 0, 0, 0, 53, 54, 55, 0, 56, 244, 57, + 0, 0, 0, 0, 0, 0, 58, 59, 0, 0, + 0, 397, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 60, 61, 62, 63, + 64, 65, 9, 45, 0, 8, 46, 47, 0, 0, + 48, 0, 0, 0, 0, 0, 0, 49, 0, 0, + 0, 50, 51, 52, 0, 0, 0, 0, 53, 54, + 55, 0, 56, 398, 57, 0, 0, 0, 0, 0, + 0, 58, 59, 0, 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 0, 60, 61, 62, 63, 64, 65, 9, 45, - 0, 8, 46, 47, 0, 0, 48, 0, 0, 0, - 0, 483, 0, 49, 0, 0, 0, 50, 51, 52, - 0, 0, 0, 0, 53, 54, 55, 0, 56, 0, - 57, 0, 0, 0, 0, 0, 484, 58, 59, 0, - 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 60, 61, 62, - 63, 64, 65, 9, 45, 0, 8, 46, 47, 0, - 0, 48, 0, 0, 0, 0, 0, 0, 49, 0, - 0, 0, 50, 51, 52, 0, 0, 0, 0, 53, - 54, 55, 0, 56, 0, 57, 143, 0, 0, 0, - 0, 0, 58, 59, 0, 0, 0, 239, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 9, 45, 0, + 8, 46, 47, 0, 0, 48, 0, 0, 0, 0, + 0, 0, 49, 0, 0, 0, 50, 51, 52, 0, + 0, 0, 0, 53, 54, 55, 0, 56, 0, 57, + 0, 0, 0, 0, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 60, 61, 62, 63, 64, 65, 9, 45, - 0, 8, 46, 47, 0, 0, 48, 0, 0, 0, - 0, 0, 0, 49, 0, 0, 0, 50, 51, 52, - 0, 0, 0, 0, 53, 54, 55, 0, 56, 240, - 57, 0, 0, 0, 0, 0, 0, 58, 59, 0, - 0, 0, 243, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 60, 61, 62, - 63, 64, 65, 9, 45, 0, 8, 46, 47, 0, - 0, 48, 0, 0, 0, 0, 0, 0, 49, 0, - 0, 0, 50, 51, 52, 0, 0, 0, 0, 53, - 54, 55, 0, 56, 244, 57, 0, 0, 0, 0, - 0, 0, 58, 59, 0, 0, 0, 395, 0, 0, + 0, 0, 0, 0, 0, 0, 60, 61, 62, 63, + 64, 65, 9, 259, 409, 260, 0, 261, 262, 263, + 8, 264, 265, 266, 0, 267, 0, 0, 268, 0, + 0, 0, 0, 0, 0, 269, 50, 51, 52, 0, + 0, 0, 0, 0, 54, 55, 0, 56, 0, 57, + 0, 270, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 60, 61, 62, 63, 64, 65, 9, 45, - 0, 8, 46, 47, 0, 0, 48, 0, 0, 0, - 0, 0, 0, 49, 0, 0, 0, 50, 51, 52, - 0, 0, 0, 0, 53, 54, 55, 0, 56, 396, - 57, 0, 0, 0, 0, 0, 0, 58, 59, 0, - 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 60, 61, 62, - 63, 64, 65, 9, 45, 0, 8, 46, 47, 0, - 0, 48, 0, 0, 0, 0, 0, 0, 49, 0, - 0, 0, 50, 51, 52, 0, 0, 0, 0, 53, - 54, 55, 0, 56, 0, 57, 0, 0, 0, 0, - 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 0, 60, 61, 62, 63, + 64, 65, 9, 259, 0, 260, 412, 261, 262, 263, + 8, 264, 265, 266, 0, 267, 0, 0, 268, 0, + 0, 0, 0, 0, 0, 269, 50, 51, 52, 0, + 0, 0, 0, 0, 54, 55, 0, 56, 0, 57, + 0, 270, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 60, 61, 62, 63, 64, 65, 9, 259, - 407, 260, 0, 261, 262, 263, 8, 264, 265, 266, - 0, 267, 0, 0, 268, 0, 0, 0, 0, 0, - 0, 269, 50, 51, 52, 0, 0, 0, 0, 0, - 54, 55, 0, 56, 0, 57, 0, 270, 0, 0, - 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 0, 60, 61, 62, 63, + 64, 65, 9, 259, 0, 260, 0, 261, 262, 263, + 8, 264, 265, 266, 0, 267, 0, 0, 268, 0, + 0, 0, 0, 0, 0, 269, 50, 51, 52, 0, + 0, 0, 0, 0, 54, 55, 0, 56, 0, 57, + 0, 270, 424, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 0, 60, 61, 62, 63, 64, 65, 9, 259, - 0, 260, 410, 261, 262, 263, 8, 264, 265, 266, - 0, 267, 0, 0, 268, 0, 0, 0, 0, 0, - 0, 269, 50, 51, 52, 0, 0, 0, 0, 0, - 54, 55, 0, 56, 0, 57, 0, 270, 0, 0, - 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 0, 60, 61, 62, 63, + 64, 65, 9, 259, 0, 260, 0, 261, 262, 263, + 8, 264, 265, 266, 0, 267, 0, 0, 268, 0, + 0, 0, 0, 0, 0, 269, 50, 51, 52, 0, + 0, 0, 0, 0, 54, 55, 0, 56, 0, 57, + 0, 270, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 0, 60, 61, 62, 63, 64, 65, 9, 259, - 0, 260, 0, 261, 262, 263, 8, 264, 265, 266, - 0, 267, 0, 0, 268, 0, 0, 0, 0, 0, - 0, 269, 50, 51, 52, 0, 0, 0, 0, 0, - 54, 55, 0, 56, 0, 57, 0, 270, 422, 0, - 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 426, 60, 61, 62, 63, + 64, 65, 9, 259, 0, 260, 0, 261, 262, 263, + 8, 264, 265, 266, 0, 267, 0, 0, 268, 0, + 0, 0, 0, 0, 0, 269, 50, 51, 52, 0, + 0, 0, 0, 0, 54, 55, 0, 56, 0, 57, + 0, 270, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 0, 60, 61, 62, 63, 64, 65, 9, 259, - 0, 260, 0, 261, 262, 263, 8, 264, 265, 266, - 0, 267, 0, 0, 268, 0, 0, 0, 0, 0, - 0, 269, 50, 51, 52, 0, 0, 0, 0, 0, - 54, 55, 0, 56, 0, 57, 0, 270, 0, 0, - 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 271, 0, 60, 61, 62, 63, + 64, 65, 9, 45, 0, 8, 46, 47, 0, 0, + 48, 0, 0, 0, 0, 487, 0, 49, 0, 0, + 0, 50, 51, 52, 0, 0, 0, 0, 53, 54, + 55, 0, 56, 0, 57, 0, 0, 511, 0, 0, + 488, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 424, 60, 61, 62, 63, 64, 65, 9, 259, - 0, 260, 0, 261, 262, 263, 8, 264, 265, 266, - 0, 267, 0, 0, 268, 0, 0, 0, 0, 0, - 0, 269, 50, 51, 52, 0, 0, 0, 0, 0, - 54, 55, 0, 56, 0, 57, 0, 270, 0, 0, - 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 9, 45, 0, + 8, 46, 47, 0, 0, 48, 0, 0, 0, 0, + 0, 0, 49, 0, 0, 0, 50, 51, 52, 0, + 0, 0, 0, 53, 54, 55, 0, 56, 0, 57, + 0, 0, 0, 0, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 271, 0, 60, 61, 62, 63, 64, 65, 9, 45, - 0, 8, 46, 47, 0, 0, 48, 0, 0, 0, - 0, 483, 0, 49, 0, 0, 0, 50, 51, 52, - 0, 0, 0, 0, 53, 54, 55, 0, 56, 0, - 57, 0, 0, 506, 0, 0, 484, 58, 59, 0, + 0, 0, 0, 0, 0, 0, 60, 61, 62, 63, + 64, 65, 9, 45, 0, 8, 46, 47, 0, 0, + 48, 0, 0, 0, 0, 0, 0, 49, 0, 0, + 0, 50, 51, 52, 0, 0, 0, 0, 53, 54, + 55, 0, 170, 0, 57, 482, 0, 0, 0, 0, + 0, 58, 59, 0, 483, 0, 0, 0, 0, 0, + 148, 149, 150, 151, 0, 152, 153, 154, 0, 0, + 0, 60, 61, 62, 63, 64, 65, 9, 0, 0, + 155, 156, 157, 158, 159, 160, 392, 0, 0, 0, + 161, 0, 162, 163, 164, 0, 0, 0, 0, 0, + 0, 148, 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 60, 61, 62, - 63, 64, 65, 9, 45, 0, 8, 46, 47, 0, - 0, 48, 0, 0, 0, 0, 0, 0, 49, 0, - 0, 0, 50, 51, 52, 0, 0, 0, 0, 53, - 54, 55, 0, 56, 0, 57, 0, 0, 0, 0, - 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, + 0, 155, 156, 157, 158, 159, 160, 422, 0, 0, + 0, 161, 0, 162, 163, 164, 0, 0, 0, 0, + 0, 0, 148, 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 60, 61, 62, 63, 64, 65, 9, 45, - 0, 8, 46, 47, 0, 0, 48, 0, 0, 0, - 0, 0, 0, 49, 0, 0, 0, 50, 51, 52, - 0, 0, 0, 0, 53, 54, 55, 0, 170, 390, - 57, 0, 0, 0, 0, 0, 0, 58, 59, 0, + 0, 0, 155, 156, 157, 158, 159, 160, 484, 0, + 0, 0, 161, 0, 162, 163, 164, 0, 0, 0, + 0, 0, 0, 148, 149, 150, 151, 0, 152, 153, + 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 155, 156, 157, 158, 159, 160, 521, + 0, 0, 0, 161, 0, 162, 163, 164, 0, 0, 0, 0, 0, 0, 148, 149, 150, 151, 0, 152, - 153, 154, 0, 0, 0, 0, 0, 60, 61, 62, - 63, 64, 65, 9, 155, 156, 157, 158, 159, 160, + 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 155, 156, 157, 158, 159, 160, 420, 0, 0, 0, 161, 0, 162, 163, 164, 0, - 0, 0, 0, 0, 0, 148, 149, 150, 151, 0, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 156, 157, 158, 159, - 160, 480, 0, 0, 0, 161, 0, 162, 163, 164, - 0, 0, 0, 0, 0, 0, 148, 149, 150, 151, + 0, 0, 0, 148, 149, 150, 151, 0, 152, 153, + 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 155, 156, 157, 158, 159, 160, 393, + 0, 0, 0, 161, 0, 162, 163, 164, 0, 0, + 0, 148, 149, 150, 151, 0, 152, 153, 154, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 155, 156, 157, 158, 159, 160, 0, 391, 0, + 0, 161, 0, 162, 163, 164, 148, 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 156, 157, 158, - 159, 160, 516, 0, 0, 0, 161, 0, 162, 163, - 164, 0, 0, 0, 0, 0, 0, 148, 149, 150, - 151, 0, 152, 153, 154, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 156, 157, - 158, 159, 160, 206, 0, 0, 0, 161, 0, 162, - 163, 164, 0, 0, 0, 0, 148, 149, 150, 151, + 159, 160, 0, 0, 0, 394, 161, 0, 162, 163, + 164, 148, 149, 150, 151, 0, 152, 153, 154, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 155, 156, 157, 158, 159, 160, 0, 0, 0, + 0, 161, 0, 162, 163, 164, 148, 149, 150, 151, + 0, 152, 153, 154, 0, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 156, 157, 158, + 159, 160, 0, 0, 0, 0, 161, 0, 162, 163, + 164, 148, 149, 150, 151, 0, 152, 153, 154, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 155, 156, 157, 158, 159, 160, 0, 217, 0, + 0, 161, 0, 162, 163, 164, 148, 149, 150, 151, + 0, 152, 153, 154, 0, 329, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 156, 157, 158, + 159, 160, 0, 0, 0, 0, 161, 0, 162, 163, + 164, 148, 149, 150, 151, 0, 152, 153, 154, 0, + 395, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 155, 156, 157, 158, 159, 160, 0, 0, 0, + 0, 161, 0, 162, 163, 164, 148, 149, 150, 151, + 0, 152, 153, 154, 0, 0, 0, 396, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 156, 157, 158, + 159, 160, 0, 0, 0, 0, 161, 0, 162, 163, + 164, 148, 149, 150, 151, 0, 152, 153, 154, 0, + 0, 0, 0, 0, 0, 513, 0, 0, 0, 0, + 0, 155, 156, 157, 158, 159, 160, 0, 0, 0, + 0, 161, 0, 162, 163, 164, 148, 149, 150, 151, + 0, 152, 153, 154, 0, 0, 0, 0, 0, 527, + 0, 0, 0, 0, 0, 0, 155, 156, 157, 158, + 159, 160, 0, 0, 0, 0, 161, 0, 162, 163, + 164, 148, 149, 150, 151, 0, 152, 153, 154, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 155, 156, 157, 158, 159, 160, 0, 0, 0, + 0, 161, 0, 162, 163, 164, 148, 149, 150, 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 156, 157, 158, - 159, 160, 418, 0, 0, 0, 161, 0, 162, 163, - 164, 0, 0, 0, 0, 148, 149, 150, 151, 0, - 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 156, 157, 158, 159, - 160, 391, 0, 0, 0, 161, 0, 162, 163, 164, - 0, 0, 0, 148, 149, 150, 151, 0, 152, 153, - 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 155, 156, 157, 158, 159, 160, 419, - 0, 0, 0, 161, 0, 162, 163, 164, 0, 148, - 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 156, 157, 158, 159, 160, 0, 389, 0, 0, 161, - 0, 162, 163, 164, 148, 149, 150, 151, 0, 152, - 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 156, 157, 158, 159, 160, - 0, 0, 0, 392, 161, 0, 162, 163, 164, 148, - 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 156, 157, 158, 159, 160, 0, 0, 0, 0, 161, - 0, 162, 163, 164, 148, 149, 150, 151, 0, 152, - 153, 154, 0, 210, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 156, 157, 158, 159, 160, - 0, 0, 0, 0, 161, 0, 162, 163, 164, 148, - 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 156, 157, 158, 159, 160, 0, 217, 0, 0, 161, - 0, 162, 163, 164, 148, 149, 150, 151, 0, 152, - 153, 154, 0, 329, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 156, 157, 158, 159, 160, - 0, 0, 0, 0, 161, 0, 162, 163, 164, 148, - 149, 150, 151, 0, 152, 153, 154, 0, 393, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 156, 157, 158, 159, 160, 0, 0, 0, 0, 161, - 0, 162, 163, 164, 148, 149, 150, 151, 0, 152, - 153, 154, 0, 0, 0, 394, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 156, 157, 158, 159, 160, - 0, 0, 0, 0, 161, 0, 162, 163, 164, 148, - 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 508, 0, 0, 0, 0, 0, 155, - 156, 157, 158, 159, 160, 0, 0, 0, 0, 161, - 0, 162, 163, 164, 148, 149, 150, 151, 0, 152, - 153, 154, 0, 0, 0, 0, 0, 522, 0, 0, - 0, 0, 0, 0, 155, 156, 157, 158, 159, 160, - 0, 0, 0, 0, 161, 0, 162, 163, 164, 148, - 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 156, 157, 158, 159, 160, 0, 0, 0, 0, 161, - 0, 162, 163, 164, 148, 0, 150, 0, 0, 152, - 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 156, 157, 158, 159, 160, - 0, 0, 0, 0, 148, 0, 162, 163, 164, 152, - 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 156, 157, 158, 159, 160, - 0, 0, 0, 0, 0, 0, 162, 163, 164 + 159, 160, 0, 0, 0, 0, 0, 0, 162, 163, + 164, 148, 0, 150, 0, 0, 152, 153, 154, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 155, 156, 157, 158, 159, 160, 0, 0, 0, + 0, 148, 0, 162, 163, 164, 152, 153, 154, 0, + 0, 0, 152, 153, 154, 0, 0, 0, 0, 0, + 0, 155, 156, 157, 158, 159, 160, 155, 156, 157, + 158, 159, 160, 162, 163, 164, 0, 0, 0, 162, + 163, 164 }; const short Parser::yycheck_[] = { - 15, 98, 57, 24, 19, 1, 21, 197, 47, 24, - 49, 5, 0, 25, 297, 1, 4, 300, 297, 1, - 25, 300, 45, 296, 54, 55, 381, 25, 58, 25, - 1, 1, 5, 16, 7, 25, 3, 55, 26, 25, - 52, 25, 51, 25, 59, 51, 39, 41, 109, 25, - 0, 56, 52, 55, 25, 25, 54, 52, 54, 51, - 52, 10, 25, 58, 73, 52, 58, 73, 54, 66, - 14, 3, 54, 73, 57, 87, 73, 55, 73, 72, - 59, 73, 87, 54, 57, 25, 441, 54, 109, 87, - 66, 87, 375, 83, 109, 368, 375, 87, 381, 48, - 63, 87, 381, 87, 53, 87, 51, 56, 57, 25, - 61, 87, 167, 168, 175, 59, 87, 87, 179, 25, - 64, 72, 54, 63, 51, 25, 70, 51, 52, 25, - 0, 1, 25, 127, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 165, 59, 16, 63, 178, 73, - 165, 25, 39, 250, 5, 176, 7, 63, 441, 180, - 181, 176, 441, 63, 59, 180, 181, 63, 52, 64, - 63, 51, 59, 194, 195, 70, 51, 198, 201, 194, - 195, 204, 197, 198, 54, 52, 260, 175, 72, 63, - 55, 179, 59, 51, 51, 256, 270, 271, 63, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 58, 53, 167, 168, - 58, 170, 412, 53, 51, 264, 265, 63, 53, 259, - 260, 57, 53, 63, 183, 53, 266, 63, 299, 262, - 270, 271, 63, 53, 63, 63, 57, 196, 55, 53, - 199, 200, 63, 63, 203, 57, 205, 206, 207, 63, - 209, 63, 256, 63, 213, 65, 58, 216, 217, 324, - 258, 56, 5, 334, 7, 263, 73, 298, 56, 469, - 470, 1, 56, 298, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 63, 63, 16, 56, 69, 248, + 15, 98, 109, 24, 19, 57, 21, 1, 197, 24, + 5, 47, 296, 49, 1, 0, 45, 297, 1, 4, + 300, 1, 297, 25, 25, 300, 1, 25, 25, 3, + 3, 25, 25, 25, 25, 51, 52, 383, 25, 25, + 16, 26, 25, 51, 59, 25, 41, 5, 59, 7, + 25, 52, 57, 64, 56, 61, 54, 73, 63, 70, + 54, 0, 51, 10, 52, 73, 72, 54, 175, 66, + 63, 54, 179, 14, 54, 25, 16, 63, 54, 51, + 54, 54, 25, 25, 73, 87, 87, 371, 109, 87, + 87, 83, 55, 87, 109, 87, 87, 377, 444, 57, + 87, 48, 377, 383, 87, 57, 53, 87, 383, 56, + 57, 63, 87, 63, 54, 167, 168, 57, 59, 25, + 63, 63, 57, 64, 25, 25, 51, 52, 63, 70, + 0, 1, 127, 58, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 165, 39, 16, 52, 73, 256, + 165, 39, 5, 250, 7, 176, 5, 63, 7, 180, + 181, 176, 63, 63, 444, 180, 181, 52, 73, 444, + 52, 59, 201, 194, 195, 204, 58, 198, 72, 194, + 195, 55, 197, 198, 54, 260, 52, 72, 472, 53, + 175, 73, 299, 59, 179, 270, 271, 55, 63, 63, + 65, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 54, 55, + 167, 168, 58, 170, 53, 414, 59, 334, 264, 265, + 54, 55, 51, 262, 63, 1, 183, 59, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 51, 196, + 16, 51, 199, 200, 53, 53, 203, 51, 205, 206, + 207, 256, 209, 58, 63, 63, 213, 55, 51, 216, + 217, 53, 324, 258, 58, 63, 51, 298, 263, 53, + 53, 63, 63, 298, 473, 474, 49, 50, 54, 63, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 49, 50, 16, 343, 52, 72, 346, 53, 267, 268, - 269, 53, 53, 51, 49, 50, 51, 66, 67, 68, - 69, 361, 75, 363, 54, 53, 51, 367, 16, 64, - 65, 66, 67, 68, 69, 51, 334, 341, 19, 66, - 54, 76, 77, 78, 66, 67, 68, 69, 21, 353, - 73, 58, 73, 384, 73, 386, 387, 388, 73, 384, - 73, 386, 387, 388, 57, 324, 53, 53, 399, 400, - 80, 411, 57, 413, 399, 400, 56, 336, 418, 178, - 420, 53, 56, 65, 17, 51, 426, 412, 428, 51, - 73, 32, 51, 49, 50, 56, 427, 51, 429, 57, - 51, 58, 427, 58, 429, 364, 404, 514, 64, 65, - 66, 67, 68, 69, 57, 26, 414, 56, 41, 404, - 73, 77, 78, 73, 375, 485, 178, 166, 179, 212, - 389, 390, 391, 392, 195, 498, 515, 514, 478, 398, - 480, 481, 250, 127, 469, 470, 477, 334, 488, 489, - 414, 262, 477, 353, 201, -1, -1, 416, 417, -1, - 259, 260, -1, -1, 504, 505, -1, 266, 508, -1, - -1, 270, 271, -1, -1, -1, 516, -1, 2, -1, - 511, 512, -1, -1, -1, -1, 511, 512, -1, -1, - -1, -1, 16, 17, 18, 19, 20, -1, 22, 23, - -1, 25, -1, -1, 463, -1, -1, 259, 260, -1, - -1, -1, -1, -1, 266, -1, 475, 476, 270, 271, - 479, 45, 46, 47, -1, 49, 485, -1, -1, -1, - 178, -1, 56, -1, 493, -1, -1, -1, -1, 29, - -1, -1, -1, -1, 343, -1, -1, 346, 38, -1, - -1, -1, -1, -1, 44, 45, 46, 47, -1, 49, - 50, 51, 361, -1, 363, -1, -1, -1, 367, -1, - -1, -1, -1, -1, 64, 65, 66, 67, 68, 69, - -1, -1, -1, -1, 74, 109, 76, 77, 78, -1, - -1, 343, -1, -1, 346, -1, -1, -1, -1, -1, - -1, -1, -1, 127, -1, -1, -1, -1, -1, 361, - -1, 363, 411, -1, 413, 367, -1, -1, 266, 418, - -1, 420, -1, -1, -1, -1, -1, 426, -1, 428, + 55, 248, 16, 66, 67, 68, 69, 66, 66, 67, + 68, 69, 2, 58, 73, 56, 73, 56, 56, 63, + 267, 268, 269, 63, 56, 52, 16, 17, 18, 19, + 20, 53, 22, 23, 69, 25, 53, 53, 51, 72, + 54, 75, 178, 53, 51, 51, 341, 66, 73, 334, + 73, 19, 73, 73, 21, 45, 46, 47, 353, 49, + 58, 73, 57, 54, 53, 386, 56, 388, 389, 390, + 53, 386, 80, 388, 389, 390, 57, 324, 49, 50, + 401, 402, 178, 368, 56, 65, 401, 402, 53, 336, + 56, 17, 51, 64, 65, 66, 67, 68, 69, 414, + 51, 32, 51, 73, 51, 16, 77, 78, 429, 57, + 431, 56, 51, 57, 429, 73, 431, 364, 58, 109, + 58, 406, 519, 259, 260, 26, 56, 73, 41, 406, + 266, 416, 377, 371, 270, 271, 489, 127, 433, 195, + 166, 212, 179, 503, 391, 392, 393, 394, 520, 519, + 127, 334, 262, 400, 201, 416, 353, 250, 473, 474, + 481, -1, -1, 259, 260, -1, 481, -1, -1, -1, + 266, 418, 419, -1, 270, 271, 166, -1, -1, 169, + 170, -1, -1, -1, -1, 175, -1, -1, -1, 179, + -1, -1, 182, -1, 184, 516, 517, -1, -1, -1, + -1, 516, 517, -1, -1, -1, -1, 343, -1, -1, + 346, 201, -1, -1, 204, -1, -1, -1, -1, 466, + -1, -1, 212, -1, -1, 361, -1, 363, -1, -1, + -1, 367, 479, 480, -1, 178, 483, -1, -1, -1, + -1, -1, 489, -1, -1, -1, -1, 343, -1, -1, + 346, 498, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 361, 256, 363, 258, -1, + -1, 367, 262, 263, 264, 265, -1, 413, 178, 415, + -1, 25, -1, -1, 420, -1, 422, -1, -1, -1, + -1, -1, 428, -1, 430, -1, -1, 41, 42, 43, + -1, -1, -1, -1, -1, 49, 50, -1, 52, 299, + 54, -1, -1, -1, -1, -1, -1, 413, 62, 415, + -1, -1, -1, 266, 420, -1, 422, -1, -1, -1, + -1, -1, 428, -1, 430, -1, -1, 81, 82, 83, + 84, 85, 86, 87, 334, -1, 482, -1, 484, 485, + -1, 341, -1, -1, -1, -1, 492, 493, -1, 259, + 260, -1, -1, 353, -1, -1, 266, -1, -1, -1, + 270, 271, -1, 509, 510, -1, -1, 513, -1, -1, + -1, -1, 372, 373, -1, 521, 482, -1, 484, 485, + -1, -1, -1, -1, -1, -1, 492, 493, -1, -1, + 343, -1, -1, 346, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 509, 510, -1, 406, 513, 361, 31, + 363, -1, -1, -1, 367, 521, 416, -1, -1, -1, + -1, -1, 44, 45, 46, 47, -1, 49, 50, 51, + -1, -1, -1, 343, -1, -1, 346, -1, -1, -1, + -1, -1, 64, 65, 66, 67, 68, 69, -1, -1, + -1, 361, 74, 363, 76, 77, 78, 367, -1, -1, + 413, -1, 415, -1, -1, -1, 1, 420, -1, 422, + -1, -1, -1, -1, -1, 428, -1, 430, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 23, -1, + 25, 26, 27, -1, -1, 30, -1, -1, -1, -1, + 35, -1, 37, 413, -1, 415, 41, 42, 43, -1, + 420, -1, 422, 48, 49, 50, -1, 52, 428, 54, + 430, -1, -1, -1, -1, 60, 61, 62, -1, 482, + -1, 484, 485, -1, -1, -1, -1, -1, -1, 492, + 493, -1, -1, -1, -1, -1, 81, 82, 83, 84, + 85, 86, 87, -1, 34, -1, 509, 510, -1, -1, + 513, -1, -1, -1, 44, 45, 46, 47, 521, 49, + 50, 51, 482, -1, 484, 485, -1, -1, -1, -1, + -1, -1, 492, 493, 64, 65, 66, 67, 68, 69, + -1, 1, -1, -1, 74, -1, 76, 77, 78, 509, + 510, -1, -1, 513, -1, -1, -1, -1, 18, -1, + 20, 521, 22, 23, 24, 25, 26, 27, 28, -1, + 30, -1, -1, 33, -1, -1, -1, -1, -1, -1, + 40, 41, 42, 43, -1, -1, -1, -1, -1, 49, + 50, -1, 52, -1, 54, -1, 56, -1, -1, -1, + -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, + -1, 1, -1, -1, -1, -1, -1, -1, -1, 79, + -1, 81, 82, 83, 84, 85, 86, 87, 18, -1, + 20, -1, 22, 23, 24, 25, 26, 27, 28, -1, + 30, -1, -1, 33, -1, -1, -1, -1, -1, -1, + 40, 41, 42, 43, -1, -1, -1, -1, -1, 49, + 50, -1, 52, -1, 54, -1, 56, -1, -1, -1, + -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, + -1, 1, -1, -1, -1, -1, -1, -1, -1, 79, + -1, 81, 82, 83, 84, 85, 86, 87, 18, -1, + 20, -1, 22, 23, 24, 25, 26, 27, 28, -1, + 30, -1, -1, 33, -1, -1, -1, -1, -1, -1, + 40, 41, 42, 43, -1, -1, -1, -1, -1, 49, + 50, -1, 52, -1, 54, -1, 56, -1, -1, -1, + -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, + -1, 1, -1, -1, -1, -1, -1, -1, -1, 79, + -1, 81, 82, 83, 84, 85, 86, 87, 18, -1, + 20, -1, 22, 23, 24, 25, 26, 27, 28, -1, + 30, -1, -1, 33, -1, -1, -1, -1, -1, -1, + 40, 41, 42, 43, -1, -1, -1, -1, -1, 49, + 50, -1, 52, -1, 54, -1, 56, -1, -1, -1, + -1, -1, 62, -1, -1, -1, 1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 79, + -1, 81, 82, 83, 84, 85, 86, 87, 23, -1, + 25, 26, 27, -1, -1, 30, -1, -1, -1, -1, + -1, -1, 37, -1, -1, -1, 41, 42, 43, -1, + -1, -1, -1, 48, 49, 50, -1, 52, -1, 54, + 55, -1, -1, -1, -1, -1, 61, 62, -1, -1, + -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 81, 82, 83, 84, + 85, 86, 87, 23, -1, 25, 26, 27, -1, -1, + 30, -1, -1, -1, -1, -1, -1, 37, -1, -1, + -1, 41, 42, 43, -1, -1, -1, -1, 48, 49, + 50, -1, 52, 53, 54, -1, -1, -1, -1, -1, + -1, 61, 62, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 166, -1, -1, 169, 170, -1, -1, -1, - -1, 175, -1, -1, -1, 179, -1, -1, 182, 411, - 184, 413, -1, -1, -1, -1, 418, -1, 420, -1, - -1, -1, -1, -1, 426, -1, 428, 201, -1, 478, - 204, 480, 481, -1, -1, -1, -1, -1, 212, 488, - 489, -1, -1, -1, -1, 343, -1, -1, 346, -1, - -1, -1, -1, -1, -1, 504, 505, -1, -1, 508, - -1, -1, -1, 361, -1, 363, -1, 516, -1, 367, - -1, -1, -1, -1, -1, -1, 478, -1, 480, 481, - 25, -1, 256, -1, 258, -1, 488, 489, 262, 263, - 264, 265, -1, -1, -1, -1, 41, 42, 43, -1, - -1, -1, 504, 505, 49, 50, 508, 52, -1, 54, - -1, -1, -1, 411, 516, 413, -1, 62, -1, -1, - 418, -1, 420, -1, -1, 299, -1, -1, 426, -1, - 428, -1, -1, -1, -1, -1, 81, 82, 83, 84, - 85, 86, 87, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 44, 45, 46, -1, -1, 49, 50, 51, - 334, -1, -1, -1, -1, -1, -1, 341, -1, -1, - -1, -1, 64, 65, 66, 67, 68, 69, -1, 353, - 478, -1, 480, 481, 76, 77, 78, -1, -1, -1, - 488, 489, -1, -1, -1, -1, 370, 371, -1, -1, - -1, -1, 1, -1, -1, -1, 504, 505, -1, -1, - 508, -1, -1, -1, -1, -1, -1, -1, 516, 18, - -1, 20, -1, 22, 23, 24, 25, 26, 27, 28, - 404, 30, -1, -1, 33, -1, -1, -1, -1, -1, - 414, 40, 41, 42, 43, -1, -1, -1, -1, -1, - 49, 50, -1, 52, -1, 54, -1, 56, -1, -1, - -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, - -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, - 79, -1, 81, 82, 83, 84, 85, 86, 87, 18, - -1, 20, -1, 22, 23, 24, 25, 26, 27, 28, - -1, 30, -1, -1, 33, -1, -1, -1, -1, -1, - -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, - 49, 50, -1, 52, -1, 54, -1, 56, -1, -1, - -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, - -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, - 79, -1, 81, 82, 83, 84, 85, 86, 87, 18, - -1, 20, -1, 22, 23, 24, 25, 26, 27, 28, - -1, 30, -1, -1, 33, -1, -1, -1, -1, -1, - -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, - 49, 50, -1, 52, -1, 54, -1, 56, -1, -1, - -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, - -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, - 79, -1, 81, 82, 83, 84, 85, 86, 87, 18, - -1, 20, -1, 22, 23, 24, 25, 26, 27, 28, - -1, 30, -1, -1, 33, -1, -1, -1, -1, -1, - -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, - 49, 50, -1, 52, -1, 54, -1, 56, -1, -1, - -1, -1, -1, 62, -1, -1, -1, 1, -1, -1, + -1, 81, 82, 83, 84, 85, 86, 87, 23, -1, + 25, 26, 27, -1, -1, 30, -1, -1, -1, -1, + -1, -1, 37, -1, -1, -1, 41, 42, 43, -1, + -1, -1, -1, 48, 49, 50, -1, 52, 53, 54, + -1, -1, -1, -1, -1, -1, 61, 62, -1, -1, + -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 81, 82, 83, 84, + 85, 86, 87, 23, -1, 25, 26, 27, -1, -1, + 30, -1, -1, -1, -1, -1, -1, 37, -1, -1, + -1, 41, 42, 43, -1, -1, -1, -1, 48, 49, + 50, -1, 52, 53, 54, -1, -1, -1, -1, -1, + -1, 61, 62, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 79, -1, 81, 82, 83, 84, 85, 86, 87, 23, - -1, 25, 26, 27, -1, -1, 30, -1, -1, -1, - -1, 35, -1, 37, -1, -1, -1, 41, 42, 43, - -1, -1, -1, -1, 48, 49, 50, -1, 52, -1, - 54, -1, -1, -1, -1, -1, 60, 61, 62, -1, - -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, - 84, 85, 86, 87, 23, -1, 25, 26, 27, -1, - -1, 30, -1, -1, -1, -1, -1, -1, 37, -1, - -1, -1, 41, 42, 43, -1, -1, -1, -1, 48, - 49, 50, -1, 52, -1, 54, 55, -1, -1, -1, - -1, -1, 61, 62, -1, -1, -1, 1, -1, -1, + -1, 81, 82, 83, 84, 85, 86, 87, 23, -1, + 25, 26, 27, -1, -1, 30, -1, -1, -1, -1, + -1, -1, 37, -1, -1, -1, 41, 42, 43, -1, + -1, -1, -1, 48, 49, 50, -1, 52, -1, 54, + -1, -1, -1, -1, -1, -1, 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 81, 82, 83, 84, 85, 86, 87, 23, - -1, 25, 26, 27, -1, -1, 30, -1, -1, -1, - -1, -1, -1, 37, -1, -1, -1, 41, 42, 43, - -1, -1, -1, -1, 48, 49, 50, -1, 52, 53, - 54, -1, -1, -1, -1, -1, -1, 61, 62, -1, - -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, - 84, 85, 86, 87, 23, -1, 25, 26, 27, -1, - -1, 30, -1, -1, -1, -1, -1, -1, 37, -1, - -1, -1, 41, 42, 43, -1, -1, -1, -1, 48, - 49, 50, -1, 52, 53, 54, -1, -1, -1, -1, - -1, -1, 61, 62, -1, -1, -1, 1, -1, -1, + -1, -1, -1, -1, -1, -1, 81, 82, 83, 84, + 85, 86, 87, 18, 19, 20, -1, 22, 23, 24, + 25, 26, 27, 28, -1, 30, -1, -1, 33, -1, + -1, -1, -1, -1, -1, 40, 41, 42, 43, -1, + -1, -1, -1, -1, 49, 50, -1, 52, -1, 54, + -1, 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 81, 82, 83, 84, 85, 86, 87, 23, - -1, 25, 26, 27, -1, -1, 30, -1, -1, -1, - -1, -1, -1, 37, -1, -1, -1, 41, 42, 43, - -1, -1, -1, -1, 48, 49, 50, -1, 52, 53, - 54, -1, -1, -1, -1, -1, -1, 61, 62, -1, - -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, - 84, 85, 86, 87, 23, -1, 25, 26, 27, -1, - -1, 30, -1, -1, -1, -1, -1, -1, 37, -1, - -1, -1, 41, 42, 43, -1, -1, -1, -1, 48, - 49, 50, -1, 52, -1, 54, -1, -1, -1, -1, - -1, -1, 61, 62, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 79, -1, 81, 82, 83, 84, + 85, 86, 87, 18, -1, 20, 21, 22, 23, 24, + 25, 26, 27, 28, -1, 30, -1, -1, 33, -1, + -1, -1, -1, -1, -1, 40, 41, 42, 43, -1, + -1, -1, -1, -1, 49, 50, -1, 52, -1, 54, + -1, 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 81, 82, 83, 84, 85, 86, 87, 18, - 19, 20, -1, 22, 23, 24, 25, 26, 27, 28, - -1, 30, -1, -1, 33, -1, -1, -1, -1, -1, - -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, - 49, 50, -1, 52, -1, 54, -1, 56, -1, -1, - -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 79, -1, 81, 82, 83, 84, + 85, 86, 87, 18, -1, 20, -1, 22, 23, 24, + 25, 26, 27, 28, -1, 30, -1, -1, 33, -1, + -1, -1, -1, -1, -1, 40, 41, 42, 43, -1, + -1, -1, -1, -1, 49, 50, -1, 52, -1, 54, + -1, 56, 57, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 79, -1, 81, 82, 83, 84, 85, 86, 87, 18, - -1, 20, 21, 22, 23, 24, 25, 26, 27, 28, - -1, 30, -1, -1, 33, -1, -1, -1, -1, -1, - -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, - 49, 50, -1, 52, -1, 54, -1, 56, -1, -1, - -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 79, -1, 81, 82, 83, 84, + 85, 86, 87, 18, -1, 20, -1, 22, 23, 24, + 25, 26, 27, 28, -1, 30, -1, -1, 33, -1, + -1, -1, -1, -1, -1, 40, 41, 42, 43, -1, + -1, -1, -1, -1, 49, 50, -1, 52, -1, 54, + -1, 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 79, -1, 81, 82, 83, 84, 85, 86, 87, 18, - -1, 20, -1, 22, 23, 24, 25, 26, 27, 28, - -1, 30, -1, -1, 33, -1, -1, -1, -1, -1, - -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, - 49, 50, -1, 52, -1, 54, -1, 56, 57, -1, - -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 18, -1, 20, -1, 22, 23, 24, + 25, 26, 27, 28, -1, 30, -1, -1, 33, -1, + -1, -1, -1, -1, -1, 40, 41, 42, 43, -1, + -1, -1, -1, -1, 49, 50, -1, 52, -1, 54, + -1, 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 79, -1, 81, 82, 83, 84, 85, 86, 87, 18, - -1, 20, -1, 22, 23, 24, 25, 26, 27, 28, - -1, 30, -1, -1, 33, -1, -1, -1, -1, -1, - -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, - 49, 50, -1, 52, -1, 54, -1, 56, -1, -1, - -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 79, -1, 81, 82, 83, 84, + 85, 86, 87, 23, -1, 25, 26, 27, -1, -1, + 30, -1, -1, -1, -1, 35, -1, 37, -1, -1, + -1, 41, 42, 43, -1, -1, -1, -1, 48, 49, + 50, -1, 52, -1, 54, -1, -1, 57, -1, -1, + 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 18, - -1, 20, -1, 22, 23, 24, 25, 26, 27, 28, - -1, 30, -1, -1, 33, -1, -1, -1, -1, -1, - -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, - 49, 50, -1, 52, -1, 54, -1, 56, -1, -1, - -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, + -1, 81, 82, 83, 84, 85, 86, 87, 23, -1, + 25, 26, 27, -1, -1, 30, -1, -1, -1, -1, + -1, -1, 37, -1, -1, -1, 41, 42, 43, -1, + -1, -1, -1, 48, 49, 50, -1, 52, -1, 54, + -1, -1, -1, -1, -1, -1, 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 79, -1, 81, 82, 83, 84, 85, 86, 87, 23, - -1, 25, 26, 27, -1, -1, 30, -1, -1, -1, - -1, 35, -1, 37, -1, -1, -1, 41, 42, 43, - -1, -1, -1, -1, 48, 49, 50, -1, 52, -1, - 54, -1, -1, 57, -1, -1, 60, 61, 62, -1, + -1, -1, -1, -1, -1, -1, 81, 82, 83, 84, + 85, 86, 87, 23, -1, 25, 26, 27, -1, -1, + 30, -1, -1, -1, -1, -1, -1, 37, -1, -1, + -1, 41, 42, 43, -1, -1, -1, -1, 48, 49, + 50, -1, 52, -1, 54, 29, -1, -1, -1, -1, + -1, 61, 62, -1, 38, -1, -1, -1, -1, -1, + 44, 45, 46, 47, -1, 49, 50, 51, -1, -1, + -1, 81, 82, 83, 84, 85, 86, 87, -1, -1, + 64, 65, 66, 67, 68, 69, 29, -1, -1, -1, + 74, -1, 76, 77, 78, -1, -1, -1, -1, -1, + -1, 44, 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, - 84, 85, 86, 87, 23, -1, 25, 26, 27, -1, - -1, 30, -1, -1, -1, -1, -1, -1, 37, -1, - -1, -1, 41, 42, 43, -1, -1, -1, -1, 48, - 49, 50, -1, 52, -1, 54, -1, -1, -1, -1, - -1, -1, 61, 62, -1, -1, -1, -1, -1, -1, + -1, 64, 65, 66, 67, 68, 69, 29, -1, -1, + -1, 74, -1, 76, 77, 78, -1, -1, -1, -1, + -1, -1, 44, 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 81, 82, 83, 84, 85, 86, 87, 23, - -1, 25, 26, 27, -1, -1, 30, -1, -1, -1, - -1, -1, -1, 37, -1, -1, -1, 41, 42, 43, - -1, -1, -1, -1, 48, 49, 50, -1, 52, 29, - 54, -1, -1, -1, -1, -1, -1, 61, 62, -1, + -1, -1, 64, 65, 66, 67, 68, 69, 29, -1, + -1, -1, 74, -1, 76, 77, 78, -1, -1, -1, + -1, -1, -1, 44, 45, 46, 47, -1, 49, 50, + 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 64, 65, 66, 67, 68, 69, 29, + -1, -1, -1, 74, -1, 76, 77, 78, -1, -1, -1, -1, -1, -1, 44, 45, 46, 47, -1, 49, - 50, 51, -1, -1, -1, -1, -1, 81, 82, 83, - 84, 85, 86, 87, 64, 65, 66, 67, 68, 69, - 29, -1, -1, -1, 74, -1, 76, 77, 78, -1, - -1, -1, -1, -1, -1, 44, 45, 46, 47, -1, - 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 64, 65, 66, 67, 68, - 69, 29, -1, -1, -1, 74, -1, 76, 77, 78, - -1, -1, -1, -1, -1, -1, 44, 45, 46, 47, + 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 64, 65, 66, 67, 68, 69, + 31, -1, -1, -1, 74, -1, 76, 77, 78, -1, + -1, -1, -1, 44, 45, 46, 47, -1, 49, 50, + 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 64, 65, 66, 67, 68, 69, 32, + -1, -1, -1, 74, -1, 76, 77, 78, -1, -1, + -1, 44, 45, 46, 47, -1, 49, 50, 51, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 64, 65, 66, 67, 68, 69, -1, 36, -1, + -1, 74, -1, 76, 77, 78, 44, 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, 65, 66, 67, - 68, 69, 29, -1, -1, -1, 74, -1, 76, 77, - 78, -1, -1, -1, -1, -1, -1, 44, 45, 46, - 47, -1, 49, 50, 51, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 64, 65, 66, - 67, 68, 69, 31, -1, -1, -1, 74, -1, 76, - 77, 78, -1, -1, -1, -1, 44, 45, 46, 47, + 68, 69, -1, -1, -1, 38, 74, -1, 76, 77, + 78, 44, 45, 46, 47, -1, 49, 50, 51, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 64, 65, 66, 67, 68, 69, -1, -1, -1, + -1, 74, -1, 76, 77, 78, 44, 45, 46, 47, + -1, 49, 50, 51, -1, 53, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 64, 65, 66, 67, + 68, 69, -1, -1, -1, -1, 74, -1, 76, 77, + 78, 44, 45, 46, 47, -1, 49, 50, 51, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 64, 65, 66, 67, 68, 69, -1, 71, -1, + -1, 74, -1, 76, 77, 78, 44, 45, 46, 47, + -1, 49, 50, 51, -1, 53, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 64, 65, 66, 67, + 68, 69, -1, -1, -1, -1, 74, -1, 76, 77, + 78, 44, 45, 46, 47, -1, 49, 50, 51, -1, + 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 64, 65, 66, 67, 68, 69, -1, -1, -1, + -1, 74, -1, 76, 77, 78, 44, 45, 46, 47, + -1, 49, 50, 51, -1, -1, -1, 55, -1, -1, + -1, -1, -1, -1, -1, -1, 64, 65, 66, 67, + 68, 69, -1, -1, -1, -1, 74, -1, 76, 77, + 78, 44, 45, 46, 47, -1, 49, 50, 51, -1, + -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, + -1, 64, 65, 66, 67, 68, 69, -1, -1, -1, + -1, 74, -1, 76, 77, 78, 44, 45, 46, 47, + -1, 49, 50, 51, -1, -1, -1, -1, -1, 57, + -1, -1, -1, -1, -1, -1, 64, 65, 66, 67, + 68, 69, -1, -1, -1, -1, 74, -1, 76, 77, + 78, 44, 45, 46, 47, -1, 49, 50, 51, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 64, 65, 66, 67, 68, 69, -1, -1, -1, + -1, 74, -1, 76, 77, 78, 44, 45, 46, -1, -1, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, 65, 66, 67, - 68, 69, 31, -1, -1, -1, 74, -1, 76, 77, - 78, -1, -1, -1, -1, 44, 45, 46, 47, -1, - 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 64, 65, 66, 67, 68, - 69, 32, -1, -1, -1, 74, -1, 76, 77, 78, - -1, -1, -1, 44, 45, 46, 47, -1, 49, 50, - 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 64, 65, 66, 67, 68, 69, 34, - -1, -1, -1, 74, -1, 76, 77, 78, -1, 44, - 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, - 65, 66, 67, 68, 69, -1, 36, -1, -1, 74, - -1, 76, 77, 78, 44, 45, 46, 47, -1, 49, - 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 64, 65, 66, 67, 68, 69, - -1, -1, -1, 38, 74, -1, 76, 77, 78, 44, - 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, - 65, 66, 67, 68, 69, -1, -1, -1, -1, 74, - -1, 76, 77, 78, 44, 45, 46, 47, -1, 49, - 50, 51, -1, 53, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 64, 65, 66, 67, 68, 69, - -1, -1, -1, -1, 74, -1, 76, 77, 78, 44, - 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, - 65, 66, 67, 68, 69, -1, 71, -1, -1, 74, - -1, 76, 77, 78, 44, 45, 46, 47, -1, 49, - 50, 51, -1, 53, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 64, 65, 66, 67, 68, 69, - -1, -1, -1, -1, 74, -1, 76, 77, 78, 44, - 45, 46, 47, -1, 49, 50, 51, -1, 53, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, - 65, 66, 67, 68, 69, -1, -1, -1, -1, 74, - -1, 76, 77, 78, 44, 45, 46, 47, -1, 49, - 50, 51, -1, -1, -1, 55, -1, -1, -1, -1, - -1, -1, -1, -1, 64, 65, 66, 67, 68, 69, - -1, -1, -1, -1, 74, -1, 76, 77, 78, 44, - 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, - -1, -1, -1, 58, -1, -1, -1, -1, -1, 64, - 65, 66, 67, 68, 69, -1, -1, -1, -1, 74, - -1, 76, 77, 78, 44, 45, 46, 47, -1, 49, - 50, 51, -1, -1, -1, -1, -1, 57, -1, -1, - -1, -1, -1, -1, 64, 65, 66, 67, 68, 69, - -1, -1, -1, -1, 74, -1, 76, 77, 78, 44, - 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, - 65, 66, 67, 68, 69, -1, -1, -1, -1, 74, - -1, 76, 77, 78, 44, -1, 46, -1, -1, 49, - 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 64, 65, 66, 67, 68, 69, - -1, -1, -1, -1, 44, -1, 76, 77, 78, 49, - 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 64, 65, 66, 67, 68, 69, - -1, -1, -1, -1, -1, -1, 76, 77, 78 + 68, 69, -1, -1, -1, -1, -1, -1, 76, 77, + 78, 44, -1, 46, -1, -1, 49, 50, 51, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 64, 65, 66, 67, 68, 69, -1, -1, -1, + -1, 44, -1, 76, 77, 78, 49, 50, 51, -1, + -1, -1, 49, 50, 51, -1, -1, -1, -1, -1, + -1, 64, 65, 66, 67, 68, 69, 64, 65, 66, + 67, 68, 69, 76, 77, 78, -1, -1, -1, 76, + 77, 78 }; const unsigned char Parser::yystos_[] = { - 0, 3, 54, 94, 95, 195, 196, 1, 25, 87, - 182, 197, 198, 0, 1, 4, 5, 6, 7, 8, + 0, 3, 54, 94, 95, 196, 197, 1, 25, 87, + 183, 198, 199, 0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 96, 97, 98, 99, - 100, 101, 102, 104, 107, 108, 109, 110, 111, 112, - 115, 195, 3, 196, 55, 23, 26, 27, 30, 37, + 100, 101, 102, 103, 106, 107, 108, 109, 110, 113, + 116, 196, 3, 197, 55, 23, 26, 27, 30, 37, 41, 42, 43, 48, 49, 50, 52, 54, 61, 62, - 81, 82, 83, 84, 85, 86, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 182, 183, 55, 55, 56, 183, - 182, 182, 182, 182, 183, 182, 183, 182, 182, 52, - 168, 169, 170, 171, 172, 173, 174, 183, 182, 97, - 98, 182, 184, 187, 188, 190, 191, 195, 185, 188, - 185, 137, 185, 137, 138, 138, 1, 136, 137, 165, - 166, 182, 1, 55, 136, 137, 138, 183, 44, 45, + 81, 82, 83, 84, 85, 86, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 183, 184, 55, 55, 56, 184, + 183, 183, 183, 183, 184, 183, 184, 183, 183, 52, + 169, 170, 171, 172, 173, 174, 175, 184, 183, 97, + 98, 183, 185, 188, 189, 191, 192, 196, 186, 189, + 186, 138, 186, 138, 139, 139, 1, 137, 138, 166, + 167, 183, 1, 55, 137, 138, 139, 184, 44, 45, 46, 47, 49, 50, 51, 64, 65, 66, 67, 68, 69, 74, 76, 77, 78, 39, 72, 52, 52, 59, - 52, 137, 163, 180, 181, 52, 73, 51, 51, 52, - 73, 51, 59, 51, 39, 51, 51, 167, 168, 182, - 183, 186, 187, 51, 14, 64, 70, 58, 58, 51, - 25, 63, 184, 25, 63, 25, 31, 25, 53, 63, - 53, 53, 63, 58, 55, 55, 63, 71, 61, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 168, 155, 182, 1, - 53, 136, 137, 1, 53, 136, 182, 137, 73, 57, - 63, 1, 177, 182, 187, 189, 195, 168, 56, 18, + 52, 138, 164, 181, 182, 52, 73, 51, 51, 52, + 73, 51, 59, 51, 39, 51, 51, 168, 169, 183, + 184, 187, 188, 51, 14, 64, 70, 58, 58, 51, + 25, 63, 185, 25, 63, 25, 31, 25, 53, 63, + 53, 53, 63, 58, 55, 55, 63, 71, 61, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 169, 156, 183, 1, + 53, 137, 138, 1, 53, 137, 183, 138, 73, 57, + 63, 1, 178, 183, 188, 190, 196, 169, 56, 18, 20, 22, 23, 24, 26, 27, 28, 30, 33, 40, - 56, 79, 120, 121, 122, 123, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 138, 140, 141, 1, - 177, 168, 168, 66, 137, 182, 56, 56, 63, 63, - 56, 168, 167, 168, 175, 176, 137, 168, 176, 168, - 137, 137, 191, 137, 188, 137, 137, 137, 137, 166, - 182, 137, 137, 137, 52, 53, 53, 53, 53, 53, - 137, 181, 53, 53, 63, 187, 51, 1, 105, 106, - 182, 195, 1, 119, 120, 1, 119, 190, 1, 182, - 192, 193, 194, 195, 185, 185, 120, 137, 137, 137, - 1, 119, 1, 119, 75, 53, 53, 51, 103, 104, - 5, 7, 101, 102, 113, 114, 118, 168, 187, 101, - 102, 116, 117, 51, 63, 65, 66, 73, 73, 36, - 29, 32, 38, 53, 55, 1, 53, 136, 73, 73, - 73, 189, 137, 57, 63, 182, 19, 19, 120, 21, - 21, 25, 58, 25, 63, 194, 25, 25, 31, 34, - 29, 57, 57, 80, 80, 137, 51, 73, 51, 73, - 120, 57, 104, 182, 182, 57, 113, 53, 53, 117, - 57, 56, 168, 168, 168, 168, 137, 137, 137, 137, - 53, 53, 137, 168, 168, 105, 120, 176, 120, 193, - 137, 137, 120, 56, 120, 120, 168, 120, 168, 58, - 58, 117, 65, 17, 178, 51, 51, 73, 29, 38, - 29, 32, 1, 35, 60, 124, 125, 137, 51, 51, - 176, 176, 57, 56, 51, 179, 137, 137, 168, 120, - 137, 120, 120, 57, 58, 58, 57, 125, 58, 120, - 120, 73, 73, 137, 56, 178, 29, 120, 120, 120, - 168, 168, 57, 180, 179, 120, 57 + 56, 79, 121, 122, 123, 124, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 139, 141, 142, 1, + 178, 169, 169, 66, 138, 183, 56, 56, 63, 63, + 56, 169, 168, 169, 176, 177, 138, 169, 177, 169, + 138, 138, 192, 138, 189, 138, 138, 138, 138, 167, + 183, 138, 138, 138, 52, 53, 53, 53, 53, 53, + 138, 182, 53, 53, 63, 188, 51, 1, 104, 105, + 183, 196, 1, 120, 121, 1, 120, 191, 1, 183, + 193, 194, 195, 196, 186, 186, 121, 138, 138, 138, + 1, 120, 1, 120, 75, 53, 53, 51, 54, 103, + 111, 112, 5, 7, 101, 102, 114, 115, 119, 169, + 188, 101, 102, 117, 118, 51, 63, 65, 66, 73, + 73, 36, 29, 32, 38, 53, 55, 1, 53, 137, + 73, 73, 73, 190, 138, 57, 63, 183, 19, 19, + 121, 21, 21, 25, 58, 25, 63, 195, 25, 25, + 31, 34, 29, 57, 57, 80, 80, 138, 51, 73, + 51, 73, 121, 196, 57, 111, 183, 183, 57, 114, + 53, 53, 118, 57, 56, 169, 169, 169, 169, 138, + 138, 138, 138, 53, 53, 138, 169, 169, 104, 121, + 177, 121, 194, 138, 138, 121, 56, 121, 121, 169, + 121, 169, 55, 58, 58, 118, 65, 17, 179, 51, + 51, 73, 29, 38, 29, 32, 1, 35, 60, 125, + 126, 138, 51, 51, 103, 177, 177, 57, 56, 51, + 180, 138, 138, 169, 121, 138, 121, 121, 57, 58, + 58, 57, 126, 58, 121, 121, 73, 73, 138, 56, + 179, 29, 121, 121, 121, 169, 169, 57, 181, 180, + 121, 57 }; const unsigned char @@ -6107,29 +6131,29 @@ namespace libcasm_fe { 0, 93, 94, 95, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 99, 100, 101, 101, 101, 102, 102, - 102, 102, 102, 102, 103, 103, 104, 105, 105, 105, - 106, 106, 107, 108, 108, 109, 110, 110, 111, 112, - 113, 113, 113, 114, 114, 115, 115, 116, 116, 117, - 117, 118, 118, 119, 119, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, 121, 122, - 122, 123, 123, 124, 124, 125, 125, 125, 126, 127, - 128, 128, 129, 130, 131, 131, 131, 131, 132, 132, - 132, 132, 133, 134, 135, 136, 136, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 138, 138, 138, 138, - 138, 138, 138, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, - 139, 140, 140, 140, 141, 141, 141, 141, 142, 142, - 142, 142, 143, 144, 144, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 153, 154, 154, 155, 156, - 157, 158, 158, 159, 160, 161, 161, 161, 162, 163, - 164, 165, 165, 166, 167, 167, 168, 168, 168, 168, - 168, 168, 169, 170, 171, 172, 173, 174, 175, 175, + 102, 102, 102, 102, 103, 104, 104, 104, 105, 105, + 106, 107, 107, 108, 109, 109, 110, 111, 111, 112, + 112, 113, 114, 114, 114, 115, 115, 116, 116, 117, + 117, 118, 118, 119, 119, 120, 120, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, + 122, 123, 123, 124, 124, 125, 125, 126, 126, 126, + 127, 128, 129, 129, 130, 131, 132, 132, 132, 132, + 133, 133, 133, 133, 134, 135, 136, 137, 137, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 139, 139, + 139, 139, 139, 139, 139, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 141, 141, 141, 142, 142, 142, 142, + 143, 143, 143, 143, 144, 145, 145, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 154, 155, 155, + 156, 157, 158, 159, 159, 160, 161, 162, 162, 162, + 163, 164, 165, 166, 166, 167, 168, 168, 169, 169, + 169, 169, 169, 169, 170, 171, 172, 173, 174, 175, 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, - 181, 181, 181, 182, 182, 183, 183, 184, 184, 185, - 185, 186, 186, 187, 188, 188, 189, 189, 190, 190, - 191, 192, 192, 193, 193, 193, 194, 195, 195, 196, - 196, 196, 197, 198 + 181, 181, 182, 182, 182, 183, 183, 184, 184, 185, + 185, 186, 186, 187, 187, 188, 189, 189, 190, 190, + 191, 191, 192, 193, 193, 194, 194, 194, 195, 196, + 196, 197, 197, 197, 198, 199 }; const signed char @@ -6138,29 +6162,29 @@ namespace libcasm_fe { 0, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 6, 6, 9, 9, 4, 6, - 7, 9, 7, 9, 2, 1, 8, 1, 2, 1, - 3, 1, 4, 2, 4, 4, 2, 4, 6, 6, - 1, 1, 1, 2, 1, 8, 6, 1, 1, 2, - 1, 6, 6, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 6, 6, 6, 2, 1, 3, 3, 3, 4, 4, - 6, 8, 6, 2, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 1, 4, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, - 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 7, 9, 7, 9, 8, 1, 2, 1, 3, 1, + 4, 2, 4, 4, 2, 4, 6, 4, 1, 2, + 1, 6, 1, 1, 1, 2, 1, 8, 6, 1, + 1, 2, 1, 6, 6, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 4, 6, 6, 6, 2, 1, 3, 3, 3, + 4, 4, 6, 8, 6, 2, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 1, 4, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, + 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 2, 1, 1, 1, 1, 3, 4, 4, 3, 5, - 6, 6, 3, 3, 4, 4, 3, 4, 6, 6, - 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 2, 1, 1, 1, 1, 3, 4, 4, + 3, 5, 6, 6, 3, 3, 4, 4, 3, 4, + 6, 6, 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 3, 3, 5, 5, - 3, 3, 1, 3, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 5, 5, 4, 6, 3, 3, 1, - 1, 0, 3, 1, 4, 0, 4, 0, 3, 1, - 1, 5, 3, 1, 1, 3, 1, 1, 1, 3, - 1, 3, 1, 3, 2, 1, 2, 1, 3, 1, - 3, 3, 1, 2, 1, 1, 7, 2, 1, 3, - 3, 3, 1, 2 + 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, + 5, 5, 3, 3, 1, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 5, 5, 4, 6, 3, + 3, 1, 1, 0, 3, 1, 4, 0, 4, 0, + 3, 1, 1, 5, 3, 1, 1, 3, 1, 1, + 1, 3, 1, 3, 1, 3, 2, 1, 2, 1, + 3, 1, 3, 3, 1, 2, 1, 1, 7, 2, + 1, 3, 3, 3, 1, 2 }; @@ -6189,12 +6213,12 @@ namespace libcasm_fe { "CALL_WITHOUT_ARGS", "$accept", "Specification", "Header", "Definitions", "AttributedDefinition", "Definition", "InitDefinition", "EnumerationDefinition", "DerivedDefinition", "RuleDefinition", - "FunctionDefinitions", "FunctionDefinition", "EnumeratorDefinition", - "Enumerators", "UsingDefinition", "UsingPathDefinition", - "InvariantDefinition", "ImportDefinition", "StructureDefinition", - "FeatureDefinition", "FeatureDeclarationOrDefinition", - "FeatureDeclarationsAndDefinitions", "ImplementationDefinition", - "ImplementationDefinitionDefinition", + "FunctionDefinition", "EnumeratorDefinition", "Enumerators", + "UsingDefinition", "UsingPathDefinition", "InvariantDefinition", + "ImportDefinition", "StructureDefinition", "StructureDefinitionElement", + "StructureDefinitionList", "FeatureDefinition", + "FeatureDeclarationOrDefinition", "FeatureDeclarationsAndDefinitions", + "ImplementationDefinition", "ImplementationDefinitionDefinition", "ImplementationDefinitionDefinitions", "DeclarationDefinition", "Rules", "Rule", "SkipRule", "ConditionalRule", "CaseRule", "CaseLabels", "CaseLabel", "LetRule", "LocalRule", "ForallRule", "ChooseRule", @@ -6226,32 +6250,32 @@ namespace libcasm_fe { const short Parser::yyrline_[] = { - 0, 432, 432, 442, 448, 456, 462, 472, 478, 482, - 490, 494, 498, 502, 506, 510, 514, 518, 522, 526, - 530, 534, 542, 546, 554, 562, 567, 573, 581, 587, - 592, 599, 605, 609, 617, 623, 633, 648, 652, 658, - 666, 673, 683, 691, 695, 703, 711, 715, 723, 732, - 741, 745, 749, 757, 763, 773, 777, 787, 791, 799, - 805, 815, 822, 837, 843, 853, 857, 861, 865, 869, - 873, 877, 881, 885, 889, 893, 897, 901, 909, 917, - 921, 929, 933, 941, 947, 957, 961, 965, 973, 981, - 989, 993, 1001, 1009, 1017, 1021, 1025, 1030, 1039, 1043, - 1047, 1052, 1061, 1069, 1077, 1089, 1096, 1106, 1110, 1114, - 1118, 1122, 1126, 1130, 1134, 1138, 1146, 1150, 1154, 1158, - 1162, 1166, 1170, 1182, 1186, 1190, 1194, 1198, 1202, 1206, - 1210, 1214, 1218, 1222, 1226, 1230, 1234, 1238, 1242, 1246, - 1250, 1258, 1262, 1266, 1274, 1279, 1286, 1292, 1300, 1305, - 1312, 1318, 1326, 1334, 1341, 1347, 1355, 1363, 1371, 1379, - 1387, 1395, 1403, 1416, 1420, 1424, 1428, 1432, 1436, 1440, - 1444, 1448, 1452, 1456, 1460, 1468, 1477, 1483, 1493, 1501, - 1509, 1517, 1521, 1529, 1537, 1545, 1552, 1558, 1566, 1575, - 1586, 1595, 1602, 1611, 1623, 1630, 1639, 1643, 1647, 1651, - 1655, 1659, 1667, 1675, 1686, 1697, 1705, 1713, 1725, 1732, - 1742, 1746, 1754, 1761, 1775, 1779, 1787, 1791, 1800, 1807, - 1817, 1822, 1828, 1843, 1847, 1856, 1863, 1875, 1879, 1888, - 1895, 1905, 1912, 1922, 1931, 1937, 1945, 1951, 1963, 1970, - 1979, 1991, 1998, 2007, 2013, 2017, 2024, 2044, 2050, 2059, - 2066, 2073, 2080, 2087 + 0, 434, 434, 444, 450, 458, 464, 474, 480, 484, + 492, 496, 500, 504, 508, 512, 516, 520, 524, 528, + 532, 536, 544, 548, 556, 564, 569, 575, 583, 589, + 594, 601, 607, 611, 635, 650, 654, 660, 668, 675, + 685, 693, 697, 705, 717, 721, 729, 738, 744, 752, + 758, 772, 781, 785, 789, 797, 803, 817, 821, 831, + 835, 843, 849, 863, 870, 885, 891, 901, 905, 909, + 913, 917, 921, 925, 929, 933, 937, 941, 945, 949, + 957, 965, 969, 977, 981, 989, 995, 1005, 1009, 1013, + 1021, 1029, 1037, 1041, 1049, 1057, 1065, 1069, 1073, 1078, + 1087, 1091, 1095, 1100, 1109, 1117, 1125, 1137, 1144, 1154, + 1158, 1162, 1166, 1170, 1174, 1178, 1182, 1186, 1194, 1198, + 1202, 1206, 1210, 1214, 1218, 1230, 1234, 1238, 1242, 1246, + 1250, 1254, 1258, 1262, 1266, 1270, 1274, 1278, 1282, 1286, + 1290, 1294, 1298, 1306, 1310, 1314, 1322, 1327, 1334, 1340, + 1348, 1353, 1360, 1366, 1374, 1382, 1389, 1395, 1403, 1411, + 1419, 1427, 1435, 1443, 1451, 1464, 1468, 1472, 1476, 1480, + 1484, 1488, 1492, 1496, 1500, 1504, 1508, 1516, 1525, 1531, + 1541, 1549, 1557, 1565, 1569, 1577, 1585, 1593, 1600, 1606, + 1614, 1623, 1634, 1643, 1650, 1659, 1671, 1678, 1687, 1691, + 1695, 1699, 1703, 1707, 1715, 1723, 1734, 1745, 1753, 1761, + 1773, 1780, 1790, 1794, 1802, 1809, 1823, 1827, 1835, 1839, + 1848, 1855, 1865, 1870, 1876, 1891, 1895, 1904, 1911, 1923, + 1927, 1936, 1943, 1953, 1960, 1970, 1979, 1985, 1993, 1999, + 2011, 2018, 2027, 2039, 2046, 2055, 2061, 2065, 2072, 2092, + 2098, 2107, 2114, 2121, 2128, 2135 }; void @@ -6284,9 +6308,9 @@ namespace libcasm_fe { #line 51 "../../obj/src/GrammarParser.y" } // libcasm_fe -#line 6288 "GrammarParser.cpp" +#line 6312 "GrammarParser.cpp" -#line 2093 "../../obj/src/GrammarParser.y" +#line 2141 "../../obj/src/GrammarParser.y" void Parser::error( const libstdhl::SourceLocation& location, const std::string& message ) diff --git a/src/various/GrammarParser.gv b/src/various/GrammarParser.gv index 19486068..0da91fed 100644 --- a/src/various/GrammarParser.gv +++ b/src/various/GrammarParser.gv @@ -17,7 +17,7 @@ digraph "../../obj/src/GrammarParser.y" 1 [label="State 1\n\l 3 Header: \"CASM\" •\l"] 1 -> "1R3" [style=solid] "1R3" [label="R3", fillcolor=3, shape=diamond, style=filled] - 2 [label="State 2\n\l248 Attribute: \"[\" • BasicAttribute \"]\"\l249 | \"[\" • ExpressionAttribute \"]\"\l250 | \"[\" • error \"]\"\l"] + 2 [label="State 2\n\l250 Attribute: \"[\" • BasicAttribute \"]\"\l251 | \"[\" • ExpressionAttribute \"]\"\l252 | \"[\" • error \"]\"\l"] 2 -> 7 [style=dotted] 2 -> 8 [style=solid label="\"in\""] 2 -> 9 [style=solid label="\"identifier\""] @@ -57,22 +57,22 @@ digraph "../../obj/src/GrammarParser.y" 4 -> 40 [style=dashed label="ImplementationDefinition"] 4 -> 41 [style=dashed label="Attributes"] 4 -> 6 [style=dashed label="Attribute"] - 5 [label="State 5\n\l 2 Header: Attributes • \"CASM\"\l246 Attributes: Attributes • Attribute\l"] + 5 [label="State 5\n\l 2 Header: Attributes • \"CASM\"\l248 Attributes: Attributes • Attribute\l"] 5 -> 42 [style=solid label="\"CASM\""] 5 -> 2 [style=solid label="\"[\""] 5 -> 43 [style=dashed label="Attribute"] - 6 [label="State 6\n\l247 Attributes: Attribute •\l"] - 6 -> "6R247" [style=solid] - "6R247" [label="R247", fillcolor=3, shape=diamond, style=filled] - 7 [label="State 7\n\l250 Attribute: \"[\" error • \"]\"\l"] + 6 [label="State 6\n\l249 Attributes: Attribute •\l"] + 6 -> "6R249" [style=solid] + "6R249" [label="R249", fillcolor=3, shape=diamond, style=filled] + 7 [label="State 7\n\l252 Attribute: \"[\" error • \"]\"\l"] 7 -> 44 [style=solid label="\"]\""] - 8 [label="State 8\n\l223 Identifier: \"in\" •\l"] - 8 -> "8R223" [style=solid] - "8R223" [label="R223", fillcolor=3, shape=diamond, style=filled] - 9 [label="State 9\n\l222 Identifier: \"identifier\" •\l"] - 9 -> "9R222" [style=solid] - "9R222" [label="R222", fillcolor=3, shape=diamond, style=filled] - 10 [label="State 10\n\l251 BasicAttribute: Identifier •\l252 ExpressionAttribute: Identifier • Term\l"] + 8 [label="State 8\n\l225 Identifier: \"in\" •\l"] + 8 -> "8R225" [style=solid] + "8R225" [label="R225", fillcolor=3, shape=diamond, style=filled] + 9 [label="State 9\n\l224 Identifier: \"identifier\" •\l"] + 9 -> "9R224" [style=solid] + "9R224" [label="R224", fillcolor=3, shape=diamond, style=filled] + 10 [label="State 10\n\l253 BasicAttribute: Identifier •\l254 ExpressionAttribute: Identifier • Term\l"] 10 -> 45 [style=solid label="\"let\""] 10 -> 8 [style=solid label="\"in\""] 10 -> 46 [style=solid label="\"forall\""] @@ -126,11 +126,11 @@ digraph "../../obj/src/GrammarParser.y" 10 -> 93 [style=dashed label="RecordLiteral"] 10 -> 94 [style=dashed label="Identifier"] 10 -> 95 [style=dashed label="IdentifierPath"] - 10 -> "10R251" [style=solid] - "10R251" [label="R251", fillcolor=3, shape=diamond, style=filled] - 11 [label="State 11\n\l248 Attribute: \"[\" BasicAttribute • \"]\"\l"] + 10 -> "10R253" [style=solid] + "10R253" [label="R253", fillcolor=3, shape=diamond, style=filled] + 11 [label="State 11\n\l250 Attribute: \"[\" BasicAttribute • \"]\"\l"] 11 -> 96 [style=solid label="\"]\""] - 12 [label="State 12\n\l249 Attribute: \"[\" ExpressionAttribute • \"]\"\l"] + 12 [label="State 12\n\l251 Attribute: \"[\" ExpressionAttribute • \"]\"\l"] 12 -> 97 [style=solid label="\"]\""] 13 [label="State 13\n\l 0 $accept: Specification \"end of file\" •\l"] 13 -> "13R0" [style=solid] @@ -156,29 +156,29 @@ digraph "../../obj/src/GrammarParser.y" 18 -> 8 [style=solid label="\"in\""] 18 -> 9 [style=solid label="\"identifier\""] 18 -> 102 [style=dashed label="Identifier"] - 19 [label="State 19\n\l 41 UsingDefinition: \"using\" • Identifier \"=\" Type\l 42 UsingPathDefinition: \"using\" • IdentifierPath\l 43 | \"using\" • IdentifierPath \"::\" \"*\"\l"] + 19 [label="State 19\n\l 39 UsingDefinition: \"using\" • Identifier \"=\" Type\l 40 UsingPathDefinition: \"using\" • IdentifierPath\l 41 | \"using\" • IdentifierPath \"::\" \"*\"\l"] 19 -> 8 [style=solid label="\"in\""] 19 -> 9 [style=solid label="\"identifier\""] 19 -> 103 [style=dashed label="Identifier"] 19 -> 104 [style=dashed label="IdentifierPath"] - 20 [label="State 20\n\l 44 InvariantDefinition: \"invariant\" • Identifier \"=\" Term\l"] + 20 [label="State 20\n\l 42 InvariantDefinition: \"invariant\" • Identifier \"=\" Term\l"] 20 -> 8 [style=solid label="\"in\""] 20 -> 9 [style=solid label="\"identifier\""] 20 -> 105 [style=dashed label="Identifier"] - 21 [label="State 21\n\l 45 ImportDefinition: \"import\" • IdentifierPath\l 46 | \"import\" • IdentifierPath \"as\" Identifier\l"] + 21 [label="State 21\n\l 43 ImportDefinition: \"import\" • IdentifierPath\l 44 | \"import\" • IdentifierPath \"as\" Identifier\l"] 21 -> 8 [style=solid label="\"in\""] 21 -> 9 [style=solid label="\"identifier\""] 21 -> 94 [style=dashed label="Identifier"] 21 -> 106 [style=dashed label="IdentifierPath"] - 22 [label="State 22\n\l 47 StructureDefinition: \"structure\" • Identifier \"=\" \"{\" FunctionDefinitions \"}\"\l"] + 22 [label="State 22\n\l 45 StructureDefinition: \"structure\" • Identifier \"=\" \"{\" StructureDefinitionList \"}\"\l"] 22 -> 8 [style=solid label="\"in\""] 22 -> 9 [style=solid label="\"identifier\""] 22 -> 107 [style=dashed label="Identifier"] - 23 [label="State 23\n\l 48 FeatureDefinition: \"feature\" • Identifier \"=\" \"{\" FeatureDeclarationsAndDefinitions \"}\"\l"] + 23 [label="State 23\n\l 50 FeatureDefinition: \"feature\" • Identifier \"=\" \"{\" FeatureDeclarationsAndDefinitions \"}\"\l"] 23 -> 8 [style=solid label="\"in\""] 23 -> 9 [style=solid label="\"identifier\""] 23 -> 108 [style=dashed label="Identifier"] - 24 [label="State 24\n\l 54 ImplementationDefinition: \"implements\" • IdentifierPath \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l 55 | \"implements\" • Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 24 [label="State 24\n\l 56 ImplementationDefinition: \"implements\" • IdentifierPath \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l 57 | \"implements\" • Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] 24 -> 8 [style=solid label="\"in\""] 24 -> 109 [style=solid label="\"(\""] 24 -> 9 [style=solid label="\"identifier\""] @@ -191,7 +191,7 @@ digraph "../../obj/src/GrammarParser.y" 24 -> 116 [style=dashed label="FixedSizedType"] 24 -> 94 [style=dashed label="Identifier"] 24 -> 117 [style=dashed label="IdentifierPath"] - 25 [label="State 25\n\l 35 FunctionDefinition: \"function\" • Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] + 25 [label="State 25\n\l 33 FunctionDefinition: \"function\" • Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] 25 -> 8 [style=solid label="\"in\""] 25 -> 9 [style=solid label="\"identifier\""] 25 -> 118 [style=dashed label="Identifier"] @@ -269,7 +269,7 @@ digraph "../../obj/src/GrammarParser.y" 40 [label="State 40\n\l 20 Definition: ImplementationDefinition •\l"] 40 -> "40R20" [style=solid] "40R20" [label="R20", fillcolor=3, shape=diamond, style=filled] - 41 [label="State 41\n\l 6 AttributedDefinition: Attributes • Definition\l246 Attributes: Attributes • Attribute\l"] + 41 [label="State 41\n\l 6 AttributedDefinition: Attributes • Definition\l248 Attributes: Attributes • Attribute\l"] 41 -> 15 [style=solid label="\"init\""] 41 -> 16 [style=solid label="\"derived\""] 41 -> 17 [style=solid label="\"enumeration\""] @@ -299,13 +299,13 @@ digraph "../../obj/src/GrammarParser.y" 42 [label="State 42\n\l 2 Header: Attributes \"CASM\" •\l"] 42 -> "42R2" [style=solid] "42R2" [label="R2", fillcolor=3, shape=diamond, style=filled] - 43 [label="State 43\n\l246 Attributes: Attributes Attribute •\l"] - 43 -> "43R246" [style=solid] - "43R246" [label="R246", fillcolor=3, shape=diamond, style=filled] - 44 [label="State 44\n\l250 Attribute: \"[\" error \"]\" •\l"] - 44 -> "44R250" [style=solid] - "44R250" [label="R250", fillcolor=3, shape=diamond, style=filled] - 45 [label="State 45\n\l156 LetExpression: \"let\" • VariableBindings \"in\" Term\l"] + 43 [label="State 43\n\l248 Attributes: Attributes Attribute •\l"] + 43 -> "43R248" [style=solid] + "43R248" [label="R248", fillcolor=3, shape=diamond, style=filled] + 44 [label="State 44\n\l252 Attribute: \"[\" error \"]\" •\l"] + 44 -> "44R252" [style=solid] + "44R252" [label="R252", fillcolor=3, shape=diamond, style=filled] + 45 [label="State 45\n\l158 LetExpression: \"let\" • VariableBindings \"in\" Term\l"] 45 -> 8 [style=solid label="\"in\""] 45 -> 2 [style=solid label="\"[\""] 45 -> 9 [style=solid label="\"identifier\""] @@ -317,7 +317,7 @@ digraph "../../obj/src/GrammarParser.y" 45 -> 126 [style=dashed label="VariableBinding"] 45 -> 127 [style=dashed label="Attributes"] 45 -> 6 [style=dashed label="Attribute"] - 46 [label="State 46\n\l159 UniversalQuantifierExpression: \"forall\" • AttributedVariables \"in\" Term \"holds\" Term\l"] + 46 [label="State 46\n\l161 UniversalQuantifierExpression: \"forall\" • AttributedVariables \"in\" Term \"holds\" Term\l"] 46 -> 8 [style=solid label="\"in\""] 46 -> 2 [style=solid label="\"[\""] 46 -> 9 [style=solid label="\"identifier\""] @@ -328,7 +328,7 @@ digraph "../../obj/src/GrammarParser.y" 46 -> 129 [style=dashed label="AttributedVariable"] 46 -> 127 [style=dashed label="Attributes"] 46 -> 6 [style=dashed label="Attribute"] - 47 [label="State 47\n\l158 ChooseExpression: \"choose\" • AttributedVariables \"in\" Term \"do\" Term\l"] + 47 [label="State 47\n\l160 ChooseExpression: \"choose\" • AttributedVariables \"in\" Term \"do\" Term\l"] 47 -> 8 [style=solid label="\"in\""] 47 -> 2 [style=solid label="\"[\""] 47 -> 9 [style=solid label="\"identifier\""] @@ -339,7 +339,7 @@ digraph "../../obj/src/GrammarParser.y" 47 -> 129 [style=dashed label="AttributedVariable"] 47 -> 127 [style=dashed label="Attributes"] 47 -> 6 [style=dashed label="Attribute"] - 48 [label="State 48\n\l157 ConditionalExpression: \"if\" • Term \"then\" Term \"else\" Term\l"] + 48 [label="State 48\n\l159 ConditionalExpression: \"if\" • Term \"then\" Term \"else\" Term\l"] 48 -> 45 [style=solid label="\"let\""] 48 -> 8 [style=solid label="\"in\""] 48 -> 46 [style=solid label="\"forall\""] @@ -393,7 +393,7 @@ digraph "../../obj/src/GrammarParser.y" 48 -> 93 [style=dashed label="RecordLiteral"] 48 -> 94 [style=dashed label="Identifier"] 48 -> 95 [style=dashed label="IdentifierPath"] - 49 [label="State 49\n\l160 ExistentialQuantifierExpression: \"exists\" • AttributedVariables \"in\" Term \"with\" Term\l"] + 49 [label="State 49\n\l162 ExistentialQuantifierExpression: \"exists\" • AttributedVariables \"in\" Term \"with\" Term\l"] 49 -> 8 [style=solid label="\"in\""] 49 -> 2 [style=solid label="\"[\""] 49 -> 9 [style=solid label="\"identifier\""] @@ -404,16 +404,16 @@ digraph "../../obj/src/GrammarParser.y" 49 -> 129 [style=dashed label="AttributedVariable"] 49 -> 127 [style=dashed label="Attributes"] 49 -> 6 [style=dashed label="Attribute"] - 50 [label="State 50\n\l174 UndefinedLiteral: \"undef\" •\l"] - 50 -> "50R174" [style=solid] - "50R174" [label="R174", fillcolor=3, shape=diamond, style=filled] - 51 [label="State 51\n\l176 BooleanLiteral: \"false\" •\l"] - 51 -> "51R176" [style=solid] - "51R176" [label="R176", fillcolor=3, shape=diamond, style=filled] - 52 [label="State 52\n\l175 BooleanLiteral: \"true\" •\l"] - 52 -> "52R175" [style=solid] - "52R175" [label="R175", fillcolor=3, shape=diamond, style=filled] - 53 [label="State 53\n\l139 OperatorExpression: \"not\" • Term\l"] + 50 [label="State 50\n\l176 UndefinedLiteral: \"undef\" •\l"] + 50 -> "50R176" [style=solid] + "50R176" [label="R176", fillcolor=3, shape=diamond, style=filled] + 51 [label="State 51\n\l178 BooleanLiteral: \"false\" •\l"] + 51 -> "51R178" [style=solid] + "51R178" [label="R178", fillcolor=3, shape=diamond, style=filled] + 52 [label="State 52\n\l177 BooleanLiteral: \"true\" •\l"] + 52 -> "52R177" [style=solid] + "52R177" [label="R177", fillcolor=3, shape=diamond, style=filled] + 53 [label="State 53\n\l141 OperatorExpression: \"not\" • Term\l"] 53 -> 45 [style=solid label="\"let\""] 53 -> 8 [style=solid label="\"in\""] 53 -> 46 [style=solid label="\"forall\""] @@ -467,7 +467,7 @@ digraph "../../obj/src/GrammarParser.y" 53 -> 93 [style=dashed label="RecordLiteral"] 53 -> 94 [style=dashed label="Identifier"] 53 -> 95 [style=dashed label="IdentifierPath"] - 54 [label="State 54\n\l120 SimpleOrClaspedTerm: \"+\" • SimpleOrClaspedTerm\l"] + 54 [label="State 54\n\l122 SimpleOrClaspedTerm: \"+\" • SimpleOrClaspedTerm\l"] 54 -> 8 [style=solid label="\"in\""] 54 -> 50 [style=solid label="\"undef\""] 54 -> 51 [style=solid label="\"false\""] @@ -505,7 +505,7 @@ digraph "../../obj/src/GrammarParser.y" 54 -> 93 [style=dashed label="RecordLiteral"] 54 -> 94 [style=dashed label="Identifier"] 54 -> 95 [style=dashed label="IdentifierPath"] - 55 [label="State 55\n\l121 SimpleOrClaspedTerm: \"-\" • SimpleOrClaspedTerm\l"] + 55 [label="State 55\n\l123 SimpleOrClaspedTerm: \"-\" • SimpleOrClaspedTerm\l"] 55 -> 8 [style=solid label="\"in\""] 55 -> 50 [style=solid label="\"undef\""] 55 -> 51 [style=solid label="\"false\""] @@ -543,7 +543,7 @@ digraph "../../obj/src/GrammarParser.y" 55 -> 93 [style=dashed label="RecordLiteral"] 55 -> 94 [style=dashed label="Identifier"] 55 -> 95 [style=dashed label="IdentifierPath"] - 56 [label="State 56\n\l115 SimpleOrClaspedTerm: \"(\" • Term \")\"\l116 | \"(\" • error \")\"\l188 TupleLiteral: \"(\" • Terms \",\" Term \")\"\l189 RecordLiteral: \"(\" • Assignments \")\"\l"] + 56 [label="State 56\n\l117 SimpleOrClaspedTerm: \"(\" • Term \")\"\l118 | \"(\" • error \")\"\l190 TupleLiteral: \"(\" • Terms \",\" Term \")\"\l191 RecordLiteral: \"(\" • Assignments \")\"\l"] 56 -> 136 [style=dotted] 56 -> 45 [style=solid label="\"let\""] 56 -> 8 [style=solid label="\"in\""] @@ -601,7 +601,7 @@ digraph "../../obj/src/GrammarParser.y" 56 -> 140 [style=dashed label="Assignment"] 56 -> 141 [style=dashed label="Identifier"] 56 -> 95 [style=dashed label="IdentifierPath"] - 57 [label="State 57\n\l184 ListLiteral: \"[\" • \"]\"\l185 | \"[\" • Terms \"]\"\l186 | \"[\" • error \"]\"\l187 RangeLiteral: \"[\" • Term \"..\" Term \"]\"\l"] + 57 [label="State 57\n\l186 ListLiteral: \"[\" • \"]\"\l187 | \"[\" • Terms \"]\"\l188 | \"[\" • error \"]\"\l189 RangeLiteral: \"[\" • Term \"..\" Term \"]\"\l"] 57 -> 142 [style=dotted] 57 -> 45 [style=solid label="\"let\""] 57 -> 8 [style=solid label="\"in\""] @@ -658,7 +658,7 @@ digraph "../../obj/src/GrammarParser.y" 57 -> 93 [style=dashed label="RecordLiteral"] 57 -> 94 [style=dashed label="Identifier"] 57 -> 95 [style=dashed label="IdentifierPath"] - 58 [label="State 58\n\l161 CardinalityExpression: \"|\" • SimpleOrClaspedTerm \"|\"\l"] + 58 [label="State 58\n\l163 CardinalityExpression: \"|\" • SimpleOrClaspedTerm \"|\"\l"] 58 -> 8 [style=solid label="\"in\""] 58 -> 50 [style=solid label="\"undef\""] 58 -> 51 [style=solid label="\"false\""] @@ -696,30 +696,30 @@ digraph "../../obj/src/GrammarParser.y" 58 -> 93 [style=dashed label="RecordLiteral"] 58 -> 94 [style=dashed label="Identifier"] 58 -> 95 [style=dashed label="IdentifierPath"] - 59 [label="State 59\n\l183 ReferenceLiteral: \"@\" • IdentifierPath\l"] + 59 [label="State 59\n\l185 ReferenceLiteral: \"@\" • IdentifierPath\l"] 59 -> 8 [style=solid label="\"in\""] 59 -> 9 [style=solid label="\"identifier\""] 59 -> 94 [style=dashed label="Identifier"] 59 -> 147 [style=dashed label="IdentifierPath"] - 60 [label="State 60\n\l180 BinaryLiteral: \"binary\" •\l"] - 60 -> "60R180" [style=solid] - "60R180" [label="R180", fillcolor=3, shape=diamond, style=filled] - 61 [label="State 61\n\l181 BinaryLiteral: \"hexadecimal\" •\l"] - 61 -> "61R181" [style=solid] - "61R181" [label="R181", fillcolor=3, shape=diamond, style=filled] - 62 [label="State 62\n\l177 IntegerLiteral: \"integer\" •\l"] - 62 -> "62R177" [style=solid] - "62R177" [label="R177", fillcolor=3, shape=diamond, style=filled] - 63 [label="State 63\n\l178 RationalLiteral: \"rational\" •\l"] - 63 -> "63R178" [style=solid] - "63R178" [label="R178", fillcolor=3, shape=diamond, style=filled] - 64 [label="State 64\n\l179 DecimalLiteral: \"decimal\" •\l"] - 64 -> "64R179" [style=solid] - "64R179" [label="R179", fillcolor=3, shape=diamond, style=filled] - 65 [label="State 65\n\l182 StringLiteral: \"string\" •\l"] - 65 -> "65R182" [style=solid] - "65R182" [label="R182", fillcolor=3, shape=diamond, style=filled] - 66 [label="State 66\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l252 ExpressionAttribute: Identifier Term •\l"] + 60 [label="State 60\n\l182 BinaryLiteral: \"binary\" •\l"] + 60 -> "60R182" [style=solid] + "60R182" [label="R182", fillcolor=3, shape=diamond, style=filled] + 61 [label="State 61\n\l183 BinaryLiteral: \"hexadecimal\" •\l"] + 61 -> "61R183" [style=solid] + "61R183" [label="R183", fillcolor=3, shape=diamond, style=filled] + 62 [label="State 62\n\l179 IntegerLiteral: \"integer\" •\l"] + 62 -> "62R179" [style=solid] + "62R179" [label="R179", fillcolor=3, shape=diamond, style=filled] + 63 [label="State 63\n\l180 RationalLiteral: \"rational\" •\l"] + 63 -> "63R180" [style=solid] + "63R180" [label="R180", fillcolor=3, shape=diamond, style=filled] + 64 [label="State 64\n\l181 DecimalLiteral: \"decimal\" •\l"] + 64 -> "64R181" [style=solid] + "64R181" [label="R181", fillcolor=3, shape=diamond, style=filled] + 65 [label="State 65\n\l184 StringLiteral: \"string\" •\l"] + 65 -> "65R184" [style=solid] + "65R184" [label="R184", fillcolor=3, shape=diamond, style=filled] + 66 [label="State 66\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l254 ExpressionAttribute: Identifier Term •\l"] 66 -> 148 [style=solid label="\"and\""] 66 -> 149 [style=solid label="\"or\""] 66 -> 150 [style=solid label="\"xor\""] @@ -737,106 +737,106 @@ digraph "../../obj/src/GrammarParser.y" 66 -> 162 [style=solid label="\"!=\""] 66 -> 163 [style=solid label="\"<=\""] 66 -> 164 [style=solid label="\">=\""] - 66 -> "66R252" [style=solid] - "66R252" [label="R252", fillcolor=3, shape=diamond, style=filled] - 67 [label="State 67\n\l106 Term: SimpleOrClaspedTerm •\l147 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l149 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l150 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l151 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l155 TypeCastingExpression: SimpleOrClaspedTerm • \"as\" Type\l"] + 66 -> "66R254" [style=solid] + "66R254" [label="R254", fillcolor=3, shape=diamond, style=filled] + 67 [label="State 67\n\l108 Term: SimpleOrClaspedTerm •\l149 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l150 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l151 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l152 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l153 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l157 TypeCastingExpression: SimpleOrClaspedTerm • \"as\" Type\l"] 67 -> 165 [style=solid label="\"as\""] 67 -> 166 [style=solid label="\".\""] - 67 -> "67R106" [style=solid] - "67R106" [label="R106", fillcolor=3, shape=diamond, style=filled] - 68 [label="State 68\n\l108 Term: OperatorExpression •\l"] - 68 -> "68R108" [style=solid] - "68R108" [label="R108", fillcolor=3, shape=diamond, style=filled] - 69 [label="State 69\n\l117 SimpleOrClaspedTerm: CallExpression •\l152 IndirectCallExpression: CallExpression • \"(\" \")\"\l153 | CallExpression • \"(\" Terms \")\"\l154 | CallExpression • \"(\" error \")\"\l"] + 67 -> "67R108" [style=solid] + "67R108" [label="R108", fillcolor=3, shape=diamond, style=filled] + 68 [label="State 68\n\l110 Term: OperatorExpression •\l"] + 68 -> "68R110" [style=solid] + "68R110" [label="R110", fillcolor=3, shape=diamond, style=filled] + 69 [label="State 69\n\l119 SimpleOrClaspedTerm: CallExpression •\l154 IndirectCallExpression: CallExpression • \"(\" \")\"\l155 | CallExpression • \"(\" Terms \")\"\l156 | CallExpression • \"(\" error \")\"\l"] 69 -> 167 [style=solid label="\"(\""] - 69 -> "69R117" [style=solid] - "69R117" [label="R117", fillcolor=3, shape=diamond, style=filled] - 70 [label="State 70\n\l140 CallExpression: DirectCallExpression •\l"] - 70 -> "70R140" [style=solid] - "70R140" [label="R140", fillcolor=3, shape=diamond, style=filled] - 71 [label="State 71\n\l141 CallExpression: MethodCallExpression •\l"] - 71 -> "71R141" [style=solid] - "71R141" [label="R141", fillcolor=3, shape=diamond, style=filled] - 72 [label="State 72\n\l118 SimpleOrClaspedTerm: LiteralCallExpression •\l"] - 72 -> "72R118" [style=solid] - "72R118" [label="R118", fillcolor=3, shape=diamond, style=filled] - 73 [label="State 73\n\l142 CallExpression: IndirectCallExpression •\l"] - 73 -> "73R142" [style=solid] - "73R142" [label="R142", fillcolor=3, shape=diamond, style=filled] - 74 [label="State 74\n\l107 Term: TypeCastingExpression •\l"] - 74 -> "74R107" [style=solid] - "74R107" [label="R107", fillcolor=3, shape=diamond, style=filled] - 75 [label="State 75\n\l109 Term: LetExpression •\l"] - 75 -> "75R109" [style=solid] - "75R109" [label="R109", fillcolor=3, shape=diamond, style=filled] - 76 [label="State 76\n\l110 Term: ConditionalExpression •\l"] - 76 -> "76R110" [style=solid] - "76R110" [label="R110", fillcolor=3, shape=diamond, style=filled] - 77 [label="State 77\n\l111 Term: ChooseExpression •\l"] - 77 -> "77R111" [style=solid] - "77R111" [label="R111", fillcolor=3, shape=diamond, style=filled] - 78 [label="State 78\n\l112 Term: UniversalQuantifierExpression •\l"] - 78 -> "78R112" [style=solid] - "78R112" [label="R112", fillcolor=3, shape=diamond, style=filled] - 79 [label="State 79\n\l113 Term: ExistentialQuantifierExpression •\l"] - 79 -> "79R113" [style=solid] - "79R113" [label="R113", fillcolor=3, shape=diamond, style=filled] - 80 [label="State 80\n\l114 Term: CardinalityExpression •\l"] - 80 -> "80R114" [style=solid] - "80R114" [label="R114", fillcolor=3, shape=diamond, style=filled] - 81 [label="State 81\n\l119 SimpleOrClaspedTerm: Literal •\l"] - 81 -> "81R119" [style=solid] - "81R119" [label="R119", fillcolor=3, shape=diamond, style=filled] - 82 [label="State 82\n\l162 Literal: UndefinedLiteral •\l"] - 82 -> "82R162" [style=solid] - "82R162" [label="R162", fillcolor=3, shape=diamond, style=filled] - 83 [label="State 83\n\l163 Literal: BooleanLiteral •\l"] - 83 -> "83R163" [style=solid] - "83R163" [label="R163", fillcolor=3, shape=diamond, style=filled] - 84 [label="State 84\n\l164 Literal: IntegerLiteral •\l"] - 84 -> "84R164" [style=solid] - "84R164" [label="R164", fillcolor=3, shape=diamond, style=filled] - 85 [label="State 85\n\l165 Literal: RationalLiteral •\l"] - 85 -> "85R165" [style=solid] - "85R165" [label="R165", fillcolor=3, shape=diamond, style=filled] - 86 [label="State 86\n\l166 Literal: DecimalLiteral •\l"] - 86 -> "86R166" [style=solid] - "86R166" [label="R166", fillcolor=3, shape=diamond, style=filled] - 87 [label="State 87\n\l167 Literal: BinaryLiteral •\l"] - 87 -> "87R167" [style=solid] - "87R167" [label="R167", fillcolor=3, shape=diamond, style=filled] - 88 [label="State 88\n\l168 Literal: StringLiteral •\l"] - 88 -> "88R168" [style=solid] - "88R168" [label="R168", fillcolor=3, shape=diamond, style=filled] - 89 [label="State 89\n\l169 Literal: ReferenceLiteral •\l"] - 89 -> "89R169" [style=solid] - "89R169" [label="R169", fillcolor=3, shape=diamond, style=filled] - 90 [label="State 90\n\l170 Literal: ListLiteral •\l"] - 90 -> "90R170" [style=solid] - "90R170" [label="R170", fillcolor=3, shape=diamond, style=filled] - 91 [label="State 91\n\l171 Literal: RangeLiteral •\l"] - 91 -> "91R171" [style=solid] - "91R171" [label="R171", fillcolor=3, shape=diamond, style=filled] - 92 [label="State 92\n\l172 Literal: TupleLiteral •\l"] - 92 -> "92R172" [style=solid] - "92R172" [label="R172", fillcolor=3, shape=diamond, style=filled] - 93 [label="State 93\n\l173 Literal: RecordLiteral •\l"] - 93 -> "93R173" [style=solid] - "93R173" [label="R173", fillcolor=3, shape=diamond, style=filled] - 94 [label="State 94\n\l225 IdentifierPath: Identifier •\l"] - 94 -> "94R225" [style=solid] - "94R225" [label="R225", fillcolor=3, shape=diamond, style=filled] - 95 [label="State 95\n\l143 DirectCallExpression: IdentifierPath •\l144 | IdentifierPath • \"(\" \")\"\l145 | IdentifierPath • \"(\" Terms \")\"\l146 | IdentifierPath • \"(\" error \")\"\l224 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 69 -> "69R119" [style=solid] + "69R119" [label="R119", fillcolor=3, shape=diamond, style=filled] + 70 [label="State 70\n\l142 CallExpression: DirectCallExpression •\l"] + 70 -> "70R142" [style=solid] + "70R142" [label="R142", fillcolor=3, shape=diamond, style=filled] + 71 [label="State 71\n\l143 CallExpression: MethodCallExpression •\l"] + 71 -> "71R143" [style=solid] + "71R143" [label="R143", fillcolor=3, shape=diamond, style=filled] + 72 [label="State 72\n\l120 SimpleOrClaspedTerm: LiteralCallExpression •\l"] + 72 -> "72R120" [style=solid] + "72R120" [label="R120", fillcolor=3, shape=diamond, style=filled] + 73 [label="State 73\n\l144 CallExpression: IndirectCallExpression •\l"] + 73 -> "73R144" [style=solid] + "73R144" [label="R144", fillcolor=3, shape=diamond, style=filled] + 74 [label="State 74\n\l109 Term: TypeCastingExpression •\l"] + 74 -> "74R109" [style=solid] + "74R109" [label="R109", fillcolor=3, shape=diamond, style=filled] + 75 [label="State 75\n\l111 Term: LetExpression •\l"] + 75 -> "75R111" [style=solid] + "75R111" [label="R111", fillcolor=3, shape=diamond, style=filled] + 76 [label="State 76\n\l112 Term: ConditionalExpression •\l"] + 76 -> "76R112" [style=solid] + "76R112" [label="R112", fillcolor=3, shape=diamond, style=filled] + 77 [label="State 77\n\l113 Term: ChooseExpression •\l"] + 77 -> "77R113" [style=solid] + "77R113" [label="R113", fillcolor=3, shape=diamond, style=filled] + 78 [label="State 78\n\l114 Term: UniversalQuantifierExpression •\l"] + 78 -> "78R114" [style=solid] + "78R114" [label="R114", fillcolor=3, shape=diamond, style=filled] + 79 [label="State 79\n\l115 Term: ExistentialQuantifierExpression •\l"] + 79 -> "79R115" [style=solid] + "79R115" [label="R115", fillcolor=3, shape=diamond, style=filled] + 80 [label="State 80\n\l116 Term: CardinalityExpression •\l"] + 80 -> "80R116" [style=solid] + "80R116" [label="R116", fillcolor=3, shape=diamond, style=filled] + 81 [label="State 81\n\l121 SimpleOrClaspedTerm: Literal •\l"] + 81 -> "81R121" [style=solid] + "81R121" [label="R121", fillcolor=3, shape=diamond, style=filled] + 82 [label="State 82\n\l164 Literal: UndefinedLiteral •\l"] + 82 -> "82R164" [style=solid] + "82R164" [label="R164", fillcolor=3, shape=diamond, style=filled] + 83 [label="State 83\n\l165 Literal: BooleanLiteral •\l"] + 83 -> "83R165" [style=solid] + "83R165" [label="R165", fillcolor=3, shape=diamond, style=filled] + 84 [label="State 84\n\l166 Literal: IntegerLiteral •\l"] + 84 -> "84R166" [style=solid] + "84R166" [label="R166", fillcolor=3, shape=diamond, style=filled] + 85 [label="State 85\n\l167 Literal: RationalLiteral •\l"] + 85 -> "85R167" [style=solid] + "85R167" [label="R167", fillcolor=3, shape=diamond, style=filled] + 86 [label="State 86\n\l168 Literal: DecimalLiteral •\l"] + 86 -> "86R168" [style=solid] + "86R168" [label="R168", fillcolor=3, shape=diamond, style=filled] + 87 [label="State 87\n\l169 Literal: BinaryLiteral •\l"] + 87 -> "87R169" [style=solid] + "87R169" [label="R169", fillcolor=3, shape=diamond, style=filled] + 88 [label="State 88\n\l170 Literal: StringLiteral •\l"] + 88 -> "88R170" [style=solid] + "88R170" [label="R170", fillcolor=3, shape=diamond, style=filled] + 89 [label="State 89\n\l171 Literal: ReferenceLiteral •\l"] + 89 -> "89R171" [style=solid] + "89R171" [label="R171", fillcolor=3, shape=diamond, style=filled] + 90 [label="State 90\n\l172 Literal: ListLiteral •\l"] + 90 -> "90R172" [style=solid] + "90R172" [label="R172", fillcolor=3, shape=diamond, style=filled] + 91 [label="State 91\n\l173 Literal: RangeLiteral •\l"] + 91 -> "91R173" [style=solid] + "91R173" [label="R173", fillcolor=3, shape=diamond, style=filled] + 92 [label="State 92\n\l174 Literal: TupleLiteral •\l"] + 92 -> "92R174" [style=solid] + "92R174" [label="R174", fillcolor=3, shape=diamond, style=filled] + 93 [label="State 93\n\l175 Literal: RecordLiteral •\l"] + 93 -> "93R175" [style=solid] + "93R175" [label="R175", fillcolor=3, shape=diamond, style=filled] + 94 [label="State 94\n\l227 IdentifierPath: Identifier •\l"] + 94 -> "94R227" [style=solid] + "94R227" [label="R227", fillcolor=3, shape=diamond, style=filled] + 95 [label="State 95\n\l145 DirectCallExpression: IdentifierPath •\l146 | IdentifierPath • \"(\" \")\"\l147 | IdentifierPath • \"(\" Terms \")\"\l148 | IdentifierPath • \"(\" error \")\"\l226 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] 95 -> 168 [style=solid label="\"(\""] 95 -> 169 [style=solid label="\"::\""] - 95 -> "95R143" [style=solid] - "95R143" [label="R143", fillcolor=3, shape=diamond, style=filled] - 96 [label="State 96\n\l248 Attribute: \"[\" BasicAttribute \"]\" •\l"] - 96 -> "96R248" [style=solid] - "96R248" [label="R248", fillcolor=3, shape=diamond, style=filled] - 97 [label="State 97\n\l249 Attribute: \"[\" ExpressionAttribute \"]\" •\l"] - 97 -> "97R249" [style=solid] - "97R249" [label="R249", fillcolor=3, shape=diamond, style=filled] + 95 -> "95R145" [style=solid] + "95R145" [label="R145", fillcolor=3, shape=diamond, style=filled] + 96 [label="State 96\n\l250 Attribute: \"[\" BasicAttribute \"]\" •\l"] + 96 -> "96R250" [style=solid] + "96R250" [label="R250", fillcolor=3, shape=diamond, style=filled] + 97 [label="State 97\n\l251 Attribute: \"[\" ExpressionAttribute \"]\" •\l"] + 97 -> "97R251" [style=solid] + "97R251" [label="R251", fillcolor=3, shape=diamond, style=filled] 98 [label="State 98\n\l 22 InitDefinition: \"init\" \"{\" • Initializers \"}\"\l"] 98 -> 45 [style=solid label="\"let\""] 98 -> 8 [style=solid label="\"in\""] @@ -893,7 +893,7 @@ digraph "../../obj/src/GrammarParser.y" 98 -> 174 [style=dashed label="Initializer"] 98 -> 94 [style=dashed label="Identifier"] 98 -> 95 [style=dashed label="IdentifierPath"] - 99 [label="State 99\n\l 21 InitDefinition: \"init\" IdentifierPath •\l224 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 99 [label="State 99\n\l 21 InitDefinition: \"init\" IdentifierPath •\l226 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] 99 -> 169 [style=solid label="\"::\""] 99 -> "99R21" [style=solid] "99R21" [label="R21", fillcolor=3, shape=diamond, style=filled] @@ -906,26 +906,26 @@ digraph "../../obj/src/GrammarParser.y" 102 -> 178 [style=solid label="\"=\""] 102 -> 179 [style=solid label="\"(\""] 102 -> 180 [style=solid label="\"->\""] - 103 [label="State 103\n\l 41 UsingDefinition: \"using\" Identifier • \"=\" Type\l225 IdentifierPath: Identifier •\l"] + 103 [label="State 103\n\l 39 UsingDefinition: \"using\" Identifier • \"=\" Type\l227 IdentifierPath: Identifier •\l"] 103 -> 181 [style=solid label="\"=\""] - 103 -> "103R225" [style=solid] - "103R225" [label="R225", fillcolor=3, shape=diamond, style=filled] - 104 [label="State 104\n\l 42 UsingPathDefinition: \"using\" IdentifierPath •\l 43 | \"using\" IdentifierPath • \"::\" \"*\"\l224 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 103 -> "103R227" [style=solid] + "103R227" [label="R227", fillcolor=3, shape=diamond, style=filled] + 104 [label="State 104\n\l 40 UsingPathDefinition: \"using\" IdentifierPath •\l 41 | \"using\" IdentifierPath • \"::\" \"*\"\l226 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] 104 -> 182 [style=solid label="\"::\""] - 104 -> "104R42" [style=solid] - "104R42" [label="R42", fillcolor=3, shape=diamond, style=filled] - 105 [label="State 105\n\l 44 InvariantDefinition: \"invariant\" Identifier • \"=\" Term\l"] + 104 -> "104R40" [style=solid] + "104R40" [label="R40", fillcolor=3, shape=diamond, style=filled] + 105 [label="State 105\n\l 42 InvariantDefinition: \"invariant\" Identifier • \"=\" Term\l"] 105 -> 183 [style=solid label="\"=\""] - 106 [label="State 106\n\l 45 ImportDefinition: \"import\" IdentifierPath •\l 46 | \"import\" IdentifierPath • \"as\" Identifier\l224 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 106 [label="State 106\n\l 43 ImportDefinition: \"import\" IdentifierPath •\l 44 | \"import\" IdentifierPath • \"as\" Identifier\l226 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] 106 -> 184 [style=solid label="\"as\""] 106 -> 169 [style=solid label="\"::\""] - 106 -> "106R45" [style=solid] - "106R45" [label="R45", fillcolor=3, shape=diamond, style=filled] - 107 [label="State 107\n\l 47 StructureDefinition: \"structure\" Identifier • \"=\" \"{\" FunctionDefinitions \"}\"\l"] + 106 -> "106R43" [style=solid] + "106R43" [label="R43", fillcolor=3, shape=diamond, style=filled] + 107 [label="State 107\n\l 45 StructureDefinition: \"structure\" Identifier • \"=\" \"{\" StructureDefinitionList \"}\"\l"] 107 -> 185 [style=solid label="\"=\""] - 108 [label="State 108\n\l 48 FeatureDefinition: \"feature\" Identifier • \"=\" \"{\" FeatureDeclarationsAndDefinitions \"}\"\l"] + 108 [label="State 108\n\l 50 FeatureDefinition: \"feature\" Identifier • \"=\" \"{\" FeatureDeclarationsAndDefinitions \"}\"\l"] 108 -> 186 [style=solid label="\"=\""] - 109 [label="State 109\n\l202 TupleType: \"(\" • Types \",\" Type \")\"\l203 RecordType: \"(\" • TypedVariables \",\" TypedVariable \")\"\l"] + 109 [label="State 109\n\l204 TupleType: \"(\" • Types \",\" Type \")\"\l205 RecordType: \"(\" • TypedVariables \",\" TypedVariable \")\"\l"] 109 -> 8 [style=solid label="\"in\""] 109 -> 109 [style=solid label="\"(\""] 109 -> 9 [style=solid label="\"identifier\""] @@ -941,34 +941,34 @@ digraph "../../obj/src/GrammarParser.y" 109 -> 190 [style=dashed label="IdentifierPath"] 109 -> 191 [style=dashed label="TypedVariables"] 109 -> 192 [style=dashed label="TypedVariable"] - 110 [label="State 110\n\l 55 ImplementationDefinition: \"implements\" Type • \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 110 [label="State 110\n\l 57 ImplementationDefinition: \"implements\" Type • \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] 110 -> 193 [style=solid label="\"=\""] - 111 [label="State 111\n\l195 Type: BasicType •\l"] - 111 -> "111R195" [style=solid] - "111R195" [label="R195", fillcolor=3, shape=diamond, style=filled] - 112 [label="State 112\n\l196 Type: TupleType •\l"] - 112 -> "112R196" [style=solid] - "112R196" [label="R196", fillcolor=3, shape=diamond, style=filled] - 113 [label="State 113\n\l197 Type: RecordType •\l"] - 113 -> "113R197" [style=solid] - "113R197" [label="R197", fillcolor=3, shape=diamond, style=filled] - 114 [label="State 114\n\l198 Type: TemplateType •\l"] - 114 -> "114R198" [style=solid] - "114R198" [label="R198", fillcolor=3, shape=diamond, style=filled] - 115 [label="State 115\n\l199 Type: RelationType •\l"] - 115 -> "115R199" [style=solid] - "115R199" [label="R199", fillcolor=3, shape=diamond, style=filled] - 116 [label="State 116\n\l200 Type: FixedSizedType •\l"] - 116 -> "116R200" [style=solid] - "116R200" [label="R200", fillcolor=3, shape=diamond, style=filled] - 117 [label="State 117\n\l 54 ImplementationDefinition: \"implements\" IdentifierPath • \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l201 BasicType: IdentifierPath •\l204 TemplateType: IdentifierPath • \"<\" Types \">\"\l205 RelationType: IdentifierPath • \"<\" MaybeFunctionParameters \"->\" Type \">\"\l206 FixedSizedType: IdentifierPath • \"'\" Term\l224 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 111 [label="State 111\n\l197 Type: BasicType •\l"] + 111 -> "111R197" [style=solid] + "111R197" [label="R197", fillcolor=3, shape=diamond, style=filled] + 112 [label="State 112\n\l198 Type: TupleType •\l"] + 112 -> "112R198" [style=solid] + "112R198" [label="R198", fillcolor=3, shape=diamond, style=filled] + 113 [label="State 113\n\l199 Type: RecordType •\l"] + 113 -> "113R199" [style=solid] + "113R199" [label="R199", fillcolor=3, shape=diamond, style=filled] + 114 [label="State 114\n\l200 Type: TemplateType •\l"] + 114 -> "114R200" [style=solid] + "114R200" [label="R200", fillcolor=3, shape=diamond, style=filled] + 115 [label="State 115\n\l201 Type: RelationType •\l"] + 115 -> "115R201" [style=solid] + "115R201" [label="R201", fillcolor=3, shape=diamond, style=filled] + 116 [label="State 116\n\l202 Type: FixedSizedType •\l"] + 116 -> "116R202" [style=solid] + "116R202" [label="R202", fillcolor=3, shape=diamond, style=filled] + 117 [label="State 117\n\l 56 ImplementationDefinition: \"implements\" IdentifierPath • \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l203 BasicType: IdentifierPath •\l206 TemplateType: IdentifierPath • \"<\" Types \">\"\l207 RelationType: IdentifierPath • \"<\" MaybeFunctionParameters \"->\" Type \">\"\l208 FixedSizedType: IdentifierPath • \"'\" Term\l226 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] 117 -> 194 [style=solid label="\"for\""] 117 -> 169 [style=solid label="\"::\""] 117 -> 195 [style=solid label="\"<\""] 117 -> 196 [style=solid label="\"'\""] - 117 -> "117R201" [style=solid] - "117R201" [label="R201", fillcolor=3, shape=diamond, style=filled] - 118 [label="State 118\n\l 35 FunctionDefinition: \"function\" Identifier • \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] + 117 -> "117R203" [style=solid] + "117R203" [label="R203", fillcolor=3, shape=diamond, style=filled] + 118 [label="State 118\n\l 33 FunctionDefinition: \"function\" Identifier • \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] 118 -> 197 [style=solid label="\":\""] 119 [label="State 119\n\l 4 Definitions: Definitions AttributedDefinition •\l"] 119 -> "119R4" [style=solid] @@ -976,25 +976,25 @@ digraph "../../obj/src/GrammarParser.y" 120 [label="State 120\n\l 6 AttributedDefinition: Attributes Definition •\l"] 120 -> "120R6" [style=solid] "120R6" [label="R6", fillcolor=3, shape=diamond, style=filled] - 121 [label="State 121\n\l227 Variable: Identifier •\l232 TypedVariable: Identifier • \":\" Type\l"] + 121 [label="State 121\n\l229 Variable: Identifier •\l234 TypedVariable: Identifier • \":\" Type\l"] 121 -> 198 [style=solid label="\":\""] - 121 -> "121R227" [style=solid] - "121R227" [label="R227", fillcolor=3, shape=diamond, style=filled] - 122 [label="State 122\n\l234 AttributedVariable: Variable •\l"] - 122 -> "122R234" [style=solid] - "122R234" [label="R234", fillcolor=3, shape=diamond, style=filled] - 123 [label="State 123\n\l226 Variable: TypedVariable •\l"] - 123 -> "123R226" [style=solid] - "123R226" [label="R226", fillcolor=3, shape=diamond, style=filled] - 124 [label="State 124\n\l239 VariableBinding: AttributedVariable • \"=\" Term\l"] + 121 -> "121R229" [style=solid] + "121R229" [label="R229", fillcolor=3, shape=diamond, style=filled] + 122 [label="State 122\n\l236 AttributedVariable: Variable •\l"] + 122 -> "122R236" [style=solid] + "122R236" [label="R236", fillcolor=3, shape=diamond, style=filled] + 123 [label="State 123\n\l228 Variable: TypedVariable •\l"] + 123 -> "123R228" [style=solid] + "123R228" [label="R228", fillcolor=3, shape=diamond, style=filled] + 124 [label="State 124\n\l241 VariableBinding: AttributedVariable • \"=\" Term\l"] 124 -> 199 [style=solid label="\"=\""] - 125 [label="State 125\n\l156 LetExpression: \"let\" VariableBindings • \"in\" Term\l237 VariableBindings: VariableBindings • \",\" VariableBinding\l"] + 125 [label="State 125\n\l158 LetExpression: \"let\" VariableBindings • \"in\" Term\l239 VariableBindings: VariableBindings • \",\" VariableBinding\l"] 125 -> 200 [style=solid label="\"in\""] 125 -> 201 [style=solid label="\",\""] - 126 [label="State 126\n\l238 VariableBindings: VariableBinding •\l"] - 126 -> "126R238" [style=solid] - "126R238" [label="R238", fillcolor=3, shape=diamond, style=filled] - 127 [label="State 127\n\l233 AttributedVariable: Attributes • Variable\l246 Attributes: Attributes • Attribute\l"] + 126 [label="State 126\n\l240 VariableBindings: VariableBinding •\l"] + 126 -> "126R240" [style=solid] + "126R240" [label="R240", fillcolor=3, shape=diamond, style=filled] + 127 [label="State 127\n\l235 AttributedVariable: Attributes • Variable\l248 Attributes: Attributes • Attribute\l"] 127 -> 8 [style=solid label="\"in\""] 127 -> 2 [style=solid label="\"[\""] 127 -> 9 [style=solid label="\"identifier\""] @@ -1002,16 +1002,16 @@ digraph "../../obj/src/GrammarParser.y" 127 -> 202 [style=dashed label="Variable"] 127 -> 123 [style=dashed label="TypedVariable"] 127 -> 43 [style=dashed label="Attribute"] - 128 [label="State 128\n\l159 UniversalQuantifierExpression: \"forall\" AttributedVariables • \"in\" Term \"holds\" Term\l228 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] + 128 [label="State 128\n\l161 UniversalQuantifierExpression: \"forall\" AttributedVariables • \"in\" Term \"holds\" Term\l230 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] 128 -> 203 [style=solid label="\"in\""] 128 -> 204 [style=solid label="\",\""] - 129 [label="State 129\n\l229 AttributedVariables: AttributedVariable •\l"] - 129 -> "129R229" [style=solid] - "129R229" [label="R229", fillcolor=3, shape=diamond, style=filled] - 130 [label="State 130\n\l158 ChooseExpression: \"choose\" AttributedVariables • \"in\" Term \"do\" Term\l228 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] + 129 [label="State 129\n\l231 AttributedVariables: AttributedVariable •\l"] + 129 -> "129R231" [style=solid] + "129R231" [label="R231", fillcolor=3, shape=diamond, style=filled] + 130 [label="State 130\n\l160 ChooseExpression: \"choose\" AttributedVariables • \"in\" Term \"do\" Term\l230 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] 130 -> 205 [style=solid label="\"in\""] 130 -> 204 [style=solid label="\",\""] - 131 [label="State 131\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l157 ConditionalExpression: \"if\" Term • \"then\" Term \"else\" Term\l"] + 131 [label="State 131\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l159 ConditionalExpression: \"if\" Term • \"then\" Term \"else\" Term\l"] 131 -> 206 [style=solid label="\"then\""] 131 -> 148 [style=solid label="\"and\""] 131 -> 149 [style=solid label="\"or\""] @@ -1030,23 +1030,23 @@ digraph "../../obj/src/GrammarParser.y" 131 -> 162 [style=solid label="\"!=\""] 131 -> 163 [style=solid label="\"<=\""] 131 -> 164 [style=solid label="\">=\""] - 132 [label="State 132\n\l160 ExistentialQuantifierExpression: \"exists\" AttributedVariables • \"in\" Term \"with\" Term\l228 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] + 132 [label="State 132\n\l162 ExistentialQuantifierExpression: \"exists\" AttributedVariables • \"in\" Term \"with\" Term\l230 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] 132 -> 207 [style=solid label="\"in\""] 132 -> 204 [style=solid label="\",\""] - 133 [label="State 133\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l139 | \"not\" Term •\l"] - 133 -> "133R139" [style=solid] - "133R139" [label="R139", fillcolor=3, shape=diamond, style=filled] - 134 [label="State 134\n\l120 SimpleOrClaspedTerm: \"+\" SimpleOrClaspedTerm •\l147 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l149 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l150 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l151 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] - 134 -> "134R120" [style=solid] - "134R120" [label="R120", fillcolor=3, shape=diamond, style=filled] - 135 [label="State 135\n\l121 SimpleOrClaspedTerm: \"-\" SimpleOrClaspedTerm •\l147 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l149 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l150 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l151 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] - 135 -> "135R121" [style=solid] - "135R121" [label="R121", fillcolor=3, shape=diamond, style=filled] - 136 [label="State 136\n\l116 SimpleOrClaspedTerm: \"(\" error • \")\"\l"] + 133 [label="State 133\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l141 | \"not\" Term •\l"] + 133 -> "133R141" [style=solid] + "133R141" [label="R141", fillcolor=3, shape=diamond, style=filled] + 134 [label="State 134\n\l122 SimpleOrClaspedTerm: \"+\" SimpleOrClaspedTerm •\l149 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l150 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l151 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l152 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l153 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] + 134 -> "134R122" [style=solid] + "134R122" [label="R122", fillcolor=3, shape=diamond, style=filled] + 135 [label="State 135\n\l123 SimpleOrClaspedTerm: \"-\" SimpleOrClaspedTerm •\l149 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l150 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l151 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l152 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l153 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] + 135 -> "135R123" [style=solid] + "135R123" [label="R123", fillcolor=3, shape=diamond, style=filled] + 136 [label="State 136\n\l118 SimpleOrClaspedTerm: \"(\" error • \")\"\l"] 136 -> 208 [style=solid label="\")\""] - 137 [label="State 137\n\l104 Terms: Terms • \",\" Term\l188 TupleLiteral: \"(\" Terms • \",\" Term \")\"\l"] + 137 [label="State 137\n\l106 Terms: Terms • \",\" Term\l190 TupleLiteral: \"(\" Terms • \",\" Term \")\"\l"] 137 -> 209 [style=solid label="\",\""] - 138 [label="State 138\n\l105 Terms: Term •\l115 SimpleOrClaspedTerm: \"(\" Term • \")\"\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 138 [label="State 138\n\l107 Terms: Term •\l117 SimpleOrClaspedTerm: \"(\" Term • \")\"\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 138 -> 148 [style=solid label="\"and\""] 138 -> 149 [style=solid label="\"or\""] 138 -> 150 [style=solid label="\"xor\""] @@ -1065,27 +1065,27 @@ digraph "../../obj/src/GrammarParser.y" 138 -> 162 [style=solid label="\"!=\""] 138 -> 163 [style=solid label="\"<=\""] 138 -> 164 [style=solid label="\">=\""] - 138 -> "138R105" [style=solid] - "138R105" [label="R105", fillcolor=3, shape=diamond, style=filled] - 139 [label="State 139\n\l189 RecordLiteral: \"(\" Assignments • \")\"\l190 Assignments: Assignments • \",\" Assignment\l"] + 138 -> "138R107" [style=solid] + "138R107" [label="R107", fillcolor=3, shape=diamond, style=filled] + 139 [label="State 139\n\l191 RecordLiteral: \"(\" Assignments • \")\"\l192 Assignments: Assignments • \",\" Assignment\l"] 139 -> 211 [style=solid label="\")\""] 139 -> 212 [style=solid label="\",\""] - 140 [label="State 140\n\l191 Assignments: Assignment •\l"] - 140 -> "140R191" [style=solid] - "140R191" [label="R191", fillcolor=3, shape=diamond, style=filled] - 141 [label="State 141\n\l192 Assignment: Identifier • \":\" Term\l225 IdentifierPath: Identifier •\l"] + 140 [label="State 140\n\l193 Assignments: Assignment •\l"] + 140 -> "140R193" [style=solid] + "140R193" [label="R193", fillcolor=3, shape=diamond, style=filled] + 141 [label="State 141\n\l194 Assignment: Identifier • \":\" Term\l227 IdentifierPath: Identifier •\l"] 141 -> 213 [style=solid label="\":\""] - 141 -> "141R225" [style=solid] - "141R225" [label="R225", fillcolor=3, shape=diamond, style=filled] - 142 [label="State 142\n\l186 ListLiteral: \"[\" error • \"]\"\l"] + 141 -> "141R227" [style=solid] + "141R227" [label="R227", fillcolor=3, shape=diamond, style=filled] + 142 [label="State 142\n\l188 ListLiteral: \"[\" error • \"]\"\l"] 142 -> 214 [style=solid label="\"]\""] - 143 [label="State 143\n\l184 ListLiteral: \"[\" \"]\" •\l"] - 143 -> "143R184" [style=solid] - "143R184" [label="R184", fillcolor=3, shape=diamond, style=filled] - 144 [label="State 144\n\l104 Terms: Terms • \",\" Term\l185 ListLiteral: \"[\" Terms • \"]\"\l"] + 143 [label="State 143\n\l186 ListLiteral: \"[\" \"]\" •\l"] + 143 -> "143R186" [style=solid] + "143R186" [label="R186", fillcolor=3, shape=diamond, style=filled] + 144 [label="State 144\n\l106 Terms: Terms • \",\" Term\l187 ListLiteral: \"[\" Terms • \"]\"\l"] 144 -> 215 [style=solid label="\"]\""] 144 -> 216 [style=solid label="\",\""] - 145 [label="State 145\n\l105 Terms: Term •\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l187 RangeLiteral: \"[\" Term • \"..\" Term \"]\"\l"] + 145 [label="State 145\n\l107 Terms: Term •\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l189 RangeLiteral: \"[\" Term • \"..\" Term \"]\"\l"] 145 -> 148 [style=solid label="\"and\""] 145 -> 149 [style=solid label="\"or\""] 145 -> 150 [style=solid label="\"xor\""] @@ -1104,16 +1104,16 @@ digraph "../../obj/src/GrammarParser.y" 145 -> 162 [style=solid label="\"!=\""] 145 -> 163 [style=solid label="\"<=\""] 145 -> 164 [style=solid label="\">=\""] - 145 -> "145R105" [style=solid] - "145R105" [label="R105", fillcolor=3, shape=diamond, style=filled] - 146 [label="State 146\n\l147 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l149 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l150 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l151 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l161 CardinalityExpression: \"|\" SimpleOrClaspedTerm • \"|\"\l"] + 145 -> "145R107" [style=solid] + "145R107" [label="R107", fillcolor=3, shape=diamond, style=filled] + 146 [label="State 146\n\l149 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l150 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l151 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l152 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l153 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l163 CardinalityExpression: \"|\" SimpleOrClaspedTerm • \"|\"\l"] 146 -> 218 [style=solid label="\"|\""] 146 -> 166 [style=solid label="\".\""] - 147 [label="State 147\n\l183 ReferenceLiteral: \"@\" IdentifierPath •\l224 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 147 [label="State 147\n\l185 ReferenceLiteral: \"@\" IdentifierPath •\l226 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] 147 -> 169 [style=solid label="\"::\""] - 147 -> "147R183" [style=solid] - "147R183" [label="R183", fillcolor=3, shape=diamond, style=filled] - 148 [label="State 148\n\l136 OperatorExpression: Term \"and\" • Term\l"] + 147 -> "147R185" [style=solid] + "147R185" [label="R185", fillcolor=3, shape=diamond, style=filled] + 148 [label="State 148\n\l138 OperatorExpression: Term \"and\" • Term\l"] 148 -> 45 [style=solid label="\"let\""] 148 -> 8 [style=solid label="\"in\""] 148 -> 46 [style=solid label="\"forall\""] @@ -1167,7 +1167,7 @@ digraph "../../obj/src/GrammarParser.y" 148 -> 93 [style=dashed label="RecordLiteral"] 148 -> 94 [style=dashed label="Identifier"] 148 -> 95 [style=dashed label="IdentifierPath"] - 149 [label="State 149\n\l134 OperatorExpression: Term \"or\" • Term\l"] + 149 [label="State 149\n\l136 OperatorExpression: Term \"or\" • Term\l"] 149 -> 45 [style=solid label="\"let\""] 149 -> 8 [style=solid label="\"in\""] 149 -> 46 [style=solid label="\"forall\""] @@ -1221,7 +1221,7 @@ digraph "../../obj/src/GrammarParser.y" 149 -> 93 [style=dashed label="RecordLiteral"] 149 -> 94 [style=dashed label="Identifier"] 149 -> 95 [style=dashed label="IdentifierPath"] - 150 [label="State 150\n\l135 OperatorExpression: Term \"xor\" • Term\l"] + 150 [label="State 150\n\l137 OperatorExpression: Term \"xor\" • Term\l"] 150 -> 45 [style=solid label="\"let\""] 150 -> 8 [style=solid label="\"in\""] 150 -> 46 [style=solid label="\"forall\""] @@ -1275,7 +1275,7 @@ digraph "../../obj/src/GrammarParser.y" 150 -> 93 [style=dashed label="RecordLiteral"] 150 -> 94 [style=dashed label="Identifier"] 150 -> 95 [style=dashed label="IdentifierPath"] - 151 [label="State 151\n\l138 OperatorExpression: Term \"implies\" • Term\l"] + 151 [label="State 151\n\l140 OperatorExpression: Term \"implies\" • Term\l"] 151 -> 45 [style=solid label="\"let\""] 151 -> 8 [style=solid label="\"in\""] 151 -> 46 [style=solid label="\"forall\""] @@ -1329,7 +1329,7 @@ digraph "../../obj/src/GrammarParser.y" 151 -> 93 [style=dashed label="RecordLiteral"] 151 -> 94 [style=dashed label="Identifier"] 151 -> 95 [style=dashed label="IdentifierPath"] - 152 [label="State 152\n\l122 OperatorExpression: Term \"+\" • Term\l"] + 152 [label="State 152\n\l124 OperatorExpression: Term \"+\" • Term\l"] 152 -> 45 [style=solid label="\"let\""] 152 -> 8 [style=solid label="\"in\""] 152 -> 46 [style=solid label="\"forall\""] @@ -1383,7 +1383,7 @@ digraph "../../obj/src/GrammarParser.y" 152 -> 93 [style=dashed label="RecordLiteral"] 152 -> 94 [style=dashed label="Identifier"] 152 -> 95 [style=dashed label="IdentifierPath"] - 153 [label="State 153\n\l123 OperatorExpression: Term \"-\" • Term\l"] + 153 [label="State 153\n\l125 OperatorExpression: Term \"-\" • Term\l"] 153 -> 45 [style=solid label="\"let\""] 153 -> 8 [style=solid label="\"in\""] 153 -> 46 [style=solid label="\"forall\""] @@ -1437,7 +1437,7 @@ digraph "../../obj/src/GrammarParser.y" 153 -> 93 [style=dashed label="RecordLiteral"] 153 -> 94 [style=dashed label="Identifier"] 153 -> 95 [style=dashed label="IdentifierPath"] - 154 [label="State 154\n\l129 OperatorExpression: Term \"=\" • Term\l"] + 154 [label="State 154\n\l131 OperatorExpression: Term \"=\" • Term\l"] 154 -> 45 [style=solid label="\"let\""] 154 -> 8 [style=solid label="\"in\""] 154 -> 46 [style=solid label="\"forall\""] @@ -1491,7 +1491,7 @@ digraph "../../obj/src/GrammarParser.y" 154 -> 93 [style=dashed label="RecordLiteral"] 154 -> 94 [style=dashed label="Identifier"] 154 -> 95 [style=dashed label="IdentifierPath"] - 155 [label="State 155\n\l130 OperatorExpression: Term \"<\" • Term\l"] + 155 [label="State 155\n\l132 OperatorExpression: Term \"<\" • Term\l"] 155 -> 45 [style=solid label="\"let\""] 155 -> 8 [style=solid label="\"in\""] 155 -> 46 [style=solid label="\"forall\""] @@ -1545,7 +1545,7 @@ digraph "../../obj/src/GrammarParser.y" 155 -> 93 [style=dashed label="RecordLiteral"] 155 -> 94 [style=dashed label="Identifier"] 155 -> 95 [style=dashed label="IdentifierPath"] - 156 [label="State 156\n\l131 OperatorExpression: Term \">\" • Term\l"] + 156 [label="State 156\n\l133 OperatorExpression: Term \">\" • Term\l"] 156 -> 45 [style=solid label="\"let\""] 156 -> 8 [style=solid label="\"in\""] 156 -> 46 [style=solid label="\"forall\""] @@ -1599,7 +1599,7 @@ digraph "../../obj/src/GrammarParser.y" 156 -> 93 [style=dashed label="RecordLiteral"] 156 -> 94 [style=dashed label="Identifier"] 156 -> 95 [style=dashed label="IdentifierPath"] - 157 [label="State 157\n\l124 OperatorExpression: Term \"*\" • Term\l"] + 157 [label="State 157\n\l126 OperatorExpression: Term \"*\" • Term\l"] 157 -> 45 [style=solid label="\"let\""] 157 -> 8 [style=solid label="\"in\""] 157 -> 46 [style=solid label="\"forall\""] @@ -1653,7 +1653,7 @@ digraph "../../obj/src/GrammarParser.y" 157 -> 93 [style=dashed label="RecordLiteral"] 157 -> 94 [style=dashed label="Identifier"] 157 -> 95 [style=dashed label="IdentifierPath"] - 158 [label="State 158\n\l125 OperatorExpression: Term \"/\" • Term\l"] + 158 [label="State 158\n\l127 OperatorExpression: Term \"/\" • Term\l"] 158 -> 45 [style=solid label="\"let\""] 158 -> 8 [style=solid label="\"in\""] 158 -> 46 [style=solid label="\"forall\""] @@ -1707,7 +1707,7 @@ digraph "../../obj/src/GrammarParser.y" 158 -> 93 [style=dashed label="RecordLiteral"] 158 -> 94 [style=dashed label="Identifier"] 158 -> 95 [style=dashed label="IdentifierPath"] - 159 [label="State 159\n\l126 OperatorExpression: Term \"%\" • Term\l"] + 159 [label="State 159\n\l128 OperatorExpression: Term \"%\" • Term\l"] 159 -> 45 [style=solid label="\"let\""] 159 -> 8 [style=solid label="\"in\""] 159 -> 46 [style=solid label="\"forall\""] @@ -1761,7 +1761,7 @@ digraph "../../obj/src/GrammarParser.y" 159 -> 93 [style=dashed label="RecordLiteral"] 159 -> 94 [style=dashed label="Identifier"] 159 -> 95 [style=dashed label="IdentifierPath"] - 160 [label="State 160\n\l127 OperatorExpression: Term \"^\" • Term\l"] + 160 [label="State 160\n\l129 OperatorExpression: Term \"^\" • Term\l"] 160 -> 45 [style=solid label="\"let\""] 160 -> 8 [style=solid label="\"in\""] 160 -> 46 [style=solid label="\"forall\""] @@ -1815,7 +1815,7 @@ digraph "../../obj/src/GrammarParser.y" 160 -> 93 [style=dashed label="RecordLiteral"] 160 -> 94 [style=dashed label="Identifier"] 160 -> 95 [style=dashed label="IdentifierPath"] - 161 [label="State 161\n\l137 OperatorExpression: Term \"=>\" • Term\l"] + 161 [label="State 161\n\l139 OperatorExpression: Term \"=>\" • Term\l"] 161 -> 45 [style=solid label="\"let\""] 161 -> 8 [style=solid label="\"in\""] 161 -> 46 [style=solid label="\"forall\""] @@ -1869,7 +1869,7 @@ digraph "../../obj/src/GrammarParser.y" 161 -> 93 [style=dashed label="RecordLiteral"] 161 -> 94 [style=dashed label="Identifier"] 161 -> 95 [style=dashed label="IdentifierPath"] - 162 [label="State 162\n\l128 OperatorExpression: Term \"!=\" • Term\l"] + 162 [label="State 162\n\l130 OperatorExpression: Term \"!=\" • Term\l"] 162 -> 45 [style=solid label="\"let\""] 162 -> 8 [style=solid label="\"in\""] 162 -> 46 [style=solid label="\"forall\""] @@ -1923,7 +1923,7 @@ digraph "../../obj/src/GrammarParser.y" 162 -> 93 [style=dashed label="RecordLiteral"] 162 -> 94 [style=dashed label="Identifier"] 162 -> 95 [style=dashed label="IdentifierPath"] - 163 [label="State 163\n\l132 OperatorExpression: Term \"<=\" • Term\l"] + 163 [label="State 163\n\l134 OperatorExpression: Term \"<=\" • Term\l"] 163 -> 45 [style=solid label="\"let\""] 163 -> 8 [style=solid label="\"in\""] 163 -> 46 [style=solid label="\"forall\""] @@ -1977,7 +1977,7 @@ digraph "../../obj/src/GrammarParser.y" 163 -> 93 [style=dashed label="RecordLiteral"] 163 -> 94 [style=dashed label="Identifier"] 163 -> 95 [style=dashed label="IdentifierPath"] - 164 [label="State 164\n\l133 OperatorExpression: Term \">=\" • Term\l"] + 164 [label="State 164\n\l135 OperatorExpression: Term \">=\" • Term\l"] 164 -> 45 [style=solid label="\"let\""] 164 -> 8 [style=solid label="\"in\""] 164 -> 46 [style=solid label="\"forall\""] @@ -2031,7 +2031,7 @@ digraph "../../obj/src/GrammarParser.y" 164 -> 93 [style=dashed label="RecordLiteral"] 164 -> 94 [style=dashed label="Identifier"] 164 -> 95 [style=dashed label="IdentifierPath"] - 165 [label="State 165\n\l155 TypeCastingExpression: SimpleOrClaspedTerm \"as\" • Type\l"] + 165 [label="State 165\n\l157 TypeCastingExpression: SimpleOrClaspedTerm \"as\" • Type\l"] 165 -> 8 [style=solid label="\"in\""] 165 -> 109 [style=solid label="\"(\""] 165 -> 9 [style=solid label="\"identifier\""] @@ -2044,13 +2044,13 @@ digraph "../../obj/src/GrammarParser.y" 165 -> 116 [style=dashed label="FixedSizedType"] 165 -> 94 [style=dashed label="Identifier"] 165 -> 190 [style=dashed label="IdentifierPath"] - 166 [label="State 166\n\l147 MethodCallExpression: SimpleOrClaspedTerm \".\" • Identifier\l148 | SimpleOrClaspedTerm \".\" • Identifier \"(\" \")\"\l149 | SimpleOrClaspedTerm \".\" • Identifier \"(\" Terms \")\"\l150 | SimpleOrClaspedTerm \".\" • Identifier \"(\" error \")\"\l151 LiteralCallExpression: SimpleOrClaspedTerm \".\" • IntegerLiteral\l"] + 166 [label="State 166\n\l149 MethodCallExpression: SimpleOrClaspedTerm \".\" • Identifier\l150 | SimpleOrClaspedTerm \".\" • Identifier \"(\" \")\"\l151 | SimpleOrClaspedTerm \".\" • Identifier \"(\" Terms \")\"\l152 | SimpleOrClaspedTerm \".\" • Identifier \"(\" error \")\"\l153 LiteralCallExpression: SimpleOrClaspedTerm \".\" • IntegerLiteral\l"] 166 -> 8 [style=solid label="\"in\""] 166 -> 62 [style=solid label="\"integer\""] 166 -> 9 [style=solid label="\"identifier\""] 166 -> 237 [style=dashed label="IntegerLiteral"] 166 -> 238 [style=dashed label="Identifier"] - 167 [label="State 167\n\l152 IndirectCallExpression: CallExpression \"(\" • \")\"\l153 | CallExpression \"(\" • Terms \")\"\l154 | CallExpression \"(\" • error \")\"\l"] + 167 [label="State 167\n\l154 IndirectCallExpression: CallExpression \"(\" • \")\"\l155 | CallExpression \"(\" • Terms \")\"\l156 | CallExpression \"(\" • error \")\"\l"] 167 -> 239 [style=dotted] 167 -> 45 [style=solid label="\"let\""] 167 -> 8 [style=solid label="\"in\""] @@ -2107,7 +2107,7 @@ digraph "../../obj/src/GrammarParser.y" 167 -> 93 [style=dashed label="RecordLiteral"] 167 -> 94 [style=dashed label="Identifier"] 167 -> 95 [style=dashed label="IdentifierPath"] - 168 [label="State 168\n\l144 DirectCallExpression: IdentifierPath \"(\" • \")\"\l145 | IdentifierPath \"(\" • Terms \")\"\l146 | IdentifierPath \"(\" • error \")\"\l"] + 168 [label="State 168\n\l146 DirectCallExpression: IdentifierPath \"(\" • \")\"\l147 | IdentifierPath \"(\" • Terms \")\"\l148 | IdentifierPath \"(\" • error \")\"\l"] 168 -> 243 [style=dotted] 168 -> 45 [style=solid label="\"let\""] 168 -> 8 [style=solid label="\"in\""] @@ -2164,11 +2164,11 @@ digraph "../../obj/src/GrammarParser.y" 168 -> 93 [style=dashed label="RecordLiteral"] 168 -> 94 [style=dashed label="Identifier"] 168 -> 95 [style=dashed label="IdentifierPath"] - 169 [label="State 169\n\l224 IdentifierPath: IdentifierPath \"::\" • Identifier\l"] + 169 [label="State 169\n\l226 IdentifierPath: IdentifierPath \"::\" • Identifier\l"] 169 -> 8 [style=solid label="\"in\""] 169 -> 9 [style=solid label="\"identifier\""] 169 -> 246 [style=dashed label="Identifier"] - 170 [label="State 170\n\l115 SimpleOrClaspedTerm: \"(\" • Term \")\"\l116 | \"(\" • error \")\"\l188 TupleLiteral: \"(\" • Terms \",\" Term \")\"\l189 RecordLiteral: \"(\" • Assignments \")\"\l220 Initializer: \"(\" • Term \")\" \"->\" Term\l"] + 170 [label="State 170\n\l117 SimpleOrClaspedTerm: \"(\" • Term \")\"\l118 | \"(\" • error \")\"\l190 TupleLiteral: \"(\" • Terms \",\" Term \")\"\l191 RecordLiteral: \"(\" • Assignments \")\"\l222 Initializer: \"(\" • Term \")\" \"->\" Term\l"] 170 -> 136 [style=dotted] 170 -> 45 [style=solid label="\"let\""] 170 -> 8 [style=solid label="\"in\""] @@ -2226,7 +2226,7 @@ digraph "../../obj/src/GrammarParser.y" 170 -> 140 [style=dashed label="Assignment"] 170 -> 141 [style=dashed label="Identifier"] 170 -> 95 [style=dashed label="IdentifierPath"] - 171 [label="State 171\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l219 Initializer: Term •\l"] + 171 [label="State 171\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l221 Initializer: Term •\l"] 171 -> 148 [style=solid label="\"and\""] 171 -> 149 [style=solid label="\"or\""] 171 -> 150 [style=solid label="\"xor\""] @@ -2244,18 +2244,18 @@ digraph "../../obj/src/GrammarParser.y" 171 -> 162 [style=solid label="\"!=\""] 171 -> 163 [style=solid label="\"<=\""] 171 -> 164 [style=solid label="\">=\""] - 171 -> "171R219" [style=solid] - "171R219" [label="R219", fillcolor=3, shape=diamond, style=filled] - 172 [label="State 172\n\l172 Literal: TupleLiteral •\l221 Initializer: TupleLiteral • \"->\" Term\l"] + 171 -> "171R221" [style=solid] + "171R221" [label="R221", fillcolor=3, shape=diamond, style=filled] + 172 [label="State 172\n\l174 Literal: TupleLiteral •\l223 Initializer: TupleLiteral • \"->\" Term\l"] 172 -> 248 [style=solid label="\"->\""] - 172 -> "172R172" [style=solid] - "172R172" [label="R172", fillcolor=3, shape=diamond, style=filled] - 173 [label="State 173\n\l 22 InitDefinition: \"init\" \"{\" Initializers • \"}\"\l217 Initializers: Initializers • \",\" Initializer\l"] + 172 -> "172R174" [style=solid] + "172R174" [label="R174", fillcolor=3, shape=diamond, style=filled] + 173 [label="State 173\n\l 22 InitDefinition: \"init\" \"{\" Initializers • \"}\"\l219 Initializers: Initializers • \",\" Initializer\l"] 173 -> 249 [style=solid label="\"}\""] 173 -> 250 [style=solid label="\",\""] - 174 [label="State 174\n\l218 Initializers: Initializer •\l"] - 174 -> "174R218" [style=solid] - "174R218" [label="R218", fillcolor=3, shape=diamond, style=filled] + 174 [label="State 174\n\l220 Initializers: Initializer •\l"] + 174 -> "174R220" [style=solid] + "174R220" [label="R220", fillcolor=3, shape=diamond, style=filled] 175 [label="State 175\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" • Parameters \")\" \"->\" Type \"=\" Term\l 26 | \"derived\" Identifier \"(\" • error \")\" \"->\" Type \"=\" Term\l"] 175 -> 251 [style=dotted] 175 -> 8 [style=solid label="\"in\""] @@ -2371,7 +2371,7 @@ digraph "../../obj/src/GrammarParser.y" 180 -> 116 [style=dashed label="FixedSizedType"] 180 -> 94 [style=dashed label="Identifier"] 180 -> 190 [style=dashed label="IdentifierPath"] - 181 [label="State 181\n\l 41 UsingDefinition: \"using\" Identifier \"=\" • Type\l"] + 181 [label="State 181\n\l 39 UsingDefinition: \"using\" Identifier \"=\" • Type\l"] 181 -> 8 [style=solid label="\"in\""] 181 -> 109 [style=solid label="\"(\""] 181 -> 9 [style=solid label="\"identifier\""] @@ -2384,12 +2384,12 @@ digraph "../../obj/src/GrammarParser.y" 181 -> 116 [style=dashed label="FixedSizedType"] 181 -> 94 [style=dashed label="Identifier"] 181 -> 190 [style=dashed label="IdentifierPath"] - 182 [label="State 182\n\l 43 UsingPathDefinition: \"using\" IdentifierPath \"::\" • \"*\"\l224 IdentifierPath: IdentifierPath \"::\" • Identifier\l"] + 182 [label="State 182\n\l 41 UsingPathDefinition: \"using\" IdentifierPath \"::\" • \"*\"\l226 IdentifierPath: IdentifierPath \"::\" • Identifier\l"] 182 -> 8 [style=solid label="\"in\""] 182 -> 293 [style=solid label="\"*\""] 182 -> 9 [style=solid label="\"identifier\""] 182 -> 246 [style=dashed label="Identifier"] - 183 [label="State 183\n\l 44 InvariantDefinition: \"invariant\" Identifier \"=\" • Term\l"] + 183 [label="State 183\n\l 42 InvariantDefinition: \"invariant\" Identifier \"=\" • Term\l"] 183 -> 45 [style=solid label="\"let\""] 183 -> 8 [style=solid label="\"in\""] 183 -> 46 [style=solid label="\"forall\""] @@ -2443,37 +2443,37 @@ digraph "../../obj/src/GrammarParser.y" 183 -> 93 [style=dashed label="RecordLiteral"] 183 -> 94 [style=dashed label="Identifier"] 183 -> 95 [style=dashed label="IdentifierPath"] - 184 [label="State 184\n\l 46 ImportDefinition: \"import\" IdentifierPath \"as\" • Identifier\l"] + 184 [label="State 184\n\l 44 ImportDefinition: \"import\" IdentifierPath \"as\" • Identifier\l"] 184 -> 8 [style=solid label="\"in\""] 184 -> 9 [style=solid label="\"identifier\""] 184 -> 295 [style=dashed label="Identifier"] - 185 [label="State 185\n\l 47 StructureDefinition: \"structure\" Identifier \"=\" • \"{\" FunctionDefinitions \"}\"\l"] + 185 [label="State 185\n\l 45 StructureDefinition: \"structure\" Identifier \"=\" • \"{\" StructureDefinitionList \"}\"\l"] 185 -> 296 [style=solid label="\"{\""] - 186 [label="State 186\n\l 48 FeatureDefinition: \"feature\" Identifier \"=\" • \"{\" FeatureDeclarationsAndDefinitions \"}\"\l"] + 186 [label="State 186\n\l 50 FeatureDefinition: \"feature\" Identifier \"=\" • \"{\" FeatureDeclarationsAndDefinitions \"}\"\l"] 186 -> 297 [style=solid label="\"{\""] - 187 [label="State 187\n\l193 Types: Types • \",\" Type\l202 TupleType: \"(\" Types • \",\" Type \")\"\l"] + 187 [label="State 187\n\l195 Types: Types • \",\" Type\l204 TupleType: \"(\" Types • \",\" Type \")\"\l"] 187 -> 298 [style=solid label="\",\""] - 188 [label="State 188\n\l194 Types: Type •\l"] - 188 -> "188R194" [style=solid] - "188R194" [label="R194", fillcolor=3, shape=diamond, style=filled] - 189 [label="State 189\n\l225 IdentifierPath: Identifier •\l232 TypedVariable: Identifier • \":\" Type\l"] + 188 [label="State 188\n\l196 Types: Type •\l"] + 188 -> "188R196" [style=solid] + "188R196" [label="R196", fillcolor=3, shape=diamond, style=filled] + 189 [label="State 189\n\l227 IdentifierPath: Identifier •\l234 TypedVariable: Identifier • \":\" Type\l"] 189 -> 198 [style=solid label="\":\""] - 189 -> "189R225" [style=solid] - "189R225" [label="R225", fillcolor=3, shape=diamond, style=filled] - 190 [label="State 190\n\l201 BasicType: IdentifierPath •\l204 TemplateType: IdentifierPath • \"<\" Types \">\"\l205 RelationType: IdentifierPath • \"<\" MaybeFunctionParameters \"->\" Type \">\"\l206 FixedSizedType: IdentifierPath • \"'\" Term\l224 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 189 -> "189R227" [style=solid] + "189R227" [label="R227", fillcolor=3, shape=diamond, style=filled] + 190 [label="State 190\n\l203 BasicType: IdentifierPath •\l206 TemplateType: IdentifierPath • \"<\" Types \">\"\l207 RelationType: IdentifierPath • \"<\" MaybeFunctionParameters \"->\" Type \">\"\l208 FixedSizedType: IdentifierPath • \"'\" Term\l226 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] 190 -> 169 [style=solid label="\"::\""] 190 -> 195 [style=solid label="\"<\""] 190 -> 196 [style=solid label="\"'\""] - 190 -> "190R201" [style=solid] - "190R201" [label="R201", fillcolor=3, shape=diamond, style=filled] - 191 [label="State 191\n\l203 RecordType: \"(\" TypedVariables • \",\" TypedVariable \")\"\l230 TypedVariables: TypedVariables • \",\" TypedVariable\l"] + 190 -> "190R203" [style=solid] + "190R203" [label="R203", fillcolor=3, shape=diamond, style=filled] + 191 [label="State 191\n\l205 RecordType: \"(\" TypedVariables • \",\" TypedVariable \")\"\l232 TypedVariables: TypedVariables • \",\" TypedVariable\l"] 191 -> 299 [style=solid label="\",\""] - 192 [label="State 192\n\l231 TypedVariables: TypedVariable •\l"] - 192 -> "192R231" [style=solid] - "192R231" [label="R231", fillcolor=3, shape=diamond, style=filled] - 193 [label="State 193\n\l 55 ImplementationDefinition: \"implements\" Type \"=\" • \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 192 [label="State 192\n\l233 TypedVariables: TypedVariable •\l"] + 192 -> "192R233" [style=solid] + "192R233" [label="R233", fillcolor=3, shape=diamond, style=filled] + 193 [label="State 193\n\l 57 ImplementationDefinition: \"implements\" Type \"=\" • \"{\" ImplementationDefinitionDefinitions \"}\"\l"] 193 -> 300 [style=solid label="\"{\""] - 194 [label="State 194\n\l 54 ImplementationDefinition: \"implements\" IdentifierPath \"for\" • Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 194 [label="State 194\n\l 56 ImplementationDefinition: \"implements\" IdentifierPath \"for\" • Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] 194 -> 8 [style=solid label="\"in\""] 194 -> 109 [style=solid label="\"(\""] 194 -> 9 [style=solid label="\"identifier\""] @@ -2486,7 +2486,7 @@ digraph "../../obj/src/GrammarParser.y" 194 -> 116 [style=dashed label="FixedSizedType"] 194 -> 94 [style=dashed label="Identifier"] 194 -> 190 [style=dashed label="IdentifierPath"] - 195 [label="State 195\n\l204 TemplateType: IdentifierPath \"<\" • Types \">\"\l205 RelationType: IdentifierPath \"<\" • MaybeFunctionParameters \"->\" Type \">\"\l"] + 195 [label="State 195\n\l206 TemplateType: IdentifierPath \"<\" • Types \">\"\l207 RelationType: IdentifierPath \"<\" • MaybeFunctionParameters \"->\" Type \">\"\l"] 195 -> 8 [style=solid label="\"in\""] 195 -> 109 [style=solid label="\"(\""] 195 -> 9 [style=solid label="\"identifier\""] @@ -2502,9 +2502,9 @@ digraph "../../obj/src/GrammarParser.y" 195 -> 305 [style=dashed label="MaybeFunctionParameters"] 195 -> 94 [style=dashed label="Identifier"] 195 -> 190 [style=dashed label="IdentifierPath"] - 195 -> "195R210" [style=solid] - "195R210" [label="R210", fillcolor=3, shape=diamond, style=filled] - 196 [label="State 196\n\l206 FixedSizedType: IdentifierPath \"'\" • Term\l"] + 195 -> "195R212" [style=solid] + "195R212" [label="R212", fillcolor=3, shape=diamond, style=filled] + 196 [label="State 196\n\l208 FixedSizedType: IdentifierPath \"'\" • Term\l"] 196 -> 45 [style=solid label="\"let\""] 196 -> 8 [style=solid label="\"in\""] 196 -> 46 [style=solid label="\"forall\""] @@ -2558,7 +2558,7 @@ digraph "../../obj/src/GrammarParser.y" 196 -> 93 [style=dashed label="RecordLiteral"] 196 -> 94 [style=dashed label="Identifier"] 196 -> 95 [style=dashed label="IdentifierPath"] - 197 [label="State 197\n\l 35 FunctionDefinition: \"function\" Identifier \":\" • MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] + 197 [label="State 197\n\l 33 FunctionDefinition: \"function\" Identifier \":\" • MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] 197 -> 8 [style=solid label="\"in\""] 197 -> 109 [style=solid label="\"(\""] 197 -> 9 [style=solid label="\"identifier\""] @@ -2573,9 +2573,9 @@ digraph "../../obj/src/GrammarParser.y" 197 -> 308 [style=dashed label="MaybeFunctionParameters"] 197 -> 94 [style=dashed label="Identifier"] 197 -> 190 [style=dashed label="IdentifierPath"] - 197 -> "197R210" [style=solid] - "197R210" [label="R210", fillcolor=3, shape=diamond, style=filled] - 198 [label="State 198\n\l232 TypedVariable: Identifier \":\" • Type\l"] + 197 -> "197R212" [style=solid] + "197R212" [label="R212", fillcolor=3, shape=diamond, style=filled] + 198 [label="State 198\n\l234 TypedVariable: Identifier \":\" • Type\l"] 198 -> 8 [style=solid label="\"in\""] 198 -> 109 [style=solid label="\"(\""] 198 -> 9 [style=solid label="\"identifier\""] @@ -2588,7 +2588,7 @@ digraph "../../obj/src/GrammarParser.y" 198 -> 116 [style=dashed label="FixedSizedType"] 198 -> 94 [style=dashed label="Identifier"] 198 -> 190 [style=dashed label="IdentifierPath"] - 199 [label="State 199\n\l239 VariableBinding: AttributedVariable \"=\" • Term\l"] + 199 [label="State 199\n\l241 VariableBinding: AttributedVariable \"=\" • Term\l"] 199 -> 45 [style=solid label="\"let\""] 199 -> 8 [style=solid label="\"in\""] 199 -> 46 [style=solid label="\"forall\""] @@ -2642,7 +2642,7 @@ digraph "../../obj/src/GrammarParser.y" 199 -> 93 [style=dashed label="RecordLiteral"] 199 -> 94 [style=dashed label="Identifier"] 199 -> 95 [style=dashed label="IdentifierPath"] - 200 [label="State 200\n\l156 LetExpression: \"let\" VariableBindings \"in\" • Term\l"] + 200 [label="State 200\n\l158 LetExpression: \"let\" VariableBindings \"in\" • Term\l"] 200 -> 45 [style=solid label="\"let\""] 200 -> 8 [style=solid label="\"in\""] 200 -> 46 [style=solid label="\"forall\""] @@ -2696,7 +2696,7 @@ digraph "../../obj/src/GrammarParser.y" 200 -> 93 [style=dashed label="RecordLiteral"] 200 -> 94 [style=dashed label="Identifier"] 200 -> 95 [style=dashed label="IdentifierPath"] - 201 [label="State 201\n\l237 VariableBindings: VariableBindings \",\" • VariableBinding\l"] + 201 [label="State 201\n\l239 VariableBindings: VariableBindings \",\" • VariableBinding\l"] 201 -> 8 [style=solid label="\"in\""] 201 -> 2 [style=solid label="\"[\""] 201 -> 9 [style=solid label="\"identifier\""] @@ -2707,10 +2707,10 @@ digraph "../../obj/src/GrammarParser.y" 201 -> 312 [style=dashed label="VariableBinding"] 201 -> 127 [style=dashed label="Attributes"] 201 -> 6 [style=dashed label="Attribute"] - 202 [label="State 202\n\l233 AttributedVariable: Attributes Variable •\l"] - 202 -> "202R233" [style=solid] - "202R233" [label="R233", fillcolor=3, shape=diamond, style=filled] - 203 [label="State 203\n\l159 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" • Term \"holds\" Term\l"] + 202 [label="State 202\n\l235 AttributedVariable: Attributes Variable •\l"] + 202 -> "202R235" [style=solid] + "202R235" [label="R235", fillcolor=3, shape=diamond, style=filled] + 203 [label="State 203\n\l161 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" • Term \"holds\" Term\l"] 203 -> 45 [style=solid label="\"let\""] 203 -> 8 [style=solid label="\"in\""] 203 -> 46 [style=solid label="\"forall\""] @@ -2764,7 +2764,7 @@ digraph "../../obj/src/GrammarParser.y" 203 -> 93 [style=dashed label="RecordLiteral"] 203 -> 94 [style=dashed label="Identifier"] 203 -> 95 [style=dashed label="IdentifierPath"] - 204 [label="State 204\n\l228 AttributedVariables: AttributedVariables \",\" • AttributedVariable\l"] + 204 [label="State 204\n\l230 AttributedVariables: AttributedVariables \",\" • AttributedVariable\l"] 204 -> 8 [style=solid label="\"in\""] 204 -> 2 [style=solid label="\"[\""] 204 -> 9 [style=solid label="\"identifier\""] @@ -2774,7 +2774,7 @@ digraph "../../obj/src/GrammarParser.y" 204 -> 314 [style=dashed label="AttributedVariable"] 204 -> 127 [style=dashed label="Attributes"] 204 -> 6 [style=dashed label="Attribute"] - 205 [label="State 205\n\l158 ChooseExpression: \"choose\" AttributedVariables \"in\" • Term \"do\" Term\l"] + 205 [label="State 205\n\l160 ChooseExpression: \"choose\" AttributedVariables \"in\" • Term \"do\" Term\l"] 205 -> 45 [style=solid label="\"let\""] 205 -> 8 [style=solid label="\"in\""] 205 -> 46 [style=solid label="\"forall\""] @@ -2828,7 +2828,7 @@ digraph "../../obj/src/GrammarParser.y" 205 -> 93 [style=dashed label="RecordLiteral"] 205 -> 94 [style=dashed label="Identifier"] 205 -> 95 [style=dashed label="IdentifierPath"] - 206 [label="State 206\n\l157 ConditionalExpression: \"if\" Term \"then\" • Term \"else\" Term\l"] + 206 [label="State 206\n\l159 ConditionalExpression: \"if\" Term \"then\" • Term \"else\" Term\l"] 206 -> 45 [style=solid label="\"let\""] 206 -> 8 [style=solid label="\"in\""] 206 -> 46 [style=solid label="\"forall\""] @@ -2882,7 +2882,7 @@ digraph "../../obj/src/GrammarParser.y" 206 -> 93 [style=dashed label="RecordLiteral"] 206 -> 94 [style=dashed label="Identifier"] 206 -> 95 [style=dashed label="IdentifierPath"] - 207 [label="State 207\n\l160 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" • Term \"with\" Term\l"] + 207 [label="State 207\n\l162 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" • Term \"with\" Term\l"] 207 -> 45 [style=solid label="\"let\""] 207 -> 8 [style=solid label="\"in\""] 207 -> 46 [style=solid label="\"forall\""] @@ -2936,10 +2936,10 @@ digraph "../../obj/src/GrammarParser.y" 207 -> 93 [style=dashed label="RecordLiteral"] 207 -> 94 [style=dashed label="Identifier"] 207 -> 95 [style=dashed label="IdentifierPath"] - 208 [label="State 208\n\l116 SimpleOrClaspedTerm: \"(\" error \")\" •\l"] - 208 -> "208R116" [style=solid] - "208R116" [label="R116", fillcolor=3, shape=diamond, style=filled] - 209 [label="State 209\n\l104 Terms: Terms \",\" • Term\l188 TupleLiteral: \"(\" Terms \",\" • Term \")\"\l"] + 208 [label="State 208\n\l118 SimpleOrClaspedTerm: \"(\" error \")\" •\l"] + 208 -> "208R118" [style=solid] + "208R118" [label="R118", fillcolor=3, shape=diamond, style=filled] + 209 [label="State 209\n\l106 Terms: Terms \",\" • Term\l190 TupleLiteral: \"(\" Terms \",\" • Term \")\"\l"] 209 -> 45 [style=solid label="\"let\""] 209 -> 8 [style=solid label="\"in\""] 209 -> 46 [style=solid label="\"forall\""] @@ -2993,18 +2993,18 @@ digraph "../../obj/src/GrammarParser.y" 209 -> 93 [style=dashed label="RecordLiteral"] 209 -> 94 [style=dashed label="Identifier"] 209 -> 95 [style=dashed label="IdentifierPath"] - 210 [label="State 210\n\l115 SimpleOrClaspedTerm: \"(\" Term \")\" •\l"] - 210 -> "210R115" [style=solid] - "210R115" [label="R115", fillcolor=3, shape=diamond, style=filled] - 211 [label="State 211\n\l189 RecordLiteral: \"(\" Assignments \")\" •\l"] - 211 -> "211R189" [style=solid] - "211R189" [label="R189", fillcolor=3, shape=diamond, style=filled] - 212 [label="State 212\n\l190 Assignments: Assignments \",\" • Assignment\l"] + 210 [label="State 210\n\l117 SimpleOrClaspedTerm: \"(\" Term \")\" •\l"] + 210 -> "210R117" [style=solid] + "210R117" [label="R117", fillcolor=3, shape=diamond, style=filled] + 211 [label="State 211\n\l191 RecordLiteral: \"(\" Assignments \")\" •\l"] + 211 -> "211R191" [style=solid] + "211R191" [label="R191", fillcolor=3, shape=diamond, style=filled] + 212 [label="State 212\n\l192 Assignments: Assignments \",\" • Assignment\l"] 212 -> 8 [style=solid label="\"in\""] 212 -> 9 [style=solid label="\"identifier\""] 212 -> 319 [style=dashed label="Assignment"] 212 -> 320 [style=dashed label="Identifier"] - 213 [label="State 213\n\l192 Assignment: Identifier \":\" • Term\l"] + 213 [label="State 213\n\l194 Assignment: Identifier \":\" • Term\l"] 213 -> 45 [style=solid label="\"let\""] 213 -> 8 [style=solid label="\"in\""] 213 -> 46 [style=solid label="\"forall\""] @@ -3058,13 +3058,13 @@ digraph "../../obj/src/GrammarParser.y" 213 -> 93 [style=dashed label="RecordLiteral"] 213 -> 94 [style=dashed label="Identifier"] 213 -> 95 [style=dashed label="IdentifierPath"] - 214 [label="State 214\n\l186 ListLiteral: \"[\" error \"]\" •\l"] - 214 -> "214R186" [style=solid] - "214R186" [label="R186", fillcolor=3, shape=diamond, style=filled] - 215 [label="State 215\n\l185 ListLiteral: \"[\" Terms \"]\" •\l"] - 215 -> "215R185" [style=solid] - "215R185" [label="R185", fillcolor=3, shape=diamond, style=filled] - 216 [label="State 216\n\l104 Terms: Terms \",\" • Term\l"] + 214 [label="State 214\n\l188 ListLiteral: \"[\" error \"]\" •\l"] + 214 -> "214R188" [style=solid] + "214R188" [label="R188", fillcolor=3, shape=diamond, style=filled] + 215 [label="State 215\n\l187 ListLiteral: \"[\" Terms \"]\" •\l"] + 215 -> "215R187" [style=solid] + "215R187" [label="R187", fillcolor=3, shape=diamond, style=filled] + 216 [label="State 216\n\l106 Terms: Terms \",\" • Term\l"] 216 -> 45 [style=solid label="\"let\""] 216 -> 8 [style=solid label="\"in\""] 216 -> 46 [style=solid label="\"forall\""] @@ -3118,7 +3118,7 @@ digraph "../../obj/src/GrammarParser.y" 216 -> 93 [style=dashed label="RecordLiteral"] 216 -> 94 [style=dashed label="Identifier"] 216 -> 95 [style=dashed label="IdentifierPath"] - 217 [label="State 217\n\l187 RangeLiteral: \"[\" Term \"..\" • Term \"]\"\l"] + 217 [label="State 217\n\l189 RangeLiteral: \"[\" Term \"..\" • Term \"]\"\l"] 217 -> 45 [style=solid label="\"let\""] 217 -> 8 [style=solid label="\"in\""] 217 -> 46 [style=solid label="\"forall\""] @@ -3172,10 +3172,10 @@ digraph "../../obj/src/GrammarParser.y" 217 -> 93 [style=dashed label="RecordLiteral"] 217 -> 94 [style=dashed label="Identifier"] 217 -> 95 [style=dashed label="IdentifierPath"] - 218 [label="State 218\n\l161 CardinalityExpression: \"|\" SimpleOrClaspedTerm \"|\" •\l"] - 218 -> "218R161" [style=solid] - "218R161" [label="R161", fillcolor=3, shape=diamond, style=filled] - 219 [label="State 219\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l136 | Term \"and\" Term •\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 218 [label="State 218\n\l163 CardinalityExpression: \"|\" SimpleOrClaspedTerm \"|\" •\l"] + 218 -> "218R163" [style=solid] + "218R163" [label="R163", fillcolor=3, shape=diamond, style=filled] + 219 [label="State 219\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l138 | Term \"and\" Term •\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 219 -> 152 [style=solid label="\"+\""] 219 -> 153 [style=solid label="\"-\""] 219 -> 154 [style=solid label="\"=\""] @@ -3188,9 +3188,9 @@ digraph "../../obj/src/GrammarParser.y" 219 -> 162 [style=solid label="\"!=\""] 219 -> 163 [style=solid label="\"<=\""] 219 -> 164 [style=solid label="\">=\""] - 219 -> "219R136" [style=solid] - "219R136" [label="R136", fillcolor=3, shape=diamond, style=filled] - 220 [label="State 220\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l134 | Term \"or\" Term •\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 219 -> "219R138" [style=solid] + "219R138" [label="R138", fillcolor=3, shape=diamond, style=filled] + 220 [label="State 220\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l136 | Term \"or\" Term •\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 220 -> 148 [style=solid label="\"and\""] 220 -> 150 [style=solid label="\"xor\""] 220 -> 152 [style=solid label="\"+\""] @@ -3205,9 +3205,9 @@ digraph "../../obj/src/GrammarParser.y" 220 -> 162 [style=solid label="\"!=\""] 220 -> 163 [style=solid label="\"<=\""] 220 -> 164 [style=solid label="\">=\""] - 220 -> "220R134" [style=solid] - "220R134" [label="R134", fillcolor=3, shape=diamond, style=filled] - 221 [label="State 221\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l135 | Term \"xor\" Term •\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 220 -> "220R136" [style=solid] + "220R136" [label="R136", fillcolor=3, shape=diamond, style=filled] + 221 [label="State 221\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l137 | Term \"xor\" Term •\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 221 -> 148 [style=solid label="\"and\""] 221 -> 152 [style=solid label="\"+\""] 221 -> 153 [style=solid label="\"-\""] @@ -3221,9 +3221,9 @@ digraph "../../obj/src/GrammarParser.y" 221 -> 162 [style=solid label="\"!=\""] 221 -> 163 [style=solid label="\"<=\""] 221 -> 164 [style=solid label="\">=\""] - 221 -> "221R135" [style=solid] - "221R135" [label="R135", fillcolor=3, shape=diamond, style=filled] - 222 [label="State 222\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l138 | Term \"implies\" Term •\l"] + 221 -> "221R137" [style=solid] + "221R137" [label="R137", fillcolor=3, shape=diamond, style=filled] + 222 [label="State 222\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l140 | Term \"implies\" Term •\l"] 222 -> 148 [style=solid label="\"and\""] 222 -> 149 [style=solid label="\"or\""] 222 -> 150 [style=solid label="\"xor\""] @@ -3239,23 +3239,23 @@ digraph "../../obj/src/GrammarParser.y" 222 -> 162 [style=solid label="\"!=\""] 222 -> 163 [style=solid label="\"<=\""] 222 -> 164 [style=solid label="\">=\""] - 222 -> "222R138" [style=solid] - "222R138" [label="R138", fillcolor=3, shape=diamond, style=filled] - 223 [label="State 223\n\l122 OperatorExpression: Term • \"+\" Term\l122 | Term \"+\" Term •\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 222 -> "222R140" [style=solid] + "222R140" [label="R140", fillcolor=3, shape=diamond, style=filled] + 223 [label="State 223\n\l124 OperatorExpression: Term • \"+\" Term\l124 | Term \"+\" Term •\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 223 -> 157 [style=solid label="\"*\""] 223 -> 158 [style=solid label="\"/\""] 223 -> 159 [style=solid label="\"%\""] 223 -> 160 [style=solid label="\"^\""] - 223 -> "223R122" [style=solid] - "223R122" [label="R122", fillcolor=3, shape=diamond, style=filled] - 224 [label="State 224\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l123 | Term \"-\" Term •\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 223 -> "223R124" [style=solid] + "223R124" [label="R124", fillcolor=3, shape=diamond, style=filled] + 224 [label="State 224\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l125 | Term \"-\" Term •\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 224 -> 157 [style=solid label="\"*\""] 224 -> 158 [style=solid label="\"/\""] 224 -> 159 [style=solid label="\"%\""] 224 -> 160 [style=solid label="\"^\""] - 224 -> "224R123" [style=solid] - "224R123" [label="R123", fillcolor=3, shape=diamond, style=filled] - 225 [label="State 225\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l129 | Term \"=\" Term •\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 224 -> "224R125" [style=solid] + "224R125" [label="R125", fillcolor=3, shape=diamond, style=filled] + 225 [label="State 225\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l131 | Term \"=\" Term •\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 225 -> 152 [style=solid label="\"+\""] 225 -> 153 [style=solid label="\"-\""] 225 -> 155 [style=solid label="\"<\""] @@ -3266,42 +3266,42 @@ digraph "../../obj/src/GrammarParser.y" 225 -> 160 [style=solid label="\"^\""] 225 -> 163 [style=solid label="\"<=\""] 225 -> 164 [style=solid label="\">=\""] - 225 -> "225R129" [style=solid] - "225R129" [label="R129", fillcolor=3, shape=diamond, style=filled] - 226 [label="State 226\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l130 | Term \"<\" Term •\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 225 -> "225R131" [style=solid] + "225R131" [label="R131", fillcolor=3, shape=diamond, style=filled] + 226 [label="State 226\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l132 | Term \"<\" Term •\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 226 -> 152 [style=solid label="\"+\""] 226 -> 153 [style=solid label="\"-\""] 226 -> 157 [style=solid label="\"*\""] 226 -> 158 [style=solid label="\"/\""] 226 -> 159 [style=solid label="\"%\""] 226 -> 160 [style=solid label="\"^\""] - 226 -> "226R130" [style=solid] - "226R130" [label="R130", fillcolor=3, shape=diamond, style=filled] - 227 [label="State 227\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l131 | Term \">\" Term •\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 226 -> "226R132" [style=solid] + "226R132" [label="R132", fillcolor=3, shape=diamond, style=filled] + 227 [label="State 227\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l133 | Term \">\" Term •\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 227 -> 152 [style=solid label="\"+\""] 227 -> 153 [style=solid label="\"-\""] 227 -> 157 [style=solid label="\"*\""] 227 -> 158 [style=solid label="\"/\""] 227 -> 159 [style=solid label="\"%\""] 227 -> 160 [style=solid label="\"^\""] - 227 -> "227R131" [style=solid] - "227R131" [label="R131", fillcolor=3, shape=diamond, style=filled] - 228 [label="State 228\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l124 | Term \"*\" Term •\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 227 -> "227R133" [style=solid] + "227R133" [label="R133", fillcolor=3, shape=diamond, style=filled] + 228 [label="State 228\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l126 | Term \"*\" Term •\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 228 -> 160 [style=solid label="\"^\""] - 228 -> "228R124" [style=solid] - "228R124" [label="R124", fillcolor=3, shape=diamond, style=filled] - 229 [label="State 229\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l125 | Term \"/\" Term •\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 228 -> "228R126" [style=solid] + "228R126" [label="R126", fillcolor=3, shape=diamond, style=filled] + 229 [label="State 229\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l127 | Term \"/\" Term •\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 229 -> 160 [style=solid label="\"^\""] - 229 -> "229R125" [style=solid] - "229R125" [label="R125", fillcolor=3, shape=diamond, style=filled] - 230 [label="State 230\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l126 | Term \"%\" Term •\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 229 -> "229R127" [style=solid] + "229R127" [label="R127", fillcolor=3, shape=diamond, style=filled] + 230 [label="State 230\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l128 | Term \"%\" Term •\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 230 -> 160 [style=solid label="\"^\""] - 230 -> "230R126" [style=solid] - "230R126" [label="R126", fillcolor=3, shape=diamond, style=filled] - 231 [label="State 231\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l127 | Term \"^\" Term •\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] - 231 -> "231R127" [style=solid] - "231R127" [label="R127", fillcolor=3, shape=diamond, style=filled] - 232 [label="State 232\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l137 | Term \"=>\" Term •\l138 | Term • \"implies\" Term\l"] + 230 -> "230R128" [style=solid] + "230R128" [label="R128", fillcolor=3, shape=diamond, style=filled] + 231 [label="State 231\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l129 | Term \"^\" Term •\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] + 231 -> "231R129" [style=solid] + "231R129" [label="R129", fillcolor=3, shape=diamond, style=filled] + 232 [label="State 232\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l139 | Term \"=>\" Term •\l140 | Term • \"implies\" Term\l"] 232 -> 148 [style=solid label="\"and\""] 232 -> 149 [style=solid label="\"or\""] 232 -> 150 [style=solid label="\"xor\""] @@ -3317,9 +3317,9 @@ digraph "../../obj/src/GrammarParser.y" 232 -> 162 [style=solid label="\"!=\""] 232 -> 163 [style=solid label="\"<=\""] 232 -> 164 [style=solid label="\">=\""] - 232 -> "232R137" [style=solid] - "232R137" [label="R137", fillcolor=3, shape=diamond, style=filled] - 233 [label="State 233\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l128 | Term \"!=\" Term •\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 232 -> "232R139" [style=solid] + "232R139" [label="R139", fillcolor=3, shape=diamond, style=filled] + 233 [label="State 233\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l130 | Term \"!=\" Term •\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 233 -> 152 [style=solid label="\"+\""] 233 -> 153 [style=solid label="\"-\""] 233 -> 155 [style=solid label="\"<\""] @@ -3330,45 +3330,45 @@ digraph "../../obj/src/GrammarParser.y" 233 -> 160 [style=solid label="\"^\""] 233 -> 163 [style=solid label="\"<=\""] 233 -> 164 [style=solid label="\">=\""] - 233 -> "233R128" [style=solid] - "233R128" [label="R128", fillcolor=3, shape=diamond, style=filled] - 234 [label="State 234\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l132 | Term \"<=\" Term •\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 233 -> "233R130" [style=solid] + "233R130" [label="R130", fillcolor=3, shape=diamond, style=filled] + 234 [label="State 234\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l134 | Term \"<=\" Term •\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 234 -> 152 [style=solid label="\"+\""] 234 -> 153 [style=solid label="\"-\""] 234 -> 157 [style=solid label="\"*\""] 234 -> 158 [style=solid label="\"/\""] 234 -> 159 [style=solid label="\"%\""] 234 -> 160 [style=solid label="\"^\""] - 234 -> "234R132" [style=solid] - "234R132" [label="R132", fillcolor=3, shape=diamond, style=filled] - 235 [label="State 235\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l133 | Term \">=\" Term •\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 234 -> "234R134" [style=solid] + "234R134" [label="R134", fillcolor=3, shape=diamond, style=filled] + 235 [label="State 235\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l135 | Term \">=\" Term •\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 235 -> 152 [style=solid label="\"+\""] 235 -> 153 [style=solid label="\"-\""] 235 -> 157 [style=solid label="\"*\""] 235 -> 158 [style=solid label="\"/\""] 235 -> 159 [style=solid label="\"%\""] 235 -> 160 [style=solid label="\"^\""] - 235 -> "235R133" [style=solid] - "235R133" [label="R133", fillcolor=3, shape=diamond, style=filled] - 236 [label="State 236\n\l155 TypeCastingExpression: SimpleOrClaspedTerm \"as\" Type •\l"] - 236 -> "236R155" [style=solid] - "236R155" [label="R155", fillcolor=3, shape=diamond, style=filled] - 237 [label="State 237\n\l151 LiteralCallExpression: SimpleOrClaspedTerm \".\" IntegerLiteral •\l"] - 237 -> "237R151" [style=solid] - "237R151" [label="R151", fillcolor=3, shape=diamond, style=filled] - 238 [label="State 238\n\l147 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier •\l148 | SimpleOrClaspedTerm \".\" Identifier • \"(\" \")\"\l149 | SimpleOrClaspedTerm \".\" Identifier • \"(\" Terms \")\"\l150 | SimpleOrClaspedTerm \".\" Identifier • \"(\" error \")\"\l"] + 235 -> "235R135" [style=solid] + "235R135" [label="R135", fillcolor=3, shape=diamond, style=filled] + 236 [label="State 236\n\l157 TypeCastingExpression: SimpleOrClaspedTerm \"as\" Type •\l"] + 236 -> "236R157" [style=solid] + "236R157" [label="R157", fillcolor=3, shape=diamond, style=filled] + 237 [label="State 237\n\l153 LiteralCallExpression: SimpleOrClaspedTerm \".\" IntegerLiteral •\l"] + 237 -> "237R153" [style=solid] + "237R153" [label="R153", fillcolor=3, shape=diamond, style=filled] + 238 [label="State 238\n\l149 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier •\l150 | SimpleOrClaspedTerm \".\" Identifier • \"(\" \")\"\l151 | SimpleOrClaspedTerm \".\" Identifier • \"(\" Terms \")\"\l152 | SimpleOrClaspedTerm \".\" Identifier • \"(\" error \")\"\l"] 238 -> 324 [style=solid label="\"(\""] - 238 -> "238R147" [style=solid] - "238R147" [label="R147", fillcolor=3, shape=diamond, style=filled] - 239 [label="State 239\n\l154 IndirectCallExpression: CallExpression \"(\" error • \")\"\l"] + 238 -> "238R149" [style=solid] + "238R149" [label="R149", fillcolor=3, shape=diamond, style=filled] + 239 [label="State 239\n\l156 IndirectCallExpression: CallExpression \"(\" error • \")\"\l"] 239 -> 325 [style=solid label="\")\""] - 240 [label="State 240\n\l152 IndirectCallExpression: CallExpression \"(\" \")\" •\l"] - 240 -> "240R152" [style=solid] - "240R152" [label="R152", fillcolor=3, shape=diamond, style=filled] - 241 [label="State 241\n\l104 Terms: Terms • \",\" Term\l153 IndirectCallExpression: CallExpression \"(\" Terms • \")\"\l"] + 240 [label="State 240\n\l154 IndirectCallExpression: CallExpression \"(\" \")\" •\l"] + 240 -> "240R154" [style=solid] + "240R154" [label="R154", fillcolor=3, shape=diamond, style=filled] + 241 [label="State 241\n\l106 Terms: Terms • \",\" Term\l155 IndirectCallExpression: CallExpression \"(\" Terms • \")\"\l"] 241 -> 326 [style=solid label="\")\""] 241 -> 216 [style=solid label="\",\""] - 242 [label="State 242\n\l105 Terms: Term •\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 242 [label="State 242\n\l107 Terms: Term •\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 242 -> 148 [style=solid label="\"and\""] 242 -> 149 [style=solid label="\"or\""] 242 -> 150 [style=solid label="\"xor\""] @@ -3386,20 +3386,20 @@ digraph "../../obj/src/GrammarParser.y" 242 -> 162 [style=solid label="\"!=\""] 242 -> 163 [style=solid label="\"<=\""] 242 -> 164 [style=solid label="\">=\""] - 242 -> "242R105" [style=solid] - "242R105" [label="R105", fillcolor=3, shape=diamond, style=filled] - 243 [label="State 243\n\l146 DirectCallExpression: IdentifierPath \"(\" error • \")\"\l"] + 242 -> "242R107" [style=solid] + "242R107" [label="R107", fillcolor=3, shape=diamond, style=filled] + 243 [label="State 243\n\l148 DirectCallExpression: IdentifierPath \"(\" error • \")\"\l"] 243 -> 327 [style=solid label="\")\""] - 244 [label="State 244\n\l144 DirectCallExpression: IdentifierPath \"(\" \")\" •\l"] - 244 -> "244R144" [style=solid] - "244R144" [label="R144", fillcolor=3, shape=diamond, style=filled] - 245 [label="State 245\n\l104 Terms: Terms • \",\" Term\l145 DirectCallExpression: IdentifierPath \"(\" Terms • \")\"\l"] + 244 [label="State 244\n\l146 DirectCallExpression: IdentifierPath \"(\" \")\" •\l"] + 244 -> "244R146" [style=solid] + "244R146" [label="R146", fillcolor=3, shape=diamond, style=filled] + 245 [label="State 245\n\l106 Terms: Terms • \",\" Term\l147 DirectCallExpression: IdentifierPath \"(\" Terms • \")\"\l"] 245 -> 328 [style=solid label="\")\""] 245 -> 216 [style=solid label="\",\""] - 246 [label="State 246\n\l224 IdentifierPath: IdentifierPath \"::\" Identifier •\l"] - 246 -> "246R224" [style=solid] - "246R224" [label="R224", fillcolor=3, shape=diamond, style=filled] - 247 [label="State 247\n\l105 Terms: Term •\l115 SimpleOrClaspedTerm: \"(\" Term • \")\"\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l220 Initializer: \"(\" Term • \")\" \"->\" Term\l"] + 246 [label="State 246\n\l226 IdentifierPath: IdentifierPath \"::\" Identifier •\l"] + 246 -> "246R226" [style=solid] + "246R226" [label="R226", fillcolor=3, shape=diamond, style=filled] + 247 [label="State 247\n\l107 Terms: Term •\l117 SimpleOrClaspedTerm: \"(\" Term • \")\"\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l222 Initializer: \"(\" Term • \")\" \"->\" Term\l"] 247 -> 148 [style=solid label="\"and\""] 247 -> 149 [style=solid label="\"or\""] 247 -> 150 [style=solid label="\"xor\""] @@ -3418,9 +3418,9 @@ digraph "../../obj/src/GrammarParser.y" 247 -> 162 [style=solid label="\"!=\""] 247 -> 163 [style=solid label="\"<=\""] 247 -> 164 [style=solid label="\">=\""] - 247 -> "247R105" [style=solid] - "247R105" [label="R105", fillcolor=3, shape=diamond, style=filled] - 248 [label="State 248\n\l221 Initializer: TupleLiteral \"->\" • Term\l"] + 247 -> "247R107" [style=solid] + "247R107" [label="R107", fillcolor=3, shape=diamond, style=filled] + 248 [label="State 248\n\l223 Initializer: TupleLiteral \"->\" • Term\l"] 248 -> 45 [style=solid label="\"let\""] 248 -> 8 [style=solid label="\"in\""] 248 -> 46 [style=solid label="\"forall\""] @@ -3477,7 +3477,7 @@ digraph "../../obj/src/GrammarParser.y" 249 [label="State 249\n\l 22 InitDefinition: \"init\" \"{\" Initializers \"}\" •\l"] 249 -> "249R22" [style=solid] "249R22" [label="R22", fillcolor=3, shape=diamond, style=filled] - 250 [label="State 250\n\l217 Initializers: Initializers \",\" • Initializer\l"] + 250 [label="State 250\n\l219 Initializers: Initializers \",\" • Initializer\l"] 250 -> 45 [style=solid label="\"let\""] 250 -> 8 [style=solid label="\"in\""] 250 -> 46 [style=solid label="\"forall\""] @@ -3534,18 +3534,18 @@ digraph "../../obj/src/GrammarParser.y" 250 -> 95 [style=dashed label="IdentifierPath"] 251 [label="State 251\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error • \")\" \"->\" Type \"=\" Term\l"] 251 -> 332 [style=solid label="\")\""] - 252 [label="State 252\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters • \")\" \"->\" Type \"=\" Term\l211 Parameters: Parameters • \",\" TypedAttributedVariable\l"] + 252 [label="State 252\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters • \")\" \"->\" Type \"=\" Term\l213 Parameters: Parameters • \",\" TypedAttributedVariable\l"] 252 -> 333 [style=solid label="\")\""] 252 -> 334 [style=solid label="\",\""] - 253 [label="State 253\n\l232 TypedVariable: Identifier • \":\" Type\l"] + 253 [label="State 253\n\l234 TypedVariable: Identifier • \":\" Type\l"] 253 -> 198 [style=solid label="\":\""] - 254 [label="State 254\n\l236 TypedAttributedVariable: TypedVariable •\l"] - 254 -> "254R236" [style=solid] - "254R236" [label="R236", fillcolor=3, shape=diamond, style=filled] - 255 [label="State 255\n\l212 Parameters: TypedAttributedVariable •\l"] - 255 -> "255R212" [style=solid] - "255R212" [label="R212", fillcolor=3, shape=diamond, style=filled] - 256 [label="State 256\n\l235 TypedAttributedVariable: Attributes • TypedVariable\l246 Attributes: Attributes • Attribute\l"] + 254 [label="State 254\n\l238 TypedAttributedVariable: TypedVariable •\l"] + 254 -> "254R238" [style=solid] + "254R238" [label="R238", fillcolor=3, shape=diamond, style=filled] + 255 [label="State 255\n\l214 Parameters: TypedAttributedVariable •\l"] + 255 -> "255R214" [style=solid] + "255R214" [label="R214", fillcolor=3, shape=diamond, style=filled] + 256 [label="State 256\n\l237 TypedAttributedVariable: Attributes • TypedVariable\l248 Attributes: Attributes • Attribute\l"] 256 -> 8 [style=solid label="\"in\""] 256 -> 2 [style=solid label="\"[\""] 256 -> 9 [style=solid label="\"identifier\""] @@ -3564,7 +3564,7 @@ digraph "../../obj/src/GrammarParser.y" 258 -> 340 [style=dashed label="Identifier"] 258 -> 341 [style=dashed label="Attributes"] 258 -> 6 [style=dashed label="Attribute"] - 259 [label="State 259\n\l 98 SequenceRule: \"seq\" • Rules \"endseq\"\l100 | \"seq\" • error \"endseq\"\l"] + 259 [label="State 259\n\l100 SequenceRule: \"seq\" • Rules \"endseq\"\l102 | \"seq\" • error \"endseq\"\l"] 259 -> 342 [style=dotted] 259 -> 259 [style=solid label="\"seq\""] 259 -> 260 [style=solid label="\"par\""] @@ -3631,7 +3631,7 @@ digraph "../../obj/src/GrammarParser.y" 259 -> 93 [style=dashed label="RecordLiteral"] 259 -> 94 [style=dashed label="Identifier"] 259 -> 95 [style=dashed label="IdentifierPath"] - 260 [label="State 260\n\l 94 BlockRule: \"par\" • Rules \"endpar\"\l 96 | \"par\" • error \"endpar\"\l"] + 260 [label="State 260\n\l 96 BlockRule: \"par\" • Rules \"endpar\"\l 98 | \"par\" • error \"endpar\"\l"] 260 -> 345 [style=dotted] 260 -> 259 [style=solid label="\"seq\""] 260 -> 260 [style=solid label="\"par\""] @@ -3698,10 +3698,10 @@ digraph "../../obj/src/GrammarParser.y" 260 -> 93 [style=dashed label="RecordLiteral"] 260 -> 94 [style=dashed label="Identifier"] 260 -> 95 [style=dashed label="IdentifierPath"] - 261 [label="State 261\n\l 77 SkipRule: \"skip\" •\l"] - 261 -> "261R77" [style=solid] - "261R77" [label="R77", fillcolor=3, shape=diamond, style=filled] - 262 [label="State 262\n\l 87 LetRule: \"let\" • VariableBindings \"in\" Rule\l"] + 261 [label="State 261\n\l 79 SkipRule: \"skip\" •\l"] + 261 -> "261R79" [style=solid] + "261R79" [label="R79", fillcolor=3, shape=diamond, style=filled] + 262 [label="State 262\n\l 89 LetRule: \"let\" • VariableBindings \"in\" Rule\l"] 262 -> 8 [style=solid label="\"in\""] 262 -> 2 [style=solid label="\"[\""] 262 -> 9 [style=solid label="\"identifier\""] @@ -3713,7 +3713,7 @@ digraph "../../obj/src/GrammarParser.y" 262 -> 126 [style=dashed label="VariableBinding"] 262 -> 127 [style=dashed label="Attributes"] 262 -> 6 [style=dashed label="Attribute"] - 263 [label="State 263\n\l 88 LocalRule: \"local\" • LocalFunctionDefinitions \"in\" Rule\l"] + 263 [label="State 263\n\l 90 LocalRule: \"local\" • LocalFunctionDefinitions \"in\" Rule\l"] 263 -> 348 [style=dotted] 263 -> 8 [style=solid label="\"in\""] 263 -> 2 [style=solid label="\"[\""] @@ -3724,7 +3724,7 @@ digraph "../../obj/src/GrammarParser.y" 263 -> 352 [style=dashed label="LocalFunctionDefinition"] 263 -> 353 [style=dashed label="Attributes"] 263 -> 6 [style=dashed label="Attribute"] - 264 [label="State 264\n\l 89 ForallRule: \"forall\" • AttributedVariables \"in\" Term \"do\" Rule\l 90 | \"forall\" • AttributedVariables \"in\" Term \"with\" Term \"do\" Rule\l"] + 264 [label="State 264\n\l 91 ForallRule: \"forall\" • AttributedVariables \"in\" Term \"do\" Rule\l 92 | \"forall\" • AttributedVariables \"in\" Term \"with\" Term \"do\" Rule\l"] 264 -> 8 [style=solid label="\"in\""] 264 -> 2 [style=solid label="\"[\""] 264 -> 9 [style=solid label="\"identifier\""] @@ -3735,7 +3735,7 @@ digraph "../../obj/src/GrammarParser.y" 264 -> 129 [style=dashed label="AttributedVariable"] 264 -> 127 [style=dashed label="Attributes"] 264 -> 6 [style=dashed label="Attribute"] - 265 [label="State 265\n\l 91 ChooseRule: \"choose\" • AttributedVariables \"in\" Term \"do\" Rule\l"] + 265 [label="State 265\n\l 93 ChooseRule: \"choose\" • AttributedVariables \"in\" Term \"do\" Rule\l"] 265 -> 8 [style=solid label="\"in\""] 265 -> 2 [style=solid label="\"[\""] 265 -> 9 [style=solid label="\"identifier\""] @@ -3746,7 +3746,7 @@ digraph "../../obj/src/GrammarParser.y" 265 -> 129 [style=dashed label="AttributedVariable"] 265 -> 127 [style=dashed label="Attributes"] 265 -> 6 [style=dashed label="Attribute"] - 266 [label="State 266\n\l 92 IterateRule: \"iterate\" • Rule\l"] + 266 [label="State 266\n\l 94 IterateRule: \"iterate\" • Rule\l"] 266 -> 259 [style=solid label="\"seq\""] 266 -> 260 [style=solid label="\"par\""] 266 -> 261 [style=solid label="\"skip\""] @@ -3811,7 +3811,7 @@ digraph "../../obj/src/GrammarParser.y" 266 -> 93 [style=dashed label="RecordLiteral"] 266 -> 94 [style=dashed label="Identifier"] 266 -> 95 [style=dashed label="IdentifierPath"] - 267 [label="State 267\n\l 78 ConditionalRule: \"if\" • Term \"then\" Rule\l 79 | \"if\" • Term \"then\" Rule \"else\" Rule\l"] + 267 [label="State 267\n\l 80 ConditionalRule: \"if\" • Term \"then\" Rule\l 81 | \"if\" • Term \"then\" Rule \"else\" Rule\l"] 267 -> 45 [style=solid label="\"let\""] 267 -> 8 [style=solid label="\"in\""] 267 -> 46 [style=solid label="\"forall\""] @@ -3865,7 +3865,7 @@ digraph "../../obj/src/GrammarParser.y" 267 -> 93 [style=dashed label="RecordLiteral"] 267 -> 94 [style=dashed label="Identifier"] 267 -> 95 [style=dashed label="IdentifierPath"] - 268 [label="State 268\n\l 80 CaseRule: \"case\" • Term \"of\" \"{\" CaseLabels \"}\"\l 81 | \"case\" • Term \"of\" \"{\" error \"}\"\l"] + 268 [label="State 268\n\l 82 CaseRule: \"case\" • Term \"of\" \"{\" CaseLabels \"}\"\l 83 | \"case\" • Term \"of\" \"{\" error \"}\"\l"] 268 -> 45 [style=solid label="\"let\""] 268 -> 8 [style=solid label="\"in\""] 268 -> 46 [style=solid label="\"forall\""] @@ -3919,7 +3919,7 @@ digraph "../../obj/src/GrammarParser.y" 268 -> 93 [style=dashed label="RecordLiteral"] 268 -> 94 [style=dashed label="Identifier"] 268 -> 95 [style=dashed label="IdentifierPath"] - 269 [label="State 269\n\l103 WhileRule: \"while\" • Term \"do\" Rule\l"] + 269 [label="State 269\n\l105 WhileRule: \"while\" • Term \"do\" Rule\l"] 269 -> 45 [style=solid label="\"let\""] 269 -> 8 [style=solid label="\"in\""] 269 -> 46 [style=solid label="\"forall\""] @@ -3973,7 +3973,7 @@ digraph "../../obj/src/GrammarParser.y" 269 -> 93 [style=dashed label="RecordLiteral"] 269 -> 94 [style=dashed label="Identifier"] 269 -> 95 [style=dashed label="IdentifierPath"] - 270 [label="State 270\n\l 93 BlockRule: \"{\" • Rules \"}\"\l 95 | \"{\" • error \"}\"\l"] + 270 [label="State 270\n\l 95 BlockRule: \"{\" • Rules \"}\"\l 97 | \"{\" • error \"}\"\l"] 270 -> 360 [style=dotted] 270 -> 259 [style=solid label="\"seq\""] 270 -> 260 [style=solid label="\"par\""] @@ -4040,7 +4040,7 @@ digraph "../../obj/src/GrammarParser.y" 270 -> 93 [style=dashed label="RecordLiteral"] 270 -> 94 [style=dashed label="Identifier"] 270 -> 95 [style=dashed label="IdentifierPath"] - 271 [label="State 271\n\l 97 SequenceRule: \"{|\" • Rules \"|}\"\l 99 | \"{|\" • error \"|}\"\l"] + 271 [label="State 271\n\l 99 SequenceRule: \"{|\" • Rules \"|}\"\l101 | \"{|\" • error \"|}\"\l"] 271 -> 362 [style=dotted] 271 -> 259 [style=solid label="\"seq\""] 271 -> 260 [style=solid label="\"par\""] @@ -4110,71 +4110,71 @@ digraph "../../obj/src/GrammarParser.y" 272 [label="State 272\n\l 27 RuleDefinition: \"rule\" Identifier \"=\" Rule •\l"] 272 -> "272R27" [style=solid] "272R27" [label="R27", fillcolor=3, shape=diamond, style=filled] - 273 [label="State 273\n\l 64 Rule: SkipRule •\l"] - 273 -> "273R64" [style=solid] - "273R64" [label="R64", fillcolor=3, shape=diamond, style=filled] - 274 [label="State 274\n\l 65 Rule: ConditionalRule •\l"] - 274 -> "274R65" [style=solid] - "274R65" [label="R65", fillcolor=3, shape=diamond, style=filled] - 275 [label="State 275\n\l 66 Rule: CaseRule •\l"] - 275 -> "275R66" [style=solid] - "275R66" [label="R66", fillcolor=3, shape=diamond, style=filled] - 276 [label="State 276\n\l 67 Rule: LetRule •\l"] - 276 -> "276R67" [style=solid] - "276R67" [label="R67", fillcolor=3, shape=diamond, style=filled] - 277 [label="State 277\n\l 68 Rule: LocalRule •\l"] - 277 -> "277R68" [style=solid] - "277R68" [label="R68", fillcolor=3, shape=diamond, style=filled] - 278 [label="State 278\n\l 69 Rule: ForallRule •\l"] - 278 -> "278R69" [style=solid] - "278R69" [label="R69", fillcolor=3, shape=diamond, style=filled] - 279 [label="State 279\n\l 70 Rule: ChooseRule •\l"] - 279 -> "279R70" [style=solid] - "279R70" [label="R70", fillcolor=3, shape=diamond, style=filled] - 280 [label="State 280\n\l 71 Rule: IterateRule •\l"] - 280 -> "280R71" [style=solid] - "280R71" [label="R71", fillcolor=3, shape=diamond, style=filled] - 281 [label="State 281\n\l 72 Rule: BlockRule •\l"] - 281 -> "281R72" [style=solid] - "281R72" [label="R72", fillcolor=3, shape=diamond, style=filled] - 282 [label="State 282\n\l 73 Rule: SequenceRule •\l"] - 282 -> "282R73" [style=solid] - "282R73" [label="R73", fillcolor=3, shape=diamond, style=filled] - 283 [label="State 283\n\l 74 Rule: UpdateRule •\l"] - 283 -> "283R74" [style=solid] - "283R74" [label="R74", fillcolor=3, shape=diamond, style=filled] - 284 [label="State 284\n\l 75 Rule: CallRule •\l"] - 284 -> "284R75" [style=solid] - "284R75" [label="R75", fillcolor=3, shape=diamond, style=filled] - 285 [label="State 285\n\l 76 Rule: WhileRule •\l"] - 285 -> "285R76" [style=solid] - "285R76" [label="R76", fillcolor=3, shape=diamond, style=filled] - 286 [label="State 286\n\l147 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l149 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l150 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l151 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] + 273 [label="State 273\n\l 66 Rule: SkipRule •\l"] + 273 -> "273R66" [style=solid] + "273R66" [label="R66", fillcolor=3, shape=diamond, style=filled] + 274 [label="State 274\n\l 67 Rule: ConditionalRule •\l"] + 274 -> "274R67" [style=solid] + "274R67" [label="R67", fillcolor=3, shape=diamond, style=filled] + 275 [label="State 275\n\l 68 Rule: CaseRule •\l"] + 275 -> "275R68" [style=solid] + "275R68" [label="R68", fillcolor=3, shape=diamond, style=filled] + 276 [label="State 276\n\l 69 Rule: LetRule •\l"] + 276 -> "276R69" [style=solid] + "276R69" [label="R69", fillcolor=3, shape=diamond, style=filled] + 277 [label="State 277\n\l 70 Rule: LocalRule •\l"] + 277 -> "277R70" [style=solid] + "277R70" [label="R70", fillcolor=3, shape=diamond, style=filled] + 278 [label="State 278\n\l 71 Rule: ForallRule •\l"] + 278 -> "278R71" [style=solid] + "278R71" [label="R71", fillcolor=3, shape=diamond, style=filled] + 279 [label="State 279\n\l 72 Rule: ChooseRule •\l"] + 279 -> "279R72" [style=solid] + "279R72" [label="R72", fillcolor=3, shape=diamond, style=filled] + 280 [label="State 280\n\l 73 Rule: IterateRule •\l"] + 280 -> "280R73" [style=solid] + "280R73" [label="R73", fillcolor=3, shape=diamond, style=filled] + 281 [label="State 281\n\l 74 Rule: BlockRule •\l"] + 281 -> "281R74" [style=solid] + "281R74" [label="R74", fillcolor=3, shape=diamond, style=filled] + 282 [label="State 282\n\l 75 Rule: SequenceRule •\l"] + 282 -> "282R75" [style=solid] + "282R75" [label="R75", fillcolor=3, shape=diamond, style=filled] + 283 [label="State 283\n\l 76 Rule: UpdateRule •\l"] + 283 -> "283R76" [style=solid] + "283R76" [label="R76", fillcolor=3, shape=diamond, style=filled] + 284 [label="State 284\n\l 77 Rule: CallRule •\l"] + 284 -> "284R77" [style=solid] + "284R77" [label="R77", fillcolor=3, shape=diamond, style=filled] + 285 [label="State 285\n\l 78 Rule: WhileRule •\l"] + 285 -> "285R78" [style=solid] + "285R78" [label="R78", fillcolor=3, shape=diamond, style=filled] + 286 [label="State 286\n\l149 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l150 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l151 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l152 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l153 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] 286 -> 166 [style=solid label="\".\""] - 287 [label="State 287\n\l102 CallRule: CallExpression •\l117 SimpleOrClaspedTerm: CallExpression •\l152 IndirectCallExpression: CallExpression • \"(\" \")\"\l153 | CallExpression • \"(\" Terms \")\"\l154 | CallExpression • \"(\" error \")\"\l"] + 287 [label="State 287\n\l104 CallRule: CallExpression •\l119 SimpleOrClaspedTerm: CallExpression •\l154 IndirectCallExpression: CallExpression • \"(\" \")\"\l155 | CallExpression • \"(\" Terms \")\"\l156 | CallExpression • \"(\" error \")\"\l"] 287 -> 167 [style=solid label="\"(\""] - 287 -> "287R102" [style=solid] - "287R102" [label="R102", fillcolor=3, shape=diamond, style=filled] - 287 -> "287R117" [label="[\".\"]", style=solid] - "287R117" [label="R117", fillcolor=3, shape=diamond, style=filled] - 288 [label="State 288\n\l101 UpdateRule: DirectCallExpression • \":=\" Term\l140 CallExpression: DirectCallExpression •\l"] + 287 -> "287R104" [style=solid] + "287R104" [label="R104", fillcolor=3, shape=diamond, style=filled] + 287 -> "287R119" [label="[\".\"]", style=solid] + "287R119" [label="R119", fillcolor=3, shape=diamond, style=filled] + 288 [label="State 288\n\l103 UpdateRule: DirectCallExpression • \":=\" Term\l142 CallExpression: DirectCallExpression •\l"] 288 -> 364 [style=solid label="\":=\""] - 288 -> "288R140" [style=solid] - "288R140" [label="R140", fillcolor=3, shape=diamond, style=filled] + 288 -> "288R142" [style=solid] + "288R142" [label="R142", fillcolor=3, shape=diamond, style=filled] 289 [label="State 289\n\l 31 RuleDefinition: \"rule\" Identifier \"(\" error • \")\" \"=\" Rule\l 32 | \"rule\" Identifier \"(\" error • \")\" \"->\" Type \"=\" Rule\l"] 289 -> 365 [style=solid label="\")\""] - 290 [label="State 290\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters • \")\" \"=\" Rule\l 30 | \"rule\" Identifier \"(\" Parameters • \")\" \"->\" Type \"=\" Rule\l211 Parameters: Parameters • \",\" TypedAttributedVariable\l"] + 290 [label="State 290\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters • \")\" \"=\" Rule\l 30 | \"rule\" Identifier \"(\" Parameters • \")\" \"->\" Type \"=\" Rule\l213 Parameters: Parameters • \",\" TypedAttributedVariable\l"] 290 -> 366 [style=solid label="\")\""] 290 -> 334 [style=solid label="\",\""] 291 [label="State 291\n\l 28 RuleDefinition: \"rule\" Identifier \"->\" Type • \"=\" Rule\l"] 291 -> 367 [style=solid label="\"=\""] - 292 [label="State 292\n\l 41 UsingDefinition: \"using\" Identifier \"=\" Type •\l"] - 292 -> "292R41" [style=solid] - "292R41" [label="R41", fillcolor=3, shape=diamond, style=filled] - 293 [label="State 293\n\l 43 UsingPathDefinition: \"using\" IdentifierPath \"::\" \"*\" •\l"] - 293 -> "293R43" [style=solid] - "293R43" [label="R43", fillcolor=3, shape=diamond, style=filled] - 294 [label="State 294\n\l 44 InvariantDefinition: \"invariant\" Identifier \"=\" Term •\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 292 [label="State 292\n\l 39 UsingDefinition: \"using\" Identifier \"=\" Type •\l"] + 292 -> "292R39" [style=solid] + "292R39" [label="R39", fillcolor=3, shape=diamond, style=filled] + 293 [label="State 293\n\l 41 UsingPathDefinition: \"using\" IdentifierPath \"::\" \"*\" •\l"] + 293 -> "293R41" [style=solid] + "293R41" [label="R41", fillcolor=3, shape=diamond, style=filled] + 294 [label="State 294\n\l 42 InvariantDefinition: \"invariant\" Identifier \"=\" Term •\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 294 -> 148 [style=solid label="\"and\""] 294 -> 149 [style=solid label="\"or\""] 294 -> 150 [style=solid label="\"xor\""] @@ -4192,28 +4192,30 @@ digraph "../../obj/src/GrammarParser.y" 294 -> 162 [style=solid label="\"!=\""] 294 -> 163 [style=solid label="\"<=\""] 294 -> 164 [style=solid label="\">=\""] - 294 -> "294R44" [style=solid] - "294R44" [label="R44", fillcolor=3, shape=diamond, style=filled] - 295 [label="State 295\n\l 46 ImportDefinition: \"import\" IdentifierPath \"as\" Identifier •\l"] - 295 -> "295R46" [style=solid] - "295R46" [label="R46", fillcolor=3, shape=diamond, style=filled] - 296 [label="State 296\n\l 47 StructureDefinition: \"structure\" Identifier \"=\" \"{\" • FunctionDefinitions \"}\"\l"] + 294 -> "294R42" [style=solid] + "294R42" [label="R42", fillcolor=3, shape=diamond, style=filled] + 295 [label="State 295\n\l 44 ImportDefinition: \"import\" IdentifierPath \"as\" Identifier •\l"] + 295 -> "295R44" [style=solid] + "295R44" [label="R44", fillcolor=3, shape=diamond, style=filled] + 296 [label="State 296\n\l 45 StructureDefinition: \"structure\" Identifier \"=\" \"{\" • StructureDefinitionList \"}\"\l"] 296 -> 25 [style=solid label="\"function\""] - 296 -> 368 [style=dashed label="FunctionDefinitions"] + 296 -> 368 [style=solid label="\"[\""] 296 -> 369 [style=dashed label="FunctionDefinition"] - 297 [label="State 297\n\l 48 FeatureDefinition: \"feature\" Identifier \"=\" \"{\" • FeatureDeclarationsAndDefinitions \"}\"\l"] - 297 -> 370 [style=solid label="\"derived\""] - 297 -> 371 [style=solid label="\"rule\""] - 297 -> 372 [style=dashed label="DerivedDefinition"] - 297 -> 373 [style=dashed label="RuleDefinition"] - 297 -> 374 [style=dashed label="FeatureDeclarationOrDefinition"] - 297 -> 375 [style=dashed label="FeatureDeclarationsAndDefinitions"] - 297 -> 376 [style=dashed label="DeclarationDefinition"] - 298 [label="State 298\n\l193 Types: Types \",\" • Type\l202 TupleType: \"(\" Types \",\" • Type \")\"\l"] + 296 -> 370 [style=dashed label="StructureDefinitionElement"] + 296 -> 371 [style=dashed label="StructureDefinitionList"] + 297 [label="State 297\n\l 50 FeatureDefinition: \"feature\" Identifier \"=\" \"{\" • FeatureDeclarationsAndDefinitions \"}\"\l"] + 297 -> 372 [style=solid label="\"derived\""] + 297 -> 373 [style=solid label="\"rule\""] + 297 -> 374 [style=dashed label="DerivedDefinition"] + 297 -> 375 [style=dashed label="RuleDefinition"] + 297 -> 376 [style=dashed label="FeatureDeclarationOrDefinition"] + 297 -> 377 [style=dashed label="FeatureDeclarationsAndDefinitions"] + 297 -> 378 [style=dashed label="DeclarationDefinition"] + 298 [label="State 298\n\l195 Types: Types \",\" • Type\l204 TupleType: \"(\" Types \",\" • Type \")\"\l"] 298 -> 8 [style=solid label="\"in\""] 298 -> 109 [style=solid label="\"(\""] 298 -> 9 [style=solid label="\"identifier\""] - 298 -> 377 [style=dashed label="Type"] + 298 -> 379 [style=dashed label="Type"] 298 -> 111 [style=dashed label="BasicType"] 298 -> 112 [style=dashed label="TupleType"] 298 -> 113 [style=dashed label="RecordType"] @@ -4222,46 +4224,46 @@ digraph "../../obj/src/GrammarParser.y" 298 -> 116 [style=dashed label="FixedSizedType"] 298 -> 94 [style=dashed label="Identifier"] 298 -> 190 [style=dashed label="IdentifierPath"] - 299 [label="State 299\n\l203 RecordType: \"(\" TypedVariables \",\" • TypedVariable \")\"\l230 TypedVariables: TypedVariables \",\" • TypedVariable\l"] + 299 [label="State 299\n\l205 RecordType: \"(\" TypedVariables \",\" • TypedVariable \")\"\l232 TypedVariables: TypedVariables \",\" • TypedVariable\l"] 299 -> 8 [style=solid label="\"in\""] 299 -> 9 [style=solid label="\"identifier\""] 299 -> 253 [style=dashed label="Identifier"] - 299 -> 378 [style=dashed label="TypedVariable"] - 300 [label="State 300\n\l 55 ImplementationDefinition: \"implements\" Type \"=\" \"{\" • ImplementationDefinitionDefinitions \"}\"\l"] + 299 -> 380 [style=dashed label="TypedVariable"] + 300 [label="State 300\n\l 57 ImplementationDefinition: \"implements\" Type \"=\" \"{\" • ImplementationDefinitionDefinitions \"}\"\l"] 300 -> 16 [style=solid label="\"derived\""] 300 -> 18 [style=solid label="\"rule\""] - 300 -> 379 [style=dashed label="DerivedDefinition"] - 300 -> 380 [style=dashed label="RuleDefinition"] - 300 -> 381 [style=dashed label="ImplementationDefinitionDefinition"] - 300 -> 382 [style=dashed label="ImplementationDefinitionDefinitions"] - 301 [label="State 301\n\l 54 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type • \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] - 301 -> 383 [style=solid label="\"=\""] - 302 [label="State 302\n\l193 Types: Types • \",\" Type\l204 TemplateType: IdentifierPath \"<\" Types • \">\"\l"] - 302 -> 384 [style=solid label="\",\""] - 302 -> 385 [style=solid label="\">\""] - 303 [label="State 303\n\l194 Types: Type •\l208 FunctionParameters: Type •\l"] - 303 -> "303R194" [style=solid] - "303R194" [label="R194", fillcolor=3, shape=diamond, style=filled] - 303 -> "303R208" [label="[\"*\", \"->\"]", style=solid] - "303R208" [label="R208", fillcolor=3, shape=diamond, style=filled] - 304 [label="State 304\n\l207 FunctionParameters: FunctionParameters • \"*\" Type\l209 MaybeFunctionParameters: FunctionParameters •\l"] - 304 -> 386 [style=solid label="\"*\""] - 304 -> "304R209" [style=solid] - "304R209" [label="R209", fillcolor=3, shape=diamond, style=filled] - 305 [label="State 305\n\l205 RelationType: IdentifierPath \"<\" MaybeFunctionParameters • \"->\" Type \">\"\l"] - 305 -> 387 [style=solid label="\"->\""] - 306 [label="State 306\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l206 FixedSizedType: IdentifierPath \"'\" Term •\l"] - 306 -> "306R206" [style=solid] - "306R206" [label="R206", fillcolor=3, shape=diamond, style=filled] - 307 [label="State 307\n\l208 FunctionParameters: Type •\l"] - 307 -> "307R208" [style=solid] - "307R208" [label="R208", fillcolor=3, shape=diamond, style=filled] - 308 [label="State 308\n\l 35 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters • \"->\" Type MaybeDefined MaybeInitially\l"] - 308 -> 388 [style=solid label="\"->\""] - 309 [label="State 309\n\l232 TypedVariable: Identifier \":\" Type •\l"] - 309 -> "309R232" [style=solid] - "309R232" [label="R232", fillcolor=3, shape=diamond, style=filled] - 310 [label="State 310\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l239 VariableBinding: AttributedVariable \"=\" Term •\l"] + 300 -> 381 [style=dashed label="DerivedDefinition"] + 300 -> 382 [style=dashed label="RuleDefinition"] + 300 -> 383 [style=dashed label="ImplementationDefinitionDefinition"] + 300 -> 384 [style=dashed label="ImplementationDefinitionDefinitions"] + 301 [label="State 301\n\l 56 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type • \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 301 -> 385 [style=solid label="\"=\""] + 302 [label="State 302\n\l195 Types: Types • \",\" Type\l206 TemplateType: IdentifierPath \"<\" Types • \">\"\l"] + 302 -> 386 [style=solid label="\",\""] + 302 -> 387 [style=solid label="\">\""] + 303 [label="State 303\n\l196 Types: Type •\l210 FunctionParameters: Type •\l"] + 303 -> "303R196" [style=solid] + "303R196" [label="R196", fillcolor=3, shape=diamond, style=filled] + 303 -> "303R210" [label="[\"*\", \"->\"]", style=solid] + "303R210" [label="R210", fillcolor=3, shape=diamond, style=filled] + 304 [label="State 304\n\l209 FunctionParameters: FunctionParameters • \"*\" Type\l211 MaybeFunctionParameters: FunctionParameters •\l"] + 304 -> 388 [style=solid label="\"*\""] + 304 -> "304R211" [style=solid] + "304R211" [label="R211", fillcolor=3, shape=diamond, style=filled] + 305 [label="State 305\n\l207 RelationType: IdentifierPath \"<\" MaybeFunctionParameters • \"->\" Type \">\"\l"] + 305 -> 389 [style=solid label="\"->\""] + 306 [label="State 306\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l208 FixedSizedType: IdentifierPath \"'\" Term •\l"] + 306 -> "306R208" [style=solid] + "306R208" [label="R208", fillcolor=3, shape=diamond, style=filled] + 307 [label="State 307\n\l210 FunctionParameters: Type •\l"] + 307 -> "307R210" [style=solid] + "307R210" [label="R210", fillcolor=3, shape=diamond, style=filled] + 308 [label="State 308\n\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters • \"->\" Type MaybeDefined MaybeInitially\l"] + 308 -> 390 [style=solid label="\"->\""] + 309 [label="State 309\n\l234 TypedVariable: Identifier \":\" Type •\l"] + 309 -> "309R234" [style=solid] + "309R234" [label="R234", fillcolor=3, shape=diamond, style=filled] + 310 [label="State 310\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l241 VariableBinding: AttributedVariable \"=\" Term •\l"] 310 -> 148 [style=solid label="\"and\""] 310 -> 149 [style=solid label="\"or\""] 310 -> 150 [style=solid label="\"xor\""] @@ -4279,9 +4281,9 @@ digraph "../../obj/src/GrammarParser.y" 310 -> 162 [style=solid label="\"!=\""] 310 -> 163 [style=solid label="\"<=\""] 310 -> 164 [style=solid label="\">=\""] - 310 -> "310R239" [style=solid] - "310R239" [label="R239", fillcolor=3, shape=diamond, style=filled] - 311 [label="State 311\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l156 LetExpression: \"let\" VariableBindings \"in\" Term •\l"] + 310 -> "310R241" [style=solid] + "310R241" [label="R241", fillcolor=3, shape=diamond, style=filled] + 311 [label="State 311\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l158 LetExpression: \"let\" VariableBindings \"in\" Term •\l"] 311 -> 148 [style=solid label="\"and\""] 311 -> 149 [style=solid label="\"or\""] 311 -> 150 [style=solid label="\"xor\""] @@ -4299,13 +4301,13 @@ digraph "../../obj/src/GrammarParser.y" 311 -> 162 [style=solid label="\"!=\""] 311 -> 163 [style=solid label="\"<=\""] 311 -> 164 [style=solid label="\">=\""] - 311 -> "311R156" [style=solid] - "311R156" [label="R156", fillcolor=3, shape=diamond, style=filled] - 312 [label="State 312\n\l237 VariableBindings: VariableBindings \",\" VariableBinding •\l"] - 312 -> "312R237" [style=solid] - "312R237" [label="R237", fillcolor=3, shape=diamond, style=filled] - 313 [label="State 313\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l159 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term • \"holds\" Term\l"] - 313 -> 389 [style=solid label="\"holds\""] + 311 -> "311R158" [style=solid] + "311R158" [label="R158", fillcolor=3, shape=diamond, style=filled] + 312 [label="State 312\n\l239 VariableBindings: VariableBindings \",\" VariableBinding •\l"] + 312 -> "312R239" [style=solid] + "312R239" [label="R239", fillcolor=3, shape=diamond, style=filled] + 313 [label="State 313\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l161 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term • \"holds\" Term\l"] + 313 -> 391 [style=solid label="\"holds\""] 313 -> 148 [style=solid label="\"and\""] 313 -> 149 [style=solid label="\"or\""] 313 -> 150 [style=solid label="\"xor\""] @@ -4323,11 +4325,11 @@ digraph "../../obj/src/GrammarParser.y" 313 -> 162 [style=solid label="\"!=\""] 313 -> 163 [style=solid label="\"<=\""] 313 -> 164 [style=solid label="\">=\""] - 314 [label="State 314\n\l228 AttributedVariables: AttributedVariables \",\" AttributedVariable •\l"] - 314 -> "314R228" [style=solid] - "314R228" [label="R228", fillcolor=3, shape=diamond, style=filled] - 315 [label="State 315\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l158 ChooseExpression: \"choose\" AttributedVariables \"in\" Term • \"do\" Term\l"] - 315 -> 390 [style=solid label="\"do\""] + 314 [label="State 314\n\l230 AttributedVariables: AttributedVariables \",\" AttributedVariable •\l"] + 314 -> "314R230" [style=solid] + "314R230" [label="R230", fillcolor=3, shape=diamond, style=filled] + 315 [label="State 315\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l160 ChooseExpression: \"choose\" AttributedVariables \"in\" Term • \"do\" Term\l"] + 315 -> 392 [style=solid label="\"do\""] 315 -> 148 [style=solid label="\"and\""] 315 -> 149 [style=solid label="\"or\""] 315 -> 150 [style=solid label="\"xor\""] @@ -4345,8 +4347,8 @@ digraph "../../obj/src/GrammarParser.y" 315 -> 162 [style=solid label="\"!=\""] 315 -> 163 [style=solid label="\"<=\""] 315 -> 164 [style=solid label="\">=\""] - 316 [label="State 316\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l157 ConditionalExpression: \"if\" Term \"then\" Term • \"else\" Term\l"] - 316 -> 391 [style=solid label="\"else\""] + 316 [label="State 316\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l159 ConditionalExpression: \"if\" Term \"then\" Term • \"else\" Term\l"] + 316 -> 393 [style=solid label="\"else\""] 316 -> 148 [style=solid label="\"and\""] 316 -> 149 [style=solid label="\"or\""] 316 -> 150 [style=solid label="\"xor\""] @@ -4364,8 +4366,8 @@ digraph "../../obj/src/GrammarParser.y" 316 -> 162 [style=solid label="\"!=\""] 316 -> 163 [style=solid label="\"<=\""] 316 -> 164 [style=solid label="\">=\""] - 317 [label="State 317\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l160 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term • \"with\" Term\l"] - 317 -> 392 [style=solid label="\"with\""] + 317 [label="State 317\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l162 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term • \"with\" Term\l"] + 317 -> 394 [style=solid label="\"with\""] 317 -> 148 [style=solid label="\"and\""] 317 -> 149 [style=solid label="\"or\""] 317 -> 150 [style=solid label="\"xor\""] @@ -4383,7 +4385,7 @@ digraph "../../obj/src/GrammarParser.y" 317 -> 162 [style=solid label="\"!=\""] 317 -> 163 [style=solid label="\"<=\""] 317 -> 164 [style=solid label="\">=\""] - 318 [label="State 318\n\l104 Terms: Terms \",\" Term •\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l188 TupleLiteral: \"(\" Terms \",\" Term • \")\"\l"] + 318 [label="State 318\n\l106 Terms: Terms \",\" Term •\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l190 TupleLiteral: \"(\" Terms \",\" Term • \")\"\l"] 318 -> 148 [style=solid label="\"and\""] 318 -> 149 [style=solid label="\"or\""] 318 -> 150 [style=solid label="\"xor\""] @@ -4391,7 +4393,7 @@ digraph "../../obj/src/GrammarParser.y" 318 -> 152 [style=solid label="\"+\""] 318 -> 153 [style=solid label="\"-\""] 318 -> 154 [style=solid label="\"=\""] - 318 -> 393 [style=solid label="\")\""] + 318 -> 395 [style=solid label="\")\""] 318 -> 155 [style=solid label="\"<\""] 318 -> 156 [style=solid label="\">\""] 318 -> 157 [style=solid label="\"*\""] @@ -4402,14 +4404,14 @@ digraph "../../obj/src/GrammarParser.y" 318 -> 162 [style=solid label="\"!=\""] 318 -> 163 [style=solid label="\"<=\""] 318 -> 164 [style=solid label="\">=\""] - 318 -> "318R104" [style=solid] - "318R104" [label="R104", fillcolor=3, shape=diamond, style=filled] - 319 [label="State 319\n\l190 Assignments: Assignments \",\" Assignment •\l"] - 319 -> "319R190" [style=solid] - "319R190" [label="R190", fillcolor=3, shape=diamond, style=filled] - 320 [label="State 320\n\l192 Assignment: Identifier • \":\" Term\l"] + 318 -> "318R106" [style=solid] + "318R106" [label="R106", fillcolor=3, shape=diamond, style=filled] + 319 [label="State 319\n\l192 Assignments: Assignments \",\" Assignment •\l"] + 319 -> "319R192" [style=solid] + "319R192" [label="R192", fillcolor=3, shape=diamond, style=filled] + 320 [label="State 320\n\l194 Assignment: Identifier • \":\" Term\l"] 320 -> 213 [style=solid label="\":\""] - 321 [label="State 321\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l192 Assignment: Identifier \":\" Term •\l"] + 321 [label="State 321\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l194 Assignment: Identifier \":\" Term •\l"] 321 -> 148 [style=solid label="\"and\""] 321 -> 149 [style=solid label="\"or\""] 321 -> 150 [style=solid label="\"xor\""] @@ -4427,9 +4429,9 @@ digraph "../../obj/src/GrammarParser.y" 321 -> 162 [style=solid label="\"!=\""] 321 -> 163 [style=solid label="\"<=\""] 321 -> 164 [style=solid label="\">=\""] - 321 -> "321R192" [style=solid] - "321R192" [label="R192", fillcolor=3, shape=diamond, style=filled] - 322 [label="State 322\n\l104 Terms: Terms \",\" Term •\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] + 321 -> "321R194" [style=solid] + "321R194" [label="R194", fillcolor=3, shape=diamond, style=filled] + 322 [label="State 322\n\l106 Terms: Terms \",\" Term •\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] 322 -> 148 [style=solid label="\"and\""] 322 -> 149 [style=solid label="\"or\""] 322 -> 150 [style=solid label="\"xor\""] @@ -4447,9 +4449,9 @@ digraph "../../obj/src/GrammarParser.y" 322 -> 162 [style=solid label="\"!=\""] 322 -> 163 [style=solid label="\"<=\""] 322 -> 164 [style=solid label="\">=\""] - 322 -> "322R104" [style=solid] - "322R104" [label="R104", fillcolor=3, shape=diamond, style=filled] - 323 [label="State 323\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l187 RangeLiteral: \"[\" Term \"..\" Term • \"]\"\l"] + 322 -> "322R106" [style=solid] + "322R106" [label="R106", fillcolor=3, shape=diamond, style=filled] + 323 [label="State 323\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l189 RangeLiteral: \"[\" Term \"..\" Term • \"]\"\l"] 323 -> 148 [style=solid label="\"and\""] 323 -> 149 [style=solid label="\"or\""] 323 -> 150 [style=solid label="\"xor\""] @@ -4457,7 +4459,7 @@ digraph "../../obj/src/GrammarParser.y" 323 -> 152 [style=solid label="\"+\""] 323 -> 153 [style=solid label="\"-\""] 323 -> 154 [style=solid label="\"=\""] - 323 -> 394 [style=solid label="\"]\""] + 323 -> 396 [style=solid label="\"]\""] 323 -> 155 [style=solid label="\"<\""] 323 -> 156 [style=solid label="\">\""] 323 -> 157 [style=solid label="\"*\""] @@ -4468,8 +4470,8 @@ digraph "../../obj/src/GrammarParser.y" 323 -> 162 [style=solid label="\"!=\""] 323 -> 163 [style=solid label="\"<=\""] 323 -> 164 [style=solid label="\">=\""] - 324 [label="State 324\n\l148 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" • \")\"\l149 | SimpleOrClaspedTerm \".\" Identifier \"(\" • Terms \")\"\l150 | SimpleOrClaspedTerm \".\" Identifier \"(\" • error \")\"\l"] - 324 -> 395 [style=dotted] + 324 [label="State 324\n\l150 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" • \")\"\l151 | SimpleOrClaspedTerm \".\" Identifier \"(\" • Terms \")\"\l152 | SimpleOrClaspedTerm \".\" Identifier \"(\" • error \")\"\l"] + 324 -> 397 [style=dotted] 324 -> 45 [style=solid label="\"let\""] 324 -> 8 [style=solid label="\"in\""] 324 -> 46 [style=solid label="\"forall\""] @@ -4483,7 +4485,7 @@ digraph "../../obj/src/GrammarParser.y" 324 -> 54 [style=solid label="\"+\""] 324 -> 55 [style=solid label="\"-\""] 324 -> 56 [style=solid label="\"(\""] - 324 -> 396 [style=solid label="\")\""] + 324 -> 398 [style=solid label="\")\""] 324 -> 57 [style=solid label="\"[\""] 324 -> 58 [style=solid label="\"|\""] 324 -> 59 [style=solid label="\"@\""] @@ -4494,7 +4496,7 @@ digraph "../../obj/src/GrammarParser.y" 324 -> 64 [style=solid label="\"decimal\""] 324 -> 65 [style=solid label="\"string\""] 324 -> 9 [style=solid label="\"identifier\""] - 324 -> 397 [style=dashed label="Terms"] + 324 -> 399 [style=dashed label="Terms"] 324 -> 242 [style=dashed label="Term"] 324 -> 67 [style=dashed label="SimpleOrClaspedTerm"] 324 -> 68 [style=dashed label="OperatorExpression"] @@ -4525,23 +4527,23 @@ digraph "../../obj/src/GrammarParser.y" 324 -> 93 [style=dashed label="RecordLiteral"] 324 -> 94 [style=dashed label="Identifier"] 324 -> 95 [style=dashed label="IdentifierPath"] - 325 [label="State 325\n\l154 IndirectCallExpression: CallExpression \"(\" error \")\" •\l"] - 325 -> "325R154" [style=solid] - "325R154" [label="R154", fillcolor=3, shape=diamond, style=filled] - 326 [label="State 326\n\l153 IndirectCallExpression: CallExpression \"(\" Terms \")\" •\l"] - 326 -> "326R153" [style=solid] - "326R153" [label="R153", fillcolor=3, shape=diamond, style=filled] - 327 [label="State 327\n\l146 DirectCallExpression: IdentifierPath \"(\" error \")\" •\l"] - 327 -> "327R146" [style=solid] - "327R146" [label="R146", fillcolor=3, shape=diamond, style=filled] - 328 [label="State 328\n\l145 DirectCallExpression: IdentifierPath \"(\" Terms \")\" •\l"] - 328 -> "328R145" [style=solid] - "328R145" [label="R145", fillcolor=3, shape=diamond, style=filled] - 329 [label="State 329\n\l115 SimpleOrClaspedTerm: \"(\" Term \")\" •\l220 Initializer: \"(\" Term \")\" • \"->\" Term\l"] - 329 -> 398 [style=solid label="\"->\""] - 329 -> "329R115" [style=solid] - "329R115" [label="R115", fillcolor=3, shape=diamond, style=filled] - 330 [label="State 330\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l221 Initializer: TupleLiteral \"->\" Term •\l"] + 325 [label="State 325\n\l156 IndirectCallExpression: CallExpression \"(\" error \")\" •\l"] + 325 -> "325R156" [style=solid] + "325R156" [label="R156", fillcolor=3, shape=diamond, style=filled] + 326 [label="State 326\n\l155 IndirectCallExpression: CallExpression \"(\" Terms \")\" •\l"] + 326 -> "326R155" [style=solid] + "326R155" [label="R155", fillcolor=3, shape=diamond, style=filled] + 327 [label="State 327\n\l148 DirectCallExpression: IdentifierPath \"(\" error \")\" •\l"] + 327 -> "327R148" [style=solid] + "327R148" [label="R148", fillcolor=3, shape=diamond, style=filled] + 328 [label="State 328\n\l147 DirectCallExpression: IdentifierPath \"(\" Terms \")\" •\l"] + 328 -> "328R147" [style=solid] + "328R147" [label="R147", fillcolor=3, shape=diamond, style=filled] + 329 [label="State 329\n\l117 SimpleOrClaspedTerm: \"(\" Term \")\" •\l222 Initializer: \"(\" Term \")\" • \"->\" Term\l"] + 329 -> 400 [style=solid label="\"->\""] + 329 -> "329R117" [style=solid] + "329R117" [label="R117", fillcolor=3, shape=diamond, style=filled] + 330 [label="State 330\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l223 Initializer: TupleLiteral \"->\" Term •\l"] 330 -> 148 [style=solid label="\"and\""] 330 -> 149 [style=solid label="\"or\""] 330 -> 150 [style=solid label="\"xor\""] @@ -4559,27 +4561,27 @@ digraph "../../obj/src/GrammarParser.y" 330 -> 162 [style=solid label="\"!=\""] 330 -> 163 [style=solid label="\"<=\""] 330 -> 164 [style=solid label="\">=\""] - 330 -> "330R221" [style=solid] - "330R221" [label="R221", fillcolor=3, shape=diamond, style=filled] - 331 [label="State 331\n\l217 Initializers: Initializers \",\" Initializer •\l"] - 331 -> "331R217" [style=solid] - "331R217" [label="R217", fillcolor=3, shape=diamond, style=filled] + 330 -> "330R223" [style=solid] + "330R223" [label="R223", fillcolor=3, shape=diamond, style=filled] + 331 [label="State 331\n\l219 Initializers: Initializers \",\" Initializer •\l"] + 331 -> "331R219" [style=solid] + "331R219" [label="R219", fillcolor=3, shape=diamond, style=filled] 332 [label="State 332\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" • \"->\" Type \"=\" Term\l"] - 332 -> 399 [style=solid label="\"->\""] + 332 -> 401 [style=solid label="\"->\""] 333 [label="State 333\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" • \"->\" Type \"=\" Term\l"] - 333 -> 400 [style=solid label="\"->\""] - 334 [label="State 334\n\l211 Parameters: Parameters \",\" • TypedAttributedVariable\l"] + 333 -> 402 [style=solid label="\"->\""] + 334 [label="State 334\n\l213 Parameters: Parameters \",\" • TypedAttributedVariable\l"] 334 -> 8 [style=solid label="\"in\""] 334 -> 2 [style=solid label="\"[\""] 334 -> 9 [style=solid label="\"identifier\""] 334 -> 253 [style=dashed label="Identifier"] 334 -> 254 [style=dashed label="TypedVariable"] - 334 -> 401 [style=dashed label="TypedAttributedVariable"] + 334 -> 403 [style=dashed label="TypedAttributedVariable"] 334 -> 256 [style=dashed label="Attributes"] 334 -> 6 [style=dashed label="Attribute"] - 335 [label="State 335\n\l235 TypedAttributedVariable: Attributes TypedVariable •\l"] - 335 -> "335R235" [style=solid] - "335R235" [label="R235", fillcolor=3, shape=diamond, style=filled] + 335 [label="State 335\n\l237 TypedAttributedVariable: Attributes TypedVariable •\l"] + 335 -> "335R237" [style=solid] + "335R237" [label="R237", fillcolor=3, shape=diamond, style=filled] 336 [label="State 336\n\l 24 DerivedDefinition: \"derived\" Identifier \"->\" Type \"=\" • Term\l"] 336 -> 45 [style=solid label="\"let\""] 336 -> 8 [style=solid label="\"in\""] @@ -4604,7 +4606,7 @@ digraph "../../obj/src/GrammarParser.y" 336 -> 64 [style=solid label="\"decimal\""] 336 -> 65 [style=solid label="\"string\""] 336 -> 9 [style=solid label="\"identifier\""] - 336 -> 402 [style=dashed label="Term"] + 336 -> 404 [style=dashed label="Term"] 336 -> 67 [style=dashed label="SimpleOrClaspedTerm"] 336 -> 68 [style=dashed label="OperatorExpression"] 336 -> 69 [style=dashed label="CallExpression"] @@ -4634,29 +4636,29 @@ digraph "../../obj/src/GrammarParser.y" 336 -> 93 [style=dashed label="RecordLiteral"] 336 -> 94 [style=dashed label="Identifier"] 336 -> 95 [style=dashed label="IdentifierPath"] - 337 [label="State 337\n\l 38 EnumeratorDefinition: error •\l"] - 337 -> "337R38" [style=solid] - "337R38" [label="R38", fillcolor=3, shape=diamond, style=filled] - 338 [label="State 338\n\l 40 Enumerators: EnumeratorDefinition •\l"] - 338 -> "338R40" [style=solid] - "338R40" [label="R40", fillcolor=3, shape=diamond, style=filled] - 339 [label="State 339\n\l 23 EnumerationDefinition: \"enumeration\" Identifier \"=\" \"{\" Enumerators • \"}\"\l 39 Enumerators: Enumerators • \",\" EnumeratorDefinition\l"] - 339 -> 403 [style=solid label="\"}\""] - 339 -> 404 [style=solid label="\",\""] - 340 [label="State 340\n\l 36 EnumeratorDefinition: Identifier •\l"] - 340 -> "340R36" [style=solid] - "340R36" [label="R36", fillcolor=3, shape=diamond, style=filled] - 341 [label="State 341\n\l 37 EnumeratorDefinition: Attributes • Identifier\l246 Attributes: Attributes • Attribute\l"] + 337 [label="State 337\n\l 36 EnumeratorDefinition: error •\l"] + 337 -> "337R36" [style=solid] + "337R36" [label="R36", fillcolor=3, shape=diamond, style=filled] + 338 [label="State 338\n\l 38 Enumerators: EnumeratorDefinition •\l"] + 338 -> "338R38" [style=solid] + "338R38" [label="R38", fillcolor=3, shape=diamond, style=filled] + 339 [label="State 339\n\l 23 EnumerationDefinition: \"enumeration\" Identifier \"=\" \"{\" Enumerators • \"}\"\l 37 Enumerators: Enumerators • \",\" EnumeratorDefinition\l"] + 339 -> 405 [style=solid label="\"}\""] + 339 -> 406 [style=solid label="\",\""] + 340 [label="State 340\n\l 34 EnumeratorDefinition: Identifier •\l"] + 340 -> "340R34" [style=solid] + "340R34" [label="R34", fillcolor=3, shape=diamond, style=filled] + 341 [label="State 341\n\l 35 EnumeratorDefinition: Attributes • Identifier\l248 Attributes: Attributes • Attribute\l"] 341 -> 8 [style=solid label="\"in\""] 341 -> 2 [style=solid label="\"[\""] 341 -> 9 [style=solid label="\"identifier\""] - 341 -> 405 [style=dashed label="Identifier"] + 341 -> 407 [style=dashed label="Identifier"] 341 -> 43 [style=dashed label="Attribute"] - 342 [label="State 342\n\l100 SequenceRule: \"seq\" error • \"endseq\"\l"] - 342 -> 406 [style=solid label="\"endseq\""] - 343 [label="State 343\n\l 62 Rules: Rules • Rule\l 98 SequenceRule: \"seq\" Rules • \"endseq\"\l"] + 342 [label="State 342\n\l102 SequenceRule: \"seq\" error • \"endseq\"\l"] + 342 -> 408 [style=solid label="\"endseq\""] + 343 [label="State 343\n\l 64 Rules: Rules • Rule\l100 SequenceRule: \"seq\" Rules • \"endseq\"\l"] 343 -> 259 [style=solid label="\"seq\""] - 343 -> 407 [style=solid label="\"endseq\""] + 343 -> 409 [style=solid label="\"endseq\""] 343 -> 260 [style=solid label="\"par\""] 343 -> 261 [style=solid label="\"skip\""] 343 -> 262 [style=solid label="\"let\""] @@ -4685,7 +4687,7 @@ digraph "../../obj/src/GrammarParser.y" 343 -> 64 [style=solid label="\"decimal\""] 343 -> 65 [style=solid label="\"string\""] 343 -> 9 [style=solid label="\"identifier\""] - 343 -> 408 [style=dashed label="Rule"] + 343 -> 410 [style=dashed label="Rule"] 343 -> 273 [style=dashed label="SkipRule"] 343 -> 274 [style=dashed label="ConditionalRule"] 343 -> 275 [style=dashed label="CaseRule"] @@ -4720,15 +4722,15 @@ digraph "../../obj/src/GrammarParser.y" 343 -> 93 [style=dashed label="RecordLiteral"] 343 -> 94 [style=dashed label="Identifier"] 343 -> 95 [style=dashed label="IdentifierPath"] - 344 [label="State 344\n\l 63 Rules: Rule •\l"] - 344 -> "344R63" [style=solid] - "344R63" [label="R63", fillcolor=3, shape=diamond, style=filled] - 345 [label="State 345\n\l 96 BlockRule: \"par\" error • \"endpar\"\l"] - 345 -> 409 [style=solid label="\"endpar\""] - 346 [label="State 346\n\l 62 Rules: Rules • Rule\l 94 BlockRule: \"par\" Rules • \"endpar\"\l"] + 344 [label="State 344\n\l 65 Rules: Rule •\l"] + 344 -> "344R65" [style=solid] + "344R65" [label="R65", fillcolor=3, shape=diamond, style=filled] + 345 [label="State 345\n\l 98 BlockRule: \"par\" error • \"endpar\"\l"] + 345 -> 411 [style=solid label="\"endpar\""] + 346 [label="State 346\n\l 64 Rules: Rules • Rule\l 96 BlockRule: \"par\" Rules • \"endpar\"\l"] 346 -> 259 [style=solid label="\"seq\""] 346 -> 260 [style=solid label="\"par\""] - 346 -> 410 [style=solid label="\"endpar\""] + 346 -> 412 [style=solid label="\"endpar\""] 346 -> 261 [style=solid label="\"skip\""] 346 -> 262 [style=solid label="\"let\""] 346 -> 263 [style=solid label="\"local\""] @@ -4756,7 +4758,7 @@ digraph "../../obj/src/GrammarParser.y" 346 -> 64 [style=solid label="\"decimal\""] 346 -> 65 [style=solid label="\"string\""] 346 -> 9 [style=solid label="\"identifier\""] - 346 -> 408 [style=dashed label="Rule"] + 346 -> 410 [style=dashed label="Rule"] 346 -> 273 [style=dashed label="SkipRule"] 346 -> 274 [style=dashed label="ConditionalRule"] 346 -> 275 [style=dashed label="CaseRule"] @@ -4791,41 +4793,41 @@ digraph "../../obj/src/GrammarParser.y" 346 -> 93 [style=dashed label="RecordLiteral"] 346 -> 94 [style=dashed label="Identifier"] 346 -> 95 [style=dashed label="IdentifierPath"] - 347 [label="State 347\n\l 87 LetRule: \"let\" VariableBindings • \"in\" Rule\l237 VariableBindings: VariableBindings • \",\" VariableBinding\l"] - 347 -> 411 [style=solid label="\"in\""] + 347 [label="State 347\n\l 89 LetRule: \"let\" VariableBindings • \"in\" Rule\l239 VariableBindings: VariableBindings • \",\" VariableBinding\l"] + 347 -> 413 [style=solid label="\"in\""] 347 -> 201 [style=solid label="\",\""] - 348 [label="State 348\n\l244 AttributedLocalFunctionDefinition: error •\l"] - 348 -> "348R244" [style=solid] - "348R244" [label="R244", fillcolor=3, shape=diamond, style=filled] - 349 [label="State 349\n\l245 LocalFunctionDefinition: Identifier • \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] - 349 -> 412 [style=solid label="\":\""] - 350 [label="State 350\n\l 88 LocalRule: \"local\" LocalFunctionDefinitions • \"in\" Rule\l240 LocalFunctionDefinitions: LocalFunctionDefinitions • \",\" AttributedLocalFunctionDefinition\l"] - 350 -> 413 [style=solid label="\"in\""] - 350 -> 414 [style=solid label="\",\""] - 351 [label="State 351\n\l241 LocalFunctionDefinitions: AttributedLocalFunctionDefinition •\l"] - 351 -> "351R241" [style=solid] - "351R241" [label="R241", fillcolor=3, shape=diamond, style=filled] - 352 [label="State 352\n\l243 AttributedLocalFunctionDefinition: LocalFunctionDefinition •\l"] - 352 -> "352R243" [style=solid] - "352R243" [label="R243", fillcolor=3, shape=diamond, style=filled] - 353 [label="State 353\n\l242 AttributedLocalFunctionDefinition: Attributes • LocalFunctionDefinition\l246 Attributes: Attributes • Attribute\l"] + 348 [label="State 348\n\l246 AttributedLocalFunctionDefinition: error •\l"] + 348 -> "348R246" [style=solid] + "348R246" [label="R246", fillcolor=3, shape=diamond, style=filled] + 349 [label="State 349\n\l247 LocalFunctionDefinition: Identifier • \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] + 349 -> 414 [style=solid label="\":\""] + 350 [label="State 350\n\l 90 LocalRule: \"local\" LocalFunctionDefinitions • \"in\" Rule\l242 LocalFunctionDefinitions: LocalFunctionDefinitions • \",\" AttributedLocalFunctionDefinition\l"] + 350 -> 415 [style=solid label="\"in\""] + 350 -> 416 [style=solid label="\",\""] + 351 [label="State 351\n\l243 LocalFunctionDefinitions: AttributedLocalFunctionDefinition •\l"] + 351 -> "351R243" [style=solid] + "351R243" [label="R243", fillcolor=3, shape=diamond, style=filled] + 352 [label="State 352\n\l245 AttributedLocalFunctionDefinition: LocalFunctionDefinition •\l"] + 352 -> "352R245" [style=solid] + "352R245" [label="R245", fillcolor=3, shape=diamond, style=filled] + 353 [label="State 353\n\l244 AttributedLocalFunctionDefinition: Attributes • LocalFunctionDefinition\l248 Attributes: Attributes • Attribute\l"] 353 -> 8 [style=solid label="\"in\""] 353 -> 2 [style=solid label="\"[\""] 353 -> 9 [style=solid label="\"identifier\""] 353 -> 349 [style=dashed label="Identifier"] - 353 -> 415 [style=dashed label="LocalFunctionDefinition"] + 353 -> 417 [style=dashed label="LocalFunctionDefinition"] 353 -> 43 [style=dashed label="Attribute"] - 354 [label="State 354\n\l 89 ForallRule: \"forall\" AttributedVariables • \"in\" Term \"do\" Rule\l 90 | \"forall\" AttributedVariables • \"in\" Term \"with\" Term \"do\" Rule\l228 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] - 354 -> 416 [style=solid label="\"in\""] + 354 [label="State 354\n\l 91 ForallRule: \"forall\" AttributedVariables • \"in\" Term \"do\" Rule\l 92 | \"forall\" AttributedVariables • \"in\" Term \"with\" Term \"do\" Rule\l230 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] + 354 -> 418 [style=solid label="\"in\""] 354 -> 204 [style=solid label="\",\""] - 355 [label="State 355\n\l 91 ChooseRule: \"choose\" AttributedVariables • \"in\" Term \"do\" Rule\l228 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] - 355 -> 417 [style=solid label="\"in\""] + 355 [label="State 355\n\l 93 ChooseRule: \"choose\" AttributedVariables • \"in\" Term \"do\" Rule\l230 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] + 355 -> 419 [style=solid label="\"in\""] 355 -> 204 [style=solid label="\",\""] - 356 [label="State 356\n\l 92 IterateRule: \"iterate\" Rule •\l"] - 356 -> "356R92" [style=solid] - "356R92" [label="R92", fillcolor=3, shape=diamond, style=filled] - 357 [label="State 357\n\l 78 ConditionalRule: \"if\" Term • \"then\" Rule\l 79 | \"if\" Term • \"then\" Rule \"else\" Rule\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] - 357 -> 418 [style=solid label="\"then\""] + 356 [label="State 356\n\l 94 IterateRule: \"iterate\" Rule •\l"] + 356 -> "356R94" [style=solid] + "356R94" [label="R94", fillcolor=3, shape=diamond, style=filled] + 357 [label="State 357\n\l 80 ConditionalRule: \"if\" Term • \"then\" Rule\l 81 | \"if\" Term • \"then\" Rule \"else\" Rule\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] + 357 -> 420 [style=solid label="\"then\""] 357 -> 148 [style=solid label="\"and\""] 357 -> 149 [style=solid label="\"or\""] 357 -> 150 [style=solid label="\"xor\""] @@ -4843,8 +4845,8 @@ digraph "../../obj/src/GrammarParser.y" 357 -> 162 [style=solid label="\"!=\""] 357 -> 163 [style=solid label="\"<=\""] 357 -> 164 [style=solid label="\">=\""] - 358 [label="State 358\n\l 80 CaseRule: \"case\" Term • \"of\" \"{\" CaseLabels \"}\"\l 81 | \"case\" Term • \"of\" \"{\" error \"}\"\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] - 358 -> 419 [style=solid label="\"of\""] + 358 [label="State 358\n\l 82 CaseRule: \"case\" Term • \"of\" \"{\" CaseLabels \"}\"\l 83 | \"case\" Term • \"of\" \"{\" error \"}\"\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] + 358 -> 421 [style=solid label="\"of\""] 358 -> 148 [style=solid label="\"and\""] 358 -> 149 [style=solid label="\"or\""] 358 -> 150 [style=solid label="\"xor\""] @@ -4862,8 +4864,8 @@ digraph "../../obj/src/GrammarParser.y" 358 -> 162 [style=solid label="\"!=\""] 358 -> 163 [style=solid label="\"<=\""] 358 -> 164 [style=solid label="\">=\""] - 359 [label="State 359\n\l103 WhileRule: \"while\" Term • \"do\" Rule\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] - 359 -> 420 [style=solid label="\"do\""] + 359 [label="State 359\n\l105 WhileRule: \"while\" Term • \"do\" Rule\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] + 359 -> 422 [style=solid label="\"do\""] 359 -> 148 [style=solid label="\"and\""] 359 -> 149 [style=solid label="\"or\""] 359 -> 150 [style=solid label="\"xor\""] @@ -4881,9 +4883,9 @@ digraph "../../obj/src/GrammarParser.y" 359 -> 162 [style=solid label="\"!=\""] 359 -> 163 [style=solid label="\"<=\""] 359 -> 164 [style=solid label="\">=\""] - 360 [label="State 360\n\l 95 BlockRule: \"{\" error • \"}\"\l"] - 360 -> 421 [style=solid label="\"}\""] - 361 [label="State 361\n\l 62 Rules: Rules • Rule\l 93 BlockRule: \"{\" Rules • \"}\"\l"] + 360 [label="State 360\n\l 97 BlockRule: \"{\" error • \"}\"\l"] + 360 -> 423 [style=solid label="\"}\""] + 361 [label="State 361\n\l 64 Rules: Rules • Rule\l 95 BlockRule: \"{\" Rules • \"}\"\l"] 361 -> 259 [style=solid label="\"seq\""] 361 -> 260 [style=solid label="\"par\""] 361 -> 261 [style=solid label="\"skip\""] @@ -4904,7 +4906,7 @@ digraph "../../obj/src/GrammarParser.y" 361 -> 56 [style=solid label="\"(\""] 361 -> 57 [style=solid label="\"[\""] 361 -> 270 [style=solid label="\"{\""] - 361 -> 422 [style=solid label="\"}\""] + 361 -> 424 [style=solid label="\"}\""] 361 -> 59 [style=solid label="\"@\""] 361 -> 271 [style=solid label="\"{|\""] 361 -> 60 [style=solid label="\"binary\""] @@ -4914,7 +4916,7 @@ digraph "../../obj/src/GrammarParser.y" 361 -> 64 [style=solid label="\"decimal\""] 361 -> 65 [style=solid label="\"string\""] 361 -> 9 [style=solid label="\"identifier\""] - 361 -> 408 [style=dashed label="Rule"] + 361 -> 410 [style=dashed label="Rule"] 361 -> 273 [style=dashed label="SkipRule"] 361 -> 274 [style=dashed label="ConditionalRule"] 361 -> 275 [style=dashed label="CaseRule"] @@ -4949,9 +4951,9 @@ digraph "../../obj/src/GrammarParser.y" 361 -> 93 [style=dashed label="RecordLiteral"] 361 -> 94 [style=dashed label="Identifier"] 361 -> 95 [style=dashed label="IdentifierPath"] - 362 [label="State 362\n\l 99 SequenceRule: \"{|\" error • \"|}\"\l"] - 362 -> 423 [style=solid label="\"|}\""] - 363 [label="State 363\n\l 62 Rules: Rules • Rule\l 97 SequenceRule: \"{|\" Rules • \"|}\"\l"] + 362 [label="State 362\n\l101 SequenceRule: \"{|\" error • \"|}\"\l"] + 362 -> 425 [style=solid label="\"|}\""] + 363 [label="State 363\n\l 64 Rules: Rules • Rule\l 99 SequenceRule: \"{|\" Rules • \"|}\"\l"] 363 -> 259 [style=solid label="\"seq\""] 363 -> 260 [style=solid label="\"par\""] 363 -> 261 [style=solid label="\"skip\""] @@ -4974,7 +4976,7 @@ digraph "../../obj/src/GrammarParser.y" 363 -> 270 [style=solid label="\"{\""] 363 -> 59 [style=solid label="\"@\""] 363 -> 271 [style=solid label="\"{|\""] - 363 -> 424 [style=solid label="\"|}\""] + 363 -> 426 [style=solid label="\"|}\""] 363 -> 60 [style=solid label="\"binary\""] 363 -> 61 [style=solid label="\"hexadecimal\""] 363 -> 62 [style=solid label="\"integer\""] @@ -4982,7 +4984,7 @@ digraph "../../obj/src/GrammarParser.y" 363 -> 64 [style=solid label="\"decimal\""] 363 -> 65 [style=solid label="\"string\""] 363 -> 9 [style=solid label="\"identifier\""] - 363 -> 408 [style=dashed label="Rule"] + 363 -> 410 [style=dashed label="Rule"] 363 -> 273 [style=dashed label="SkipRule"] 363 -> 274 [style=dashed label="ConditionalRule"] 363 -> 275 [style=dashed label="CaseRule"] @@ -5017,7 +5019,7 @@ digraph "../../obj/src/GrammarParser.y" 363 -> 93 [style=dashed label="RecordLiteral"] 363 -> 94 [style=dashed label="Identifier"] 363 -> 95 [style=dashed label="IdentifierPath"] - 364 [label="State 364\n\l101 UpdateRule: DirectCallExpression \":=\" • Term\l"] + 364 [label="State 364\n\l103 UpdateRule: DirectCallExpression \":=\" • Term\l"] 364 -> 45 [style=solid label="\"let\""] 364 -> 8 [style=solid label="\"in\""] 364 -> 46 [style=solid label="\"forall\""] @@ -5041,7 +5043,7 @@ digraph "../../obj/src/GrammarParser.y" 364 -> 64 [style=solid label="\"decimal\""] 364 -> 65 [style=solid label="\"string\""] 364 -> 9 [style=solid label="\"identifier\""] - 364 -> 425 [style=dashed label="Term"] + 364 -> 427 [style=dashed label="Term"] 364 -> 67 [style=dashed label="SimpleOrClaspedTerm"] 364 -> 68 [style=dashed label="OperatorExpression"] 364 -> 69 [style=dashed label="CallExpression"] @@ -5072,11 +5074,11 @@ digraph "../../obj/src/GrammarParser.y" 364 -> 94 [style=dashed label="Identifier"] 364 -> 95 [style=dashed label="IdentifierPath"] 365 [label="State 365\n\l 31 RuleDefinition: \"rule\" Identifier \"(\" error \")\" • \"=\" Rule\l 32 | \"rule\" Identifier \"(\" error \")\" • \"->\" Type \"=\" Rule\l"] - 365 -> 426 [style=solid label="\"=\""] - 365 -> 427 [style=solid label="\"->\""] + 365 -> 428 [style=solid label="\"=\""] + 365 -> 429 [style=solid label="\"->\""] 366 [label="State 366\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" • \"=\" Rule\l 30 | \"rule\" Identifier \"(\" Parameters \")\" • \"->\" Type \"=\" Rule\l"] - 366 -> 428 [style=solid label="\"=\""] - 366 -> 429 [style=solid label="\"->\""] + 366 -> 430 [style=solid label="\"=\""] + 366 -> 431 [style=solid label="\"->\""] 367 [label="State 367\n\l 28 RuleDefinition: \"rule\" Identifier \"->\" Type \"=\" • Rule\l"] 367 -> 259 [style=solid label="\"seq\""] 367 -> 260 [style=solid label="\"par\""] @@ -5107,7 +5109,7 @@ digraph "../../obj/src/GrammarParser.y" 367 -> 64 [style=solid label="\"decimal\""] 367 -> 65 [style=solid label="\"string\""] 367 -> 9 [style=solid label="\"identifier\""] - 367 -> 430 [style=dashed label="Rule"] + 367 -> 432 [style=dashed label="Rule"] 367 -> 273 [style=dashed label="SkipRule"] 367 -> 274 [style=dashed label="ConditionalRule"] 367 -> 275 [style=dashed label="CaseRule"] @@ -5142,89 +5144,82 @@ digraph "../../obj/src/GrammarParser.y" 367 -> 93 [style=dashed label="RecordLiteral"] 367 -> 94 [style=dashed label="Identifier"] 367 -> 95 [style=dashed label="IdentifierPath"] - 368 [label="State 368\n\l 33 FunctionDefinitions: FunctionDefinitions • FunctionDefinition\l 47 StructureDefinition: \"structure\" Identifier \"=\" \"{\" FunctionDefinitions • \"}\"\l"] - 368 -> 25 [style=solid label="\"function\""] - 368 -> 431 [style=solid label="\"}\""] - 368 -> 432 [style=dashed label="FunctionDefinition"] - 369 [label="State 369\n\l 34 FunctionDefinitions: FunctionDefinition •\l"] - 369 -> "369R34" [style=solid] - "369R34" [label="R34", fillcolor=3, shape=diamond, style=filled] - 370 [label="State 370\n\l 24 DerivedDefinition: \"derived\" • Identifier \"->\" Type \"=\" Term\l 25 | \"derived\" • Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Term\l 26 | \"derived\" • Identifier \"(\" error \")\" \"->\" Type \"=\" Term\l 60 DeclarationDefinition: \"derived\" • Identifier \":\" MaybeFunctionParameters \"->\" Type\l"] - 370 -> 8 [style=solid label="\"in\""] - 370 -> 9 [style=solid label="\"identifier\""] - 370 -> 433 [style=dashed label="Identifier"] - 371 [label="State 371\n\l 27 RuleDefinition: \"rule\" • Identifier \"=\" Rule\l 28 | \"rule\" • Identifier \"->\" Type \"=\" Rule\l 29 | \"rule\" • Identifier \"(\" Parameters \")\" \"=\" Rule\l 30 | \"rule\" • Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Rule\l 31 | \"rule\" • Identifier \"(\" error \")\" \"=\" Rule\l 32 | \"rule\" • Identifier \"(\" error \")\" \"->\" Type \"=\" Rule\l 61 DeclarationDefinition: \"rule\" • Identifier \":\" MaybeFunctionParameters \"->\" Type\l"] - 371 -> 8 [style=solid label="\"in\""] - 371 -> 9 [style=solid label="\"identifier\""] - 371 -> 434 [style=dashed label="Identifier"] - 372 [label="State 372\n\l 50 FeatureDeclarationOrDefinition: DerivedDefinition •\l"] - 372 -> "372R50" [style=solid] - "372R50" [label="R50", fillcolor=3, shape=diamond, style=filled] - 373 [label="State 373\n\l 51 FeatureDeclarationOrDefinition: RuleDefinition •\l"] - 373 -> "373R51" [style=solid] - "373R51" [label="R51", fillcolor=3, shape=diamond, style=filled] - 374 [label="State 374\n\l 53 FeatureDeclarationsAndDefinitions: FeatureDeclarationOrDefinition •\l"] - 374 -> "374R53" [style=solid] - "374R53" [label="R53", fillcolor=3, shape=diamond, style=filled] - 375 [label="State 375\n\l 48 FeatureDefinition: \"feature\" Identifier \"=\" \"{\" FeatureDeclarationsAndDefinitions • \"}\"\l 52 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions • FeatureDeclarationOrDefinition\l"] - 375 -> 370 [style=solid label="\"derived\""] - 375 -> 371 [style=solid label="\"rule\""] - 375 -> 435 [style=solid label="\"}\""] - 375 -> 372 [style=dashed label="DerivedDefinition"] - 375 -> 373 [style=dashed label="RuleDefinition"] - 375 -> 436 [style=dashed label="FeatureDeclarationOrDefinition"] - 375 -> 376 [style=dashed label="DeclarationDefinition"] - 376 [label="State 376\n\l 49 FeatureDeclarationOrDefinition: DeclarationDefinition •\l"] - 376 -> "376R49" [style=solid] - "376R49" [label="R49", fillcolor=3, shape=diamond, style=filled] - 377 [label="State 377\n\l193 Types: Types \",\" Type •\l202 TupleType: \"(\" Types \",\" Type • \")\"\l"] - 377 -> 437 [style=solid label="\")\""] - 377 -> "377R193" [style=solid] - "377R193" [label="R193", fillcolor=3, shape=diamond, style=filled] - 378 [label="State 378\n\l203 RecordType: \"(\" TypedVariables \",\" TypedVariable • \")\"\l230 TypedVariables: TypedVariables \",\" TypedVariable •\l"] - 378 -> 438 [style=solid label="\")\""] - 378 -> "378R230" [style=solid] - "378R230" [label="R230", fillcolor=3, shape=diamond, style=filled] - 379 [label="State 379\n\l 56 ImplementationDefinitionDefinition: DerivedDefinition •\l"] - 379 -> "379R56" [style=solid] - "379R56" [label="R56", fillcolor=3, shape=diamond, style=filled] - 380 [label="State 380\n\l 57 ImplementationDefinitionDefinition: RuleDefinition •\l"] - 380 -> "380R57" [style=solid] - "380R57" [label="R57", fillcolor=3, shape=diamond, style=filled] - 381 [label="State 381\n\l 58 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition • ImplementationDefinitionDefinitions\l 59 | ImplementationDefinitionDefinition •\l"] - 381 -> 16 [style=solid label="\"derived\""] - 381 -> 18 [style=solid label="\"rule\""] - 381 -> 379 [style=dashed label="DerivedDefinition"] - 381 -> 380 [style=dashed label="RuleDefinition"] - 381 -> 381 [style=dashed label="ImplementationDefinitionDefinition"] - 381 -> 439 [style=dashed label="ImplementationDefinitionDefinitions"] - 381 -> "381R59" [style=solid] - "381R59" [label="R59", fillcolor=3, shape=diamond, style=filled] - 382 [label="State 382\n\l 55 ImplementationDefinition: \"implements\" Type \"=\" \"{\" ImplementationDefinitionDefinitions • \"}\"\l"] - 382 -> 440 [style=solid label="\"}\""] - 383 [label="State 383\n\l 54 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" • \"{\" ImplementationDefinitionDefinitions \"}\"\l"] - 383 -> 441 [style=solid label="\"{\""] - 384 [label="State 384\n\l193 Types: Types \",\" • Type\l"] - 384 -> 8 [style=solid label="\"in\""] - 384 -> 109 [style=solid label="\"(\""] - 384 -> 9 [style=solid label="\"identifier\""] - 384 -> 442 [style=dashed label="Type"] - 384 -> 111 [style=dashed label="BasicType"] - 384 -> 112 [style=dashed label="TupleType"] - 384 -> 113 [style=dashed label="RecordType"] - 384 -> 114 [style=dashed label="TemplateType"] - 384 -> 115 [style=dashed label="RelationType"] - 384 -> 116 [style=dashed label="FixedSizedType"] - 384 -> 94 [style=dashed label="Identifier"] - 384 -> 190 [style=dashed label="IdentifierPath"] - 385 [label="State 385\n\l204 TemplateType: IdentifierPath \"<\" Types \">\" •\l"] - 385 -> "385R204" [style=solid] - "385R204" [label="R204", fillcolor=3, shape=diamond, style=filled] - 386 [label="State 386\n\l207 FunctionParameters: FunctionParameters \"*\" • Type\l"] + 368 [label="State 368\n\l 46 StructureDefinitionElement: \"[\" • Attributes \"]\" FunctionDefinition\l"] + 368 -> 2 [style=solid label="\"[\""] + 368 -> 433 [style=dashed label="Attributes"] + 368 -> 6 [style=dashed label="Attribute"] + 369 [label="State 369\n\l 47 StructureDefinitionElement: FunctionDefinition •\l"] + 369 -> "369R47" [style=solid] + "369R47" [label="R47", fillcolor=3, shape=diamond, style=filled] + 370 [label="State 370\n\l 49 StructureDefinitionList: StructureDefinitionElement •\l"] + 370 -> "370R49" [style=solid] + "370R49" [label="R49", fillcolor=3, shape=diamond, style=filled] + 371 [label="State 371\n\l 45 StructureDefinition: \"structure\" Identifier \"=\" \"{\" StructureDefinitionList • \"}\"\l 48 StructureDefinitionList: StructureDefinitionList • StructureDefinitionElement\l"] + 371 -> 25 [style=solid label="\"function\""] + 371 -> 368 [style=solid label="\"[\""] + 371 -> 434 [style=solid label="\"}\""] + 371 -> 369 [style=dashed label="FunctionDefinition"] + 371 -> 435 [style=dashed label="StructureDefinitionElement"] + 372 [label="State 372\n\l 24 DerivedDefinition: \"derived\" • Identifier \"->\" Type \"=\" Term\l 25 | \"derived\" • Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Term\l 26 | \"derived\" • Identifier \"(\" error \")\" \"->\" Type \"=\" Term\l 62 DeclarationDefinition: \"derived\" • Identifier \":\" MaybeFunctionParameters \"->\" Type\l"] + 372 -> 8 [style=solid label="\"in\""] + 372 -> 9 [style=solid label="\"identifier\""] + 372 -> 436 [style=dashed label="Identifier"] + 373 [label="State 373\n\l 27 RuleDefinition: \"rule\" • Identifier \"=\" Rule\l 28 | \"rule\" • Identifier \"->\" Type \"=\" Rule\l 29 | \"rule\" • Identifier \"(\" Parameters \")\" \"=\" Rule\l 30 | \"rule\" • Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Rule\l 31 | \"rule\" • Identifier \"(\" error \")\" \"=\" Rule\l 32 | \"rule\" • Identifier \"(\" error \")\" \"->\" Type \"=\" Rule\l 63 DeclarationDefinition: \"rule\" • Identifier \":\" MaybeFunctionParameters \"->\" Type\l"] + 373 -> 8 [style=solid label="\"in\""] + 373 -> 9 [style=solid label="\"identifier\""] + 373 -> 437 [style=dashed label="Identifier"] + 374 [label="State 374\n\l 52 FeatureDeclarationOrDefinition: DerivedDefinition •\l"] + 374 -> "374R52" [style=solid] + "374R52" [label="R52", fillcolor=3, shape=diamond, style=filled] + 375 [label="State 375\n\l 53 FeatureDeclarationOrDefinition: RuleDefinition •\l"] + 375 -> "375R53" [style=solid] + "375R53" [label="R53", fillcolor=3, shape=diamond, style=filled] + 376 [label="State 376\n\l 55 FeatureDeclarationsAndDefinitions: FeatureDeclarationOrDefinition •\l"] + 376 -> "376R55" [style=solid] + "376R55" [label="R55", fillcolor=3, shape=diamond, style=filled] + 377 [label="State 377\n\l 50 FeatureDefinition: \"feature\" Identifier \"=\" \"{\" FeatureDeclarationsAndDefinitions • \"}\"\l 54 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions • FeatureDeclarationOrDefinition\l"] + 377 -> 372 [style=solid label="\"derived\""] + 377 -> 373 [style=solid label="\"rule\""] + 377 -> 438 [style=solid label="\"}\""] + 377 -> 374 [style=dashed label="DerivedDefinition"] + 377 -> 375 [style=dashed label="RuleDefinition"] + 377 -> 439 [style=dashed label="FeatureDeclarationOrDefinition"] + 377 -> 378 [style=dashed label="DeclarationDefinition"] + 378 [label="State 378\n\l 51 FeatureDeclarationOrDefinition: DeclarationDefinition •\l"] + 378 -> "378R51" [style=solid] + "378R51" [label="R51", fillcolor=3, shape=diamond, style=filled] + 379 [label="State 379\n\l195 Types: Types \",\" Type •\l204 TupleType: \"(\" Types \",\" Type • \")\"\l"] + 379 -> 440 [style=solid label="\")\""] + 379 -> "379R195" [style=solid] + "379R195" [label="R195", fillcolor=3, shape=diamond, style=filled] + 380 [label="State 380\n\l205 RecordType: \"(\" TypedVariables \",\" TypedVariable • \")\"\l232 TypedVariables: TypedVariables \",\" TypedVariable •\l"] + 380 -> 441 [style=solid label="\")\""] + 380 -> "380R232" [style=solid] + "380R232" [label="R232", fillcolor=3, shape=diamond, style=filled] + 381 [label="State 381\n\l 58 ImplementationDefinitionDefinition: DerivedDefinition •\l"] + 381 -> "381R58" [style=solid] + "381R58" [label="R58", fillcolor=3, shape=diamond, style=filled] + 382 [label="State 382\n\l 59 ImplementationDefinitionDefinition: RuleDefinition •\l"] + 382 -> "382R59" [style=solid] + "382R59" [label="R59", fillcolor=3, shape=diamond, style=filled] + 383 [label="State 383\n\l 60 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition • ImplementationDefinitionDefinitions\l 61 | ImplementationDefinitionDefinition •\l"] + 383 -> 16 [style=solid label="\"derived\""] + 383 -> 18 [style=solid label="\"rule\""] + 383 -> 381 [style=dashed label="DerivedDefinition"] + 383 -> 382 [style=dashed label="RuleDefinition"] + 383 -> 383 [style=dashed label="ImplementationDefinitionDefinition"] + 383 -> 442 [style=dashed label="ImplementationDefinitionDefinitions"] + 383 -> "383R61" [style=solid] + "383R61" [label="R61", fillcolor=3, shape=diamond, style=filled] + 384 [label="State 384\n\l 57 ImplementationDefinition: \"implements\" Type \"=\" \"{\" ImplementationDefinitionDefinitions • \"}\"\l"] + 384 -> 443 [style=solid label="\"}\""] + 385 [label="State 385\n\l 56 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" • \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 385 -> 444 [style=solid label="\"{\""] + 386 [label="State 386\n\l195 Types: Types \",\" • Type\l"] 386 -> 8 [style=solid label="\"in\""] 386 -> 109 [style=solid label="\"(\""] 386 -> 9 [style=solid label="\"identifier\""] - 386 -> 443 [style=dashed label="Type"] + 386 -> 445 [style=dashed label="Type"] 386 -> 111 [style=dashed label="BasicType"] 386 -> 112 [style=dashed label="TupleType"] 386 -> 113 [style=dashed label="RecordType"] @@ -5233,24 +5228,14 @@ digraph "../../obj/src/GrammarParser.y" 386 -> 116 [style=dashed label="FixedSizedType"] 386 -> 94 [style=dashed label="Identifier"] 386 -> 190 [style=dashed label="IdentifierPath"] - 387 [label="State 387\n\l205 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" • Type \">\"\l"] - 387 -> 8 [style=solid label="\"in\""] - 387 -> 109 [style=solid label="\"(\""] - 387 -> 9 [style=solid label="\"identifier\""] - 387 -> 444 [style=dashed label="Type"] - 387 -> 111 [style=dashed label="BasicType"] - 387 -> 112 [style=dashed label="TupleType"] - 387 -> 113 [style=dashed label="RecordType"] - 387 -> 114 [style=dashed label="TemplateType"] - 387 -> 115 [style=dashed label="RelationType"] - 387 -> 116 [style=dashed label="FixedSizedType"] - 387 -> 94 [style=dashed label="Identifier"] - 387 -> 190 [style=dashed label="IdentifierPath"] - 388 [label="State 388\n\l 35 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" • Type MaybeDefined MaybeInitially\l"] + 387 [label="State 387\n\l206 TemplateType: IdentifierPath \"<\" Types \">\" •\l"] + 387 -> "387R206" [style=solid] + "387R206" [label="R206", fillcolor=3, shape=diamond, style=filled] + 388 [label="State 388\n\l209 FunctionParameters: FunctionParameters \"*\" • Type\l"] 388 -> 8 [style=solid label="\"in\""] 388 -> 109 [style=solid label="\"(\""] 388 -> 9 [style=solid label="\"identifier\""] - 388 -> 445 [style=dashed label="Type"] + 388 -> 446 [style=dashed label="Type"] 388 -> 111 [style=dashed label="BasicType"] 388 -> 112 [style=dashed label="TupleType"] 388 -> 113 [style=dashed label="RecordType"] @@ -5259,115 +5244,33 @@ digraph "../../obj/src/GrammarParser.y" 388 -> 116 [style=dashed label="FixedSizedType"] 388 -> 94 [style=dashed label="Identifier"] 388 -> 190 [style=dashed label="IdentifierPath"] - 389 [label="State 389\n\l159 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term \"holds\" • Term\l"] - 389 -> 45 [style=solid label="\"let\""] + 389 [label="State 389\n\l207 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" • Type \">\"\l"] 389 -> 8 [style=solid label="\"in\""] - 389 -> 46 [style=solid label="\"forall\""] - 389 -> 47 [style=solid label="\"choose\""] - 389 -> 48 [style=solid label="\"if\""] - 389 -> 49 [style=solid label="\"exists\""] - 389 -> 50 [style=solid label="\"undef\""] - 389 -> 51 [style=solid label="\"false\""] - 389 -> 52 [style=solid label="\"true\""] - 389 -> 53 [style=solid label="\"not\""] - 389 -> 54 [style=solid label="\"+\""] - 389 -> 55 [style=solid label="\"-\""] - 389 -> 56 [style=solid label="\"(\""] - 389 -> 57 [style=solid label="\"[\""] - 389 -> 58 [style=solid label="\"|\""] - 389 -> 59 [style=solid label="\"@\""] - 389 -> 60 [style=solid label="\"binary\""] - 389 -> 61 [style=solid label="\"hexadecimal\""] - 389 -> 62 [style=solid label="\"integer\""] - 389 -> 63 [style=solid label="\"rational\""] - 389 -> 64 [style=solid label="\"decimal\""] - 389 -> 65 [style=solid label="\"string\""] + 389 -> 109 [style=solid label="\"(\""] 389 -> 9 [style=solid label="\"identifier\""] - 389 -> 446 [style=dashed label="Term"] - 389 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 389 -> 68 [style=dashed label="OperatorExpression"] - 389 -> 69 [style=dashed label="CallExpression"] - 389 -> 70 [style=dashed label="DirectCallExpression"] - 389 -> 71 [style=dashed label="MethodCallExpression"] - 389 -> 72 [style=dashed label="LiteralCallExpression"] - 389 -> 73 [style=dashed label="IndirectCallExpression"] - 389 -> 74 [style=dashed label="TypeCastingExpression"] - 389 -> 75 [style=dashed label="LetExpression"] - 389 -> 76 [style=dashed label="ConditionalExpression"] - 389 -> 77 [style=dashed label="ChooseExpression"] - 389 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 389 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 389 -> 80 [style=dashed label="CardinalityExpression"] - 389 -> 81 [style=dashed label="Literal"] - 389 -> 82 [style=dashed label="UndefinedLiteral"] - 389 -> 83 [style=dashed label="BooleanLiteral"] - 389 -> 84 [style=dashed label="IntegerLiteral"] - 389 -> 85 [style=dashed label="RationalLiteral"] - 389 -> 86 [style=dashed label="DecimalLiteral"] - 389 -> 87 [style=dashed label="BinaryLiteral"] - 389 -> 88 [style=dashed label="StringLiteral"] - 389 -> 89 [style=dashed label="ReferenceLiteral"] - 389 -> 90 [style=dashed label="ListLiteral"] - 389 -> 91 [style=dashed label="RangeLiteral"] - 389 -> 92 [style=dashed label="TupleLiteral"] - 389 -> 93 [style=dashed label="RecordLiteral"] + 389 -> 447 [style=dashed label="Type"] + 389 -> 111 [style=dashed label="BasicType"] + 389 -> 112 [style=dashed label="TupleType"] + 389 -> 113 [style=dashed label="RecordType"] + 389 -> 114 [style=dashed label="TemplateType"] + 389 -> 115 [style=dashed label="RelationType"] + 389 -> 116 [style=dashed label="FixedSizedType"] 389 -> 94 [style=dashed label="Identifier"] - 389 -> 95 [style=dashed label="IdentifierPath"] - 390 [label="State 390\n\l158 ChooseExpression: \"choose\" AttributedVariables \"in\" Term \"do\" • Term\l"] - 390 -> 45 [style=solid label="\"let\""] + 389 -> 190 [style=dashed label="IdentifierPath"] + 390 [label="State 390\n\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" • Type MaybeDefined MaybeInitially\l"] 390 -> 8 [style=solid label="\"in\""] - 390 -> 46 [style=solid label="\"forall\""] - 390 -> 47 [style=solid label="\"choose\""] - 390 -> 48 [style=solid label="\"if\""] - 390 -> 49 [style=solid label="\"exists\""] - 390 -> 50 [style=solid label="\"undef\""] - 390 -> 51 [style=solid label="\"false\""] - 390 -> 52 [style=solid label="\"true\""] - 390 -> 53 [style=solid label="\"not\""] - 390 -> 54 [style=solid label="\"+\""] - 390 -> 55 [style=solid label="\"-\""] - 390 -> 56 [style=solid label="\"(\""] - 390 -> 57 [style=solid label="\"[\""] - 390 -> 58 [style=solid label="\"|\""] - 390 -> 59 [style=solid label="\"@\""] - 390 -> 60 [style=solid label="\"binary\""] - 390 -> 61 [style=solid label="\"hexadecimal\""] - 390 -> 62 [style=solid label="\"integer\""] - 390 -> 63 [style=solid label="\"rational\""] - 390 -> 64 [style=solid label="\"decimal\""] - 390 -> 65 [style=solid label="\"string\""] + 390 -> 109 [style=solid label="\"(\""] 390 -> 9 [style=solid label="\"identifier\""] - 390 -> 447 [style=dashed label="Term"] - 390 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 390 -> 68 [style=dashed label="OperatorExpression"] - 390 -> 69 [style=dashed label="CallExpression"] - 390 -> 70 [style=dashed label="DirectCallExpression"] - 390 -> 71 [style=dashed label="MethodCallExpression"] - 390 -> 72 [style=dashed label="LiteralCallExpression"] - 390 -> 73 [style=dashed label="IndirectCallExpression"] - 390 -> 74 [style=dashed label="TypeCastingExpression"] - 390 -> 75 [style=dashed label="LetExpression"] - 390 -> 76 [style=dashed label="ConditionalExpression"] - 390 -> 77 [style=dashed label="ChooseExpression"] - 390 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 390 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 390 -> 80 [style=dashed label="CardinalityExpression"] - 390 -> 81 [style=dashed label="Literal"] - 390 -> 82 [style=dashed label="UndefinedLiteral"] - 390 -> 83 [style=dashed label="BooleanLiteral"] - 390 -> 84 [style=dashed label="IntegerLiteral"] - 390 -> 85 [style=dashed label="RationalLiteral"] - 390 -> 86 [style=dashed label="DecimalLiteral"] - 390 -> 87 [style=dashed label="BinaryLiteral"] - 390 -> 88 [style=dashed label="StringLiteral"] - 390 -> 89 [style=dashed label="ReferenceLiteral"] - 390 -> 90 [style=dashed label="ListLiteral"] - 390 -> 91 [style=dashed label="RangeLiteral"] - 390 -> 92 [style=dashed label="TupleLiteral"] - 390 -> 93 [style=dashed label="RecordLiteral"] + 390 -> 448 [style=dashed label="Type"] + 390 -> 111 [style=dashed label="BasicType"] + 390 -> 112 [style=dashed label="TupleType"] + 390 -> 113 [style=dashed label="RecordType"] + 390 -> 114 [style=dashed label="TemplateType"] + 390 -> 115 [style=dashed label="RelationType"] + 390 -> 116 [style=dashed label="FixedSizedType"] 390 -> 94 [style=dashed label="Identifier"] - 390 -> 95 [style=dashed label="IdentifierPath"] - 391 [label="State 391\n\l157 ConditionalExpression: \"if\" Term \"then\" Term \"else\" • Term\l"] + 390 -> 190 [style=dashed label="IdentifierPath"] + 391 [label="State 391\n\l161 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term \"holds\" • Term\l"] 391 -> 45 [style=solid label="\"let\""] 391 -> 8 [style=solid label="\"in\""] 391 -> 46 [style=solid label="\"forall\""] @@ -5391,7 +5294,7 @@ digraph "../../obj/src/GrammarParser.y" 391 -> 64 [style=solid label="\"decimal\""] 391 -> 65 [style=solid label="\"string\""] 391 -> 9 [style=solid label="\"identifier\""] - 391 -> 448 [style=dashed label="Term"] + 391 -> 449 [style=dashed label="Term"] 391 -> 67 [style=dashed label="SimpleOrClaspedTerm"] 391 -> 68 [style=dashed label="OperatorExpression"] 391 -> 69 [style=dashed label="CallExpression"] @@ -5421,7 +5324,7 @@ digraph "../../obj/src/GrammarParser.y" 391 -> 93 [style=dashed label="RecordLiteral"] 391 -> 94 [style=dashed label="Identifier"] 391 -> 95 [style=dashed label="IdentifierPath"] - 392 [label="State 392\n\l160 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term \"with\" • Term\l"] + 392 [label="State 392\n\l160 ChooseExpression: \"choose\" AttributedVariables \"in\" Term \"do\" • Term\l"] 392 -> 45 [style=solid label="\"let\""] 392 -> 8 [style=solid label="\"in\""] 392 -> 46 [style=solid label="\"forall\""] @@ -5445,7 +5348,7 @@ digraph "../../obj/src/GrammarParser.y" 392 -> 64 [style=solid label="\"decimal\""] 392 -> 65 [style=solid label="\"string\""] 392 -> 9 [style=solid label="\"identifier\""] - 392 -> 449 [style=dashed label="Term"] + 392 -> 450 [style=dashed label="Term"] 392 -> 67 [style=dashed label="SimpleOrClaspedTerm"] 392 -> 68 [style=dashed label="OperatorExpression"] 392 -> 69 [style=dashed label="CallExpression"] @@ -5475,236 +5378,262 @@ digraph "../../obj/src/GrammarParser.y" 392 -> 93 [style=dashed label="RecordLiteral"] 392 -> 94 [style=dashed label="Identifier"] 392 -> 95 [style=dashed label="IdentifierPath"] - 393 [label="State 393\n\l188 TupleLiteral: \"(\" Terms \",\" Term \")\" •\l"] - 393 -> "393R188" [style=solid] - "393R188" [label="R188", fillcolor=3, shape=diamond, style=filled] - 394 [label="State 394\n\l187 RangeLiteral: \"[\" Term \"..\" Term \"]\" •\l"] - 394 -> "394R187" [style=solid] - "394R187" [label="R187", fillcolor=3, shape=diamond, style=filled] - 395 [label="State 395\n\l150 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" error • \")\"\l"] - 395 -> 450 [style=solid label="\")\""] - 396 [label="State 396\n\l148 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" \")\" •\l"] - 396 -> "396R148" [style=solid] - "396R148" [label="R148", fillcolor=3, shape=diamond, style=filled] - 397 [label="State 397\n\l104 Terms: Terms • \",\" Term\l149 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" Terms • \")\"\l"] - 397 -> 451 [style=solid label="\")\""] - 397 -> 216 [style=solid label="\",\""] - 398 [label="State 398\n\l220 Initializer: \"(\" Term \")\" \"->\" • Term\l"] - 398 -> 45 [style=solid label="\"let\""] - 398 -> 8 [style=solid label="\"in\""] - 398 -> 46 [style=solid label="\"forall\""] - 398 -> 47 [style=solid label="\"choose\""] - 398 -> 48 [style=solid label="\"if\""] - 398 -> 49 [style=solid label="\"exists\""] - 398 -> 50 [style=solid label="\"undef\""] - 398 -> 51 [style=solid label="\"false\""] - 398 -> 52 [style=solid label="\"true\""] - 398 -> 53 [style=solid label="\"not\""] - 398 -> 54 [style=solid label="\"+\""] - 398 -> 55 [style=solid label="\"-\""] - 398 -> 56 [style=solid label="\"(\""] - 398 -> 57 [style=solid label="\"[\""] - 398 -> 58 [style=solid label="\"|\""] - 398 -> 59 [style=solid label="\"@\""] - 398 -> 60 [style=solid label="\"binary\""] - 398 -> 61 [style=solid label="\"hexadecimal\""] - 398 -> 62 [style=solid label="\"integer\""] - 398 -> 63 [style=solid label="\"rational\""] - 398 -> 64 [style=solid label="\"decimal\""] - 398 -> 65 [style=solid label="\"string\""] - 398 -> 9 [style=solid label="\"identifier\""] - 398 -> 452 [style=dashed label="Term"] - 398 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 398 -> 68 [style=dashed label="OperatorExpression"] - 398 -> 69 [style=dashed label="CallExpression"] - 398 -> 70 [style=dashed label="DirectCallExpression"] - 398 -> 71 [style=dashed label="MethodCallExpression"] - 398 -> 72 [style=dashed label="LiteralCallExpression"] - 398 -> 73 [style=dashed label="IndirectCallExpression"] - 398 -> 74 [style=dashed label="TypeCastingExpression"] - 398 -> 75 [style=dashed label="LetExpression"] - 398 -> 76 [style=dashed label="ConditionalExpression"] - 398 -> 77 [style=dashed label="ChooseExpression"] - 398 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 398 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 398 -> 80 [style=dashed label="CardinalityExpression"] - 398 -> 81 [style=dashed label="Literal"] - 398 -> 82 [style=dashed label="UndefinedLiteral"] - 398 -> 83 [style=dashed label="BooleanLiteral"] - 398 -> 84 [style=dashed label="IntegerLiteral"] - 398 -> 85 [style=dashed label="RationalLiteral"] - 398 -> 86 [style=dashed label="DecimalLiteral"] - 398 -> 87 [style=dashed label="BinaryLiteral"] - 398 -> 88 [style=dashed label="StringLiteral"] - 398 -> 89 [style=dashed label="ReferenceLiteral"] - 398 -> 90 [style=dashed label="ListLiteral"] - 398 -> 91 [style=dashed label="RangeLiteral"] - 398 -> 92 [style=dashed label="TupleLiteral"] - 398 -> 93 [style=dashed label="RecordLiteral"] - 398 -> 94 [style=dashed label="Identifier"] - 398 -> 95 [style=dashed label="IdentifierPath"] - 399 [label="State 399\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" • Type \"=\" Term\l"] - 399 -> 8 [style=solid label="\"in\""] - 399 -> 109 [style=solid label="\"(\""] - 399 -> 9 [style=solid label="\"identifier\""] - 399 -> 453 [style=dashed label="Type"] - 399 -> 111 [style=dashed label="BasicType"] - 399 -> 112 [style=dashed label="TupleType"] - 399 -> 113 [style=dashed label="RecordType"] - 399 -> 114 [style=dashed label="TemplateType"] - 399 -> 115 [style=dashed label="RelationType"] - 399 -> 116 [style=dashed label="FixedSizedType"] - 399 -> 94 [style=dashed label="Identifier"] - 399 -> 190 [style=dashed label="IdentifierPath"] - 400 [label="State 400\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" • Type \"=\" Term\l"] + 393 [label="State 393\n\l159 ConditionalExpression: \"if\" Term \"then\" Term \"else\" • Term\l"] + 393 -> 45 [style=solid label="\"let\""] + 393 -> 8 [style=solid label="\"in\""] + 393 -> 46 [style=solid label="\"forall\""] + 393 -> 47 [style=solid label="\"choose\""] + 393 -> 48 [style=solid label="\"if\""] + 393 -> 49 [style=solid label="\"exists\""] + 393 -> 50 [style=solid label="\"undef\""] + 393 -> 51 [style=solid label="\"false\""] + 393 -> 52 [style=solid label="\"true\""] + 393 -> 53 [style=solid label="\"not\""] + 393 -> 54 [style=solid label="\"+\""] + 393 -> 55 [style=solid label="\"-\""] + 393 -> 56 [style=solid label="\"(\""] + 393 -> 57 [style=solid label="\"[\""] + 393 -> 58 [style=solid label="\"|\""] + 393 -> 59 [style=solid label="\"@\""] + 393 -> 60 [style=solid label="\"binary\""] + 393 -> 61 [style=solid label="\"hexadecimal\""] + 393 -> 62 [style=solid label="\"integer\""] + 393 -> 63 [style=solid label="\"rational\""] + 393 -> 64 [style=solid label="\"decimal\""] + 393 -> 65 [style=solid label="\"string\""] + 393 -> 9 [style=solid label="\"identifier\""] + 393 -> 451 [style=dashed label="Term"] + 393 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 393 -> 68 [style=dashed label="OperatorExpression"] + 393 -> 69 [style=dashed label="CallExpression"] + 393 -> 70 [style=dashed label="DirectCallExpression"] + 393 -> 71 [style=dashed label="MethodCallExpression"] + 393 -> 72 [style=dashed label="LiteralCallExpression"] + 393 -> 73 [style=dashed label="IndirectCallExpression"] + 393 -> 74 [style=dashed label="TypeCastingExpression"] + 393 -> 75 [style=dashed label="LetExpression"] + 393 -> 76 [style=dashed label="ConditionalExpression"] + 393 -> 77 [style=dashed label="ChooseExpression"] + 393 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 393 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 393 -> 80 [style=dashed label="CardinalityExpression"] + 393 -> 81 [style=dashed label="Literal"] + 393 -> 82 [style=dashed label="UndefinedLiteral"] + 393 -> 83 [style=dashed label="BooleanLiteral"] + 393 -> 84 [style=dashed label="IntegerLiteral"] + 393 -> 85 [style=dashed label="RationalLiteral"] + 393 -> 86 [style=dashed label="DecimalLiteral"] + 393 -> 87 [style=dashed label="BinaryLiteral"] + 393 -> 88 [style=dashed label="StringLiteral"] + 393 -> 89 [style=dashed label="ReferenceLiteral"] + 393 -> 90 [style=dashed label="ListLiteral"] + 393 -> 91 [style=dashed label="RangeLiteral"] + 393 -> 92 [style=dashed label="TupleLiteral"] + 393 -> 93 [style=dashed label="RecordLiteral"] + 393 -> 94 [style=dashed label="Identifier"] + 393 -> 95 [style=dashed label="IdentifierPath"] + 394 [label="State 394\n\l162 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term \"with\" • Term\l"] + 394 -> 45 [style=solid label="\"let\""] + 394 -> 8 [style=solid label="\"in\""] + 394 -> 46 [style=solid label="\"forall\""] + 394 -> 47 [style=solid label="\"choose\""] + 394 -> 48 [style=solid label="\"if\""] + 394 -> 49 [style=solid label="\"exists\""] + 394 -> 50 [style=solid label="\"undef\""] + 394 -> 51 [style=solid label="\"false\""] + 394 -> 52 [style=solid label="\"true\""] + 394 -> 53 [style=solid label="\"not\""] + 394 -> 54 [style=solid label="\"+\""] + 394 -> 55 [style=solid label="\"-\""] + 394 -> 56 [style=solid label="\"(\""] + 394 -> 57 [style=solid label="\"[\""] + 394 -> 58 [style=solid label="\"|\""] + 394 -> 59 [style=solid label="\"@\""] + 394 -> 60 [style=solid label="\"binary\""] + 394 -> 61 [style=solid label="\"hexadecimal\""] + 394 -> 62 [style=solid label="\"integer\""] + 394 -> 63 [style=solid label="\"rational\""] + 394 -> 64 [style=solid label="\"decimal\""] + 394 -> 65 [style=solid label="\"string\""] + 394 -> 9 [style=solid label="\"identifier\""] + 394 -> 452 [style=dashed label="Term"] + 394 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 394 -> 68 [style=dashed label="OperatorExpression"] + 394 -> 69 [style=dashed label="CallExpression"] + 394 -> 70 [style=dashed label="DirectCallExpression"] + 394 -> 71 [style=dashed label="MethodCallExpression"] + 394 -> 72 [style=dashed label="LiteralCallExpression"] + 394 -> 73 [style=dashed label="IndirectCallExpression"] + 394 -> 74 [style=dashed label="TypeCastingExpression"] + 394 -> 75 [style=dashed label="LetExpression"] + 394 -> 76 [style=dashed label="ConditionalExpression"] + 394 -> 77 [style=dashed label="ChooseExpression"] + 394 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 394 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 394 -> 80 [style=dashed label="CardinalityExpression"] + 394 -> 81 [style=dashed label="Literal"] + 394 -> 82 [style=dashed label="UndefinedLiteral"] + 394 -> 83 [style=dashed label="BooleanLiteral"] + 394 -> 84 [style=dashed label="IntegerLiteral"] + 394 -> 85 [style=dashed label="RationalLiteral"] + 394 -> 86 [style=dashed label="DecimalLiteral"] + 394 -> 87 [style=dashed label="BinaryLiteral"] + 394 -> 88 [style=dashed label="StringLiteral"] + 394 -> 89 [style=dashed label="ReferenceLiteral"] + 394 -> 90 [style=dashed label="ListLiteral"] + 394 -> 91 [style=dashed label="RangeLiteral"] + 394 -> 92 [style=dashed label="TupleLiteral"] + 394 -> 93 [style=dashed label="RecordLiteral"] + 394 -> 94 [style=dashed label="Identifier"] + 394 -> 95 [style=dashed label="IdentifierPath"] + 395 [label="State 395\n\l190 TupleLiteral: \"(\" Terms \",\" Term \")\" •\l"] + 395 -> "395R190" [style=solid] + "395R190" [label="R190", fillcolor=3, shape=diamond, style=filled] + 396 [label="State 396\n\l189 RangeLiteral: \"[\" Term \"..\" Term \"]\" •\l"] + 396 -> "396R189" [style=solid] + "396R189" [label="R189", fillcolor=3, shape=diamond, style=filled] + 397 [label="State 397\n\l152 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" error • \")\"\l"] + 397 -> 453 [style=solid label="\")\""] + 398 [label="State 398\n\l150 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" \")\" •\l"] + 398 -> "398R150" [style=solid] + "398R150" [label="R150", fillcolor=3, shape=diamond, style=filled] + 399 [label="State 399\n\l106 Terms: Terms • \",\" Term\l151 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" Terms • \")\"\l"] + 399 -> 454 [style=solid label="\")\""] + 399 -> 216 [style=solid label="\",\""] + 400 [label="State 400\n\l222 Initializer: \"(\" Term \")\" \"->\" • Term\l"] + 400 -> 45 [style=solid label="\"let\""] 400 -> 8 [style=solid label="\"in\""] - 400 -> 109 [style=solid label="\"(\""] + 400 -> 46 [style=solid label="\"forall\""] + 400 -> 47 [style=solid label="\"choose\""] + 400 -> 48 [style=solid label="\"if\""] + 400 -> 49 [style=solid label="\"exists\""] + 400 -> 50 [style=solid label="\"undef\""] + 400 -> 51 [style=solid label="\"false\""] + 400 -> 52 [style=solid label="\"true\""] + 400 -> 53 [style=solid label="\"not\""] + 400 -> 54 [style=solid label="\"+\""] + 400 -> 55 [style=solid label="\"-\""] + 400 -> 56 [style=solid label="\"(\""] + 400 -> 57 [style=solid label="\"[\""] + 400 -> 58 [style=solid label="\"|\""] + 400 -> 59 [style=solid label="\"@\""] + 400 -> 60 [style=solid label="\"binary\""] + 400 -> 61 [style=solid label="\"hexadecimal\""] + 400 -> 62 [style=solid label="\"integer\""] + 400 -> 63 [style=solid label="\"rational\""] + 400 -> 64 [style=solid label="\"decimal\""] + 400 -> 65 [style=solid label="\"string\""] 400 -> 9 [style=solid label="\"identifier\""] - 400 -> 454 [style=dashed label="Type"] - 400 -> 111 [style=dashed label="BasicType"] - 400 -> 112 [style=dashed label="TupleType"] - 400 -> 113 [style=dashed label="RecordType"] - 400 -> 114 [style=dashed label="TemplateType"] - 400 -> 115 [style=dashed label="RelationType"] - 400 -> 116 [style=dashed label="FixedSizedType"] + 400 -> 455 [style=dashed label="Term"] + 400 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 400 -> 68 [style=dashed label="OperatorExpression"] + 400 -> 69 [style=dashed label="CallExpression"] + 400 -> 70 [style=dashed label="DirectCallExpression"] + 400 -> 71 [style=dashed label="MethodCallExpression"] + 400 -> 72 [style=dashed label="LiteralCallExpression"] + 400 -> 73 [style=dashed label="IndirectCallExpression"] + 400 -> 74 [style=dashed label="TypeCastingExpression"] + 400 -> 75 [style=dashed label="LetExpression"] + 400 -> 76 [style=dashed label="ConditionalExpression"] + 400 -> 77 [style=dashed label="ChooseExpression"] + 400 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 400 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 400 -> 80 [style=dashed label="CardinalityExpression"] + 400 -> 81 [style=dashed label="Literal"] + 400 -> 82 [style=dashed label="UndefinedLiteral"] + 400 -> 83 [style=dashed label="BooleanLiteral"] + 400 -> 84 [style=dashed label="IntegerLiteral"] + 400 -> 85 [style=dashed label="RationalLiteral"] + 400 -> 86 [style=dashed label="DecimalLiteral"] + 400 -> 87 [style=dashed label="BinaryLiteral"] + 400 -> 88 [style=dashed label="StringLiteral"] + 400 -> 89 [style=dashed label="ReferenceLiteral"] + 400 -> 90 [style=dashed label="ListLiteral"] + 400 -> 91 [style=dashed label="RangeLiteral"] + 400 -> 92 [style=dashed label="TupleLiteral"] + 400 -> 93 [style=dashed label="RecordLiteral"] 400 -> 94 [style=dashed label="Identifier"] - 400 -> 190 [style=dashed label="IdentifierPath"] - 401 [label="State 401\n\l211 Parameters: Parameters \",\" TypedAttributedVariable •\l"] - 401 -> "401R211" [style=solid] - "401R211" [label="R211", fillcolor=3, shape=diamond, style=filled] - 402 [label="State 402\n\l 24 DerivedDefinition: \"derived\" Identifier \"->\" Type \"=\" Term •\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] - 402 -> 148 [style=solid label="\"and\""] - 402 -> 149 [style=solid label="\"or\""] - 402 -> 150 [style=solid label="\"xor\""] - 402 -> 151 [style=solid label="\"implies\""] - 402 -> 152 [style=solid label="\"+\""] - 402 -> 153 [style=solid label="\"-\""] - 402 -> 154 [style=solid label="\"=\""] - 402 -> 155 [style=solid label="\"<\""] - 402 -> 156 [style=solid label="\">\""] - 402 -> 157 [style=solid label="\"*\""] - 402 -> 158 [style=solid label="\"/\""] - 402 -> 159 [style=solid label="\"%\""] - 402 -> 160 [style=solid label="\"^\""] - 402 -> 161 [style=solid label="\"=>\""] - 402 -> 162 [style=solid label="\"!=\""] - 402 -> 163 [style=solid label="\"<=\""] - 402 -> 164 [style=solid label="\">=\""] - 402 -> "402R24" [style=solid] - "402R24" [label="R24", fillcolor=3, shape=diamond, style=filled] - 403 [label="State 403\n\l 23 EnumerationDefinition: \"enumeration\" Identifier \"=\" \"{\" Enumerators \"}\" •\l"] - 403 -> "403R23" [style=solid] - "403R23" [label="R23", fillcolor=3, shape=diamond, style=filled] - 404 [label="State 404\n\l 39 Enumerators: Enumerators \",\" • EnumeratorDefinition\l"] - 404 -> 337 [style=dotted] - 404 -> 8 [style=solid label="\"in\""] - 404 -> 2 [style=solid label="\"[\""] - 404 -> 9 [style=solid label="\"identifier\""] - 404 -> 455 [style=dashed label="EnumeratorDefinition"] - 404 -> 340 [style=dashed label="Identifier"] - 404 -> 341 [style=dashed label="Attributes"] - 404 -> 6 [style=dashed label="Attribute"] - 405 [label="State 405\n\l 37 EnumeratorDefinition: Attributes Identifier •\l"] - 405 -> "405R37" [style=solid] - "405R37" [label="R37", fillcolor=3, shape=diamond, style=filled] - 406 [label="State 406\n\l100 SequenceRule: \"seq\" error \"endseq\" •\l"] - 406 -> "406R100" [style=solid] - "406R100" [label="R100", fillcolor=3, shape=diamond, style=filled] - 407 [label="State 407\n\l 98 SequenceRule: \"seq\" Rules \"endseq\" •\l"] - 407 -> "407R98" [style=solid] - "407R98" [label="R98", fillcolor=3, shape=diamond, style=filled] - 408 [label="State 408\n\l 62 Rules: Rules Rule •\l"] - 408 -> "408R62" [style=solid] - "408R62" [label="R62", fillcolor=3, shape=diamond, style=filled] - 409 [label="State 409\n\l 96 BlockRule: \"par\" error \"endpar\" •\l"] - 409 -> "409R96" [style=solid] - "409R96" [label="R96", fillcolor=3, shape=diamond, style=filled] - 410 [label="State 410\n\l 94 BlockRule: \"par\" Rules \"endpar\" •\l"] - 410 -> "410R94" [style=solid] - "410R94" [label="R94", fillcolor=3, shape=diamond, style=filled] - 411 [label="State 411\n\l 87 LetRule: \"let\" VariableBindings \"in\" • Rule\l"] - 411 -> 259 [style=solid label="\"seq\""] - 411 -> 260 [style=solid label="\"par\""] - 411 -> 261 [style=solid label="\"skip\""] - 411 -> 262 [style=solid label="\"let\""] - 411 -> 263 [style=solid label="\"local\""] - 411 -> 8 [style=solid label="\"in\""] - 411 -> 264 [style=solid label="\"forall\""] - 411 -> 265 [style=solid label="\"choose\""] - 411 -> 266 [style=solid label="\"iterate\""] - 411 -> 267 [style=solid label="\"if\""] - 411 -> 268 [style=solid label="\"case\""] - 411 -> 269 [style=solid label="\"while\""] - 411 -> 50 [style=solid label="\"undef\""] - 411 -> 51 [style=solid label="\"false\""] - 411 -> 52 [style=solid label="\"true\""] - 411 -> 54 [style=solid label="\"+\""] - 411 -> 55 [style=solid label="\"-\""] - 411 -> 56 [style=solid label="\"(\""] - 411 -> 57 [style=solid label="\"[\""] - 411 -> 270 [style=solid label="\"{\""] - 411 -> 59 [style=solid label="\"@\""] - 411 -> 271 [style=solid label="\"{|\""] - 411 -> 60 [style=solid label="\"binary\""] - 411 -> 61 [style=solid label="\"hexadecimal\""] - 411 -> 62 [style=solid label="\"integer\""] - 411 -> 63 [style=solid label="\"rational\""] - 411 -> 64 [style=solid label="\"decimal\""] - 411 -> 65 [style=solid label="\"string\""] - 411 -> 9 [style=solid label="\"identifier\""] - 411 -> 456 [style=dashed label="Rule"] - 411 -> 273 [style=dashed label="SkipRule"] - 411 -> 274 [style=dashed label="ConditionalRule"] - 411 -> 275 [style=dashed label="CaseRule"] - 411 -> 276 [style=dashed label="LetRule"] - 411 -> 277 [style=dashed label="LocalRule"] - 411 -> 278 [style=dashed label="ForallRule"] - 411 -> 279 [style=dashed label="ChooseRule"] - 411 -> 280 [style=dashed label="IterateRule"] - 411 -> 281 [style=dashed label="BlockRule"] - 411 -> 282 [style=dashed label="SequenceRule"] - 411 -> 283 [style=dashed label="UpdateRule"] - 411 -> 284 [style=dashed label="CallRule"] - 411 -> 285 [style=dashed label="WhileRule"] - 411 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 411 -> 287 [style=dashed label="CallExpression"] - 411 -> 288 [style=dashed label="DirectCallExpression"] - 411 -> 71 [style=dashed label="MethodCallExpression"] - 411 -> 72 [style=dashed label="LiteralCallExpression"] - 411 -> 73 [style=dashed label="IndirectCallExpression"] - 411 -> 81 [style=dashed label="Literal"] - 411 -> 82 [style=dashed label="UndefinedLiteral"] - 411 -> 83 [style=dashed label="BooleanLiteral"] - 411 -> 84 [style=dashed label="IntegerLiteral"] - 411 -> 85 [style=dashed label="RationalLiteral"] - 411 -> 86 [style=dashed label="DecimalLiteral"] - 411 -> 87 [style=dashed label="BinaryLiteral"] - 411 -> 88 [style=dashed label="StringLiteral"] - 411 -> 89 [style=dashed label="ReferenceLiteral"] - 411 -> 90 [style=dashed label="ListLiteral"] - 411 -> 91 [style=dashed label="RangeLiteral"] - 411 -> 92 [style=dashed label="TupleLiteral"] - 411 -> 93 [style=dashed label="RecordLiteral"] - 411 -> 94 [style=dashed label="Identifier"] - 411 -> 95 [style=dashed label="IdentifierPath"] - 412 [label="State 412\n\l245 LocalFunctionDefinition: Identifier \":\" • MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] - 412 -> 8 [style=solid label="\"in\""] - 412 -> 109 [style=solid label="\"(\""] - 412 -> 9 [style=solid label="\"identifier\""] - 412 -> 307 [style=dashed label="Type"] - 412 -> 111 [style=dashed label="BasicType"] - 412 -> 112 [style=dashed label="TupleType"] - 412 -> 113 [style=dashed label="RecordType"] - 412 -> 114 [style=dashed label="TemplateType"] - 412 -> 115 [style=dashed label="RelationType"] - 412 -> 116 [style=dashed label="FixedSizedType"] - 412 -> 304 [style=dashed label="FunctionParameters"] - 412 -> 457 [style=dashed label="MaybeFunctionParameters"] - 412 -> 94 [style=dashed label="Identifier"] - 412 -> 190 [style=dashed label="IdentifierPath"] - 412 -> "412R210" [style=solid] - "412R210" [label="R210", fillcolor=3, shape=diamond, style=filled] - 413 [label="State 413\n\l 88 LocalRule: \"local\" LocalFunctionDefinitions \"in\" • Rule\l"] + 400 -> 95 [style=dashed label="IdentifierPath"] + 401 [label="State 401\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" • Type \"=\" Term\l"] + 401 -> 8 [style=solid label="\"in\""] + 401 -> 109 [style=solid label="\"(\""] + 401 -> 9 [style=solid label="\"identifier\""] + 401 -> 456 [style=dashed label="Type"] + 401 -> 111 [style=dashed label="BasicType"] + 401 -> 112 [style=dashed label="TupleType"] + 401 -> 113 [style=dashed label="RecordType"] + 401 -> 114 [style=dashed label="TemplateType"] + 401 -> 115 [style=dashed label="RelationType"] + 401 -> 116 [style=dashed label="FixedSizedType"] + 401 -> 94 [style=dashed label="Identifier"] + 401 -> 190 [style=dashed label="IdentifierPath"] + 402 [label="State 402\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" • Type \"=\" Term\l"] + 402 -> 8 [style=solid label="\"in\""] + 402 -> 109 [style=solid label="\"(\""] + 402 -> 9 [style=solid label="\"identifier\""] + 402 -> 457 [style=dashed label="Type"] + 402 -> 111 [style=dashed label="BasicType"] + 402 -> 112 [style=dashed label="TupleType"] + 402 -> 113 [style=dashed label="RecordType"] + 402 -> 114 [style=dashed label="TemplateType"] + 402 -> 115 [style=dashed label="RelationType"] + 402 -> 116 [style=dashed label="FixedSizedType"] + 402 -> 94 [style=dashed label="Identifier"] + 402 -> 190 [style=dashed label="IdentifierPath"] + 403 [label="State 403\n\l213 Parameters: Parameters \",\" TypedAttributedVariable •\l"] + 403 -> "403R213" [style=solid] + "403R213" [label="R213", fillcolor=3, shape=diamond, style=filled] + 404 [label="State 404\n\l 24 DerivedDefinition: \"derived\" Identifier \"->\" Type \"=\" Term •\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] + 404 -> 148 [style=solid label="\"and\""] + 404 -> 149 [style=solid label="\"or\""] + 404 -> 150 [style=solid label="\"xor\""] + 404 -> 151 [style=solid label="\"implies\""] + 404 -> 152 [style=solid label="\"+\""] + 404 -> 153 [style=solid label="\"-\""] + 404 -> 154 [style=solid label="\"=\""] + 404 -> 155 [style=solid label="\"<\""] + 404 -> 156 [style=solid label="\">\""] + 404 -> 157 [style=solid label="\"*\""] + 404 -> 158 [style=solid label="\"/\""] + 404 -> 159 [style=solid label="\"%\""] + 404 -> 160 [style=solid label="\"^\""] + 404 -> 161 [style=solid label="\"=>\""] + 404 -> 162 [style=solid label="\"!=\""] + 404 -> 163 [style=solid label="\"<=\""] + 404 -> 164 [style=solid label="\">=\""] + 404 -> "404R24" [style=solid] + "404R24" [label="R24", fillcolor=3, shape=diamond, style=filled] + 405 [label="State 405\n\l 23 EnumerationDefinition: \"enumeration\" Identifier \"=\" \"{\" Enumerators \"}\" •\l"] + 405 -> "405R23" [style=solid] + "405R23" [label="R23", fillcolor=3, shape=diamond, style=filled] + 406 [label="State 406\n\l 37 Enumerators: Enumerators \",\" • EnumeratorDefinition\l"] + 406 -> 337 [style=dotted] + 406 -> 8 [style=solid label="\"in\""] + 406 -> 2 [style=solid label="\"[\""] + 406 -> 9 [style=solid label="\"identifier\""] + 406 -> 458 [style=dashed label="EnumeratorDefinition"] + 406 -> 340 [style=dashed label="Identifier"] + 406 -> 341 [style=dashed label="Attributes"] + 406 -> 6 [style=dashed label="Attribute"] + 407 [label="State 407\n\l 35 EnumeratorDefinition: Attributes Identifier •\l"] + 407 -> "407R35" [style=solid] + "407R35" [label="R35", fillcolor=3, shape=diamond, style=filled] + 408 [label="State 408\n\l102 SequenceRule: \"seq\" error \"endseq\" •\l"] + 408 -> "408R102" [style=solid] + "408R102" [label="R102", fillcolor=3, shape=diamond, style=filled] + 409 [label="State 409\n\l100 SequenceRule: \"seq\" Rules \"endseq\" •\l"] + 409 -> "409R100" [style=solid] + "409R100" [label="R100", fillcolor=3, shape=diamond, style=filled] + 410 [label="State 410\n\l 64 Rules: Rules Rule •\l"] + 410 -> "410R64" [style=solid] + "410R64" [label="R64", fillcolor=3, shape=diamond, style=filled] + 411 [label="State 411\n\l 98 BlockRule: \"par\" error \"endpar\" •\l"] + 411 -> "411R98" [style=solid] + "411R98" [label="R98", fillcolor=3, shape=diamond, style=filled] + 412 [label="State 412\n\l 96 BlockRule: \"par\" Rules \"endpar\" •\l"] + 412 -> "412R96" [style=solid] + "412R96" [label="R96", fillcolor=3, shape=diamond, style=filled] + 413 [label="State 413\n\l 89 LetRule: \"let\" VariableBindings \"in\" • Rule\l"] 413 -> 259 [style=solid label="\"seq\""] 413 -> 260 [style=solid label="\"par\""] 413 -> 261 [style=solid label="\"skip\""] @@ -5734,7 +5663,7 @@ digraph "../../obj/src/GrammarParser.y" 413 -> 64 [style=solid label="\"decimal\""] 413 -> 65 [style=solid label="\"string\""] 413 -> 9 [style=solid label="\"identifier\""] - 413 -> 458 [style=dashed label="Rule"] + 413 -> 459 [style=dashed label="Rule"] 413 -> 273 [style=dashed label="SkipRule"] 413 -> 274 [style=dashed label="ConditionalRule"] 413 -> 275 [style=dashed label="CaseRule"] @@ -5769,150 +5698,118 @@ digraph "../../obj/src/GrammarParser.y" 413 -> 93 [style=dashed label="RecordLiteral"] 413 -> 94 [style=dashed label="Identifier"] 413 -> 95 [style=dashed label="IdentifierPath"] - 414 [label="State 414\n\l240 LocalFunctionDefinitions: LocalFunctionDefinitions \",\" • AttributedLocalFunctionDefinition\l"] - 414 -> 348 [style=dotted] + 414 [label="State 414\n\l247 LocalFunctionDefinition: Identifier \":\" • MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] 414 -> 8 [style=solid label="\"in\""] - 414 -> 2 [style=solid label="\"[\""] + 414 -> 109 [style=solid label="\"(\""] 414 -> 9 [style=solid label="\"identifier\""] - 414 -> 349 [style=dashed label="Identifier"] - 414 -> 459 [style=dashed label="AttributedLocalFunctionDefinition"] - 414 -> 352 [style=dashed label="LocalFunctionDefinition"] - 414 -> 353 [style=dashed label="Attributes"] - 414 -> 6 [style=dashed label="Attribute"] - 415 [label="State 415\n\l242 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition •\l"] - 415 -> "415R242" [style=solid] - "415R242" [label="R242", fillcolor=3, shape=diamond, style=filled] - 416 [label="State 416\n\l 89 ForallRule: \"forall\" AttributedVariables \"in\" • Term \"do\" Rule\l 90 | \"forall\" AttributedVariables \"in\" • Term \"with\" Term \"do\" Rule\l"] - 416 -> 45 [style=solid label="\"let\""] + 414 -> 307 [style=dashed label="Type"] + 414 -> 111 [style=dashed label="BasicType"] + 414 -> 112 [style=dashed label="TupleType"] + 414 -> 113 [style=dashed label="RecordType"] + 414 -> 114 [style=dashed label="TemplateType"] + 414 -> 115 [style=dashed label="RelationType"] + 414 -> 116 [style=dashed label="FixedSizedType"] + 414 -> 304 [style=dashed label="FunctionParameters"] + 414 -> 460 [style=dashed label="MaybeFunctionParameters"] + 414 -> 94 [style=dashed label="Identifier"] + 414 -> 190 [style=dashed label="IdentifierPath"] + 414 -> "414R212" [style=solid] + "414R212" [label="R212", fillcolor=3, shape=diamond, style=filled] + 415 [label="State 415\n\l 90 LocalRule: \"local\" LocalFunctionDefinitions \"in\" • Rule\l"] + 415 -> 259 [style=solid label="\"seq\""] + 415 -> 260 [style=solid label="\"par\""] + 415 -> 261 [style=solid label="\"skip\""] + 415 -> 262 [style=solid label="\"let\""] + 415 -> 263 [style=solid label="\"local\""] + 415 -> 8 [style=solid label="\"in\""] + 415 -> 264 [style=solid label="\"forall\""] + 415 -> 265 [style=solid label="\"choose\""] + 415 -> 266 [style=solid label="\"iterate\""] + 415 -> 267 [style=solid label="\"if\""] + 415 -> 268 [style=solid label="\"case\""] + 415 -> 269 [style=solid label="\"while\""] + 415 -> 50 [style=solid label="\"undef\""] + 415 -> 51 [style=solid label="\"false\""] + 415 -> 52 [style=solid label="\"true\""] + 415 -> 54 [style=solid label="\"+\""] + 415 -> 55 [style=solid label="\"-\""] + 415 -> 56 [style=solid label="\"(\""] + 415 -> 57 [style=solid label="\"[\""] + 415 -> 270 [style=solid label="\"{\""] + 415 -> 59 [style=solid label="\"@\""] + 415 -> 271 [style=solid label="\"{|\""] + 415 -> 60 [style=solid label="\"binary\""] + 415 -> 61 [style=solid label="\"hexadecimal\""] + 415 -> 62 [style=solid label="\"integer\""] + 415 -> 63 [style=solid label="\"rational\""] + 415 -> 64 [style=solid label="\"decimal\""] + 415 -> 65 [style=solid label="\"string\""] + 415 -> 9 [style=solid label="\"identifier\""] + 415 -> 461 [style=dashed label="Rule"] + 415 -> 273 [style=dashed label="SkipRule"] + 415 -> 274 [style=dashed label="ConditionalRule"] + 415 -> 275 [style=dashed label="CaseRule"] + 415 -> 276 [style=dashed label="LetRule"] + 415 -> 277 [style=dashed label="LocalRule"] + 415 -> 278 [style=dashed label="ForallRule"] + 415 -> 279 [style=dashed label="ChooseRule"] + 415 -> 280 [style=dashed label="IterateRule"] + 415 -> 281 [style=dashed label="BlockRule"] + 415 -> 282 [style=dashed label="SequenceRule"] + 415 -> 283 [style=dashed label="UpdateRule"] + 415 -> 284 [style=dashed label="CallRule"] + 415 -> 285 [style=dashed label="WhileRule"] + 415 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 415 -> 287 [style=dashed label="CallExpression"] + 415 -> 288 [style=dashed label="DirectCallExpression"] + 415 -> 71 [style=dashed label="MethodCallExpression"] + 415 -> 72 [style=dashed label="LiteralCallExpression"] + 415 -> 73 [style=dashed label="IndirectCallExpression"] + 415 -> 81 [style=dashed label="Literal"] + 415 -> 82 [style=dashed label="UndefinedLiteral"] + 415 -> 83 [style=dashed label="BooleanLiteral"] + 415 -> 84 [style=dashed label="IntegerLiteral"] + 415 -> 85 [style=dashed label="RationalLiteral"] + 415 -> 86 [style=dashed label="DecimalLiteral"] + 415 -> 87 [style=dashed label="BinaryLiteral"] + 415 -> 88 [style=dashed label="StringLiteral"] + 415 -> 89 [style=dashed label="ReferenceLiteral"] + 415 -> 90 [style=dashed label="ListLiteral"] + 415 -> 91 [style=dashed label="RangeLiteral"] + 415 -> 92 [style=dashed label="TupleLiteral"] + 415 -> 93 [style=dashed label="RecordLiteral"] + 415 -> 94 [style=dashed label="Identifier"] + 415 -> 95 [style=dashed label="IdentifierPath"] + 416 [label="State 416\n\l242 LocalFunctionDefinitions: LocalFunctionDefinitions \",\" • AttributedLocalFunctionDefinition\l"] + 416 -> 348 [style=dotted] 416 -> 8 [style=solid label="\"in\""] - 416 -> 46 [style=solid label="\"forall\""] - 416 -> 47 [style=solid label="\"choose\""] - 416 -> 48 [style=solid label="\"if\""] - 416 -> 49 [style=solid label="\"exists\""] - 416 -> 50 [style=solid label="\"undef\""] - 416 -> 51 [style=solid label="\"false\""] - 416 -> 52 [style=solid label="\"true\""] - 416 -> 53 [style=solid label="\"not\""] - 416 -> 54 [style=solid label="\"+\""] - 416 -> 55 [style=solid label="\"-\""] - 416 -> 56 [style=solid label="\"(\""] - 416 -> 57 [style=solid label="\"[\""] - 416 -> 58 [style=solid label="\"|\""] - 416 -> 59 [style=solid label="\"@\""] - 416 -> 60 [style=solid label="\"binary\""] - 416 -> 61 [style=solid label="\"hexadecimal\""] - 416 -> 62 [style=solid label="\"integer\""] - 416 -> 63 [style=solid label="\"rational\""] - 416 -> 64 [style=solid label="\"decimal\""] - 416 -> 65 [style=solid label="\"string\""] + 416 -> 2 [style=solid label="\"[\""] 416 -> 9 [style=solid label="\"identifier\""] - 416 -> 460 [style=dashed label="Term"] - 416 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 416 -> 68 [style=dashed label="OperatorExpression"] - 416 -> 69 [style=dashed label="CallExpression"] - 416 -> 70 [style=dashed label="DirectCallExpression"] - 416 -> 71 [style=dashed label="MethodCallExpression"] - 416 -> 72 [style=dashed label="LiteralCallExpression"] - 416 -> 73 [style=dashed label="IndirectCallExpression"] - 416 -> 74 [style=dashed label="TypeCastingExpression"] - 416 -> 75 [style=dashed label="LetExpression"] - 416 -> 76 [style=dashed label="ConditionalExpression"] - 416 -> 77 [style=dashed label="ChooseExpression"] - 416 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 416 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 416 -> 80 [style=dashed label="CardinalityExpression"] - 416 -> 81 [style=dashed label="Literal"] - 416 -> 82 [style=dashed label="UndefinedLiteral"] - 416 -> 83 [style=dashed label="BooleanLiteral"] - 416 -> 84 [style=dashed label="IntegerLiteral"] - 416 -> 85 [style=dashed label="RationalLiteral"] - 416 -> 86 [style=dashed label="DecimalLiteral"] - 416 -> 87 [style=dashed label="BinaryLiteral"] - 416 -> 88 [style=dashed label="StringLiteral"] - 416 -> 89 [style=dashed label="ReferenceLiteral"] - 416 -> 90 [style=dashed label="ListLiteral"] - 416 -> 91 [style=dashed label="RangeLiteral"] - 416 -> 92 [style=dashed label="TupleLiteral"] - 416 -> 93 [style=dashed label="RecordLiteral"] - 416 -> 94 [style=dashed label="Identifier"] - 416 -> 95 [style=dashed label="IdentifierPath"] - 417 [label="State 417\n\l 91 ChooseRule: \"choose\" AttributedVariables \"in\" • Term \"do\" Rule\l"] - 417 -> 45 [style=solid label="\"let\""] - 417 -> 8 [style=solid label="\"in\""] - 417 -> 46 [style=solid label="\"forall\""] - 417 -> 47 [style=solid label="\"choose\""] - 417 -> 48 [style=solid label="\"if\""] - 417 -> 49 [style=solid label="\"exists\""] - 417 -> 50 [style=solid label="\"undef\""] - 417 -> 51 [style=solid label="\"false\""] - 417 -> 52 [style=solid label="\"true\""] - 417 -> 53 [style=solid label="\"not\""] - 417 -> 54 [style=solid label="\"+\""] - 417 -> 55 [style=solid label="\"-\""] - 417 -> 56 [style=solid label="\"(\""] - 417 -> 57 [style=solid label="\"[\""] - 417 -> 58 [style=solid label="\"|\""] - 417 -> 59 [style=solid label="\"@\""] - 417 -> 60 [style=solid label="\"binary\""] - 417 -> 61 [style=solid label="\"hexadecimal\""] - 417 -> 62 [style=solid label="\"integer\""] - 417 -> 63 [style=solid label="\"rational\""] - 417 -> 64 [style=solid label="\"decimal\""] - 417 -> 65 [style=solid label="\"string\""] - 417 -> 9 [style=solid label="\"identifier\""] - 417 -> 461 [style=dashed label="Term"] - 417 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 417 -> 68 [style=dashed label="OperatorExpression"] - 417 -> 69 [style=dashed label="CallExpression"] - 417 -> 70 [style=dashed label="DirectCallExpression"] - 417 -> 71 [style=dashed label="MethodCallExpression"] - 417 -> 72 [style=dashed label="LiteralCallExpression"] - 417 -> 73 [style=dashed label="IndirectCallExpression"] - 417 -> 74 [style=dashed label="TypeCastingExpression"] - 417 -> 75 [style=dashed label="LetExpression"] - 417 -> 76 [style=dashed label="ConditionalExpression"] - 417 -> 77 [style=dashed label="ChooseExpression"] - 417 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 417 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 417 -> 80 [style=dashed label="CardinalityExpression"] - 417 -> 81 [style=dashed label="Literal"] - 417 -> 82 [style=dashed label="UndefinedLiteral"] - 417 -> 83 [style=dashed label="BooleanLiteral"] - 417 -> 84 [style=dashed label="IntegerLiteral"] - 417 -> 85 [style=dashed label="RationalLiteral"] - 417 -> 86 [style=dashed label="DecimalLiteral"] - 417 -> 87 [style=dashed label="BinaryLiteral"] - 417 -> 88 [style=dashed label="StringLiteral"] - 417 -> 89 [style=dashed label="ReferenceLiteral"] - 417 -> 90 [style=dashed label="ListLiteral"] - 417 -> 91 [style=dashed label="RangeLiteral"] - 417 -> 92 [style=dashed label="TupleLiteral"] - 417 -> 93 [style=dashed label="RecordLiteral"] - 417 -> 94 [style=dashed label="Identifier"] - 417 -> 95 [style=dashed label="IdentifierPath"] - 418 [label="State 418\n\l 78 ConditionalRule: \"if\" Term \"then\" • Rule\l 79 | \"if\" Term \"then\" • Rule \"else\" Rule\l"] - 418 -> 259 [style=solid label="\"seq\""] - 418 -> 260 [style=solid label="\"par\""] - 418 -> 261 [style=solid label="\"skip\""] - 418 -> 262 [style=solid label="\"let\""] - 418 -> 263 [style=solid label="\"local\""] + 416 -> 349 [style=dashed label="Identifier"] + 416 -> 462 [style=dashed label="AttributedLocalFunctionDefinition"] + 416 -> 352 [style=dashed label="LocalFunctionDefinition"] + 416 -> 353 [style=dashed label="Attributes"] + 416 -> 6 [style=dashed label="Attribute"] + 417 [label="State 417\n\l244 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition •\l"] + 417 -> "417R244" [style=solid] + "417R244" [label="R244", fillcolor=3, shape=diamond, style=filled] + 418 [label="State 418\n\l 91 ForallRule: \"forall\" AttributedVariables \"in\" • Term \"do\" Rule\l 92 | \"forall\" AttributedVariables \"in\" • Term \"with\" Term \"do\" Rule\l"] + 418 -> 45 [style=solid label="\"let\""] 418 -> 8 [style=solid label="\"in\""] - 418 -> 264 [style=solid label="\"forall\""] - 418 -> 265 [style=solid label="\"choose\""] - 418 -> 266 [style=solid label="\"iterate\""] - 418 -> 267 [style=solid label="\"if\""] - 418 -> 268 [style=solid label="\"case\""] - 418 -> 269 [style=solid label="\"while\""] + 418 -> 46 [style=solid label="\"forall\""] + 418 -> 47 [style=solid label="\"choose\""] + 418 -> 48 [style=solid label="\"if\""] + 418 -> 49 [style=solid label="\"exists\""] 418 -> 50 [style=solid label="\"undef\""] 418 -> 51 [style=solid label="\"false\""] 418 -> 52 [style=solid label="\"true\""] + 418 -> 53 [style=solid label="\"not\""] 418 -> 54 [style=solid label="\"+\""] 418 -> 55 [style=solid label="\"-\""] 418 -> 56 [style=solid label="\"(\""] 418 -> 57 [style=solid label="\"[\""] - 418 -> 270 [style=solid label="\"{\""] + 418 -> 58 [style=solid label="\"|\""] 418 -> 59 [style=solid label="\"@\""] - 418 -> 271 [style=solid label="\"{|\""] 418 -> 60 [style=solid label="\"binary\""] 418 -> 61 [style=solid label="\"hexadecimal\""] 418 -> 62 [style=solid label="\"integer\""] @@ -5920,26 +5817,21 @@ digraph "../../obj/src/GrammarParser.y" 418 -> 64 [style=solid label="\"decimal\""] 418 -> 65 [style=solid label="\"string\""] 418 -> 9 [style=solid label="\"identifier\""] - 418 -> 462 [style=dashed label="Rule"] - 418 -> 273 [style=dashed label="SkipRule"] - 418 -> 274 [style=dashed label="ConditionalRule"] - 418 -> 275 [style=dashed label="CaseRule"] - 418 -> 276 [style=dashed label="LetRule"] - 418 -> 277 [style=dashed label="LocalRule"] - 418 -> 278 [style=dashed label="ForallRule"] - 418 -> 279 [style=dashed label="ChooseRule"] - 418 -> 280 [style=dashed label="IterateRule"] - 418 -> 281 [style=dashed label="BlockRule"] - 418 -> 282 [style=dashed label="SequenceRule"] - 418 -> 283 [style=dashed label="UpdateRule"] - 418 -> 284 [style=dashed label="CallRule"] - 418 -> 285 [style=dashed label="WhileRule"] - 418 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 418 -> 287 [style=dashed label="CallExpression"] - 418 -> 288 [style=dashed label="DirectCallExpression"] + 418 -> 463 [style=dashed label="Term"] + 418 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 418 -> 68 [style=dashed label="OperatorExpression"] + 418 -> 69 [style=dashed label="CallExpression"] + 418 -> 70 [style=dashed label="DirectCallExpression"] 418 -> 71 [style=dashed label="MethodCallExpression"] 418 -> 72 [style=dashed label="LiteralCallExpression"] 418 -> 73 [style=dashed label="IndirectCallExpression"] + 418 -> 74 [style=dashed label="TypeCastingExpression"] + 418 -> 75 [style=dashed label="LetExpression"] + 418 -> 76 [style=dashed label="ConditionalExpression"] + 418 -> 77 [style=dashed label="ChooseExpression"] + 418 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 418 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 418 -> 80 [style=dashed label="CardinalityExpression"] 418 -> 81 [style=dashed label="Literal"] 418 -> 82 [style=dashed label="UndefinedLiteral"] 418 -> 83 [style=dashed label="BooleanLiteral"] @@ -5955,9 +5847,61 @@ digraph "../../obj/src/GrammarParser.y" 418 -> 93 [style=dashed label="RecordLiteral"] 418 -> 94 [style=dashed label="Identifier"] 418 -> 95 [style=dashed label="IdentifierPath"] - 419 [label="State 419\n\l 80 CaseRule: \"case\" Term \"of\" • \"{\" CaseLabels \"}\"\l 81 | \"case\" Term \"of\" • \"{\" error \"}\"\l"] - 419 -> 463 [style=solid label="\"{\""] - 420 [label="State 420\n\l103 WhileRule: \"while\" Term \"do\" • Rule\l"] + 419 [label="State 419\n\l 93 ChooseRule: \"choose\" AttributedVariables \"in\" • Term \"do\" Rule\l"] + 419 -> 45 [style=solid label="\"let\""] + 419 -> 8 [style=solid label="\"in\""] + 419 -> 46 [style=solid label="\"forall\""] + 419 -> 47 [style=solid label="\"choose\""] + 419 -> 48 [style=solid label="\"if\""] + 419 -> 49 [style=solid label="\"exists\""] + 419 -> 50 [style=solid label="\"undef\""] + 419 -> 51 [style=solid label="\"false\""] + 419 -> 52 [style=solid label="\"true\""] + 419 -> 53 [style=solid label="\"not\""] + 419 -> 54 [style=solid label="\"+\""] + 419 -> 55 [style=solid label="\"-\""] + 419 -> 56 [style=solid label="\"(\""] + 419 -> 57 [style=solid label="\"[\""] + 419 -> 58 [style=solid label="\"|\""] + 419 -> 59 [style=solid label="\"@\""] + 419 -> 60 [style=solid label="\"binary\""] + 419 -> 61 [style=solid label="\"hexadecimal\""] + 419 -> 62 [style=solid label="\"integer\""] + 419 -> 63 [style=solid label="\"rational\""] + 419 -> 64 [style=solid label="\"decimal\""] + 419 -> 65 [style=solid label="\"string\""] + 419 -> 9 [style=solid label="\"identifier\""] + 419 -> 464 [style=dashed label="Term"] + 419 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 419 -> 68 [style=dashed label="OperatorExpression"] + 419 -> 69 [style=dashed label="CallExpression"] + 419 -> 70 [style=dashed label="DirectCallExpression"] + 419 -> 71 [style=dashed label="MethodCallExpression"] + 419 -> 72 [style=dashed label="LiteralCallExpression"] + 419 -> 73 [style=dashed label="IndirectCallExpression"] + 419 -> 74 [style=dashed label="TypeCastingExpression"] + 419 -> 75 [style=dashed label="LetExpression"] + 419 -> 76 [style=dashed label="ConditionalExpression"] + 419 -> 77 [style=dashed label="ChooseExpression"] + 419 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 419 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 419 -> 80 [style=dashed label="CardinalityExpression"] + 419 -> 81 [style=dashed label="Literal"] + 419 -> 82 [style=dashed label="UndefinedLiteral"] + 419 -> 83 [style=dashed label="BooleanLiteral"] + 419 -> 84 [style=dashed label="IntegerLiteral"] + 419 -> 85 [style=dashed label="RationalLiteral"] + 419 -> 86 [style=dashed label="DecimalLiteral"] + 419 -> 87 [style=dashed label="BinaryLiteral"] + 419 -> 88 [style=dashed label="StringLiteral"] + 419 -> 89 [style=dashed label="ReferenceLiteral"] + 419 -> 90 [style=dashed label="ListLiteral"] + 419 -> 91 [style=dashed label="RangeLiteral"] + 419 -> 92 [style=dashed label="TupleLiteral"] + 419 -> 93 [style=dashed label="RecordLiteral"] + 419 -> 94 [style=dashed label="Identifier"] + 419 -> 95 [style=dashed label="IdentifierPath"] + 420 [label="State 420\n\l 80 ConditionalRule: \"if\" Term \"then\" • Rule\l 81 | \"if\" Term \"then\" • Rule \"else\" Rule\l"] 420 -> 259 [style=solid label="\"seq\""] 420 -> 260 [style=solid label="\"par\""] 420 -> 261 [style=solid label="\"skip\""] @@ -5987,7 +5931,7 @@ digraph "../../obj/src/GrammarParser.y" 420 -> 64 [style=solid label="\"decimal\""] 420 -> 65 [style=solid label="\"string\""] 420 -> 9 [style=solid label="\"identifier\""] - 420 -> 464 [style=dashed label="Rule"] + 420 -> 465 [style=dashed label="Rule"] 420 -> 273 [style=dashed label="SkipRule"] 420 -> 274 [style=dashed label="ConditionalRule"] 420 -> 275 [style=dashed label="CaseRule"] @@ -6022,117 +5966,106 @@ digraph "../../obj/src/GrammarParser.y" 420 -> 93 [style=dashed label="RecordLiteral"] 420 -> 94 [style=dashed label="Identifier"] 420 -> 95 [style=dashed label="IdentifierPath"] - 421 [label="State 421\n\l 95 BlockRule: \"{\" error \"}\" •\l"] - 421 -> "421R95" [style=solid] - "421R95" [label="R95", fillcolor=3, shape=diamond, style=filled] - 422 [label="State 422\n\l 93 BlockRule: \"{\" Rules \"}\" •\l"] - 422 -> "422R93" [style=solid] - "422R93" [label="R93", fillcolor=3, shape=diamond, style=filled] - 423 [label="State 423\n\l 99 SequenceRule: \"{|\" error \"|}\" •\l"] - 423 -> "423R99" [style=solid] - "423R99" [label="R99", fillcolor=3, shape=diamond, style=filled] - 424 [label="State 424\n\l 97 SequenceRule: \"{|\" Rules \"|}\" •\l"] - 424 -> "424R97" [style=solid] - "424R97" [label="R97", fillcolor=3, shape=diamond, style=filled] - 425 [label="State 425\n\l101 UpdateRule: DirectCallExpression \":=\" Term •\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] - 425 -> 148 [style=solid label="\"and\""] - 425 -> 149 [style=solid label="\"or\""] - 425 -> 150 [style=solid label="\"xor\""] - 425 -> 151 [style=solid label="\"implies\""] - 425 -> 152 [style=solid label="\"+\""] - 425 -> 153 [style=solid label="\"-\""] - 425 -> 154 [style=solid label="\"=\""] - 425 -> 155 [style=solid label="\"<\""] - 425 -> 156 [style=solid label="\">\""] - 425 -> 157 [style=solid label="\"*\""] - 425 -> 158 [style=solid label="\"/\""] - 425 -> 159 [style=solid label="\"%\""] - 425 -> 160 [style=solid label="\"^\""] - 425 -> 161 [style=solid label="\"=>\""] - 425 -> 162 [style=solid label="\"!=\""] - 425 -> 163 [style=solid label="\"<=\""] - 425 -> 164 [style=solid label="\">=\""] + 421 [label="State 421\n\l 82 CaseRule: \"case\" Term \"of\" • \"{\" CaseLabels \"}\"\l 83 | \"case\" Term \"of\" • \"{\" error \"}\"\l"] + 421 -> 466 [style=solid label="\"{\""] + 422 [label="State 422\n\l105 WhileRule: \"while\" Term \"do\" • Rule\l"] + 422 -> 259 [style=solid label="\"seq\""] + 422 -> 260 [style=solid label="\"par\""] + 422 -> 261 [style=solid label="\"skip\""] + 422 -> 262 [style=solid label="\"let\""] + 422 -> 263 [style=solid label="\"local\""] + 422 -> 8 [style=solid label="\"in\""] + 422 -> 264 [style=solid label="\"forall\""] + 422 -> 265 [style=solid label="\"choose\""] + 422 -> 266 [style=solid label="\"iterate\""] + 422 -> 267 [style=solid label="\"if\""] + 422 -> 268 [style=solid label="\"case\""] + 422 -> 269 [style=solid label="\"while\""] + 422 -> 50 [style=solid label="\"undef\""] + 422 -> 51 [style=solid label="\"false\""] + 422 -> 52 [style=solid label="\"true\""] + 422 -> 54 [style=solid label="\"+\""] + 422 -> 55 [style=solid label="\"-\""] + 422 -> 56 [style=solid label="\"(\""] + 422 -> 57 [style=solid label="\"[\""] + 422 -> 270 [style=solid label="\"{\""] + 422 -> 59 [style=solid label="\"@\""] + 422 -> 271 [style=solid label="\"{|\""] + 422 -> 60 [style=solid label="\"binary\""] + 422 -> 61 [style=solid label="\"hexadecimal\""] + 422 -> 62 [style=solid label="\"integer\""] + 422 -> 63 [style=solid label="\"rational\""] + 422 -> 64 [style=solid label="\"decimal\""] + 422 -> 65 [style=solid label="\"string\""] + 422 -> 9 [style=solid label="\"identifier\""] + 422 -> 467 [style=dashed label="Rule"] + 422 -> 273 [style=dashed label="SkipRule"] + 422 -> 274 [style=dashed label="ConditionalRule"] + 422 -> 275 [style=dashed label="CaseRule"] + 422 -> 276 [style=dashed label="LetRule"] + 422 -> 277 [style=dashed label="LocalRule"] + 422 -> 278 [style=dashed label="ForallRule"] + 422 -> 279 [style=dashed label="ChooseRule"] + 422 -> 280 [style=dashed label="IterateRule"] + 422 -> 281 [style=dashed label="BlockRule"] + 422 -> 282 [style=dashed label="SequenceRule"] + 422 -> 283 [style=dashed label="UpdateRule"] + 422 -> 284 [style=dashed label="CallRule"] + 422 -> 285 [style=dashed label="WhileRule"] + 422 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 422 -> 287 [style=dashed label="CallExpression"] + 422 -> 288 [style=dashed label="DirectCallExpression"] + 422 -> 71 [style=dashed label="MethodCallExpression"] + 422 -> 72 [style=dashed label="LiteralCallExpression"] + 422 -> 73 [style=dashed label="IndirectCallExpression"] + 422 -> 81 [style=dashed label="Literal"] + 422 -> 82 [style=dashed label="UndefinedLiteral"] + 422 -> 83 [style=dashed label="BooleanLiteral"] + 422 -> 84 [style=dashed label="IntegerLiteral"] + 422 -> 85 [style=dashed label="RationalLiteral"] + 422 -> 86 [style=dashed label="DecimalLiteral"] + 422 -> 87 [style=dashed label="BinaryLiteral"] + 422 -> 88 [style=dashed label="StringLiteral"] + 422 -> 89 [style=dashed label="ReferenceLiteral"] + 422 -> 90 [style=dashed label="ListLiteral"] + 422 -> 91 [style=dashed label="RangeLiteral"] + 422 -> 92 [style=dashed label="TupleLiteral"] + 422 -> 93 [style=dashed label="RecordLiteral"] + 422 -> 94 [style=dashed label="Identifier"] + 422 -> 95 [style=dashed label="IdentifierPath"] + 423 [label="State 423\n\l 97 BlockRule: \"{\" error \"}\" •\l"] + 423 -> "423R97" [style=solid] + "423R97" [label="R97", fillcolor=3, shape=diamond, style=filled] + 424 [label="State 424\n\l 95 BlockRule: \"{\" Rules \"}\" •\l"] + 424 -> "424R95" [style=solid] + "424R95" [label="R95", fillcolor=3, shape=diamond, style=filled] + 425 [label="State 425\n\l101 SequenceRule: \"{|\" error \"|}\" •\l"] 425 -> "425R101" [style=solid] "425R101" [label="R101", fillcolor=3, shape=diamond, style=filled] - 426 [label="State 426\n\l 31 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"=\" • Rule\l"] - 426 -> 259 [style=solid label="\"seq\""] - 426 -> 260 [style=solid label="\"par\""] - 426 -> 261 [style=solid label="\"skip\""] - 426 -> 262 [style=solid label="\"let\""] - 426 -> 263 [style=solid label="\"local\""] - 426 -> 8 [style=solid label="\"in\""] - 426 -> 264 [style=solid label="\"forall\""] - 426 -> 265 [style=solid label="\"choose\""] - 426 -> 266 [style=solid label="\"iterate\""] - 426 -> 267 [style=solid label="\"if\""] - 426 -> 268 [style=solid label="\"case\""] - 426 -> 269 [style=solid label="\"while\""] - 426 -> 50 [style=solid label="\"undef\""] - 426 -> 51 [style=solid label="\"false\""] - 426 -> 52 [style=solid label="\"true\""] - 426 -> 54 [style=solid label="\"+\""] - 426 -> 55 [style=solid label="\"-\""] - 426 -> 56 [style=solid label="\"(\""] - 426 -> 57 [style=solid label="\"[\""] - 426 -> 270 [style=solid label="\"{\""] - 426 -> 59 [style=solid label="\"@\""] - 426 -> 271 [style=solid label="\"{|\""] - 426 -> 60 [style=solid label="\"binary\""] - 426 -> 61 [style=solid label="\"hexadecimal\""] - 426 -> 62 [style=solid label="\"integer\""] - 426 -> 63 [style=solid label="\"rational\""] - 426 -> 64 [style=solid label="\"decimal\""] - 426 -> 65 [style=solid label="\"string\""] - 426 -> 9 [style=solid label="\"identifier\""] - 426 -> 465 [style=dashed label="Rule"] - 426 -> 273 [style=dashed label="SkipRule"] - 426 -> 274 [style=dashed label="ConditionalRule"] - 426 -> 275 [style=dashed label="CaseRule"] - 426 -> 276 [style=dashed label="LetRule"] - 426 -> 277 [style=dashed label="LocalRule"] - 426 -> 278 [style=dashed label="ForallRule"] - 426 -> 279 [style=dashed label="ChooseRule"] - 426 -> 280 [style=dashed label="IterateRule"] - 426 -> 281 [style=dashed label="BlockRule"] - 426 -> 282 [style=dashed label="SequenceRule"] - 426 -> 283 [style=dashed label="UpdateRule"] - 426 -> 284 [style=dashed label="CallRule"] - 426 -> 285 [style=dashed label="WhileRule"] - 426 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 426 -> 287 [style=dashed label="CallExpression"] - 426 -> 288 [style=dashed label="DirectCallExpression"] - 426 -> 71 [style=dashed label="MethodCallExpression"] - 426 -> 72 [style=dashed label="LiteralCallExpression"] - 426 -> 73 [style=dashed label="IndirectCallExpression"] - 426 -> 81 [style=dashed label="Literal"] - 426 -> 82 [style=dashed label="UndefinedLiteral"] - 426 -> 83 [style=dashed label="BooleanLiteral"] - 426 -> 84 [style=dashed label="IntegerLiteral"] - 426 -> 85 [style=dashed label="RationalLiteral"] - 426 -> 86 [style=dashed label="DecimalLiteral"] - 426 -> 87 [style=dashed label="BinaryLiteral"] - 426 -> 88 [style=dashed label="StringLiteral"] - 426 -> 89 [style=dashed label="ReferenceLiteral"] - 426 -> 90 [style=dashed label="ListLiteral"] - 426 -> 91 [style=dashed label="RangeLiteral"] - 426 -> 92 [style=dashed label="TupleLiteral"] - 426 -> 93 [style=dashed label="RecordLiteral"] - 426 -> 94 [style=dashed label="Identifier"] - 426 -> 95 [style=dashed label="IdentifierPath"] - 427 [label="State 427\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" • Type \"=\" Rule\l"] - 427 -> 8 [style=solid label="\"in\""] - 427 -> 109 [style=solid label="\"(\""] - 427 -> 9 [style=solid label="\"identifier\""] - 427 -> 466 [style=dashed label="Type"] - 427 -> 111 [style=dashed label="BasicType"] - 427 -> 112 [style=dashed label="TupleType"] - 427 -> 113 [style=dashed label="RecordType"] - 427 -> 114 [style=dashed label="TemplateType"] - 427 -> 115 [style=dashed label="RelationType"] - 427 -> 116 [style=dashed label="FixedSizedType"] - 427 -> 94 [style=dashed label="Identifier"] - 427 -> 190 [style=dashed label="IdentifierPath"] - 428 [label="State 428\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"=\" • Rule\l"] + 426 [label="State 426\n\l 99 SequenceRule: \"{|\" Rules \"|}\" •\l"] + 426 -> "426R99" [style=solid] + "426R99" [label="R99", fillcolor=3, shape=diamond, style=filled] + 427 [label="State 427\n\l103 UpdateRule: DirectCallExpression \":=\" Term •\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] + 427 -> 148 [style=solid label="\"and\""] + 427 -> 149 [style=solid label="\"or\""] + 427 -> 150 [style=solid label="\"xor\""] + 427 -> 151 [style=solid label="\"implies\""] + 427 -> 152 [style=solid label="\"+\""] + 427 -> 153 [style=solid label="\"-\""] + 427 -> 154 [style=solid label="\"=\""] + 427 -> 155 [style=solid label="\"<\""] + 427 -> 156 [style=solid label="\">\""] + 427 -> 157 [style=solid label="\"*\""] + 427 -> 158 [style=solid label="\"/\""] + 427 -> 159 [style=solid label="\"%\""] + 427 -> 160 [style=solid label="\"^\""] + 427 -> 161 [style=solid label="\"=>\""] + 427 -> 162 [style=solid label="\"!=\""] + 427 -> 163 [style=solid label="\"<=\""] + 427 -> 164 [style=solid label="\">=\""] + 427 -> "427R103" [style=solid] + "427R103" [label="R103", fillcolor=3, shape=diamond, style=filled] + 428 [label="State 428\n\l 31 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"=\" • Rule\l"] 428 -> 259 [style=solid label="\"seq\""] 428 -> 260 [style=solid label="\"par\""] 428 -> 261 [style=solid label="\"skip\""] @@ -6162,7 +6095,7 @@ digraph "../../obj/src/GrammarParser.y" 428 -> 64 [style=solid label="\"decimal\""] 428 -> 65 [style=solid label="\"string\""] 428 -> 9 [style=solid label="\"identifier\""] - 428 -> 467 [style=dashed label="Rule"] + 428 -> 468 [style=dashed label="Rule"] 428 -> 273 [style=dashed label="SkipRule"] 428 -> 274 [style=dashed label="ConditionalRule"] 428 -> 275 [style=dashed label="CaseRule"] @@ -6197,11 +6130,11 @@ digraph "../../obj/src/GrammarParser.y" 428 -> 93 [style=dashed label="RecordLiteral"] 428 -> 94 [style=dashed label="Identifier"] 428 -> 95 [style=dashed label="IdentifierPath"] - 429 [label="State 429\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" • Type \"=\" Rule\l"] + 429 [label="State 429\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" • Type \"=\" Rule\l"] 429 -> 8 [style=solid label="\"in\""] 429 -> 109 [style=solid label="\"(\""] 429 -> 9 [style=solid label="\"identifier\""] - 429 -> 468 [style=dashed label="Type"] + 429 -> 469 [style=dashed label="Type"] 429 -> 111 [style=dashed label="BasicType"] 429 -> 112 [style=dashed label="TupleType"] 429 -> 113 [style=dashed label="RecordType"] @@ -6210,123 +6143,145 @@ digraph "../../obj/src/GrammarParser.y" 429 -> 116 [style=dashed label="FixedSizedType"] 429 -> 94 [style=dashed label="Identifier"] 429 -> 190 [style=dashed label="IdentifierPath"] - 430 [label="State 430\n\l 28 RuleDefinition: \"rule\" Identifier \"->\" Type \"=\" Rule •\l"] - 430 -> "430R28" [style=solid] - "430R28" [label="R28", fillcolor=3, shape=diamond, style=filled] - 431 [label="State 431\n\l 47 StructureDefinition: \"structure\" Identifier \"=\" \"{\" FunctionDefinitions \"}\" •\l"] - 431 -> "431R47" [style=solid] - "431R47" [label="R47", fillcolor=3, shape=diamond, style=filled] - 432 [label="State 432\n\l 33 FunctionDefinitions: FunctionDefinitions FunctionDefinition •\l"] - 432 -> "432R33" [style=solid] - "432R33" [label="R33", fillcolor=3, shape=diamond, style=filled] - 433 [label="State 433\n\l 24 DerivedDefinition: \"derived\" Identifier • \"->\" Type \"=\" Term\l 25 | \"derived\" Identifier • \"(\" Parameters \")\" \"->\" Type \"=\" Term\l 26 | \"derived\" Identifier • \"(\" error \")\" \"->\" Type \"=\" Term\l 60 DeclarationDefinition: \"derived\" Identifier • \":\" MaybeFunctionParameters \"->\" Type\l"] - 433 -> 175 [style=solid label="\"(\""] - 433 -> 469 [style=solid label="\":\""] - 433 -> 176 [style=solid label="\"->\""] - 434 [label="State 434\n\l 27 RuleDefinition: \"rule\" Identifier • \"=\" Rule\l 28 | \"rule\" Identifier • \"->\" Type \"=\" Rule\l 29 | \"rule\" Identifier • \"(\" Parameters \")\" \"=\" Rule\l 30 | \"rule\" Identifier • \"(\" Parameters \")\" \"->\" Type \"=\" Rule\l 31 | \"rule\" Identifier • \"(\" error \")\" \"=\" Rule\l 32 | \"rule\" Identifier • \"(\" error \")\" \"->\" Type \"=\" Rule\l 61 DeclarationDefinition: \"rule\" Identifier • \":\" MaybeFunctionParameters \"->\" Type\l"] - 434 -> 178 [style=solid label="\"=\""] - 434 -> 179 [style=solid label="\"(\""] - 434 -> 470 [style=solid label="\":\""] - 434 -> 180 [style=solid label="\"->\""] - 435 [label="State 435\n\l 48 FeatureDefinition: \"feature\" Identifier \"=\" \"{\" FeatureDeclarationsAndDefinitions \"}\" •\l"] + 430 [label="State 430\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"=\" • Rule\l"] + 430 -> 259 [style=solid label="\"seq\""] + 430 -> 260 [style=solid label="\"par\""] + 430 -> 261 [style=solid label="\"skip\""] + 430 -> 262 [style=solid label="\"let\""] + 430 -> 263 [style=solid label="\"local\""] + 430 -> 8 [style=solid label="\"in\""] + 430 -> 264 [style=solid label="\"forall\""] + 430 -> 265 [style=solid label="\"choose\""] + 430 -> 266 [style=solid label="\"iterate\""] + 430 -> 267 [style=solid label="\"if\""] + 430 -> 268 [style=solid label="\"case\""] + 430 -> 269 [style=solid label="\"while\""] + 430 -> 50 [style=solid label="\"undef\""] + 430 -> 51 [style=solid label="\"false\""] + 430 -> 52 [style=solid label="\"true\""] + 430 -> 54 [style=solid label="\"+\""] + 430 -> 55 [style=solid label="\"-\""] + 430 -> 56 [style=solid label="\"(\""] + 430 -> 57 [style=solid label="\"[\""] + 430 -> 270 [style=solid label="\"{\""] + 430 -> 59 [style=solid label="\"@\""] + 430 -> 271 [style=solid label="\"{|\""] + 430 -> 60 [style=solid label="\"binary\""] + 430 -> 61 [style=solid label="\"hexadecimal\""] + 430 -> 62 [style=solid label="\"integer\""] + 430 -> 63 [style=solid label="\"rational\""] + 430 -> 64 [style=solid label="\"decimal\""] + 430 -> 65 [style=solid label="\"string\""] + 430 -> 9 [style=solid label="\"identifier\""] + 430 -> 470 [style=dashed label="Rule"] + 430 -> 273 [style=dashed label="SkipRule"] + 430 -> 274 [style=dashed label="ConditionalRule"] + 430 -> 275 [style=dashed label="CaseRule"] + 430 -> 276 [style=dashed label="LetRule"] + 430 -> 277 [style=dashed label="LocalRule"] + 430 -> 278 [style=dashed label="ForallRule"] + 430 -> 279 [style=dashed label="ChooseRule"] + 430 -> 280 [style=dashed label="IterateRule"] + 430 -> 281 [style=dashed label="BlockRule"] + 430 -> 282 [style=dashed label="SequenceRule"] + 430 -> 283 [style=dashed label="UpdateRule"] + 430 -> 284 [style=dashed label="CallRule"] + 430 -> 285 [style=dashed label="WhileRule"] + 430 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 430 -> 287 [style=dashed label="CallExpression"] + 430 -> 288 [style=dashed label="DirectCallExpression"] + 430 -> 71 [style=dashed label="MethodCallExpression"] + 430 -> 72 [style=dashed label="LiteralCallExpression"] + 430 -> 73 [style=dashed label="IndirectCallExpression"] + 430 -> 81 [style=dashed label="Literal"] + 430 -> 82 [style=dashed label="UndefinedLiteral"] + 430 -> 83 [style=dashed label="BooleanLiteral"] + 430 -> 84 [style=dashed label="IntegerLiteral"] + 430 -> 85 [style=dashed label="RationalLiteral"] + 430 -> 86 [style=dashed label="DecimalLiteral"] + 430 -> 87 [style=dashed label="BinaryLiteral"] + 430 -> 88 [style=dashed label="StringLiteral"] + 430 -> 89 [style=dashed label="ReferenceLiteral"] + 430 -> 90 [style=dashed label="ListLiteral"] + 430 -> 91 [style=dashed label="RangeLiteral"] + 430 -> 92 [style=dashed label="TupleLiteral"] + 430 -> 93 [style=dashed label="RecordLiteral"] + 430 -> 94 [style=dashed label="Identifier"] + 430 -> 95 [style=dashed label="IdentifierPath"] + 431 [label="State 431\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" • Type \"=\" Rule\l"] + 431 -> 8 [style=solid label="\"in\""] + 431 -> 109 [style=solid label="\"(\""] + 431 -> 9 [style=solid label="\"identifier\""] + 431 -> 471 [style=dashed label="Type"] + 431 -> 111 [style=dashed label="BasicType"] + 431 -> 112 [style=dashed label="TupleType"] + 431 -> 113 [style=dashed label="RecordType"] + 431 -> 114 [style=dashed label="TemplateType"] + 431 -> 115 [style=dashed label="RelationType"] + 431 -> 116 [style=dashed label="FixedSizedType"] + 431 -> 94 [style=dashed label="Identifier"] + 431 -> 190 [style=dashed label="IdentifierPath"] + 432 [label="State 432\n\l 28 RuleDefinition: \"rule\" Identifier \"->\" Type \"=\" Rule •\l"] + 432 -> "432R28" [style=solid] + "432R28" [label="R28", fillcolor=3, shape=diamond, style=filled] + 433 [label="State 433\n\l 46 StructureDefinitionElement: \"[\" Attributes • \"]\" FunctionDefinition\l248 Attributes: Attributes • Attribute\l"] + 433 -> 2 [style=solid label="\"[\""] + 433 -> 472 [style=solid label="\"]\""] + 433 -> 43 [style=dashed label="Attribute"] + 434 [label="State 434\n\l 45 StructureDefinition: \"structure\" Identifier \"=\" \"{\" StructureDefinitionList \"}\" •\l"] + 434 -> "434R45" [style=solid] + "434R45" [label="R45", fillcolor=3, shape=diamond, style=filled] + 435 [label="State 435\n\l 48 StructureDefinitionList: StructureDefinitionList StructureDefinitionElement •\l"] 435 -> "435R48" [style=solid] "435R48" [label="R48", fillcolor=3, shape=diamond, style=filled] - 436 [label="State 436\n\l 52 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition •\l"] - 436 -> "436R52" [style=solid] - "436R52" [label="R52", fillcolor=3, shape=diamond, style=filled] - 437 [label="State 437\n\l202 TupleType: \"(\" Types \",\" Type \")\" •\l"] - 437 -> "437R202" [style=solid] - "437R202" [label="R202", fillcolor=3, shape=diamond, style=filled] - 438 [label="State 438\n\l203 RecordType: \"(\" TypedVariables \",\" TypedVariable \")\" •\l"] - 438 -> "438R203" [style=solid] - "438R203" [label="R203", fillcolor=3, shape=diamond, style=filled] - 439 [label="State 439\n\l 58 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions •\l"] - 439 -> "439R58" [style=solid] - "439R58" [label="R58", fillcolor=3, shape=diamond, style=filled] - 440 [label="State 440\n\l 55 ImplementationDefinition: \"implements\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\" •\l"] - 440 -> "440R55" [style=solid] - "440R55" [label="R55", fillcolor=3, shape=diamond, style=filled] - 441 [label="State 441\n\l 54 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" \"{\" • ImplementationDefinitionDefinitions \"}\"\l"] - 441 -> 16 [style=solid label="\"derived\""] - 441 -> 18 [style=solid label="\"rule\""] - 441 -> 379 [style=dashed label="DerivedDefinition"] - 441 -> 380 [style=dashed label="RuleDefinition"] - 441 -> 381 [style=dashed label="ImplementationDefinitionDefinition"] - 441 -> 471 [style=dashed label="ImplementationDefinitionDefinitions"] - 442 [label="State 442\n\l193 Types: Types \",\" Type •\l"] - 442 -> "442R193" [style=solid] - "442R193" [label="R193", fillcolor=3, shape=diamond, style=filled] - 443 [label="State 443\n\l207 FunctionParameters: FunctionParameters \"*\" Type •\l"] - 443 -> "443R207" [style=solid] - "443R207" [label="R207", fillcolor=3, shape=diamond, style=filled] - 444 [label="State 444\n\l205 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" Type • \">\"\l"] - 444 -> 472 [style=solid label="\">\""] - 445 [label="State 445\n\l 35 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type • MaybeDefined MaybeInitially\l"] - 445 -> 473 [style=solid label="\"defined\""] - 445 -> 474 [style=dashed label="MaybeDefined"] - 445 -> "445R214" [style=solid] - "445R214" [label="R214", fillcolor=3, shape=diamond, style=filled] - 446 [label="State 446\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l159 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term \"holds\" Term •\l"] - 446 -> 148 [style=solid label="\"and\""] - 446 -> 149 [style=solid label="\"or\""] - 446 -> 150 [style=solid label="\"xor\""] - 446 -> 151 [style=solid label="\"implies\""] - 446 -> 152 [style=solid label="\"+\""] - 446 -> 153 [style=solid label="\"-\""] - 446 -> 154 [style=solid label="\"=\""] - 446 -> 155 [style=solid label="\"<\""] - 446 -> 156 [style=solid label="\">\""] - 446 -> 157 [style=solid label="\"*\""] - 446 -> 158 [style=solid label="\"/\""] - 446 -> 159 [style=solid label="\"%\""] - 446 -> 160 [style=solid label="\"^\""] - 446 -> 161 [style=solid label="\"=>\""] - 446 -> 162 [style=solid label="\"!=\""] - 446 -> 163 [style=solid label="\"<=\""] - 446 -> 164 [style=solid label="\">=\""] - 446 -> "446R159" [style=solid] - "446R159" [label="R159", fillcolor=3, shape=diamond, style=filled] - 447 [label="State 447\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l158 ChooseExpression: \"choose\" AttributedVariables \"in\" Term \"do\" Term •\l"] - 447 -> 148 [style=solid label="\"and\""] - 447 -> 149 [style=solid label="\"or\""] - 447 -> 150 [style=solid label="\"xor\""] - 447 -> 151 [style=solid label="\"implies\""] - 447 -> 152 [style=solid label="\"+\""] - 447 -> 153 [style=solid label="\"-\""] - 447 -> 154 [style=solid label="\"=\""] - 447 -> 155 [style=solid label="\"<\""] - 447 -> 156 [style=solid label="\">\""] - 447 -> 157 [style=solid label="\"*\""] - 447 -> 158 [style=solid label="\"/\""] - 447 -> 159 [style=solid label="\"%\""] - 447 -> 160 [style=solid label="\"^\""] - 447 -> 161 [style=solid label="\"=>\""] - 447 -> 162 [style=solid label="\"!=\""] - 447 -> 163 [style=solid label="\"<=\""] - 447 -> 164 [style=solid label="\">=\""] - 447 -> "447R158" [style=solid] - "447R158" [label="R158", fillcolor=3, shape=diamond, style=filled] - 448 [label="State 448\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l157 ConditionalExpression: \"if\" Term \"then\" Term \"else\" Term •\l"] - 448 -> 148 [style=solid label="\"and\""] - 448 -> 149 [style=solid label="\"or\""] - 448 -> 150 [style=solid label="\"xor\""] - 448 -> 151 [style=solid label="\"implies\""] - 448 -> 152 [style=solid label="\"+\""] - 448 -> 153 [style=solid label="\"-\""] - 448 -> 154 [style=solid label="\"=\""] - 448 -> 155 [style=solid label="\"<\""] - 448 -> 156 [style=solid label="\">\""] - 448 -> 157 [style=solid label="\"*\""] - 448 -> 158 [style=solid label="\"/\""] - 448 -> 159 [style=solid label="\"%\""] - 448 -> 160 [style=solid label="\"^\""] - 448 -> 161 [style=solid label="\"=>\""] - 448 -> 162 [style=solid label="\"!=\""] - 448 -> 163 [style=solid label="\"<=\""] - 448 -> 164 [style=solid label="\">=\""] - 448 -> "448R157" [style=solid] - "448R157" [label="R157", fillcolor=3, shape=diamond, style=filled] - 449 [label="State 449\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l160 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term \"with\" Term •\l"] + 436 [label="State 436\n\l 24 DerivedDefinition: \"derived\" Identifier • \"->\" Type \"=\" Term\l 25 | \"derived\" Identifier • \"(\" Parameters \")\" \"->\" Type \"=\" Term\l 26 | \"derived\" Identifier • \"(\" error \")\" \"->\" Type \"=\" Term\l 62 DeclarationDefinition: \"derived\" Identifier • \":\" MaybeFunctionParameters \"->\" Type\l"] + 436 -> 175 [style=solid label="\"(\""] + 436 -> 473 [style=solid label="\":\""] + 436 -> 176 [style=solid label="\"->\""] + 437 [label="State 437\n\l 27 RuleDefinition: \"rule\" Identifier • \"=\" Rule\l 28 | \"rule\" Identifier • \"->\" Type \"=\" Rule\l 29 | \"rule\" Identifier • \"(\" Parameters \")\" \"=\" Rule\l 30 | \"rule\" Identifier • \"(\" Parameters \")\" \"->\" Type \"=\" Rule\l 31 | \"rule\" Identifier • \"(\" error \")\" \"=\" Rule\l 32 | \"rule\" Identifier • \"(\" error \")\" \"->\" Type \"=\" Rule\l 63 DeclarationDefinition: \"rule\" Identifier • \":\" MaybeFunctionParameters \"->\" Type\l"] + 437 -> 178 [style=solid label="\"=\""] + 437 -> 179 [style=solid label="\"(\""] + 437 -> 474 [style=solid label="\":\""] + 437 -> 180 [style=solid label="\"->\""] + 438 [label="State 438\n\l 50 FeatureDefinition: \"feature\" Identifier \"=\" \"{\" FeatureDeclarationsAndDefinitions \"}\" •\l"] + 438 -> "438R50" [style=solid] + "438R50" [label="R50", fillcolor=3, shape=diamond, style=filled] + 439 [label="State 439\n\l 54 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition •\l"] + 439 -> "439R54" [style=solid] + "439R54" [label="R54", fillcolor=3, shape=diamond, style=filled] + 440 [label="State 440\n\l204 TupleType: \"(\" Types \",\" Type \")\" •\l"] + 440 -> "440R204" [style=solid] + "440R204" [label="R204", fillcolor=3, shape=diamond, style=filled] + 441 [label="State 441\n\l205 RecordType: \"(\" TypedVariables \",\" TypedVariable \")\" •\l"] + 441 -> "441R205" [style=solid] + "441R205" [label="R205", fillcolor=3, shape=diamond, style=filled] + 442 [label="State 442\n\l 60 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions •\l"] + 442 -> "442R60" [style=solid] + "442R60" [label="R60", fillcolor=3, shape=diamond, style=filled] + 443 [label="State 443\n\l 57 ImplementationDefinition: \"implements\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\" •\l"] + 443 -> "443R57" [style=solid] + "443R57" [label="R57", fillcolor=3, shape=diamond, style=filled] + 444 [label="State 444\n\l 56 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" \"{\" • ImplementationDefinitionDefinitions \"}\"\l"] + 444 -> 16 [style=solid label="\"derived\""] + 444 -> 18 [style=solid label="\"rule\""] + 444 -> 381 [style=dashed label="DerivedDefinition"] + 444 -> 382 [style=dashed label="RuleDefinition"] + 444 -> 383 [style=dashed label="ImplementationDefinitionDefinition"] + 444 -> 475 [style=dashed label="ImplementationDefinitionDefinitions"] + 445 [label="State 445\n\l195 Types: Types \",\" Type •\l"] + 445 -> "445R195" [style=solid] + "445R195" [label="R195", fillcolor=3, shape=diamond, style=filled] + 446 [label="State 446\n\l209 FunctionParameters: FunctionParameters \"*\" Type •\l"] + 446 -> "446R209" [style=solid] + "446R209" [label="R209", fillcolor=3, shape=diamond, style=filled] + 447 [label="State 447\n\l207 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" Type • \">\"\l"] + 447 -> 476 [style=solid label="\">\""] + 448 [label="State 448\n\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type • MaybeDefined MaybeInitially\l"] + 448 -> 477 [style=solid label="\"defined\""] + 448 -> 478 [style=dashed label="MaybeDefined"] + 448 -> "448R216" [style=solid] + "448R216" [label="R216", fillcolor=3, shape=diamond, style=filled] + 449 [label="State 449\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l161 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term \"holds\" Term •\l"] 449 -> 148 [style=solid label="\"and\""] 449 -> 149 [style=solid label="\"or\""] 449 -> 150 [style=solid label="\"xor\""] @@ -6344,15 +6299,49 @@ digraph "../../obj/src/GrammarParser.y" 449 -> 162 [style=solid label="\"!=\""] 449 -> 163 [style=solid label="\"<=\""] 449 -> 164 [style=solid label="\">=\""] - 449 -> "449R160" [style=solid] - "449R160" [label="R160", fillcolor=3, shape=diamond, style=filled] - 450 [label="State 450\n\l150 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" error \")\" •\l"] - 450 -> "450R150" [style=solid] - "450R150" [label="R150", fillcolor=3, shape=diamond, style=filled] - 451 [label="State 451\n\l149 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" Terms \")\" •\l"] - 451 -> "451R149" [style=solid] - "451R149" [label="R149", fillcolor=3, shape=diamond, style=filled] - 452 [label="State 452\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l220 Initializer: \"(\" Term \")\" \"->\" Term •\l"] + 449 -> "449R161" [style=solid] + "449R161" [label="R161", fillcolor=3, shape=diamond, style=filled] + 450 [label="State 450\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l160 ChooseExpression: \"choose\" AttributedVariables \"in\" Term \"do\" Term •\l"] + 450 -> 148 [style=solid label="\"and\""] + 450 -> 149 [style=solid label="\"or\""] + 450 -> 150 [style=solid label="\"xor\""] + 450 -> 151 [style=solid label="\"implies\""] + 450 -> 152 [style=solid label="\"+\""] + 450 -> 153 [style=solid label="\"-\""] + 450 -> 154 [style=solid label="\"=\""] + 450 -> 155 [style=solid label="\"<\""] + 450 -> 156 [style=solid label="\">\""] + 450 -> 157 [style=solid label="\"*\""] + 450 -> 158 [style=solid label="\"/\""] + 450 -> 159 [style=solid label="\"%\""] + 450 -> 160 [style=solid label="\"^\""] + 450 -> 161 [style=solid label="\"=>\""] + 450 -> 162 [style=solid label="\"!=\""] + 450 -> 163 [style=solid label="\"<=\""] + 450 -> 164 [style=solid label="\">=\""] + 450 -> "450R160" [style=solid] + "450R160" [label="R160", fillcolor=3, shape=diamond, style=filled] + 451 [label="State 451\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l159 ConditionalExpression: \"if\" Term \"then\" Term \"else\" Term •\l"] + 451 -> 148 [style=solid label="\"and\""] + 451 -> 149 [style=solid label="\"or\""] + 451 -> 150 [style=solid label="\"xor\""] + 451 -> 151 [style=solid label="\"implies\""] + 451 -> 152 [style=solid label="\"+\""] + 451 -> 153 [style=solid label="\"-\""] + 451 -> 154 [style=solid label="\"=\""] + 451 -> 155 [style=solid label="\"<\""] + 451 -> 156 [style=solid label="\">\""] + 451 -> 157 [style=solid label="\"*\""] + 451 -> 158 [style=solid label="\"/\""] + 451 -> 159 [style=solid label="\"%\""] + 451 -> 160 [style=solid label="\"^\""] + 451 -> 161 [style=solid label="\"=>\""] + 451 -> 162 [style=solid label="\"!=\""] + 451 -> 163 [style=solid label="\"<=\""] + 451 -> 164 [style=solid label="\">=\""] + 451 -> "451R159" [style=solid] + "451R159" [label="R159", fillcolor=3, shape=diamond, style=filled] + 452 [label="State 452\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l162 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term \"with\" Term •\l"] 452 -> 148 [style=solid label="\"and\""] 452 -> 149 [style=solid label="\"or\""] 452 -> 150 [style=solid label="\"xor\""] @@ -6370,374 +6359,217 @@ digraph "../../obj/src/GrammarParser.y" 452 -> 162 [style=solid label="\"!=\""] 452 -> 163 [style=solid label="\"<=\""] 452 -> 164 [style=solid label="\">=\""] - 452 -> "452R220" [style=solid] - "452R220" [label="R220", fillcolor=3, shape=diamond, style=filled] - 453 [label="State 453\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type • \"=\" Term\l"] - 453 -> 475 [style=solid label="\"=\""] - 454 [label="State 454\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type • \"=\" Term\l"] - 454 -> 476 [style=solid label="\"=\""] - 455 [label="State 455\n\l 39 Enumerators: Enumerators \",\" EnumeratorDefinition •\l"] - 455 -> "455R39" [style=solid] - "455R39" [label="R39", fillcolor=3, shape=diamond, style=filled] - 456 [label="State 456\n\l 87 LetRule: \"let\" VariableBindings \"in\" Rule •\l"] - 456 -> "456R87" [style=solid] - "456R87" [label="R87", fillcolor=3, shape=diamond, style=filled] - 457 [label="State 457\n\l245 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters • \"->\" Type MaybeDefined MaybeInitially\l"] - 457 -> 477 [style=solid label="\"->\""] - 458 [label="State 458\n\l 88 LocalRule: \"local\" LocalFunctionDefinitions \"in\" Rule •\l"] - 458 -> "458R88" [style=solid] - "458R88" [label="R88", fillcolor=3, shape=diamond, style=filled] - 459 [label="State 459\n\l240 LocalFunctionDefinitions: LocalFunctionDefinitions \",\" AttributedLocalFunctionDefinition •\l"] - 459 -> "459R240" [style=solid] - "459R240" [label="R240", fillcolor=3, shape=diamond, style=filled] - 460 [label="State 460\n\l 89 ForallRule: \"forall\" AttributedVariables \"in\" Term • \"do\" Rule\l 90 | \"forall\" AttributedVariables \"in\" Term • \"with\" Term \"do\" Rule\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] - 460 -> 478 [style=solid label="\"do\""] - 460 -> 479 [style=solid label="\"with\""] - 460 -> 148 [style=solid label="\"and\""] - 460 -> 149 [style=solid label="\"or\""] - 460 -> 150 [style=solid label="\"xor\""] - 460 -> 151 [style=solid label="\"implies\""] - 460 -> 152 [style=solid label="\"+\""] - 460 -> 153 [style=solid label="\"-\""] - 460 -> 154 [style=solid label="\"=\""] - 460 -> 155 [style=solid label="\"<\""] - 460 -> 156 [style=solid label="\">\""] - 460 -> 157 [style=solid label="\"*\""] - 460 -> 158 [style=solid label="\"/\""] - 460 -> 159 [style=solid label="\"%\""] - 460 -> 160 [style=solid label="\"^\""] - 460 -> 161 [style=solid label="\"=>\""] - 460 -> 162 [style=solid label="\"!=\""] - 460 -> 163 [style=solid label="\"<=\""] - 460 -> 164 [style=solid label="\">=\""] - 461 [label="State 461\n\l 91 ChooseRule: \"choose\" AttributedVariables \"in\" Term • \"do\" Rule\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] - 461 -> 480 [style=solid label="\"do\""] - 461 -> 148 [style=solid label="\"and\""] - 461 -> 149 [style=solid label="\"or\""] - 461 -> 150 [style=solid label="\"xor\""] - 461 -> 151 [style=solid label="\"implies\""] - 461 -> 152 [style=solid label="\"+\""] - 461 -> 153 [style=solid label="\"-\""] - 461 -> 154 [style=solid label="\"=\""] - 461 -> 155 [style=solid label="\"<\""] - 461 -> 156 [style=solid label="\">\""] - 461 -> 157 [style=solid label="\"*\""] - 461 -> 158 [style=solid label="\"/\""] - 461 -> 159 [style=solid label="\"%\""] - 461 -> 160 [style=solid label="\"^\""] - 461 -> 161 [style=solid label="\"=>\""] - 461 -> 162 [style=solid label="\"!=\""] - 461 -> 163 [style=solid label="\"<=\""] - 461 -> 164 [style=solid label="\">=\""] - 462 [label="State 462\n\l 78 ConditionalRule: \"if\" Term \"then\" Rule •\l 79 | \"if\" Term \"then\" Rule • \"else\" Rule\l"] - 462 -> 481 [style=solid label="\"else\""] - 462 -> "462R78" [style=solid] - "462R78" [label="R78", fillcolor=3, shape=diamond, style=filled] - 463 [label="State 463\n\l 80 CaseRule: \"case\" Term \"of\" \"{\" • CaseLabels \"}\"\l 81 | \"case\" Term \"of\" \"{\" • error \"}\"\l"] - 463 -> 482 [style=dotted] - 463 -> 45 [style=solid label="\"let\""] - 463 -> 8 [style=solid label="\"in\""] - 463 -> 46 [style=solid label="\"forall\""] - 463 -> 47 [style=solid label="\"choose\""] - 463 -> 48 [style=solid label="\"if\""] - 463 -> 483 [style=solid label="\"default\""] - 463 -> 49 [style=solid label="\"exists\""] - 463 -> 50 [style=solid label="\"undef\""] - 463 -> 51 [style=solid label="\"false\""] - 463 -> 52 [style=solid label="\"true\""] - 463 -> 53 [style=solid label="\"not\""] - 463 -> 54 [style=solid label="\"+\""] - 463 -> 55 [style=solid label="\"-\""] - 463 -> 56 [style=solid label="\"(\""] - 463 -> 57 [style=solid label="\"[\""] - 463 -> 484 [style=solid label="\"_\""] - 463 -> 58 [style=solid label="\"|\""] - 463 -> 59 [style=solid label="\"@\""] - 463 -> 60 [style=solid label="\"binary\""] - 463 -> 61 [style=solid label="\"hexadecimal\""] - 463 -> 62 [style=solid label="\"integer\""] - 463 -> 63 [style=solid label="\"rational\""] - 463 -> 64 [style=solid label="\"decimal\""] - 463 -> 65 [style=solid label="\"string\""] - 463 -> 9 [style=solid label="\"identifier\""] - 463 -> 485 [style=dashed label="CaseLabels"] - 463 -> 486 [style=dashed label="CaseLabel"] - 463 -> 487 [style=dashed label="Term"] - 463 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 463 -> 68 [style=dashed label="OperatorExpression"] - 463 -> 69 [style=dashed label="CallExpression"] - 463 -> 70 [style=dashed label="DirectCallExpression"] - 463 -> 71 [style=dashed label="MethodCallExpression"] - 463 -> 72 [style=dashed label="LiteralCallExpression"] - 463 -> 73 [style=dashed label="IndirectCallExpression"] - 463 -> 74 [style=dashed label="TypeCastingExpression"] - 463 -> 75 [style=dashed label="LetExpression"] - 463 -> 76 [style=dashed label="ConditionalExpression"] - 463 -> 77 [style=dashed label="ChooseExpression"] - 463 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 463 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 463 -> 80 [style=dashed label="CardinalityExpression"] - 463 -> 81 [style=dashed label="Literal"] - 463 -> 82 [style=dashed label="UndefinedLiteral"] - 463 -> 83 [style=dashed label="BooleanLiteral"] - 463 -> 84 [style=dashed label="IntegerLiteral"] - 463 -> 85 [style=dashed label="RationalLiteral"] - 463 -> 86 [style=dashed label="DecimalLiteral"] - 463 -> 87 [style=dashed label="BinaryLiteral"] - 463 -> 88 [style=dashed label="StringLiteral"] - 463 -> 89 [style=dashed label="ReferenceLiteral"] - 463 -> 90 [style=dashed label="ListLiteral"] - 463 -> 91 [style=dashed label="RangeLiteral"] - 463 -> 92 [style=dashed label="TupleLiteral"] - 463 -> 93 [style=dashed label="RecordLiteral"] - 463 -> 94 [style=dashed label="Identifier"] - 463 -> 95 [style=dashed label="IdentifierPath"] - 464 [label="State 464\n\l103 WhileRule: \"while\" Term \"do\" Rule •\l"] - 464 -> "464R103" [style=solid] - "464R103" [label="R103", fillcolor=3, shape=diamond, style=filled] - 465 [label="State 465\n\l 31 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"=\" Rule •\l"] - 465 -> "465R31" [style=solid] - "465R31" [label="R31", fillcolor=3, shape=diamond, style=filled] - 466 [label="State 466\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type • \"=\" Rule\l"] - 466 -> 488 [style=solid label="\"=\""] - 467 [label="State 467\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"=\" Rule •\l"] - 467 -> "467R29" [style=solid] - "467R29" [label="R29", fillcolor=3, shape=diamond, style=filled] - 468 [label="State 468\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type • \"=\" Rule\l"] - 468 -> 489 [style=solid label="\"=\""] - 469 [label="State 469\n\l 60 DeclarationDefinition: \"derived\" Identifier \":\" • MaybeFunctionParameters \"->\" Type\l"] - 469 -> 8 [style=solid label="\"in\""] - 469 -> 109 [style=solid label="\"(\""] - 469 -> 9 [style=solid label="\"identifier\""] - 469 -> 307 [style=dashed label="Type"] - 469 -> 111 [style=dashed label="BasicType"] - 469 -> 112 [style=dashed label="TupleType"] - 469 -> 113 [style=dashed label="RecordType"] - 469 -> 114 [style=dashed label="TemplateType"] - 469 -> 115 [style=dashed label="RelationType"] - 469 -> 116 [style=dashed label="FixedSizedType"] - 469 -> 304 [style=dashed label="FunctionParameters"] - 469 -> 490 [style=dashed label="MaybeFunctionParameters"] - 469 -> 94 [style=dashed label="Identifier"] - 469 -> 190 [style=dashed label="IdentifierPath"] - 469 -> "469R210" [style=solid] - "469R210" [label="R210", fillcolor=3, shape=diamond, style=filled] - 470 [label="State 470\n\l 61 DeclarationDefinition: \"rule\" Identifier \":\" • MaybeFunctionParameters \"->\" Type\l"] - 470 -> 8 [style=solid label="\"in\""] - 470 -> 109 [style=solid label="\"(\""] - 470 -> 9 [style=solid label="\"identifier\""] - 470 -> 307 [style=dashed label="Type"] - 470 -> 111 [style=dashed label="BasicType"] - 470 -> 112 [style=dashed label="TupleType"] - 470 -> 113 [style=dashed label="RecordType"] - 470 -> 114 [style=dashed label="TemplateType"] - 470 -> 115 [style=dashed label="RelationType"] - 470 -> 116 [style=dashed label="FixedSizedType"] - 470 -> 304 [style=dashed label="FunctionParameters"] - 470 -> 491 [style=dashed label="MaybeFunctionParameters"] - 470 -> 94 [style=dashed label="Identifier"] - 470 -> 190 [style=dashed label="IdentifierPath"] - 470 -> "470R210" [style=solid] - "470R210" [label="R210", fillcolor=3, shape=diamond, style=filled] - 471 [label="State 471\n\l 54 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions • \"}\"\l"] - 471 -> 492 [style=solid label="\"}\""] - 472 [label="State 472\n\l205 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" Type \">\" •\l"] - 472 -> "472R205" [style=solid] - "472R205" [label="R205", fillcolor=3, shape=diamond, style=filled] - 473 [label="State 473\n\l213 MaybeDefined: \"defined\" • \"{\" Term \"}\"\l"] - 473 -> 493 [style=solid label="\"{\""] - 474 [label="State 474\n\l 35 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined • MaybeInitially\l"] - 474 -> 494 [style=solid label="\"=\""] - 474 -> 495 [style=dashed label="MaybeInitially"] - 474 -> "474R216" [style=solid] - "474R216" [label="R216", fillcolor=3, shape=diamond, style=filled] - 475 [label="State 475\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type \"=\" • Term\l"] - 475 -> 45 [style=solid label="\"let\""] - 475 -> 8 [style=solid label="\"in\""] - 475 -> 46 [style=solid label="\"forall\""] - 475 -> 47 [style=solid label="\"choose\""] - 475 -> 48 [style=solid label="\"if\""] - 475 -> 49 [style=solid label="\"exists\""] - 475 -> 50 [style=solid label="\"undef\""] - 475 -> 51 [style=solid label="\"false\""] - 475 -> 52 [style=solid label="\"true\""] - 475 -> 53 [style=solid label="\"not\""] - 475 -> 54 [style=solid label="\"+\""] - 475 -> 55 [style=solid label="\"-\""] - 475 -> 56 [style=solid label="\"(\""] - 475 -> 57 [style=solid label="\"[\""] - 475 -> 58 [style=solid label="\"|\""] - 475 -> 59 [style=solid label="\"@\""] - 475 -> 60 [style=solid label="\"binary\""] - 475 -> 61 [style=solid label="\"hexadecimal\""] - 475 -> 62 [style=solid label="\"integer\""] - 475 -> 63 [style=solid label="\"rational\""] - 475 -> 64 [style=solid label="\"decimal\""] - 475 -> 65 [style=solid label="\"string\""] - 475 -> 9 [style=solid label="\"identifier\""] - 475 -> 496 [style=dashed label="Term"] - 475 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 475 -> 68 [style=dashed label="OperatorExpression"] - 475 -> 69 [style=dashed label="CallExpression"] - 475 -> 70 [style=dashed label="DirectCallExpression"] - 475 -> 71 [style=dashed label="MethodCallExpression"] - 475 -> 72 [style=dashed label="LiteralCallExpression"] - 475 -> 73 [style=dashed label="IndirectCallExpression"] - 475 -> 74 [style=dashed label="TypeCastingExpression"] - 475 -> 75 [style=dashed label="LetExpression"] - 475 -> 76 [style=dashed label="ConditionalExpression"] - 475 -> 77 [style=dashed label="ChooseExpression"] - 475 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 475 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 475 -> 80 [style=dashed label="CardinalityExpression"] - 475 -> 81 [style=dashed label="Literal"] - 475 -> 82 [style=dashed label="UndefinedLiteral"] - 475 -> 83 [style=dashed label="BooleanLiteral"] - 475 -> 84 [style=dashed label="IntegerLiteral"] - 475 -> 85 [style=dashed label="RationalLiteral"] - 475 -> 86 [style=dashed label="DecimalLiteral"] - 475 -> 87 [style=dashed label="BinaryLiteral"] - 475 -> 88 [style=dashed label="StringLiteral"] - 475 -> 89 [style=dashed label="ReferenceLiteral"] - 475 -> 90 [style=dashed label="ListLiteral"] - 475 -> 91 [style=dashed label="RangeLiteral"] - 475 -> 92 [style=dashed label="TupleLiteral"] - 475 -> 93 [style=dashed label="RecordLiteral"] - 475 -> 94 [style=dashed label="Identifier"] - 475 -> 95 [style=dashed label="IdentifierPath"] - 476 [label="State 476\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" • Term\l"] - 476 -> 45 [style=solid label="\"let\""] - 476 -> 8 [style=solid label="\"in\""] - 476 -> 46 [style=solid label="\"forall\""] - 476 -> 47 [style=solid label="\"choose\""] - 476 -> 48 [style=solid label="\"if\""] - 476 -> 49 [style=solid label="\"exists\""] - 476 -> 50 [style=solid label="\"undef\""] - 476 -> 51 [style=solid label="\"false\""] - 476 -> 52 [style=solid label="\"true\""] - 476 -> 53 [style=solid label="\"not\""] - 476 -> 54 [style=solid label="\"+\""] - 476 -> 55 [style=solid label="\"-\""] - 476 -> 56 [style=solid label="\"(\""] - 476 -> 57 [style=solid label="\"[\""] - 476 -> 58 [style=solid label="\"|\""] - 476 -> 59 [style=solid label="\"@\""] - 476 -> 60 [style=solid label="\"binary\""] - 476 -> 61 [style=solid label="\"hexadecimal\""] - 476 -> 62 [style=solid label="\"integer\""] - 476 -> 63 [style=solid label="\"rational\""] - 476 -> 64 [style=solid label="\"decimal\""] - 476 -> 65 [style=solid label="\"string\""] - 476 -> 9 [style=solid label="\"identifier\""] - 476 -> 497 [style=dashed label="Term"] - 476 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 476 -> 68 [style=dashed label="OperatorExpression"] - 476 -> 69 [style=dashed label="CallExpression"] - 476 -> 70 [style=dashed label="DirectCallExpression"] - 476 -> 71 [style=dashed label="MethodCallExpression"] - 476 -> 72 [style=dashed label="LiteralCallExpression"] - 476 -> 73 [style=dashed label="IndirectCallExpression"] - 476 -> 74 [style=dashed label="TypeCastingExpression"] - 476 -> 75 [style=dashed label="LetExpression"] - 476 -> 76 [style=dashed label="ConditionalExpression"] - 476 -> 77 [style=dashed label="ChooseExpression"] - 476 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 476 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 476 -> 80 [style=dashed label="CardinalityExpression"] - 476 -> 81 [style=dashed label="Literal"] - 476 -> 82 [style=dashed label="UndefinedLiteral"] - 476 -> 83 [style=dashed label="BooleanLiteral"] - 476 -> 84 [style=dashed label="IntegerLiteral"] - 476 -> 85 [style=dashed label="RationalLiteral"] - 476 -> 86 [style=dashed label="DecimalLiteral"] - 476 -> 87 [style=dashed label="BinaryLiteral"] - 476 -> 88 [style=dashed label="StringLiteral"] - 476 -> 89 [style=dashed label="ReferenceLiteral"] - 476 -> 90 [style=dashed label="ListLiteral"] - 476 -> 91 [style=dashed label="RangeLiteral"] - 476 -> 92 [style=dashed label="TupleLiteral"] - 476 -> 93 [style=dashed label="RecordLiteral"] - 476 -> 94 [style=dashed label="Identifier"] - 476 -> 95 [style=dashed label="IdentifierPath"] - 477 [label="State 477\n\l245 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" • Type MaybeDefined MaybeInitially\l"] - 477 -> 8 [style=solid label="\"in\""] - 477 -> 109 [style=solid label="\"(\""] - 477 -> 9 [style=solid label="\"identifier\""] - 477 -> 498 [style=dashed label="Type"] - 477 -> 111 [style=dashed label="BasicType"] - 477 -> 112 [style=dashed label="TupleType"] - 477 -> 113 [style=dashed label="RecordType"] - 477 -> 114 [style=dashed label="TemplateType"] - 477 -> 115 [style=dashed label="RelationType"] - 477 -> 116 [style=dashed label="FixedSizedType"] - 477 -> 94 [style=dashed label="Identifier"] - 477 -> 190 [style=dashed label="IdentifierPath"] - 478 [label="State 478\n\l 89 ForallRule: \"forall\" AttributedVariables \"in\" Term \"do\" • Rule\l"] - 478 -> 259 [style=solid label="\"seq\""] - 478 -> 260 [style=solid label="\"par\""] - 478 -> 261 [style=solid label="\"skip\""] - 478 -> 262 [style=solid label="\"let\""] - 478 -> 263 [style=solid label="\"local\""] - 478 -> 8 [style=solid label="\"in\""] - 478 -> 264 [style=solid label="\"forall\""] - 478 -> 265 [style=solid label="\"choose\""] - 478 -> 266 [style=solid label="\"iterate\""] - 478 -> 267 [style=solid label="\"if\""] - 478 -> 268 [style=solid label="\"case\""] - 478 -> 269 [style=solid label="\"while\""] - 478 -> 50 [style=solid label="\"undef\""] - 478 -> 51 [style=solid label="\"false\""] - 478 -> 52 [style=solid label="\"true\""] - 478 -> 54 [style=solid label="\"+\""] - 478 -> 55 [style=solid label="\"-\""] - 478 -> 56 [style=solid label="\"(\""] - 478 -> 57 [style=solid label="\"[\""] - 478 -> 270 [style=solid label="\"{\""] - 478 -> 59 [style=solid label="\"@\""] - 478 -> 271 [style=solid label="\"{|\""] - 478 -> 60 [style=solid label="\"binary\""] - 478 -> 61 [style=solid label="\"hexadecimal\""] - 478 -> 62 [style=solid label="\"integer\""] - 478 -> 63 [style=solid label="\"rational\""] - 478 -> 64 [style=solid label="\"decimal\""] - 478 -> 65 [style=solid label="\"string\""] - 478 -> 9 [style=solid label="\"identifier\""] - 478 -> 499 [style=dashed label="Rule"] - 478 -> 273 [style=dashed label="SkipRule"] - 478 -> 274 [style=dashed label="ConditionalRule"] - 478 -> 275 [style=dashed label="CaseRule"] - 478 -> 276 [style=dashed label="LetRule"] - 478 -> 277 [style=dashed label="LocalRule"] - 478 -> 278 [style=dashed label="ForallRule"] - 478 -> 279 [style=dashed label="ChooseRule"] - 478 -> 280 [style=dashed label="IterateRule"] - 478 -> 281 [style=dashed label="BlockRule"] - 478 -> 282 [style=dashed label="SequenceRule"] - 478 -> 283 [style=dashed label="UpdateRule"] - 478 -> 284 [style=dashed label="CallRule"] - 478 -> 285 [style=dashed label="WhileRule"] - 478 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 478 -> 287 [style=dashed label="CallExpression"] - 478 -> 288 [style=dashed label="DirectCallExpression"] - 478 -> 71 [style=dashed label="MethodCallExpression"] - 478 -> 72 [style=dashed label="LiteralCallExpression"] - 478 -> 73 [style=dashed label="IndirectCallExpression"] - 478 -> 81 [style=dashed label="Literal"] - 478 -> 82 [style=dashed label="UndefinedLiteral"] - 478 -> 83 [style=dashed label="BooleanLiteral"] - 478 -> 84 [style=dashed label="IntegerLiteral"] - 478 -> 85 [style=dashed label="RationalLiteral"] - 478 -> 86 [style=dashed label="DecimalLiteral"] - 478 -> 87 [style=dashed label="BinaryLiteral"] - 478 -> 88 [style=dashed label="StringLiteral"] - 478 -> 89 [style=dashed label="ReferenceLiteral"] - 478 -> 90 [style=dashed label="ListLiteral"] - 478 -> 91 [style=dashed label="RangeLiteral"] - 478 -> 92 [style=dashed label="TupleLiteral"] - 478 -> 93 [style=dashed label="RecordLiteral"] - 478 -> 94 [style=dashed label="Identifier"] - 478 -> 95 [style=dashed label="IdentifierPath"] - 479 [label="State 479\n\l 90 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" • Term \"do\" Rule\l"] + 452 -> "452R162" [style=solid] + "452R162" [label="R162", fillcolor=3, shape=diamond, style=filled] + 453 [label="State 453\n\l152 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" error \")\" •\l"] + 453 -> "453R152" [style=solid] + "453R152" [label="R152", fillcolor=3, shape=diamond, style=filled] + 454 [label="State 454\n\l151 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" Terms \")\" •\l"] + 454 -> "454R151" [style=solid] + "454R151" [label="R151", fillcolor=3, shape=diamond, style=filled] + 455 [label="State 455\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l222 Initializer: \"(\" Term \")\" \"->\" Term •\l"] + 455 -> 148 [style=solid label="\"and\""] + 455 -> 149 [style=solid label="\"or\""] + 455 -> 150 [style=solid label="\"xor\""] + 455 -> 151 [style=solid label="\"implies\""] + 455 -> 152 [style=solid label="\"+\""] + 455 -> 153 [style=solid label="\"-\""] + 455 -> 154 [style=solid label="\"=\""] + 455 -> 155 [style=solid label="\"<\""] + 455 -> 156 [style=solid label="\">\""] + 455 -> 157 [style=solid label="\"*\""] + 455 -> 158 [style=solid label="\"/\""] + 455 -> 159 [style=solid label="\"%\""] + 455 -> 160 [style=solid label="\"^\""] + 455 -> 161 [style=solid label="\"=>\""] + 455 -> 162 [style=solid label="\"!=\""] + 455 -> 163 [style=solid label="\"<=\""] + 455 -> 164 [style=solid label="\">=\""] + 455 -> "455R222" [style=solid] + "455R222" [label="R222", fillcolor=3, shape=diamond, style=filled] + 456 [label="State 456\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type • \"=\" Term\l"] + 456 -> 479 [style=solid label="\"=\""] + 457 [label="State 457\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type • \"=\" Term\l"] + 457 -> 480 [style=solid label="\"=\""] + 458 [label="State 458\n\l 37 Enumerators: Enumerators \",\" EnumeratorDefinition •\l"] + 458 -> "458R37" [style=solid] + "458R37" [label="R37", fillcolor=3, shape=diamond, style=filled] + 459 [label="State 459\n\l 89 LetRule: \"let\" VariableBindings \"in\" Rule •\l"] + 459 -> "459R89" [style=solid] + "459R89" [label="R89", fillcolor=3, shape=diamond, style=filled] + 460 [label="State 460\n\l247 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters • \"->\" Type MaybeDefined MaybeInitially\l"] + 460 -> 481 [style=solid label="\"->\""] + 461 [label="State 461\n\l 90 LocalRule: \"local\" LocalFunctionDefinitions \"in\" Rule •\l"] + 461 -> "461R90" [style=solid] + "461R90" [label="R90", fillcolor=3, shape=diamond, style=filled] + 462 [label="State 462\n\l242 LocalFunctionDefinitions: LocalFunctionDefinitions \",\" AttributedLocalFunctionDefinition •\l"] + 462 -> "462R242" [style=solid] + "462R242" [label="R242", fillcolor=3, shape=diamond, style=filled] + 463 [label="State 463\n\l 91 ForallRule: \"forall\" AttributedVariables \"in\" Term • \"do\" Rule\l 92 | \"forall\" AttributedVariables \"in\" Term • \"with\" Term \"do\" Rule\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] + 463 -> 482 [style=solid label="\"do\""] + 463 -> 483 [style=solid label="\"with\""] + 463 -> 148 [style=solid label="\"and\""] + 463 -> 149 [style=solid label="\"or\""] + 463 -> 150 [style=solid label="\"xor\""] + 463 -> 151 [style=solid label="\"implies\""] + 463 -> 152 [style=solid label="\"+\""] + 463 -> 153 [style=solid label="\"-\""] + 463 -> 154 [style=solid label="\"=\""] + 463 -> 155 [style=solid label="\"<\""] + 463 -> 156 [style=solid label="\">\""] + 463 -> 157 [style=solid label="\"*\""] + 463 -> 158 [style=solid label="\"/\""] + 463 -> 159 [style=solid label="\"%\""] + 463 -> 160 [style=solid label="\"^\""] + 463 -> 161 [style=solid label="\"=>\""] + 463 -> 162 [style=solid label="\"!=\""] + 463 -> 163 [style=solid label="\"<=\""] + 463 -> 164 [style=solid label="\">=\""] + 464 [label="State 464\n\l 93 ChooseRule: \"choose\" AttributedVariables \"in\" Term • \"do\" Rule\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] + 464 -> 484 [style=solid label="\"do\""] + 464 -> 148 [style=solid label="\"and\""] + 464 -> 149 [style=solid label="\"or\""] + 464 -> 150 [style=solid label="\"xor\""] + 464 -> 151 [style=solid label="\"implies\""] + 464 -> 152 [style=solid label="\"+\""] + 464 -> 153 [style=solid label="\"-\""] + 464 -> 154 [style=solid label="\"=\""] + 464 -> 155 [style=solid label="\"<\""] + 464 -> 156 [style=solid label="\">\""] + 464 -> 157 [style=solid label="\"*\""] + 464 -> 158 [style=solid label="\"/\""] + 464 -> 159 [style=solid label="\"%\""] + 464 -> 160 [style=solid label="\"^\""] + 464 -> 161 [style=solid label="\"=>\""] + 464 -> 162 [style=solid label="\"!=\""] + 464 -> 163 [style=solid label="\"<=\""] + 464 -> 164 [style=solid label="\">=\""] + 465 [label="State 465\n\l 80 ConditionalRule: \"if\" Term \"then\" Rule •\l 81 | \"if\" Term \"then\" Rule • \"else\" Rule\l"] + 465 -> 485 [style=solid label="\"else\""] + 465 -> "465R80" [style=solid] + "465R80" [label="R80", fillcolor=3, shape=diamond, style=filled] + 466 [label="State 466\n\l 82 CaseRule: \"case\" Term \"of\" \"{\" • CaseLabels \"}\"\l 83 | \"case\" Term \"of\" \"{\" • error \"}\"\l"] + 466 -> 486 [style=dotted] + 466 -> 45 [style=solid label="\"let\""] + 466 -> 8 [style=solid label="\"in\""] + 466 -> 46 [style=solid label="\"forall\""] + 466 -> 47 [style=solid label="\"choose\""] + 466 -> 48 [style=solid label="\"if\""] + 466 -> 487 [style=solid label="\"default\""] + 466 -> 49 [style=solid label="\"exists\""] + 466 -> 50 [style=solid label="\"undef\""] + 466 -> 51 [style=solid label="\"false\""] + 466 -> 52 [style=solid label="\"true\""] + 466 -> 53 [style=solid label="\"not\""] + 466 -> 54 [style=solid label="\"+\""] + 466 -> 55 [style=solid label="\"-\""] + 466 -> 56 [style=solid label="\"(\""] + 466 -> 57 [style=solid label="\"[\""] + 466 -> 488 [style=solid label="\"_\""] + 466 -> 58 [style=solid label="\"|\""] + 466 -> 59 [style=solid label="\"@\""] + 466 -> 60 [style=solid label="\"binary\""] + 466 -> 61 [style=solid label="\"hexadecimal\""] + 466 -> 62 [style=solid label="\"integer\""] + 466 -> 63 [style=solid label="\"rational\""] + 466 -> 64 [style=solid label="\"decimal\""] + 466 -> 65 [style=solid label="\"string\""] + 466 -> 9 [style=solid label="\"identifier\""] + 466 -> 489 [style=dashed label="CaseLabels"] + 466 -> 490 [style=dashed label="CaseLabel"] + 466 -> 491 [style=dashed label="Term"] + 466 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 466 -> 68 [style=dashed label="OperatorExpression"] + 466 -> 69 [style=dashed label="CallExpression"] + 466 -> 70 [style=dashed label="DirectCallExpression"] + 466 -> 71 [style=dashed label="MethodCallExpression"] + 466 -> 72 [style=dashed label="LiteralCallExpression"] + 466 -> 73 [style=dashed label="IndirectCallExpression"] + 466 -> 74 [style=dashed label="TypeCastingExpression"] + 466 -> 75 [style=dashed label="LetExpression"] + 466 -> 76 [style=dashed label="ConditionalExpression"] + 466 -> 77 [style=dashed label="ChooseExpression"] + 466 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 466 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 466 -> 80 [style=dashed label="CardinalityExpression"] + 466 -> 81 [style=dashed label="Literal"] + 466 -> 82 [style=dashed label="UndefinedLiteral"] + 466 -> 83 [style=dashed label="BooleanLiteral"] + 466 -> 84 [style=dashed label="IntegerLiteral"] + 466 -> 85 [style=dashed label="RationalLiteral"] + 466 -> 86 [style=dashed label="DecimalLiteral"] + 466 -> 87 [style=dashed label="BinaryLiteral"] + 466 -> 88 [style=dashed label="StringLiteral"] + 466 -> 89 [style=dashed label="ReferenceLiteral"] + 466 -> 90 [style=dashed label="ListLiteral"] + 466 -> 91 [style=dashed label="RangeLiteral"] + 466 -> 92 [style=dashed label="TupleLiteral"] + 466 -> 93 [style=dashed label="RecordLiteral"] + 466 -> 94 [style=dashed label="Identifier"] + 466 -> 95 [style=dashed label="IdentifierPath"] + 467 [label="State 467\n\l105 WhileRule: \"while\" Term \"do\" Rule •\l"] + 467 -> "467R105" [style=solid] + "467R105" [label="R105", fillcolor=3, shape=diamond, style=filled] + 468 [label="State 468\n\l 31 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"=\" Rule •\l"] + 468 -> "468R31" [style=solid] + "468R31" [label="R31", fillcolor=3, shape=diamond, style=filled] + 469 [label="State 469\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type • \"=\" Rule\l"] + 469 -> 492 [style=solid label="\"=\""] + 470 [label="State 470\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"=\" Rule •\l"] + 470 -> "470R29" [style=solid] + "470R29" [label="R29", fillcolor=3, shape=diamond, style=filled] + 471 [label="State 471\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type • \"=\" Rule\l"] + 471 -> 493 [style=solid label="\"=\""] + 472 [label="State 472\n\l 46 StructureDefinitionElement: \"[\" Attributes \"]\" • FunctionDefinition\l"] + 472 -> 25 [style=solid label="\"function\""] + 472 -> 494 [style=dashed label="FunctionDefinition"] + 473 [label="State 473\n\l 62 DeclarationDefinition: \"derived\" Identifier \":\" • MaybeFunctionParameters \"->\" Type\l"] + 473 -> 8 [style=solid label="\"in\""] + 473 -> 109 [style=solid label="\"(\""] + 473 -> 9 [style=solid label="\"identifier\""] + 473 -> 307 [style=dashed label="Type"] + 473 -> 111 [style=dashed label="BasicType"] + 473 -> 112 [style=dashed label="TupleType"] + 473 -> 113 [style=dashed label="RecordType"] + 473 -> 114 [style=dashed label="TemplateType"] + 473 -> 115 [style=dashed label="RelationType"] + 473 -> 116 [style=dashed label="FixedSizedType"] + 473 -> 304 [style=dashed label="FunctionParameters"] + 473 -> 495 [style=dashed label="MaybeFunctionParameters"] + 473 -> 94 [style=dashed label="Identifier"] + 473 -> 190 [style=dashed label="IdentifierPath"] + 473 -> "473R212" [style=solid] + "473R212" [label="R212", fillcolor=3, shape=diamond, style=filled] + 474 [label="State 474\n\l 63 DeclarationDefinition: \"rule\" Identifier \":\" • MaybeFunctionParameters \"->\" Type\l"] + 474 -> 8 [style=solid label="\"in\""] + 474 -> 109 [style=solid label="\"(\""] + 474 -> 9 [style=solid label="\"identifier\""] + 474 -> 307 [style=dashed label="Type"] + 474 -> 111 [style=dashed label="BasicType"] + 474 -> 112 [style=dashed label="TupleType"] + 474 -> 113 [style=dashed label="RecordType"] + 474 -> 114 [style=dashed label="TemplateType"] + 474 -> 115 [style=dashed label="RelationType"] + 474 -> 116 [style=dashed label="FixedSizedType"] + 474 -> 304 [style=dashed label="FunctionParameters"] + 474 -> 496 [style=dashed label="MaybeFunctionParameters"] + 474 -> 94 [style=dashed label="Identifier"] + 474 -> 190 [style=dashed label="IdentifierPath"] + 474 -> "474R212" [style=solid] + "474R212" [label="R212", fillcolor=3, shape=diamond, style=filled] + 475 [label="State 475\n\l 56 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions • \"}\"\l"] + 475 -> 497 [style=solid label="\"}\""] + 476 [label="State 476\n\l207 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" Type \">\" •\l"] + 476 -> "476R207" [style=solid] + "476R207" [label="R207", fillcolor=3, shape=diamond, style=filled] + 477 [label="State 477\n\l215 MaybeDefined: \"defined\" • \"{\" Term \"}\"\l"] + 477 -> 498 [style=solid label="\"{\""] + 478 [label="State 478\n\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined • MaybeInitially\l"] + 478 -> 499 [style=solid label="\"=\""] + 478 -> 500 [style=dashed label="MaybeInitially"] + 478 -> "478R218" [style=solid] + "478R218" [label="R218", fillcolor=3, shape=diamond, style=filled] + 479 [label="State 479\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type \"=\" • Term\l"] 479 -> 45 [style=solid label="\"let\""] 479 -> 8 [style=solid label="\"in\""] 479 -> 46 [style=solid label="\"forall\""] @@ -6761,7 +6593,7 @@ digraph "../../obj/src/GrammarParser.y" 479 -> 64 [style=solid label="\"decimal\""] 479 -> 65 [style=solid label="\"string\""] 479 -> 9 [style=solid label="\"identifier\""] - 479 -> 500 [style=dashed label="Term"] + 479 -> 501 [style=dashed label="Term"] 479 -> 67 [style=dashed label="SimpleOrClaspedTerm"] 479 -> 68 [style=dashed label="OperatorExpression"] 479 -> 69 [style=dashed label="CallExpression"] @@ -6791,29 +6623,23 @@ digraph "../../obj/src/GrammarParser.y" 479 -> 93 [style=dashed label="RecordLiteral"] 479 -> 94 [style=dashed label="Identifier"] 479 -> 95 [style=dashed label="IdentifierPath"] - 480 [label="State 480\n\l 91 ChooseRule: \"choose\" AttributedVariables \"in\" Term \"do\" • Rule\l"] - 480 -> 259 [style=solid label="\"seq\""] - 480 -> 260 [style=solid label="\"par\""] - 480 -> 261 [style=solid label="\"skip\""] - 480 -> 262 [style=solid label="\"let\""] - 480 -> 263 [style=solid label="\"local\""] + 480 [label="State 480\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" • Term\l"] + 480 -> 45 [style=solid label="\"let\""] 480 -> 8 [style=solid label="\"in\""] - 480 -> 264 [style=solid label="\"forall\""] - 480 -> 265 [style=solid label="\"choose\""] - 480 -> 266 [style=solid label="\"iterate\""] - 480 -> 267 [style=solid label="\"if\""] - 480 -> 268 [style=solid label="\"case\""] - 480 -> 269 [style=solid label="\"while\""] + 480 -> 46 [style=solid label="\"forall\""] + 480 -> 47 [style=solid label="\"choose\""] + 480 -> 48 [style=solid label="\"if\""] + 480 -> 49 [style=solid label="\"exists\""] 480 -> 50 [style=solid label="\"undef\""] 480 -> 51 [style=solid label="\"false\""] 480 -> 52 [style=solid label="\"true\""] + 480 -> 53 [style=solid label="\"not\""] 480 -> 54 [style=solid label="\"+\""] 480 -> 55 [style=solid label="\"-\""] 480 -> 56 [style=solid label="\"(\""] 480 -> 57 [style=solid label="\"[\""] - 480 -> 270 [style=solid label="\"{\""] + 480 -> 58 [style=solid label="\"|\""] 480 -> 59 [style=solid label="\"@\""] - 480 -> 271 [style=solid label="\"{|\""] 480 -> 60 [style=solid label="\"binary\""] 480 -> 61 [style=solid label="\"hexadecimal\""] 480 -> 62 [style=solid label="\"integer\""] @@ -6821,26 +6647,21 @@ digraph "../../obj/src/GrammarParser.y" 480 -> 64 [style=solid label="\"decimal\""] 480 -> 65 [style=solid label="\"string\""] 480 -> 9 [style=solid label="\"identifier\""] - 480 -> 501 [style=dashed label="Rule"] - 480 -> 273 [style=dashed label="SkipRule"] - 480 -> 274 [style=dashed label="ConditionalRule"] - 480 -> 275 [style=dashed label="CaseRule"] - 480 -> 276 [style=dashed label="LetRule"] - 480 -> 277 [style=dashed label="LocalRule"] - 480 -> 278 [style=dashed label="ForallRule"] - 480 -> 279 [style=dashed label="ChooseRule"] - 480 -> 280 [style=dashed label="IterateRule"] - 480 -> 281 [style=dashed label="BlockRule"] - 480 -> 282 [style=dashed label="SequenceRule"] - 480 -> 283 [style=dashed label="UpdateRule"] - 480 -> 284 [style=dashed label="CallRule"] - 480 -> 285 [style=dashed label="WhileRule"] - 480 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 480 -> 287 [style=dashed label="CallExpression"] - 480 -> 288 [style=dashed label="DirectCallExpression"] + 480 -> 502 [style=dashed label="Term"] + 480 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 480 -> 68 [style=dashed label="OperatorExpression"] + 480 -> 69 [style=dashed label="CallExpression"] + 480 -> 70 [style=dashed label="DirectCallExpression"] 480 -> 71 [style=dashed label="MethodCallExpression"] 480 -> 72 [style=dashed label="LiteralCallExpression"] 480 -> 73 [style=dashed label="IndirectCallExpression"] + 480 -> 74 [style=dashed label="TypeCastingExpression"] + 480 -> 75 [style=dashed label="LetExpression"] + 480 -> 76 [style=dashed label="ConditionalExpression"] + 480 -> 77 [style=dashed label="ChooseExpression"] + 480 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 480 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 480 -> 80 [style=dashed label="CardinalityExpression"] 480 -> 81 [style=dashed label="Literal"] 480 -> 82 [style=dashed label="UndefinedLiteral"] 480 -> 83 [style=dashed label="BooleanLiteral"] @@ -6856,97 +6677,226 @@ digraph "../../obj/src/GrammarParser.y" 480 -> 93 [style=dashed label="RecordLiteral"] 480 -> 94 [style=dashed label="Identifier"] 480 -> 95 [style=dashed label="IdentifierPath"] - 481 [label="State 481\n\l 79 ConditionalRule: \"if\" Term \"then\" Rule \"else\" • Rule\l"] - 481 -> 259 [style=solid label="\"seq\""] - 481 -> 260 [style=solid label="\"par\""] - 481 -> 261 [style=solid label="\"skip\""] - 481 -> 262 [style=solid label="\"let\""] - 481 -> 263 [style=solid label="\"local\""] + 481 [label="State 481\n\l247 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" • Type MaybeDefined MaybeInitially\l"] 481 -> 8 [style=solid label="\"in\""] - 481 -> 264 [style=solid label="\"forall\""] - 481 -> 265 [style=solid label="\"choose\""] - 481 -> 266 [style=solid label="\"iterate\""] - 481 -> 267 [style=solid label="\"if\""] - 481 -> 268 [style=solid label="\"case\""] - 481 -> 269 [style=solid label="\"while\""] - 481 -> 50 [style=solid label="\"undef\""] - 481 -> 51 [style=solid label="\"false\""] - 481 -> 52 [style=solid label="\"true\""] - 481 -> 54 [style=solid label="\"+\""] - 481 -> 55 [style=solid label="\"-\""] - 481 -> 56 [style=solid label="\"(\""] - 481 -> 57 [style=solid label="\"[\""] - 481 -> 270 [style=solid label="\"{\""] - 481 -> 59 [style=solid label="\"@\""] - 481 -> 271 [style=solid label="\"{|\""] - 481 -> 60 [style=solid label="\"binary\""] - 481 -> 61 [style=solid label="\"hexadecimal\""] - 481 -> 62 [style=solid label="\"integer\""] - 481 -> 63 [style=solid label="\"rational\""] - 481 -> 64 [style=solid label="\"decimal\""] - 481 -> 65 [style=solid label="\"string\""] + 481 -> 109 [style=solid label="\"(\""] 481 -> 9 [style=solid label="\"identifier\""] - 481 -> 502 [style=dashed label="Rule"] - 481 -> 273 [style=dashed label="SkipRule"] - 481 -> 274 [style=dashed label="ConditionalRule"] - 481 -> 275 [style=dashed label="CaseRule"] - 481 -> 276 [style=dashed label="LetRule"] - 481 -> 277 [style=dashed label="LocalRule"] - 481 -> 278 [style=dashed label="ForallRule"] - 481 -> 279 [style=dashed label="ChooseRule"] - 481 -> 280 [style=dashed label="IterateRule"] - 481 -> 281 [style=dashed label="BlockRule"] - 481 -> 282 [style=dashed label="SequenceRule"] - 481 -> 283 [style=dashed label="UpdateRule"] - 481 -> 284 [style=dashed label="CallRule"] - 481 -> 285 [style=dashed label="WhileRule"] - 481 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 481 -> 287 [style=dashed label="CallExpression"] - 481 -> 288 [style=dashed label="DirectCallExpression"] - 481 -> 71 [style=dashed label="MethodCallExpression"] - 481 -> 72 [style=dashed label="LiteralCallExpression"] - 481 -> 73 [style=dashed label="IndirectCallExpression"] - 481 -> 81 [style=dashed label="Literal"] - 481 -> 82 [style=dashed label="UndefinedLiteral"] - 481 -> 83 [style=dashed label="BooleanLiteral"] - 481 -> 84 [style=dashed label="IntegerLiteral"] - 481 -> 85 [style=dashed label="RationalLiteral"] - 481 -> 86 [style=dashed label="DecimalLiteral"] - 481 -> 87 [style=dashed label="BinaryLiteral"] - 481 -> 88 [style=dashed label="StringLiteral"] - 481 -> 89 [style=dashed label="ReferenceLiteral"] - 481 -> 90 [style=dashed label="ListLiteral"] - 481 -> 91 [style=dashed label="RangeLiteral"] - 481 -> 92 [style=dashed label="TupleLiteral"] - 481 -> 93 [style=dashed label="RecordLiteral"] + 481 -> 503 [style=dashed label="Type"] + 481 -> 111 [style=dashed label="BasicType"] + 481 -> 112 [style=dashed label="TupleType"] + 481 -> 113 [style=dashed label="RecordType"] + 481 -> 114 [style=dashed label="TemplateType"] + 481 -> 115 [style=dashed label="RelationType"] + 481 -> 116 [style=dashed label="FixedSizedType"] 481 -> 94 [style=dashed label="Identifier"] - 481 -> 95 [style=dashed label="IdentifierPath"] - 482 [label="State 482\n\l 81 CaseRule: \"case\" Term \"of\" \"{\" error • \"}\"\l"] - 482 -> 503 [style=solid label="\"}\""] - 483 [label="State 483\n\l 84 CaseLabel: \"default\" • \":\" Rule\l"] - 483 -> 504 [style=solid label="\":\""] - 484 [label="State 484\n\l 85 CaseLabel: \"_\" • \":\" Rule\l"] - 484 -> 505 [style=solid label="\":\""] - 485 [label="State 485\n\l 80 CaseRule: \"case\" Term \"of\" \"{\" CaseLabels • \"}\"\l 82 CaseLabels: CaseLabels • CaseLabel\l"] - 485 -> 45 [style=solid label="\"let\""] + 481 -> 190 [style=dashed label="IdentifierPath"] + 482 [label="State 482\n\l 91 ForallRule: \"forall\" AttributedVariables \"in\" Term \"do\" • Rule\l"] + 482 -> 259 [style=solid label="\"seq\""] + 482 -> 260 [style=solid label="\"par\""] + 482 -> 261 [style=solid label="\"skip\""] + 482 -> 262 [style=solid label="\"let\""] + 482 -> 263 [style=solid label="\"local\""] + 482 -> 8 [style=solid label="\"in\""] + 482 -> 264 [style=solid label="\"forall\""] + 482 -> 265 [style=solid label="\"choose\""] + 482 -> 266 [style=solid label="\"iterate\""] + 482 -> 267 [style=solid label="\"if\""] + 482 -> 268 [style=solid label="\"case\""] + 482 -> 269 [style=solid label="\"while\""] + 482 -> 50 [style=solid label="\"undef\""] + 482 -> 51 [style=solid label="\"false\""] + 482 -> 52 [style=solid label="\"true\""] + 482 -> 54 [style=solid label="\"+\""] + 482 -> 55 [style=solid label="\"-\""] + 482 -> 56 [style=solid label="\"(\""] + 482 -> 57 [style=solid label="\"[\""] + 482 -> 270 [style=solid label="\"{\""] + 482 -> 59 [style=solid label="\"@\""] + 482 -> 271 [style=solid label="\"{|\""] + 482 -> 60 [style=solid label="\"binary\""] + 482 -> 61 [style=solid label="\"hexadecimal\""] + 482 -> 62 [style=solid label="\"integer\""] + 482 -> 63 [style=solid label="\"rational\""] + 482 -> 64 [style=solid label="\"decimal\""] + 482 -> 65 [style=solid label="\"string\""] + 482 -> 9 [style=solid label="\"identifier\""] + 482 -> 504 [style=dashed label="Rule"] + 482 -> 273 [style=dashed label="SkipRule"] + 482 -> 274 [style=dashed label="ConditionalRule"] + 482 -> 275 [style=dashed label="CaseRule"] + 482 -> 276 [style=dashed label="LetRule"] + 482 -> 277 [style=dashed label="LocalRule"] + 482 -> 278 [style=dashed label="ForallRule"] + 482 -> 279 [style=dashed label="ChooseRule"] + 482 -> 280 [style=dashed label="IterateRule"] + 482 -> 281 [style=dashed label="BlockRule"] + 482 -> 282 [style=dashed label="SequenceRule"] + 482 -> 283 [style=dashed label="UpdateRule"] + 482 -> 284 [style=dashed label="CallRule"] + 482 -> 285 [style=dashed label="WhileRule"] + 482 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 482 -> 287 [style=dashed label="CallExpression"] + 482 -> 288 [style=dashed label="DirectCallExpression"] + 482 -> 71 [style=dashed label="MethodCallExpression"] + 482 -> 72 [style=dashed label="LiteralCallExpression"] + 482 -> 73 [style=dashed label="IndirectCallExpression"] + 482 -> 81 [style=dashed label="Literal"] + 482 -> 82 [style=dashed label="UndefinedLiteral"] + 482 -> 83 [style=dashed label="BooleanLiteral"] + 482 -> 84 [style=dashed label="IntegerLiteral"] + 482 -> 85 [style=dashed label="RationalLiteral"] + 482 -> 86 [style=dashed label="DecimalLiteral"] + 482 -> 87 [style=dashed label="BinaryLiteral"] + 482 -> 88 [style=dashed label="StringLiteral"] + 482 -> 89 [style=dashed label="ReferenceLiteral"] + 482 -> 90 [style=dashed label="ListLiteral"] + 482 -> 91 [style=dashed label="RangeLiteral"] + 482 -> 92 [style=dashed label="TupleLiteral"] + 482 -> 93 [style=dashed label="RecordLiteral"] + 482 -> 94 [style=dashed label="Identifier"] + 482 -> 95 [style=dashed label="IdentifierPath"] + 483 [label="State 483\n\l 92 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" • Term \"do\" Rule\l"] + 483 -> 45 [style=solid label="\"let\""] + 483 -> 8 [style=solid label="\"in\""] + 483 -> 46 [style=solid label="\"forall\""] + 483 -> 47 [style=solid label="\"choose\""] + 483 -> 48 [style=solid label="\"if\""] + 483 -> 49 [style=solid label="\"exists\""] + 483 -> 50 [style=solid label="\"undef\""] + 483 -> 51 [style=solid label="\"false\""] + 483 -> 52 [style=solid label="\"true\""] + 483 -> 53 [style=solid label="\"not\""] + 483 -> 54 [style=solid label="\"+\""] + 483 -> 55 [style=solid label="\"-\""] + 483 -> 56 [style=solid label="\"(\""] + 483 -> 57 [style=solid label="\"[\""] + 483 -> 58 [style=solid label="\"|\""] + 483 -> 59 [style=solid label="\"@\""] + 483 -> 60 [style=solid label="\"binary\""] + 483 -> 61 [style=solid label="\"hexadecimal\""] + 483 -> 62 [style=solid label="\"integer\""] + 483 -> 63 [style=solid label="\"rational\""] + 483 -> 64 [style=solid label="\"decimal\""] + 483 -> 65 [style=solid label="\"string\""] + 483 -> 9 [style=solid label="\"identifier\""] + 483 -> 505 [style=dashed label="Term"] + 483 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 483 -> 68 [style=dashed label="OperatorExpression"] + 483 -> 69 [style=dashed label="CallExpression"] + 483 -> 70 [style=dashed label="DirectCallExpression"] + 483 -> 71 [style=dashed label="MethodCallExpression"] + 483 -> 72 [style=dashed label="LiteralCallExpression"] + 483 -> 73 [style=dashed label="IndirectCallExpression"] + 483 -> 74 [style=dashed label="TypeCastingExpression"] + 483 -> 75 [style=dashed label="LetExpression"] + 483 -> 76 [style=dashed label="ConditionalExpression"] + 483 -> 77 [style=dashed label="ChooseExpression"] + 483 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 483 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 483 -> 80 [style=dashed label="CardinalityExpression"] + 483 -> 81 [style=dashed label="Literal"] + 483 -> 82 [style=dashed label="UndefinedLiteral"] + 483 -> 83 [style=dashed label="BooleanLiteral"] + 483 -> 84 [style=dashed label="IntegerLiteral"] + 483 -> 85 [style=dashed label="RationalLiteral"] + 483 -> 86 [style=dashed label="DecimalLiteral"] + 483 -> 87 [style=dashed label="BinaryLiteral"] + 483 -> 88 [style=dashed label="StringLiteral"] + 483 -> 89 [style=dashed label="ReferenceLiteral"] + 483 -> 90 [style=dashed label="ListLiteral"] + 483 -> 91 [style=dashed label="RangeLiteral"] + 483 -> 92 [style=dashed label="TupleLiteral"] + 483 -> 93 [style=dashed label="RecordLiteral"] + 483 -> 94 [style=dashed label="Identifier"] + 483 -> 95 [style=dashed label="IdentifierPath"] + 484 [label="State 484\n\l 93 ChooseRule: \"choose\" AttributedVariables \"in\" Term \"do\" • Rule\l"] + 484 -> 259 [style=solid label="\"seq\""] + 484 -> 260 [style=solid label="\"par\""] + 484 -> 261 [style=solid label="\"skip\""] + 484 -> 262 [style=solid label="\"let\""] + 484 -> 263 [style=solid label="\"local\""] + 484 -> 8 [style=solid label="\"in\""] + 484 -> 264 [style=solid label="\"forall\""] + 484 -> 265 [style=solid label="\"choose\""] + 484 -> 266 [style=solid label="\"iterate\""] + 484 -> 267 [style=solid label="\"if\""] + 484 -> 268 [style=solid label="\"case\""] + 484 -> 269 [style=solid label="\"while\""] + 484 -> 50 [style=solid label="\"undef\""] + 484 -> 51 [style=solid label="\"false\""] + 484 -> 52 [style=solid label="\"true\""] + 484 -> 54 [style=solid label="\"+\""] + 484 -> 55 [style=solid label="\"-\""] + 484 -> 56 [style=solid label="\"(\""] + 484 -> 57 [style=solid label="\"[\""] + 484 -> 270 [style=solid label="\"{\""] + 484 -> 59 [style=solid label="\"@\""] + 484 -> 271 [style=solid label="\"{|\""] + 484 -> 60 [style=solid label="\"binary\""] + 484 -> 61 [style=solid label="\"hexadecimal\""] + 484 -> 62 [style=solid label="\"integer\""] + 484 -> 63 [style=solid label="\"rational\""] + 484 -> 64 [style=solid label="\"decimal\""] + 484 -> 65 [style=solid label="\"string\""] + 484 -> 9 [style=solid label="\"identifier\""] + 484 -> 506 [style=dashed label="Rule"] + 484 -> 273 [style=dashed label="SkipRule"] + 484 -> 274 [style=dashed label="ConditionalRule"] + 484 -> 275 [style=dashed label="CaseRule"] + 484 -> 276 [style=dashed label="LetRule"] + 484 -> 277 [style=dashed label="LocalRule"] + 484 -> 278 [style=dashed label="ForallRule"] + 484 -> 279 [style=dashed label="ChooseRule"] + 484 -> 280 [style=dashed label="IterateRule"] + 484 -> 281 [style=dashed label="BlockRule"] + 484 -> 282 [style=dashed label="SequenceRule"] + 484 -> 283 [style=dashed label="UpdateRule"] + 484 -> 284 [style=dashed label="CallRule"] + 484 -> 285 [style=dashed label="WhileRule"] + 484 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 484 -> 287 [style=dashed label="CallExpression"] + 484 -> 288 [style=dashed label="DirectCallExpression"] + 484 -> 71 [style=dashed label="MethodCallExpression"] + 484 -> 72 [style=dashed label="LiteralCallExpression"] + 484 -> 73 [style=dashed label="IndirectCallExpression"] + 484 -> 81 [style=dashed label="Literal"] + 484 -> 82 [style=dashed label="UndefinedLiteral"] + 484 -> 83 [style=dashed label="BooleanLiteral"] + 484 -> 84 [style=dashed label="IntegerLiteral"] + 484 -> 85 [style=dashed label="RationalLiteral"] + 484 -> 86 [style=dashed label="DecimalLiteral"] + 484 -> 87 [style=dashed label="BinaryLiteral"] + 484 -> 88 [style=dashed label="StringLiteral"] + 484 -> 89 [style=dashed label="ReferenceLiteral"] + 484 -> 90 [style=dashed label="ListLiteral"] + 484 -> 91 [style=dashed label="RangeLiteral"] + 484 -> 92 [style=dashed label="TupleLiteral"] + 484 -> 93 [style=dashed label="RecordLiteral"] + 484 -> 94 [style=dashed label="Identifier"] + 484 -> 95 [style=dashed label="IdentifierPath"] + 485 [label="State 485\n\l 81 ConditionalRule: \"if\" Term \"then\" Rule \"else\" • Rule\l"] + 485 -> 259 [style=solid label="\"seq\""] + 485 -> 260 [style=solid label="\"par\""] + 485 -> 261 [style=solid label="\"skip\""] + 485 -> 262 [style=solid label="\"let\""] + 485 -> 263 [style=solid label="\"local\""] 485 -> 8 [style=solid label="\"in\""] - 485 -> 46 [style=solid label="\"forall\""] - 485 -> 47 [style=solid label="\"choose\""] - 485 -> 48 [style=solid label="\"if\""] - 485 -> 483 [style=solid label="\"default\""] - 485 -> 49 [style=solid label="\"exists\""] + 485 -> 264 [style=solid label="\"forall\""] + 485 -> 265 [style=solid label="\"choose\""] + 485 -> 266 [style=solid label="\"iterate\""] + 485 -> 267 [style=solid label="\"if\""] + 485 -> 268 [style=solid label="\"case\""] + 485 -> 269 [style=solid label="\"while\""] 485 -> 50 [style=solid label="\"undef\""] 485 -> 51 [style=solid label="\"false\""] 485 -> 52 [style=solid label="\"true\""] - 485 -> 53 [style=solid label="\"not\""] 485 -> 54 [style=solid label="\"+\""] 485 -> 55 [style=solid label="\"-\""] 485 -> 56 [style=solid label="\"(\""] 485 -> 57 [style=solid label="\"[\""] - 485 -> 506 [style=solid label="\"}\""] - 485 -> 484 [style=solid label="\"_\""] - 485 -> 58 [style=solid label="\"|\""] + 485 -> 270 [style=solid label="\"{\""] 485 -> 59 [style=solid label="\"@\""] + 485 -> 271 [style=solid label="\"{|\""] 485 -> 60 [style=solid label="\"binary\""] 485 -> 61 [style=solid label="\"hexadecimal\""] 485 -> 62 [style=solid label="\"integer\""] @@ -6954,22 +6904,26 @@ digraph "../../obj/src/GrammarParser.y" 485 -> 64 [style=solid label="\"decimal\""] 485 -> 65 [style=solid label="\"string\""] 485 -> 9 [style=solid label="\"identifier\""] - 485 -> 507 [style=dashed label="CaseLabel"] - 485 -> 487 [style=dashed label="Term"] - 485 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 485 -> 68 [style=dashed label="OperatorExpression"] - 485 -> 69 [style=dashed label="CallExpression"] - 485 -> 70 [style=dashed label="DirectCallExpression"] + 485 -> 507 [style=dashed label="Rule"] + 485 -> 273 [style=dashed label="SkipRule"] + 485 -> 274 [style=dashed label="ConditionalRule"] + 485 -> 275 [style=dashed label="CaseRule"] + 485 -> 276 [style=dashed label="LetRule"] + 485 -> 277 [style=dashed label="LocalRule"] + 485 -> 278 [style=dashed label="ForallRule"] + 485 -> 279 [style=dashed label="ChooseRule"] + 485 -> 280 [style=dashed label="IterateRule"] + 485 -> 281 [style=dashed label="BlockRule"] + 485 -> 282 [style=dashed label="SequenceRule"] + 485 -> 283 [style=dashed label="UpdateRule"] + 485 -> 284 [style=dashed label="CallRule"] + 485 -> 285 [style=dashed label="WhileRule"] + 485 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 485 -> 287 [style=dashed label="CallExpression"] + 485 -> 288 [style=dashed label="DirectCallExpression"] 485 -> 71 [style=dashed label="MethodCallExpression"] 485 -> 72 [style=dashed label="LiteralCallExpression"] 485 -> 73 [style=dashed label="IndirectCallExpression"] - 485 -> 74 [style=dashed label="TypeCastingExpression"] - 485 -> 75 [style=dashed label="LetExpression"] - 485 -> 76 [style=dashed label="ConditionalExpression"] - 485 -> 77 [style=dashed label="ChooseExpression"] - 485 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 485 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 485 -> 80 [style=dashed label="CardinalityExpression"] 485 -> 81 [style=dashed label="Literal"] 485 -> 82 [style=dashed label="UndefinedLiteral"] 485 -> 83 [style=dashed label="BooleanLiteral"] @@ -6985,116 +6939,32 @@ digraph "../../obj/src/GrammarParser.y" 485 -> 93 [style=dashed label="RecordLiteral"] 485 -> 94 [style=dashed label="Identifier"] 485 -> 95 [style=dashed label="IdentifierPath"] - 486 [label="State 486\n\l 83 CaseLabels: CaseLabel •\l"] - 486 -> "486R83" [style=solid] - "486R83" [label="R83", fillcolor=3, shape=diamond, style=filled] - 487 [label="State 487\n\l 86 CaseLabel: Term • \":\" Rule\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] - 487 -> 148 [style=solid label="\"and\""] - 487 -> 149 [style=solid label="\"or\""] - 487 -> 150 [style=solid label="\"xor\""] - 487 -> 151 [style=solid label="\"implies\""] - 487 -> 152 [style=solid label="\"+\""] - 487 -> 153 [style=solid label="\"-\""] - 487 -> 154 [style=solid label="\"=\""] - 487 -> 508 [style=solid label="\":\""] - 487 -> 155 [style=solid label="\"<\""] - 487 -> 156 [style=solid label="\">\""] - 487 -> 157 [style=solid label="\"*\""] - 487 -> 158 [style=solid label="\"/\""] - 487 -> 159 [style=solid label="\"%\""] - 487 -> 160 [style=solid label="\"^\""] - 487 -> 161 [style=solid label="\"=>\""] - 487 -> 162 [style=solid label="\"!=\""] - 487 -> 163 [style=solid label="\"<=\""] - 487 -> 164 [style=solid label="\">=\""] - 488 [label="State 488\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type \"=\" • Rule\l"] - 488 -> 259 [style=solid label="\"seq\""] - 488 -> 260 [style=solid label="\"par\""] - 488 -> 261 [style=solid label="\"skip\""] - 488 -> 262 [style=solid label="\"let\""] - 488 -> 263 [style=solid label="\"local\""] - 488 -> 8 [style=solid label="\"in\""] - 488 -> 264 [style=solid label="\"forall\""] - 488 -> 265 [style=solid label="\"choose\""] - 488 -> 266 [style=solid label="\"iterate\""] - 488 -> 267 [style=solid label="\"if\""] - 488 -> 268 [style=solid label="\"case\""] - 488 -> 269 [style=solid label="\"while\""] - 488 -> 50 [style=solid label="\"undef\""] - 488 -> 51 [style=solid label="\"false\""] - 488 -> 52 [style=solid label="\"true\""] - 488 -> 54 [style=solid label="\"+\""] - 488 -> 55 [style=solid label="\"-\""] - 488 -> 56 [style=solid label="\"(\""] - 488 -> 57 [style=solid label="\"[\""] - 488 -> 270 [style=solid label="\"{\""] - 488 -> 59 [style=solid label="\"@\""] - 488 -> 271 [style=solid label="\"{|\""] - 488 -> 60 [style=solid label="\"binary\""] - 488 -> 61 [style=solid label="\"hexadecimal\""] - 488 -> 62 [style=solid label="\"integer\""] - 488 -> 63 [style=solid label="\"rational\""] - 488 -> 64 [style=solid label="\"decimal\""] - 488 -> 65 [style=solid label="\"string\""] - 488 -> 9 [style=solid label="\"identifier\""] - 488 -> 509 [style=dashed label="Rule"] - 488 -> 273 [style=dashed label="SkipRule"] - 488 -> 274 [style=dashed label="ConditionalRule"] - 488 -> 275 [style=dashed label="CaseRule"] - 488 -> 276 [style=dashed label="LetRule"] - 488 -> 277 [style=dashed label="LocalRule"] - 488 -> 278 [style=dashed label="ForallRule"] - 488 -> 279 [style=dashed label="ChooseRule"] - 488 -> 280 [style=dashed label="IterateRule"] - 488 -> 281 [style=dashed label="BlockRule"] - 488 -> 282 [style=dashed label="SequenceRule"] - 488 -> 283 [style=dashed label="UpdateRule"] - 488 -> 284 [style=dashed label="CallRule"] - 488 -> 285 [style=dashed label="WhileRule"] - 488 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 488 -> 287 [style=dashed label="CallExpression"] - 488 -> 288 [style=dashed label="DirectCallExpression"] - 488 -> 71 [style=dashed label="MethodCallExpression"] - 488 -> 72 [style=dashed label="LiteralCallExpression"] - 488 -> 73 [style=dashed label="IndirectCallExpression"] - 488 -> 81 [style=dashed label="Literal"] - 488 -> 82 [style=dashed label="UndefinedLiteral"] - 488 -> 83 [style=dashed label="BooleanLiteral"] - 488 -> 84 [style=dashed label="IntegerLiteral"] - 488 -> 85 [style=dashed label="RationalLiteral"] - 488 -> 86 [style=dashed label="DecimalLiteral"] - 488 -> 87 [style=dashed label="BinaryLiteral"] - 488 -> 88 [style=dashed label="StringLiteral"] - 488 -> 89 [style=dashed label="ReferenceLiteral"] - 488 -> 90 [style=dashed label="ListLiteral"] - 488 -> 91 [style=dashed label="RangeLiteral"] - 488 -> 92 [style=dashed label="TupleLiteral"] - 488 -> 93 [style=dashed label="RecordLiteral"] - 488 -> 94 [style=dashed label="Identifier"] - 488 -> 95 [style=dashed label="IdentifierPath"] - 489 [label="State 489\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" • Rule\l"] - 489 -> 259 [style=solid label="\"seq\""] - 489 -> 260 [style=solid label="\"par\""] - 489 -> 261 [style=solid label="\"skip\""] - 489 -> 262 [style=solid label="\"let\""] - 489 -> 263 [style=solid label="\"local\""] + 486 [label="State 486\n\l 83 CaseRule: \"case\" Term \"of\" \"{\" error • \"}\"\l"] + 486 -> 508 [style=solid label="\"}\""] + 487 [label="State 487\n\l 86 CaseLabel: \"default\" • \":\" Rule\l"] + 487 -> 509 [style=solid label="\":\""] + 488 [label="State 488\n\l 87 CaseLabel: \"_\" • \":\" Rule\l"] + 488 -> 510 [style=solid label="\":\""] + 489 [label="State 489\n\l 82 CaseRule: \"case\" Term \"of\" \"{\" CaseLabels • \"}\"\l 84 CaseLabels: CaseLabels • CaseLabel\l"] + 489 -> 45 [style=solid label="\"let\""] 489 -> 8 [style=solid label="\"in\""] - 489 -> 264 [style=solid label="\"forall\""] - 489 -> 265 [style=solid label="\"choose\""] - 489 -> 266 [style=solid label="\"iterate\""] - 489 -> 267 [style=solid label="\"if\""] - 489 -> 268 [style=solid label="\"case\""] - 489 -> 269 [style=solid label="\"while\""] + 489 -> 46 [style=solid label="\"forall\""] + 489 -> 47 [style=solid label="\"choose\""] + 489 -> 48 [style=solid label="\"if\""] + 489 -> 487 [style=solid label="\"default\""] + 489 -> 49 [style=solid label="\"exists\""] 489 -> 50 [style=solid label="\"undef\""] 489 -> 51 [style=solid label="\"false\""] 489 -> 52 [style=solid label="\"true\""] + 489 -> 53 [style=solid label="\"not\""] 489 -> 54 [style=solid label="\"+\""] 489 -> 55 [style=solid label="\"-\""] 489 -> 56 [style=solid label="\"(\""] 489 -> 57 [style=solid label="\"[\""] - 489 -> 270 [style=solid label="\"{\""] + 489 -> 511 [style=solid label="\"}\""] + 489 -> 488 [style=solid label="\"_\""] + 489 -> 58 [style=solid label="\"|\""] 489 -> 59 [style=solid label="\"@\""] - 489 -> 271 [style=solid label="\"{|\""] 489 -> 60 [style=solid label="\"binary\""] 489 -> 61 [style=solid label="\"hexadecimal\""] 489 -> 62 [style=solid label="\"integer\""] @@ -7102,26 +6972,22 @@ digraph "../../obj/src/GrammarParser.y" 489 -> 64 [style=solid label="\"decimal\""] 489 -> 65 [style=solid label="\"string\""] 489 -> 9 [style=solid label="\"identifier\""] - 489 -> 510 [style=dashed label="Rule"] - 489 -> 273 [style=dashed label="SkipRule"] - 489 -> 274 [style=dashed label="ConditionalRule"] - 489 -> 275 [style=dashed label="CaseRule"] - 489 -> 276 [style=dashed label="LetRule"] - 489 -> 277 [style=dashed label="LocalRule"] - 489 -> 278 [style=dashed label="ForallRule"] - 489 -> 279 [style=dashed label="ChooseRule"] - 489 -> 280 [style=dashed label="IterateRule"] - 489 -> 281 [style=dashed label="BlockRule"] - 489 -> 282 [style=dashed label="SequenceRule"] - 489 -> 283 [style=dashed label="UpdateRule"] - 489 -> 284 [style=dashed label="CallRule"] - 489 -> 285 [style=dashed label="WhileRule"] - 489 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 489 -> 287 [style=dashed label="CallExpression"] - 489 -> 288 [style=dashed label="DirectCallExpression"] + 489 -> 512 [style=dashed label="CaseLabel"] + 489 -> 491 [style=dashed label="Term"] + 489 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 489 -> 68 [style=dashed label="OperatorExpression"] + 489 -> 69 [style=dashed label="CallExpression"] + 489 -> 70 [style=dashed label="DirectCallExpression"] 489 -> 71 [style=dashed label="MethodCallExpression"] 489 -> 72 [style=dashed label="LiteralCallExpression"] 489 -> 73 [style=dashed label="IndirectCallExpression"] + 489 -> 74 [style=dashed label="TypeCastingExpression"] + 489 -> 75 [style=dashed label="LetExpression"] + 489 -> 76 [style=dashed label="ConditionalExpression"] + 489 -> 77 [style=dashed label="ChooseExpression"] + 489 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 489 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 489 -> 80 [style=dashed label="CardinalityExpression"] 489 -> 81 [style=dashed label="Literal"] 489 -> 82 [style=dashed label="UndefinedLiteral"] 489 -> 83 [style=dashed label="BooleanLiteral"] @@ -7137,30 +7003,116 @@ digraph "../../obj/src/GrammarParser.y" 489 -> 93 [style=dashed label="RecordLiteral"] 489 -> 94 [style=dashed label="Identifier"] 489 -> 95 [style=dashed label="IdentifierPath"] - 490 [label="State 490\n\l 60 DeclarationDefinition: \"derived\" Identifier \":\" MaybeFunctionParameters • \"->\" Type\l"] - 490 -> 511 [style=solid label="\"->\""] - 491 [label="State 491\n\l 61 DeclarationDefinition: \"rule\" Identifier \":\" MaybeFunctionParameters • \"->\" Type\l"] - 491 -> 512 [style=solid label="\"->\""] - 492 [label="State 492\n\l 54 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\" •\l"] - 492 -> "492R54" [style=solid] - "492R54" [label="R54", fillcolor=3, shape=diamond, style=filled] - 493 [label="State 493\n\l213 MaybeDefined: \"defined\" \"{\" • Term \"}\"\l"] - 493 -> 45 [style=solid label="\"let\""] + 490 [label="State 490\n\l 85 CaseLabels: CaseLabel •\l"] + 490 -> "490R85" [style=solid] + "490R85" [label="R85", fillcolor=3, shape=diamond, style=filled] + 491 [label="State 491\n\l 88 CaseLabel: Term • \":\" Rule\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] + 491 -> 148 [style=solid label="\"and\""] + 491 -> 149 [style=solid label="\"or\""] + 491 -> 150 [style=solid label="\"xor\""] + 491 -> 151 [style=solid label="\"implies\""] + 491 -> 152 [style=solid label="\"+\""] + 491 -> 153 [style=solid label="\"-\""] + 491 -> 154 [style=solid label="\"=\""] + 491 -> 513 [style=solid label="\":\""] + 491 -> 155 [style=solid label="\"<\""] + 491 -> 156 [style=solid label="\">\""] + 491 -> 157 [style=solid label="\"*\""] + 491 -> 158 [style=solid label="\"/\""] + 491 -> 159 [style=solid label="\"%\""] + 491 -> 160 [style=solid label="\"^\""] + 491 -> 161 [style=solid label="\"=>\""] + 491 -> 162 [style=solid label="\"!=\""] + 491 -> 163 [style=solid label="\"<=\""] + 491 -> 164 [style=solid label="\">=\""] + 492 [label="State 492\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type \"=\" • Rule\l"] + 492 -> 259 [style=solid label="\"seq\""] + 492 -> 260 [style=solid label="\"par\""] + 492 -> 261 [style=solid label="\"skip\""] + 492 -> 262 [style=solid label="\"let\""] + 492 -> 263 [style=solid label="\"local\""] + 492 -> 8 [style=solid label="\"in\""] + 492 -> 264 [style=solid label="\"forall\""] + 492 -> 265 [style=solid label="\"choose\""] + 492 -> 266 [style=solid label="\"iterate\""] + 492 -> 267 [style=solid label="\"if\""] + 492 -> 268 [style=solid label="\"case\""] + 492 -> 269 [style=solid label="\"while\""] + 492 -> 50 [style=solid label="\"undef\""] + 492 -> 51 [style=solid label="\"false\""] + 492 -> 52 [style=solid label="\"true\""] + 492 -> 54 [style=solid label="\"+\""] + 492 -> 55 [style=solid label="\"-\""] + 492 -> 56 [style=solid label="\"(\""] + 492 -> 57 [style=solid label="\"[\""] + 492 -> 270 [style=solid label="\"{\""] + 492 -> 59 [style=solid label="\"@\""] + 492 -> 271 [style=solid label="\"{|\""] + 492 -> 60 [style=solid label="\"binary\""] + 492 -> 61 [style=solid label="\"hexadecimal\""] + 492 -> 62 [style=solid label="\"integer\""] + 492 -> 63 [style=solid label="\"rational\""] + 492 -> 64 [style=solid label="\"decimal\""] + 492 -> 65 [style=solid label="\"string\""] + 492 -> 9 [style=solid label="\"identifier\""] + 492 -> 514 [style=dashed label="Rule"] + 492 -> 273 [style=dashed label="SkipRule"] + 492 -> 274 [style=dashed label="ConditionalRule"] + 492 -> 275 [style=dashed label="CaseRule"] + 492 -> 276 [style=dashed label="LetRule"] + 492 -> 277 [style=dashed label="LocalRule"] + 492 -> 278 [style=dashed label="ForallRule"] + 492 -> 279 [style=dashed label="ChooseRule"] + 492 -> 280 [style=dashed label="IterateRule"] + 492 -> 281 [style=dashed label="BlockRule"] + 492 -> 282 [style=dashed label="SequenceRule"] + 492 -> 283 [style=dashed label="UpdateRule"] + 492 -> 284 [style=dashed label="CallRule"] + 492 -> 285 [style=dashed label="WhileRule"] + 492 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 492 -> 287 [style=dashed label="CallExpression"] + 492 -> 288 [style=dashed label="DirectCallExpression"] + 492 -> 71 [style=dashed label="MethodCallExpression"] + 492 -> 72 [style=dashed label="LiteralCallExpression"] + 492 -> 73 [style=dashed label="IndirectCallExpression"] + 492 -> 81 [style=dashed label="Literal"] + 492 -> 82 [style=dashed label="UndefinedLiteral"] + 492 -> 83 [style=dashed label="BooleanLiteral"] + 492 -> 84 [style=dashed label="IntegerLiteral"] + 492 -> 85 [style=dashed label="RationalLiteral"] + 492 -> 86 [style=dashed label="DecimalLiteral"] + 492 -> 87 [style=dashed label="BinaryLiteral"] + 492 -> 88 [style=dashed label="StringLiteral"] + 492 -> 89 [style=dashed label="ReferenceLiteral"] + 492 -> 90 [style=dashed label="ListLiteral"] + 492 -> 91 [style=dashed label="RangeLiteral"] + 492 -> 92 [style=dashed label="TupleLiteral"] + 492 -> 93 [style=dashed label="RecordLiteral"] + 492 -> 94 [style=dashed label="Identifier"] + 492 -> 95 [style=dashed label="IdentifierPath"] + 493 [label="State 493\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" • Rule\l"] + 493 -> 259 [style=solid label="\"seq\""] + 493 -> 260 [style=solid label="\"par\""] + 493 -> 261 [style=solid label="\"skip\""] + 493 -> 262 [style=solid label="\"let\""] + 493 -> 263 [style=solid label="\"local\""] 493 -> 8 [style=solid label="\"in\""] - 493 -> 46 [style=solid label="\"forall\""] - 493 -> 47 [style=solid label="\"choose\""] - 493 -> 48 [style=solid label="\"if\""] - 493 -> 49 [style=solid label="\"exists\""] + 493 -> 264 [style=solid label="\"forall\""] + 493 -> 265 [style=solid label="\"choose\""] + 493 -> 266 [style=solid label="\"iterate\""] + 493 -> 267 [style=solid label="\"if\""] + 493 -> 268 [style=solid label="\"case\""] + 493 -> 269 [style=solid label="\"while\""] 493 -> 50 [style=solid label="\"undef\""] 493 -> 51 [style=solid label="\"false\""] 493 -> 52 [style=solid label="\"true\""] - 493 -> 53 [style=solid label="\"not\""] 493 -> 54 [style=solid label="\"+\""] 493 -> 55 [style=solid label="\"-\""] 493 -> 56 [style=solid label="\"(\""] 493 -> 57 [style=solid label="\"[\""] - 493 -> 58 [style=solid label="\"|\""] + 493 -> 270 [style=solid label="\"{\""] 493 -> 59 [style=solid label="\"@\""] + 493 -> 271 [style=solid label="\"{|\""] 493 -> 60 [style=solid label="\"binary\""] 493 -> 61 [style=solid label="\"hexadecimal\""] 493 -> 62 [style=solid label="\"integer\""] @@ -7168,21 +7120,26 @@ digraph "../../obj/src/GrammarParser.y" 493 -> 64 [style=solid label="\"decimal\""] 493 -> 65 [style=solid label="\"string\""] 493 -> 9 [style=solid label="\"identifier\""] - 493 -> 513 [style=dashed label="Term"] - 493 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 493 -> 68 [style=dashed label="OperatorExpression"] - 493 -> 69 [style=dashed label="CallExpression"] - 493 -> 70 [style=dashed label="DirectCallExpression"] + 493 -> 515 [style=dashed label="Rule"] + 493 -> 273 [style=dashed label="SkipRule"] + 493 -> 274 [style=dashed label="ConditionalRule"] + 493 -> 275 [style=dashed label="CaseRule"] + 493 -> 276 [style=dashed label="LetRule"] + 493 -> 277 [style=dashed label="LocalRule"] + 493 -> 278 [style=dashed label="ForallRule"] + 493 -> 279 [style=dashed label="ChooseRule"] + 493 -> 280 [style=dashed label="IterateRule"] + 493 -> 281 [style=dashed label="BlockRule"] + 493 -> 282 [style=dashed label="SequenceRule"] + 493 -> 283 [style=dashed label="UpdateRule"] + 493 -> 284 [style=dashed label="CallRule"] + 493 -> 285 [style=dashed label="WhileRule"] + 493 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 493 -> 287 [style=dashed label="CallExpression"] + 493 -> 288 [style=dashed label="DirectCallExpression"] 493 -> 71 [style=dashed label="MethodCallExpression"] 493 -> 72 [style=dashed label="LiteralCallExpression"] 493 -> 73 [style=dashed label="IndirectCallExpression"] - 493 -> 74 [style=dashed label="TypeCastingExpression"] - 493 -> 75 [style=dashed label="LetExpression"] - 493 -> 76 [style=dashed label="ConditionalExpression"] - 493 -> 77 [style=dashed label="ChooseExpression"] - 493 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 493 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 493 -> 80 [style=dashed label="CardinalityExpression"] 493 -> 81 [style=dashed label="Literal"] 493 -> 82 [style=dashed label="UndefinedLiteral"] 493 -> 83 [style=dashed label="BooleanLiteral"] @@ -7198,493 +7155,557 @@ digraph "../../obj/src/GrammarParser.y" 493 -> 93 [style=dashed label="RecordLiteral"] 493 -> 94 [style=dashed label="Identifier"] 493 -> 95 [style=dashed label="IdentifierPath"] - 494 [label="State 494\n\l215 MaybeInitially: \"=\" • \"{\" Initializers \"}\"\l"] - 494 -> 514 [style=solid label="\"{\""] - 495 [label="State 495\n\l 35 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially •\l"] - 495 -> "495R35" [style=solid] - "495R35" [label="R35", fillcolor=3, shape=diamond, style=filled] - 496 [label="State 496\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type \"=\" Term •\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] - 496 -> 148 [style=solid label="\"and\""] - 496 -> 149 [style=solid label="\"or\""] - 496 -> 150 [style=solid label="\"xor\""] - 496 -> 151 [style=solid label="\"implies\""] - 496 -> 152 [style=solid label="\"+\""] - 496 -> 153 [style=solid label="\"-\""] - 496 -> 154 [style=solid label="\"=\""] - 496 -> 155 [style=solid label="\"<\""] - 496 -> 156 [style=solid label="\">\""] - 496 -> 157 [style=solid label="\"*\""] - 496 -> 158 [style=solid label="\"/\""] - 496 -> 159 [style=solid label="\"%\""] - 496 -> 160 [style=solid label="\"^\""] - 496 -> 161 [style=solid label="\"=>\""] - 496 -> 162 [style=solid label="\"!=\""] - 496 -> 163 [style=solid label="\"<=\""] - 496 -> 164 [style=solid label="\">=\""] - 496 -> "496R26" [style=solid] - "496R26" [label="R26", fillcolor=3, shape=diamond, style=filled] - 497 [label="State 497\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Term •\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] - 497 -> 148 [style=solid label="\"and\""] - 497 -> 149 [style=solid label="\"or\""] - 497 -> 150 [style=solid label="\"xor\""] - 497 -> 151 [style=solid label="\"implies\""] - 497 -> 152 [style=solid label="\"+\""] - 497 -> 153 [style=solid label="\"-\""] - 497 -> 154 [style=solid label="\"=\""] - 497 -> 155 [style=solid label="\"<\""] - 497 -> 156 [style=solid label="\">\""] - 497 -> 157 [style=solid label="\"*\""] - 497 -> 158 [style=solid label="\"/\""] - 497 -> 159 [style=solid label="\"%\""] - 497 -> 160 [style=solid label="\"^\""] - 497 -> 161 [style=solid label="\"=>\""] - 497 -> 162 [style=solid label="\"!=\""] - 497 -> 163 [style=solid label="\"<=\""] - 497 -> 164 [style=solid label="\">=\""] - 497 -> "497R25" [style=solid] - "497R25" [label="R25", fillcolor=3, shape=diamond, style=filled] - 498 [label="State 498\n\l245 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type • MaybeDefined MaybeInitially\l"] - 498 -> 473 [style=solid label="\"defined\""] - 498 -> 515 [style=dashed label="MaybeDefined"] - 498 -> "498R214" [style=solid] - "498R214" [label="R214", fillcolor=3, shape=diamond, style=filled] - 499 [label="State 499\n\l 89 ForallRule: \"forall\" AttributedVariables \"in\" Term \"do\" Rule •\l"] - 499 -> "499R89" [style=solid] - "499R89" [label="R89", fillcolor=3, shape=diamond, style=filled] - 500 [label="State 500\n\l 90 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term • \"do\" Rule\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l"] - 500 -> 516 [style=solid label="\"do\""] - 500 -> 148 [style=solid label="\"and\""] - 500 -> 149 [style=solid label="\"or\""] - 500 -> 150 [style=solid label="\"xor\""] - 500 -> 151 [style=solid label="\"implies\""] - 500 -> 152 [style=solid label="\"+\""] - 500 -> 153 [style=solid label="\"-\""] - 500 -> 154 [style=solid label="\"=\""] - 500 -> 155 [style=solid label="\"<\""] - 500 -> 156 [style=solid label="\">\""] - 500 -> 157 [style=solid label="\"*\""] - 500 -> 158 [style=solid label="\"/\""] - 500 -> 159 [style=solid label="\"%\""] - 500 -> 160 [style=solid label="\"^\""] - 500 -> 161 [style=solid label="\"=>\""] - 500 -> 162 [style=solid label="\"!=\""] - 500 -> 163 [style=solid label="\"<=\""] - 500 -> 164 [style=solid label="\">=\""] - 501 [label="State 501\n\l 91 ChooseRule: \"choose\" AttributedVariables \"in\" Term \"do\" Rule •\l"] - 501 -> "501R91" [style=solid] - "501R91" [label="R91", fillcolor=3, shape=diamond, style=filled] - 502 [label="State 502\n\l 79 ConditionalRule: \"if\" Term \"then\" Rule \"else\" Rule •\l"] - 502 -> "502R79" [style=solid] - "502R79" [label="R79", fillcolor=3, shape=diamond, style=filled] - 503 [label="State 503\n\l 81 CaseRule: \"case\" Term \"of\" \"{\" error \"}\" •\l"] - 503 -> "503R81" [style=solid] - "503R81" [label="R81", fillcolor=3, shape=diamond, style=filled] - 504 [label="State 504\n\l 84 CaseLabel: \"default\" \":\" • Rule\l"] - 504 -> 259 [style=solid label="\"seq\""] - 504 -> 260 [style=solid label="\"par\""] - 504 -> 261 [style=solid label="\"skip\""] - 504 -> 262 [style=solid label="\"let\""] - 504 -> 263 [style=solid label="\"local\""] - 504 -> 8 [style=solid label="\"in\""] - 504 -> 264 [style=solid label="\"forall\""] - 504 -> 265 [style=solid label="\"choose\""] - 504 -> 266 [style=solid label="\"iterate\""] - 504 -> 267 [style=solid label="\"if\""] - 504 -> 268 [style=solid label="\"case\""] - 504 -> 269 [style=solid label="\"while\""] - 504 -> 50 [style=solid label="\"undef\""] - 504 -> 51 [style=solid label="\"false\""] - 504 -> 52 [style=solid label="\"true\""] - 504 -> 54 [style=solid label="\"+\""] - 504 -> 55 [style=solid label="\"-\""] - 504 -> 56 [style=solid label="\"(\""] - 504 -> 57 [style=solid label="\"[\""] - 504 -> 270 [style=solid label="\"{\""] - 504 -> 59 [style=solid label="\"@\""] - 504 -> 271 [style=solid label="\"{|\""] - 504 -> 60 [style=solid label="\"binary\""] - 504 -> 61 [style=solid label="\"hexadecimal\""] - 504 -> 62 [style=solid label="\"integer\""] - 504 -> 63 [style=solid label="\"rational\""] - 504 -> 64 [style=solid label="\"decimal\""] - 504 -> 65 [style=solid label="\"string\""] - 504 -> 9 [style=solid label="\"identifier\""] - 504 -> 517 [style=dashed label="Rule"] - 504 -> 273 [style=dashed label="SkipRule"] - 504 -> 274 [style=dashed label="ConditionalRule"] - 504 -> 275 [style=dashed label="CaseRule"] - 504 -> 276 [style=dashed label="LetRule"] - 504 -> 277 [style=dashed label="LocalRule"] - 504 -> 278 [style=dashed label="ForallRule"] - 504 -> 279 [style=dashed label="ChooseRule"] - 504 -> 280 [style=dashed label="IterateRule"] - 504 -> 281 [style=dashed label="BlockRule"] - 504 -> 282 [style=dashed label="SequenceRule"] - 504 -> 283 [style=dashed label="UpdateRule"] - 504 -> 284 [style=dashed label="CallRule"] - 504 -> 285 [style=dashed label="WhileRule"] - 504 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 504 -> 287 [style=dashed label="CallExpression"] - 504 -> 288 [style=dashed label="DirectCallExpression"] - 504 -> 71 [style=dashed label="MethodCallExpression"] - 504 -> 72 [style=dashed label="LiteralCallExpression"] - 504 -> 73 [style=dashed label="IndirectCallExpression"] - 504 -> 81 [style=dashed label="Literal"] - 504 -> 82 [style=dashed label="UndefinedLiteral"] - 504 -> 83 [style=dashed label="BooleanLiteral"] - 504 -> 84 [style=dashed label="IntegerLiteral"] - 504 -> 85 [style=dashed label="RationalLiteral"] - 504 -> 86 [style=dashed label="DecimalLiteral"] - 504 -> 87 [style=dashed label="BinaryLiteral"] - 504 -> 88 [style=dashed label="StringLiteral"] - 504 -> 89 [style=dashed label="ReferenceLiteral"] - 504 -> 90 [style=dashed label="ListLiteral"] - 504 -> 91 [style=dashed label="RangeLiteral"] - 504 -> 92 [style=dashed label="TupleLiteral"] - 504 -> 93 [style=dashed label="RecordLiteral"] - 504 -> 94 [style=dashed label="Identifier"] - 504 -> 95 [style=dashed label="IdentifierPath"] - 505 [label="State 505\n\l 85 CaseLabel: \"_\" \":\" • Rule\l"] - 505 -> 259 [style=solid label="\"seq\""] - 505 -> 260 [style=solid label="\"par\""] - 505 -> 261 [style=solid label="\"skip\""] - 505 -> 262 [style=solid label="\"let\""] - 505 -> 263 [style=solid label="\"local\""] - 505 -> 8 [style=solid label="\"in\""] - 505 -> 264 [style=solid label="\"forall\""] - 505 -> 265 [style=solid label="\"choose\""] - 505 -> 266 [style=solid label="\"iterate\""] - 505 -> 267 [style=solid label="\"if\""] - 505 -> 268 [style=solid label="\"case\""] - 505 -> 269 [style=solid label="\"while\""] - 505 -> 50 [style=solid label="\"undef\""] - 505 -> 51 [style=solid label="\"false\""] - 505 -> 52 [style=solid label="\"true\""] - 505 -> 54 [style=solid label="\"+\""] - 505 -> 55 [style=solid label="\"-\""] - 505 -> 56 [style=solid label="\"(\""] - 505 -> 57 [style=solid label="\"[\""] - 505 -> 270 [style=solid label="\"{\""] - 505 -> 59 [style=solid label="\"@\""] - 505 -> 271 [style=solid label="\"{|\""] - 505 -> 60 [style=solid label="\"binary\""] - 505 -> 61 [style=solid label="\"hexadecimal\""] - 505 -> 62 [style=solid label="\"integer\""] - 505 -> 63 [style=solid label="\"rational\""] - 505 -> 64 [style=solid label="\"decimal\""] - 505 -> 65 [style=solid label="\"string\""] - 505 -> 9 [style=solid label="\"identifier\""] - 505 -> 518 [style=dashed label="Rule"] - 505 -> 273 [style=dashed label="SkipRule"] - 505 -> 274 [style=dashed label="ConditionalRule"] - 505 -> 275 [style=dashed label="CaseRule"] - 505 -> 276 [style=dashed label="LetRule"] - 505 -> 277 [style=dashed label="LocalRule"] - 505 -> 278 [style=dashed label="ForallRule"] - 505 -> 279 [style=dashed label="ChooseRule"] - 505 -> 280 [style=dashed label="IterateRule"] - 505 -> 281 [style=dashed label="BlockRule"] - 505 -> 282 [style=dashed label="SequenceRule"] - 505 -> 283 [style=dashed label="UpdateRule"] - 505 -> 284 [style=dashed label="CallRule"] - 505 -> 285 [style=dashed label="WhileRule"] - 505 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 505 -> 287 [style=dashed label="CallExpression"] - 505 -> 288 [style=dashed label="DirectCallExpression"] - 505 -> 71 [style=dashed label="MethodCallExpression"] - 505 -> 72 [style=dashed label="LiteralCallExpression"] - 505 -> 73 [style=dashed label="IndirectCallExpression"] - 505 -> 81 [style=dashed label="Literal"] - 505 -> 82 [style=dashed label="UndefinedLiteral"] - 505 -> 83 [style=dashed label="BooleanLiteral"] - 505 -> 84 [style=dashed label="IntegerLiteral"] - 505 -> 85 [style=dashed label="RationalLiteral"] - 505 -> 86 [style=dashed label="DecimalLiteral"] - 505 -> 87 [style=dashed label="BinaryLiteral"] - 505 -> 88 [style=dashed label="StringLiteral"] - 505 -> 89 [style=dashed label="ReferenceLiteral"] - 505 -> 90 [style=dashed label="ListLiteral"] - 505 -> 91 [style=dashed label="RangeLiteral"] - 505 -> 92 [style=dashed label="TupleLiteral"] - 505 -> 93 [style=dashed label="RecordLiteral"] - 505 -> 94 [style=dashed label="Identifier"] - 505 -> 95 [style=dashed label="IdentifierPath"] - 506 [label="State 506\n\l 80 CaseRule: \"case\" Term \"of\" \"{\" CaseLabels \"}\" •\l"] - 506 -> "506R80" [style=solid] - "506R80" [label="R80", fillcolor=3, shape=diamond, style=filled] - 507 [label="State 507\n\l 82 CaseLabels: CaseLabels CaseLabel •\l"] - 507 -> "507R82" [style=solid] - "507R82" [label="R82", fillcolor=3, shape=diamond, style=filled] - 508 [label="State 508\n\l 86 CaseLabel: Term \":\" • Rule\l"] - 508 -> 259 [style=solid label="\"seq\""] - 508 -> 260 [style=solid label="\"par\""] - 508 -> 261 [style=solid label="\"skip\""] - 508 -> 262 [style=solid label="\"let\""] - 508 -> 263 [style=solid label="\"local\""] - 508 -> 8 [style=solid label="\"in\""] - 508 -> 264 [style=solid label="\"forall\""] - 508 -> 265 [style=solid label="\"choose\""] - 508 -> 266 [style=solid label="\"iterate\""] - 508 -> 267 [style=solid label="\"if\""] - 508 -> 268 [style=solid label="\"case\""] - 508 -> 269 [style=solid label="\"while\""] - 508 -> 50 [style=solid label="\"undef\""] - 508 -> 51 [style=solid label="\"false\""] - 508 -> 52 [style=solid label="\"true\""] - 508 -> 54 [style=solid label="\"+\""] - 508 -> 55 [style=solid label="\"-\""] - 508 -> 56 [style=solid label="\"(\""] - 508 -> 57 [style=solid label="\"[\""] - 508 -> 270 [style=solid label="\"{\""] - 508 -> 59 [style=solid label="\"@\""] - 508 -> 271 [style=solid label="\"{|\""] - 508 -> 60 [style=solid label="\"binary\""] - 508 -> 61 [style=solid label="\"hexadecimal\""] - 508 -> 62 [style=solid label="\"integer\""] - 508 -> 63 [style=solid label="\"rational\""] - 508 -> 64 [style=solid label="\"decimal\""] - 508 -> 65 [style=solid label="\"string\""] - 508 -> 9 [style=solid label="\"identifier\""] - 508 -> 519 [style=dashed label="Rule"] - 508 -> 273 [style=dashed label="SkipRule"] - 508 -> 274 [style=dashed label="ConditionalRule"] - 508 -> 275 [style=dashed label="CaseRule"] - 508 -> 276 [style=dashed label="LetRule"] - 508 -> 277 [style=dashed label="LocalRule"] - 508 -> 278 [style=dashed label="ForallRule"] - 508 -> 279 [style=dashed label="ChooseRule"] - 508 -> 280 [style=dashed label="IterateRule"] - 508 -> 281 [style=dashed label="BlockRule"] - 508 -> 282 [style=dashed label="SequenceRule"] - 508 -> 283 [style=dashed label="UpdateRule"] - 508 -> 284 [style=dashed label="CallRule"] - 508 -> 285 [style=dashed label="WhileRule"] - 508 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 508 -> 287 [style=dashed label="CallExpression"] - 508 -> 288 [style=dashed label="DirectCallExpression"] - 508 -> 71 [style=dashed label="MethodCallExpression"] - 508 -> 72 [style=dashed label="LiteralCallExpression"] - 508 -> 73 [style=dashed label="IndirectCallExpression"] - 508 -> 81 [style=dashed label="Literal"] - 508 -> 82 [style=dashed label="UndefinedLiteral"] - 508 -> 83 [style=dashed label="BooleanLiteral"] - 508 -> 84 [style=dashed label="IntegerLiteral"] - 508 -> 85 [style=dashed label="RationalLiteral"] - 508 -> 86 [style=dashed label="DecimalLiteral"] - 508 -> 87 [style=dashed label="BinaryLiteral"] - 508 -> 88 [style=dashed label="StringLiteral"] - 508 -> 89 [style=dashed label="ReferenceLiteral"] - 508 -> 90 [style=dashed label="ListLiteral"] - 508 -> 91 [style=dashed label="RangeLiteral"] - 508 -> 92 [style=dashed label="TupleLiteral"] - 508 -> 93 [style=dashed label="RecordLiteral"] - 508 -> 94 [style=dashed label="Identifier"] - 508 -> 95 [style=dashed label="IdentifierPath"] - 509 [label="State 509\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type \"=\" Rule •\l"] - 509 -> "509R32" [style=solid] - "509R32" [label="R32", fillcolor=3, shape=diamond, style=filled] - 510 [label="State 510\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Rule •\l"] - 510 -> "510R30" [style=solid] - "510R30" [label="R30", fillcolor=3, shape=diamond, style=filled] - 511 [label="State 511\n\l 60 DeclarationDefinition: \"derived\" Identifier \":\" MaybeFunctionParameters \"->\" • Type\l"] - 511 -> 8 [style=solid label="\"in\""] - 511 -> 109 [style=solid label="\"(\""] - 511 -> 9 [style=solid label="\"identifier\""] - 511 -> 520 [style=dashed label="Type"] - 511 -> 111 [style=dashed label="BasicType"] - 511 -> 112 [style=dashed label="TupleType"] - 511 -> 113 [style=dashed label="RecordType"] - 511 -> 114 [style=dashed label="TemplateType"] - 511 -> 115 [style=dashed label="RelationType"] - 511 -> 116 [style=dashed label="FixedSizedType"] - 511 -> 94 [style=dashed label="Identifier"] - 511 -> 190 [style=dashed label="IdentifierPath"] - 512 [label="State 512\n\l 61 DeclarationDefinition: \"rule\" Identifier \":\" MaybeFunctionParameters \"->\" • Type\l"] - 512 -> 8 [style=solid label="\"in\""] - 512 -> 109 [style=solid label="\"(\""] - 512 -> 9 [style=solid label="\"identifier\""] - 512 -> 521 [style=dashed label="Type"] - 512 -> 111 [style=dashed label="BasicType"] - 512 -> 112 [style=dashed label="TupleType"] - 512 -> 113 [style=dashed label="RecordType"] - 512 -> 114 [style=dashed label="TemplateType"] - 512 -> 115 [style=dashed label="RelationType"] - 512 -> 116 [style=dashed label="FixedSizedType"] - 512 -> 94 [style=dashed label="Identifier"] - 512 -> 190 [style=dashed label="IdentifierPath"] - 513 [label="State 513\n\l122 OperatorExpression: Term • \"+\" Term\l123 | Term • \"-\" Term\l124 | Term • \"*\" Term\l125 | Term • \"/\" Term\l126 | Term • \"%\" Term\l127 | Term • \"^\" Term\l128 | Term • \"!=\" Term\l129 | Term • \"=\" Term\l130 | Term • \"<\" Term\l131 | Term • \">\" Term\l132 | Term • \"<=\" Term\l133 | Term • \">=\" Term\l134 | Term • \"or\" Term\l135 | Term • \"xor\" Term\l136 | Term • \"and\" Term\l137 | Term • \"=>\" Term\l138 | Term • \"implies\" Term\l213 MaybeDefined: \"defined\" \"{\" Term • \"}\"\l"] - 513 -> 148 [style=solid label="\"and\""] - 513 -> 149 [style=solid label="\"or\""] - 513 -> 150 [style=solid label="\"xor\""] - 513 -> 151 [style=solid label="\"implies\""] - 513 -> 152 [style=solid label="\"+\""] - 513 -> 153 [style=solid label="\"-\""] - 513 -> 154 [style=solid label="\"=\""] - 513 -> 522 [style=solid label="\"}\""] - 513 -> 155 [style=solid label="\"<\""] - 513 -> 156 [style=solid label="\">\""] - 513 -> 157 [style=solid label="\"*\""] - 513 -> 158 [style=solid label="\"/\""] - 513 -> 159 [style=solid label="\"%\""] - 513 -> 160 [style=solid label="\"^\""] - 513 -> 161 [style=solid label="\"=>\""] - 513 -> 162 [style=solid label="\"!=\""] - 513 -> 163 [style=solid label="\"<=\""] - 513 -> 164 [style=solid label="\">=\""] - 514 [label="State 514\n\l215 MaybeInitially: \"=\" \"{\" • Initializers \"}\"\l"] - 514 -> 45 [style=solid label="\"let\""] - 514 -> 8 [style=solid label="\"in\""] - 514 -> 46 [style=solid label="\"forall\""] - 514 -> 47 [style=solid label="\"choose\""] - 514 -> 48 [style=solid label="\"if\""] - 514 -> 49 [style=solid label="\"exists\""] - 514 -> 50 [style=solid label="\"undef\""] - 514 -> 51 [style=solid label="\"false\""] - 514 -> 52 [style=solid label="\"true\""] - 514 -> 53 [style=solid label="\"not\""] - 514 -> 54 [style=solid label="\"+\""] - 514 -> 55 [style=solid label="\"-\""] - 514 -> 170 [style=solid label="\"(\""] - 514 -> 57 [style=solid label="\"[\""] - 514 -> 58 [style=solid label="\"|\""] - 514 -> 59 [style=solid label="\"@\""] - 514 -> 60 [style=solid label="\"binary\""] - 514 -> 61 [style=solid label="\"hexadecimal\""] - 514 -> 62 [style=solid label="\"integer\""] - 514 -> 63 [style=solid label="\"rational\""] - 514 -> 64 [style=solid label="\"decimal\""] - 514 -> 65 [style=solid label="\"string\""] - 514 -> 9 [style=solid label="\"identifier\""] - 514 -> 171 [style=dashed label="Term"] - 514 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 514 -> 68 [style=dashed label="OperatorExpression"] - 514 -> 69 [style=dashed label="CallExpression"] - 514 -> 70 [style=dashed label="DirectCallExpression"] - 514 -> 71 [style=dashed label="MethodCallExpression"] - 514 -> 72 [style=dashed label="LiteralCallExpression"] - 514 -> 73 [style=dashed label="IndirectCallExpression"] - 514 -> 74 [style=dashed label="TypeCastingExpression"] - 514 -> 75 [style=dashed label="LetExpression"] - 514 -> 76 [style=dashed label="ConditionalExpression"] - 514 -> 77 [style=dashed label="ChooseExpression"] - 514 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 514 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 514 -> 80 [style=dashed label="CardinalityExpression"] - 514 -> 81 [style=dashed label="Literal"] - 514 -> 82 [style=dashed label="UndefinedLiteral"] - 514 -> 83 [style=dashed label="BooleanLiteral"] - 514 -> 84 [style=dashed label="IntegerLiteral"] - 514 -> 85 [style=dashed label="RationalLiteral"] - 514 -> 86 [style=dashed label="DecimalLiteral"] - 514 -> 87 [style=dashed label="BinaryLiteral"] - 514 -> 88 [style=dashed label="StringLiteral"] - 514 -> 89 [style=dashed label="ReferenceLiteral"] - 514 -> 90 [style=dashed label="ListLiteral"] - 514 -> 91 [style=dashed label="RangeLiteral"] - 514 -> 172 [style=dashed label="TupleLiteral"] - 514 -> 93 [style=dashed label="RecordLiteral"] - 514 -> 523 [style=dashed label="Initializers"] - 514 -> 174 [style=dashed label="Initializer"] - 514 -> 94 [style=dashed label="Identifier"] - 514 -> 95 [style=dashed label="IdentifierPath"] - 515 [label="State 515\n\l245 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined • MaybeInitially\l"] - 515 -> 494 [style=solid label="\"=\""] - 515 -> 524 [style=dashed label="MaybeInitially"] - 515 -> "515R216" [style=solid] - "515R216" [label="R216", fillcolor=3, shape=diamond, style=filled] - 516 [label="State 516\n\l 90 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term \"do\" • Rule\l"] - 516 -> 259 [style=solid label="\"seq\""] - 516 -> 260 [style=solid label="\"par\""] - 516 -> 261 [style=solid label="\"skip\""] - 516 -> 262 [style=solid label="\"let\""] - 516 -> 263 [style=solid label="\"local\""] + 494 [label="State 494\n\l 46 StructureDefinitionElement: \"[\" Attributes \"]\" FunctionDefinition •\l"] + 494 -> "494R46" [style=solid] + "494R46" [label="R46", fillcolor=3, shape=diamond, style=filled] + 495 [label="State 495\n\l 62 DeclarationDefinition: \"derived\" Identifier \":\" MaybeFunctionParameters • \"->\" Type\l"] + 495 -> 516 [style=solid label="\"->\""] + 496 [label="State 496\n\l 63 DeclarationDefinition: \"rule\" Identifier \":\" MaybeFunctionParameters • \"->\" Type\l"] + 496 -> 517 [style=solid label="\"->\""] + 497 [label="State 497\n\l 56 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\" •\l"] + 497 -> "497R56" [style=solid] + "497R56" [label="R56", fillcolor=3, shape=diamond, style=filled] + 498 [label="State 498\n\l215 MaybeDefined: \"defined\" \"{\" • Term \"}\"\l"] + 498 -> 45 [style=solid label="\"let\""] + 498 -> 8 [style=solid label="\"in\""] + 498 -> 46 [style=solid label="\"forall\""] + 498 -> 47 [style=solid label="\"choose\""] + 498 -> 48 [style=solid label="\"if\""] + 498 -> 49 [style=solid label="\"exists\""] + 498 -> 50 [style=solid label="\"undef\""] + 498 -> 51 [style=solid label="\"false\""] + 498 -> 52 [style=solid label="\"true\""] + 498 -> 53 [style=solid label="\"not\""] + 498 -> 54 [style=solid label="\"+\""] + 498 -> 55 [style=solid label="\"-\""] + 498 -> 56 [style=solid label="\"(\""] + 498 -> 57 [style=solid label="\"[\""] + 498 -> 58 [style=solid label="\"|\""] + 498 -> 59 [style=solid label="\"@\""] + 498 -> 60 [style=solid label="\"binary\""] + 498 -> 61 [style=solid label="\"hexadecimal\""] + 498 -> 62 [style=solid label="\"integer\""] + 498 -> 63 [style=solid label="\"rational\""] + 498 -> 64 [style=solid label="\"decimal\""] + 498 -> 65 [style=solid label="\"string\""] + 498 -> 9 [style=solid label="\"identifier\""] + 498 -> 518 [style=dashed label="Term"] + 498 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 498 -> 68 [style=dashed label="OperatorExpression"] + 498 -> 69 [style=dashed label="CallExpression"] + 498 -> 70 [style=dashed label="DirectCallExpression"] + 498 -> 71 [style=dashed label="MethodCallExpression"] + 498 -> 72 [style=dashed label="LiteralCallExpression"] + 498 -> 73 [style=dashed label="IndirectCallExpression"] + 498 -> 74 [style=dashed label="TypeCastingExpression"] + 498 -> 75 [style=dashed label="LetExpression"] + 498 -> 76 [style=dashed label="ConditionalExpression"] + 498 -> 77 [style=dashed label="ChooseExpression"] + 498 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 498 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 498 -> 80 [style=dashed label="CardinalityExpression"] + 498 -> 81 [style=dashed label="Literal"] + 498 -> 82 [style=dashed label="UndefinedLiteral"] + 498 -> 83 [style=dashed label="BooleanLiteral"] + 498 -> 84 [style=dashed label="IntegerLiteral"] + 498 -> 85 [style=dashed label="RationalLiteral"] + 498 -> 86 [style=dashed label="DecimalLiteral"] + 498 -> 87 [style=dashed label="BinaryLiteral"] + 498 -> 88 [style=dashed label="StringLiteral"] + 498 -> 89 [style=dashed label="ReferenceLiteral"] + 498 -> 90 [style=dashed label="ListLiteral"] + 498 -> 91 [style=dashed label="RangeLiteral"] + 498 -> 92 [style=dashed label="TupleLiteral"] + 498 -> 93 [style=dashed label="RecordLiteral"] + 498 -> 94 [style=dashed label="Identifier"] + 498 -> 95 [style=dashed label="IdentifierPath"] + 499 [label="State 499\n\l217 MaybeInitially: \"=\" • \"{\" Initializers \"}\"\l"] + 499 -> 519 [style=solid label="\"{\""] + 500 [label="State 500\n\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially •\l"] + 500 -> "500R33" [style=solid] + "500R33" [label="R33", fillcolor=3, shape=diamond, style=filled] + 501 [label="State 501\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type \"=\" Term •\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] + 501 -> 148 [style=solid label="\"and\""] + 501 -> 149 [style=solid label="\"or\""] + 501 -> 150 [style=solid label="\"xor\""] + 501 -> 151 [style=solid label="\"implies\""] + 501 -> 152 [style=solid label="\"+\""] + 501 -> 153 [style=solid label="\"-\""] + 501 -> 154 [style=solid label="\"=\""] + 501 -> 155 [style=solid label="\"<\""] + 501 -> 156 [style=solid label="\">\""] + 501 -> 157 [style=solid label="\"*\""] + 501 -> 158 [style=solid label="\"/\""] + 501 -> 159 [style=solid label="\"%\""] + 501 -> 160 [style=solid label="\"^\""] + 501 -> 161 [style=solid label="\"=>\""] + 501 -> 162 [style=solid label="\"!=\""] + 501 -> 163 [style=solid label="\"<=\""] + 501 -> 164 [style=solid label="\">=\""] + 501 -> "501R26" [style=solid] + "501R26" [label="R26", fillcolor=3, shape=diamond, style=filled] + 502 [label="State 502\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Term •\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] + 502 -> 148 [style=solid label="\"and\""] + 502 -> 149 [style=solid label="\"or\""] + 502 -> 150 [style=solid label="\"xor\""] + 502 -> 151 [style=solid label="\"implies\""] + 502 -> 152 [style=solid label="\"+\""] + 502 -> 153 [style=solid label="\"-\""] + 502 -> 154 [style=solid label="\"=\""] + 502 -> 155 [style=solid label="\"<\""] + 502 -> 156 [style=solid label="\">\""] + 502 -> 157 [style=solid label="\"*\""] + 502 -> 158 [style=solid label="\"/\""] + 502 -> 159 [style=solid label="\"%\""] + 502 -> 160 [style=solid label="\"^\""] + 502 -> 161 [style=solid label="\"=>\""] + 502 -> 162 [style=solid label="\"!=\""] + 502 -> 163 [style=solid label="\"<=\""] + 502 -> 164 [style=solid label="\">=\""] + 502 -> "502R25" [style=solid] + "502R25" [label="R25", fillcolor=3, shape=diamond, style=filled] + 503 [label="State 503\n\l247 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type • MaybeDefined MaybeInitially\l"] + 503 -> 477 [style=solid label="\"defined\""] + 503 -> 520 [style=dashed label="MaybeDefined"] + 503 -> "503R216" [style=solid] + "503R216" [label="R216", fillcolor=3, shape=diamond, style=filled] + 504 [label="State 504\n\l 91 ForallRule: \"forall\" AttributedVariables \"in\" Term \"do\" Rule •\l"] + 504 -> "504R91" [style=solid] + "504R91" [label="R91", fillcolor=3, shape=diamond, style=filled] + 505 [label="State 505\n\l 92 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term • \"do\" Rule\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l"] + 505 -> 521 [style=solid label="\"do\""] + 505 -> 148 [style=solid label="\"and\""] + 505 -> 149 [style=solid label="\"or\""] + 505 -> 150 [style=solid label="\"xor\""] + 505 -> 151 [style=solid label="\"implies\""] + 505 -> 152 [style=solid label="\"+\""] + 505 -> 153 [style=solid label="\"-\""] + 505 -> 154 [style=solid label="\"=\""] + 505 -> 155 [style=solid label="\"<\""] + 505 -> 156 [style=solid label="\">\""] + 505 -> 157 [style=solid label="\"*\""] + 505 -> 158 [style=solid label="\"/\""] + 505 -> 159 [style=solid label="\"%\""] + 505 -> 160 [style=solid label="\"^\""] + 505 -> 161 [style=solid label="\"=>\""] + 505 -> 162 [style=solid label="\"!=\""] + 505 -> 163 [style=solid label="\"<=\""] + 505 -> 164 [style=solid label="\">=\""] + 506 [label="State 506\n\l 93 ChooseRule: \"choose\" AttributedVariables \"in\" Term \"do\" Rule •\l"] + 506 -> "506R93" [style=solid] + "506R93" [label="R93", fillcolor=3, shape=diamond, style=filled] + 507 [label="State 507\n\l 81 ConditionalRule: \"if\" Term \"then\" Rule \"else\" Rule •\l"] + 507 -> "507R81" [style=solid] + "507R81" [label="R81", fillcolor=3, shape=diamond, style=filled] + 508 [label="State 508\n\l 83 CaseRule: \"case\" Term \"of\" \"{\" error \"}\" •\l"] + 508 -> "508R83" [style=solid] + "508R83" [label="R83", fillcolor=3, shape=diamond, style=filled] + 509 [label="State 509\n\l 86 CaseLabel: \"default\" \":\" • Rule\l"] + 509 -> 259 [style=solid label="\"seq\""] + 509 -> 260 [style=solid label="\"par\""] + 509 -> 261 [style=solid label="\"skip\""] + 509 -> 262 [style=solid label="\"let\""] + 509 -> 263 [style=solid label="\"local\""] + 509 -> 8 [style=solid label="\"in\""] + 509 -> 264 [style=solid label="\"forall\""] + 509 -> 265 [style=solid label="\"choose\""] + 509 -> 266 [style=solid label="\"iterate\""] + 509 -> 267 [style=solid label="\"if\""] + 509 -> 268 [style=solid label="\"case\""] + 509 -> 269 [style=solid label="\"while\""] + 509 -> 50 [style=solid label="\"undef\""] + 509 -> 51 [style=solid label="\"false\""] + 509 -> 52 [style=solid label="\"true\""] + 509 -> 54 [style=solid label="\"+\""] + 509 -> 55 [style=solid label="\"-\""] + 509 -> 56 [style=solid label="\"(\""] + 509 -> 57 [style=solid label="\"[\""] + 509 -> 270 [style=solid label="\"{\""] + 509 -> 59 [style=solid label="\"@\""] + 509 -> 271 [style=solid label="\"{|\""] + 509 -> 60 [style=solid label="\"binary\""] + 509 -> 61 [style=solid label="\"hexadecimal\""] + 509 -> 62 [style=solid label="\"integer\""] + 509 -> 63 [style=solid label="\"rational\""] + 509 -> 64 [style=solid label="\"decimal\""] + 509 -> 65 [style=solid label="\"string\""] + 509 -> 9 [style=solid label="\"identifier\""] + 509 -> 522 [style=dashed label="Rule"] + 509 -> 273 [style=dashed label="SkipRule"] + 509 -> 274 [style=dashed label="ConditionalRule"] + 509 -> 275 [style=dashed label="CaseRule"] + 509 -> 276 [style=dashed label="LetRule"] + 509 -> 277 [style=dashed label="LocalRule"] + 509 -> 278 [style=dashed label="ForallRule"] + 509 -> 279 [style=dashed label="ChooseRule"] + 509 -> 280 [style=dashed label="IterateRule"] + 509 -> 281 [style=dashed label="BlockRule"] + 509 -> 282 [style=dashed label="SequenceRule"] + 509 -> 283 [style=dashed label="UpdateRule"] + 509 -> 284 [style=dashed label="CallRule"] + 509 -> 285 [style=dashed label="WhileRule"] + 509 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 509 -> 287 [style=dashed label="CallExpression"] + 509 -> 288 [style=dashed label="DirectCallExpression"] + 509 -> 71 [style=dashed label="MethodCallExpression"] + 509 -> 72 [style=dashed label="LiteralCallExpression"] + 509 -> 73 [style=dashed label="IndirectCallExpression"] + 509 -> 81 [style=dashed label="Literal"] + 509 -> 82 [style=dashed label="UndefinedLiteral"] + 509 -> 83 [style=dashed label="BooleanLiteral"] + 509 -> 84 [style=dashed label="IntegerLiteral"] + 509 -> 85 [style=dashed label="RationalLiteral"] + 509 -> 86 [style=dashed label="DecimalLiteral"] + 509 -> 87 [style=dashed label="BinaryLiteral"] + 509 -> 88 [style=dashed label="StringLiteral"] + 509 -> 89 [style=dashed label="ReferenceLiteral"] + 509 -> 90 [style=dashed label="ListLiteral"] + 509 -> 91 [style=dashed label="RangeLiteral"] + 509 -> 92 [style=dashed label="TupleLiteral"] + 509 -> 93 [style=dashed label="RecordLiteral"] + 509 -> 94 [style=dashed label="Identifier"] + 509 -> 95 [style=dashed label="IdentifierPath"] + 510 [label="State 510\n\l 87 CaseLabel: \"_\" \":\" • Rule\l"] + 510 -> 259 [style=solid label="\"seq\""] + 510 -> 260 [style=solid label="\"par\""] + 510 -> 261 [style=solid label="\"skip\""] + 510 -> 262 [style=solid label="\"let\""] + 510 -> 263 [style=solid label="\"local\""] + 510 -> 8 [style=solid label="\"in\""] + 510 -> 264 [style=solid label="\"forall\""] + 510 -> 265 [style=solid label="\"choose\""] + 510 -> 266 [style=solid label="\"iterate\""] + 510 -> 267 [style=solid label="\"if\""] + 510 -> 268 [style=solid label="\"case\""] + 510 -> 269 [style=solid label="\"while\""] + 510 -> 50 [style=solid label="\"undef\""] + 510 -> 51 [style=solid label="\"false\""] + 510 -> 52 [style=solid label="\"true\""] + 510 -> 54 [style=solid label="\"+\""] + 510 -> 55 [style=solid label="\"-\""] + 510 -> 56 [style=solid label="\"(\""] + 510 -> 57 [style=solid label="\"[\""] + 510 -> 270 [style=solid label="\"{\""] + 510 -> 59 [style=solid label="\"@\""] + 510 -> 271 [style=solid label="\"{|\""] + 510 -> 60 [style=solid label="\"binary\""] + 510 -> 61 [style=solid label="\"hexadecimal\""] + 510 -> 62 [style=solid label="\"integer\""] + 510 -> 63 [style=solid label="\"rational\""] + 510 -> 64 [style=solid label="\"decimal\""] + 510 -> 65 [style=solid label="\"string\""] + 510 -> 9 [style=solid label="\"identifier\""] + 510 -> 523 [style=dashed label="Rule"] + 510 -> 273 [style=dashed label="SkipRule"] + 510 -> 274 [style=dashed label="ConditionalRule"] + 510 -> 275 [style=dashed label="CaseRule"] + 510 -> 276 [style=dashed label="LetRule"] + 510 -> 277 [style=dashed label="LocalRule"] + 510 -> 278 [style=dashed label="ForallRule"] + 510 -> 279 [style=dashed label="ChooseRule"] + 510 -> 280 [style=dashed label="IterateRule"] + 510 -> 281 [style=dashed label="BlockRule"] + 510 -> 282 [style=dashed label="SequenceRule"] + 510 -> 283 [style=dashed label="UpdateRule"] + 510 -> 284 [style=dashed label="CallRule"] + 510 -> 285 [style=dashed label="WhileRule"] + 510 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 510 -> 287 [style=dashed label="CallExpression"] + 510 -> 288 [style=dashed label="DirectCallExpression"] + 510 -> 71 [style=dashed label="MethodCallExpression"] + 510 -> 72 [style=dashed label="LiteralCallExpression"] + 510 -> 73 [style=dashed label="IndirectCallExpression"] + 510 -> 81 [style=dashed label="Literal"] + 510 -> 82 [style=dashed label="UndefinedLiteral"] + 510 -> 83 [style=dashed label="BooleanLiteral"] + 510 -> 84 [style=dashed label="IntegerLiteral"] + 510 -> 85 [style=dashed label="RationalLiteral"] + 510 -> 86 [style=dashed label="DecimalLiteral"] + 510 -> 87 [style=dashed label="BinaryLiteral"] + 510 -> 88 [style=dashed label="StringLiteral"] + 510 -> 89 [style=dashed label="ReferenceLiteral"] + 510 -> 90 [style=dashed label="ListLiteral"] + 510 -> 91 [style=dashed label="RangeLiteral"] + 510 -> 92 [style=dashed label="TupleLiteral"] + 510 -> 93 [style=dashed label="RecordLiteral"] + 510 -> 94 [style=dashed label="Identifier"] + 510 -> 95 [style=dashed label="IdentifierPath"] + 511 [label="State 511\n\l 82 CaseRule: \"case\" Term \"of\" \"{\" CaseLabels \"}\" •\l"] + 511 -> "511R82" [style=solid] + "511R82" [label="R82", fillcolor=3, shape=diamond, style=filled] + 512 [label="State 512\n\l 84 CaseLabels: CaseLabels CaseLabel •\l"] + 512 -> "512R84" [style=solid] + "512R84" [label="R84", fillcolor=3, shape=diamond, style=filled] + 513 [label="State 513\n\l 88 CaseLabel: Term \":\" • Rule\l"] + 513 -> 259 [style=solid label="\"seq\""] + 513 -> 260 [style=solid label="\"par\""] + 513 -> 261 [style=solid label="\"skip\""] + 513 -> 262 [style=solid label="\"let\""] + 513 -> 263 [style=solid label="\"local\""] + 513 -> 8 [style=solid label="\"in\""] + 513 -> 264 [style=solid label="\"forall\""] + 513 -> 265 [style=solid label="\"choose\""] + 513 -> 266 [style=solid label="\"iterate\""] + 513 -> 267 [style=solid label="\"if\""] + 513 -> 268 [style=solid label="\"case\""] + 513 -> 269 [style=solid label="\"while\""] + 513 -> 50 [style=solid label="\"undef\""] + 513 -> 51 [style=solid label="\"false\""] + 513 -> 52 [style=solid label="\"true\""] + 513 -> 54 [style=solid label="\"+\""] + 513 -> 55 [style=solid label="\"-\""] + 513 -> 56 [style=solid label="\"(\""] + 513 -> 57 [style=solid label="\"[\""] + 513 -> 270 [style=solid label="\"{\""] + 513 -> 59 [style=solid label="\"@\""] + 513 -> 271 [style=solid label="\"{|\""] + 513 -> 60 [style=solid label="\"binary\""] + 513 -> 61 [style=solid label="\"hexadecimal\""] + 513 -> 62 [style=solid label="\"integer\""] + 513 -> 63 [style=solid label="\"rational\""] + 513 -> 64 [style=solid label="\"decimal\""] + 513 -> 65 [style=solid label="\"string\""] + 513 -> 9 [style=solid label="\"identifier\""] + 513 -> 524 [style=dashed label="Rule"] + 513 -> 273 [style=dashed label="SkipRule"] + 513 -> 274 [style=dashed label="ConditionalRule"] + 513 -> 275 [style=dashed label="CaseRule"] + 513 -> 276 [style=dashed label="LetRule"] + 513 -> 277 [style=dashed label="LocalRule"] + 513 -> 278 [style=dashed label="ForallRule"] + 513 -> 279 [style=dashed label="ChooseRule"] + 513 -> 280 [style=dashed label="IterateRule"] + 513 -> 281 [style=dashed label="BlockRule"] + 513 -> 282 [style=dashed label="SequenceRule"] + 513 -> 283 [style=dashed label="UpdateRule"] + 513 -> 284 [style=dashed label="CallRule"] + 513 -> 285 [style=dashed label="WhileRule"] + 513 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 513 -> 287 [style=dashed label="CallExpression"] + 513 -> 288 [style=dashed label="DirectCallExpression"] + 513 -> 71 [style=dashed label="MethodCallExpression"] + 513 -> 72 [style=dashed label="LiteralCallExpression"] + 513 -> 73 [style=dashed label="IndirectCallExpression"] + 513 -> 81 [style=dashed label="Literal"] + 513 -> 82 [style=dashed label="UndefinedLiteral"] + 513 -> 83 [style=dashed label="BooleanLiteral"] + 513 -> 84 [style=dashed label="IntegerLiteral"] + 513 -> 85 [style=dashed label="RationalLiteral"] + 513 -> 86 [style=dashed label="DecimalLiteral"] + 513 -> 87 [style=dashed label="BinaryLiteral"] + 513 -> 88 [style=dashed label="StringLiteral"] + 513 -> 89 [style=dashed label="ReferenceLiteral"] + 513 -> 90 [style=dashed label="ListLiteral"] + 513 -> 91 [style=dashed label="RangeLiteral"] + 513 -> 92 [style=dashed label="TupleLiteral"] + 513 -> 93 [style=dashed label="RecordLiteral"] + 513 -> 94 [style=dashed label="Identifier"] + 513 -> 95 [style=dashed label="IdentifierPath"] + 514 [label="State 514\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type \"=\" Rule •\l"] + 514 -> "514R32" [style=solid] + "514R32" [label="R32", fillcolor=3, shape=diamond, style=filled] + 515 [label="State 515\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Rule •\l"] + 515 -> "515R30" [style=solid] + "515R30" [label="R30", fillcolor=3, shape=diamond, style=filled] + 516 [label="State 516\n\l 62 DeclarationDefinition: \"derived\" Identifier \":\" MaybeFunctionParameters \"->\" • Type\l"] 516 -> 8 [style=solid label="\"in\""] - 516 -> 264 [style=solid label="\"forall\""] - 516 -> 265 [style=solid label="\"choose\""] - 516 -> 266 [style=solid label="\"iterate\""] - 516 -> 267 [style=solid label="\"if\""] - 516 -> 268 [style=solid label="\"case\""] - 516 -> 269 [style=solid label="\"while\""] - 516 -> 50 [style=solid label="\"undef\""] - 516 -> 51 [style=solid label="\"false\""] - 516 -> 52 [style=solid label="\"true\""] - 516 -> 54 [style=solid label="\"+\""] - 516 -> 55 [style=solid label="\"-\""] - 516 -> 56 [style=solid label="\"(\""] - 516 -> 57 [style=solid label="\"[\""] - 516 -> 270 [style=solid label="\"{\""] - 516 -> 59 [style=solid label="\"@\""] - 516 -> 271 [style=solid label="\"{|\""] - 516 -> 60 [style=solid label="\"binary\""] - 516 -> 61 [style=solid label="\"hexadecimal\""] - 516 -> 62 [style=solid label="\"integer\""] - 516 -> 63 [style=solid label="\"rational\""] - 516 -> 64 [style=solid label="\"decimal\""] - 516 -> 65 [style=solid label="\"string\""] + 516 -> 109 [style=solid label="\"(\""] 516 -> 9 [style=solid label="\"identifier\""] - 516 -> 525 [style=dashed label="Rule"] - 516 -> 273 [style=dashed label="SkipRule"] - 516 -> 274 [style=dashed label="ConditionalRule"] - 516 -> 275 [style=dashed label="CaseRule"] - 516 -> 276 [style=dashed label="LetRule"] - 516 -> 277 [style=dashed label="LocalRule"] - 516 -> 278 [style=dashed label="ForallRule"] - 516 -> 279 [style=dashed label="ChooseRule"] - 516 -> 280 [style=dashed label="IterateRule"] - 516 -> 281 [style=dashed label="BlockRule"] - 516 -> 282 [style=dashed label="SequenceRule"] - 516 -> 283 [style=dashed label="UpdateRule"] - 516 -> 284 [style=dashed label="CallRule"] - 516 -> 285 [style=dashed label="WhileRule"] - 516 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 516 -> 287 [style=dashed label="CallExpression"] - 516 -> 288 [style=dashed label="DirectCallExpression"] - 516 -> 71 [style=dashed label="MethodCallExpression"] - 516 -> 72 [style=dashed label="LiteralCallExpression"] - 516 -> 73 [style=dashed label="IndirectCallExpression"] - 516 -> 81 [style=dashed label="Literal"] - 516 -> 82 [style=dashed label="UndefinedLiteral"] - 516 -> 83 [style=dashed label="BooleanLiteral"] - 516 -> 84 [style=dashed label="IntegerLiteral"] - 516 -> 85 [style=dashed label="RationalLiteral"] - 516 -> 86 [style=dashed label="DecimalLiteral"] - 516 -> 87 [style=dashed label="BinaryLiteral"] - 516 -> 88 [style=dashed label="StringLiteral"] - 516 -> 89 [style=dashed label="ReferenceLiteral"] - 516 -> 90 [style=dashed label="ListLiteral"] - 516 -> 91 [style=dashed label="RangeLiteral"] - 516 -> 92 [style=dashed label="TupleLiteral"] - 516 -> 93 [style=dashed label="RecordLiteral"] + 516 -> 525 [style=dashed label="Type"] + 516 -> 111 [style=dashed label="BasicType"] + 516 -> 112 [style=dashed label="TupleType"] + 516 -> 113 [style=dashed label="RecordType"] + 516 -> 114 [style=dashed label="TemplateType"] + 516 -> 115 [style=dashed label="RelationType"] + 516 -> 116 [style=dashed label="FixedSizedType"] 516 -> 94 [style=dashed label="Identifier"] - 516 -> 95 [style=dashed label="IdentifierPath"] - 517 [label="State 517\n\l 84 CaseLabel: \"default\" \":\" Rule •\l"] - 517 -> "517R84" [style=solid] - "517R84" [label="R84", fillcolor=3, shape=diamond, style=filled] - 518 [label="State 518\n\l 85 CaseLabel: \"_\" \":\" Rule •\l"] - 518 -> "518R85" [style=solid] - "518R85" [label="R85", fillcolor=3, shape=diamond, style=filled] - 519 [label="State 519\n\l 86 CaseLabel: Term \":\" Rule •\l"] - 519 -> "519R86" [style=solid] - "519R86" [label="R86", fillcolor=3, shape=diamond, style=filled] - 520 [label="State 520\n\l 60 DeclarationDefinition: \"derived\" Identifier \":\" MaybeFunctionParameters \"->\" Type •\l"] - 520 -> "520R60" [style=solid] - "520R60" [label="R60", fillcolor=3, shape=diamond, style=filled] - 521 [label="State 521\n\l 61 DeclarationDefinition: \"rule\" Identifier \":\" MaybeFunctionParameters \"->\" Type •\l"] - 521 -> "521R61" [style=solid] - "521R61" [label="R61", fillcolor=3, shape=diamond, style=filled] - 522 [label="State 522\n\l213 MaybeDefined: \"defined\" \"{\" Term \"}\" •\l"] - 522 -> "522R213" [style=solid] - "522R213" [label="R213", fillcolor=3, shape=diamond, style=filled] - 523 [label="State 523\n\l215 MaybeInitially: \"=\" \"{\" Initializers • \"}\"\l217 Initializers: Initializers • \",\" Initializer\l"] - 523 -> 526 [style=solid label="\"}\""] - 523 -> 250 [style=solid label="\",\""] - 524 [label="State 524\n\l245 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially •\l"] - 524 -> "524R245" [style=solid] - "524R245" [label="R245", fillcolor=3, shape=diamond, style=filled] - 525 [label="State 525\n\l 90 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term \"do\" Rule •\l"] - 525 -> "525R90" [style=solid] - "525R90" [label="R90", fillcolor=3, shape=diamond, style=filled] - 526 [label="State 526\n\l215 MaybeInitially: \"=\" \"{\" Initializers \"}\" •\l"] - 526 -> "526R215" [style=solid] - "526R215" [label="R215", fillcolor=3, shape=diamond, style=filled] + 516 -> 190 [style=dashed label="IdentifierPath"] + 517 [label="State 517\n\l 63 DeclarationDefinition: \"rule\" Identifier \":\" MaybeFunctionParameters \"->\" • Type\l"] + 517 -> 8 [style=solid label="\"in\""] + 517 -> 109 [style=solid label="\"(\""] + 517 -> 9 [style=solid label="\"identifier\""] + 517 -> 526 [style=dashed label="Type"] + 517 -> 111 [style=dashed label="BasicType"] + 517 -> 112 [style=dashed label="TupleType"] + 517 -> 113 [style=dashed label="RecordType"] + 517 -> 114 [style=dashed label="TemplateType"] + 517 -> 115 [style=dashed label="RelationType"] + 517 -> 116 [style=dashed label="FixedSizedType"] + 517 -> 94 [style=dashed label="Identifier"] + 517 -> 190 [style=dashed label="IdentifierPath"] + 518 [label="State 518\n\l124 OperatorExpression: Term • \"+\" Term\l125 | Term • \"-\" Term\l126 | Term • \"*\" Term\l127 | Term • \"/\" Term\l128 | Term • \"%\" Term\l129 | Term • \"^\" Term\l130 | Term • \"!=\" Term\l131 | Term • \"=\" Term\l132 | Term • \"<\" Term\l133 | Term • \">\" Term\l134 | Term • \"<=\" Term\l135 | Term • \">=\" Term\l136 | Term • \"or\" Term\l137 | Term • \"xor\" Term\l138 | Term • \"and\" Term\l139 | Term • \"=>\" Term\l140 | Term • \"implies\" Term\l215 MaybeDefined: \"defined\" \"{\" Term • \"}\"\l"] + 518 -> 148 [style=solid label="\"and\""] + 518 -> 149 [style=solid label="\"or\""] + 518 -> 150 [style=solid label="\"xor\""] + 518 -> 151 [style=solid label="\"implies\""] + 518 -> 152 [style=solid label="\"+\""] + 518 -> 153 [style=solid label="\"-\""] + 518 -> 154 [style=solid label="\"=\""] + 518 -> 527 [style=solid label="\"}\""] + 518 -> 155 [style=solid label="\"<\""] + 518 -> 156 [style=solid label="\">\""] + 518 -> 157 [style=solid label="\"*\""] + 518 -> 158 [style=solid label="\"/\""] + 518 -> 159 [style=solid label="\"%\""] + 518 -> 160 [style=solid label="\"^\""] + 518 -> 161 [style=solid label="\"=>\""] + 518 -> 162 [style=solid label="\"!=\""] + 518 -> 163 [style=solid label="\"<=\""] + 518 -> 164 [style=solid label="\">=\""] + 519 [label="State 519\n\l217 MaybeInitially: \"=\" \"{\" • Initializers \"}\"\l"] + 519 -> 45 [style=solid label="\"let\""] + 519 -> 8 [style=solid label="\"in\""] + 519 -> 46 [style=solid label="\"forall\""] + 519 -> 47 [style=solid label="\"choose\""] + 519 -> 48 [style=solid label="\"if\""] + 519 -> 49 [style=solid label="\"exists\""] + 519 -> 50 [style=solid label="\"undef\""] + 519 -> 51 [style=solid label="\"false\""] + 519 -> 52 [style=solid label="\"true\""] + 519 -> 53 [style=solid label="\"not\""] + 519 -> 54 [style=solid label="\"+\""] + 519 -> 55 [style=solid label="\"-\""] + 519 -> 170 [style=solid label="\"(\""] + 519 -> 57 [style=solid label="\"[\""] + 519 -> 58 [style=solid label="\"|\""] + 519 -> 59 [style=solid label="\"@\""] + 519 -> 60 [style=solid label="\"binary\""] + 519 -> 61 [style=solid label="\"hexadecimal\""] + 519 -> 62 [style=solid label="\"integer\""] + 519 -> 63 [style=solid label="\"rational\""] + 519 -> 64 [style=solid label="\"decimal\""] + 519 -> 65 [style=solid label="\"string\""] + 519 -> 9 [style=solid label="\"identifier\""] + 519 -> 171 [style=dashed label="Term"] + 519 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 519 -> 68 [style=dashed label="OperatorExpression"] + 519 -> 69 [style=dashed label="CallExpression"] + 519 -> 70 [style=dashed label="DirectCallExpression"] + 519 -> 71 [style=dashed label="MethodCallExpression"] + 519 -> 72 [style=dashed label="LiteralCallExpression"] + 519 -> 73 [style=dashed label="IndirectCallExpression"] + 519 -> 74 [style=dashed label="TypeCastingExpression"] + 519 -> 75 [style=dashed label="LetExpression"] + 519 -> 76 [style=dashed label="ConditionalExpression"] + 519 -> 77 [style=dashed label="ChooseExpression"] + 519 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 519 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 519 -> 80 [style=dashed label="CardinalityExpression"] + 519 -> 81 [style=dashed label="Literal"] + 519 -> 82 [style=dashed label="UndefinedLiteral"] + 519 -> 83 [style=dashed label="BooleanLiteral"] + 519 -> 84 [style=dashed label="IntegerLiteral"] + 519 -> 85 [style=dashed label="RationalLiteral"] + 519 -> 86 [style=dashed label="DecimalLiteral"] + 519 -> 87 [style=dashed label="BinaryLiteral"] + 519 -> 88 [style=dashed label="StringLiteral"] + 519 -> 89 [style=dashed label="ReferenceLiteral"] + 519 -> 90 [style=dashed label="ListLiteral"] + 519 -> 91 [style=dashed label="RangeLiteral"] + 519 -> 172 [style=dashed label="TupleLiteral"] + 519 -> 93 [style=dashed label="RecordLiteral"] + 519 -> 528 [style=dashed label="Initializers"] + 519 -> 174 [style=dashed label="Initializer"] + 519 -> 94 [style=dashed label="Identifier"] + 519 -> 95 [style=dashed label="IdentifierPath"] + 520 [label="State 520\n\l247 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined • MaybeInitially\l"] + 520 -> 499 [style=solid label="\"=\""] + 520 -> 529 [style=dashed label="MaybeInitially"] + 520 -> "520R218" [style=solid] + "520R218" [label="R218", fillcolor=3, shape=diamond, style=filled] + 521 [label="State 521\n\l 92 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term \"do\" • Rule\l"] + 521 -> 259 [style=solid label="\"seq\""] + 521 -> 260 [style=solid label="\"par\""] + 521 -> 261 [style=solid label="\"skip\""] + 521 -> 262 [style=solid label="\"let\""] + 521 -> 263 [style=solid label="\"local\""] + 521 -> 8 [style=solid label="\"in\""] + 521 -> 264 [style=solid label="\"forall\""] + 521 -> 265 [style=solid label="\"choose\""] + 521 -> 266 [style=solid label="\"iterate\""] + 521 -> 267 [style=solid label="\"if\""] + 521 -> 268 [style=solid label="\"case\""] + 521 -> 269 [style=solid label="\"while\""] + 521 -> 50 [style=solid label="\"undef\""] + 521 -> 51 [style=solid label="\"false\""] + 521 -> 52 [style=solid label="\"true\""] + 521 -> 54 [style=solid label="\"+\""] + 521 -> 55 [style=solid label="\"-\""] + 521 -> 56 [style=solid label="\"(\""] + 521 -> 57 [style=solid label="\"[\""] + 521 -> 270 [style=solid label="\"{\""] + 521 -> 59 [style=solid label="\"@\""] + 521 -> 271 [style=solid label="\"{|\""] + 521 -> 60 [style=solid label="\"binary\""] + 521 -> 61 [style=solid label="\"hexadecimal\""] + 521 -> 62 [style=solid label="\"integer\""] + 521 -> 63 [style=solid label="\"rational\""] + 521 -> 64 [style=solid label="\"decimal\""] + 521 -> 65 [style=solid label="\"string\""] + 521 -> 9 [style=solid label="\"identifier\""] + 521 -> 530 [style=dashed label="Rule"] + 521 -> 273 [style=dashed label="SkipRule"] + 521 -> 274 [style=dashed label="ConditionalRule"] + 521 -> 275 [style=dashed label="CaseRule"] + 521 -> 276 [style=dashed label="LetRule"] + 521 -> 277 [style=dashed label="LocalRule"] + 521 -> 278 [style=dashed label="ForallRule"] + 521 -> 279 [style=dashed label="ChooseRule"] + 521 -> 280 [style=dashed label="IterateRule"] + 521 -> 281 [style=dashed label="BlockRule"] + 521 -> 282 [style=dashed label="SequenceRule"] + 521 -> 283 [style=dashed label="UpdateRule"] + 521 -> 284 [style=dashed label="CallRule"] + 521 -> 285 [style=dashed label="WhileRule"] + 521 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 521 -> 287 [style=dashed label="CallExpression"] + 521 -> 288 [style=dashed label="DirectCallExpression"] + 521 -> 71 [style=dashed label="MethodCallExpression"] + 521 -> 72 [style=dashed label="LiteralCallExpression"] + 521 -> 73 [style=dashed label="IndirectCallExpression"] + 521 -> 81 [style=dashed label="Literal"] + 521 -> 82 [style=dashed label="UndefinedLiteral"] + 521 -> 83 [style=dashed label="BooleanLiteral"] + 521 -> 84 [style=dashed label="IntegerLiteral"] + 521 -> 85 [style=dashed label="RationalLiteral"] + 521 -> 86 [style=dashed label="DecimalLiteral"] + 521 -> 87 [style=dashed label="BinaryLiteral"] + 521 -> 88 [style=dashed label="StringLiteral"] + 521 -> 89 [style=dashed label="ReferenceLiteral"] + 521 -> 90 [style=dashed label="ListLiteral"] + 521 -> 91 [style=dashed label="RangeLiteral"] + 521 -> 92 [style=dashed label="TupleLiteral"] + 521 -> 93 [style=dashed label="RecordLiteral"] + 521 -> 94 [style=dashed label="Identifier"] + 521 -> 95 [style=dashed label="IdentifierPath"] + 522 [label="State 522\n\l 86 CaseLabel: \"default\" \":\" Rule •\l"] + 522 -> "522R86" [style=solid] + "522R86" [label="R86", fillcolor=3, shape=diamond, style=filled] + 523 [label="State 523\n\l 87 CaseLabel: \"_\" \":\" Rule •\l"] + 523 -> "523R87" [style=solid] + "523R87" [label="R87", fillcolor=3, shape=diamond, style=filled] + 524 [label="State 524\n\l 88 CaseLabel: Term \":\" Rule •\l"] + 524 -> "524R88" [style=solid] + "524R88" [label="R88", fillcolor=3, shape=diamond, style=filled] + 525 [label="State 525\n\l 62 DeclarationDefinition: \"derived\" Identifier \":\" MaybeFunctionParameters \"->\" Type •\l"] + 525 -> "525R62" [style=solid] + "525R62" [label="R62", fillcolor=3, shape=diamond, style=filled] + 526 [label="State 526\n\l 63 DeclarationDefinition: \"rule\" Identifier \":\" MaybeFunctionParameters \"->\" Type •\l"] + 526 -> "526R63" [style=solid] + "526R63" [label="R63", fillcolor=3, shape=diamond, style=filled] + 527 [label="State 527\n\l215 MaybeDefined: \"defined\" \"{\" Term \"}\" •\l"] + 527 -> "527R215" [style=solid] + "527R215" [label="R215", fillcolor=3, shape=diamond, style=filled] + 528 [label="State 528\n\l217 MaybeInitially: \"=\" \"{\" Initializers • \"}\"\l219 Initializers: Initializers • \",\" Initializer\l"] + 528 -> 531 [style=solid label="\"}\""] + 528 -> 250 [style=solid label="\",\""] + 529 [label="State 529\n\l247 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially •\l"] + 529 -> "529R247" [style=solid] + "529R247" [label="R247", fillcolor=3, shape=diamond, style=filled] + 530 [label="State 530\n\l 92 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term \"do\" Rule •\l"] + 530 -> "530R92" [style=solid] + "530R92" [label="R92", fillcolor=3, shape=diamond, style=filled] + 531 [label="State 531\n\l217 MaybeInitially: \"=\" \"{\" Initializers \"}\" •\l"] + 531 -> "531R217" [style=solid] + "531R217" [label="R217", fillcolor=3, shape=diamond, style=filled] } diff --git a/src/various/GrammarParser.output b/src/various/GrammarParser.output index bf01a61b..9b992931 100644 --- a/src/various/GrammarParser.output +++ b/src/various/GrammarParser.output @@ -1,8 +1,19 @@ +Nonterminals useless in grammar + + FunctionDefinitions + + Terminals unused in grammar "this" +Rules useless in grammar + + 255 FunctionDefinitions: FunctionDefinitions FunctionDefinition + 256 | FunctionDefinition + + Grammar 0 $accept: Specification "end of file" @@ -48,412 +59,415 @@ Grammar 31 | "rule" Identifier "(" error ")" "=" Rule 32 | "rule" Identifier "(" error ")" "->" Type "=" Rule - 33 FunctionDefinitions: FunctionDefinitions FunctionDefinition - 34 | FunctionDefinition + 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially - 35 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 34 EnumeratorDefinition: Identifier + 35 | Attributes Identifier + 36 | error - 36 EnumeratorDefinition: Identifier - 37 | Attributes Identifier - 38 | error + 37 Enumerators: Enumerators "," EnumeratorDefinition + 38 | EnumeratorDefinition - 39 Enumerators: Enumerators "," EnumeratorDefinition - 40 | EnumeratorDefinition + 39 UsingDefinition: "using" Identifier "=" Type - 41 UsingDefinition: "using" Identifier "=" Type + 40 UsingPathDefinition: "using" IdentifierPath + 41 | "using" IdentifierPath "::" "*" - 42 UsingPathDefinition: "using" IdentifierPath - 43 | "using" IdentifierPath "::" "*" + 42 InvariantDefinition: "invariant" Identifier "=" Term - 44 InvariantDefinition: "invariant" Identifier "=" Term + 43 ImportDefinition: "import" IdentifierPath + 44 | "import" IdentifierPath "as" Identifier - 45 ImportDefinition: "import" IdentifierPath - 46 | "import" IdentifierPath "as" Identifier + 45 StructureDefinition: "structure" Identifier "=" "{" StructureDefinitionList "}" - 47 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinitions "}" + 46 StructureDefinitionElement: "[" Attributes "]" FunctionDefinition + 47 | FunctionDefinition - 48 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" + 48 StructureDefinitionList: StructureDefinitionList StructureDefinitionElement + 49 | StructureDefinitionElement - 49 FeatureDeclarationOrDefinition: DeclarationDefinition - 50 | DerivedDefinition - 51 | RuleDefinition + 50 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" - 52 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition - 53 | FeatureDeclarationOrDefinition + 51 FeatureDeclarationOrDefinition: DeclarationDefinition + 52 | DerivedDefinition + 53 | RuleDefinition - 54 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" - 55 | "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" + 54 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition + 55 | FeatureDeclarationOrDefinition - 56 ImplementationDefinitionDefinition: DerivedDefinition - 57 | RuleDefinition + 56 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" + 57 | "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" - 58 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions - 59 | ImplementationDefinitionDefinition + 58 ImplementationDefinitionDefinition: DerivedDefinition + 59 | RuleDefinition - 60 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type - 61 | "rule" Identifier ":" MaybeFunctionParameters "->" Type + 60 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions + 61 | ImplementationDefinitionDefinition - 62 Rules: Rules Rule - 63 | Rule + 62 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type + 63 | "rule" Identifier ":" MaybeFunctionParameters "->" Type - 64 Rule: SkipRule - 65 | ConditionalRule - 66 | CaseRule - 67 | LetRule - 68 | LocalRule - 69 | ForallRule - 70 | ChooseRule - 71 | IterateRule - 72 | BlockRule - 73 | SequenceRule - 74 | UpdateRule - 75 | CallRule - 76 | WhileRule + 64 Rules: Rules Rule + 65 | Rule - 77 SkipRule: "skip" + 66 Rule: SkipRule + 67 | ConditionalRule + 68 | CaseRule + 69 | LetRule + 70 | LocalRule + 71 | ForallRule + 72 | ChooseRule + 73 | IterateRule + 74 | BlockRule + 75 | SequenceRule + 76 | UpdateRule + 77 | CallRule + 78 | WhileRule - 78 ConditionalRule: "if" Term "then" Rule - 79 | "if" Term "then" Rule "else" Rule + 79 SkipRule: "skip" - 80 CaseRule: "case" Term "of" "{" CaseLabels "}" - 81 | "case" Term "of" "{" error "}" + 80 ConditionalRule: "if" Term "then" Rule + 81 | "if" Term "then" Rule "else" Rule - 82 CaseLabels: CaseLabels CaseLabel - 83 | CaseLabel + 82 CaseRule: "case" Term "of" "{" CaseLabels "}" + 83 | "case" Term "of" "{" error "}" - 84 CaseLabel: "default" ":" Rule - 85 | "_" ":" Rule - 86 | Term ":" Rule + 84 CaseLabels: CaseLabels CaseLabel + 85 | CaseLabel - 87 LetRule: "let" VariableBindings "in" Rule + 86 CaseLabel: "default" ":" Rule + 87 | "_" ":" Rule + 88 | Term ":" Rule - 88 LocalRule: "local" LocalFunctionDefinitions "in" Rule + 89 LetRule: "let" VariableBindings "in" Rule - 89 ForallRule: "forall" AttributedVariables "in" Term "do" Rule - 90 | "forall" AttributedVariables "in" Term "with" Term "do" Rule + 90 LocalRule: "local" LocalFunctionDefinitions "in" Rule - 91 ChooseRule: "choose" AttributedVariables "in" Term "do" Rule + 91 ForallRule: "forall" AttributedVariables "in" Term "do" Rule + 92 | "forall" AttributedVariables "in" Term "with" Term "do" Rule - 92 IterateRule: "iterate" Rule + 93 ChooseRule: "choose" AttributedVariables "in" Term "do" Rule - 93 BlockRule: "{" Rules "}" - 94 | "par" Rules "endpar" - 95 | "{" error "}" - 96 | "par" error "endpar" + 94 IterateRule: "iterate" Rule - 97 SequenceRule: "{|" Rules "|}" - 98 | "seq" Rules "endseq" - 99 | "{|" error "|}" - 100 | "seq" error "endseq" + 95 BlockRule: "{" Rules "}" + 96 | "par" Rules "endpar" + 97 | "{" error "}" + 98 | "par" error "endpar" - 101 UpdateRule: DirectCallExpression ":=" Term + 99 SequenceRule: "{|" Rules "|}" + 100 | "seq" Rules "endseq" + 101 | "{|" error "|}" + 102 | "seq" error "endseq" - 102 CallRule: CallExpression + 103 UpdateRule: DirectCallExpression ":=" Term - 103 WhileRule: "while" Term "do" Rule + 104 CallRule: CallExpression - 104 Terms: Terms "," Term - 105 | Term + 105 WhileRule: "while" Term "do" Rule - 106 Term: SimpleOrClaspedTerm - 107 | TypeCastingExpression - 108 | OperatorExpression - 109 | LetExpression - 110 | ConditionalExpression - 111 | ChooseExpression - 112 | UniversalQuantifierExpression - 113 | ExistentialQuantifierExpression - 114 | CardinalityExpression + 106 Terms: Terms "," Term + 107 | Term - 115 SimpleOrClaspedTerm: "(" Term ")" - 116 | "(" error ")" - 117 | CallExpression - 118 | LiteralCallExpression - 119 | Literal - 120 | "+" SimpleOrClaspedTerm - 121 | "-" SimpleOrClaspedTerm + 108 Term: SimpleOrClaspedTerm + 109 | TypeCastingExpression + 110 | OperatorExpression + 111 | LetExpression + 112 | ConditionalExpression + 113 | ChooseExpression + 114 | UniversalQuantifierExpression + 115 | ExistentialQuantifierExpression + 116 | CardinalityExpression - 122 OperatorExpression: Term "+" Term - 123 | Term "-" Term - 124 | Term "*" Term - 125 | Term "/" Term - 126 | Term "%" Term - 127 | Term "^" Term - 128 | Term "!=" Term - 129 | Term "=" Term - 130 | Term "<" Term - 131 | Term ">" Term - 132 | Term "<=" Term - 133 | Term ">=" Term - 134 | Term "or" Term - 135 | Term "xor" Term - 136 | Term "and" Term - 137 | Term "=>" Term - 138 | Term "implies" Term - 139 | "not" Term + 117 SimpleOrClaspedTerm: "(" Term ")" + 118 | "(" error ")" + 119 | CallExpression + 120 | LiteralCallExpression + 121 | Literal + 122 | "+" SimpleOrClaspedTerm + 123 | "-" SimpleOrClaspedTerm - 140 CallExpression: DirectCallExpression - 141 | MethodCallExpression - 142 | IndirectCallExpression + 124 OperatorExpression: Term "+" Term + 125 | Term "-" Term + 126 | Term "*" Term + 127 | Term "/" Term + 128 | Term "%" Term + 129 | Term "^" Term + 130 | Term "!=" Term + 131 | Term "=" Term + 132 | Term "<" Term + 133 | Term ">" Term + 134 | Term "<=" Term + 135 | Term ">=" Term + 136 | Term "or" Term + 137 | Term "xor" Term + 138 | Term "and" Term + 139 | Term "=>" Term + 140 | Term "implies" Term + 141 | "not" Term - 143 DirectCallExpression: IdentifierPath - 144 | IdentifierPath "(" ")" - 145 | IdentifierPath "(" Terms ")" - 146 | IdentifierPath "(" error ")" + 142 CallExpression: DirectCallExpression + 143 | MethodCallExpression + 144 | IndirectCallExpression - 147 MethodCallExpression: SimpleOrClaspedTerm "." Identifier - 148 | SimpleOrClaspedTerm "." Identifier "(" ")" - 149 | SimpleOrClaspedTerm "." Identifier "(" Terms ")" - 150 | SimpleOrClaspedTerm "." Identifier "(" error ")" + 145 DirectCallExpression: IdentifierPath + 146 | IdentifierPath "(" ")" + 147 | IdentifierPath "(" Terms ")" + 148 | IdentifierPath "(" error ")" - 151 LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral + 149 MethodCallExpression: SimpleOrClaspedTerm "." Identifier + 150 | SimpleOrClaspedTerm "." Identifier "(" ")" + 151 | SimpleOrClaspedTerm "." Identifier "(" Terms ")" + 152 | SimpleOrClaspedTerm "." Identifier "(" error ")" - 152 IndirectCallExpression: CallExpression "(" ")" - 153 | CallExpression "(" Terms ")" - 154 | CallExpression "(" error ")" + 153 LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral - 155 TypeCastingExpression: SimpleOrClaspedTerm "as" Type + 154 IndirectCallExpression: CallExpression "(" ")" + 155 | CallExpression "(" Terms ")" + 156 | CallExpression "(" error ")" - 156 LetExpression: "let" VariableBindings "in" Term + 157 TypeCastingExpression: SimpleOrClaspedTerm "as" Type - 157 ConditionalExpression: "if" Term "then" Term "else" Term + 158 LetExpression: "let" VariableBindings "in" Term - 158 ChooseExpression: "choose" AttributedVariables "in" Term "do" Term + 159 ConditionalExpression: "if" Term "then" Term "else" Term - 159 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term + 160 ChooseExpression: "choose" AttributedVariables "in" Term "do" Term - 160 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term + 161 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term - 161 CardinalityExpression: "|" SimpleOrClaspedTerm "|" + 162 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term - 162 Literal: UndefinedLiteral - 163 | BooleanLiteral - 164 | IntegerLiteral - 165 | RationalLiteral - 166 | DecimalLiteral - 167 | BinaryLiteral - 168 | StringLiteral - 169 | ReferenceLiteral - 170 | ListLiteral - 171 | RangeLiteral - 172 | TupleLiteral - 173 | RecordLiteral + 163 CardinalityExpression: "|" SimpleOrClaspedTerm "|" - 174 UndefinedLiteral: "undef" + 164 Literal: UndefinedLiteral + 165 | BooleanLiteral + 166 | IntegerLiteral + 167 | RationalLiteral + 168 | DecimalLiteral + 169 | BinaryLiteral + 170 | StringLiteral + 171 | ReferenceLiteral + 172 | ListLiteral + 173 | RangeLiteral + 174 | TupleLiteral + 175 | RecordLiteral - 175 BooleanLiteral: "true" - 176 | "false" + 176 UndefinedLiteral: "undef" - 177 IntegerLiteral: "integer" + 177 BooleanLiteral: "true" + 178 | "false" - 178 RationalLiteral: "rational" + 179 IntegerLiteral: "integer" - 179 DecimalLiteral: "decimal" + 180 RationalLiteral: "rational" - 180 BinaryLiteral: "binary" - 181 | "hexadecimal" + 181 DecimalLiteral: "decimal" - 182 StringLiteral: "string" + 182 BinaryLiteral: "binary" + 183 | "hexadecimal" - 183 ReferenceLiteral: "@" IdentifierPath + 184 StringLiteral: "string" - 184 ListLiteral: "[" "]" - 185 | "[" Terms "]" - 186 | "[" error "]" + 185 ReferenceLiteral: "@" IdentifierPath - 187 RangeLiteral: "[" Term ".." Term "]" + 186 ListLiteral: "[" "]" + 187 | "[" Terms "]" + 188 | "[" error "]" - 188 TupleLiteral: "(" Terms "," Term ")" + 189 RangeLiteral: "[" Term ".." Term "]" - 189 RecordLiteral: "(" Assignments ")" + 190 TupleLiteral: "(" Terms "," Term ")" - 190 Assignments: Assignments "," Assignment - 191 | Assignment + 191 RecordLiteral: "(" Assignments ")" - 192 Assignment: Identifier ":" Term + 192 Assignments: Assignments "," Assignment + 193 | Assignment - 193 Types: Types "," Type - 194 | Type + 194 Assignment: Identifier ":" Term - 195 Type: BasicType - 196 | TupleType - 197 | RecordType - 198 | TemplateType - 199 | RelationType - 200 | FixedSizedType + 195 Types: Types "," Type + 196 | Type - 201 BasicType: IdentifierPath + 197 Type: BasicType + 198 | TupleType + 199 | RecordType + 200 | TemplateType + 201 | RelationType + 202 | FixedSizedType - 202 TupleType: "(" Types "," Type ")" + 203 BasicType: IdentifierPath - 203 RecordType: "(" TypedVariables "," TypedVariable ")" + 204 TupleType: "(" Types "," Type ")" - 204 TemplateType: IdentifierPath "<" Types ">" + 205 RecordType: "(" TypedVariables "," TypedVariable ")" - 205 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" + 206 TemplateType: IdentifierPath "<" Types ">" - 206 FixedSizedType: IdentifierPath "'" Term + 207 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" - 207 FunctionParameters: FunctionParameters "*" Type - 208 | Type + 208 FixedSizedType: IdentifierPath "'" Term - 209 MaybeFunctionParameters: FunctionParameters - 210 | %empty + 209 FunctionParameters: FunctionParameters "*" Type + 210 | Type - 211 Parameters: Parameters "," TypedAttributedVariable - 212 | TypedAttributedVariable + 211 MaybeFunctionParameters: FunctionParameters + 212 | %empty - 213 MaybeDefined: "defined" "{" Term "}" - 214 | %empty + 213 Parameters: Parameters "," TypedAttributedVariable + 214 | TypedAttributedVariable - 215 MaybeInitially: "=" "{" Initializers "}" - 216 | %empty + 215 MaybeDefined: "defined" "{" Term "}" + 216 | %empty - 217 Initializers: Initializers "," Initializer - 218 | Initializer + 217 MaybeInitially: "=" "{" Initializers "}" + 218 | %empty - 219 Initializer: Term - 220 | "(" Term ")" "->" Term - 221 | TupleLiteral "->" Term + 219 Initializers: Initializers "," Initializer + 220 | Initializer - 222 Identifier: "identifier" - 223 | "in" + 221 Initializer: Term + 222 | "(" Term ")" "->" Term + 223 | TupleLiteral "->" Term - 224 IdentifierPath: IdentifierPath "::" Identifier - 225 | Identifier + 224 Identifier: "identifier" + 225 | "in" - 226 Variable: TypedVariable - 227 | Identifier + 226 IdentifierPath: IdentifierPath "::" Identifier + 227 | Identifier - 228 AttributedVariables: AttributedVariables "," AttributedVariable - 229 | AttributedVariable + 228 Variable: TypedVariable + 229 | Identifier - 230 TypedVariables: TypedVariables "," TypedVariable - 231 | TypedVariable + 230 AttributedVariables: AttributedVariables "," AttributedVariable + 231 | AttributedVariable - 232 TypedVariable: Identifier ":" Type + 232 TypedVariables: TypedVariables "," TypedVariable + 233 | TypedVariable - 233 AttributedVariable: Attributes Variable - 234 | Variable + 234 TypedVariable: Identifier ":" Type - 235 TypedAttributedVariable: Attributes TypedVariable - 236 | TypedVariable + 235 AttributedVariable: Attributes Variable + 236 | Variable - 237 VariableBindings: VariableBindings "," VariableBinding - 238 | VariableBinding + 237 TypedAttributedVariable: Attributes TypedVariable + 238 | TypedVariable - 239 VariableBinding: AttributedVariable "=" Term + 239 VariableBindings: VariableBindings "," VariableBinding + 240 | VariableBinding - 240 LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition - 241 | AttributedLocalFunctionDefinition + 241 VariableBinding: AttributedVariable "=" Term - 242 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition - 243 | LocalFunctionDefinition - 244 | error + 242 LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition + 243 | AttributedLocalFunctionDefinition - 245 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 244 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition + 245 | LocalFunctionDefinition + 246 | error - 246 Attributes: Attributes Attribute - 247 | Attribute + 247 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially - 248 Attribute: "[" BasicAttribute "]" - 249 | "[" ExpressionAttribute "]" - 250 | "[" error "]" + 248 Attributes: Attributes Attribute + 249 | Attribute - 251 BasicAttribute: Identifier + 250 Attribute: "[" BasicAttribute "]" + 251 | "[" ExpressionAttribute "]" + 252 | "[" error "]" - 252 ExpressionAttribute: Identifier Term + 253 BasicAttribute: Identifier + + 254 ExpressionAttribute: Identifier Term Terminals, with rules where they appear "end of file" (0) 0 - error (256) 8 26 31 32 38 81 95 96 99 100 116 146 150 154 186 244 250 + error (256) 8 26 31 32 36 83 97 98 101 102 118 148 152 156 188 246 252 "CASM" (258) 2 3 "init" (259) 21 22 - "derived" (260) 24 25 26 60 + "derived" (260) 24 25 26 62 "enumeration" (261) 23 - "rule" (262) 27 28 29 30 31 32 61 - "using" (263) 41 42 43 - "invariant" (264) 44 - "import" (265) 45 46 - "structure" (266) 47 - "feature" (267) 48 - "implements" (268) 54 55 - "for" (269) 54 + "rule" (262) 27 28 29 30 31 32 63 + "using" (263) 39 40 41 + "invariant" (264) 42 + "import" (265) 43 44 + "structure" (266) 45 + "feature" (267) 50 + "implements" (268) 56 57 + "for" (269) 56 "this" (270) - "function" (271) 35 - "defined" (272) 213 - "seq" (273) 98 100 - "endseq" (274) 98 100 - "par" (275) 94 96 - "endpar" (276) 94 96 - "skip" (277) 77 - "let" (278) 87 156 - "local" (279) 88 - "in" (280) 87 88 89 90 91 156 158 159 160 223 - "forall" (281) 89 90 159 - "choose" (282) 91 158 - "iterate" (283) 92 - "do" (284) 89 90 91 103 158 - "if" (285) 78 79 157 - "then" (286) 78 79 157 - "else" (287) 79 157 - "case" (288) 80 81 - "of" (289) 80 81 - "default" (290) 84 - "holds" (291) 159 - "exists" (292) 160 - "with" (293) 90 160 - "as" (294) 46 155 - "while" (295) 103 - "undef" (296) 174 - "false" (297) 176 - "true" (298) 175 - "and" (299) 136 - "or" (300) 134 - "xor" (301) 135 - "implies" (302) 138 - "not" (303) 139 - "+" (304) 120 122 - "-" (305) 121 123 - "=" (306) 23 24 25 26 27 28 29 30 31 32 41 44 47 48 54 55 129 215 239 - "(" (307) 25 26 29 30 31 32 115 116 144 145 146 148 149 150 152 153 154 188 189 202 203 220 - ")" (308) 25 26 29 30 31 32 115 116 144 145 146 148 149 150 152 153 154 188 189 202 203 220 - "[" (309) 184 185 186 187 248 249 250 - "]" (310) 184 185 186 187 248 249 250 - "{" (311) 22 23 47 48 54 55 80 81 93 95 213 215 - "}" (312) 22 23 47 48 54 55 80 81 93 95 213 215 - ":" (313) 35 60 61 84 85 86 192 232 245 - "::" (314) 43 224 - "_" (315) 85 - "|" (316) 161 - "@" (317) 183 - "," (318) 39 104 188 190 193 202 203 211 217 228 230 237 240 - "<" (319) 130 204 205 - ">" (320) 131 204 205 - "*" (321) 43 124 207 - "/" (322) 125 - "%" (323) 126 - "^" (324) 127 - "'" (325) 206 - ".." (326) 187 - "." (327) 147 148 149 150 151 - "->" (328) 24 25 26 28 30 32 35 60 61 205 220 221 245 - "=>" (329) 137 - ":=" (330) 101 - "!=" (331) 128 - "<=" (332) 132 - ">=" (333) 133 - "{|" (334) 97 99 - "|}" (335) 97 99 - "binary" (336) 180 - "hexadecimal" (337) 181 - "integer" (338) 177 - "rational" (339) 178 - "decimal" (340) 179 - "string" (341) 182 - "identifier" (342) 222 + "function" (271) 33 + "defined" (272) 215 + "seq" (273) 100 102 + "endseq" (274) 100 102 + "par" (275) 96 98 + "endpar" (276) 96 98 + "skip" (277) 79 + "let" (278) 89 158 + "local" (279) 90 + "in" (280) 89 90 91 92 93 158 160 161 162 225 + "forall" (281) 91 92 161 + "choose" (282) 93 160 + "iterate" (283) 94 + "do" (284) 91 92 93 105 160 + "if" (285) 80 81 159 + "then" (286) 80 81 159 + "else" (287) 81 159 + "case" (288) 82 83 + "of" (289) 82 83 + "default" (290) 86 + "holds" (291) 161 + "exists" (292) 162 + "with" (293) 92 162 + "as" (294) 44 157 + "while" (295) 105 + "undef" (296) 176 + "false" (297) 178 + "true" (298) 177 + "and" (299) 138 + "or" (300) 136 + "xor" (301) 137 + "implies" (302) 140 + "not" (303) 141 + "+" (304) 122 124 + "-" (305) 123 125 + "=" (306) 23 24 25 26 27 28 29 30 31 32 39 42 45 50 56 57 131 217 241 + "(" (307) 25 26 29 30 31 32 117 118 146 147 148 150 151 152 154 155 156 190 191 204 205 222 + ")" (308) 25 26 29 30 31 32 117 118 146 147 148 150 151 152 154 155 156 190 191 204 205 222 + "[" (309) 46 186 187 188 189 250 251 252 + "]" (310) 46 186 187 188 189 250 251 252 + "{" (311) 22 23 45 50 56 57 82 83 95 97 215 217 + "}" (312) 22 23 45 50 56 57 82 83 95 97 215 217 + ":" (313) 33 62 63 86 87 88 194 234 247 + "::" (314) 41 226 + "_" (315) 87 + "|" (316) 163 + "@" (317) 185 + "," (318) 37 106 190 192 195 204 205 213 219 230 232 239 242 + "<" (319) 132 206 207 + ">" (320) 133 206 207 + "*" (321) 41 126 209 + "/" (322) 127 + "%" (323) 128 + "^" (324) 129 + "'" (325) 208 + ".." (326) 189 + "." (327) 149 150 151 152 153 + "->" (328) 24 25 26 28 30 32 33 62 63 207 222 223 247 + "=>" (329) 139 + ":=" (330) 103 + "!=" (331) 130 + "<=" (332) 134 + ">=" (333) 135 + "{|" (334) 99 101 + "|}" (335) 99 101 + "binary" (336) 182 + "hexadecimal" (337) 183 + "integer" (338) 179 + "rational" (339) 180 + "decimal" (340) 181 + "string" (341) 184 + "identifier" (342) 224 BASIC_TYPE (343) CALL (344) UPLUS (345) @@ -488,298 +502,301 @@ Nonterminals, with rules where they appear on right: 10 DerivedDefinition (101) on left: 24 25 26 - on right: 11 50 56 + on right: 11 52 58 RuleDefinition (102) on left: 27 28 29 30 31 32 - on right: 12 51 57 - FunctionDefinitions (103) - on left: 33 34 - on right: 33 47 - FunctionDefinition (104) - on left: 35 - on right: 13 33 34 - EnumeratorDefinition (105) - on left: 36 37 38 - on right: 39 40 - Enumerators (106) - on left: 39 40 - on right: 23 39 - UsingDefinition (107) - on left: 41 + on right: 12 53 59 + FunctionDefinition (103) + on left: 33 + on right: 13 46 47 + EnumeratorDefinition (104) + on left: 34 35 36 + on right: 37 38 + Enumerators (105) + on left: 37 38 + on right: 23 37 + UsingDefinition (106) + on left: 39 on right: 14 - UsingPathDefinition (108) - on left: 42 43 + UsingPathDefinition (107) + on left: 40 41 on right: 15 - InvariantDefinition (109) - on left: 44 + InvariantDefinition (108) + on left: 42 on right: 16 - ImportDefinition (110) - on left: 45 46 + ImportDefinition (109) + on left: 43 44 on right: 17 - StructureDefinition (111) - on left: 47 + StructureDefinition (110) + on left: 45 on right: 18 - FeatureDefinition (112) - on left: 48 + StructureDefinitionElement (111) + on left: 46 47 + on right: 48 49 + StructureDefinitionList (112) + on left: 48 49 + on right: 45 48 + FeatureDefinition (113) + on left: 50 on right: 19 - FeatureDeclarationOrDefinition (113) - on left: 49 50 51 - on right: 52 53 - FeatureDeclarationsAndDefinitions (114) - on left: 52 53 - on right: 48 52 - ImplementationDefinition (115) + FeatureDeclarationOrDefinition (114) + on left: 51 52 53 + on right: 54 55 + FeatureDeclarationsAndDefinitions (115) on left: 54 55 - on right: 20 - ImplementationDefinitionDefinition (116) + on right: 50 54 + ImplementationDefinition (116) on left: 56 57 - on right: 58 59 - ImplementationDefinitionDefinitions (117) + on right: 20 + ImplementationDefinitionDefinition (117) on left: 58 59 - on right: 54 55 58 - DeclarationDefinition (118) + on right: 60 61 + ImplementationDefinitionDefinitions (118) on left: 60 61 - on right: 49 - Rules (119) + on right: 56 57 60 + DeclarationDefinition (119) on left: 62 63 - on right: 62 93 94 97 98 - Rule (120) - on left: 64 65 66 67 68 69 70 71 72 73 74 75 76 - on right: 27 28 29 30 31 32 62 63 78 79 84 85 86 87 88 89 90 91 92 103 - SkipRule (121) - on left: 77 - on right: 64 - ConditionalRule (122) - on left: 78 79 - on right: 65 - CaseRule (123) - on left: 80 81 + on right: 51 + Rules (120) + on left: 64 65 + on right: 64 95 96 99 100 + Rule (121) + on left: 66 67 68 69 70 71 72 73 74 75 76 77 78 + on right: 27 28 29 30 31 32 64 65 80 81 86 87 88 89 90 91 92 93 94 105 + SkipRule (122) + on left: 79 on right: 66 - CaseLabels (124) - on left: 82 83 - on right: 80 82 - CaseLabel (125) - on left: 84 85 86 - on right: 82 83 - LetRule (126) - on left: 87 + ConditionalRule (123) + on left: 80 81 on right: 67 - LocalRule (127) - on left: 88 + CaseRule (124) + on left: 82 83 on right: 68 - ForallRule (128) - on left: 89 90 + CaseLabels (125) + on left: 84 85 + on right: 82 84 + CaseLabel (126) + on left: 86 87 88 + on right: 84 85 + LetRule (127) + on left: 89 on right: 69 - ChooseRule (129) - on left: 91 + LocalRule (128) + on left: 90 on right: 70 - IterateRule (130) - on left: 92 + ForallRule (129) + on left: 91 92 on right: 71 - BlockRule (131) - on left: 93 94 95 96 + ChooseRule (130) + on left: 93 on right: 72 - SequenceRule (132) - on left: 97 98 99 100 + IterateRule (131) + on left: 94 on right: 73 - UpdateRule (133) - on left: 101 + BlockRule (132) + on left: 95 96 97 98 on right: 74 - CallRule (134) - on left: 102 + SequenceRule (133) + on left: 99 100 101 102 on right: 75 - WhileRule (135) + UpdateRule (134) on left: 103 on right: 76 - Terms (136) - on left: 104 105 - on right: 104 145 149 153 185 188 - Term (137) - on left: 106 107 108 109 110 111 112 113 114 - on right: 24 25 26 44 78 79 80 81 86 89 90 91 101 103 104 105 115 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 156 157 158 159 160 187 188 192 206 213 219 220 221 239 252 - SimpleOrClaspedTerm (138) - on left: 115 116 117 118 119 120 121 - on right: 106 120 121 147 148 149 150 151 155 161 - OperatorExpression (139) - on left: 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 - on right: 108 - CallExpression (140) - on left: 140 141 142 - on right: 102 117 152 153 154 - DirectCallExpression (141) - on left: 143 144 145 146 - on right: 101 140 - MethodCallExpression (142) - on left: 147 148 149 150 - on right: 141 - LiteralCallExpression (143) - on left: 151 - on right: 118 - IndirectCallExpression (144) - on left: 152 153 154 - on right: 142 - TypeCastingExpression (145) - on left: 155 - on right: 107 - LetExpression (146) - on left: 156 - on right: 109 - ConditionalExpression (147) - on left: 157 + CallRule (135) + on left: 104 + on right: 77 + WhileRule (136) + on left: 105 + on right: 78 + Terms (137) + on left: 106 107 + on right: 106 147 151 155 187 190 + Term (138) + on left: 108 109 110 111 112 113 114 115 116 + on right: 24 25 26 42 80 81 82 83 88 91 92 93 103 105 106 107 117 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 158 159 160 161 162 189 190 194 208 215 221 222 223 241 254 + SimpleOrClaspedTerm (139) + on left: 117 118 119 120 121 122 123 + on right: 108 122 123 149 150 151 152 153 157 163 + OperatorExpression (140) + on left: 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 on right: 110 - ChooseExpression (148) + CallExpression (141) + on left: 142 143 144 + on right: 104 119 154 155 156 + DirectCallExpression (142) + on left: 145 146 147 148 + on right: 103 142 + MethodCallExpression (143) + on left: 149 150 151 152 + on right: 143 + LiteralCallExpression (144) + on left: 153 + on right: 120 + IndirectCallExpression (145) + on left: 154 155 156 + on right: 144 + TypeCastingExpression (146) + on left: 157 + on right: 109 + LetExpression (147) on left: 158 on right: 111 - UniversalQuantifierExpression (149) + ConditionalExpression (148) on left: 159 on right: 112 - ExistentialQuantifierExpression (150) + ChooseExpression (149) on left: 160 on right: 113 - CardinalityExpression (151) + UniversalQuantifierExpression (150) on left: 161 on right: 114 - Literal (152) - on left: 162 163 164 165 166 167 168 169 170 171 172 173 - on right: 119 - UndefinedLiteral (153) - on left: 174 - on right: 162 - BooleanLiteral (154) - on left: 175 176 - on right: 163 - IntegerLiteral (155) - on left: 177 - on right: 151 164 - RationalLiteral (156) - on left: 178 + ExistentialQuantifierExpression (151) + on left: 162 + on right: 115 + CardinalityExpression (152) + on left: 163 + on right: 116 + Literal (153) + on left: 164 165 166 167 168 169 170 171 172 173 174 175 + on right: 121 + UndefinedLiteral (154) + on left: 176 + on right: 164 + BooleanLiteral (155) + on left: 177 178 on right: 165 - DecimalLiteral (157) + IntegerLiteral (156) on left: 179 - on right: 166 - BinaryLiteral (158) - on left: 180 181 + on right: 153 166 + RationalLiteral (157) + on left: 180 on right: 167 - StringLiteral (159) - on left: 182 + DecimalLiteral (158) + on left: 181 on right: 168 - ReferenceLiteral (160) - on left: 183 + BinaryLiteral (159) + on left: 182 183 on right: 169 - ListLiteral (161) - on left: 184 185 186 + StringLiteral (160) + on left: 184 on right: 170 - RangeLiteral (162) - on left: 187 + ReferenceLiteral (161) + on left: 185 on right: 171 - TupleLiteral (163) - on left: 188 - on right: 172 221 - RecordLiteral (164) + ListLiteral (162) + on left: 186 187 188 + on right: 172 + RangeLiteral (163) on left: 189 on right: 173 - Assignments (165) - on left: 190 191 - on right: 189 190 - Assignment (166) - on left: 192 - on right: 190 191 - Types (167) - on left: 193 194 - on right: 193 202 204 - Type (168) - on left: 195 196 197 198 199 200 - on right: 24 25 26 28 30 32 35 41 54 55 60 61 155 193 194 202 205 207 208 232 245 - BasicType (169) - on left: 201 - on right: 195 - TupleType (170) - on left: 202 - on right: 196 - RecordType (171) + TupleLiteral (164) + on left: 190 + on right: 174 223 + RecordLiteral (165) + on left: 191 + on right: 175 + Assignments (166) + on left: 192 193 + on right: 191 192 + Assignment (167) + on left: 194 + on right: 192 193 + Types (168) + on left: 195 196 + on right: 195 204 206 + Type (169) + on left: 197 198 199 200 201 202 + on right: 24 25 26 28 30 32 33 39 56 57 62 63 157 195 196 204 207 209 210 234 247 + BasicType (170) on left: 203 on right: 197 - TemplateType (172) + TupleType (171) on left: 204 on right: 198 - RelationType (173) + RecordType (172) on left: 205 on right: 199 - FixedSizedType (174) + TemplateType (173) on left: 206 on right: 200 - FunctionParameters (175) - on left: 207 208 - on right: 207 209 - MaybeFunctionParameters (176) + RelationType (174) + on left: 207 + on right: 201 + FixedSizedType (175) + on left: 208 + on right: 202 + FunctionParameters (176) on left: 209 210 - on right: 35 60 61 205 245 - Parameters (177) + on right: 209 211 + MaybeFunctionParameters (177) on left: 211 212 - on right: 25 29 30 211 - MaybeDefined (178) + on right: 33 62 63 207 247 + Parameters (178) on left: 213 214 - on right: 35 245 - MaybeInitially (179) + on right: 25 29 30 213 + MaybeDefined (179) on left: 215 216 - on right: 35 245 - Initializers (180) + on right: 33 247 + MaybeInitially (180) on left: 217 218 - on right: 22 215 217 - Initializer (181) - on left: 219 220 221 - on right: 217 218 - Identifier (182) - on left: 222 223 - on right: 23 24 25 26 27 28 29 30 31 32 35 36 37 41 44 46 47 48 60 61 147 148 149 150 192 224 225 227 232 245 251 252 - IdentifierPath (183) + on right: 33 247 + Initializers (181) + on left: 219 220 + on right: 22 217 219 + Initializer (182) + on left: 221 222 223 + on right: 219 220 + Identifier (183) on left: 224 225 - on right: 21 42 43 45 46 54 143 144 145 146 183 201 204 205 206 224 - Variable (184) + on right: 23 24 25 26 27 28 29 30 31 32 33 34 35 39 42 44 45 50 62 63 149 150 151 152 194 226 227 229 234 247 253 254 + IdentifierPath (184) on left: 226 227 - on right: 233 234 - AttributedVariables (185) + on right: 21 40 41 43 44 56 145 146 147 148 185 203 206 207 208 226 + Variable (185) on left: 228 229 - on right: 89 90 91 158 159 160 228 - TypedVariables (186) + on right: 235 236 + AttributedVariables (186) on left: 230 231 - on right: 203 230 - TypedVariable (187) - on left: 232 - on right: 203 226 230 231 235 236 - AttributedVariable (188) - on left: 233 234 - on right: 228 229 239 - TypedAttributedVariable (189) + on right: 91 92 93 160 161 162 230 + TypedVariables (187) + on left: 232 233 + on right: 205 232 + TypedVariable (188) + on left: 234 + on right: 205 228 232 233 237 238 + AttributedVariable (189) on left: 235 236 - on right: 211 212 - VariableBindings (190) + on right: 230 231 241 + TypedAttributedVariable (190) on left: 237 238 - on right: 87 156 237 - VariableBinding (191) - on left: 239 - on right: 237 238 - LocalFunctionDefinitions (192) - on left: 240 241 - on right: 88 240 - AttributedLocalFunctionDefinition (193) - on left: 242 243 244 - on right: 240 241 - LocalFunctionDefinition (194) - on left: 245 + on right: 213 214 + VariableBindings (191) + on left: 239 240 + on right: 89 158 239 + VariableBinding (192) + on left: 241 + on right: 239 240 + LocalFunctionDefinitions (193) + on left: 242 243 + on right: 90 242 + AttributedLocalFunctionDefinition (194) + on left: 244 245 246 on right: 242 243 - Attributes (195) - on left: 246 247 - on right: 2 6 37 233 235 242 246 - Attribute (196) - on left: 248 249 250 - on right: 246 247 - BasicAttribute (197) - on left: 251 - on right: 248 - ExpressionAttribute (198) - on left: 252 - on right: 249 + LocalFunctionDefinition (195) + on left: 247 + on right: 244 245 + Attributes (196) + on left: 248 249 + on right: 2 6 35 46 235 237 244 248 + Attribute (197) + on left: 250 251 252 + on right: 248 249 + BasicAttribute (198) + on left: 253 + on right: 250 + ExpressionAttribute (199) + on left: 254 + on right: 251 State 0 @@ -804,9 +821,9 @@ State 1 State 2 - 248 Attribute: "[" • BasicAttribute "]" - 249 | "[" • ExpressionAttribute "]" - 250 | "[" • error "]" + 250 Attribute: "[" • BasicAttribute "]" + 251 | "[" • ExpressionAttribute "]" + 252 | "[" • error "]" error shift, and go to state 7 "in" shift, and go to state 8 @@ -864,7 +881,7 @@ State 4 State 5 2 Header: Attributes • "CASM" - 246 Attributes: Attributes • Attribute + 248 Attributes: Attributes • Attribute "CASM" shift, and go to state 42 "[" shift, and go to state 2 @@ -874,36 +891,36 @@ State 5 State 6 - 247 Attributes: Attribute • + 249 Attributes: Attribute • - $default reduce using rule 247 (Attributes) + $default reduce using rule 249 (Attributes) State 7 - 250 Attribute: "[" error • "]" + 252 Attribute: "[" error • "]" "]" shift, and go to state 44 State 8 - 223 Identifier: "in" • + 225 Identifier: "in" • - $default reduce using rule 223 (Identifier) + $default reduce using rule 225 (Identifier) State 9 - 222 Identifier: "identifier" • + 224 Identifier: "identifier" • - $default reduce using rule 222 (Identifier) + $default reduce using rule 224 (Identifier) State 10 - 251 BasicAttribute: Identifier • - 252 ExpressionAttribute: Identifier • Term + 253 BasicAttribute: Identifier • + 254 ExpressionAttribute: Identifier • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -929,7 +946,7 @@ State 10 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - $default reduce using rule 251 (BasicAttribute) + $default reduce using rule 253 (BasicAttribute) Term go to state 66 SimpleOrClaspedTerm go to state 67 @@ -965,14 +982,14 @@ State 10 State 11 - 248 Attribute: "[" BasicAttribute • "]" + 250 Attribute: "[" BasicAttribute • "]" "]" shift, and go to state 96 State 12 - 249 Attribute: "[" ExpressionAttribute • "]" + 251 Attribute: "[" ExpressionAttribute • "]" "]" shift, and go to state 97 @@ -1043,9 +1060,9 @@ State 18 State 19 - 41 UsingDefinition: "using" • Identifier "=" Type - 42 UsingPathDefinition: "using" • IdentifierPath - 43 | "using" • IdentifierPath "::" "*" + 39 UsingDefinition: "using" • Identifier "=" Type + 40 UsingPathDefinition: "using" • IdentifierPath + 41 | "using" • IdentifierPath "::" "*" "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -1056,7 +1073,7 @@ State 19 State 20 - 44 InvariantDefinition: "invariant" • Identifier "=" Term + 42 InvariantDefinition: "invariant" • Identifier "=" Term "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -1066,8 +1083,8 @@ State 20 State 21 - 45 ImportDefinition: "import" • IdentifierPath - 46 | "import" • IdentifierPath "as" Identifier + 43 ImportDefinition: "import" • IdentifierPath + 44 | "import" • IdentifierPath "as" Identifier "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -1078,7 +1095,7 @@ State 21 State 22 - 47 StructureDefinition: "structure" • Identifier "=" "{" FunctionDefinitions "}" + 45 StructureDefinition: "structure" • Identifier "=" "{" StructureDefinitionList "}" "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -1088,7 +1105,7 @@ State 22 State 23 - 48 FeatureDefinition: "feature" • Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" + 50 FeatureDefinition: "feature" • Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -1098,8 +1115,8 @@ State 23 State 24 - 54 ImplementationDefinition: "implements" • IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" - 55 | "implements" • Type "=" "{" ImplementationDefinitionDefinitions "}" + 56 ImplementationDefinition: "implements" • IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" + 57 | "implements" • Type "=" "{" ImplementationDefinitionDefinitions "}" "in" shift, and go to state 8 "(" shift, and go to state 109 @@ -1118,7 +1135,7 @@ State 24 State 25 - 35 FunctionDefinition: "function" • Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 33 FunctionDefinition: "function" • Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -1266,7 +1283,7 @@ State 40 State 41 6 AttributedDefinition: Attributes • Definition - 246 Attributes: Attributes • Attribute + 248 Attributes: Attributes • Attribute "init" shift, and go to state 15 "derived" shift, and go to state 16 @@ -1306,21 +1323,21 @@ State 42 State 43 - 246 Attributes: Attributes Attribute • + 248 Attributes: Attributes Attribute • - $default reduce using rule 246 (Attributes) + $default reduce using rule 248 (Attributes) State 44 - 250 Attribute: "[" error "]" • + 252 Attribute: "[" error "]" • - $default reduce using rule 250 (Attribute) + $default reduce using rule 252 (Attribute) State 45 - 156 LetExpression: "let" • VariableBindings "in" Term + 158 LetExpression: "let" • VariableBindings "in" Term "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -1338,7 +1355,7 @@ State 45 State 46 - 159 UniversalQuantifierExpression: "forall" • AttributedVariables "in" Term "holds" Term + 161 UniversalQuantifierExpression: "forall" • AttributedVariables "in" Term "holds" Term "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -1355,7 +1372,7 @@ State 46 State 47 - 158 ChooseExpression: "choose" • AttributedVariables "in" Term "do" Term + 160 ChooseExpression: "choose" • AttributedVariables "in" Term "do" Term "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -1372,7 +1389,7 @@ State 47 State 48 - 157 ConditionalExpression: "if" • Term "then" Term "else" Term + 159 ConditionalExpression: "if" • Term "then" Term "else" Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -1432,7 +1449,7 @@ State 48 State 49 - 160 ExistentialQuantifierExpression: "exists" • AttributedVariables "in" Term "with" Term + 162 ExistentialQuantifierExpression: "exists" • AttributedVariables "in" Term "with" Term "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -1449,28 +1466,28 @@ State 49 State 50 - 174 UndefinedLiteral: "undef" • + 176 UndefinedLiteral: "undef" • - $default reduce using rule 174 (UndefinedLiteral) + $default reduce using rule 176 (UndefinedLiteral) State 51 - 176 BooleanLiteral: "false" • + 178 BooleanLiteral: "false" • - $default reduce using rule 176 (BooleanLiteral) + $default reduce using rule 178 (BooleanLiteral) State 52 - 175 BooleanLiteral: "true" • + 177 BooleanLiteral: "true" • - $default reduce using rule 175 (BooleanLiteral) + $default reduce using rule 177 (BooleanLiteral) State 53 - 139 OperatorExpression: "not" • Term + 141 OperatorExpression: "not" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -1530,7 +1547,7 @@ State 53 State 54 - 120 SimpleOrClaspedTerm: "+" • SimpleOrClaspedTerm + 122 SimpleOrClaspedTerm: "+" • SimpleOrClaspedTerm "in" shift, and go to state 8 "undef" shift, and go to state 50 @@ -1574,7 +1591,7 @@ State 54 State 55 - 121 SimpleOrClaspedTerm: "-" • SimpleOrClaspedTerm + 123 SimpleOrClaspedTerm: "-" • SimpleOrClaspedTerm "in" shift, and go to state 8 "undef" shift, and go to state 50 @@ -1618,10 +1635,10 @@ State 55 State 56 - 115 SimpleOrClaspedTerm: "(" • Term ")" - 116 | "(" • error ")" - 188 TupleLiteral: "(" • Terms "," Term ")" - 189 RecordLiteral: "(" • Assignments ")" + 117 SimpleOrClaspedTerm: "(" • Term ")" + 118 | "(" • error ")" + 190 TupleLiteral: "(" • Terms "," Term ")" + 191 RecordLiteral: "(" • Assignments ")" error shift, and go to state 136 "let" shift, and go to state 45 @@ -1685,10 +1702,10 @@ State 56 State 57 - 184 ListLiteral: "[" • "]" - 185 | "[" • Terms "]" - 186 | "[" • error "]" - 187 RangeLiteral: "[" • Term ".." Term "]" + 186 ListLiteral: "[" • "]" + 187 | "[" • Terms "]" + 188 | "[" • error "]" + 189 RangeLiteral: "[" • Term ".." Term "]" error shift, and go to state 142 "let" shift, and go to state 45 @@ -1751,7 +1768,7 @@ State 57 State 58 - 161 CardinalityExpression: "|" • SimpleOrClaspedTerm "|" + 163 CardinalityExpression: "|" • SimpleOrClaspedTerm "|" "in" shift, and go to state 8 "undef" shift, and go to state 50 @@ -1795,7 +1812,7 @@ State 58 State 59 - 183 ReferenceLiteral: "@" • IdentifierPath + 185 ReferenceLiteral: "@" • IdentifierPath "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -1806,66 +1823,66 @@ State 59 State 60 - 180 BinaryLiteral: "binary" • + 182 BinaryLiteral: "binary" • - $default reduce using rule 180 (BinaryLiteral) + $default reduce using rule 182 (BinaryLiteral) State 61 - 181 BinaryLiteral: "hexadecimal" • + 183 BinaryLiteral: "hexadecimal" • - $default reduce using rule 181 (BinaryLiteral) + $default reduce using rule 183 (BinaryLiteral) State 62 - 177 IntegerLiteral: "integer" • + 179 IntegerLiteral: "integer" • - $default reduce using rule 177 (IntegerLiteral) + $default reduce using rule 179 (IntegerLiteral) State 63 - 178 RationalLiteral: "rational" • + 180 RationalLiteral: "rational" • - $default reduce using rule 178 (RationalLiteral) + $default reduce using rule 180 (RationalLiteral) State 64 - 179 DecimalLiteral: "decimal" • + 181 DecimalLiteral: "decimal" • - $default reduce using rule 179 (DecimalLiteral) + $default reduce using rule 181 (DecimalLiteral) State 65 - 182 StringLiteral: "string" • + 184 StringLiteral: "string" • - $default reduce using rule 182 (StringLiteral) + $default reduce using rule 184 (StringLiteral) State 66 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 252 ExpressionAttribute: Identifier Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 254 ExpressionAttribute: Identifier Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -1885,245 +1902,245 @@ State 66 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 252 (ExpressionAttribute) + $default reduce using rule 254 (ExpressionAttribute) State 67 - 106 Term: SimpleOrClaspedTerm • - 147 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 148 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 149 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 150 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 151 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral - 155 TypeCastingExpression: SimpleOrClaspedTerm • "as" Type + 108 Term: SimpleOrClaspedTerm • + 149 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier + 150 | SimpleOrClaspedTerm • "." Identifier "(" ")" + 151 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" + 152 | SimpleOrClaspedTerm • "." Identifier "(" error ")" + 153 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral + 157 TypeCastingExpression: SimpleOrClaspedTerm • "as" Type "as" shift, and go to state 165 "." shift, and go to state 166 - $default reduce using rule 106 (Term) + $default reduce using rule 108 (Term) State 68 - 108 Term: OperatorExpression • + 110 Term: OperatorExpression • - $default reduce using rule 108 (Term) + $default reduce using rule 110 (Term) State 69 - 117 SimpleOrClaspedTerm: CallExpression • - 152 IndirectCallExpression: CallExpression • "(" ")" - 153 | CallExpression • "(" Terms ")" - 154 | CallExpression • "(" error ")" + 119 SimpleOrClaspedTerm: CallExpression • + 154 IndirectCallExpression: CallExpression • "(" ")" + 155 | CallExpression • "(" Terms ")" + 156 | CallExpression • "(" error ")" "(" shift, and go to state 167 - $default reduce using rule 117 (SimpleOrClaspedTerm) + $default reduce using rule 119 (SimpleOrClaspedTerm) State 70 - 140 CallExpression: DirectCallExpression • + 142 CallExpression: DirectCallExpression • - $default reduce using rule 140 (CallExpression) + $default reduce using rule 142 (CallExpression) State 71 - 141 CallExpression: MethodCallExpression • + 143 CallExpression: MethodCallExpression • - $default reduce using rule 141 (CallExpression) + $default reduce using rule 143 (CallExpression) State 72 - 118 SimpleOrClaspedTerm: LiteralCallExpression • + 120 SimpleOrClaspedTerm: LiteralCallExpression • - $default reduce using rule 118 (SimpleOrClaspedTerm) + $default reduce using rule 120 (SimpleOrClaspedTerm) State 73 - 142 CallExpression: IndirectCallExpression • + 144 CallExpression: IndirectCallExpression • - $default reduce using rule 142 (CallExpression) + $default reduce using rule 144 (CallExpression) State 74 - 107 Term: TypeCastingExpression • + 109 Term: TypeCastingExpression • - $default reduce using rule 107 (Term) + $default reduce using rule 109 (Term) State 75 - 109 Term: LetExpression • + 111 Term: LetExpression • - $default reduce using rule 109 (Term) + $default reduce using rule 111 (Term) State 76 - 110 Term: ConditionalExpression • + 112 Term: ConditionalExpression • - $default reduce using rule 110 (Term) + $default reduce using rule 112 (Term) State 77 - 111 Term: ChooseExpression • + 113 Term: ChooseExpression • - $default reduce using rule 111 (Term) + $default reduce using rule 113 (Term) State 78 - 112 Term: UniversalQuantifierExpression • + 114 Term: UniversalQuantifierExpression • - $default reduce using rule 112 (Term) + $default reduce using rule 114 (Term) State 79 - 113 Term: ExistentialQuantifierExpression • + 115 Term: ExistentialQuantifierExpression • - $default reduce using rule 113 (Term) + $default reduce using rule 115 (Term) State 80 - 114 Term: CardinalityExpression • + 116 Term: CardinalityExpression • - $default reduce using rule 114 (Term) + $default reduce using rule 116 (Term) State 81 - 119 SimpleOrClaspedTerm: Literal • + 121 SimpleOrClaspedTerm: Literal • - $default reduce using rule 119 (SimpleOrClaspedTerm) + $default reduce using rule 121 (SimpleOrClaspedTerm) State 82 - 162 Literal: UndefinedLiteral • + 164 Literal: UndefinedLiteral • - $default reduce using rule 162 (Literal) + $default reduce using rule 164 (Literal) State 83 - 163 Literal: BooleanLiteral • + 165 Literal: BooleanLiteral • - $default reduce using rule 163 (Literal) + $default reduce using rule 165 (Literal) State 84 - 164 Literal: IntegerLiteral • + 166 Literal: IntegerLiteral • - $default reduce using rule 164 (Literal) + $default reduce using rule 166 (Literal) State 85 - 165 Literal: RationalLiteral • + 167 Literal: RationalLiteral • - $default reduce using rule 165 (Literal) + $default reduce using rule 167 (Literal) State 86 - 166 Literal: DecimalLiteral • + 168 Literal: DecimalLiteral • - $default reduce using rule 166 (Literal) + $default reduce using rule 168 (Literal) State 87 - 167 Literal: BinaryLiteral • + 169 Literal: BinaryLiteral • - $default reduce using rule 167 (Literal) + $default reduce using rule 169 (Literal) State 88 - 168 Literal: StringLiteral • + 170 Literal: StringLiteral • - $default reduce using rule 168 (Literal) + $default reduce using rule 170 (Literal) State 89 - 169 Literal: ReferenceLiteral • + 171 Literal: ReferenceLiteral • - $default reduce using rule 169 (Literal) + $default reduce using rule 171 (Literal) State 90 - 170 Literal: ListLiteral • + 172 Literal: ListLiteral • - $default reduce using rule 170 (Literal) + $default reduce using rule 172 (Literal) State 91 - 171 Literal: RangeLiteral • + 173 Literal: RangeLiteral • - $default reduce using rule 171 (Literal) + $default reduce using rule 173 (Literal) State 92 - 172 Literal: TupleLiteral • + 174 Literal: TupleLiteral • - $default reduce using rule 172 (Literal) + $default reduce using rule 174 (Literal) State 93 - 173 Literal: RecordLiteral • + 175 Literal: RecordLiteral • - $default reduce using rule 173 (Literal) + $default reduce using rule 175 (Literal) State 94 - 225 IdentifierPath: Identifier • + 227 IdentifierPath: Identifier • - $default reduce using rule 225 (IdentifierPath) + $default reduce using rule 227 (IdentifierPath) State 95 - 143 DirectCallExpression: IdentifierPath • - 144 | IdentifierPath • "(" ")" - 145 | IdentifierPath • "(" Terms ")" - 146 | IdentifierPath • "(" error ")" - 224 IdentifierPath: IdentifierPath • "::" Identifier + 145 DirectCallExpression: IdentifierPath • + 146 | IdentifierPath • "(" ")" + 147 | IdentifierPath • "(" Terms ")" + 148 | IdentifierPath • "(" error ")" + 226 IdentifierPath: IdentifierPath • "::" Identifier "(" shift, and go to state 168 "::" shift, and go to state 169 - $default reduce using rule 143 (DirectCallExpression) + $default reduce using rule 145 (DirectCallExpression) State 96 - 248 Attribute: "[" BasicAttribute "]" • + 250 Attribute: "[" BasicAttribute "]" • - $default reduce using rule 248 (Attribute) + $default reduce using rule 250 (Attribute) State 97 - 249 Attribute: "[" ExpressionAttribute "]" • + 251 Attribute: "[" ExpressionAttribute "]" • - $default reduce using rule 249 (Attribute) + $default reduce using rule 251 (Attribute) State 98 @@ -2191,7 +2208,7 @@ State 98 State 99 21 InitDefinition: "init" IdentifierPath • - 224 IdentifierPath: IdentifierPath • "::" Identifier + 226 IdentifierPath: IdentifierPath • "::" Identifier "::" shift, and go to state 169 @@ -2231,62 +2248,62 @@ State 102 State 103 - 41 UsingDefinition: "using" Identifier • "=" Type - 225 IdentifierPath: Identifier • + 39 UsingDefinition: "using" Identifier • "=" Type + 227 IdentifierPath: Identifier • "=" shift, and go to state 181 - $default reduce using rule 225 (IdentifierPath) + $default reduce using rule 227 (IdentifierPath) State 104 - 42 UsingPathDefinition: "using" IdentifierPath • - 43 | "using" IdentifierPath • "::" "*" - 224 IdentifierPath: IdentifierPath • "::" Identifier + 40 UsingPathDefinition: "using" IdentifierPath • + 41 | "using" IdentifierPath • "::" "*" + 226 IdentifierPath: IdentifierPath • "::" Identifier "::" shift, and go to state 182 - $default reduce using rule 42 (UsingPathDefinition) + $default reduce using rule 40 (UsingPathDefinition) State 105 - 44 InvariantDefinition: "invariant" Identifier • "=" Term + 42 InvariantDefinition: "invariant" Identifier • "=" Term "=" shift, and go to state 183 State 106 - 45 ImportDefinition: "import" IdentifierPath • - 46 | "import" IdentifierPath • "as" Identifier - 224 IdentifierPath: IdentifierPath • "::" Identifier + 43 ImportDefinition: "import" IdentifierPath • + 44 | "import" IdentifierPath • "as" Identifier + 226 IdentifierPath: IdentifierPath • "::" Identifier "as" shift, and go to state 184 "::" shift, and go to state 169 - $default reduce using rule 45 (ImportDefinition) + $default reduce using rule 43 (ImportDefinition) State 107 - 47 StructureDefinition: "structure" Identifier • "=" "{" FunctionDefinitions "}" + 45 StructureDefinition: "structure" Identifier • "=" "{" StructureDefinitionList "}" "=" shift, and go to state 185 State 108 - 48 FeatureDefinition: "feature" Identifier • "=" "{" FeatureDeclarationsAndDefinitions "}" + 50 FeatureDefinition: "feature" Identifier • "=" "{" FeatureDeclarationsAndDefinitions "}" "=" shift, and go to state 186 State 109 - 202 TupleType: "(" • Types "," Type ")" - 203 RecordType: "(" • TypedVariables "," TypedVariable ")" + 204 TupleType: "(" • Types "," Type ")" + 205 RecordType: "(" • TypedVariables "," TypedVariable ")" "in" shift, and go to state 8 "(" shift, and go to state 109 @@ -2308,73 +2325,73 @@ State 109 State 110 - 55 ImplementationDefinition: "implements" Type • "=" "{" ImplementationDefinitionDefinitions "}" + 57 ImplementationDefinition: "implements" Type • "=" "{" ImplementationDefinitionDefinitions "}" "=" shift, and go to state 193 State 111 - 195 Type: BasicType • + 197 Type: BasicType • - $default reduce using rule 195 (Type) + $default reduce using rule 197 (Type) State 112 - 196 Type: TupleType • + 198 Type: TupleType • - $default reduce using rule 196 (Type) + $default reduce using rule 198 (Type) State 113 - 197 Type: RecordType • + 199 Type: RecordType • - $default reduce using rule 197 (Type) + $default reduce using rule 199 (Type) State 114 - 198 Type: TemplateType • + 200 Type: TemplateType • - $default reduce using rule 198 (Type) + $default reduce using rule 200 (Type) State 115 - 199 Type: RelationType • + 201 Type: RelationType • - $default reduce using rule 199 (Type) + $default reduce using rule 201 (Type) State 116 - 200 Type: FixedSizedType • + 202 Type: FixedSizedType • - $default reduce using rule 200 (Type) + $default reduce using rule 202 (Type) State 117 - 54 ImplementationDefinition: "implements" IdentifierPath • "for" Type "=" "{" ImplementationDefinitionDefinitions "}" - 201 BasicType: IdentifierPath • - 204 TemplateType: IdentifierPath • "<" Types ">" - 205 RelationType: IdentifierPath • "<" MaybeFunctionParameters "->" Type ">" - 206 FixedSizedType: IdentifierPath • "'" Term - 224 IdentifierPath: IdentifierPath • "::" Identifier + 56 ImplementationDefinition: "implements" IdentifierPath • "for" Type "=" "{" ImplementationDefinitionDefinitions "}" + 203 BasicType: IdentifierPath • + 206 TemplateType: IdentifierPath • "<" Types ">" + 207 RelationType: IdentifierPath • "<" MaybeFunctionParameters "->" Type ">" + 208 FixedSizedType: IdentifierPath • "'" Term + 226 IdentifierPath: IdentifierPath • "::" Identifier "for" shift, and go to state 194 "::" shift, and go to state 169 "<" shift, and go to state 195 "'" shift, and go to state 196 - $default reduce using rule 201 (BasicType) + $default reduce using rule 203 (BasicType) State 118 - 35 FunctionDefinition: "function" Identifier • ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 33 FunctionDefinition: "function" Identifier • ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially ":" shift, and go to state 197 @@ -2395,39 +2412,39 @@ State 120 State 121 - 227 Variable: Identifier • - 232 TypedVariable: Identifier • ":" Type + 229 Variable: Identifier • + 234 TypedVariable: Identifier • ":" Type ":" shift, and go to state 198 - $default reduce using rule 227 (Variable) + $default reduce using rule 229 (Variable) State 122 - 234 AttributedVariable: Variable • + 236 AttributedVariable: Variable • - $default reduce using rule 234 (AttributedVariable) + $default reduce using rule 236 (AttributedVariable) State 123 - 226 Variable: TypedVariable • + 228 Variable: TypedVariable • - $default reduce using rule 226 (Variable) + $default reduce using rule 228 (Variable) State 124 - 239 VariableBinding: AttributedVariable • "=" Term + 241 VariableBinding: AttributedVariable • "=" Term "=" shift, and go to state 199 State 125 - 156 LetExpression: "let" VariableBindings • "in" Term - 237 VariableBindings: VariableBindings • "," VariableBinding + 158 LetExpression: "let" VariableBindings • "in" Term + 239 VariableBindings: VariableBindings • "," VariableBinding "in" shift, and go to state 200 "," shift, and go to state 201 @@ -2435,15 +2452,15 @@ State 125 State 126 - 238 VariableBindings: VariableBinding • + 240 VariableBindings: VariableBinding • - $default reduce using rule 238 (VariableBindings) + $default reduce using rule 240 (VariableBindings) State 127 - 233 AttributedVariable: Attributes • Variable - 246 Attributes: Attributes • Attribute + 235 AttributedVariable: Attributes • Variable + 248 Attributes: Attributes • Attribute "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -2457,8 +2474,8 @@ State 127 State 128 - 159 UniversalQuantifierExpression: "forall" AttributedVariables • "in" Term "holds" Term - 228 AttributedVariables: AttributedVariables • "," AttributedVariable + 161 UniversalQuantifierExpression: "forall" AttributedVariables • "in" Term "holds" Term + 230 AttributedVariables: AttributedVariables • "," AttributedVariable "in" shift, and go to state 203 "," shift, and go to state 204 @@ -2466,15 +2483,15 @@ State 128 State 129 - 229 AttributedVariables: AttributedVariable • + 231 AttributedVariables: AttributedVariable • - $default reduce using rule 229 (AttributedVariables) + $default reduce using rule 231 (AttributedVariables) State 130 - 158 ChooseExpression: "choose" AttributedVariables • "in" Term "do" Term - 228 AttributedVariables: AttributedVariables • "," AttributedVariable + 160 ChooseExpression: "choose" AttributedVariables • "in" Term "do" Term + 230 AttributedVariables: AttributedVariables • "," AttributedVariable "in" shift, and go to state 205 "," shift, and go to state 204 @@ -2482,24 +2499,24 @@ State 130 State 131 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 157 ConditionalExpression: "if" Term • "then" Term "else" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 159 ConditionalExpression: "if" Term • "then" Term "else" Term "then" shift, and go to state 206 "and" shift, and go to state 148 @@ -2523,8 +2540,8 @@ State 131 State 132 - 160 ExistentialQuantifierExpression: "exists" AttributedVariables • "in" Term "with" Term - 228 AttributedVariables: AttributedVariables • "," AttributedVariable + 162 ExistentialQuantifierExpression: "exists" AttributedVariables • "in" Term "with" Term + 230 AttributedVariables: AttributedVariables • "," AttributedVariable "in" shift, and go to state 207 "," shift, and go to state 204 @@ -2532,88 +2549,88 @@ State 132 State 133 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 139 | "not" Term • - - $default reduce using rule 139 (OperatorExpression) + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 141 | "not" Term • + + $default reduce using rule 141 (OperatorExpression) State 134 - 120 SimpleOrClaspedTerm: "+" SimpleOrClaspedTerm • - 147 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 148 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 149 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 150 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 151 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral + 122 SimpleOrClaspedTerm: "+" SimpleOrClaspedTerm • + 149 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier + 150 | SimpleOrClaspedTerm • "." Identifier "(" ")" + 151 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" + 152 | SimpleOrClaspedTerm • "." Identifier "(" error ")" + 153 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral - $default reduce using rule 120 (SimpleOrClaspedTerm) + $default reduce using rule 122 (SimpleOrClaspedTerm) State 135 - 121 SimpleOrClaspedTerm: "-" SimpleOrClaspedTerm • - 147 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 148 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 149 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 150 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 151 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral + 123 SimpleOrClaspedTerm: "-" SimpleOrClaspedTerm • + 149 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier + 150 | SimpleOrClaspedTerm • "." Identifier "(" ")" + 151 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" + 152 | SimpleOrClaspedTerm • "." Identifier "(" error ")" + 153 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral - $default reduce using rule 121 (SimpleOrClaspedTerm) + $default reduce using rule 123 (SimpleOrClaspedTerm) State 136 - 116 SimpleOrClaspedTerm: "(" error • ")" + 118 SimpleOrClaspedTerm: "(" error • ")" ")" shift, and go to state 208 State 137 - 104 Terms: Terms • "," Term - 188 TupleLiteral: "(" Terms • "," Term ")" + 106 Terms: Terms • "," Term + 190 TupleLiteral: "(" Terms • "," Term ")" "," shift, and go to state 209 State 138 - 105 Terms: Term • - 115 SimpleOrClaspedTerm: "(" Term • ")" - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 107 Terms: Term • + 117 SimpleOrClaspedTerm: "(" Term • ")" + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -2634,13 +2651,13 @@ State 138 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 105 (Terms) + $default reduce using rule 107 (Terms) State 139 - 189 RecordLiteral: "(" Assignments • ")" - 190 Assignments: Assignments • "," Assignment + 191 RecordLiteral: "(" Assignments • ")" + 192 Assignments: Assignments • "," Assignment ")" shift, and go to state 211 "," shift, and go to state 212 @@ -2648,39 +2665,39 @@ State 139 State 140 - 191 Assignments: Assignment • + 193 Assignments: Assignment • - $default reduce using rule 191 (Assignments) + $default reduce using rule 193 (Assignments) State 141 - 192 Assignment: Identifier • ":" Term - 225 IdentifierPath: Identifier • + 194 Assignment: Identifier • ":" Term + 227 IdentifierPath: Identifier • ":" shift, and go to state 213 - $default reduce using rule 225 (IdentifierPath) + $default reduce using rule 227 (IdentifierPath) State 142 - 186 ListLiteral: "[" error • "]" + 188 ListLiteral: "[" error • "]" "]" shift, and go to state 214 State 143 - 184 ListLiteral: "[" "]" • + 186 ListLiteral: "[" "]" • - $default reduce using rule 184 (ListLiteral) + $default reduce using rule 186 (ListLiteral) State 144 - 104 Terms: Terms • "," Term - 185 ListLiteral: "[" Terms • "]" + 106 Terms: Terms • "," Term + 187 ListLiteral: "[" Terms • "]" "]" shift, and go to state 215 "," shift, and go to state 216 @@ -2688,25 +2705,25 @@ State 144 State 145 - 105 Terms: Term • - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 187 RangeLiteral: "[" Term • ".." Term "]" + 107 Terms: Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 189 RangeLiteral: "[" Term • ".." Term "]" "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -2727,17 +2744,17 @@ State 145 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 105 (Terms) + $default reduce using rule 107 (Terms) State 146 - 147 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 148 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 149 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 150 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 151 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral - 161 CardinalityExpression: "|" SimpleOrClaspedTerm • "|" + 149 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier + 150 | SimpleOrClaspedTerm • "." Identifier "(" ")" + 151 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" + 152 | SimpleOrClaspedTerm • "." Identifier "(" error ")" + 153 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral + 163 CardinalityExpression: "|" SimpleOrClaspedTerm • "|" "|" shift, and go to state 218 "." shift, and go to state 166 @@ -2745,17 +2762,17 @@ State 146 State 147 - 183 ReferenceLiteral: "@" IdentifierPath • - 224 IdentifierPath: IdentifierPath • "::" Identifier + 185 ReferenceLiteral: "@" IdentifierPath • + 226 IdentifierPath: IdentifierPath • "::" Identifier "::" shift, and go to state 169 - $default reduce using rule 183 (ReferenceLiteral) + $default reduce using rule 185 (ReferenceLiteral) State 148 - 136 OperatorExpression: Term "and" • Term + 138 OperatorExpression: Term "and" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -2815,7 +2832,7 @@ State 148 State 149 - 134 OperatorExpression: Term "or" • Term + 136 OperatorExpression: Term "or" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -2875,7 +2892,7 @@ State 149 State 150 - 135 OperatorExpression: Term "xor" • Term + 137 OperatorExpression: Term "xor" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -2935,7 +2952,7 @@ State 150 State 151 - 138 OperatorExpression: Term "implies" • Term + 140 OperatorExpression: Term "implies" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -2995,7 +3012,7 @@ State 151 State 152 - 122 OperatorExpression: Term "+" • Term + 124 OperatorExpression: Term "+" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3055,7 +3072,7 @@ State 152 State 153 - 123 OperatorExpression: Term "-" • Term + 125 OperatorExpression: Term "-" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3115,7 +3132,7 @@ State 153 State 154 - 129 OperatorExpression: Term "=" • Term + 131 OperatorExpression: Term "=" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3175,7 +3192,7 @@ State 154 State 155 - 130 OperatorExpression: Term "<" • Term + 132 OperatorExpression: Term "<" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3235,7 +3252,7 @@ State 155 State 156 - 131 OperatorExpression: Term ">" • Term + 133 OperatorExpression: Term ">" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3295,7 +3312,7 @@ State 156 State 157 - 124 OperatorExpression: Term "*" • Term + 126 OperatorExpression: Term "*" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3355,7 +3372,7 @@ State 157 State 158 - 125 OperatorExpression: Term "/" • Term + 127 OperatorExpression: Term "/" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3415,7 +3432,7 @@ State 158 State 159 - 126 OperatorExpression: Term "%" • Term + 128 OperatorExpression: Term "%" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3475,7 +3492,7 @@ State 159 State 160 - 127 OperatorExpression: Term "^" • Term + 129 OperatorExpression: Term "^" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3535,7 +3552,7 @@ State 160 State 161 - 137 OperatorExpression: Term "=>" • Term + 139 OperatorExpression: Term "=>" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3595,7 +3612,7 @@ State 161 State 162 - 128 OperatorExpression: Term "!=" • Term + 130 OperatorExpression: Term "!=" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3655,7 +3672,7 @@ State 162 State 163 - 132 OperatorExpression: Term "<=" • Term + 134 OperatorExpression: Term "<=" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3715,7 +3732,7 @@ State 163 State 164 - 133 OperatorExpression: Term ">=" • Term + 135 OperatorExpression: Term ">=" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3775,7 +3792,7 @@ State 164 State 165 - 155 TypeCastingExpression: SimpleOrClaspedTerm "as" • Type + 157 TypeCastingExpression: SimpleOrClaspedTerm "as" • Type "in" shift, and go to state 8 "(" shift, and go to state 109 @@ -3794,11 +3811,11 @@ State 165 State 166 - 147 MethodCallExpression: SimpleOrClaspedTerm "." • Identifier - 148 | SimpleOrClaspedTerm "." • Identifier "(" ")" - 149 | SimpleOrClaspedTerm "." • Identifier "(" Terms ")" - 150 | SimpleOrClaspedTerm "." • Identifier "(" error ")" - 151 LiteralCallExpression: SimpleOrClaspedTerm "." • IntegerLiteral + 149 MethodCallExpression: SimpleOrClaspedTerm "." • Identifier + 150 | SimpleOrClaspedTerm "." • Identifier "(" ")" + 151 | SimpleOrClaspedTerm "." • Identifier "(" Terms ")" + 152 | SimpleOrClaspedTerm "." • Identifier "(" error ")" + 153 LiteralCallExpression: SimpleOrClaspedTerm "." • IntegerLiteral "in" shift, and go to state 8 "integer" shift, and go to state 62 @@ -3810,9 +3827,9 @@ State 166 State 167 - 152 IndirectCallExpression: CallExpression "(" • ")" - 153 | CallExpression "(" • Terms ")" - 154 | CallExpression "(" • error ")" + 154 IndirectCallExpression: CallExpression "(" • ")" + 155 | CallExpression "(" • Terms ")" + 156 | CallExpression "(" • error ")" error shift, and go to state 239 "let" shift, and go to state 45 @@ -3875,9 +3892,9 @@ State 167 State 168 - 144 DirectCallExpression: IdentifierPath "(" • ")" - 145 | IdentifierPath "(" • Terms ")" - 146 | IdentifierPath "(" • error ")" + 146 DirectCallExpression: IdentifierPath "(" • ")" + 147 | IdentifierPath "(" • Terms ")" + 148 | IdentifierPath "(" • error ")" error shift, and go to state 243 "let" shift, and go to state 45 @@ -3940,7 +3957,7 @@ State 168 State 169 - 224 IdentifierPath: IdentifierPath "::" • Identifier + 226 IdentifierPath: IdentifierPath "::" • Identifier "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -3950,11 +3967,11 @@ State 169 State 170 - 115 SimpleOrClaspedTerm: "(" • Term ")" - 116 | "(" • error ")" - 188 TupleLiteral: "(" • Terms "," Term ")" - 189 RecordLiteral: "(" • Assignments ")" - 220 Initializer: "(" • Term ")" "->" Term + 117 SimpleOrClaspedTerm: "(" • Term ")" + 118 | "(" • error ")" + 190 TupleLiteral: "(" • Terms "," Term ")" + 191 RecordLiteral: "(" • Assignments ")" + 222 Initializer: "(" • Term ")" "->" Term error shift, and go to state 136 "let" shift, and go to state 45 @@ -4018,24 +4035,24 @@ State 170 State 171 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 219 Initializer: Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 221 Initializer: Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -4055,23 +4072,23 @@ State 171 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 219 (Initializer) + $default reduce using rule 221 (Initializer) State 172 - 172 Literal: TupleLiteral • - 221 Initializer: TupleLiteral • "->" Term + 174 Literal: TupleLiteral • + 223 Initializer: TupleLiteral • "->" Term "->" shift, and go to state 248 - $default reduce using rule 172 (Literal) + $default reduce using rule 174 (Literal) State 173 22 InitDefinition: "init" "{" Initializers • "}" - 217 Initializers: Initializers • "," Initializer + 219 Initializers: Initializers • "," Initializer "}" shift, and go to state 249 "," shift, and go to state 250 @@ -4079,9 +4096,9 @@ State 173 State 174 - 218 Initializers: Initializer • + 220 Initializers: Initializer • - $default reduce using rule 218 (Initializers) + $default reduce using rule 220 (Initializers) State 175 @@ -4240,7 +4257,7 @@ State 180 State 181 - 41 UsingDefinition: "using" Identifier "=" • Type + 39 UsingDefinition: "using" Identifier "=" • Type "in" shift, and go to state 8 "(" shift, and go to state 109 @@ -4259,8 +4276,8 @@ State 181 State 182 - 43 UsingPathDefinition: "using" IdentifierPath "::" • "*" - 224 IdentifierPath: IdentifierPath "::" • Identifier + 41 UsingPathDefinition: "using" IdentifierPath "::" • "*" + 226 IdentifierPath: IdentifierPath "::" • Identifier "in" shift, and go to state 8 "*" shift, and go to state 293 @@ -4271,7 +4288,7 @@ State 182 State 183 - 44 InvariantDefinition: "invariant" Identifier "=" • Term + 42 InvariantDefinition: "invariant" Identifier "=" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4331,7 +4348,7 @@ State 183 State 184 - 46 ImportDefinition: "import" IdentifierPath "as" • Identifier + 44 ImportDefinition: "import" IdentifierPath "as" • Identifier "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -4341,83 +4358,83 @@ State 184 State 185 - 47 StructureDefinition: "structure" Identifier "=" • "{" FunctionDefinitions "}" + 45 StructureDefinition: "structure" Identifier "=" • "{" StructureDefinitionList "}" "{" shift, and go to state 296 State 186 - 48 FeatureDefinition: "feature" Identifier "=" • "{" FeatureDeclarationsAndDefinitions "}" + 50 FeatureDefinition: "feature" Identifier "=" • "{" FeatureDeclarationsAndDefinitions "}" "{" shift, and go to state 297 State 187 - 193 Types: Types • "," Type - 202 TupleType: "(" Types • "," Type ")" + 195 Types: Types • "," Type + 204 TupleType: "(" Types • "," Type ")" "," shift, and go to state 298 State 188 - 194 Types: Type • + 196 Types: Type • - $default reduce using rule 194 (Types) + $default reduce using rule 196 (Types) State 189 - 225 IdentifierPath: Identifier • - 232 TypedVariable: Identifier • ":" Type + 227 IdentifierPath: Identifier • + 234 TypedVariable: Identifier • ":" Type ":" shift, and go to state 198 - $default reduce using rule 225 (IdentifierPath) + $default reduce using rule 227 (IdentifierPath) State 190 - 201 BasicType: IdentifierPath • - 204 TemplateType: IdentifierPath • "<" Types ">" - 205 RelationType: IdentifierPath • "<" MaybeFunctionParameters "->" Type ">" - 206 FixedSizedType: IdentifierPath • "'" Term - 224 IdentifierPath: IdentifierPath • "::" Identifier + 203 BasicType: IdentifierPath • + 206 TemplateType: IdentifierPath • "<" Types ">" + 207 RelationType: IdentifierPath • "<" MaybeFunctionParameters "->" Type ">" + 208 FixedSizedType: IdentifierPath • "'" Term + 226 IdentifierPath: IdentifierPath • "::" Identifier "::" shift, and go to state 169 "<" shift, and go to state 195 "'" shift, and go to state 196 - $default reduce using rule 201 (BasicType) + $default reduce using rule 203 (BasicType) State 191 - 203 RecordType: "(" TypedVariables • "," TypedVariable ")" - 230 TypedVariables: TypedVariables • "," TypedVariable + 205 RecordType: "(" TypedVariables • "," TypedVariable ")" + 232 TypedVariables: TypedVariables • "," TypedVariable "," shift, and go to state 299 State 192 - 231 TypedVariables: TypedVariable • + 233 TypedVariables: TypedVariable • - $default reduce using rule 231 (TypedVariables) + $default reduce using rule 233 (TypedVariables) State 193 - 55 ImplementationDefinition: "implements" Type "=" • "{" ImplementationDefinitionDefinitions "}" + 57 ImplementationDefinition: "implements" Type "=" • "{" ImplementationDefinitionDefinitions "}" "{" shift, and go to state 300 State 194 - 54 ImplementationDefinition: "implements" IdentifierPath "for" • Type "=" "{" ImplementationDefinitionDefinitions "}" + 56 ImplementationDefinition: "implements" IdentifierPath "for" • Type "=" "{" ImplementationDefinitionDefinitions "}" "in" shift, and go to state 8 "(" shift, and go to state 109 @@ -4436,14 +4453,14 @@ State 194 State 195 - 204 TemplateType: IdentifierPath "<" • Types ">" - 205 RelationType: IdentifierPath "<" • MaybeFunctionParameters "->" Type ">" + 206 TemplateType: IdentifierPath "<" • Types ">" + 207 RelationType: IdentifierPath "<" • MaybeFunctionParameters "->" Type ">" "in" shift, and go to state 8 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - $default reduce using rule 210 (MaybeFunctionParameters) + $default reduce using rule 212 (MaybeFunctionParameters) Types go to state 302 Type go to state 303 @@ -4461,7 +4478,7 @@ State 195 State 196 - 206 FixedSizedType: IdentifierPath "'" • Term + 208 FixedSizedType: IdentifierPath "'" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4521,13 +4538,13 @@ State 196 State 197 - 35 FunctionDefinition: "function" Identifier ":" • MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 33 FunctionDefinition: "function" Identifier ":" • MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially "in" shift, and go to state 8 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - $default reduce using rule 210 (MaybeFunctionParameters) + $default reduce using rule 212 (MaybeFunctionParameters) Type go to state 307 BasicType go to state 111 @@ -4544,7 +4561,7 @@ State 197 State 198 - 232 TypedVariable: Identifier ":" • Type + 234 TypedVariable: Identifier ":" • Type "in" shift, and go to state 8 "(" shift, and go to state 109 @@ -4563,7 +4580,7 @@ State 198 State 199 - 239 VariableBinding: AttributedVariable "=" • Term + 241 VariableBinding: AttributedVariable "=" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4623,7 +4640,7 @@ State 199 State 200 - 156 LetExpression: "let" VariableBindings "in" • Term + 158 LetExpression: "let" VariableBindings "in" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4683,7 +4700,7 @@ State 200 State 201 - 237 VariableBindings: VariableBindings "," • VariableBinding + 239 VariableBindings: VariableBindings "," • VariableBinding "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -4700,14 +4717,14 @@ State 201 State 202 - 233 AttributedVariable: Attributes Variable • + 235 AttributedVariable: Attributes Variable • - $default reduce using rule 233 (AttributedVariable) + $default reduce using rule 235 (AttributedVariable) State 203 - 159 UniversalQuantifierExpression: "forall" AttributedVariables "in" • Term "holds" Term + 161 UniversalQuantifierExpression: "forall" AttributedVariables "in" • Term "holds" Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4767,7 +4784,7 @@ State 203 State 204 - 228 AttributedVariables: AttributedVariables "," • AttributedVariable + 230 AttributedVariables: AttributedVariables "," • AttributedVariable "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -4783,7 +4800,7 @@ State 204 State 205 - 158 ChooseExpression: "choose" AttributedVariables "in" • Term "do" Term + 160 ChooseExpression: "choose" AttributedVariables "in" • Term "do" Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4843,7 +4860,7 @@ State 205 State 206 - 157 ConditionalExpression: "if" Term "then" • Term "else" Term + 159 ConditionalExpression: "if" Term "then" • Term "else" Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4903,7 +4920,7 @@ State 206 State 207 - 160 ExistentialQuantifierExpression: "exists" AttributedVariables "in" • Term "with" Term + 162 ExistentialQuantifierExpression: "exists" AttributedVariables "in" • Term "with" Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4963,15 +4980,15 @@ State 207 State 208 - 116 SimpleOrClaspedTerm: "(" error ")" • + 118 SimpleOrClaspedTerm: "(" error ")" • - $default reduce using rule 116 (SimpleOrClaspedTerm) + $default reduce using rule 118 (SimpleOrClaspedTerm) State 209 - 104 Terms: Terms "," • Term - 188 TupleLiteral: "(" Terms "," • Term ")" + 106 Terms: Terms "," • Term + 190 TupleLiteral: "(" Terms "," • Term ")" "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -5031,21 +5048,21 @@ State 209 State 210 - 115 SimpleOrClaspedTerm: "(" Term ")" • + 117 SimpleOrClaspedTerm: "(" Term ")" • - $default reduce using rule 115 (SimpleOrClaspedTerm) + $default reduce using rule 117 (SimpleOrClaspedTerm) State 211 - 189 RecordLiteral: "(" Assignments ")" • + 191 RecordLiteral: "(" Assignments ")" • - $default reduce using rule 189 (RecordLiteral) + $default reduce using rule 191 (RecordLiteral) State 212 - 190 Assignments: Assignments "," • Assignment + 192 Assignments: Assignments "," • Assignment "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -5056,7 +5073,7 @@ State 212 State 213 - 192 Assignment: Identifier ":" • Term + 194 Assignment: Identifier ":" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -5116,21 +5133,21 @@ State 213 State 214 - 186 ListLiteral: "[" error "]" • + 188 ListLiteral: "[" error "]" • - $default reduce using rule 186 (ListLiteral) + $default reduce using rule 188 (ListLiteral) State 215 - 185 ListLiteral: "[" Terms "]" • + 187 ListLiteral: "[" Terms "]" • - $default reduce using rule 185 (ListLiteral) + $default reduce using rule 187 (ListLiteral) State 216 - 104 Terms: Terms "," • Term + 106 Terms: Terms "," • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -5190,7 +5207,7 @@ State 216 State 217 - 187 RangeLiteral: "[" Term ".." • Term "]" + 189 RangeLiteral: "[" Term ".." • Term "]" "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -5250,31 +5267,31 @@ State 217 State 218 - 161 CardinalityExpression: "|" SimpleOrClaspedTerm "|" • + 163 CardinalityExpression: "|" SimpleOrClaspedTerm "|" • - $default reduce using rule 161 (CardinalityExpression) + $default reduce using rule 163 (CardinalityExpression) State 219 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 136 | Term "and" Term • - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 138 | Term "and" Term • + 139 | Term • "=>" Term + 140 | Term • "implies" Term "+" shift, and go to state 152 "-" shift, and go to state 153 @@ -5289,29 +5306,29 @@ State 219 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 136 (OperatorExpression) + $default reduce using rule 138 (OperatorExpression) State 220 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 134 | Term "or" Term • - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 136 | Term "or" Term • + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "and" shift, and go to state 148 "xor" shift, and go to state 150 @@ -5328,29 +5345,29 @@ State 220 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 134 (OperatorExpression) + $default reduce using rule 136 (OperatorExpression) State 221 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 135 | Term "xor" Term • - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 137 | Term "xor" Term • + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "and" shift, and go to state 148 "+" shift, and go to state 152 @@ -5366,29 +5383,29 @@ State 221 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 135 (OperatorExpression) + $default reduce using rule 137 (OperatorExpression) State 222 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 138 | Term "implies" Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 140 | Term "implies" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -5406,87 +5423,87 @@ State 222 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 138 (OperatorExpression) + $default reduce using rule 140 (OperatorExpression) State 223 - 122 OperatorExpression: Term • "+" Term - 122 | Term "+" Term • - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 124 | Term "+" Term • + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "*" shift, and go to state 157 "/" shift, and go to state 158 "%" shift, and go to state 159 "^" shift, and go to state 160 - $default reduce using rule 122 (OperatorExpression) + $default reduce using rule 124 (OperatorExpression) State 224 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 123 | Term "-" Term • - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 125 | Term "-" Term • + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "*" shift, and go to state 157 "/" shift, and go to state 158 "%" shift, and go to state 159 "^" shift, and go to state 160 - $default reduce using rule 123 (OperatorExpression) + $default reduce using rule 125 (OperatorExpression) State 225 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 129 | Term "=" Term • - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 131 | Term "=" Term • + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "+" shift, and go to state 152 "-" shift, and go to state 153 @@ -5499,29 +5516,29 @@ State 225 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 129 (OperatorExpression) + $default reduce using rule 131 (OperatorExpression) State 226 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 130 | Term "<" Term • - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 132 | Term "<" Term • + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "+" shift, and go to state 152 "-" shift, and go to state 153 @@ -5530,29 +5547,29 @@ State 226 "%" shift, and go to state 159 "^" shift, and go to state 160 - $default reduce using rule 130 (OperatorExpression) + $default reduce using rule 132 (OperatorExpression) State 227 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 131 | Term ">" Term • - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 133 | Term ">" Term • + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "+" shift, and go to state 152 "-" shift, and go to state 153 @@ -5561,131 +5578,131 @@ State 227 "%" shift, and go to state 159 "^" shift, and go to state 160 - $default reduce using rule 131 (OperatorExpression) + $default reduce using rule 133 (OperatorExpression) State 228 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 124 | Term "*" Term • - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 126 | Term "*" Term • + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "^" shift, and go to state 160 - $default reduce using rule 124 (OperatorExpression) + $default reduce using rule 126 (OperatorExpression) State 229 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 125 | Term "/" Term • - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 127 | Term "/" Term • + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "^" shift, and go to state 160 - $default reduce using rule 125 (OperatorExpression) + $default reduce using rule 127 (OperatorExpression) State 230 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 126 | Term "%" Term • - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 128 | Term "%" Term • + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "^" shift, and go to state 160 - $default reduce using rule 126 (OperatorExpression) + $default reduce using rule 128 (OperatorExpression) State 231 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 127 | Term "^" Term • - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 129 | Term "^" Term • + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term - $default reduce using rule 127 (OperatorExpression) + $default reduce using rule 129 (OperatorExpression) State 232 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 137 | Term "=>" Term • - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 139 | Term "=>" Term • + 140 | Term • "implies" Term "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -5703,29 +5720,29 @@ State 232 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 137 (OperatorExpression) + $default reduce using rule 139 (OperatorExpression) State 233 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 128 | Term "!=" Term • - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 130 | Term "!=" Term • + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "+" shift, and go to state 152 "-" shift, and go to state 153 @@ -5738,29 +5755,29 @@ State 233 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 128 (OperatorExpression) + $default reduce using rule 130 (OperatorExpression) State 234 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 132 | Term "<=" Term • - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 134 | Term "<=" Term • + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "+" shift, and go to state 152 "-" shift, and go to state 153 @@ -5769,29 +5786,29 @@ State 234 "%" shift, and go to state 159 "^" shift, and go to state 160 - $default reduce using rule 132 (OperatorExpression) + $default reduce using rule 134 (OperatorExpression) State 235 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 133 | Term ">=" Term • - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 135 | Term ">=" Term • + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "+" shift, and go to state 152 "-" shift, and go to state 153 @@ -5800,53 +5817,53 @@ State 235 "%" shift, and go to state 159 "^" shift, and go to state 160 - $default reduce using rule 133 (OperatorExpression) + $default reduce using rule 135 (OperatorExpression) State 236 - 155 TypeCastingExpression: SimpleOrClaspedTerm "as" Type • + 157 TypeCastingExpression: SimpleOrClaspedTerm "as" Type • - $default reduce using rule 155 (TypeCastingExpression) + $default reduce using rule 157 (TypeCastingExpression) State 237 - 151 LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral • + 153 LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral • - $default reduce using rule 151 (LiteralCallExpression) + $default reduce using rule 153 (LiteralCallExpression) State 238 - 147 MethodCallExpression: SimpleOrClaspedTerm "." Identifier • - 148 | SimpleOrClaspedTerm "." Identifier • "(" ")" - 149 | SimpleOrClaspedTerm "." Identifier • "(" Terms ")" - 150 | SimpleOrClaspedTerm "." Identifier • "(" error ")" + 149 MethodCallExpression: SimpleOrClaspedTerm "." Identifier • + 150 | SimpleOrClaspedTerm "." Identifier • "(" ")" + 151 | SimpleOrClaspedTerm "." Identifier • "(" Terms ")" + 152 | SimpleOrClaspedTerm "." Identifier • "(" error ")" "(" shift, and go to state 324 - $default reduce using rule 147 (MethodCallExpression) + $default reduce using rule 149 (MethodCallExpression) State 239 - 154 IndirectCallExpression: CallExpression "(" error • ")" + 156 IndirectCallExpression: CallExpression "(" error • ")" ")" shift, and go to state 325 State 240 - 152 IndirectCallExpression: CallExpression "(" ")" • + 154 IndirectCallExpression: CallExpression "(" ")" • - $default reduce using rule 152 (IndirectCallExpression) + $default reduce using rule 154 (IndirectCallExpression) State 241 - 104 Terms: Terms • "," Term - 153 IndirectCallExpression: CallExpression "(" Terms • ")" + 106 Terms: Terms • "," Term + 155 IndirectCallExpression: CallExpression "(" Terms • ")" ")" shift, and go to state 326 "," shift, and go to state 216 @@ -5854,24 +5871,24 @@ State 241 State 242 - 105 Terms: Term • - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 107 Terms: Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -5891,27 +5908,27 @@ State 242 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 105 (Terms) + $default reduce using rule 107 (Terms) State 243 - 146 DirectCallExpression: IdentifierPath "(" error • ")" + 148 DirectCallExpression: IdentifierPath "(" error • ")" ")" shift, and go to state 327 State 244 - 144 DirectCallExpression: IdentifierPath "(" ")" • + 146 DirectCallExpression: IdentifierPath "(" ")" • - $default reduce using rule 144 (DirectCallExpression) + $default reduce using rule 146 (DirectCallExpression) State 245 - 104 Terms: Terms • "," Term - 145 DirectCallExpression: IdentifierPath "(" Terms • ")" + 106 Terms: Terms • "," Term + 147 DirectCallExpression: IdentifierPath "(" Terms • ")" ")" shift, and go to state 328 "," shift, and go to state 216 @@ -5919,33 +5936,33 @@ State 245 State 246 - 224 IdentifierPath: IdentifierPath "::" Identifier • + 226 IdentifierPath: IdentifierPath "::" Identifier • - $default reduce using rule 224 (IdentifierPath) + $default reduce using rule 226 (IdentifierPath) State 247 - 105 Terms: Term • - 115 SimpleOrClaspedTerm: "(" Term • ")" - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 220 Initializer: "(" Term • ")" "->" Term + 107 Terms: Term • + 117 SimpleOrClaspedTerm: "(" Term • ")" + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 222 Initializer: "(" Term • ")" "->" Term "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -5966,12 +5983,12 @@ State 247 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 105 (Terms) + $default reduce using rule 107 (Terms) State 248 - 221 Initializer: TupleLiteral "->" • Term + 223 Initializer: TupleLiteral "->" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -6038,7 +6055,7 @@ State 249 State 250 - 217 Initializers: Initializers "," • Initializer + 219 Initializers: Initializers "," • Initializer "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -6107,7 +6124,7 @@ State 251 State 252 25 DerivedDefinition: "derived" Identifier "(" Parameters • ")" "->" Type "=" Term - 211 Parameters: Parameters • "," TypedAttributedVariable + 213 Parameters: Parameters • "," TypedAttributedVariable ")" shift, and go to state 333 "," shift, and go to state 334 @@ -6115,29 +6132,29 @@ State 252 State 253 - 232 TypedVariable: Identifier • ":" Type + 234 TypedVariable: Identifier • ":" Type ":" shift, and go to state 198 State 254 - 236 TypedAttributedVariable: TypedVariable • + 238 TypedAttributedVariable: TypedVariable • - $default reduce using rule 236 (TypedAttributedVariable) + $default reduce using rule 238 (TypedAttributedVariable) State 255 - 212 Parameters: TypedAttributedVariable • + 214 Parameters: TypedAttributedVariable • - $default reduce using rule 212 (Parameters) + $default reduce using rule 214 (Parameters) State 256 - 235 TypedAttributedVariable: Attributes • TypedVariable - 246 Attributes: Attributes • Attribute + 237 TypedAttributedVariable: Attributes • TypedVariable + 248 Attributes: Attributes • Attribute "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -6173,8 +6190,8 @@ State 258 State 259 - 98 SequenceRule: "seq" • Rules "endseq" - 100 | "seq" • error "endseq" + 100 SequenceRule: "seq" • Rules "endseq" + 102 | "seq" • error "endseq" error shift, and go to state 342 "seq" shift, and go to state 259 @@ -6247,8 +6264,8 @@ State 259 State 260 - 94 BlockRule: "par" • Rules "endpar" - 96 | "par" • error "endpar" + 96 BlockRule: "par" • Rules "endpar" + 98 | "par" • error "endpar" error shift, and go to state 345 "seq" shift, and go to state 259 @@ -6321,14 +6338,14 @@ State 260 State 261 - 77 SkipRule: "skip" • + 79 SkipRule: "skip" • - $default reduce using rule 77 (SkipRule) + $default reduce using rule 79 (SkipRule) State 262 - 87 LetRule: "let" • VariableBindings "in" Rule + 89 LetRule: "let" • VariableBindings "in" Rule "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -6346,7 +6363,7 @@ State 262 State 263 - 88 LocalRule: "local" • LocalFunctionDefinitions "in" Rule + 90 LocalRule: "local" • LocalFunctionDefinitions "in" Rule error shift, and go to state 348 "in" shift, and go to state 8 @@ -6363,8 +6380,8 @@ State 263 State 264 - 89 ForallRule: "forall" • AttributedVariables "in" Term "do" Rule - 90 | "forall" • AttributedVariables "in" Term "with" Term "do" Rule + 91 ForallRule: "forall" • AttributedVariables "in" Term "do" Rule + 92 | "forall" • AttributedVariables "in" Term "with" Term "do" Rule "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -6381,7 +6398,7 @@ State 264 State 265 - 91 ChooseRule: "choose" • AttributedVariables "in" Term "do" Rule + 93 ChooseRule: "choose" • AttributedVariables "in" Term "do" Rule "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -6398,7 +6415,7 @@ State 265 State 266 - 92 IterateRule: "iterate" • Rule + 94 IterateRule: "iterate" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -6469,8 +6486,8 @@ State 266 State 267 - 78 ConditionalRule: "if" • Term "then" Rule - 79 | "if" • Term "then" Rule "else" Rule + 80 ConditionalRule: "if" • Term "then" Rule + 81 | "if" • Term "then" Rule "else" Rule "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -6530,8 +6547,8 @@ State 267 State 268 - 80 CaseRule: "case" • Term "of" "{" CaseLabels "}" - 81 | "case" • Term "of" "{" error "}" + 82 CaseRule: "case" • Term "of" "{" CaseLabels "}" + 83 | "case" • Term "of" "{" error "}" "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -6591,7 +6608,7 @@ State 268 State 269 - 103 WhileRule: "while" • Term "do" Rule + 105 WhileRule: "while" • Term "do" Rule "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -6651,8 +6668,8 @@ State 269 State 270 - 93 BlockRule: "{" • Rules "}" - 95 | "{" • error "}" + 95 BlockRule: "{" • Rules "}" + 97 | "{" • error "}" error shift, and go to state 360 "seq" shift, and go to state 259 @@ -6725,8 +6742,8 @@ State 270 State 271 - 97 SequenceRule: "{|" • Rules "|}" - 99 | "{|" • error "|}" + 99 SequenceRule: "{|" • Rules "|}" + 101 | "{|" • error "|}" error shift, and go to state 362 "seq" shift, and go to state 259 @@ -6806,128 +6823,128 @@ State 272 State 273 - 64 Rule: SkipRule • + 66 Rule: SkipRule • - $default reduce using rule 64 (Rule) + $default reduce using rule 66 (Rule) State 274 - 65 Rule: ConditionalRule • + 67 Rule: ConditionalRule • - $default reduce using rule 65 (Rule) + $default reduce using rule 67 (Rule) State 275 - 66 Rule: CaseRule • + 68 Rule: CaseRule • - $default reduce using rule 66 (Rule) + $default reduce using rule 68 (Rule) State 276 - 67 Rule: LetRule • + 69 Rule: LetRule • - $default reduce using rule 67 (Rule) + $default reduce using rule 69 (Rule) State 277 - 68 Rule: LocalRule • + 70 Rule: LocalRule • - $default reduce using rule 68 (Rule) + $default reduce using rule 70 (Rule) State 278 - 69 Rule: ForallRule • + 71 Rule: ForallRule • - $default reduce using rule 69 (Rule) + $default reduce using rule 71 (Rule) State 279 - 70 Rule: ChooseRule • + 72 Rule: ChooseRule • - $default reduce using rule 70 (Rule) + $default reduce using rule 72 (Rule) State 280 - 71 Rule: IterateRule • + 73 Rule: IterateRule • - $default reduce using rule 71 (Rule) + $default reduce using rule 73 (Rule) State 281 - 72 Rule: BlockRule • + 74 Rule: BlockRule • - $default reduce using rule 72 (Rule) + $default reduce using rule 74 (Rule) State 282 - 73 Rule: SequenceRule • + 75 Rule: SequenceRule • - $default reduce using rule 73 (Rule) + $default reduce using rule 75 (Rule) State 283 - 74 Rule: UpdateRule • + 76 Rule: UpdateRule • - $default reduce using rule 74 (Rule) + $default reduce using rule 76 (Rule) State 284 - 75 Rule: CallRule • + 77 Rule: CallRule • - $default reduce using rule 75 (Rule) + $default reduce using rule 77 (Rule) State 285 - 76 Rule: WhileRule • + 78 Rule: WhileRule • - $default reduce using rule 76 (Rule) + $default reduce using rule 78 (Rule) State 286 - 147 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 148 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 149 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 150 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 151 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral + 149 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier + 150 | SimpleOrClaspedTerm • "." Identifier "(" ")" + 151 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" + 152 | SimpleOrClaspedTerm • "." Identifier "(" error ")" + 153 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral "." shift, and go to state 166 State 287 - 102 CallRule: CallExpression • - 117 SimpleOrClaspedTerm: CallExpression • - 152 IndirectCallExpression: CallExpression • "(" ")" - 153 | CallExpression • "(" Terms ")" - 154 | CallExpression • "(" error ")" + 104 CallRule: CallExpression • + 119 SimpleOrClaspedTerm: CallExpression • + 154 IndirectCallExpression: CallExpression • "(" ")" + 155 | CallExpression • "(" Terms ")" + 156 | CallExpression • "(" error ")" "(" shift, and go to state 167 - "." reduce using rule 117 (SimpleOrClaspedTerm) - $default reduce using rule 102 (CallRule) + "." reduce using rule 119 (SimpleOrClaspedTerm) + $default reduce using rule 104 (CallRule) State 288 - 101 UpdateRule: DirectCallExpression • ":=" Term - 140 CallExpression: DirectCallExpression • + 103 UpdateRule: DirectCallExpression • ":=" Term + 142 CallExpression: DirectCallExpression • ":=" shift, and go to state 364 - $default reduce using rule 140 (CallExpression) + $default reduce using rule 142 (CallExpression) State 289 @@ -6942,7 +6959,7 @@ State 290 29 RuleDefinition: "rule" Identifier "(" Parameters • ")" "=" Rule 30 | "rule" Identifier "(" Parameters • ")" "->" Type "=" Rule - 211 Parameters: Parameters • "," TypedAttributedVariable + 213 Parameters: Parameters • "," TypedAttributedVariable ")" shift, and go to state 366 "," shift, and go to state 334 @@ -6957,38 +6974,38 @@ State 291 State 292 - 41 UsingDefinition: "using" Identifier "=" Type • + 39 UsingDefinition: "using" Identifier "=" Type • - $default reduce using rule 41 (UsingDefinition) + $default reduce using rule 39 (UsingDefinition) State 293 - 43 UsingPathDefinition: "using" IdentifierPath "::" "*" • + 41 UsingPathDefinition: "using" IdentifierPath "::" "*" • - $default reduce using rule 43 (UsingPathDefinition) + $default reduce using rule 41 (UsingPathDefinition) State 294 - 44 InvariantDefinition: "invariant" Identifier "=" Term • - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 42 InvariantDefinition: "invariant" Identifier "=" Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7008,50 +7025,52 @@ State 294 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 44 (InvariantDefinition) + $default reduce using rule 42 (InvariantDefinition) State 295 - 46 ImportDefinition: "import" IdentifierPath "as" Identifier • + 44 ImportDefinition: "import" IdentifierPath "as" Identifier • - $default reduce using rule 46 (ImportDefinition) + $default reduce using rule 44 (ImportDefinition) State 296 - 47 StructureDefinition: "structure" Identifier "=" "{" • FunctionDefinitions "}" + 45 StructureDefinition: "structure" Identifier "=" "{" • StructureDefinitionList "}" "function" shift, and go to state 25 + "[" shift, and go to state 368 - FunctionDefinitions go to state 368 - FunctionDefinition go to state 369 + FunctionDefinition go to state 369 + StructureDefinitionElement go to state 370 + StructureDefinitionList go to state 371 State 297 - 48 FeatureDefinition: "feature" Identifier "=" "{" • FeatureDeclarationsAndDefinitions "}" + 50 FeatureDefinition: "feature" Identifier "=" "{" • FeatureDeclarationsAndDefinitions "}" - "derived" shift, and go to state 370 - "rule" shift, and go to state 371 + "derived" shift, and go to state 372 + "rule" shift, and go to state 373 - DerivedDefinition go to state 372 - RuleDefinition go to state 373 - FeatureDeclarationOrDefinition go to state 374 - FeatureDeclarationsAndDefinitions go to state 375 - DeclarationDefinition go to state 376 + DerivedDefinition go to state 374 + RuleDefinition go to state 375 + FeatureDeclarationOrDefinition go to state 376 + FeatureDeclarationsAndDefinitions go to state 377 + DeclarationDefinition go to state 378 State 298 - 193 Types: Types "," • Type - 202 TupleType: "(" Types "," • Type ")" + 195 Types: Types "," • Type + 204 TupleType: "(" Types "," • Type ")" "in" shift, and go to state 8 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 377 + Type go to state 379 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -7064,137 +7083,137 @@ State 298 State 299 - 203 RecordType: "(" TypedVariables "," • TypedVariable ")" - 230 TypedVariables: TypedVariables "," • TypedVariable + 205 RecordType: "(" TypedVariables "," • TypedVariable ")" + 232 TypedVariables: TypedVariables "," • TypedVariable "in" shift, and go to state 8 "identifier" shift, and go to state 9 Identifier go to state 253 - TypedVariable go to state 378 + TypedVariable go to state 380 State 300 - 55 ImplementationDefinition: "implements" Type "=" "{" • ImplementationDefinitionDefinitions "}" + 57 ImplementationDefinition: "implements" Type "=" "{" • ImplementationDefinitionDefinitions "}" "derived" shift, and go to state 16 "rule" shift, and go to state 18 - DerivedDefinition go to state 379 - RuleDefinition go to state 380 - ImplementationDefinitionDefinition go to state 381 - ImplementationDefinitionDefinitions go to state 382 + DerivedDefinition go to state 381 + RuleDefinition go to state 382 + ImplementationDefinitionDefinition go to state 383 + ImplementationDefinitionDefinitions go to state 384 State 301 - 54 ImplementationDefinition: "implements" IdentifierPath "for" Type • "=" "{" ImplementationDefinitionDefinitions "}" + 56 ImplementationDefinition: "implements" IdentifierPath "for" Type • "=" "{" ImplementationDefinitionDefinitions "}" - "=" shift, and go to state 383 + "=" shift, and go to state 385 State 302 - 193 Types: Types • "," Type - 204 TemplateType: IdentifierPath "<" Types • ">" + 195 Types: Types • "," Type + 206 TemplateType: IdentifierPath "<" Types • ">" - "," shift, and go to state 384 - ">" shift, and go to state 385 + "," shift, and go to state 386 + ">" shift, and go to state 387 State 303 - 194 Types: Type • - 208 FunctionParameters: Type • + 196 Types: Type • + 210 FunctionParameters: Type • - "*" reduce using rule 208 (FunctionParameters) - "->" reduce using rule 208 (FunctionParameters) - $default reduce using rule 194 (Types) + "*" reduce using rule 210 (FunctionParameters) + "->" reduce using rule 210 (FunctionParameters) + $default reduce using rule 196 (Types) State 304 - 207 FunctionParameters: FunctionParameters • "*" Type - 209 MaybeFunctionParameters: FunctionParameters • + 209 FunctionParameters: FunctionParameters • "*" Type + 211 MaybeFunctionParameters: FunctionParameters • - "*" shift, and go to state 386 + "*" shift, and go to state 388 - $default reduce using rule 209 (MaybeFunctionParameters) + $default reduce using rule 211 (MaybeFunctionParameters) State 305 - 205 RelationType: IdentifierPath "<" MaybeFunctionParameters • "->" Type ">" + 207 RelationType: IdentifierPath "<" MaybeFunctionParameters • "->" Type ">" - "->" shift, and go to state 387 + "->" shift, and go to state 389 State 306 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 206 FixedSizedType: IdentifierPath "'" Term • - - $default reduce using rule 206 (FixedSizedType) + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 208 FixedSizedType: IdentifierPath "'" Term • + + $default reduce using rule 208 (FixedSizedType) State 307 - 208 FunctionParameters: Type • + 210 FunctionParameters: Type • - $default reduce using rule 208 (FunctionParameters) + $default reduce using rule 210 (FunctionParameters) State 308 - 35 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters • "->" Type MaybeDefined MaybeInitially + 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters • "->" Type MaybeDefined MaybeInitially - "->" shift, and go to state 388 + "->" shift, and go to state 390 State 309 - 232 TypedVariable: Identifier ":" Type • + 234 TypedVariable: Identifier ":" Type • - $default reduce using rule 232 (TypedVariable) + $default reduce using rule 234 (TypedVariable) State 310 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 239 VariableBinding: AttributedVariable "=" Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 241 VariableBinding: AttributedVariable "=" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7214,29 +7233,29 @@ State 310 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 239 (VariableBinding) + $default reduce using rule 241 (VariableBinding) State 311 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 156 LetExpression: "let" VariableBindings "in" Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 158 LetExpression: "let" VariableBindings "in" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7256,38 +7275,38 @@ State 311 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 156 (LetExpression) + $default reduce using rule 158 (LetExpression) State 312 - 237 VariableBindings: VariableBindings "," VariableBinding • + 239 VariableBindings: VariableBindings "," VariableBinding • - $default reduce using rule 237 (VariableBindings) + $default reduce using rule 239 (VariableBindings) State 313 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 159 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term • "holds" Term - - "holds" shift, and go to state 389 + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 161 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term • "holds" Term + + "holds" shift, and go to state 391 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -7309,33 +7328,33 @@ State 313 State 314 - 228 AttributedVariables: AttributedVariables "," AttributedVariable • + 230 AttributedVariables: AttributedVariables "," AttributedVariable • - $default reduce using rule 228 (AttributedVariables) + $default reduce using rule 230 (AttributedVariables) State 315 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 158 ChooseExpression: "choose" AttributedVariables "in" Term • "do" Term - - "do" shift, and go to state 390 + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 160 ChooseExpression: "choose" AttributedVariables "in" Term • "do" Term + + "do" shift, and go to state 392 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -7357,26 +7376,26 @@ State 315 State 316 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 157 ConditionalExpression: "if" Term "then" Term • "else" Term - - "else" shift, and go to state 391 + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 159 ConditionalExpression: "if" Term "then" Term • "else" Term + + "else" shift, and go to state 393 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -7398,26 +7417,26 @@ State 316 State 317 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 160 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term • "with" Term - - "with" shift, and go to state 392 + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 162 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term • "with" Term + + "with" shift, and go to state 394 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -7439,25 +7458,25 @@ State 317 State 318 - 104 Terms: Terms "," Term • - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 188 TupleLiteral: "(" Terms "," Term • ")" + 106 Terms: Terms "," Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 190 TupleLiteral: "(" Terms "," Term • ")" "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7466,7 +7485,7 @@ State 318 "+" shift, and go to state 152 "-" shift, and go to state 153 "=" shift, and go to state 154 - ")" shift, and go to state 393 + ")" shift, and go to state 395 "<" shift, and go to state 155 ">" shift, and go to state 156 "*" shift, and go to state 157 @@ -7478,43 +7497,43 @@ State 318 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 104 (Terms) + $default reduce using rule 106 (Terms) State 319 - 190 Assignments: Assignments "," Assignment • + 192 Assignments: Assignments "," Assignment • - $default reduce using rule 190 (Assignments) + $default reduce using rule 192 (Assignments) State 320 - 192 Assignment: Identifier • ":" Term + 194 Assignment: Identifier • ":" Term ":" shift, and go to state 213 State 321 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 192 Assignment: Identifier ":" Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 194 Assignment: Identifier ":" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7534,29 +7553,29 @@ State 321 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 192 (Assignment) + $default reduce using rule 194 (Assignment) State 322 - 104 Terms: Terms "," Term • - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 106 Terms: Terms "," Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7576,29 +7595,29 @@ State 322 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 104 (Terms) + $default reduce using rule 106 (Terms) State 323 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 187 RangeLiteral: "[" Term ".." Term • "]" + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 189 RangeLiteral: "[" Term ".." Term • "]" "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7607,7 +7626,7 @@ State 323 "+" shift, and go to state 152 "-" shift, and go to state 153 "=" shift, and go to state 154 - "]" shift, and go to state 394 + "]" shift, and go to state 396 "<" shift, and go to state 155 ">" shift, and go to state 156 "*" shift, and go to state 157 @@ -7622,11 +7641,11 @@ State 323 State 324 - 148 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" • ")" - 149 | SimpleOrClaspedTerm "." Identifier "(" • Terms ")" - 150 | SimpleOrClaspedTerm "." Identifier "(" • error ")" + 150 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" • ")" + 151 | SimpleOrClaspedTerm "." Identifier "(" • Terms ")" + 152 | SimpleOrClaspedTerm "." Identifier "(" • error ")" - error shift, and go to state 395 + error shift, and go to state 397 "let" shift, and go to state 45 "in" shift, and go to state 8 "forall" shift, and go to state 46 @@ -7640,7 +7659,7 @@ State 324 "+" shift, and go to state 54 "-" shift, and go to state 55 "(" shift, and go to state 56 - ")" shift, and go to state 396 + ")" shift, and go to state 398 "[" shift, and go to state 57 "|" shift, and go to state 58 "@" shift, and go to state 59 @@ -7652,7 +7671,7 @@ State 324 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Terms go to state 397 + Terms go to state 399 Term go to state 242 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 @@ -7687,62 +7706,62 @@ State 324 State 325 - 154 IndirectCallExpression: CallExpression "(" error ")" • + 156 IndirectCallExpression: CallExpression "(" error ")" • - $default reduce using rule 154 (IndirectCallExpression) + $default reduce using rule 156 (IndirectCallExpression) State 326 - 153 IndirectCallExpression: CallExpression "(" Terms ")" • + 155 IndirectCallExpression: CallExpression "(" Terms ")" • - $default reduce using rule 153 (IndirectCallExpression) + $default reduce using rule 155 (IndirectCallExpression) State 327 - 146 DirectCallExpression: IdentifierPath "(" error ")" • + 148 DirectCallExpression: IdentifierPath "(" error ")" • - $default reduce using rule 146 (DirectCallExpression) + $default reduce using rule 148 (DirectCallExpression) State 328 - 145 DirectCallExpression: IdentifierPath "(" Terms ")" • + 147 DirectCallExpression: IdentifierPath "(" Terms ")" • - $default reduce using rule 145 (DirectCallExpression) + $default reduce using rule 147 (DirectCallExpression) State 329 - 115 SimpleOrClaspedTerm: "(" Term ")" • - 220 Initializer: "(" Term ")" • "->" Term + 117 SimpleOrClaspedTerm: "(" Term ")" • + 222 Initializer: "(" Term ")" • "->" Term - "->" shift, and go to state 398 + "->" shift, and go to state 400 - $default reduce using rule 115 (SimpleOrClaspedTerm) + $default reduce using rule 117 (SimpleOrClaspedTerm) State 330 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 221 Initializer: TupleLiteral "->" Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 223 Initializer: TupleLiteral "->" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7762,33 +7781,33 @@ State 330 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 221 (Initializer) + $default reduce using rule 223 (Initializer) State 331 - 217 Initializers: Initializers "," Initializer • + 219 Initializers: Initializers "," Initializer • - $default reduce using rule 217 (Initializers) + $default reduce using rule 219 (Initializers) State 332 26 DerivedDefinition: "derived" Identifier "(" error ")" • "->" Type "=" Term - "->" shift, and go to state 399 + "->" shift, and go to state 401 State 333 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" • "->" Type "=" Term - "->" shift, and go to state 400 + "->" shift, and go to state 402 State 334 - 211 Parameters: Parameters "," • TypedAttributedVariable + 213 Parameters: Parameters "," • TypedAttributedVariable "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -7796,16 +7815,16 @@ State 334 Identifier go to state 253 TypedVariable go to state 254 - TypedAttributedVariable go to state 401 + TypedAttributedVariable go to state 403 Attributes go to state 256 Attribute go to state 6 State 335 - 235 TypedAttributedVariable: Attributes TypedVariable • + 237 TypedAttributedVariable: Attributes TypedVariable • - $default reduce using rule 235 (TypedAttributedVariable) + $default reduce using rule 237 (TypedAttributedVariable) State 336 @@ -7836,7 +7855,7 @@ State 336 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 402 + Term go to state 404 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -7870,61 +7889,61 @@ State 336 State 337 - 38 EnumeratorDefinition: error • + 36 EnumeratorDefinition: error • - $default reduce using rule 38 (EnumeratorDefinition) + $default reduce using rule 36 (EnumeratorDefinition) State 338 - 40 Enumerators: EnumeratorDefinition • + 38 Enumerators: EnumeratorDefinition • - $default reduce using rule 40 (Enumerators) + $default reduce using rule 38 (Enumerators) State 339 23 EnumerationDefinition: "enumeration" Identifier "=" "{" Enumerators • "}" - 39 Enumerators: Enumerators • "," EnumeratorDefinition + 37 Enumerators: Enumerators • "," EnumeratorDefinition - "}" shift, and go to state 403 - "," shift, and go to state 404 + "}" shift, and go to state 405 + "," shift, and go to state 406 State 340 - 36 EnumeratorDefinition: Identifier • + 34 EnumeratorDefinition: Identifier • - $default reduce using rule 36 (EnumeratorDefinition) + $default reduce using rule 34 (EnumeratorDefinition) State 341 - 37 EnumeratorDefinition: Attributes • Identifier - 246 Attributes: Attributes • Attribute + 35 EnumeratorDefinition: Attributes • Identifier + 248 Attributes: Attributes • Attribute "in" shift, and go to state 8 "[" shift, and go to state 2 "identifier" shift, and go to state 9 - Identifier go to state 405 + Identifier go to state 407 Attribute go to state 43 State 342 - 100 SequenceRule: "seq" error • "endseq" + 102 SequenceRule: "seq" error • "endseq" - "endseq" shift, and go to state 406 + "endseq" shift, and go to state 408 State 343 - 62 Rules: Rules • Rule - 98 SequenceRule: "seq" Rules • "endseq" + 64 Rules: Rules • Rule + 100 SequenceRule: "seq" Rules • "endseq" "seq" shift, and go to state 259 - "endseq" shift, and go to state 407 + "endseq" shift, and go to state 409 "par" shift, and go to state 260 "skip" shift, and go to state 261 "let" shift, and go to state 262 @@ -7954,7 +7973,7 @@ State 343 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 408 + Rule go to state 410 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -7993,26 +8012,26 @@ State 343 State 344 - 63 Rules: Rule • + 65 Rules: Rule • - $default reduce using rule 63 (Rules) + $default reduce using rule 65 (Rules) State 345 - 96 BlockRule: "par" error • "endpar" + 98 BlockRule: "par" error • "endpar" - "endpar" shift, and go to state 409 + "endpar" shift, and go to state 411 State 346 - 62 Rules: Rules • Rule - 94 BlockRule: "par" Rules • "endpar" + 64 Rules: Rules • Rule + 96 BlockRule: "par" Rules • "endpar" "seq" shift, and go to state 259 "par" shift, and go to state 260 - "endpar" shift, and go to state 410 + "endpar" shift, and go to state 412 "skip" shift, and go to state 261 "let" shift, and go to state 262 "local" shift, and go to state 263 @@ -8041,7 +8060,7 @@ State 346 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 408 + Rule go to state 410 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -8080,113 +8099,113 @@ State 346 State 347 - 87 LetRule: "let" VariableBindings • "in" Rule - 237 VariableBindings: VariableBindings • "," VariableBinding + 89 LetRule: "let" VariableBindings • "in" Rule + 239 VariableBindings: VariableBindings • "," VariableBinding - "in" shift, and go to state 411 + "in" shift, and go to state 413 "," shift, and go to state 201 State 348 - 244 AttributedLocalFunctionDefinition: error • + 246 AttributedLocalFunctionDefinition: error • - $default reduce using rule 244 (AttributedLocalFunctionDefinition) + $default reduce using rule 246 (AttributedLocalFunctionDefinition) State 349 - 245 LocalFunctionDefinition: Identifier • ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 247 LocalFunctionDefinition: Identifier • ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially - ":" shift, and go to state 412 + ":" shift, and go to state 414 State 350 - 88 LocalRule: "local" LocalFunctionDefinitions • "in" Rule - 240 LocalFunctionDefinitions: LocalFunctionDefinitions • "," AttributedLocalFunctionDefinition + 90 LocalRule: "local" LocalFunctionDefinitions • "in" Rule + 242 LocalFunctionDefinitions: LocalFunctionDefinitions • "," AttributedLocalFunctionDefinition - "in" shift, and go to state 413 - "," shift, and go to state 414 + "in" shift, and go to state 415 + "," shift, and go to state 416 State 351 - 241 LocalFunctionDefinitions: AttributedLocalFunctionDefinition • + 243 LocalFunctionDefinitions: AttributedLocalFunctionDefinition • - $default reduce using rule 241 (LocalFunctionDefinitions) + $default reduce using rule 243 (LocalFunctionDefinitions) State 352 - 243 AttributedLocalFunctionDefinition: LocalFunctionDefinition • + 245 AttributedLocalFunctionDefinition: LocalFunctionDefinition • - $default reduce using rule 243 (AttributedLocalFunctionDefinition) + $default reduce using rule 245 (AttributedLocalFunctionDefinition) State 353 - 242 AttributedLocalFunctionDefinition: Attributes • LocalFunctionDefinition - 246 Attributes: Attributes • Attribute + 244 AttributedLocalFunctionDefinition: Attributes • LocalFunctionDefinition + 248 Attributes: Attributes • Attribute "in" shift, and go to state 8 "[" shift, and go to state 2 "identifier" shift, and go to state 9 Identifier go to state 349 - LocalFunctionDefinition go to state 415 + LocalFunctionDefinition go to state 417 Attribute go to state 43 State 354 - 89 ForallRule: "forall" AttributedVariables • "in" Term "do" Rule - 90 | "forall" AttributedVariables • "in" Term "with" Term "do" Rule - 228 AttributedVariables: AttributedVariables • "," AttributedVariable + 91 ForallRule: "forall" AttributedVariables • "in" Term "do" Rule + 92 | "forall" AttributedVariables • "in" Term "with" Term "do" Rule + 230 AttributedVariables: AttributedVariables • "," AttributedVariable - "in" shift, and go to state 416 + "in" shift, and go to state 418 "," shift, and go to state 204 State 355 - 91 ChooseRule: "choose" AttributedVariables • "in" Term "do" Rule - 228 AttributedVariables: AttributedVariables • "," AttributedVariable + 93 ChooseRule: "choose" AttributedVariables • "in" Term "do" Rule + 230 AttributedVariables: AttributedVariables • "," AttributedVariable - "in" shift, and go to state 417 + "in" shift, and go to state 419 "," shift, and go to state 204 State 356 - 92 IterateRule: "iterate" Rule • + 94 IterateRule: "iterate" Rule • - $default reduce using rule 92 (IterateRule) + $default reduce using rule 94 (IterateRule) State 357 - 78 ConditionalRule: "if" Term • "then" Rule - 79 | "if" Term • "then" Rule "else" Rule - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - - "then" shift, and go to state 418 + 80 ConditionalRule: "if" Term • "then" Rule + 81 | "if" Term • "then" Rule "else" Rule + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + + "then" shift, and go to state 420 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -8208,27 +8227,27 @@ State 357 State 358 - 80 CaseRule: "case" Term • "of" "{" CaseLabels "}" - 81 | "case" Term • "of" "{" error "}" - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - - "of" shift, and go to state 419 + 82 CaseRule: "case" Term • "of" "{" CaseLabels "}" + 83 | "case" Term • "of" "{" error "}" + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + + "of" shift, and go to state 421 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -8250,26 +8269,26 @@ State 358 State 359 - 103 WhileRule: "while" Term • "do" Rule - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - - "do" shift, and go to state 420 + 105 WhileRule: "while" Term • "do" Rule + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + + "do" shift, and go to state 422 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -8291,15 +8310,15 @@ State 359 State 360 - 95 BlockRule: "{" error • "}" + 97 BlockRule: "{" error • "}" - "}" shift, and go to state 421 + "}" shift, and go to state 423 State 361 - 62 Rules: Rules • Rule - 93 BlockRule: "{" Rules • "}" + 64 Rules: Rules • Rule + 95 BlockRule: "{" Rules • "}" "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -8321,7 +8340,7 @@ State 361 "(" shift, and go to state 56 "[" shift, and go to state 57 "{" shift, and go to state 270 - "}" shift, and go to state 422 + "}" shift, and go to state 424 "@" shift, and go to state 59 "{|" shift, and go to state 271 "binary" shift, and go to state 60 @@ -8332,7 +8351,7 @@ State 361 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 408 + Rule go to state 410 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -8371,15 +8390,15 @@ State 361 State 362 - 99 SequenceRule: "{|" error • "|}" + 101 SequenceRule: "{|" error • "|}" - "|}" shift, and go to state 423 + "|}" shift, and go to state 425 State 363 - 62 Rules: Rules • Rule - 97 SequenceRule: "{|" Rules • "|}" + 64 Rules: Rules • Rule + 99 SequenceRule: "{|" Rules • "|}" "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -8403,7 +8422,7 @@ State 363 "{" shift, and go to state 270 "@" shift, and go to state 59 "{|" shift, and go to state 271 - "|}" shift, and go to state 424 + "|}" shift, and go to state 426 "binary" shift, and go to state 60 "hexadecimal" shift, and go to state 61 "integer" shift, and go to state 62 @@ -8412,7 +8431,7 @@ State 363 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 408 + Rule go to state 410 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -8451,7 +8470,7 @@ State 363 State 364 - 101 UpdateRule: DirectCallExpression ":=" • Term + 103 UpdateRule: DirectCallExpression ":=" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -8477,7 +8496,7 @@ State 364 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 425 + Term go to state 427 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -8514,8 +8533,8 @@ State 365 31 RuleDefinition: "rule" Identifier "(" error ")" • "=" Rule 32 | "rule" Identifier "(" error ")" • "->" Type "=" Rule - "=" shift, and go to state 426 - "->" shift, and go to state 427 + "=" shift, and go to state 428 + "->" shift, and go to state 429 State 366 @@ -8523,8 +8542,8 @@ State 366 29 RuleDefinition: "rule" Identifier "(" Parameters ")" • "=" Rule 30 | "rule" Identifier "(" Parameters ")" • "->" Type "=" Rule - "=" shift, and go to state 428 - "->" shift, and go to state 429 + "=" shift, and go to state 430 + "->" shift, and go to state 431 State 367 @@ -8561,7 +8580,7 @@ State 367 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 430 + Rule go to state 432 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -8600,36 +8619,55 @@ State 367 State 368 - 33 FunctionDefinitions: FunctionDefinitions • FunctionDefinition - 47 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinitions • "}" + 46 StructureDefinitionElement: "[" • Attributes "]" FunctionDefinition - "function" shift, and go to state 25 - "}" shift, and go to state 431 + "[" shift, and go to state 2 - FunctionDefinition go to state 432 + Attributes go to state 433 + Attribute go to state 6 State 369 - 34 FunctionDefinitions: FunctionDefinition • + 47 StructureDefinitionElement: FunctionDefinition • - $default reduce using rule 34 (FunctionDefinitions) + $default reduce using rule 47 (StructureDefinitionElement) State 370 + 49 StructureDefinitionList: StructureDefinitionElement • + + $default reduce using rule 49 (StructureDefinitionList) + + +State 371 + + 45 StructureDefinition: "structure" Identifier "=" "{" StructureDefinitionList • "}" + 48 StructureDefinitionList: StructureDefinitionList • StructureDefinitionElement + + "function" shift, and go to state 25 + "[" shift, and go to state 368 + "}" shift, and go to state 434 + + FunctionDefinition go to state 369 + StructureDefinitionElement go to state 435 + + +State 372 + 24 DerivedDefinition: "derived" • Identifier "->" Type "=" Term 25 | "derived" • Identifier "(" Parameters ")" "->" Type "=" Term 26 | "derived" • Identifier "(" error ")" "->" Type "=" Term - 60 DeclarationDefinition: "derived" • Identifier ":" MaybeFunctionParameters "->" Type + 62 DeclarationDefinition: "derived" • Identifier ":" MaybeFunctionParameters "->" Type "in" shift, and go to state 8 "identifier" shift, and go to state 9 - Identifier go to state 433 + Identifier go to state 436 -State 371 +State 373 27 RuleDefinition: "rule" • Identifier "=" Rule 28 | "rule" • Identifier "->" Type "=" Rule @@ -8637,130 +8675,130 @@ State 371 30 | "rule" • Identifier "(" Parameters ")" "->" Type "=" Rule 31 | "rule" • Identifier "(" error ")" "=" Rule 32 | "rule" • Identifier "(" error ")" "->" Type "=" Rule - 61 DeclarationDefinition: "rule" • Identifier ":" MaybeFunctionParameters "->" Type + 63 DeclarationDefinition: "rule" • Identifier ":" MaybeFunctionParameters "->" Type "in" shift, and go to state 8 "identifier" shift, and go to state 9 - Identifier go to state 434 + Identifier go to state 437 -State 372 +State 374 - 50 FeatureDeclarationOrDefinition: DerivedDefinition • + 52 FeatureDeclarationOrDefinition: DerivedDefinition • - $default reduce using rule 50 (FeatureDeclarationOrDefinition) + $default reduce using rule 52 (FeatureDeclarationOrDefinition) -State 373 +State 375 - 51 FeatureDeclarationOrDefinition: RuleDefinition • + 53 FeatureDeclarationOrDefinition: RuleDefinition • - $default reduce using rule 51 (FeatureDeclarationOrDefinition) + $default reduce using rule 53 (FeatureDeclarationOrDefinition) -State 374 +State 376 - 53 FeatureDeclarationsAndDefinitions: FeatureDeclarationOrDefinition • + 55 FeatureDeclarationsAndDefinitions: FeatureDeclarationOrDefinition • - $default reduce using rule 53 (FeatureDeclarationsAndDefinitions) + $default reduce using rule 55 (FeatureDeclarationsAndDefinitions) -State 375 +State 377 - 48 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions • "}" - 52 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions • FeatureDeclarationOrDefinition + 50 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions • "}" + 54 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions • FeatureDeclarationOrDefinition - "derived" shift, and go to state 370 - "rule" shift, and go to state 371 - "}" shift, and go to state 435 + "derived" shift, and go to state 372 + "rule" shift, and go to state 373 + "}" shift, and go to state 438 - DerivedDefinition go to state 372 - RuleDefinition go to state 373 - FeatureDeclarationOrDefinition go to state 436 - DeclarationDefinition go to state 376 + DerivedDefinition go to state 374 + RuleDefinition go to state 375 + FeatureDeclarationOrDefinition go to state 439 + DeclarationDefinition go to state 378 -State 376 +State 378 - 49 FeatureDeclarationOrDefinition: DeclarationDefinition • + 51 FeatureDeclarationOrDefinition: DeclarationDefinition • - $default reduce using rule 49 (FeatureDeclarationOrDefinition) + $default reduce using rule 51 (FeatureDeclarationOrDefinition) -State 377 +State 379 - 193 Types: Types "," Type • - 202 TupleType: "(" Types "," Type • ")" + 195 Types: Types "," Type • + 204 TupleType: "(" Types "," Type • ")" - ")" shift, and go to state 437 + ")" shift, and go to state 440 - $default reduce using rule 193 (Types) + $default reduce using rule 195 (Types) -State 378 +State 380 - 203 RecordType: "(" TypedVariables "," TypedVariable • ")" - 230 TypedVariables: TypedVariables "," TypedVariable • + 205 RecordType: "(" TypedVariables "," TypedVariable • ")" + 232 TypedVariables: TypedVariables "," TypedVariable • - ")" shift, and go to state 438 + ")" shift, and go to state 441 - $default reduce using rule 230 (TypedVariables) + $default reduce using rule 232 (TypedVariables) -State 379 +State 381 - 56 ImplementationDefinitionDefinition: DerivedDefinition • + 58 ImplementationDefinitionDefinition: DerivedDefinition • - $default reduce using rule 56 (ImplementationDefinitionDefinition) + $default reduce using rule 58 (ImplementationDefinitionDefinition) -State 380 +State 382 - 57 ImplementationDefinitionDefinition: RuleDefinition • + 59 ImplementationDefinitionDefinition: RuleDefinition • - $default reduce using rule 57 (ImplementationDefinitionDefinition) + $default reduce using rule 59 (ImplementationDefinitionDefinition) -State 381 +State 383 - 58 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition • ImplementationDefinitionDefinitions - 59 | ImplementationDefinitionDefinition • + 60 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition • ImplementationDefinitionDefinitions + 61 | ImplementationDefinitionDefinition • "derived" shift, and go to state 16 "rule" shift, and go to state 18 - $default reduce using rule 59 (ImplementationDefinitionDefinitions) + $default reduce using rule 61 (ImplementationDefinitionDefinitions) - DerivedDefinition go to state 379 - RuleDefinition go to state 380 - ImplementationDefinitionDefinition go to state 381 - ImplementationDefinitionDefinitions go to state 439 + DerivedDefinition go to state 381 + RuleDefinition go to state 382 + ImplementationDefinitionDefinition go to state 383 + ImplementationDefinitionDefinitions go to state 442 -State 382 +State 384 - 55 ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions • "}" + 57 ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions • "}" - "}" shift, and go to state 440 + "}" shift, and go to state 443 -State 383 +State 385 - 54 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" • "{" ImplementationDefinitionDefinitions "}" + 56 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" • "{" ImplementationDefinitionDefinitions "}" - "{" shift, and go to state 441 + "{" shift, and go to state 444 -State 384 +State 386 - 193 Types: Types "," • Type + 195 Types: Types "," • Type "in" shift, and go to state 8 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 442 + Type go to state 445 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -8771,22 +8809,22 @@ State 384 IdentifierPath go to state 190 -State 385 +State 387 - 204 TemplateType: IdentifierPath "<" Types ">" • + 206 TemplateType: IdentifierPath "<" Types ">" • - $default reduce using rule 204 (TemplateType) + $default reduce using rule 206 (TemplateType) -State 386 +State 388 - 207 FunctionParameters: FunctionParameters "*" • Type + 209 FunctionParameters: FunctionParameters "*" • Type "in" shift, and go to state 8 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 443 + Type go to state 446 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -8797,15 +8835,15 @@ State 386 IdentifierPath go to state 190 -State 387 +State 389 - 205 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" • Type ">" + 207 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" • Type ">" "in" shift, and go to state 8 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 444 + Type go to state 447 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -8816,15 +8854,15 @@ State 387 IdentifierPath go to state 190 -State 388 +State 390 - 35 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" • Type MaybeDefined MaybeInitially + 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" • Type MaybeDefined MaybeInitially "in" shift, and go to state 8 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 445 + Type go to state 448 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -8835,9 +8873,9 @@ State 388 IdentifierPath go to state 190 -State 389 +State 391 - 159 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" • Term + 161 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -8863,7 +8901,7 @@ State 389 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 446 + Term go to state 449 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -8895,9 +8933,9 @@ State 389 IdentifierPath go to state 95 -State 390 +State 392 - 158 ChooseExpression: "choose" AttributedVariables "in" Term "do" • Term + 160 ChooseExpression: "choose" AttributedVariables "in" Term "do" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -8923,7 +8961,7 @@ State 390 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 447 + Term go to state 450 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -8955,9 +8993,9 @@ State 390 IdentifierPath go to state 95 -State 391 +State 393 - 157 ConditionalExpression: "if" Term "then" Term "else" • Term + 159 ConditionalExpression: "if" Term "then" Term "else" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -8983,7 +9021,7 @@ State 391 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 448 + Term go to state 451 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -9015,9 +9053,9 @@ State 391 IdentifierPath go to state 95 -State 392 +State 394 - 160 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" • Term + 162 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -9043,7 +9081,7 @@ State 392 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 449 + Term go to state 452 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -9075,46 +9113,46 @@ State 392 IdentifierPath go to state 95 -State 393 +State 395 - 188 TupleLiteral: "(" Terms "," Term ")" • + 190 TupleLiteral: "(" Terms "," Term ")" • - $default reduce using rule 188 (TupleLiteral) + $default reduce using rule 190 (TupleLiteral) -State 394 +State 396 - 187 RangeLiteral: "[" Term ".." Term "]" • + 189 RangeLiteral: "[" Term ".." Term "]" • - $default reduce using rule 187 (RangeLiteral) + $default reduce using rule 189 (RangeLiteral) -State 395 +State 397 - 150 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error • ")" + 152 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error • ")" - ")" shift, and go to state 450 + ")" shift, and go to state 453 -State 396 +State 398 - 148 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" ")" • + 150 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" ")" • - $default reduce using rule 148 (MethodCallExpression) + $default reduce using rule 150 (MethodCallExpression) -State 397 +State 399 - 104 Terms: Terms • "," Term - 149 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms • ")" + 106 Terms: Terms • "," Term + 151 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms • ")" - ")" shift, and go to state 451 + ")" shift, and go to state 454 "," shift, and go to state 216 -State 398 +State 400 - 220 Initializer: "(" Term ")" "->" • Term + 222 Initializer: "(" Term ")" "->" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -9140,7 +9178,7 @@ State 398 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 452 + Term go to state 455 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -9172,7 +9210,7 @@ State 398 IdentifierPath go to state 95 -State 399 +State 401 26 DerivedDefinition: "derived" Identifier "(" error ")" "->" • Type "=" Term @@ -9180,7 +9218,7 @@ State 399 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 453 + Type go to state 456 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -9191,7 +9229,7 @@ State 399 IdentifierPath go to state 190 -State 400 +State 402 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" • Type "=" Term @@ -9199,7 +9237,7 @@ State 400 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 454 + Type go to state 457 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -9210,33 +9248,33 @@ State 400 IdentifierPath go to state 190 -State 401 +State 403 - 211 Parameters: Parameters "," TypedAttributedVariable • + 213 Parameters: Parameters "," TypedAttributedVariable • - $default reduce using rule 211 (Parameters) + $default reduce using rule 213 (Parameters) -State 402 +State 404 24 DerivedDefinition: "derived" Identifier "->" Type "=" Term • - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -9259,73 +9297,73 @@ State 402 $default reduce using rule 24 (DerivedDefinition) -State 403 +State 405 23 EnumerationDefinition: "enumeration" Identifier "=" "{" Enumerators "}" • $default reduce using rule 23 (EnumerationDefinition) -State 404 +State 406 - 39 Enumerators: Enumerators "," • EnumeratorDefinition + 37 Enumerators: Enumerators "," • EnumeratorDefinition error shift, and go to state 337 "in" shift, and go to state 8 "[" shift, and go to state 2 "identifier" shift, and go to state 9 - EnumeratorDefinition go to state 455 + EnumeratorDefinition go to state 458 Identifier go to state 340 Attributes go to state 341 Attribute go to state 6 -State 405 - - 37 EnumeratorDefinition: Attributes Identifier • - - $default reduce using rule 37 (EnumeratorDefinition) - - -State 406 - - 100 SequenceRule: "seq" error "endseq" • - - $default reduce using rule 100 (SequenceRule) - - State 407 - 98 SequenceRule: "seq" Rules "endseq" • + 35 EnumeratorDefinition: Attributes Identifier • - $default reduce using rule 98 (SequenceRule) + $default reduce using rule 35 (EnumeratorDefinition) State 408 - 62 Rules: Rules Rule • + 102 SequenceRule: "seq" error "endseq" • - $default reduce using rule 62 (Rules) + $default reduce using rule 102 (SequenceRule) State 409 - 96 BlockRule: "par" error "endpar" • + 100 SequenceRule: "seq" Rules "endseq" • - $default reduce using rule 96 (BlockRule) + $default reduce using rule 100 (SequenceRule) State 410 - 94 BlockRule: "par" Rules "endpar" • + 64 Rules: Rules Rule • - $default reduce using rule 94 (BlockRule) + $default reduce using rule 64 (Rules) State 411 - 87 LetRule: "let" VariableBindings "in" • Rule + 98 BlockRule: "par" error "endpar" • + + $default reduce using rule 98 (BlockRule) + + +State 412 + + 96 BlockRule: "par" Rules "endpar" • + + $default reduce using rule 96 (BlockRule) + + +State 413 + + 89 LetRule: "let" VariableBindings "in" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -9357,7 +9395,7 @@ State 411 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 456 + Rule go to state 459 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -9394,15 +9432,15 @@ State 411 IdentifierPath go to state 95 -State 412 +State 414 - 245 LocalFunctionDefinition: Identifier ":" • MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 247 LocalFunctionDefinition: Identifier ":" • MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially "in" shift, and go to state 8 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - $default reduce using rule 210 (MaybeFunctionParameters) + $default reduce using rule 212 (MaybeFunctionParameters) Type go to state 307 BasicType go to state 111 @@ -9412,14 +9450,14 @@ State 412 RelationType go to state 115 FixedSizedType go to state 116 FunctionParameters go to state 304 - MaybeFunctionParameters go to state 457 + MaybeFunctionParameters go to state 460 Identifier go to state 94 IdentifierPath go to state 190 -State 413 +State 415 - 88 LocalRule: "local" LocalFunctionDefinitions "in" • Rule + 90 LocalRule: "local" LocalFunctionDefinitions "in" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -9451,7 +9489,7 @@ State 413 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 458 + Rule go to state 461 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -9488,9 +9526,9 @@ State 413 IdentifierPath go to state 95 -State 414 +State 416 - 240 LocalFunctionDefinitions: LocalFunctionDefinitions "," • AttributedLocalFunctionDefinition + 242 LocalFunctionDefinitions: LocalFunctionDefinitions "," • AttributedLocalFunctionDefinition error shift, and go to state 348 "in" shift, and go to state 8 @@ -9498,23 +9536,23 @@ State 414 "identifier" shift, and go to state 9 Identifier go to state 349 - AttributedLocalFunctionDefinition go to state 459 + AttributedLocalFunctionDefinition go to state 462 LocalFunctionDefinition go to state 352 Attributes go to state 353 Attribute go to state 6 -State 415 +State 417 - 242 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition • + 244 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition • - $default reduce using rule 242 (AttributedLocalFunctionDefinition) + $default reduce using rule 244 (AttributedLocalFunctionDefinition) -State 416 +State 418 - 89 ForallRule: "forall" AttributedVariables "in" • Term "do" Rule - 90 | "forall" AttributedVariables "in" • Term "with" Term "do" Rule + 91 ForallRule: "forall" AttributedVariables "in" • Term "do" Rule + 92 | "forall" AttributedVariables "in" • Term "with" Term "do" Rule "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -9540,7 +9578,7 @@ State 416 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 460 + Term go to state 463 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -9572,9 +9610,9 @@ State 416 IdentifierPath go to state 95 -State 417 +State 419 - 91 ChooseRule: "choose" AttributedVariables "in" • Term "do" Rule + 93 ChooseRule: "choose" AttributedVariables "in" • Term "do" Rule "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -9600,7 +9638,7 @@ State 417 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 461 + Term go to state 464 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -9632,10 +9670,10 @@ State 417 IdentifierPath go to state 95 -State 418 +State 420 - 78 ConditionalRule: "if" Term "then" • Rule - 79 | "if" Term "then" • Rule "else" Rule + 80 ConditionalRule: "if" Term "then" • Rule + 81 | "if" Term "then" • Rule "else" Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -9667,7 +9705,7 @@ State 418 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 462 + Rule go to state 465 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -9704,17 +9742,17 @@ State 418 IdentifierPath go to state 95 -State 419 +State 421 - 80 CaseRule: "case" Term "of" • "{" CaseLabels "}" - 81 | "case" Term "of" • "{" error "}" + 82 CaseRule: "case" Term "of" • "{" CaseLabels "}" + 83 | "case" Term "of" • "{" error "}" - "{" shift, and go to state 463 + "{" shift, and go to state 466 -State 420 +State 422 - 103 WhileRule: "while" Term "do" • Rule + 105 WhileRule: "while" Term "do" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -9746,7 +9784,7 @@ State 420 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 464 + Rule go to state 467 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -9783,54 +9821,54 @@ State 420 IdentifierPath go to state 95 -State 421 +State 423 - 95 BlockRule: "{" error "}" • + 97 BlockRule: "{" error "}" • - $default reduce using rule 95 (BlockRule) + $default reduce using rule 97 (BlockRule) -State 422 +State 424 - 93 BlockRule: "{" Rules "}" • + 95 BlockRule: "{" Rules "}" • - $default reduce using rule 93 (BlockRule) + $default reduce using rule 95 (BlockRule) -State 423 +State 425 - 99 SequenceRule: "{|" error "|}" • + 101 SequenceRule: "{|" error "|}" • - $default reduce using rule 99 (SequenceRule) + $default reduce using rule 101 (SequenceRule) -State 424 +State 426 - 97 SequenceRule: "{|" Rules "|}" • + 99 SequenceRule: "{|" Rules "|}" • - $default reduce using rule 97 (SequenceRule) + $default reduce using rule 99 (SequenceRule) -State 425 +State 427 - 101 UpdateRule: DirectCallExpression ":=" Term • - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 103 UpdateRule: DirectCallExpression ":=" Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -9850,10 +9888,10 @@ State 425 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 101 (UpdateRule) + $default reduce using rule 103 (UpdateRule) -State 426 +State 428 31 RuleDefinition: "rule" Identifier "(" error ")" "=" • Rule @@ -9887,7 +9925,7 @@ State 426 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 465 + Rule go to state 468 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -9924,7 +9962,7 @@ State 426 IdentifierPath go to state 95 -State 427 +State 429 32 RuleDefinition: "rule" Identifier "(" error ")" "->" • Type "=" Rule @@ -9932,7 +9970,7 @@ State 427 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 466 + Type go to state 469 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -9943,7 +9981,7 @@ State 427 IdentifierPath go to state 190 -State 428 +State 430 29 RuleDefinition: "rule" Identifier "(" Parameters ")" "=" • Rule @@ -9977,7 +10015,7 @@ State 428 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 467 + Rule go to state 470 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -10014,7 +10052,7 @@ State 428 IdentifierPath go to state 95 -State 429 +State 431 30 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" • Type "=" Rule @@ -10022,7 +10060,7 @@ State 429 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 468 + Type go to state 471 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -10033,40 +10071,51 @@ State 429 IdentifierPath go to state 190 -State 430 +State 432 28 RuleDefinition: "rule" Identifier "->" Type "=" Rule • $default reduce using rule 28 (RuleDefinition) -State 431 +State 433 + + 46 StructureDefinitionElement: "[" Attributes • "]" FunctionDefinition + 248 Attributes: Attributes • Attribute - 47 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinitions "}" • + "[" shift, and go to state 2 + "]" shift, and go to state 472 - $default reduce using rule 47 (StructureDefinition) + Attribute go to state 43 -State 432 +State 434 - 33 FunctionDefinitions: FunctionDefinitions FunctionDefinition • + 45 StructureDefinition: "structure" Identifier "=" "{" StructureDefinitionList "}" • - $default reduce using rule 33 (FunctionDefinitions) + $default reduce using rule 45 (StructureDefinition) -State 433 +State 435 + + 48 StructureDefinitionList: StructureDefinitionList StructureDefinitionElement • + + $default reduce using rule 48 (StructureDefinitionList) + + +State 436 24 DerivedDefinition: "derived" Identifier • "->" Type "=" Term 25 | "derived" Identifier • "(" Parameters ")" "->" Type "=" Term 26 | "derived" Identifier • "(" error ")" "->" Type "=" Term - 60 DeclarationDefinition: "derived" Identifier • ":" MaybeFunctionParameters "->" Type + 62 DeclarationDefinition: "derived" Identifier • ":" MaybeFunctionParameters "->" Type "(" shift, and go to state 175 - ":" shift, and go to state 469 + ":" shift, and go to state 473 "->" shift, and go to state 176 -State 434 +State 437 27 RuleDefinition: "rule" Identifier • "=" Rule 28 | "rule" Identifier • "->" Type "=" Rule @@ -10074,121 +10123,121 @@ State 434 30 | "rule" Identifier • "(" Parameters ")" "->" Type "=" Rule 31 | "rule" Identifier • "(" error ")" "=" Rule 32 | "rule" Identifier • "(" error ")" "->" Type "=" Rule - 61 DeclarationDefinition: "rule" Identifier • ":" MaybeFunctionParameters "->" Type + 63 DeclarationDefinition: "rule" Identifier • ":" MaybeFunctionParameters "->" Type "=" shift, and go to state 178 "(" shift, and go to state 179 - ":" shift, and go to state 470 + ":" shift, and go to state 474 "->" shift, and go to state 180 -State 435 +State 438 - 48 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" • + 50 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" • - $default reduce using rule 48 (FeatureDefinition) + $default reduce using rule 50 (FeatureDefinition) -State 436 +State 439 - 52 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition • + 54 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition • - $default reduce using rule 52 (FeatureDeclarationsAndDefinitions) + $default reduce using rule 54 (FeatureDeclarationsAndDefinitions) -State 437 +State 440 - 202 TupleType: "(" Types "," Type ")" • + 204 TupleType: "(" Types "," Type ")" • - $default reduce using rule 202 (TupleType) + $default reduce using rule 204 (TupleType) -State 438 +State 441 - 203 RecordType: "(" TypedVariables "," TypedVariable ")" • + 205 RecordType: "(" TypedVariables "," TypedVariable ")" • - $default reduce using rule 203 (RecordType) + $default reduce using rule 205 (RecordType) -State 439 +State 442 - 58 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions • + 60 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions • - $default reduce using rule 58 (ImplementationDefinitionDefinitions) + $default reduce using rule 60 (ImplementationDefinitionDefinitions) -State 440 +State 443 - 55 ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" • + 57 ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" • - $default reduce using rule 55 (ImplementationDefinition) + $default reduce using rule 57 (ImplementationDefinition) -State 441 +State 444 - 54 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" • ImplementationDefinitionDefinitions "}" + 56 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" • ImplementationDefinitionDefinitions "}" "derived" shift, and go to state 16 "rule" shift, and go to state 18 - DerivedDefinition go to state 379 - RuleDefinition go to state 380 - ImplementationDefinitionDefinition go to state 381 - ImplementationDefinitionDefinitions go to state 471 + DerivedDefinition go to state 381 + RuleDefinition go to state 382 + ImplementationDefinitionDefinition go to state 383 + ImplementationDefinitionDefinitions go to state 475 -State 442 +State 445 - 193 Types: Types "," Type • + 195 Types: Types "," Type • - $default reduce using rule 193 (Types) + $default reduce using rule 195 (Types) -State 443 +State 446 - 207 FunctionParameters: FunctionParameters "*" Type • + 209 FunctionParameters: FunctionParameters "*" Type • - $default reduce using rule 207 (FunctionParameters) + $default reduce using rule 209 (FunctionParameters) -State 444 +State 447 - 205 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type • ">" + 207 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type • ">" - ">" shift, and go to state 472 + ">" shift, and go to state 476 -State 445 +State 448 - 35 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type • MaybeDefined MaybeInitially + 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type • MaybeDefined MaybeInitially - "defined" shift, and go to state 473 + "defined" shift, and go to state 477 - $default reduce using rule 214 (MaybeDefined) + $default reduce using rule 216 (MaybeDefined) - MaybeDefined go to state 474 + MaybeDefined go to state 478 -State 446 +State 449 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 159 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 161 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -10208,29 +10257,29 @@ State 446 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 159 (UniversalQuantifierExpression) + $default reduce using rule 161 (UniversalQuantifierExpression) -State 447 +State 450 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 158 ChooseExpression: "choose" AttributedVariables "in" Term "do" Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 160 ChooseExpression: "choose" AttributedVariables "in" Term "do" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -10250,29 +10299,29 @@ State 447 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 158 (ChooseExpression) + $default reduce using rule 160 (ChooseExpression) -State 448 +State 451 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 157 ConditionalExpression: "if" Term "then" Term "else" Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 159 ConditionalExpression: "if" Term "then" Term "else" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -10292,29 +10341,29 @@ State 448 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 157 (ConditionalExpression) + $default reduce using rule 159 (ConditionalExpression) -State 449 +State 452 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 160 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 162 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -10334,43 +10383,43 @@ State 449 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 160 (ExistentialQuantifierExpression) + $default reduce using rule 162 (ExistentialQuantifierExpression) -State 450 +State 453 - 150 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error ")" • + 152 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error ")" • - $default reduce using rule 150 (MethodCallExpression) + $default reduce using rule 152 (MethodCallExpression) -State 451 +State 454 - 149 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms ")" • + 151 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms ")" • - $default reduce using rule 149 (MethodCallExpression) + $default reduce using rule 151 (MethodCallExpression) -State 452 +State 455 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 220 Initializer: "(" Term ")" "->" Term • + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 222 Initializer: "(" Term ")" "->" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -10390,82 +10439,82 @@ State 452 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 220 (Initializer) + $default reduce using rule 222 (Initializer) -State 453 +State 456 26 DerivedDefinition: "derived" Identifier "(" error ")" "->" Type • "=" Term - "=" shift, and go to state 475 + "=" shift, and go to state 479 -State 454 +State 457 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type • "=" Term - "=" shift, and go to state 476 + "=" shift, and go to state 480 -State 455 +State 458 - 39 Enumerators: Enumerators "," EnumeratorDefinition • + 37 Enumerators: Enumerators "," EnumeratorDefinition • - $default reduce using rule 39 (Enumerators) + $default reduce using rule 37 (Enumerators) -State 456 +State 459 - 87 LetRule: "let" VariableBindings "in" Rule • + 89 LetRule: "let" VariableBindings "in" Rule • - $default reduce using rule 87 (LetRule) + $default reduce using rule 89 (LetRule) -State 457 +State 460 - 245 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters • "->" Type MaybeDefined MaybeInitially + 247 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters • "->" Type MaybeDefined MaybeInitially - "->" shift, and go to state 477 + "->" shift, and go to state 481 -State 458 +State 461 - 88 LocalRule: "local" LocalFunctionDefinitions "in" Rule • + 90 LocalRule: "local" LocalFunctionDefinitions "in" Rule • - $default reduce using rule 88 (LocalRule) + $default reduce using rule 90 (LocalRule) -State 459 +State 462 - 240 LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition • + 242 LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition • - $default reduce using rule 240 (LocalFunctionDefinitions) + $default reduce using rule 242 (LocalFunctionDefinitions) -State 460 +State 463 - 89 ForallRule: "forall" AttributedVariables "in" Term • "do" Rule - 90 | "forall" AttributedVariables "in" Term • "with" Term "do" Rule - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - - "do" shift, and go to state 478 - "with" shift, and go to state 479 + 91 ForallRule: "forall" AttributedVariables "in" Term • "do" Rule + 92 | "forall" AttributedVariables "in" Term • "with" Term "do" Rule + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + + "do" shift, and go to state 482 + "with" shift, and go to state 483 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -10485,28 +10534,28 @@ State 460 ">=" shift, and go to state 164 -State 461 +State 464 - 91 ChooseRule: "choose" AttributedVariables "in" Term • "do" Rule - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - - "do" shift, and go to state 480 + 93 ChooseRule: "choose" AttributedVariables "in" Term • "do" Rule + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + + "do" shift, and go to state 484 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -10526,28 +10575,28 @@ State 461 ">=" shift, and go to state 164 -State 462 +State 465 - 78 ConditionalRule: "if" Term "then" Rule • - 79 | "if" Term "then" Rule • "else" Rule + 80 ConditionalRule: "if" Term "then" Rule • + 81 | "if" Term "then" Rule • "else" Rule - "else" shift, and go to state 481 + "else" shift, and go to state 485 - $default reduce using rule 78 (ConditionalRule) + $default reduce using rule 80 (ConditionalRule) -State 463 +State 466 - 80 CaseRule: "case" Term "of" "{" • CaseLabels "}" - 81 | "case" Term "of" "{" • error "}" + 82 CaseRule: "case" Term "of" "{" • CaseLabels "}" + 83 | "case" Term "of" "{" • error "}" - error shift, and go to state 482 + error shift, and go to state 486 "let" shift, and go to state 45 "in" shift, and go to state 8 "forall" shift, and go to state 46 "choose" shift, and go to state 47 "if" shift, and go to state 48 - "default" shift, and go to state 483 + "default" shift, and go to state 487 "exists" shift, and go to state 49 "undef" shift, and go to state 50 "false" shift, and go to state 51 @@ -10557,7 +10606,7 @@ State 463 "-" shift, and go to state 55 "(" shift, and go to state 56 "[" shift, and go to state 57 - "_" shift, and go to state 484 + "_" shift, and go to state 488 "|" shift, and go to state 58 "@" shift, and go to state 59 "binary" shift, and go to state 60 @@ -10568,9 +10617,9 @@ State 463 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - CaseLabels go to state 485 - CaseLabel go to state 486 - Term go to state 487 + CaseLabels go to state 489 + CaseLabel go to state 490 + Term go to state 491 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -10602,50 +10651,59 @@ State 463 IdentifierPath go to state 95 -State 464 +State 467 - 103 WhileRule: "while" Term "do" Rule • + 105 WhileRule: "while" Term "do" Rule • - $default reduce using rule 103 (WhileRule) + $default reduce using rule 105 (WhileRule) -State 465 +State 468 31 RuleDefinition: "rule" Identifier "(" error ")" "=" Rule • $default reduce using rule 31 (RuleDefinition) -State 466 +State 469 32 RuleDefinition: "rule" Identifier "(" error ")" "->" Type • "=" Rule - "=" shift, and go to state 488 + "=" shift, and go to state 492 -State 467 +State 470 29 RuleDefinition: "rule" Identifier "(" Parameters ")" "=" Rule • $default reduce using rule 29 (RuleDefinition) -State 468 +State 471 30 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type • "=" Rule - "=" shift, and go to state 489 + "=" shift, and go to state 493 -State 469 +State 472 + + 46 StructureDefinitionElement: "[" Attributes "]" • FunctionDefinition + + "function" shift, and go to state 25 + + FunctionDefinition go to state 494 + + +State 473 - 60 DeclarationDefinition: "derived" Identifier ":" • MaybeFunctionParameters "->" Type + 62 DeclarationDefinition: "derived" Identifier ":" • MaybeFunctionParameters "->" Type "in" shift, and go to state 8 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - $default reduce using rule 210 (MaybeFunctionParameters) + $default reduce using rule 212 (MaybeFunctionParameters) Type go to state 307 BasicType go to state 111 @@ -10655,20 +10713,20 @@ State 469 RelationType go to state 115 FixedSizedType go to state 116 FunctionParameters go to state 304 - MaybeFunctionParameters go to state 490 + MaybeFunctionParameters go to state 495 Identifier go to state 94 IdentifierPath go to state 190 -State 470 +State 474 - 61 DeclarationDefinition: "rule" Identifier ":" • MaybeFunctionParameters "->" Type + 63 DeclarationDefinition: "rule" Identifier ":" • MaybeFunctionParameters "->" Type "in" shift, and go to state 8 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - $default reduce using rule 210 (MaybeFunctionParameters) + $default reduce using rule 212 (MaybeFunctionParameters) Type go to state 307 BasicType go to state 111 @@ -10678,44 +10736,44 @@ State 470 RelationType go to state 115 FixedSizedType go to state 116 FunctionParameters go to state 304 - MaybeFunctionParameters go to state 491 + MaybeFunctionParameters go to state 496 Identifier go to state 94 IdentifierPath go to state 190 -State 471 +State 475 - 54 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions • "}" + 56 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions • "}" - "}" shift, and go to state 492 + "}" shift, and go to state 497 -State 472 +State 476 - 205 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" • + 207 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" • - $default reduce using rule 205 (RelationType) + $default reduce using rule 207 (RelationType) -State 473 +State 477 - 213 MaybeDefined: "defined" • "{" Term "}" + 215 MaybeDefined: "defined" • "{" Term "}" - "{" shift, and go to state 493 + "{" shift, and go to state 498 -State 474 +State 478 - 35 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined • MaybeInitially + 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined • MaybeInitially - "=" shift, and go to state 494 + "=" shift, and go to state 499 - $default reduce using rule 216 (MaybeInitially) + $default reduce using rule 218 (MaybeInitially) - MaybeInitially go to state 495 + MaybeInitially go to state 500 -State 475 +State 479 26 DerivedDefinition: "derived" Identifier "(" error ")" "->" Type "=" • Term @@ -10743,7 +10801,7 @@ State 475 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 496 + Term go to state 501 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -10775,7 +10833,7 @@ State 475 IdentifierPath go to state 95 -State 476 +State 480 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type "=" • Term @@ -10803,7 +10861,7 @@ State 476 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 497 + Term go to state 502 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -10835,15 +10893,15 @@ State 476 IdentifierPath go to state 95 -State 477 +State 481 - 245 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" • Type MaybeDefined MaybeInitially + 247 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" • Type MaybeDefined MaybeInitially "in" shift, and go to state 8 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 498 + Type go to state 503 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -10854,9 +10912,9 @@ State 477 IdentifierPath go to state 190 -State 478 +State 482 - 89 ForallRule: "forall" AttributedVariables "in" Term "do" • Rule + 91 ForallRule: "forall" AttributedVariables "in" Term "do" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -10888,7 +10946,7 @@ State 478 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 499 + Rule go to state 504 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -10925,9 +10983,9 @@ State 478 IdentifierPath go to state 95 -State 479 +State 483 - 90 ForallRule: "forall" AttributedVariables "in" Term "with" • Term "do" Rule + 92 ForallRule: "forall" AttributedVariables "in" Term "with" • Term "do" Rule "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -10953,7 +11011,7 @@ State 479 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 500 + Term go to state 505 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -10985,9 +11043,9 @@ State 479 IdentifierPath go to state 95 -State 480 +State 484 - 91 ChooseRule: "choose" AttributedVariables "in" Term "do" • Rule + 93 ChooseRule: "choose" AttributedVariables "in" Term "do" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -11019,7 +11077,7 @@ State 480 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 501 + Rule go to state 506 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -11056,9 +11114,9 @@ State 480 IdentifierPath go to state 95 -State 481 +State 485 - 79 ConditionalRule: "if" Term "then" Rule "else" • Rule + 81 ConditionalRule: "if" Term "then" Rule "else" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -11090,7 +11148,7 @@ State 481 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 502 + Rule go to state 507 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -11127,38 +11185,38 @@ State 481 IdentifierPath go to state 95 -State 482 +State 486 - 81 CaseRule: "case" Term "of" "{" error • "}" + 83 CaseRule: "case" Term "of" "{" error • "}" - "}" shift, and go to state 503 + "}" shift, and go to state 508 -State 483 +State 487 - 84 CaseLabel: "default" • ":" Rule + 86 CaseLabel: "default" • ":" Rule - ":" shift, and go to state 504 + ":" shift, and go to state 509 -State 484 +State 488 - 85 CaseLabel: "_" • ":" Rule + 87 CaseLabel: "_" • ":" Rule - ":" shift, and go to state 505 + ":" shift, and go to state 510 -State 485 +State 489 - 80 CaseRule: "case" Term "of" "{" CaseLabels • "}" - 82 CaseLabels: CaseLabels • CaseLabel + 82 CaseRule: "case" Term "of" "{" CaseLabels • "}" + 84 CaseLabels: CaseLabels • CaseLabel "let" shift, and go to state 45 "in" shift, and go to state 8 "forall" shift, and go to state 46 "choose" shift, and go to state 47 "if" shift, and go to state 48 - "default" shift, and go to state 483 + "default" shift, and go to state 487 "exists" shift, and go to state 49 "undef" shift, and go to state 50 "false" shift, and go to state 51 @@ -11168,8 +11226,8 @@ State 485 "-" shift, and go to state 55 "(" shift, and go to state 56 "[" shift, and go to state 57 - "}" shift, and go to state 506 - "_" shift, and go to state 484 + "}" shift, and go to state 511 + "_" shift, and go to state 488 "|" shift, and go to state 58 "@" shift, and go to state 59 "binary" shift, and go to state 60 @@ -11180,8 +11238,8 @@ State 485 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - CaseLabel go to state 507 - Term go to state 487 + CaseLabel go to state 512 + Term go to state 491 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -11213,33 +11271,33 @@ State 485 IdentifierPath go to state 95 -State 486 +State 490 - 83 CaseLabels: CaseLabel • + 85 CaseLabels: CaseLabel • - $default reduce using rule 83 (CaseLabels) + $default reduce using rule 85 (CaseLabels) -State 487 +State 491 - 86 CaseLabel: Term • ":" Rule - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 88 CaseLabel: Term • ":" Rule + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -11248,7 +11306,7 @@ State 487 "+" shift, and go to state 152 "-" shift, and go to state 153 "=" shift, and go to state 154 - ":" shift, and go to state 508 + ":" shift, and go to state 513 "<" shift, and go to state 155 ">" shift, and go to state 156 "*" shift, and go to state 157 @@ -11261,7 +11319,7 @@ State 487 ">=" shift, and go to state 164 -State 488 +State 492 32 RuleDefinition: "rule" Identifier "(" error ")" "->" Type "=" • Rule @@ -11295,7 +11353,7 @@ State 488 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 509 + Rule go to state 514 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -11332,7 +11390,7 @@ State 488 IdentifierPath go to state 95 -State 489 +State 493 30 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type "=" • Rule @@ -11366,7 +11424,7 @@ State 489 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 510 + Rule go to state 515 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -11403,30 +11461,37 @@ State 489 IdentifierPath go to state 95 -State 490 +State 494 - 60 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters • "->" Type + 46 StructureDefinitionElement: "[" Attributes "]" FunctionDefinition • - "->" shift, and go to state 511 + $default reduce using rule 46 (StructureDefinitionElement) -State 491 +State 495 - 61 DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters • "->" Type + 62 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters • "->" Type - "->" shift, and go to state 512 + "->" shift, and go to state 516 -State 492 +State 496 - 54 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" • + 63 DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters • "->" Type - $default reduce using rule 54 (ImplementationDefinition) + "->" shift, and go to state 517 -State 493 +State 497 + + 56 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" • - 213 MaybeDefined: "defined" "{" • Term "}" + $default reduce using rule 56 (ImplementationDefinition) + + +State 498 + + 215 MaybeDefined: "defined" "{" • Term "}" "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -11452,7 +11517,7 @@ State 493 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 513 + Term go to state 518 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -11484,40 +11549,40 @@ State 493 IdentifierPath go to state 95 -State 494 +State 499 - 215 MaybeInitially: "=" • "{" Initializers "}" + 217 MaybeInitially: "=" • "{" Initializers "}" - "{" shift, and go to state 514 + "{" shift, and go to state 519 -State 495 +State 500 - 35 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially • + 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially • - $default reduce using rule 35 (FunctionDefinition) + $default reduce using rule 33 (FunctionDefinition) -State 496 +State 501 26 DerivedDefinition: "derived" Identifier "(" error ")" "->" Type "=" Term • - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -11540,26 +11605,26 @@ State 496 $default reduce using rule 26 (DerivedDefinition) -State 497 +State 502 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type "=" Term • - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -11582,46 +11647,46 @@ State 497 $default reduce using rule 25 (DerivedDefinition) -State 498 +State 503 - 245 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type • MaybeDefined MaybeInitially + 247 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type • MaybeDefined MaybeInitially - "defined" shift, and go to state 473 + "defined" shift, and go to state 477 - $default reduce using rule 214 (MaybeDefined) + $default reduce using rule 216 (MaybeDefined) - MaybeDefined go to state 515 + MaybeDefined go to state 520 -State 499 +State 504 - 89 ForallRule: "forall" AttributedVariables "in" Term "do" Rule • + 91 ForallRule: "forall" AttributedVariables "in" Term "do" Rule • - $default reduce using rule 89 (ForallRule) + $default reduce using rule 91 (ForallRule) -State 500 +State 505 - 90 ForallRule: "forall" AttributedVariables "in" Term "with" Term • "do" Rule - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - - "do" shift, and go to state 516 + 92 ForallRule: "forall" AttributedVariables "in" Term "with" Term • "do" Rule + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + + "do" shift, and go to state 521 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -11641,30 +11706,30 @@ State 500 ">=" shift, and go to state 164 -State 501 +State 506 - 91 ChooseRule: "choose" AttributedVariables "in" Term "do" Rule • + 93 ChooseRule: "choose" AttributedVariables "in" Term "do" Rule • - $default reduce using rule 91 (ChooseRule) + $default reduce using rule 93 (ChooseRule) -State 502 +State 507 - 79 ConditionalRule: "if" Term "then" Rule "else" Rule • + 81 ConditionalRule: "if" Term "then" Rule "else" Rule • - $default reduce using rule 79 (ConditionalRule) + $default reduce using rule 81 (ConditionalRule) -State 503 +State 508 - 81 CaseRule: "case" Term "of" "{" error "}" • + 83 CaseRule: "case" Term "of" "{" error "}" • - $default reduce using rule 81 (CaseRule) + $default reduce using rule 83 (CaseRule) -State 504 +State 509 - 84 CaseLabel: "default" ":" • Rule + 86 CaseLabel: "default" ":" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -11696,7 +11761,7 @@ State 504 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 517 + Rule go to state 522 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -11733,9 +11798,9 @@ State 504 IdentifierPath go to state 95 -State 505 +State 510 - 85 CaseLabel: "_" ":" • Rule + 87 CaseLabel: "_" ":" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -11767,7 +11832,7 @@ State 505 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 518 + Rule go to state 523 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -11804,23 +11869,23 @@ State 505 IdentifierPath go to state 95 -State 506 +State 511 - 80 CaseRule: "case" Term "of" "{" CaseLabels "}" • + 82 CaseRule: "case" Term "of" "{" CaseLabels "}" • - $default reduce using rule 80 (CaseRule) + $default reduce using rule 82 (CaseRule) -State 507 +State 512 - 82 CaseLabels: CaseLabels CaseLabel • + 84 CaseLabels: CaseLabels CaseLabel • - $default reduce using rule 82 (CaseLabels) + $default reduce using rule 84 (CaseLabels) -State 508 +State 513 - 86 CaseLabel: Term ":" • Rule + 88 CaseLabel: Term ":" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -11852,7 +11917,7 @@ State 508 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 519 + Rule go to state 524 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -11889,29 +11954,29 @@ State 508 IdentifierPath go to state 95 -State 509 +State 514 32 RuleDefinition: "rule" Identifier "(" error ")" "->" Type "=" Rule • $default reduce using rule 32 (RuleDefinition) -State 510 +State 515 30 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type "=" Rule • $default reduce using rule 30 (RuleDefinition) -State 511 +State 516 - 60 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" • Type + 62 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" • Type "in" shift, and go to state 8 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 520 + Type go to state 525 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -11922,15 +11987,15 @@ State 511 IdentifierPath go to state 190 -State 512 +State 517 - 61 DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters "->" • Type + 63 DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters "->" • Type "in" shift, and go to state 8 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 521 + Type go to state 526 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -11941,26 +12006,26 @@ State 512 IdentifierPath go to state 190 -State 513 +State 518 - 122 OperatorExpression: Term • "+" Term - 123 | Term • "-" Term - 124 | Term • "*" Term - 125 | Term • "/" Term - 126 | Term • "%" Term - 127 | Term • "^" Term - 128 | Term • "!=" Term - 129 | Term • "=" Term - 130 | Term • "<" Term - 131 | Term • ">" Term - 132 | Term • "<=" Term - 133 | Term • ">=" Term - 134 | Term • "or" Term - 135 | Term • "xor" Term - 136 | Term • "and" Term - 137 | Term • "=>" Term - 138 | Term • "implies" Term - 213 MaybeDefined: "defined" "{" Term • "}" + 124 OperatorExpression: Term • "+" Term + 125 | Term • "-" Term + 126 | Term • "*" Term + 127 | Term • "/" Term + 128 | Term • "%" Term + 129 | Term • "^" Term + 130 | Term • "!=" Term + 131 | Term • "=" Term + 132 | Term • "<" Term + 133 | Term • ">" Term + 134 | Term • "<=" Term + 135 | Term • ">=" Term + 136 | Term • "or" Term + 137 | Term • "xor" Term + 138 | Term • "and" Term + 139 | Term • "=>" Term + 140 | Term • "implies" Term + 215 MaybeDefined: "defined" "{" Term • "}" "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -11969,7 +12034,7 @@ State 513 "+" shift, and go to state 152 "-" shift, and go to state 153 "=" shift, and go to state 154 - "}" shift, and go to state 522 + "}" shift, and go to state 527 "<" shift, and go to state 155 ">" shift, and go to state 156 "*" shift, and go to state 157 @@ -11982,9 +12047,9 @@ State 513 ">=" shift, and go to state 164 -State 514 +State 519 - 215 MaybeInitially: "=" "{" • Initializers "}" + 217 MaybeInitially: "=" "{" • Initializers "}" "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -12038,26 +12103,26 @@ State 514 RangeLiteral go to state 91 TupleLiteral go to state 172 RecordLiteral go to state 93 - Initializers go to state 523 + Initializers go to state 528 Initializer go to state 174 Identifier go to state 94 IdentifierPath go to state 95 -State 515 +State 520 - 245 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined • MaybeInitially + 247 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined • MaybeInitially - "=" shift, and go to state 494 + "=" shift, and go to state 499 - $default reduce using rule 216 (MaybeInitially) + $default reduce using rule 218 (MaybeInitially) - MaybeInitially go to state 524 + MaybeInitially go to state 529 -State 516 +State 521 - 90 ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" • Rule + 92 ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -12089,7 +12154,7 @@ State 516 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 525 + Rule go to state 530 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -12126,73 +12191,73 @@ State 516 IdentifierPath go to state 95 -State 517 +State 522 - 84 CaseLabel: "default" ":" Rule • + 86 CaseLabel: "default" ":" Rule • - $default reduce using rule 84 (CaseLabel) + $default reduce using rule 86 (CaseLabel) -State 518 +State 523 - 85 CaseLabel: "_" ":" Rule • + 87 CaseLabel: "_" ":" Rule • - $default reduce using rule 85 (CaseLabel) + $default reduce using rule 87 (CaseLabel) -State 519 +State 524 - 86 CaseLabel: Term ":" Rule • + 88 CaseLabel: Term ":" Rule • - $default reduce using rule 86 (CaseLabel) + $default reduce using rule 88 (CaseLabel) -State 520 +State 525 - 60 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type • + 62 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type • - $default reduce using rule 60 (DeclarationDefinition) + $default reduce using rule 62 (DeclarationDefinition) -State 521 +State 526 - 61 DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters "->" Type • + 63 DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters "->" Type • - $default reduce using rule 61 (DeclarationDefinition) + $default reduce using rule 63 (DeclarationDefinition) -State 522 +State 527 - 213 MaybeDefined: "defined" "{" Term "}" • + 215 MaybeDefined: "defined" "{" Term "}" • - $default reduce using rule 213 (MaybeDefined) + $default reduce using rule 215 (MaybeDefined) -State 523 +State 528 - 215 MaybeInitially: "=" "{" Initializers • "}" - 217 Initializers: Initializers • "," Initializer + 217 MaybeInitially: "=" "{" Initializers • "}" + 219 Initializers: Initializers • "," Initializer - "}" shift, and go to state 526 + "}" shift, and go to state 531 "," shift, and go to state 250 -State 524 +State 529 - 245 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially • + 247 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially • - $default reduce using rule 245 (LocalFunctionDefinition) + $default reduce using rule 247 (LocalFunctionDefinition) -State 525 +State 530 - 90 ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" Rule • + 92 ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" Rule • - $default reduce using rule 90 (ForallRule) + $default reduce using rule 92 (ForallRule) -State 526 +State 531 - 215 MaybeInitially: "=" "{" Initializers "}" • + 217 MaybeInitially: "=" "{" Initializers "}" • - $default reduce using rule 215 (MaybeInitially) + $default reduce using rule 217 (MaybeInitially) diff --git a/src/various/GrammarParser.tab.h b/src/various/GrammarParser.tab.h index a20abf67..99b1014e 100644 --- a/src/various/GrammarParser.tab.h +++ b/src/various/GrammarParser.tab.h @@ -598,11 +598,12 @@ namespace libcasm_fe { char dummy32[sizeof (ForallRule::Ptr)]; // FunctionDefinition + // StructureDefinitionElement // AttributedLocalFunctionDefinition // LocalFunctionDefinition char dummy33[sizeof (FunctionDefinition::Ptr)]; - // FunctionDefinitions + // StructureDefinitionList // LocalFunctionDefinitions char dummy34[sizeof (FunctionDefinitions::Ptr)]; @@ -1036,102 +1037,103 @@ namespace libcasm_fe { S_EnumerationDefinition = 100, // EnumerationDefinition S_DerivedDefinition = 101, // DerivedDefinition S_RuleDefinition = 102, // RuleDefinition - S_FunctionDefinitions = 103, // FunctionDefinitions - S_FunctionDefinition = 104, // FunctionDefinition - S_EnumeratorDefinition = 105, // EnumeratorDefinition - S_Enumerators = 106, // Enumerators - S_UsingDefinition = 107, // UsingDefinition - S_UsingPathDefinition = 108, // UsingPathDefinition - S_InvariantDefinition = 109, // InvariantDefinition - S_ImportDefinition = 110, // ImportDefinition - S_StructureDefinition = 111, // StructureDefinition - S_FeatureDefinition = 112, // FeatureDefinition - S_FeatureDeclarationOrDefinition = 113, // FeatureDeclarationOrDefinition - S_FeatureDeclarationsAndDefinitions = 114, // FeatureDeclarationsAndDefinitions - S_ImplementationDefinition = 115, // ImplementationDefinition - S_ImplementationDefinitionDefinition = 116, // ImplementationDefinitionDefinition - S_ImplementationDefinitionDefinitions = 117, // ImplementationDefinitionDefinitions - S_DeclarationDefinition = 118, // DeclarationDefinition - S_Rules = 119, // Rules - S_Rule = 120, // Rule - S_SkipRule = 121, // SkipRule - S_ConditionalRule = 122, // ConditionalRule - S_CaseRule = 123, // CaseRule - S_CaseLabels = 124, // CaseLabels - S_CaseLabel = 125, // CaseLabel - S_LetRule = 126, // LetRule - S_LocalRule = 127, // LocalRule - S_ForallRule = 128, // ForallRule - S_ChooseRule = 129, // ChooseRule - S_IterateRule = 130, // IterateRule - S_BlockRule = 131, // BlockRule - S_SequenceRule = 132, // SequenceRule - S_UpdateRule = 133, // UpdateRule - S_CallRule = 134, // CallRule - S_WhileRule = 135, // WhileRule - S_Terms = 136, // Terms - S_Term = 137, // Term - S_SimpleOrClaspedTerm = 138, // SimpleOrClaspedTerm - S_OperatorExpression = 139, // OperatorExpression - S_CallExpression = 140, // CallExpression - S_DirectCallExpression = 141, // DirectCallExpression - S_MethodCallExpression = 142, // MethodCallExpression - S_LiteralCallExpression = 143, // LiteralCallExpression - S_IndirectCallExpression = 144, // IndirectCallExpression - S_TypeCastingExpression = 145, // TypeCastingExpression - S_LetExpression = 146, // LetExpression - S_ConditionalExpression = 147, // ConditionalExpression - S_ChooseExpression = 148, // ChooseExpression - S_UniversalQuantifierExpression = 149, // UniversalQuantifierExpression - S_ExistentialQuantifierExpression = 150, // ExistentialQuantifierExpression - S_CardinalityExpression = 151, // CardinalityExpression - S_Literal = 152, // Literal - S_UndefinedLiteral = 153, // UndefinedLiteral - S_BooleanLiteral = 154, // BooleanLiteral - S_IntegerLiteral = 155, // IntegerLiteral - S_RationalLiteral = 156, // RationalLiteral - S_DecimalLiteral = 157, // DecimalLiteral - S_BinaryLiteral = 158, // BinaryLiteral - S_StringLiteral = 159, // StringLiteral - S_ReferenceLiteral = 160, // ReferenceLiteral - S_ListLiteral = 161, // ListLiteral - S_RangeLiteral = 162, // RangeLiteral - S_TupleLiteral = 163, // TupleLiteral - S_RecordLiteral = 164, // RecordLiteral - S_Assignments = 165, // Assignments - S_Assignment = 166, // Assignment - S_Types = 167, // Types - S_Type = 168, // Type - S_BasicType = 169, // BasicType - S_TupleType = 170, // TupleType - S_RecordType = 171, // RecordType - S_TemplateType = 172, // TemplateType - S_RelationType = 173, // RelationType - S_FixedSizedType = 174, // FixedSizedType - S_FunctionParameters = 175, // FunctionParameters - S_MaybeFunctionParameters = 176, // MaybeFunctionParameters - S_Parameters = 177, // Parameters - S_MaybeDefined = 178, // MaybeDefined - S_MaybeInitially = 179, // MaybeInitially - S_Initializers = 180, // Initializers - S_Initializer = 181, // Initializer - S_Identifier = 182, // Identifier - S_IdentifierPath = 183, // IdentifierPath - S_Variable = 184, // Variable - S_AttributedVariables = 185, // AttributedVariables - S_TypedVariables = 186, // TypedVariables - S_TypedVariable = 187, // TypedVariable - S_AttributedVariable = 188, // AttributedVariable - S_TypedAttributedVariable = 189, // TypedAttributedVariable - S_VariableBindings = 190, // VariableBindings - S_VariableBinding = 191, // VariableBinding - S_LocalFunctionDefinitions = 192, // LocalFunctionDefinitions - S_AttributedLocalFunctionDefinition = 193, // AttributedLocalFunctionDefinition - S_LocalFunctionDefinition = 194, // LocalFunctionDefinition - S_Attributes = 195, // Attributes - S_Attribute = 196, // Attribute - S_BasicAttribute = 197, // BasicAttribute - S_ExpressionAttribute = 198 // ExpressionAttribute + S_FunctionDefinition = 103, // FunctionDefinition + S_EnumeratorDefinition = 104, // EnumeratorDefinition + S_Enumerators = 105, // Enumerators + S_UsingDefinition = 106, // UsingDefinition + S_UsingPathDefinition = 107, // UsingPathDefinition + S_InvariantDefinition = 108, // InvariantDefinition + S_ImportDefinition = 109, // ImportDefinition + S_StructureDefinition = 110, // StructureDefinition + S_StructureDefinitionElement = 111, // StructureDefinitionElement + S_StructureDefinitionList = 112, // StructureDefinitionList + S_FeatureDefinition = 113, // FeatureDefinition + S_FeatureDeclarationOrDefinition = 114, // FeatureDeclarationOrDefinition + S_FeatureDeclarationsAndDefinitions = 115, // FeatureDeclarationsAndDefinitions + S_ImplementationDefinition = 116, // ImplementationDefinition + S_ImplementationDefinitionDefinition = 117, // ImplementationDefinitionDefinition + S_ImplementationDefinitionDefinitions = 118, // ImplementationDefinitionDefinitions + S_DeclarationDefinition = 119, // DeclarationDefinition + S_Rules = 120, // Rules + S_Rule = 121, // Rule + S_SkipRule = 122, // SkipRule + S_ConditionalRule = 123, // ConditionalRule + S_CaseRule = 124, // CaseRule + S_CaseLabels = 125, // CaseLabels + S_CaseLabel = 126, // CaseLabel + S_LetRule = 127, // LetRule + S_LocalRule = 128, // LocalRule + S_ForallRule = 129, // ForallRule + S_ChooseRule = 130, // ChooseRule + S_IterateRule = 131, // IterateRule + S_BlockRule = 132, // BlockRule + S_SequenceRule = 133, // SequenceRule + S_UpdateRule = 134, // UpdateRule + S_CallRule = 135, // CallRule + S_WhileRule = 136, // WhileRule + S_Terms = 137, // Terms + S_Term = 138, // Term + S_SimpleOrClaspedTerm = 139, // SimpleOrClaspedTerm + S_OperatorExpression = 140, // OperatorExpression + S_CallExpression = 141, // CallExpression + S_DirectCallExpression = 142, // DirectCallExpression + S_MethodCallExpression = 143, // MethodCallExpression + S_LiteralCallExpression = 144, // LiteralCallExpression + S_IndirectCallExpression = 145, // IndirectCallExpression + S_TypeCastingExpression = 146, // TypeCastingExpression + S_LetExpression = 147, // LetExpression + S_ConditionalExpression = 148, // ConditionalExpression + S_ChooseExpression = 149, // ChooseExpression + S_UniversalQuantifierExpression = 150, // UniversalQuantifierExpression + S_ExistentialQuantifierExpression = 151, // ExistentialQuantifierExpression + S_CardinalityExpression = 152, // CardinalityExpression + S_Literal = 153, // Literal + S_UndefinedLiteral = 154, // UndefinedLiteral + S_BooleanLiteral = 155, // BooleanLiteral + S_IntegerLiteral = 156, // IntegerLiteral + S_RationalLiteral = 157, // RationalLiteral + S_DecimalLiteral = 158, // DecimalLiteral + S_BinaryLiteral = 159, // BinaryLiteral + S_StringLiteral = 160, // StringLiteral + S_ReferenceLiteral = 161, // ReferenceLiteral + S_ListLiteral = 162, // ListLiteral + S_RangeLiteral = 163, // RangeLiteral + S_TupleLiteral = 164, // TupleLiteral + S_RecordLiteral = 165, // RecordLiteral + S_Assignments = 166, // Assignments + S_Assignment = 167, // Assignment + S_Types = 168, // Types + S_Type = 169, // Type + S_BasicType = 170, // BasicType + S_TupleType = 171, // TupleType + S_RecordType = 172, // RecordType + S_TemplateType = 173, // TemplateType + S_RelationType = 174, // RelationType + S_FixedSizedType = 175, // FixedSizedType + S_FunctionParameters = 176, // FunctionParameters + S_MaybeFunctionParameters = 177, // MaybeFunctionParameters + S_Parameters = 178, // Parameters + S_MaybeDefined = 179, // MaybeDefined + S_MaybeInitially = 180, // MaybeInitially + S_Initializers = 181, // Initializers + S_Initializer = 182, // Initializer + S_Identifier = 183, // Identifier + S_IdentifierPath = 184, // IdentifierPath + S_Variable = 185, // Variable + S_AttributedVariables = 186, // AttributedVariables + S_TypedVariables = 187, // TypedVariables + S_TypedVariable = 188, // TypedVariable + S_AttributedVariable = 189, // AttributedVariable + S_TypedAttributedVariable = 190, // TypedAttributedVariable + S_VariableBindings = 191, // VariableBindings + S_VariableBinding = 192, // VariableBinding + S_LocalFunctionDefinitions = 193, // LocalFunctionDefinitions + S_AttributedLocalFunctionDefinition = 194, // AttributedLocalFunctionDefinition + S_LocalFunctionDefinition = 195, // LocalFunctionDefinition + S_Attributes = 196, // Attributes + S_Attribute = 197, // Attribute + S_BasicAttribute = 198, // BasicAttribute + S_ExpressionAttribute = 199 // ExpressionAttribute }; }; @@ -1381,12 +1383,13 @@ namespace libcasm_fe { break; case symbol_kind::S_FunctionDefinition: // FunctionDefinition + case symbol_kind::S_StructureDefinitionElement: // StructureDefinitionElement case symbol_kind::S_AttributedLocalFunctionDefinition: // AttributedLocalFunctionDefinition case symbol_kind::S_LocalFunctionDefinition: // LocalFunctionDefinition value.move< FunctionDefinition::Ptr > (std::move (that.value)); break; - case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions + case symbol_kind::S_StructureDefinitionList: // StructureDefinitionList case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.move< FunctionDefinitions::Ptr > (std::move (that.value)); break; @@ -3044,12 +3047,13 @@ switch (yykind) break; case symbol_kind::S_FunctionDefinition: // FunctionDefinition + case symbol_kind::S_StructureDefinitionElement: // StructureDefinitionElement case symbol_kind::S_AttributedLocalFunctionDefinition: // AttributedLocalFunctionDefinition case symbol_kind::S_LocalFunctionDefinition: // LocalFunctionDefinition value.template destroy< FunctionDefinition::Ptr > (); break; - case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions + case symbol_kind::S_StructureDefinitionList: // StructureDefinitionList case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.template destroy< FunctionDefinitions::Ptr > (); break; @@ -5174,8 +5178,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 2798, ///< Last index in yytable_. - yynnts_ = 106, ///< Number of nonterminal symbols. + yylast_ = 2781, ///< Last index in yytable_. + yynnts_ = 107, ///< Number of nonterminal symbols. yyfinal_ = 13 ///< Termination state number. }; @@ -5466,12 +5470,13 @@ switch (yykind) break; case symbol_kind::S_FunctionDefinition: // FunctionDefinition + case symbol_kind::S_StructureDefinitionElement: // StructureDefinitionElement case symbol_kind::S_AttributedLocalFunctionDefinition: // AttributedLocalFunctionDefinition case symbol_kind::S_LocalFunctionDefinition: // LocalFunctionDefinition value.copy< FunctionDefinition::Ptr > (YY_MOVE (that.value)); break; - case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions + case symbol_kind::S_StructureDefinitionList: // StructureDefinitionList case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.copy< FunctionDefinitions::Ptr > (YY_MOVE (that.value)); break; @@ -5937,12 +5942,13 @@ switch (yykind) break; case symbol_kind::S_FunctionDefinition: // FunctionDefinition + case symbol_kind::S_StructureDefinitionElement: // StructureDefinitionElement case symbol_kind::S_AttributedLocalFunctionDefinition: // AttributedLocalFunctionDefinition case symbol_kind::S_LocalFunctionDefinition: // LocalFunctionDefinition value.move< FunctionDefinition::Ptr > (YY_MOVE (s.value)); break; - case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions + case symbol_kind::S_StructureDefinitionList: // StructureDefinitionList case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.move< FunctionDefinitions::Ptr > (YY_MOVE (s.value)); break; @@ -6229,7 +6235,7 @@ switch (yykind) #line 51 "../../obj/src/GrammarParser.y" } // libcasm_fe -#line 6233 "GrammarParser.tab.h" +#line 6239 "GrammarParser.tab.h" diff --git a/src/various/GrammarParser.xml b/src/various/GrammarParser.xml index 9526fe74..52d8b471 100644 --- a/src/various/GrammarParser.xml +++ b/src/various/GrammarParser.xml @@ -276,19 +276,6 @@ - FunctionDefinitions - - FunctionDefinitions - FunctionDefinition - - - - FunctionDefinitions - - FunctionDefinition - - - FunctionDefinition "function" @@ -301,26 +288,26 @@ MaybeInitially - + EnumeratorDefinition Identifier - + EnumeratorDefinition Attributes Identifier - + EnumeratorDefinition error - + Enumerators Enumerators @@ -328,13 +315,13 @@ EnumeratorDefinition - + Enumerators EnumeratorDefinition - + UsingDefinition "using" @@ -343,14 +330,14 @@ Type - + UsingPathDefinition "using" IdentifierPath - + UsingPathDefinition "using" @@ -359,7 +346,7 @@ "*" - + InvariantDefinition "invariant" @@ -368,14 +355,14 @@ Term - + ImportDefinition "import" IdentifierPath - + ImportDefinition "import" @@ -384,18 +371,46 @@ Identifier - + StructureDefinition "structure" Identifier "=" "{" - FunctionDefinitions + StructureDefinitionList "}" + + StructureDefinitionElement + + "[" + Attributes + "]" + FunctionDefinition + + + + StructureDefinitionElement + + FunctionDefinition + + + StructureDefinitionList + + StructureDefinitionList + StructureDefinitionElement + + + + StructureDefinitionList + + StructureDefinitionElement + + + FeatureDefinition "feature" @@ -406,38 +421,38 @@ "}" - + FeatureDeclarationOrDefinition DeclarationDefinition - + FeatureDeclarationOrDefinition DerivedDefinition - + FeatureDeclarationOrDefinition RuleDefinition - + FeatureDeclarationsAndDefinitions FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition - + FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition - + ImplementationDefinition "implements" @@ -450,7 +465,7 @@ "}" - + ImplementationDefinition "implements" @@ -461,32 +476,32 @@ "}" - + ImplementationDefinitionDefinition DerivedDefinition - + ImplementationDefinitionDefinition RuleDefinition - + ImplementationDefinitionDefinitions ImplementationDefinitionDefinition ImplementationDefinitionDefinitions - + ImplementationDefinitionDefinitions ImplementationDefinitionDefinition - + DeclarationDefinition "derived" @@ -497,7 +512,7 @@ Type - + DeclarationDefinition "rule" @@ -508,104 +523,104 @@ Type - + Rules Rules Rule - + Rules Rule - + Rule SkipRule - + Rule ConditionalRule - + Rule CaseRule - + Rule LetRule - + Rule LocalRule - + Rule ForallRule - + Rule ChooseRule - + Rule IterateRule - + Rule BlockRule - + Rule SequenceRule - + Rule UpdateRule - + Rule CallRule - + Rule WhileRule - + SkipRule "skip" - + ConditionalRule "if" @@ -614,7 +629,7 @@ Rule - + ConditionalRule "if" @@ -625,7 +640,7 @@ Rule - + CaseRule "case" @@ -636,7 +651,7 @@ "}" - + CaseRule "case" @@ -647,20 +662,20 @@ "}" - + CaseLabels CaseLabels CaseLabel - + CaseLabels CaseLabel - + CaseLabel "default" @@ -668,7 +683,7 @@ Rule - + CaseLabel "_" @@ -676,7 +691,7 @@ Rule - + CaseLabel Term @@ -684,7 +699,7 @@ Rule - + LetRule "let" @@ -693,7 +708,7 @@ Rule - + LocalRule "local" @@ -702,7 +717,7 @@ Rule - + ForallRule "forall" @@ -713,7 +728,7 @@ Rule - + ForallRule "forall" @@ -726,7 +741,7 @@ Rule - + ChooseRule "choose" @@ -737,14 +752,14 @@ Rule - + IterateRule "iterate" Rule - + BlockRule "{" @@ -752,7 +767,7 @@ "}" - + BlockRule "par" @@ -760,7 +775,7 @@ "endpar" - + BlockRule "{" @@ -768,7 +783,7 @@ "}" - + BlockRule "par" @@ -776,7 +791,7 @@ "endpar" - + SequenceRule "{|" @@ -784,7 +799,7 @@ "|}" - + SequenceRule "seq" @@ -792,7 +807,7 @@ "endseq" - + SequenceRule "{|" @@ -800,7 +815,7 @@ "|}" - + SequenceRule "seq" @@ -808,7 +823,7 @@ "endseq" - + UpdateRule DirectCallExpression @@ -816,13 +831,13 @@ Term - + CallRule CallExpression - + WhileRule "while" @@ -831,7 +846,7 @@ Rule - + Terms Terms @@ -839,67 +854,67 @@ Term - + Terms Term - + Term SimpleOrClaspedTerm - + Term TypeCastingExpression - + Term OperatorExpression - + Term LetExpression - + Term ConditionalExpression - + Term ChooseExpression - + Term UniversalQuantifierExpression - + Term ExistentialQuantifierExpression - + Term CardinalityExpression - + SimpleOrClaspedTerm "(" @@ -907,7 +922,7 @@ ")" - + SimpleOrClaspedTerm "(" @@ -915,39 +930,39 @@ ")" - + SimpleOrClaspedTerm CallExpression - + SimpleOrClaspedTerm LiteralCallExpression - + SimpleOrClaspedTerm Literal - + SimpleOrClaspedTerm "+" SimpleOrClaspedTerm - + SimpleOrClaspedTerm "-" SimpleOrClaspedTerm - + OperatorExpression Term @@ -955,7 +970,7 @@ Term - + OperatorExpression Term @@ -963,7 +978,7 @@ Term - + OperatorExpression Term @@ -971,7 +986,7 @@ Term - + OperatorExpression Term @@ -979,7 +994,7 @@ Term - + OperatorExpression Term @@ -987,7 +1002,7 @@ Term - + OperatorExpression Term @@ -995,7 +1010,7 @@ Term - + OperatorExpression Term @@ -1003,7 +1018,7 @@ Term - + OperatorExpression Term @@ -1011,7 +1026,7 @@ Term - + OperatorExpression Term @@ -1019,7 +1034,7 @@ Term - + OperatorExpression Term @@ -1027,7 +1042,7 @@ Term - + OperatorExpression Term @@ -1035,7 +1050,7 @@ Term - + OperatorExpression Term @@ -1043,7 +1058,7 @@ Term - + OperatorExpression Term @@ -1051,7 +1066,7 @@ Term - + OperatorExpression Term @@ -1059,7 +1074,7 @@ Term - + OperatorExpression Term @@ -1067,7 +1082,7 @@ Term - + OperatorExpression Term @@ -1075,7 +1090,7 @@ Term - + OperatorExpression Term @@ -1083,38 +1098,38 @@ Term - + OperatorExpression "not" Term - + CallExpression DirectCallExpression - + CallExpression MethodCallExpression - + CallExpression IndirectCallExpression - + DirectCallExpression IdentifierPath - + DirectCallExpression IdentifierPath @@ -1122,7 +1137,7 @@ ")" - + DirectCallExpression IdentifierPath @@ -1131,7 +1146,7 @@ ")" - + DirectCallExpression IdentifierPath @@ -1140,7 +1155,7 @@ ")" - + MethodCallExpression SimpleOrClaspedTerm @@ -1148,7 +1163,7 @@ Identifier - + MethodCallExpression SimpleOrClaspedTerm @@ -1158,7 +1173,7 @@ ")" - + MethodCallExpression SimpleOrClaspedTerm @@ -1169,7 +1184,7 @@ ")" - + MethodCallExpression SimpleOrClaspedTerm @@ -1180,7 +1195,7 @@ ")" - + LiteralCallExpression SimpleOrClaspedTerm @@ -1188,7 +1203,7 @@ IntegerLiteral - + IndirectCallExpression CallExpression @@ -1196,7 +1211,7 @@ ")" - + IndirectCallExpression CallExpression @@ -1205,7 +1220,7 @@ ")" - + IndirectCallExpression CallExpression @@ -1214,7 +1229,7 @@ ")" - + TypeCastingExpression SimpleOrClaspedTerm @@ -1222,7 +1237,7 @@ Type - + LetExpression "let" @@ -1231,7 +1246,7 @@ Term - + ConditionalExpression "if" @@ -1242,7 +1257,7 @@ Term - + ChooseExpression "choose" @@ -1253,7 +1268,7 @@ Term - + UniversalQuantifierExpression "forall" @@ -1264,7 +1279,7 @@ Term - + ExistentialQuantifierExpression "exists" @@ -1275,7 +1290,7 @@ Term - + CardinalityExpression "|" @@ -1283,147 +1298,147 @@ "|" - + Literal UndefinedLiteral - + Literal BooleanLiteral - + Literal IntegerLiteral - + Literal RationalLiteral - + Literal DecimalLiteral - + Literal BinaryLiteral - + Literal StringLiteral - + Literal ReferenceLiteral - + Literal ListLiteral - + Literal RangeLiteral - + Literal TupleLiteral - + Literal RecordLiteral - + UndefinedLiteral "undef" - + BooleanLiteral "true" - + BooleanLiteral "false" - + IntegerLiteral "integer" - + RationalLiteral "rational" - + DecimalLiteral "decimal" - + BinaryLiteral "binary" - + BinaryLiteral "hexadecimal" - + StringLiteral "string" - + ReferenceLiteral "@" IdentifierPath - + ListLiteral "[" "]" - + ListLiteral "[" @@ -1431,7 +1446,7 @@ "]" - + ListLiteral "[" @@ -1439,7 +1454,7 @@ "]" - + RangeLiteral "[" @@ -1449,7 +1464,7 @@ "]" - + TupleLiteral "(" @@ -1459,7 +1474,7 @@ ")" - + RecordLiteral "(" @@ -1467,7 +1482,7 @@ ")" - + Assignments Assignments @@ -1475,13 +1490,13 @@ Assignment - + Assignments Assignment - + Assignment Identifier @@ -1489,7 +1504,7 @@ Term - + Types Types @@ -1497,55 +1512,55 @@ Type - + Types Type - + Type BasicType - + Type TupleType - + Type RecordType - + Type TemplateType - + Type RelationType - + Type FixedSizedType - + BasicType IdentifierPath - + TupleType "(" @@ -1555,7 +1570,7 @@ ")" - + RecordType "(" @@ -1565,7 +1580,7 @@ ")" - + TemplateType IdentifierPath @@ -1574,7 +1589,7 @@ ">" - + RelationType IdentifierPath @@ -1585,7 +1600,7 @@ ">" - + FixedSizedType IdentifierPath @@ -1593,7 +1608,7 @@ Term - + FunctionParameters FunctionParameters @@ -1601,25 +1616,25 @@ Type - + FunctionParameters Type - + MaybeFunctionParameters FunctionParameters - + MaybeFunctionParameters - + Parameters Parameters @@ -1627,13 +1642,13 @@ TypedAttributedVariable - + Parameters TypedAttributedVariable - + MaybeDefined "defined" @@ -1642,13 +1657,13 @@ "}" - + MaybeDefined - + MaybeInitially "=" @@ -1657,13 +1672,13 @@ "}" - + MaybeInitially - + Initializers Initializers @@ -1671,19 +1686,19 @@ Initializer - + Initializers Initializer - + Initializer Term - + Initializer "(" @@ -1693,7 +1708,7 @@ Term - + Initializer TupleLiteral @@ -1701,19 +1716,19 @@ Term - + Identifier "identifier" - + Identifier "in" - + IdentifierPath IdentifierPath @@ -1721,25 +1736,25 @@ Identifier - + IdentifierPath Identifier - + Variable TypedVariable - + Variable Identifier - + AttributedVariables AttributedVariables @@ -1747,13 +1762,13 @@ AttributedVariable - + AttributedVariables AttributedVariable - + TypedVariables TypedVariables @@ -1761,13 +1776,13 @@ TypedVariable - + TypedVariables TypedVariable - + TypedVariable Identifier @@ -1775,33 +1790,33 @@ Type - + AttributedVariable Attributes Variable - + AttributedVariable Variable - + TypedAttributedVariable Attributes TypedVariable - + TypedAttributedVariable TypedVariable - + VariableBindings VariableBindings @@ -1809,13 +1824,13 @@ VariableBinding - + VariableBindings VariableBinding - + VariableBinding AttributedVariable @@ -1823,7 +1838,7 @@ Term - + LocalFunctionDefinitions LocalFunctionDefinitions @@ -1831,32 +1846,32 @@ AttributedLocalFunctionDefinition - + LocalFunctionDefinitions AttributedLocalFunctionDefinition - + AttributedLocalFunctionDefinition Attributes LocalFunctionDefinition - + AttributedLocalFunctionDefinition LocalFunctionDefinition - + AttributedLocalFunctionDefinition error - + LocalFunctionDefinition Identifier @@ -1868,20 +1883,20 @@ MaybeInitially - + Attributes Attributes Attribute - + Attributes Attribute - + Attribute "[" @@ -1889,7 +1904,7 @@ "]" - + Attribute "[" @@ -1897,7 +1912,7 @@ "]" - + Attribute "[" @@ -1905,19 +1920,32 @@ "]" - + BasicAttribute Identifier - + ExpressionAttribute Identifier Term + + FunctionDefinitions + + FunctionDefinitions + FunctionDefinition + + + + FunctionDefinitions + + FunctionDefinition + + @@ -2024,102 +2052,104 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2131,11 +2161,11 @@ - - + + @@ -2168,13 +2198,13 @@ - - - - + + - - + + + + @@ -2237,22 +2267,22 @@ - + + + - - - - - - - + + + + + @@ -2296,10 +2326,10 @@ - - - + + + @@ -2315,13 +2345,13 @@ - + - + @@ -2329,7 +2359,7 @@ - + @@ -2343,13 +2373,13 @@ - + - + @@ -2357,13 +2387,13 @@ - + - + @@ -2371,8 +2401,6 @@ - - @@ -2455,16 +2483,18 @@ - - + + - + + + "]" - + @@ -2524,7 +2554,7 @@ - + @@ -2532,7 +2562,7 @@ - + @@ -2546,7 +2576,7 @@ - + @@ -2590,10 +2620,10 @@ - - + + @@ -2614,8 +2644,8 @@ - - + + @@ -2632,8 +2662,8 @@ - - + + @@ -2655,8 +2685,8 @@ - - + + @@ -2672,13 +2702,13 @@ + + - - - - + + @@ -2695,9 +2725,9 @@ - - - + + + @@ -2713,12 +2743,12 @@ - - - - + + + + @@ -2735,9 +2765,9 @@ - - - + + + @@ -2753,9 +2783,9 @@ - - - + + + @@ -2771,10 +2801,8 @@ - - - - + + @@ -2785,10 +2813,12 @@ - - + + + + @@ -2813,9 +2843,9 @@ - - - + + + @@ -2864,22 +2894,22 @@ - + + + - - - - - - - + + + + + @@ -3144,21 +3174,21 @@ - + + + - - - - - - - - + + + + + + @@ -3211,13 +3241,13 @@ - + - + @@ -3225,36 +3255,36 @@ - + - + - - - - - - - - - - - + + + + + + + + + - - + + - - + + + + @@ -3278,21 +3308,21 @@ - - - - - + + + - - + + - - + + + + @@ -3315,21 +3345,21 @@ - - - - - + + + - - + + - - + + + + @@ -3352,8 +3382,6 @@ - - @@ -3404,9 +3432,9 @@ - + @@ -3437,10 +3465,12 @@ - - + + + + @@ -3506,21 +3536,21 @@ - - - - - + + + - - + + - - + + + + @@ -3543,13 +3573,13 @@ - + - + @@ -3557,13 +3587,13 @@ - + - + @@ -3571,13 +3601,13 @@ - + - + @@ -3585,8 +3615,6 @@ - - @@ -3619,9 +3647,9 @@ - + @@ -3670,10 +3698,12 @@ - - + + + + @@ -3739,16 +3769,14 @@ - - - - - + + + @@ -3762,8 +3790,8 @@ - - + + @@ -3790,10 +3818,12 @@ - - + + + + @@ -3843,16 +3873,14 @@ - - - - - + + + @@ -3866,8 +3894,8 @@ - - + + @@ -3894,10 +3922,12 @@ - - + + + + @@ -3947,8 +3977,6 @@ - - @@ -3959,11 +3987,11 @@ - - + + @@ -4034,16 +4062,18 @@ - - + + - - + + + + @@ -4113,8 +4143,6 @@ - - @@ -4194,19 +4222,21 @@ - - + - - + + + + + @@ -4275,15 +4305,13 @@ - - - - + + @@ -4297,9 +4325,9 @@ - - - + + + @@ -4326,10 +4354,12 @@ - - + + + + @@ -4379,11 +4409,11 @@ - - - + + + @@ -4400,13 +4430,13 @@ - + - + @@ -4414,13 +4444,13 @@ - + - + @@ -4428,13 +4458,13 @@ - + - + @@ -4442,13 +4472,13 @@ - + - + @@ -4456,13 +4486,13 @@ - + - + @@ -4470,13 +4500,13 @@ - + - + @@ -4484,8 +4514,6 @@ - - @@ -4501,7 +4529,9 @@ - + + + "]" @@ -4529,7 +4559,7 @@ - + @@ -4537,7 +4567,7 @@ - + "end of file" error @@ -4620,12 +4650,12 @@ "identifier" - - - + + + @@ -4634,7 +4664,7 @@ - + @@ -4642,13 +4672,13 @@ - + - + @@ -4656,7 +4686,7 @@ - + "end of file" error @@ -4740,9 +4770,9 @@ "identifier" - - + + @@ -4750,23 +4780,23 @@ - + - CALL < "(" + CALL < "(" - + - + @@ -4774,13 +4804,13 @@ - + - + @@ -4788,13 +4818,13 @@ - + - + @@ -4802,13 +4832,13 @@ - + - + @@ -4816,13 +4846,13 @@ - + - + @@ -4830,13 +4860,13 @@ - + - + @@ -4844,13 +4874,13 @@ - + - + @@ -4858,13 +4888,13 @@ - + - + @@ -4872,13 +4902,13 @@ - + - + @@ -4886,13 +4916,13 @@ - + - + @@ -4900,13 +4930,13 @@ - + - + @@ -4914,13 +4944,13 @@ - + - + @@ -4928,13 +4958,13 @@ - + - + @@ -4942,13 +4972,13 @@ - + - + @@ -4956,13 +4986,13 @@ - + - + @@ -4970,13 +5000,13 @@ - + - + @@ -4984,13 +5014,13 @@ - + - + @@ -4998,13 +5028,13 @@ - + - + @@ -5012,13 +5042,13 @@ - + - + @@ -5026,13 +5056,13 @@ - + - + @@ -5040,13 +5070,13 @@ - + - + @@ -5054,13 +5084,13 @@ - + - + @@ -5068,13 +5098,13 @@ - + - + @@ -5082,13 +5112,13 @@ - + - + @@ -5096,13 +5126,13 @@ - + - + @@ -5110,7 +5140,7 @@ - + "end of file" error @@ -5195,10 +5225,10 @@ "identifier" - - - + + + @@ -5207,23 +5237,23 @@ - + - CALL_WITHOUT_ARGS < "(" + CALL_WITHOUT_ARGS < "(" - + - + @@ -5231,13 +5261,13 @@ - + - + @@ -5246,8 +5276,6 @@ - - @@ -5330,8 +5358,8 @@ - - + + @@ -5339,6 +5367,8 @@ + + @@ -5424,7 +5454,7 @@ "[" - + @@ -5492,8 +5522,8 @@ - - + + "end of file" error @@ -5519,7 +5549,7 @@ - + @@ -5527,7 +5557,7 @@ - + "end of file" error @@ -5545,8 +5575,8 @@ "[" - - + + @@ -5554,7 +5584,7 @@ - + @@ -5562,7 +5592,7 @@ - + @@ -5576,7 +5606,7 @@ - + "end of file" error @@ -5594,8 +5624,8 @@ "[" - - + + @@ -5604,7 +5634,7 @@ - + @@ -5612,7 +5642,7 @@ - + @@ -5626,7 +5656,7 @@ - + @@ -5640,8 +5670,6 @@ - - @@ -5650,19 +5678,21 @@ - - + + - - + + - - + + + + @@ -5690,7 +5720,7 @@ - + @@ -5704,13 +5734,13 @@ - + - + @@ -5718,13 +5748,13 @@ - + - + @@ -5732,13 +5762,13 @@ - + - + @@ -5746,13 +5776,13 @@ - + - + @@ -5760,13 +5790,13 @@ - + - + @@ -5774,13 +5804,13 @@ - + - + @@ -5788,16 +5818,16 @@ - - + + "=" - - - + + + @@ -5808,7 +5838,7 @@ - + @@ -5816,7 +5846,7 @@ - + @@ -5858,14 +5888,14 @@ - + "in" "=" "," - + @@ -5873,7 +5903,7 @@ - + @@ -5881,13 +5911,13 @@ - + - + @@ -5895,13 +5925,13 @@ - + - + @@ -5909,7 +5939,7 @@ - + @@ -5923,8 +5953,8 @@ - - + + @@ -5939,13 +5969,13 @@ - + - + @@ -5953,16 +5983,16 @@ - - - - - - - - - + + + + + + + + + @@ -5982,8 +6012,8 @@ - - + + @@ -5998,13 +6028,13 @@ - + - + @@ -6012,8 +6042,8 @@ - - + + @@ -6028,8 +6058,6 @@ - - @@ -6045,7 +6073,9 @@ - + + + @@ -6076,8 +6106,8 @@ - - + + @@ -6092,8 +6122,6 @@ - - @@ -6109,7 +6137,9 @@ - + + + "end of file" error @@ -6197,33 +6227,33 @@ - + - "and" < "not" - "or" < "not" - "xor" < "not" - "implies" < "not" - "+" < "not" - "-" < "not" - "=" < "not" - "<" < "not" - ">" < "not" - "*" < "not" - "/" < "not" - "%" < "not" - "^" < "not" - "=>" < "not" - "!=" < "not" - "<=" < "not" - ">=" < "not" + "and" < "not" + "or" < "not" + "xor" < "not" + "implies" < "not" + "+" < "not" + "-" < "not" + "=" < "not" + "<" < "not" + ">" < "not" + "*" < "not" + "/" < "not" + "%" < "not" + "^" < "not" + "=>" < "not" + "!=" < "not" + "<=" < "not" + ">=" < "not" - + "end of file" error @@ -6308,27 +6338,27 @@ "identifier" - - + + - + - "." < UPLUS + "." < UPLUS - + "end of file" error @@ -6413,27 +6443,27 @@ "identifier" - - + + - + - "." < UMINUS + "." < UMINUS - + @@ -6447,8 +6477,8 @@ - - + + @@ -6462,14 +6492,12 @@ - + "," - - - + @@ -6485,6 +6513,8 @@ + + @@ -6509,7 +6539,7 @@ - + @@ -6517,8 +6547,8 @@ - - + + @@ -6533,13 +6563,13 @@ - + - + @@ -6547,8 +6577,8 @@ - - + + "as" "and" @@ -6582,7 +6612,7 @@ - + @@ -6590,7 +6620,7 @@ - + @@ -6604,13 +6634,13 @@ - + - + @@ -6618,8 +6648,8 @@ - - + + @@ -6634,14 +6664,12 @@ - + "]" "," - - @@ -6657,7 +6685,9 @@ - + + + @@ -6682,7 +6712,7 @@ - + @@ -6690,12 +6720,12 @@ - - - + + + @@ -6710,7 +6740,7 @@ - + "end of file" error @@ -6795,7 +6825,7 @@ "identifier" - + @@ -6803,7 +6833,7 @@ - + @@ -6811,8 +6841,6 @@ - - @@ -6842,9 +6870,9 @@ - + @@ -6896,10 +6924,12 @@ - - + + + + @@ -6965,8 +6995,6 @@ - - @@ -6994,9 +7022,9 @@ - + @@ -7050,10 +7078,12 @@ - - + + + + @@ -7119,8 +7149,6 @@ - - @@ -7149,9 +7177,9 @@ - + @@ -7204,10 +7232,12 @@ - - + + + + @@ -7273,8 +7303,6 @@ - - @@ -7306,9 +7334,9 @@ - + @@ -7358,10 +7386,12 @@ - - + + + + @@ -7427,8 +7457,6 @@ - - @@ -7444,9 +7472,9 @@ - + @@ -7512,10 +7540,12 @@ - - + + + + @@ -7581,8 +7611,6 @@ - - @@ -7599,9 +7627,9 @@ - + @@ -7666,10 +7694,12 @@ - - + + + + @@ -7735,8 +7765,6 @@ - - @@ -7759,9 +7787,9 @@ - + @@ -7820,10 +7848,12 @@ - - + + + + @@ -7889,8 +7919,6 @@ - - @@ -7914,9 +7942,9 @@ - + @@ -7974,10 +8002,12 @@ - - + + + + @@ -8043,8 +8073,6 @@ - - @@ -8069,9 +8097,9 @@ - + @@ -8128,10 +8156,12 @@ - - + + + + @@ -8197,8 +8227,6 @@ - - @@ -8216,9 +8244,9 @@ - + @@ -8282,10 +8310,12 @@ - - + + + + @@ -8351,8 +8381,6 @@ - - @@ -8371,9 +8399,9 @@ - + @@ -8436,10 +8464,12 @@ - - + + + + @@ -8505,8 +8535,6 @@ - - @@ -8526,9 +8554,9 @@ - + @@ -8590,10 +8618,12 @@ - - + + + + @@ -8659,8 +8689,6 @@ - - @@ -8681,9 +8709,9 @@ - + @@ -8744,10 +8772,12 @@ - - + + + + @@ -8813,8 +8843,6 @@ - - @@ -8845,9 +8873,9 @@ - + @@ -8898,10 +8926,12 @@ - - + + + + @@ -8967,8 +8997,6 @@ - - @@ -8990,9 +9018,9 @@ - + @@ -9052,10 +9080,12 @@ - - + + + + @@ -9121,8 +9151,6 @@ - - @@ -9148,9 +9176,9 @@ - + @@ -9206,10 +9234,12 @@ - - + + + + @@ -9275,8 +9305,6 @@ - - @@ -9303,9 +9331,9 @@ - + @@ -9360,10 +9388,12 @@ - - + + + + @@ -9429,9 +9459,7 @@ - - - + @@ -9442,10 +9470,12 @@ - - + + + + @@ -9470,14 +9500,14 @@ - - - - - + + + + + @@ -9495,8 +9525,6 @@ - - @@ -9544,13 +9572,13 @@ - - + + @@ -9584,10 +9612,12 @@ - - + + + + @@ -9656,8 +9686,6 @@ - - @@ -9697,13 +9725,13 @@ - - + + @@ -9745,10 +9773,12 @@ - - + + + + @@ -9817,9 +9847,9 @@ - - - + + + @@ -9835,8 +9865,6 @@ - - @@ -9847,11 +9875,11 @@ - - + + @@ -9922,17 +9950,19 @@ - - + - - - - + + + + + + + @@ -10002,8 +10032,6 @@ - - @@ -10019,7 +10047,9 @@ - + + + "}" "," @@ -10048,7 +10078,7 @@ - + @@ -10056,7 +10086,7 @@ - + "as" "and" @@ -10081,7 +10111,7 @@ ">=" - + @@ -10089,7 +10119,7 @@ - + @@ -10098,7 +10128,7 @@ - + @@ -10113,13 +10143,13 @@ - + - + @@ -10129,18 +10159,18 @@ - - - - - - - - - + + + + + + + + + @@ -10164,8 +10194,6 @@ - - @@ -10176,10 +10204,12 @@ - - + + + + @@ -10219,8 +10249,6 @@ - - @@ -10237,8 +10265,8 @@ - - + + @@ -10254,15 +10282,15 @@ - - + + - - + + @@ -10276,8 +10304,8 @@ - - + + @@ -10304,10 +10332,12 @@ - - + + + + @@ -10388,18 +10418,18 @@ - - - - - - - - - + + + + + + + + + @@ -10423,8 +10453,6 @@ - - @@ -10435,10 +10463,12 @@ - - + + + + @@ -10463,9 +10493,7 @@ - - - + @@ -10476,10 +10504,12 @@ - - + + + + @@ -10504,10 +10534,10 @@ - - - - + + + + @@ -10524,9 +10554,7 @@ - - - + @@ -10609,10 +10637,12 @@ - - + + + + @@ -10678,9 +10708,9 @@ - - - + + + @@ -10696,7 +10726,7 @@ - + @@ -10710,7 +10740,7 @@ - + @@ -10724,8 +10754,8 @@ - - + + @@ -10739,13 +10769,13 @@ - + - + @@ -10753,7 +10783,7 @@ - + "::" "," @@ -10761,7 +10791,7 @@ "'" - + @@ -10769,7 +10799,7 @@ - + @@ -10777,7 +10807,7 @@ - + "end of file" error @@ -10859,10 +10889,10 @@ "identifier" - - - + + + @@ -10872,18 +10902,18 @@ - + - BASIC_TYPE < "<" + BASIC_TYPE < "<" - - + + @@ -10897,13 +10927,13 @@ - + - + @@ -10911,7 +10941,7 @@ - + @@ -10925,9 +10955,7 @@ - - - + @@ -10938,10 +10966,12 @@ - - + + + + @@ -10966,8 +10996,6 @@ - - @@ -10978,22 +11006,24 @@ - - + + - + + + "->" - - + + @@ -11015,7 +11045,7 @@ - + @@ -11023,8 +11053,6 @@ - - @@ -11107,11 +11135,13 @@ - - - + + + + + @@ -11177,9 +11207,7 @@ - - - + @@ -11193,15 +11221,17 @@ - + + + "->" - - + + @@ -11222,7 +11252,7 @@ - + @@ -11230,8 +11260,6 @@ - - @@ -11242,11 +11270,13 @@ - - + + - + + + @@ -11271,8 +11301,6 @@ - - @@ -11355,11 +11383,13 @@ - - + + - + + + @@ -11425,8 +11455,6 @@ - - @@ -11476,9 +11504,9 @@ - + @@ -11510,10 +11538,12 @@ - - + + + + @@ -11579,20 +11609,20 @@ - - - - - - + + + + - - - - + + + + + + @@ -11615,13 +11645,13 @@ - + - + @@ -11629,8 +11659,6 @@ - - @@ -11683,9 +11711,9 @@ - + @@ -11714,10 +11742,12 @@ - - + + + + @@ -11782,20 +11812,20 @@ - - - - - - - - + + + + + + - - + + + + @@ -11817,8 +11847,6 @@ - - @@ -11870,9 +11898,9 @@ - + @@ -11902,10 +11930,12 @@ - - + + + + @@ -11971,8 +12001,6 @@ - - @@ -12023,9 +12051,9 @@ - + @@ -12056,10 +12084,12 @@ - - + + + + @@ -12125,8 +12155,6 @@ - - @@ -12180,9 +12208,9 @@ - + @@ -12210,10 +12238,12 @@ - - + + + + @@ -12279,13 +12309,13 @@ - + - + @@ -12293,9 +12323,7 @@ - - - + @@ -12377,12 +12405,14 @@ - - - + + + + + @@ -12448,13 +12478,13 @@ - + - + @@ -12462,13 +12492,13 @@ - + - + @@ -12476,10 +12506,10 @@ - - - - + + + + @@ -12496,8 +12526,6 @@ - - @@ -12580,11 +12608,13 @@ - - - + + + + + @@ -12650,13 +12680,13 @@ - + - + @@ -12664,13 +12694,13 @@ - + - + @@ -12678,9 +12708,7 @@ - - - + @@ -12763,10 +12791,12 @@ - - + + + + @@ -12832,8 +12862,6 @@ - - @@ -12914,13 +12942,15 @@ - - - + + + + + @@ -12986,13 +13016,13 @@ - + - + @@ -13000,8 +13030,6 @@ - - @@ -13015,7 +13043,9 @@ - + + + "end of file" error @@ -13086,8 +13116,8 @@ "identifier" - - + + @@ -13106,34 +13136,32 @@ - + - %left "and" - "or" < "and" - "xor" < "and" - "implies" < "and" - "and" < "+" - "and" < "-" - "and" < "=" - "and" < "<" - "and" < ">" - "and" < "*" - "and" < "/" - "and" < "%" - "and" < "^" - "=>" < "and" - "and" < "!=" - "and" < "<=" - "and" < ">=" + %left "and" + "or" < "and" + "xor" < "and" + "implies" < "and" + "and" < "+" + "and" < "-" + "and" < "=" + "and" < "<" + "and" < ">" + "and" < "*" + "and" < "/" + "and" < "%" + "and" < "^" + "=>" < "and" + "and" < "!=" + "and" < "<=" + "and" < ">=" - - @@ -13145,7 +13173,9 @@ - + + + "end of file" error @@ -13214,10 +13244,10 @@ "identifier" - - + + @@ -13238,34 +13268,32 @@ - + - "or" < "and" - %left "or" - "or" < "xor" - "implies" < "or" - "or" < "+" - "or" < "-" - "or" < "=" - "or" < "<" - "or" < ">" - "or" < "*" - "or" < "/" - "or" < "%" - "or" < "^" - "=>" < "or" - "or" < "!=" - "or" < "<=" - "or" < ">=" + "or" < "and" + %left "or" + "or" < "xor" + "implies" < "or" + "or" < "+" + "or" < "-" + "or" < "=" + "or" < "<" + "or" < ">" + "or" < "*" + "or" < "/" + "or" < "%" + "or" < "^" + "=>" < "or" + "or" < "!=" + "or" < "<=" + "or" < ">=" - - @@ -13278,7 +13306,9 @@ - + + + "end of file" error @@ -13348,9 +13378,9 @@ "identifier" - - + + @@ -13370,34 +13400,32 @@ - + - "xor" < "and" - "or" < "xor" - %left "xor" - "implies" < "xor" - "xor" < "+" - "xor" < "-" - "xor" < "=" - "xor" < "<" - "xor" < ">" - "xor" < "*" - "xor" < "/" - "xor" < "%" - "xor" < "^" - "=>" < "xor" - "xor" < "!=" - "xor" < "<=" - "xor" < ">=" + "xor" < "and" + "or" < "xor" + %left "xor" + "implies" < "xor" + "xor" < "+" + "xor" < "-" + "xor" < "=" + "xor" < "<" + "xor" < ">" + "xor" < "*" + "xor" < "/" + "xor" < "%" + "xor" < "^" + "=>" < "xor" + "xor" < "!=" + "xor" < "<=" + "xor" < ">=" - - @@ -13413,7 +13441,9 @@ - + + + "end of file" error @@ -13502,34 +13532,34 @@ - + - "implies" < "and" - "implies" < "or" - "implies" < "xor" - %left "implies" - "implies" < "+" - "implies" < "-" - "implies" < "=" - "implies" < "<" - "implies" < ">" - "implies" < "*" - "implies" < "/" - "implies" < "%" - "implies" < "^" - %left "=>" - "implies" < "!=" - "implies" < "<=" - "implies" < ">=" + "implies" < "and" + "implies" < "or" + "implies" < "xor" + %left "implies" + "implies" < "+" + "implies" < "-" + "implies" < "=" + "implies" < "<" + "implies" < ">" + "implies" < "*" + "implies" < "/" + "implies" < "%" + "implies" < "^" + %left "=>" + "implies" < "!=" + "implies" < "<=" + "implies" < ">=" - - + + "end of file" error @@ -13608,8 +13638,6 @@ "identifier" - - @@ -13624,6 +13652,8 @@ + + @@ -13634,35 +13664,35 @@ - + - "and" < "+" - "or" < "+" - "xor" < "+" - "implies" < "+" - %left "+" - %left "-" - "=" < "+" - "<" < "+" - ">" < "+" - "+" < "*" - "+" < "/" - "+" < "%" - "+" < "^" - "=>" < "+" - "!=" < "+" - "<=" < "+" - ">=" < "+" + "and" < "+" + "or" < "+" + "xor" < "+" + "implies" < "+" + %left "+" + %left "-" + "=" < "+" + "<" < "+" + ">" < "+" + "+" < "*" + "+" < "/" + "+" < "%" + "+" < "^" + "=>" < "+" + "!=" < "+" + "<=" < "+" + ">=" < "+" - - - + + + "end of file" error @@ -13741,8 +13771,6 @@ "identifier" - - @@ -13756,6 +13784,8 @@ + + @@ -13766,41 +13796,41 @@ - + - "and" < "-" - "or" < "-" - "xor" < "-" - "implies" < "-" - %left "+" - %left "-" - "=" < "-" - "<" < "-" - ">" < "-" - "-" < "*" - "-" < "/" - "-" < "%" - "-" < "^" - "=>" < "-" - "!=" < "-" - "<=" < "-" - ">=" < "-" + "and" < "-" + "or" < "-" + "xor" < "-" + "implies" < "-" + %left "+" + %left "-" + "=" < "-" + "<" < "-" + ">" < "-" + "-" < "*" + "-" < "/" + "-" < "%" + "-" < "^" + "=>" < "-" + "!=" < "-" + "<=" < "-" + ">=" < "-" - - - + + + "end of file" error @@ -13873,8 +13903,6 @@ "identifier" - - @@ -13882,6 +13910,8 @@ + + @@ -13898,34 +13928,32 @@ - + - "and" < "=" - "or" < "=" - "xor" < "=" - "implies" < "=" - "=" < "+" - "=" < "-" - %left "=" - "=" < "<" - "=" < ">" - "=" < "*" - "=" < "/" - "=" < "%" - "=" < "^" - "=>" < "=" - %left "!=" - "=" < "<=" - "=" < ">=" + "and" < "=" + "or" < "=" + "xor" < "=" + "implies" < "=" + "=" < "+" + "=" < "-" + %left "=" + "=" < "<" + "=" < ">" + "=" < "*" + "=" < "/" + "=" < "%" + "=" < "^" + "=>" < "=" + %left "!=" + "=" < "<=" + "=" < ">=" - - @@ -13933,7 +13961,9 @@ - + + + "end of file" error @@ -14010,14 +14040,14 @@ "identifier" - - + + @@ -14030,34 +14060,32 @@ - + - "and" < "<" - "or" < "<" - "xor" < "<" - "implies" < "<" - "<" < "+" - "<" < "-" - "=" < "<" - %left "<" - %left ">" - "<" < "*" - "<" < "/" - "<" < "%" - "<" < "^" - "=>" < "<" - "!=" < "<" - %left "<=" - %left ">=" + "and" < "<" + "or" < "<" + "xor" < "<" + "implies" < "<" + "<" < "+" + "<" < "-" + "=" < "<" + %left "<" + %left ">" + "<" < "*" + "<" < "/" + "<" < "%" + "<" < "^" + "=>" < "<" + "!=" < "<" + %left "<=" + %left ">=" - - @@ -14066,7 +14094,9 @@ - + + + "end of file" error @@ -14143,13 +14173,13 @@ "identifier" - - + + @@ -14162,36 +14192,36 @@ - + - "and" < ">" - "or" < ">" - "xor" < ">" - "implies" < ">" - ">" < "+" - ">" < "-" - "=" < ">" - %left "<" - %left ">" - ">" < "*" - ">" < "/" - ">" < "%" - ">" < "^" - "=>" < ">" - "!=" < ">" - %left "<=" - %left ">=" + "and" < ">" + "or" < ">" + "xor" < ">" + "implies" < ">" + ">" < "+" + ">" < "-" + "=" < ">" + %left "<" + %left ">" + ">" < "*" + ">" < "/" + ">" < "%" + ">" < "^" + "=>" < ">" + "!=" < ">" + %left "<=" + %left ">=" - - - + + + "end of file" error @@ -14273,8 +14303,6 @@ "identifier" - - @@ -14287,6 +14315,8 @@ + + @@ -14294,37 +14324,37 @@ - + - "and" < "*" - "or" < "*" - "xor" < "*" - "implies" < "*" - "+" < "*" - "-" < "*" - "=" < "*" - "<" < "*" - ">" < "*" - %left "*" - %left "/" - %left "%" - "*" < "^" - "=>" < "*" - "!=" < "*" - "<=" < "*" - ">=" < "*" + "and" < "*" + "or" < "*" + "xor" < "*" + "implies" < "*" + "+" < "*" + "-" < "*" + "=" < "*" + "<" < "*" + ">" < "*" + %left "*" + %left "/" + %left "%" + "*" < "^" + "=>" < "*" + "!=" < "*" + "<=" < "*" + ">=" < "*" - - - + + + "end of file" error @@ -14406,8 +14436,6 @@ "identifier" - - @@ -14419,6 +14447,8 @@ + + @@ -14426,38 +14456,38 @@ - + - "and" < "/" - "or" < "/" - "xor" < "/" - "implies" < "/" - "+" < "/" - "-" < "/" - "=" < "/" - "<" < "/" - ">" < "/" - %left "*" - %left "/" - %left "%" - "/" < "^" - "=>" < "/" - "!=" < "/" - "<=" < "/" - ">=" < "/" + "and" < "/" + "or" < "/" + "xor" < "/" + "implies" < "/" + "+" < "/" + "-" < "/" + "=" < "/" + "<" < "/" + ">" < "/" + %left "*" + %left "/" + %left "%" + "/" < "^" + "=>" < "/" + "!=" < "/" + "<=" < "/" + ">=" < "/" - - - + + + "end of file" error @@ -14539,8 +14569,6 @@ "identifier" - - @@ -14551,6 +14579,8 @@ + + @@ -14558,39 +14588,39 @@ - + - "and" < "%" - "or" < "%" - "xor" < "%" - "implies" < "%" - "+" < "%" - "-" < "%" - "=" < "%" - "<" < "%" - ">" < "%" - %left "*" - %left "/" - %left "%" - "%" < "^" - "=>" < "%" - "!=" < "%" - "<=" < "%" - ">=" < "%" + "and" < "%" + "or" < "%" + "xor" < "%" + "implies" < "%" + "+" < "%" + "-" < "%" + "=" < "%" + "<" < "%" + ">" < "%" + %left "*" + %left "/" + %left "%" + "%" < "^" + "=>" < "%" + "!=" < "%" + "<=" < "%" + ">=" < "%" - - - + + + "end of file" error @@ -14673,8 +14703,6 @@ "identifier" - - @@ -14684,39 +14712,39 @@ + + - + - "and" < "^" - "or" < "^" - "xor" < "^" - "implies" < "^" - "+" < "^" - "-" < "^" - "=" < "^" - "<" < "^" - ">" < "^" - "*" < "^" - "/" < "^" - "%" < "^" - %left "^" - "=>" < "^" - "!=" < "^" - "<=" < "^" - ">=" < "^" + "and" < "^" + "or" < "^" + "xor" < "^" + "implies" < "^" + "+" < "^" + "-" < "^" + "=" < "^" + "<" < "^" + ">" < "^" + "*" < "^" + "/" < "^" + "%" < "^" + %left "^" + "=>" < "^" + "!=" < "^" + "<=" < "^" + ">=" < "^" - - @@ -14731,7 +14759,9 @@ - + + + "end of file" error @@ -14799,7 +14829,7 @@ "identifier" - + @@ -14821,40 +14851,40 @@ - + - "=>" < "and" - "=>" < "or" - "=>" < "xor" - %left "implies" - "=>" < "+" - "=>" < "-" - "=>" < "=" - "=>" < "<" - "=>" < ">" - "=>" < "*" - "=>" < "/" - "=>" < "%" - "=>" < "^" - %left "=>" - "=>" < "!=" - "=>" < "<=" - "=>" < ">=" + "=>" < "and" + "=>" < "or" + "=>" < "xor" + %left "implies" + "=>" < "+" + "=>" < "-" + "=>" < "=" + "=>" < "<" + "=>" < ">" + "=>" < "*" + "=>" < "/" + "=>" < "%" + "=>" < "^" + %left "=>" + "=>" < "!=" + "=>" < "<=" + "=>" < ">=" - - - + + + "end of file" error @@ -14927,8 +14957,6 @@ "identifier" - - @@ -14937,6 +14965,8 @@ + + @@ -14953,34 +14983,32 @@ - + - "and" < "!=" - "or" < "!=" - "xor" < "!=" - "implies" < "!=" - "!=" < "+" - "!=" < "-" - %left "=" - "!=" < "<" - "!=" < ">" - "!=" < "*" - "!=" < "/" - "!=" < "%" - "!=" < "^" - "=>" < "!=" - %left "!=" - "!=" < "<=" - "!=" < ">=" + "and" < "!=" + "or" < "!=" + "xor" < "!=" + "implies" < "!=" + "!=" < "+" + "!=" < "-" + %left "=" + "!=" < "<" + "!=" < ">" + "!=" < "*" + "!=" < "/" + "!=" < "%" + "!=" < "^" + "=>" < "!=" + %left "!=" + "!=" < "<=" + "!=" < ">=" - - @@ -14990,7 +15018,9 @@ - + + + "end of file" error @@ -15067,12 +15097,12 @@ "identifier" - - + + @@ -15085,34 +15115,32 @@ - + - "and" < "<=" - "or" < "<=" - "xor" < "<=" - "implies" < "<=" - "<=" < "+" - "<=" < "-" - "=" < "<=" - %left "<" - %left ">" - "<=" < "*" - "<=" < "/" - "<=" < "%" - "<=" < "^" - "=>" < "<=" - "!=" < "<=" - %left "<=" - %left ">=" + "and" < "<=" + "or" < "<=" + "xor" < "<=" + "implies" < "<=" + "<=" < "+" + "<=" < "-" + "=" < "<=" + %left "<" + %left ">" + "<=" < "*" + "<=" < "/" + "<=" < "%" + "<=" < "^" + "=>" < "<=" + "!=" < "<=" + %left "<=" + %left ">=" - - @@ -15123,7 +15151,9 @@ - + + + "end of file" error @@ -15200,11 +15230,11 @@ "identifier" - - + + @@ -15217,39 +15247,39 @@ - + - "and" < ">=" - "or" < ">=" - "xor" < ">=" - "implies" < ">=" - ">=" < "+" - ">=" < "-" - "=" < ">=" - %left "<" - %left ">" - ">=" < "*" - ">=" < "/" - ">=" < "%" - ">=" < "^" - "=>" < ">=" - "!=" < ">=" - %left "<=" - %left ">=" + "and" < ">=" + "or" < ">=" + "xor" < ">=" + "implies" < ">=" + ">=" < "+" + ">=" < "-" + "=" < ">=" + %left "<" + %left ">" + ">=" < "*" + ">=" < "/" + ">=" < "%" + ">=" < "^" + "=>" < ">=" + "!=" < ">=" + %left "<=" + %left ">=" - + - + @@ -15257,13 +15287,13 @@ - + - + @@ -15271,7 +15301,7 @@ - + "end of file" error @@ -15355,9 +15385,9 @@ "identifier" - - + + @@ -15365,17 +15395,17 @@ - + - CALL_WITHOUT_ARGS < "(" + CALL_WITHOUT_ARGS < "(" - + @@ -15389,13 +15419,13 @@ - + - + @@ -15403,8 +15433,8 @@ - - + + @@ -15419,14 +15449,12 @@ - + ")" "," - - @@ -15442,6 +15470,8 @@ + + @@ -15465,7 +15495,7 @@ - + @@ -15473,7 +15503,7 @@ - + @@ -15487,13 +15517,13 @@ - + - + @@ -15501,8 +15531,8 @@ - - + + @@ -15517,13 +15547,13 @@ - + - + @@ -15531,14 +15561,12 @@ - + "," - - - + @@ -15554,7 +15582,9 @@ - + + + @@ -15579,7 +15609,7 @@ - + @@ -15587,8 +15617,6 @@ - - @@ -15671,11 +15699,13 @@ - - - + + + + + @@ -15755,8 +15785,6 @@ - - @@ -15839,14 +15867,16 @@ - - - + + + + + @@ -15928,7 +15958,7 @@ - + @@ -15943,7 +15973,7 @@ - + @@ -15957,13 +15987,13 @@ - + - + @@ -15971,13 +16001,13 @@ - + - + @@ -15985,14 +16015,14 @@ - - - - - - - + + + + + + + @@ -16026,18 +16056,18 @@ + + - - - - - - + + + + @@ -16059,8 +16089,6 @@ - - @@ -16079,8 +16107,8 @@ - - + + @@ -16091,22 +16119,22 @@ - + - - + + - - + + @@ -16120,8 +16148,8 @@ - - + + @@ -16148,10 +16176,12 @@ - - + + + + @@ -16230,8 +16260,6 @@ - - @@ -16250,34 +16278,34 @@ - - + + - + - - + + - - + + @@ -16291,8 +16319,8 @@ - - + + @@ -16319,10 +16347,12 @@ - - + + + + @@ -16401,13 +16431,13 @@ - + - + @@ -16415,22 +16445,22 @@ - - - - - - - + + + + + - - + + - - + + + + @@ -16454,11 +16484,9 @@ - - - - - + + + @@ -16468,6 +16496,8 @@ + + @@ -16490,22 +16520,22 @@ - - - - - - + + + + - - + + - - + + + + @@ -16528,21 +16558,21 @@ - - - - - + + + - - + + - - + + + + @@ -16565,8 +16595,6 @@ - - @@ -16583,15 +16611,15 @@ - - + + - + @@ -16601,15 +16629,15 @@ - - + + - - + + @@ -16623,8 +16651,8 @@ - - + + @@ -16651,10 +16679,12 @@ - - + + + + @@ -16731,10 +16761,8 @@ - - - - + + @@ -16817,10 +16845,12 @@ - - + + + + @@ -16886,10 +16916,8 @@ - - - - + + @@ -16972,10 +17000,12 @@ - - + + + + @@ -17041,9 +17071,7 @@ - - - + @@ -17126,10 +17154,12 @@ - - + + + + @@ -17195,8 +17225,6 @@ - - @@ -17215,34 +17243,34 @@ - - + + - + - - + + - - + + @@ -17256,8 +17284,8 @@ - - + + @@ -17284,10 +17312,12 @@ - - + + + + @@ -17366,8 +17396,6 @@ - - @@ -17386,8 +17414,8 @@ - - + + @@ -17397,23 +17425,23 @@ - + - - + + - - + + @@ -17427,8 +17455,8 @@ - - + + @@ -17455,10 +17483,12 @@ - - + + + + @@ -17551,13 +17581,13 @@ - + - + @@ -17565,13 +17595,13 @@ - + - + @@ -17579,13 +17609,13 @@ - + - + @@ -17593,13 +17623,13 @@ - + - + @@ -17607,13 +17637,13 @@ - + - + @@ -17621,13 +17651,13 @@ - + - + @@ -17635,13 +17665,13 @@ - + - + @@ -17649,13 +17679,13 @@ - + - + @@ -17663,13 +17693,13 @@ - + - + @@ -17677,13 +17707,13 @@ - + - + @@ -17691,13 +17721,13 @@ - + - + @@ -17705,13 +17735,13 @@ - + - + @@ -17719,13 +17749,13 @@ - + - + @@ -17733,11 +17763,11 @@ - - + + @@ -17751,7 +17781,7 @@ - + "end of file" error @@ -17806,14 +17836,14 @@ "identifier" - + "." - - + + @@ -17821,19 +17851,19 @@ - - + + - CALL < "(" + CALL < "(" - - + + "end of file" error @@ -17897,7 +17927,7 @@ - + @@ -17922,7 +17952,7 @@ - + @@ -17951,13 +17981,13 @@ - + - + @@ -17965,13 +17995,13 @@ - + - + @@ -17979,7 +18009,7 @@ - + "end of file" error @@ -17997,8 +18027,6 @@ "[" - - @@ -18014,6 +18042,8 @@ + + @@ -18037,7 +18067,7 @@ - + @@ -18045,13 +18075,13 @@ - + - + @@ -18060,15 +18090,19 @@ - - - + + + + + - + + + @@ -18087,24 +18121,24 @@ - - - + - - + + + + - - - - - - - + + + + + + + @@ -18114,31 +18148,31 @@ - - - + - + - - + + + + - + @@ -18156,18 +18190,18 @@ - - - - - + + + + + - + @@ -18186,20 +18220,20 @@ - - - + + + - - - - + + + + @@ -18209,11 +18243,11 @@ - + - + @@ -18223,13 +18257,13 @@ - - + + - - + + @@ -18239,13 +18273,13 @@ - + "," ">" - + "*" "->" @@ -18256,9 +18290,9 @@ - - - + + + @@ -18266,8 +18300,8 @@ - - + + "->" @@ -18275,11 +18309,11 @@ - + - + @@ -18287,11 +18321,11 @@ - + - + @@ -18301,8 +18335,6 @@ - - @@ -18318,7 +18350,9 @@ - + + + "end of file" error @@ -18406,39 +18440,39 @@ - + - "and" < "'" - "or" < "'" - "xor" < "'" - "implies" < "'" - "+" < "'" - "-" < "'" - "=" < "'" - "<" < "'" - ">" < "'" - "*" < "'" - "/" < "'" - "%" < "'" - "^" < "'" - "=>" < "'" - "!=" < "'" - "<=" < "'" - ">=" < "'" + "and" < "'" + "or" < "'" + "xor" < "'" + "implies" < "'" + "+" < "'" + "-" < "'" + "=" < "'" + "<" < "'" + ">" < "'" + "*" < "'" + "/" < "'" + "%" < "'" + "^" < "'" + "=>" < "'" + "!=" < "'" + "<=" < "'" + ">=" < "'" - + - + @@ -18446,11 +18480,11 @@ - + - + @@ -18460,13 +18494,13 @@ - + - + @@ -18474,8 +18508,6 @@ - - @@ -18491,7 +18523,9 @@ - + + + "in" "," @@ -18520,7 +18554,7 @@ - + @@ -18528,8 +18562,6 @@ - - @@ -18545,7 +18577,9 @@ - + + + "end of file" error @@ -18634,39 +18668,39 @@ - + - "in" < "and" - "in" < "or" - "in" < "xor" - "in" < "implies" - "in" < "+" - "in" < "-" - "in" < "=" - "in" < "<" - "in" < ">" - "in" < "*" - "in" < "/" - "in" < "%" - "in" < "^" - "in" < "=>" - "in" < "!=" - "in" < "<=" - "in" < ">=" + "in" < "and" + "in" < "or" + "in" < "xor" + "in" < "implies" + "in" < "+" + "in" < "-" + "in" < "=" + "in" < "<" + "in" < ">" + "in" < "*" + "in" < "/" + "in" < "%" + "in" < "^" + "in" < "=>" + "in" < "!=" + "in" < "<=" + "in" < ">=" - + - + @@ -18674,8 +18708,6 @@ - - @@ -18691,11 +18723,13 @@ - + + + - + @@ -18722,13 +18756,13 @@ - + - + @@ -18736,8 +18770,6 @@ - - @@ -18753,11 +18785,13 @@ - + + + - + @@ -18784,8 +18818,6 @@ - - @@ -18801,11 +18833,13 @@ - + + + - + @@ -18832,8 +18866,6 @@ - - @@ -18849,11 +18881,13 @@ - + + + - + @@ -18880,13 +18914,11 @@ - + "," - - @@ -18902,7 +18934,9 @@ - + + + @@ -18913,7 +18947,7 @@ - + @@ -18927,7 +18961,7 @@ - + @@ -18935,13 +18969,13 @@ - + - + @@ -18949,7 +18983,7 @@ - + @@ -18963,8 +18997,6 @@ - - @@ -18980,7 +19012,9 @@ - + + + ")" "," @@ -19009,7 +19043,7 @@ - + @@ -19017,15 +19051,13 @@ - + ")" "]" "," - - @@ -19041,6 +19073,8 @@ + + @@ -19064,7 +19098,7 @@ - + @@ -19072,8 +19106,6 @@ - - @@ -19089,7 +19121,9 @@ - + + + @@ -19100,7 +19134,7 @@ - + @@ -19120,8 +19154,6 @@ - - @@ -19165,13 +19197,13 @@ - - + + @@ -19209,14 +19241,16 @@ - - + + + + - + @@ -19230,7 +19264,7 @@ - + @@ -19241,7 +19275,7 @@ - + @@ -19281,13 +19315,13 @@ - + - + @@ -19295,13 +19329,13 @@ - + - + @@ -19309,13 +19343,13 @@ - + - + @@ -19323,13 +19357,13 @@ - + - + @@ -19337,7 +19371,7 @@ - + "as" "and" @@ -19362,15 +19396,15 @@ ">=" - + - + - + @@ -19378,8 +19412,6 @@ - - @@ -19395,7 +19427,9 @@ - + + + "}" "," @@ -19424,7 +19458,7 @@ - + @@ -19432,13 +19466,13 @@ - + - + @@ -19450,7 +19484,7 @@ - + @@ -19464,7 +19498,7 @@ - + @@ -19474,17 +19508,17 @@ - - - - - - - - + + + + + + + + @@ -19493,7 +19527,7 @@ - + @@ -19505,13 +19539,13 @@ - + - + @@ -19520,8 +19554,6 @@ - - @@ -19604,10 +19636,12 @@ - - + + + + @@ -19634,7 +19668,7 @@ - + @@ -19673,13 +19707,13 @@ - + - + @@ -19687,13 +19721,13 @@ - + - + @@ -19702,12 +19736,12 @@ - + - - + + @@ -19717,13 +19751,13 @@ - + - + @@ -19731,20 +19765,20 @@ - - - - - - + + + + + + - + @@ -19755,11 +19789,11 @@ - + - + @@ -19769,9 +19803,7 @@ - - - + @@ -19788,8 +19820,8 @@ - - + + @@ -19800,21 +19832,21 @@ - + - - + + - - + + @@ -19828,8 +19860,8 @@ - - + + @@ -19856,15 +19888,17 @@ - - + + + + - + @@ -19893,7 +19927,7 @@ - + @@ -19937,13 +19971,13 @@ - + - + @@ -19951,11 +19985,11 @@ - + - + @@ -19965,9 +19999,7 @@ - - - + @@ -19984,17 +20016,17 @@ - - + + - + @@ -20002,15 +20034,15 @@ - - + + - - + + @@ -20024,8 +20056,8 @@ - - + + @@ -20052,16 +20084,18 @@ - - + + + + - + @@ -20089,7 +20123,7 @@ - + @@ -20133,12 +20167,12 @@ - - + + - + @@ -20149,13 +20183,13 @@ - + - + @@ -20163,11 +20197,11 @@ - + - + @@ -20177,13 +20211,13 @@ - - + + - - + + @@ -20193,13 +20227,13 @@ - + - + @@ -20207,13 +20241,13 @@ - + - + @@ -20221,14 +20255,14 @@ - - - - - - - + + + + + + + @@ -20236,7 +20270,7 @@ - + @@ -20247,13 +20281,13 @@ - - - + + + - + @@ -20264,12 +20298,12 @@ - - + + - + @@ -20280,13 +20314,13 @@ - + - + @@ -20294,10 +20328,8 @@ - - - - + + @@ -20313,10 +20345,12 @@ + + - + @@ -20343,10 +20377,8 @@ - - - - + + @@ -20362,10 +20394,12 @@ + + - + @@ -20392,9 +20426,7 @@ - - - + @@ -20410,10 +20442,12 @@ + + - + @@ -20440,11 +20474,11 @@ - + - + @@ -20454,9 +20488,7 @@ - - - + @@ -20473,16 +20505,16 @@ - - + + - + @@ -20491,15 +20523,15 @@ - - + + - - + + @@ -20513,8 +20545,8 @@ - - + + @@ -20541,10 +20573,12 @@ - - + + + + @@ -20568,7 +20602,7 @@ - + @@ -20578,7 +20612,7 @@ - + @@ -20622,11 +20656,11 @@ - + - + @@ -20636,9 +20670,7 @@ - - - + @@ -20655,8 +20687,8 @@ - - + + @@ -20666,22 +20698,22 @@ - + - - + + - - + + @@ -20695,8 +20727,8 @@ - - + + @@ -20723,10 +20755,12 @@ - - + + + + @@ -20752,7 +20786,7 @@ - + @@ -20760,7 +20794,7 @@ - + @@ -20804,9 +20838,7 @@ - - - + @@ -20889,10 +20921,12 @@ - - + + + + @@ -20919,7 +20953,7 @@ - + @@ -20963,8 +20997,8 @@ - - + + @@ -20979,8 +21013,8 @@ - - + + @@ -20991,8 +21025,6 @@ - - @@ -21009,8 +21041,8 @@ - - + + @@ -21026,15 +21058,15 @@ - - + + - - + + @@ -21048,8 +21080,8 @@ - - + + @@ -21076,10 +21108,12 @@ - - + + + + @@ -21112,7 +21146,7 @@ - + @@ -21156,15 +21190,18 @@ - - - + + + + + + - - - + + + @@ -21174,32 +21211,68 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + @@ -21207,7 +21280,7 @@ - + @@ -21215,15 +21288,15 @@ - - - + + + - + @@ -21231,49 +21304,49 @@ - + - + - + - + - + - + - + - + - + - + @@ -21284,23 +21357,23 @@ - - - + - - - + + + + + - - - - - - - + + + + + + + @@ -21308,45 +21381,45 @@ - + - + - + - + - + "," - + - + - + - + - - + + "," @@ -21354,45 +21427,45 @@ - + - + - + - + - + - + - + - + - + @@ -21403,12 +21476,12 @@ - - - - + + + + "}" @@ -21418,26 +21491,26 @@ - - - - + + + + - + - + - + - + @@ -21445,13 +21518,13 @@ - + - + - + @@ -21459,11 +21532,9 @@ - + - - - + @@ -21474,17 +21545,19 @@ - - + + + + - + @@ -21500,24 +21573,22 @@ - + - + - + - + - - @@ -21528,18 +21599,20 @@ - - - + + + + + - + @@ -21555,10 +21628,8 @@ - + - - @@ -21568,19 +21639,21 @@ - - - + + + + + - + @@ -21596,11 +21669,9 @@ - + - - - + @@ -21611,17 +21682,19 @@ - - + + + + - + @@ -21637,10 +21710,8 @@ - + - - @@ -21693,9 +21764,9 @@ - + @@ -21724,10 +21795,12 @@ - - + + + + @@ -21754,7 +21827,7 @@ - + @@ -21791,10 +21864,8 @@ - + - - @@ -21846,9 +21917,9 @@ - + @@ -21878,10 +21949,12 @@ - - + + + + @@ -21908,7 +21981,7 @@ - + @@ -21945,10 +22018,8 @@ - + - - @@ -21999,9 +22070,9 @@ - + @@ -22032,10 +22103,12 @@ - - + + + + @@ -22062,7 +22135,7 @@ - + @@ -22099,10 +22172,8 @@ - + - - @@ -22156,9 +22227,9 @@ - + @@ -22186,10 +22257,12 @@ - - + + + + @@ -22216,7 +22289,7 @@ - + @@ -22253,41 +22326,41 @@ - + - + - + - + - + - + - + - + - + @@ -22295,28 +22368,28 @@ - + - + - + - + - - + + - + @@ -22325,10 +22398,8 @@ - + - - @@ -22411,11 +22482,13 @@ - - - + + + + + @@ -22442,7 +22515,7 @@ - + @@ -22479,11 +22552,9 @@ - + - - @@ -22494,17 +22565,19 @@ - - + + + + - + @@ -22520,11 +22593,9 @@ - + - - @@ -22535,17 +22606,19 @@ - - + + + + - + @@ -22561,21 +22634,21 @@ - + - + - + - + @@ -22596,8 +22669,6 @@ "}" - - @@ -22613,6 +22684,8 @@ + + @@ -22642,7 +22715,7 @@ - + @@ -22656,19 +22729,19 @@ - + + + - - - - - - - + + + + + @@ -22676,7 +22749,7 @@ - + @@ -22687,94 +22760,92 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - @@ -22791,10 +22862,10 @@ - - - + + + @@ -22809,15 +22880,15 @@ - - + + - - + + @@ -22831,8 +22902,8 @@ - - + + @@ -22859,10 +22930,12 @@ - - + + + + @@ -22895,7 +22968,7 @@ - + @@ -22937,10 +23010,8 @@ - + - - @@ -22954,16 +23025,18 @@ - + + + "->" - - - + + + @@ -22978,22 +23051,20 @@ - + - + - + - - @@ -23010,11 +23081,11 @@ - - - + + + @@ -23028,15 +23099,15 @@ - - + + - - + + @@ -23050,8 +23121,8 @@ - - + + @@ -23078,10 +23149,12 @@ - - + + + + @@ -23114,7 +23187,7 @@ - + @@ -23156,13 +23229,11 @@ - + - - - - - + + + @@ -23170,6 +23241,8 @@ + + @@ -23178,7 +23251,7 @@ - + @@ -23189,26 +23262,24 @@ - + - + - + - + - - - - + + @@ -23291,10 +23362,12 @@ - - + + + + @@ -23321,7 +23394,7 @@ - + @@ -23358,11 +23431,9 @@ - + - - - + @@ -23445,10 +23516,12 @@ - - + + + + @@ -23475,7 +23548,7 @@ - + @@ -23512,10 +23585,8 @@ - + - - @@ -23529,13 +23600,13 @@ - - + - - + + + @@ -23551,15 +23622,15 @@ - - + + - - + + @@ -23573,8 +23644,8 @@ - - + + @@ -23601,10 +23672,12 @@ - - + + + + @@ -23637,7 +23710,7 @@ - + @@ -23679,14 +23752,14 @@ - + - - + + - + @@ -23694,10 +23767,8 @@ - + - - @@ -23714,8 +23785,8 @@ - - + + @@ -23731,16 +23802,16 @@ - - - + + + - - + + @@ -23754,8 +23825,8 @@ - - + + @@ -23782,10 +23853,12 @@ - - + + + + @@ -23818,7 +23891,7 @@ - + @@ -23860,65 +23933,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + "end of file" error @@ -23972,8 +24045,6 @@ "identifier" - - @@ -23989,6 +24060,8 @@ + + @@ -24012,20 +24085,18 @@ - + - ":=" < "+" - ":=" < "-" + ":=" < "+" + ":=" < "-" - + - - @@ -24042,8 +24113,8 @@ - - + + @@ -24059,15 +24130,15 @@ - - + + - - + + @@ -24081,8 +24152,8 @@ - - + + @@ -24109,10 +24180,12 @@ - - + + + + @@ -24145,7 +24218,7 @@ - + @@ -24187,11 +24260,9 @@ - + - - @@ -24202,17 +24273,19 @@ - - + + + + - + @@ -24228,11 +24301,9 @@ - + - - @@ -24249,8 +24320,8 @@ - - + + @@ -24266,15 +24337,15 @@ - - + + - - + + @@ -24288,8 +24359,8 @@ - - + + @@ -24316,10 +24387,12 @@ - - + + + + @@ -24352,7 +24425,7 @@ - + @@ -24394,11 +24467,9 @@ - + - - @@ -24409,17 +24480,19 @@ - - + + + + - + @@ -24435,59 +24508,79 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + - - - + - + - + - + - + - + - + - + - + - + @@ -24496,7 +24589,7 @@ - + @@ -24504,13 +24597,13 @@ - + - + @@ -24519,91 +24612,91 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24614,20 +24707,20 @@ - - - + + + - - - - + + + + @@ -24635,41 +24728,41 @@ - + - + - + - + - + - + - + - + - + @@ -24677,11 +24770,11 @@ - + - - - + + + "end of file" error @@ -24704,21 +24797,19 @@ - - + + - + - + - - @@ -24734,7 +24825,9 @@ - + + + "end of file" error @@ -24823,34 +24916,32 @@ - + - "holds" < "and" - "holds" < "or" - "holds" < "xor" - "holds" < "implies" - "holds" < "+" - "holds" < "-" - "holds" < "=" - "holds" < "<" - "holds" < ">" - "holds" < "*" - "holds" < "/" - "holds" < "%" - "holds" < "^" - "holds" < "=>" - "holds" < "!=" - "holds" < "<=" - "holds" < ">=" + "holds" < "and" + "holds" < "or" + "holds" < "xor" + "holds" < "implies" + "holds" < "+" + "holds" < "-" + "holds" < "=" + "holds" < "<" + "holds" < ">" + "holds" < "*" + "holds" < "/" + "holds" < "%" + "holds" < "^" + "holds" < "=>" + "holds" < "!=" + "holds" < "<=" + "holds" < ">=" - + - - @@ -24866,7 +24957,9 @@ - + + + "end of file" error @@ -24955,34 +25048,32 @@ - + - "do" < "and" - "do" < "or" - "do" < "xor" - "do" < "implies" - "do" < "+" - "do" < "-" - "do" < "=" - "do" < "<" - "do" < ">" - "do" < "*" - "do" < "/" - "do" < "%" - "do" < "^" - "do" < "=>" - "do" < "!=" - "do" < "<=" - "do" < ">=" + "do" < "and" + "do" < "or" + "do" < "xor" + "do" < "implies" + "do" < "+" + "do" < "-" + "do" < "=" + "do" < "<" + "do" < ">" + "do" < "*" + "do" < "/" + "do" < "%" + "do" < "^" + "do" < "=>" + "do" < "!=" + "do" < "<=" + "do" < ">=" - + - - @@ -24998,7 +25089,9 @@ - + + + "end of file" error @@ -25087,34 +25180,32 @@ - + - "else" < "and" - "else" < "or" - "else" < "xor" - "else" < "implies" - "else" < "+" - "else" < "-" - "else" < "=" - "else" < "<" - "else" < ">" - "else" < "*" - "else" < "/" - "else" < "%" - "else" < "^" - "else" < "=>" - "else" < "!=" - "else" < "<=" - "else" < ">=" + "else" < "and" + "else" < "or" + "else" < "xor" + "else" < "implies" + "else" < "+" + "else" < "-" + "else" < "=" + "else" < "<" + "else" < ">" + "else" < "*" + "else" < "/" + "else" < "%" + "else" < "^" + "else" < "=>" + "else" < "!=" + "else" < "<=" + "else" < ">=" - + - - @@ -25130,7 +25221,9 @@ - + + + "end of file" error @@ -25219,62 +25312,60 @@ - + - "with" < "and" - "with" < "or" - "with" < "xor" - "with" < "implies" - "with" < "+" - "with" < "-" - "with" < "=" - "with" < "<" - "with" < ">" - "with" < "*" - "with" < "/" - "with" < "%" - "with" < "^" - "with" < "=>" - "with" < "!=" - "with" < "<=" - "with" < ">=" + "with" < "and" + "with" < "or" + "with" < "xor" + "with" < "implies" + "with" < "+" + "with" < "-" + "with" < "=" + "with" < "<" + "with" < ">" + "with" < "*" + "with" < "/" + "with" < "%" + "with" < "^" + "with" < "=>" + "with" < "!=" + "with" < "<=" + "with" < ">=" - + - + - + - + - + - + - + - - @@ -25290,7 +25381,9 @@ - + + + "}" "," @@ -25319,19 +25412,19 @@ - + - + - + @@ -25339,13 +25432,13 @@ - + - + @@ -25353,41 +25446,41 @@ - + - + - + - + - + - + - + - + - + @@ -25395,40 +25488,38 @@ - + - + - + - + - + - + - + - - - - + + @@ -25444,11 +25535,13 @@ + + - - + + @@ -25473,11 +25566,9 @@ - + - - - + @@ -25493,10 +25584,12 @@ + + - + @@ -25521,9 +25614,9 @@ - + - + "end of file" error @@ -25578,33 +25671,31 @@ "identifier" - + - + - + - "then" < "else" + "then" < "else" - + - - - - + + - - + + @@ -25687,20 +25778,22 @@ - - + + + + - + - + @@ -25710,7 +25803,7 @@ - + @@ -25720,9 +25813,9 @@ - - - + + + @@ -25759,21 +25852,21 @@ - + - + - + - + @@ -25787,13 +25880,13 @@ - + - + @@ -25801,7 +25894,7 @@ - + @@ -25815,13 +25908,13 @@ - + - + @@ -25829,11 +25922,25 @@ - + - - - + + + + + + + + + + + + + + + + + @@ -25847,15 +25954,17 @@ - + + + "->" - - + + @@ -25870,23 +25979,21 @@ - + - + - + - - - + @@ -25900,15 +26007,17 @@ - + + + "->" - - + + @@ -25923,25 +26032,25 @@ - + - + - + - + - + @@ -25949,27 +26058,27 @@ - + - + - + - + - + - + @@ -25977,11 +26086,11 @@ - + - - - + + + "end of file" error @@ -26003,22 +26112,20 @@ - - + + - + - + - - @@ -26101,10 +26208,12 @@ - - + + + + @@ -26131,7 +26240,7 @@ - + @@ -26168,11 +26277,9 @@ - + - - @@ -26255,10 +26362,12 @@ - - + + + + @@ -26285,7 +26394,7 @@ - + @@ -26322,10 +26431,8 @@ - + - - @@ -26336,18 +26443,20 @@ - - + + - + + + - + @@ -26363,10 +26472,8 @@ - + - - @@ -26383,12 +26490,12 @@ - - + + - + @@ -26401,15 +26508,15 @@ - - + + - - + + @@ -26423,8 +26530,8 @@ - - + + @@ -26451,10 +26558,12 @@ - - + + + + @@ -26487,7 +26596,7 @@ - + @@ -26529,11 +26638,9 @@ - + - - - + @@ -26616,10 +26723,12 @@ - - + + + + @@ -26646,7 +26755,7 @@ - + @@ -26683,10 +26792,8 @@ - + - - @@ -26703,14 +26810,14 @@ - - + + - + @@ -26721,15 +26828,15 @@ - - + + - - + + @@ -26743,8 +26850,8 @@ - - + + @@ -26771,10 +26878,12 @@ - - + + + + @@ -26807,7 +26916,7 @@ - + @@ -26849,10 +26958,8 @@ - + - - @@ -26867,11 +26974,11 @@ - - - + + + @@ -26887,15 +26994,15 @@ - - + + - - + + @@ -26909,8 +27016,8 @@ - - + + @@ -26937,10 +27044,12 @@ - - + + + + @@ -26973,7 +27082,7 @@ - + @@ -27015,13 +27124,13 @@ - + - + - + @@ -27029,13 +27138,13 @@ - + - + - + @@ -27043,13 +27152,13 @@ - + - + - + @@ -27057,15 +27166,13 @@ - + - - - - + + - - + + @@ -27148,10 +27255,12 @@ - - + + + + @@ -27160,7 +27269,7 @@ - + @@ -27170,8 +27279,8 @@ - - + + @@ -27181,8 +27290,8 @@ - - + + @@ -27219,25 +27328,23 @@ - + - + - + - + - - - + @@ -27253,6 +27360,8 @@ + + @@ -27263,7 +27372,7 @@ - + @@ -27281,11 +27390,9 @@ - + - - @@ -27302,8 +27409,8 @@ - - + + @@ -27319,15 +27426,15 @@ - - + + - - + + @@ -27341,8 +27448,8 @@ - - + + @@ -27369,10 +27476,12 @@ - - + + + + @@ -27405,7 +27514,7 @@ - + @@ -27447,11 +27556,9 @@ - + - - @@ -27468,8 +27575,8 @@ - - + + @@ -27485,15 +27592,15 @@ - - + + - - + + @@ -27507,8 +27614,8 @@ - - + + @@ -27535,10 +27642,12 @@ - - + + + + @@ -27571,7 +27680,7 @@ - + @@ -27613,13 +27722,27 @@ - + + + + + + + + + + + + + + + - + - + @@ -27627,13 +27750,13 @@ - + - + - + @@ -27641,24 +27764,22 @@ - + - + - + - + - - @@ -27741,11 +27862,13 @@ - - - + + + + + @@ -27772,7 +27895,7 @@ - + @@ -27809,13 +27932,13 @@ - + - + - + @@ -27823,21 +27946,21 @@ - + - + - + - + @@ -27858,8 +27981,6 @@ "}" - - @@ -27875,6 +27996,8 @@ + + @@ -27904,7 +28027,7 @@ - + @@ -27925,8 +28048,6 @@ "}" - - @@ -27942,6 +28063,8 @@ + + @@ -27971,50 +28094,48 @@ - + - - + + "in" "=" "," - + - - + + - + - + - + - + - + - - - + @@ -28030,10 +28151,12 @@ + + - + @@ -28058,52 +28181,50 @@ - + - + - + - + - + - + - + - + - + - + - - @@ -28120,9 +28241,9 @@ - - - + + + @@ -28138,15 +28259,15 @@ - - + + - - + + @@ -28160,8 +28281,8 @@ - - + + @@ -28188,10 +28309,12 @@ - - + + + + @@ -28224,7 +28347,7 @@ - + @@ -28266,10 +28389,8 @@ - + - - @@ -28286,9 +28407,9 @@ - - - + + + @@ -28304,15 +28425,15 @@ - - + + - - + + @@ -28326,8 +28447,8 @@ - - + + @@ -28354,10 +28475,12 @@ - - + + + + @@ -28390,7 +28513,7 @@ - + @@ -28432,38 +28555,36 @@ - + - + - + - + - + - + - + - - @@ -28480,9 +28601,9 @@ - - - + + + @@ -28498,15 +28619,15 @@ - - + + - - + + @@ -28520,8 +28641,8 @@ - - + + @@ -28548,10 +28669,12 @@ - - + + + + @@ -28584,7 +28707,7 @@ - + @@ -28626,7 +28749,7 @@ - + @@ -28640,7 +28763,7 @@ - + @@ -28654,11 +28777,9 @@ - + - - - + @@ -28669,17 +28790,19 @@ - - + + + + - + @@ -28695,11 +28818,9 @@ - + - - - + @@ -28710,17 +28831,19 @@ - - + + + + - + @@ -28736,10 +28859,8 @@ - + - - @@ -28755,7 +28876,9 @@ - + + + @@ -28766,7 +28889,7 @@ - + @@ -28784,10 +28907,8 @@ - + - - @@ -28870,9 +28991,9 @@ - - - + + + @@ -28880,6 +29001,8 @@ + + @@ -28934,7 +29057,7 @@ - + @@ -28945,34 +29068,32 @@ - + - - + + "in" "," - + - - + + - + - + - - @@ -28989,13 +29110,13 @@ - - + + - + @@ -29007,15 +29128,15 @@ - - + + - - + + @@ -29029,8 +29150,8 @@ - - + + @@ -29057,10 +29178,12 @@ - - + + + + @@ -29093,7 +29216,7 @@ - + @@ -29135,98 +29258,98 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -29235,43 +29358,43 @@ - + - + - + - + - + - + - + - + - +