diff --git a/src/GrammarParser.y b/src/GrammarParser.y index e5514f06..da1bccba 100644 --- a/src/GrammarParser.y +++ b/src/GrammarParser.y @@ -134,6 +134,7 @@ END 0 "end of file" %type Variable TypedVariable AttributedVariable TypedAttributedVariable %type TypedVariables %type FunctionDefinition +%type FunctionDefinitions %type DerivedDefinition %type RuleDefinition %type EnumeratorDefinition @@ -457,6 +458,22 @@ RuleDefinition ; +FunctionDefinitions +: FunctionDefinitions FunctionDefinition + { + auto functions = $1; + functions->add( $2 ); + $$ = functions; + } +| FunctionDefinition + { + auto functions = Ast::make< FunctionDefinitions >( @$ ); + functions->add( $1 ); + $$ = functions; + } +; + + FunctionDefinition : FUNCTION Identifier COLON MaybeFunctionParameters MAPS Type MaybeDefined MaybeInitially { @@ -548,7 +565,7 @@ ImportDefinition StructureDefinition -: STRUCTURE Identifier EQUAL LCURPAREN FunctionDefinition RCURPAREN +: STRUCTURE Identifier EQUAL LCURPAREN FunctionDefinitions RCURPAREN { // TODO: FIXME: @ppaulweber: handle AST keyword tokens $1, $3, $4, and $6 // $$ = Ast::make< StructureDefinition >( @$, $2, $5 ); @@ -624,10 +641,10 @@ ImplementationDefinitionDefinition ImplementationDefinitionDefinitions -: ImplementationDefinitionDefinitions ImplementationDefinitionDefinition +: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions { - auto definitions = $1; - definitions->add( $2 ); + auto definitions = $2; + definitions->add( $1 ); $$ = definitions; } | ImplementationDefinitionDefinition diff --git a/src/various/Grammar.org b/src/various/Grammar.org index ca00fe2c..0608bafa 100644 --- a/src/various/Grammar.org +++ b/src/various/Grammar.org @@ -105,6 +105,16 @@ 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 @@ -175,7 +185,7 @@ ImportDefinition ::= "import" IdentifierPath ** StructureDefinition #+begin_src -StructureDefinition ::= "structure" Identifier "=" "{" FunctionDefinition "}" +StructureDefinition ::= "structure" Identifier "=" "{" FunctionDefinitions "}" #+end_src #+html: {{page>.:grammar:StructureDefinition&noheader&nofooter}} @@ -234,7 +244,7 @@ ImplementationDefinitionDefinition ::= DerivedDefinition ** ImplementationDefinitionDefinitions #+begin_src -ImplementationDefinitionDefinitions ::= ImplementationDefinitionDefinitions ImplementationDefinitionDefinition +ImplementationDefinitionDefinitions ::= ImplementationDefinitionDefinition ImplementationDefinitionDefinitions | ImplementationDefinitionDefinition #+end_src diff --git a/src/various/GrammarParser.cpp b/src/various/GrammarParser.cpp index 8d21d2b8..4421ffe5 100644 --- a/src/various/GrammarParser.cpp +++ b/src/various/GrammarParser.cpp @@ -442,6 +442,7 @@ namespace libcasm_fe { value.YY_MOVE_OR_COPY< FunctionDefinition::Ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.YY_MOVE_OR_COPY< FunctionDefinitions::Ptr > (YY_MOVE (that.value)); break; @@ -898,6 +899,7 @@ namespace libcasm_fe { value.move< FunctionDefinition::Ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.move< FunctionDefinitions::Ptr > (YY_MOVE (that.value)); break; @@ -1354,6 +1356,7 @@ namespace libcasm_fe { value.copy< FunctionDefinition::Ptr > (that.value); break; + case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.copy< FunctionDefinitions::Ptr > (that.value); break; @@ -1809,6 +1812,7 @@ namespace libcasm_fe { value.move< FunctionDefinition::Ptr > (that.value); break; + case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.move< FunctionDefinitions::Ptr > (that.value); break; @@ -2509,6 +2513,7 @@ namespace libcasm_fe { yylhs.value.emplace< FunctionDefinition::Ptr > (); break; + case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions yylhs.value.emplace< FunctionDefinitions::Ptr > (); break; @@ -2753,284 +2758,304 @@ namespace libcasm_fe { switch (yyn) { case 2: // Specification: Header Definitions -#line 432 "../../obj/src/GrammarParser.y" +#line 433 "../../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 2763 "GrammarParser.cpp" +#line 2768 "GrammarParser.cpp" break; case 3: // Header: Attributes "CASM" -#line 442 "../../obj/src/GrammarParser.y" +#line 443 "../../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 2773 "GrammarParser.cpp" +#line 2778 "GrammarParser.cpp" break; case 4: // Header: "CASM" -#line 448 "../../obj/src/GrammarParser.y" +#line 449 "../../obj/src/GrammarParser.y" { yylhs.value.as < HeaderDefinition::Ptr > () = Ast::make< HeaderDefinition >( yylhs.location, yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 2781 "GrammarParser.cpp" +#line 2786 "GrammarParser.cpp" break; case 5: // Definitions: Definitions AttributedDefinition -#line 456 "../../obj/src/GrammarParser.y" +#line 457 "../../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 2791 "GrammarParser.cpp" +#line 2796 "GrammarParser.cpp" break; case 6: // Definitions: AttributedDefinition -#line 462 "../../obj/src/GrammarParser.y" +#line 463 "../../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 2801 "GrammarParser.cpp" +#line 2806 "GrammarParser.cpp" break; case 7: // AttributedDefinition: Attributes Definition -#line 472 "../../obj/src/GrammarParser.y" +#line 473 "../../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 2811 "GrammarParser.cpp" +#line 2816 "GrammarParser.cpp" break; case 8: // AttributedDefinition: Definition -#line 478 "../../obj/src/GrammarParser.y" +#line 479 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < Definition::Ptr > (); } -#line 2819 "GrammarParser.cpp" +#line 2824 "GrammarParser.cpp" break; case 9: // AttributedDefinition: error -#line 482 "../../obj/src/GrammarParser.y" +#line 483 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = nullptr; } -#line 2827 "GrammarParser.cpp" +#line 2832 "GrammarParser.cpp" break; case 10: // Definition: InitDefinition -#line 490 "../../obj/src/GrammarParser.y" +#line 491 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < InitDefinition::Ptr > (); } -#line 2835 "GrammarParser.cpp" +#line 2840 "GrammarParser.cpp" break; case 11: // Definition: EnumerationDefinition -#line 494 "../../obj/src/GrammarParser.y" +#line 495 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < EnumerationDefinition::Ptr > (); } -#line 2843 "GrammarParser.cpp" +#line 2848 "GrammarParser.cpp" break; case 12: // Definition: DerivedDefinition -#line 498 "../../obj/src/GrammarParser.y" +#line 499 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < DerivedDefinition::Ptr > (); } -#line 2851 "GrammarParser.cpp" +#line 2856 "GrammarParser.cpp" break; case 13: // Definition: RuleDefinition -#line 502 "../../obj/src/GrammarParser.y" +#line 503 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < RuleDefinition::Ptr > (); } -#line 2859 "GrammarParser.cpp" +#line 2864 "GrammarParser.cpp" break; case 14: // Definition: FunctionDefinition -#line 506 "../../obj/src/GrammarParser.y" +#line 507 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < FunctionDefinition::Ptr > (); } -#line 2867 "GrammarParser.cpp" +#line 2872 "GrammarParser.cpp" break; case 15: // Definition: UsingDefinition -#line 510 "../../obj/src/GrammarParser.y" +#line 511 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < UsingDefinition::Ptr > (); } -#line 2875 "GrammarParser.cpp" +#line 2880 "GrammarParser.cpp" break; case 16: // Definition: UsingPathDefinition -#line 514 "../../obj/src/GrammarParser.y" +#line 515 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < UsingPathDefinition::Ptr > (); } -#line 2883 "GrammarParser.cpp" +#line 2888 "GrammarParser.cpp" break; case 17: // Definition: InvariantDefinition -#line 518 "../../obj/src/GrammarParser.y" +#line 519 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < InvariantDefinition::Ptr > (); } -#line 2891 "GrammarParser.cpp" +#line 2896 "GrammarParser.cpp" break; case 18: // Definition: ImportDefinition -#line 522 "../../obj/src/GrammarParser.y" +#line 523 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < ImportDefinition::Ptr > (); } -#line 2899 "GrammarParser.cpp" +#line 2904 "GrammarParser.cpp" break; case 19: // Definition: StructureDefinition -#line 526 "../../obj/src/GrammarParser.y" +#line 527 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < StructureDefinition::Ptr > (); } -#line 2907 "GrammarParser.cpp" +#line 2912 "GrammarParser.cpp" break; case 20: // Definition: FeatureDefinition -#line 530 "../../obj/src/GrammarParser.y" +#line 531 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < FeatureDefinition::Ptr > (); } -#line 2915 "GrammarParser.cpp" +#line 2920 "GrammarParser.cpp" break; case 21: // Definition: ImplementationDefinition -#line 534 "../../obj/src/GrammarParser.y" +#line 535 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < ImplementationDefinition::Ptr > (); } -#line 2923 "GrammarParser.cpp" +#line 2928 "GrammarParser.cpp" break; case 22: // InitDefinition: "init" IdentifierPath -#line 542 "../../obj/src/GrammarParser.y" +#line 543 "../../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 2931 "GrammarParser.cpp" +#line 2936 "GrammarParser.cpp" break; case 23: // InitDefinition: "init" "{" Initializers "}" -#line 546 "../../obj/src/GrammarParser.y" +#line 547 "../../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 2939 "GrammarParser.cpp" +#line 2944 "GrammarParser.cpp" break; case 24: // EnumerationDefinition: "enumeration" Identifier "=" "{" Enumerators "}" -#line 554 "../../obj/src/GrammarParser.y" +#line 555 "../../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 2947 "GrammarParser.cpp" +#line 2952 "GrammarParser.cpp" break; case 25: // DerivedDefinition: "derived" Identifier "->" Type "=" Term -#line 562 "../../obj/src/GrammarParser.y" +#line 563 "../../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 2956 "GrammarParser.cpp" +#line 2961 "GrammarParser.cpp" break; case 26: // DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type "=" Term -#line 567 "../../obj/src/GrammarParser.y" +#line 568 "../../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 2966 "GrammarParser.cpp" +#line 2971 "GrammarParser.cpp" break; case 27: // DerivedDefinition: "derived" Identifier "(" error ")" "->" Type "=" Term -#line 573 "../../obj/src/GrammarParser.y" +#line 574 "../../obj/src/GrammarParser.y" { yylhs.value.as < DerivedDefinition::Ptr > () = nullptr; } -#line 2974 "GrammarParser.cpp" +#line 2979 "GrammarParser.cpp" break; case 28: // RuleDefinition: "rule" Identifier "=" Rule -#line 581 "../../obj/src/GrammarParser.y" +#line 582 "../../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 2984 "GrammarParser.cpp" +#line 2989 "GrammarParser.cpp" break; case 29: // RuleDefinition: "rule" Identifier "->" Type "=" Rule -#line 587 "../../obj/src/GrammarParser.y" +#line 588 "../../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 2993 "GrammarParser.cpp" +#line 2998 "GrammarParser.cpp" break; case 30: // RuleDefinition: "rule" Identifier "(" Parameters ")" "=" Rule -#line 592 "../../obj/src/GrammarParser.y" +#line 593 "../../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 3004 "GrammarParser.cpp" +#line 3009 "GrammarParser.cpp" break; case 31: // RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type "=" Rule -#line 599 "../../obj/src/GrammarParser.y" +#line 600 "../../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 3014 "GrammarParser.cpp" +#line 3019 "GrammarParser.cpp" break; case 32: // RuleDefinition: "rule" Identifier "(" error ")" "=" Rule -#line 605 "../../obj/src/GrammarParser.y" +#line 606 "../../obj/src/GrammarParser.y" { yylhs.value.as < RuleDefinition::Ptr > () = nullptr; } -#line 3022 "GrammarParser.cpp" +#line 3027 "GrammarParser.cpp" break; case 33: // RuleDefinition: "rule" Identifier "(" error ")" "->" Type "=" Rule -#line 609 "../../obj/src/GrammarParser.y" +#line 610 "../../obj/src/GrammarParser.y" { yylhs.value.as < RuleDefinition::Ptr > () = nullptr; } -#line 3030 "GrammarParser.cpp" +#line 3035 "GrammarParser.cpp" break; - case 34: // FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially -#line 617 "../../obj/src/GrammarParser.y" + 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" { 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 > () ); @@ -3041,1298 +3066,1298 @@ namespace libcasm_fe { initializer->setFunction( yylhs.value.as < FunctionDefinition::Ptr > () ); } } -#line 3045 "GrammarParser.cpp" +#line 3070 "GrammarParser.cpp" break; - case 35: // EnumeratorDefinition: Identifier -#line 632 "../../obj/src/GrammarParser.y" + case 37: // EnumeratorDefinition: Identifier +#line 649 "../../obj/src/GrammarParser.y" { yylhs.value.as < EnumeratorDefinition::Ptr > () = Ast::make< EnumeratorDefinition >( yylhs.location, yystack_[0].value.as < Identifier::Ptr > () ); } -#line 3053 "GrammarParser.cpp" +#line 3078 "GrammarParser.cpp" break; - case 36: // EnumeratorDefinition: Attributes Identifier -#line 636 "../../obj/src/GrammarParser.y" + case 38: // EnumeratorDefinition: Attributes Identifier +#line 653 "../../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 3063 "GrammarParser.cpp" +#line 3088 "GrammarParser.cpp" break; - case 37: // EnumeratorDefinition: error -#line 642 "../../obj/src/GrammarParser.y" + case 39: // EnumeratorDefinition: error +#line 659 "../../obj/src/GrammarParser.y" { yylhs.value.as < EnumeratorDefinition::Ptr > () = nullptr; } -#line 3071 "GrammarParser.cpp" +#line 3096 "GrammarParser.cpp" break; - case 38: // Enumerators: Enumerators "," EnumeratorDefinition -#line 650 "../../obj/src/GrammarParser.y" + case 40: // Enumerators: Enumerators "," EnumeratorDefinition +#line 667 "../../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 3082 "GrammarParser.cpp" +#line 3107 "GrammarParser.cpp" break; - case 39: // Enumerators: EnumeratorDefinition -#line 657 "../../obj/src/GrammarParser.y" + case 41: // Enumerators: EnumeratorDefinition +#line 674 "../../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 3092 "GrammarParser.cpp" +#line 3117 "GrammarParser.cpp" break; - case 40: // UsingDefinition: "using" Identifier "=" Type -#line 667 "../../obj/src/GrammarParser.y" + case 42: // UsingDefinition: "using" Identifier "=" Type +#line 684 "../../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 3100 "GrammarParser.cpp" +#line 3125 "GrammarParser.cpp" break; - case 41: // UsingPathDefinition: "using" IdentifierPath -#line 675 "../../obj/src/GrammarParser.y" + case 43: // UsingPathDefinition: "using" IdentifierPath +#line 692 "../../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 3108 "GrammarParser.cpp" +#line 3133 "GrammarParser.cpp" break; - case 42: // UsingPathDefinition: "using" IdentifierPath "::" "*" -#line 679 "../../obj/src/GrammarParser.y" + case 44: // UsingPathDefinition: "using" IdentifierPath "::" "*" +#line 696 "../../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 3116 "GrammarParser.cpp" +#line 3141 "GrammarParser.cpp" break; - case 43: // InvariantDefinition: "invariant" Identifier "=" Term -#line 687 "../../obj/src/GrammarParser.y" + case 45: // InvariantDefinition: "invariant" Identifier "=" Term +#line 704 "../../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 3124 "GrammarParser.cpp" +#line 3149 "GrammarParser.cpp" break; - case 44: // ImportDefinition: "import" IdentifierPath -#line 695 "../../obj/src/GrammarParser.y" + case 46: // ImportDefinition: "import" IdentifierPath +#line 712 "../../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 3132 "GrammarParser.cpp" +#line 3157 "GrammarParser.cpp" break; - case 45: // ImportDefinition: "import" IdentifierPath "as" Identifier -#line 699 "../../obj/src/GrammarParser.y" + case 47: // ImportDefinition: "import" IdentifierPath "as" Identifier +#line 716 "../../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 3140 "GrammarParser.cpp" +#line 3165 "GrammarParser.cpp" break; - case 46: // StructureDefinition: "structure" Identifier "=" "{" FunctionDefinition "}" -#line 707 "../../obj/src/GrammarParser.y" + case 48: // StructureDefinition: "structure" Identifier "=" "{" FunctionDefinitions "}" +#line 724 "../../obj/src/GrammarParser.y" { // TODO: FIXME: @ppaulweber: handle AST keyword tokens $1, $3, $4, and $6 // $$ = Ast::make< StructureDefinition >( @$, $2, $5 ); } -#line 3149 "GrammarParser.cpp" +#line 3174 "GrammarParser.cpp" break; - case 47: // FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" -#line 716 "../../obj/src/GrammarParser.y" + case 49: // FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" +#line 733 "../../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 3158 "GrammarParser.cpp" +#line 3183 "GrammarParser.cpp" break; - case 48: // FeatureDeclarationOrDefinition: DeclarationDefinition -#line 725 "../../obj/src/GrammarParser.y" + case 50: // FeatureDeclarationOrDefinition: DeclarationDefinition +#line 742 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < DeclarationDefinition::Ptr > (); } -#line 3166 "GrammarParser.cpp" +#line 3191 "GrammarParser.cpp" break; - case 49: // FeatureDeclarationOrDefinition: DerivedDefinition -#line 729 "../../obj/src/GrammarParser.y" + case 51: // FeatureDeclarationOrDefinition: DerivedDefinition +#line 746 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < DerivedDefinition::Ptr > (); } -#line 3174 "GrammarParser.cpp" +#line 3199 "GrammarParser.cpp" break; - case 50: // FeatureDeclarationOrDefinition: RuleDefinition -#line 733 "../../obj/src/GrammarParser.y" + case 52: // FeatureDeclarationOrDefinition: RuleDefinition +#line 750 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < RuleDefinition::Ptr > (); } -#line 3182 "GrammarParser.cpp" +#line 3207 "GrammarParser.cpp" break; - case 51: // FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition -#line 741 "../../obj/src/GrammarParser.y" + case 53: // FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition +#line 758 "../../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 3192 "GrammarParser.cpp" +#line 3217 "GrammarParser.cpp" break; - case 52: // FeatureDeclarationsAndDefinitions: FeatureDeclarationOrDefinition -#line 747 "../../obj/src/GrammarParser.y" + case 54: // FeatureDeclarationsAndDefinitions: FeatureDeclarationOrDefinition +#line 764 "../../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 3202 "GrammarParser.cpp" +#line 3227 "GrammarParser.cpp" break; - case 53: // ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" -#line 757 "../../obj/src/GrammarParser.y" + case 55: // ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" +#line 774 "../../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 3210 "GrammarParser.cpp" +#line 3235 "GrammarParser.cpp" break; - case 54: // ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" -#line 761 "../../obj/src/GrammarParser.y" + case 56: // ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" +#line 778 "../../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 3220 "GrammarParser.cpp" +#line 3245 "GrammarParser.cpp" break; - case 55: // ImplementationDefinitionDefinition: DerivedDefinition -#line 771 "../../obj/src/GrammarParser.y" + case 57: // ImplementationDefinitionDefinition: DerivedDefinition +#line 788 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < DerivedDefinition::Ptr > (); } -#line 3228 "GrammarParser.cpp" +#line 3253 "GrammarParser.cpp" break; - case 56: // ImplementationDefinitionDefinition: RuleDefinition -#line 775 "../../obj/src/GrammarParser.y" + case 58: // ImplementationDefinitionDefinition: RuleDefinition +#line 792 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < RuleDefinition::Ptr > (); } -#line 3236 "GrammarParser.cpp" +#line 3261 "GrammarParser.cpp" break; - case 57: // ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions ImplementationDefinitionDefinition -#line 783 "../../obj/src/GrammarParser.y" + case 59: // ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions +#line 800 "../../obj/src/GrammarParser.y" { - auto definitions = yystack_[1].value.as < Definitions::Ptr > (); - definitions->add( yystack_[0].value.as < Definition::Ptr > () ); + auto definitions = yystack_[0].value.as < Definitions::Ptr > (); + definitions->add( yystack_[1].value.as < Definition::Ptr > () ); yylhs.value.as < Definitions::Ptr > () = definitions; } -#line 3246 "GrammarParser.cpp" +#line 3271 "GrammarParser.cpp" break; - case 58: // ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition -#line 789 "../../obj/src/GrammarParser.y" + case 60: // ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition +#line 806 "../../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 3256 "GrammarParser.cpp" +#line 3281 "GrammarParser.cpp" break; - case 59: // DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type -#line 799 "../../obj/src/GrammarParser.y" + case 61: // DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type +#line 816 "../../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 3267 "GrammarParser.cpp" +#line 3292 "GrammarParser.cpp" break; - case 60: // DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters "->" Type -#line 806 "../../obj/src/GrammarParser.y" + case 62: // DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters "->" Type +#line 823 "../../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 3278 "GrammarParser.cpp" +#line 3303 "GrammarParser.cpp" break; - case 61: // Rules: Rules Rule -#line 821 "../../obj/src/GrammarParser.y" + case 63: // Rules: Rules Rule +#line 838 "../../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 3288 "GrammarParser.cpp" +#line 3313 "GrammarParser.cpp" break; - case 62: // Rules: Rule -#line 827 "../../obj/src/GrammarParser.y" + case 64: // Rules: Rule +#line 844 "../../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 3298 "GrammarParser.cpp" +#line 3323 "GrammarParser.cpp" break; - case 63: // Rule: SkipRule -#line 837 "../../obj/src/GrammarParser.y" + case 65: // Rule: SkipRule +#line 854 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < SkipRule::Ptr > (); } -#line 3306 "GrammarParser.cpp" +#line 3331 "GrammarParser.cpp" break; - case 64: // Rule: ConditionalRule -#line 841 "../../obj/src/GrammarParser.y" + case 66: // Rule: ConditionalRule +#line 858 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < ConditionalRule::Ptr > (); } -#line 3314 "GrammarParser.cpp" +#line 3339 "GrammarParser.cpp" break; - case 65: // Rule: CaseRule -#line 845 "../../obj/src/GrammarParser.y" + case 67: // Rule: CaseRule +#line 862 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < CaseRule::Ptr > (); } -#line 3322 "GrammarParser.cpp" +#line 3347 "GrammarParser.cpp" break; - case 66: // Rule: LetRule -#line 849 "../../obj/src/GrammarParser.y" + case 68: // Rule: LetRule +#line 866 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < LetRule::Ptr > (); } -#line 3330 "GrammarParser.cpp" +#line 3355 "GrammarParser.cpp" break; - case 67: // Rule: LocalRule -#line 853 "../../obj/src/GrammarParser.y" + case 69: // Rule: LocalRule +#line 870 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < LocalRule::Ptr > (); } -#line 3338 "GrammarParser.cpp" +#line 3363 "GrammarParser.cpp" break; - case 68: // Rule: ForallRule -#line 857 "../../obj/src/GrammarParser.y" + case 70: // Rule: ForallRule +#line 874 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < ForallRule::Ptr > (); } -#line 3346 "GrammarParser.cpp" +#line 3371 "GrammarParser.cpp" break; - case 69: // Rule: ChooseRule -#line 861 "../../obj/src/GrammarParser.y" + case 71: // Rule: ChooseRule +#line 878 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < ChooseRule::Ptr > (); } -#line 3354 "GrammarParser.cpp" +#line 3379 "GrammarParser.cpp" break; - case 70: // Rule: IterateRule -#line 865 "../../obj/src/GrammarParser.y" + case 72: // Rule: IterateRule +#line 882 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < IterateRule::Ptr > (); } -#line 3362 "GrammarParser.cpp" +#line 3387 "GrammarParser.cpp" break; - case 71: // Rule: BlockRule -#line 869 "../../obj/src/GrammarParser.y" + case 73: // Rule: BlockRule +#line 886 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < BlockRule::Ptr > (); } -#line 3370 "GrammarParser.cpp" +#line 3395 "GrammarParser.cpp" break; - case 72: // Rule: SequenceRule -#line 873 "../../obj/src/GrammarParser.y" + case 74: // Rule: SequenceRule +#line 890 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < SequenceRule::Ptr > (); } -#line 3378 "GrammarParser.cpp" +#line 3403 "GrammarParser.cpp" break; - case 73: // Rule: UpdateRule -#line 877 "../../obj/src/GrammarParser.y" + case 75: // Rule: UpdateRule +#line 894 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < UpdateRule::Ptr > (); } -#line 3386 "GrammarParser.cpp" +#line 3411 "GrammarParser.cpp" break; - case 74: // Rule: CallRule -#line 881 "../../obj/src/GrammarParser.y" + case 76: // Rule: CallRule +#line 898 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < CallRule::Ptr > (); } -#line 3394 "GrammarParser.cpp" +#line 3419 "GrammarParser.cpp" break; - case 75: // Rule: WhileRule -#line 885 "../../obj/src/GrammarParser.y" + case 77: // Rule: WhileRule +#line 902 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < WhileRule::Ptr > (); } -#line 3402 "GrammarParser.cpp" +#line 3427 "GrammarParser.cpp" break; - case 76: // SkipRule: "skip" -#line 893 "../../obj/src/GrammarParser.y" + case 78: // SkipRule: "skip" +#line 910 "../../obj/src/GrammarParser.y" { yylhs.value.as < SkipRule::Ptr > () = Ast::make< SkipRule >( yylhs.location, yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3410 "GrammarParser.cpp" +#line 3435 "GrammarParser.cpp" break; - case 77: // ConditionalRule: "if" Term "then" Rule -#line 901 "../../obj/src/GrammarParser.y" + case 79: // ConditionalRule: "if" Term "then" Rule +#line 918 "../../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 3418 "GrammarParser.cpp" +#line 3443 "GrammarParser.cpp" break; - case 78: // ConditionalRule: "if" Term "then" Rule "else" Rule -#line 905 "../../obj/src/GrammarParser.y" + case 80: // ConditionalRule: "if" Term "then" Rule "else" Rule +#line 922 "../../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 3426 "GrammarParser.cpp" +#line 3451 "GrammarParser.cpp" break; - case 79: // CaseRule: "case" Term "of" "{" CaseLabels "}" -#line 913 "../../obj/src/GrammarParser.y" + case 81: // CaseRule: "case" Term "of" "{" CaseLabels "}" +#line 930 "../../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 3434 "GrammarParser.cpp" +#line 3459 "GrammarParser.cpp" break; - case 80: // CaseRule: "case" Term "of" "{" error "}" -#line 917 "../../obj/src/GrammarParser.y" + case 82: // CaseRule: "case" Term "of" "{" error "}" +#line 934 "../../obj/src/GrammarParser.y" { yylhs.value.as < CaseRule::Ptr > () = nullptr; } -#line 3442 "GrammarParser.cpp" +#line 3467 "GrammarParser.cpp" break; - case 81: // CaseLabels: CaseLabels CaseLabel -#line 925 "../../obj/src/GrammarParser.y" + case 83: // CaseLabels: CaseLabels CaseLabel +#line 942 "../../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 3452 "GrammarParser.cpp" +#line 3477 "GrammarParser.cpp" break; - case 82: // CaseLabels: CaseLabel -#line 931 "../../obj/src/GrammarParser.y" + case 84: // CaseLabels: CaseLabel +#line 948 "../../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 3462 "GrammarParser.cpp" +#line 3487 "GrammarParser.cpp" break; - case 83: // CaseLabel: "default" ":" Rule -#line 941 "../../obj/src/GrammarParser.y" + case 85: // CaseLabel: "default" ":" Rule +#line 958 "../../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 3470 "GrammarParser.cpp" +#line 3495 "GrammarParser.cpp" break; - case 84: // CaseLabel: "_" ":" Rule -#line 945 "../../obj/src/GrammarParser.y" + case 86: // CaseLabel: "_" ":" Rule +#line 962 "../../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 3478 "GrammarParser.cpp" +#line 3503 "GrammarParser.cpp" break; - case 85: // CaseLabel: Term ":" Rule -#line 949 "../../obj/src/GrammarParser.y" + case 87: // CaseLabel: Term ":" Rule +#line 966 "../../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 3486 "GrammarParser.cpp" +#line 3511 "GrammarParser.cpp" break; - case 86: // LetRule: "let" VariableBindings "in" Rule -#line 957 "../../obj/src/GrammarParser.y" + case 88: // LetRule: "let" VariableBindings "in" Rule +#line 974 "../../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 3494 "GrammarParser.cpp" +#line 3519 "GrammarParser.cpp" break; - case 87: // LocalRule: "local" LocalFunctionDefinitions "in" Rule -#line 965 "../../obj/src/GrammarParser.y" + case 89: // LocalRule: "local" LocalFunctionDefinitions "in" Rule +#line 982 "../../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 3502 "GrammarParser.cpp" +#line 3527 "GrammarParser.cpp" break; - case 88: // ForallRule: "forall" AttributedVariables "in" Term "do" Rule -#line 973 "../../obj/src/GrammarParser.y" + case 90: // ForallRule: "forall" AttributedVariables "in" Term "do" Rule +#line 990 "../../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 3510 "GrammarParser.cpp" +#line 3535 "GrammarParser.cpp" break; - case 89: // ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" Rule -#line 977 "../../obj/src/GrammarParser.y" + case 91: // ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" Rule +#line 994 "../../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 3518 "GrammarParser.cpp" +#line 3543 "GrammarParser.cpp" break; - case 90: // ChooseRule: "choose" AttributedVariables "in" Term "do" Rule -#line 985 "../../obj/src/GrammarParser.y" + case 92: // ChooseRule: "choose" AttributedVariables "in" Term "do" Rule +#line 1002 "../../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 3526 "GrammarParser.cpp" +#line 3551 "GrammarParser.cpp" break; - case 91: // IterateRule: "iterate" Rule -#line 993 "../../obj/src/GrammarParser.y" + case 93: // IterateRule: "iterate" Rule +#line 1010 "../../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 3534 "GrammarParser.cpp" +#line 3559 "GrammarParser.cpp" break; - case 92: // BlockRule: "{" Rules "}" -#line 1001 "../../obj/src/GrammarParser.y" + case 94: // BlockRule: "{" Rules "}" +#line 1018 "../../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 3542 "GrammarParser.cpp" +#line 3567 "GrammarParser.cpp" break; - case 93: // BlockRule: "par" Rules "endpar" -#line 1005 "../../obj/src/GrammarParser.y" + case 95: // BlockRule: "par" Rules "endpar" +#line 1022 "../../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 3550 "GrammarParser.cpp" +#line 3575 "GrammarParser.cpp" break; - case 94: // BlockRule: "{" error "}" -#line 1009 "../../obj/src/GrammarParser.y" + case 96: // BlockRule: "{" error "}" +#line 1026 "../../obj/src/GrammarParser.y" { yylhs.value.as < BlockRule::Ptr > () = nullptr; yyerrok; } -#line 3559 "GrammarParser.cpp" +#line 3584 "GrammarParser.cpp" break; - case 95: // BlockRule: "par" error "endpar" -#line 1014 "../../obj/src/GrammarParser.y" + case 97: // BlockRule: "par" error "endpar" +#line 1031 "../../obj/src/GrammarParser.y" { yylhs.value.as < BlockRule::Ptr > () = nullptr; yyerrok; } -#line 3568 "GrammarParser.cpp" +#line 3593 "GrammarParser.cpp" break; - case 96: // SequenceRule: "{|" Rules "|}" -#line 1023 "../../obj/src/GrammarParser.y" + case 98: // SequenceRule: "{|" Rules "|}" +#line 1040 "../../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 3576 "GrammarParser.cpp" +#line 3601 "GrammarParser.cpp" break; - case 97: // SequenceRule: "seq" Rules "endseq" -#line 1027 "../../obj/src/GrammarParser.y" + case 99: // SequenceRule: "seq" Rules "endseq" +#line 1044 "../../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 3584 "GrammarParser.cpp" +#line 3609 "GrammarParser.cpp" break; - case 98: // SequenceRule: "{|" error "|}" -#line 1031 "../../obj/src/GrammarParser.y" + case 100: // SequenceRule: "{|" error "|}" +#line 1048 "../../obj/src/GrammarParser.y" { yylhs.value.as < SequenceRule::Ptr > () = nullptr; yyerrok; } -#line 3593 "GrammarParser.cpp" +#line 3618 "GrammarParser.cpp" break; - case 99: // SequenceRule: "seq" error "endseq" -#line 1036 "../../obj/src/GrammarParser.y" + case 101: // SequenceRule: "seq" error "endseq" +#line 1053 "../../obj/src/GrammarParser.y" { yylhs.value.as < SequenceRule::Ptr > () = nullptr; yyerrok; } -#line 3602 "GrammarParser.cpp" +#line 3627 "GrammarParser.cpp" break; - case 100: // UpdateRule: DirectCallExpression ":=" Term -#line 1045 "../../obj/src/GrammarParser.y" + case 102: // UpdateRule: DirectCallExpression ":=" Term +#line 1062 "../../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 3610 "GrammarParser.cpp" +#line 3635 "GrammarParser.cpp" break; - case 101: // CallRule: CallExpression -#line 1053 "../../obj/src/GrammarParser.y" + case 103: // CallRule: CallExpression +#line 1070 "../../obj/src/GrammarParser.y" { yylhs.value.as < CallRule::Ptr > () = Ast::make< CallRule >( yylhs.location, yystack_[0].value.as < CallExpression::Ptr > () ); } -#line 3618 "GrammarParser.cpp" +#line 3643 "GrammarParser.cpp" break; - case 102: // WhileRule: "while" Term "do" Rule -#line 1061 "../../obj/src/GrammarParser.y" + case 104: // WhileRule: "while" Term "do" Rule +#line 1078 "../../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 3626 "GrammarParser.cpp" +#line 3651 "GrammarParser.cpp" break; - case 103: // Terms: Terms "," Term -#line 1073 "../../obj/src/GrammarParser.y" + case 105: // Terms: Terms "," Term +#line 1090 "../../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 3637 "GrammarParser.cpp" +#line 3662 "GrammarParser.cpp" break; - case 104: // Terms: Term -#line 1080 "../../obj/src/GrammarParser.y" + case 106: // Terms: Term +#line 1097 "../../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 3647 "GrammarParser.cpp" +#line 3672 "GrammarParser.cpp" break; - case 105: // Term: SimpleOrClaspedTerm -#line 1090 "../../obj/src/GrammarParser.y" + case 107: // Term: SimpleOrClaspedTerm +#line 1107 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < Expression::Ptr > (); } -#line 3655 "GrammarParser.cpp" +#line 3680 "GrammarParser.cpp" break; - case 106: // Term: TypeCastingExpression -#line 1094 "../../obj/src/GrammarParser.y" + case 108: // Term: TypeCastingExpression +#line 1111 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < TypeCastingExpression::Ptr > (); } -#line 3663 "GrammarParser.cpp" +#line 3688 "GrammarParser.cpp" break; - case 107: // Term: OperatorExpression -#line 1098 "../../obj/src/GrammarParser.y" + case 109: // Term: OperatorExpression +#line 1115 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < Expression::Ptr > (); } -#line 3671 "GrammarParser.cpp" +#line 3696 "GrammarParser.cpp" break; - case 108: // Term: LetExpression -#line 1102 "../../obj/src/GrammarParser.y" + case 110: // Term: LetExpression +#line 1119 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < LetExpression::Ptr > (); } -#line 3679 "GrammarParser.cpp" +#line 3704 "GrammarParser.cpp" break; - case 109: // Term: ConditionalExpression -#line 1106 "../../obj/src/GrammarParser.y" + case 111: // Term: ConditionalExpression +#line 1123 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < ConditionalExpression::Ptr > (); } -#line 3687 "GrammarParser.cpp" +#line 3712 "GrammarParser.cpp" break; - case 110: // Term: ChooseExpression -#line 1110 "../../obj/src/GrammarParser.y" + case 112: // Term: ChooseExpression +#line 1127 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < ChooseExpression::Ptr > (); } -#line 3695 "GrammarParser.cpp" +#line 3720 "GrammarParser.cpp" break; - case 111: // Term: UniversalQuantifierExpression -#line 1114 "../../obj/src/GrammarParser.y" + case 113: // Term: UniversalQuantifierExpression +#line 1131 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < UniversalQuantifierExpression::Ptr > (); } -#line 3703 "GrammarParser.cpp" +#line 3728 "GrammarParser.cpp" break; - case 112: // Term: ExistentialQuantifierExpression -#line 1118 "../../obj/src/GrammarParser.y" + case 114: // Term: ExistentialQuantifierExpression +#line 1135 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < ExistentialQuantifierExpression::Ptr > (); } -#line 3711 "GrammarParser.cpp" +#line 3736 "GrammarParser.cpp" break; - case 113: // Term: CardinalityExpression -#line 1122 "../../obj/src/GrammarParser.y" + case 115: // Term: CardinalityExpression +#line 1139 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < CardinalityExpression::Ptr > (); } -#line 3719 "GrammarParser.cpp" +#line 3744 "GrammarParser.cpp" break; - case 114: // SimpleOrClaspedTerm: "(" Term ")" -#line 1130 "../../obj/src/GrammarParser.y" + case 116: // SimpleOrClaspedTerm: "(" Term ")" +#line 1147 "../../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 3727 "GrammarParser.cpp" +#line 3752 "GrammarParser.cpp" break; - case 115: // SimpleOrClaspedTerm: "(" error ")" -#line 1134 "../../obj/src/GrammarParser.y" + case 117: // SimpleOrClaspedTerm: "(" error ")" +#line 1151 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = nullptr; } -#line 3735 "GrammarParser.cpp" +#line 3760 "GrammarParser.cpp" break; - case 116: // SimpleOrClaspedTerm: CallExpression -#line 1138 "../../obj/src/GrammarParser.y" + case 118: // SimpleOrClaspedTerm: CallExpression +#line 1155 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < CallExpression::Ptr > (); } -#line 3743 "GrammarParser.cpp" +#line 3768 "GrammarParser.cpp" break; - case 117: // SimpleOrClaspedTerm: LiteralCallExpression -#line 1142 "../../obj/src/GrammarParser.y" + case 119: // SimpleOrClaspedTerm: LiteralCallExpression +#line 1159 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < LiteralCallExpression::Ptr > (); } -#line 3751 "GrammarParser.cpp" +#line 3776 "GrammarParser.cpp" break; - case 118: // SimpleOrClaspedTerm: Literal -#line 1146 "../../obj/src/GrammarParser.y" + case 120: // SimpleOrClaspedTerm: Literal +#line 1163 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < Literal::Ptr > (); } -#line 3759 "GrammarParser.cpp" +#line 3784 "GrammarParser.cpp" break; - case 119: // SimpleOrClaspedTerm: "+" SimpleOrClaspedTerm -#line 1150 "../../obj/src/GrammarParser.y" + case 121: // SimpleOrClaspedTerm: "+" SimpleOrClaspedTerm +#line 1167 "../../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 3767 "GrammarParser.cpp" +#line 3792 "GrammarParser.cpp" break; - case 120: // SimpleOrClaspedTerm: "-" SimpleOrClaspedTerm -#line 1154 "../../obj/src/GrammarParser.y" + case 122: // SimpleOrClaspedTerm: "-" SimpleOrClaspedTerm +#line 1171 "../../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 3775 "GrammarParser.cpp" +#line 3800 "GrammarParser.cpp" break; - case 121: // OperatorExpression: Term "+" Term -#line 1166 "../../obj/src/GrammarParser.y" + case 123: // OperatorExpression: Term "+" Term +#line 1183 "../../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 3783 "GrammarParser.cpp" +#line 3808 "GrammarParser.cpp" break; - case 122: // OperatorExpression: Term "-" Term -#line 1170 "../../obj/src/GrammarParser.y" + case 124: // OperatorExpression: Term "-" Term +#line 1187 "../../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 3791 "GrammarParser.cpp" +#line 3816 "GrammarParser.cpp" break; - case 123: // OperatorExpression: Term "*" Term -#line 1174 "../../obj/src/GrammarParser.y" + case 125: // OperatorExpression: Term "*" Term +#line 1191 "../../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 3799 "GrammarParser.cpp" +#line 3824 "GrammarParser.cpp" break; - case 124: // OperatorExpression: Term "/" Term -#line 1178 "../../obj/src/GrammarParser.y" + case 126: // OperatorExpression: Term "/" Term +#line 1195 "../../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 3807 "GrammarParser.cpp" +#line 3832 "GrammarParser.cpp" break; - case 125: // OperatorExpression: Term "%" Term -#line 1182 "../../obj/src/GrammarParser.y" + case 127: // OperatorExpression: Term "%" Term +#line 1199 "../../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 3815 "GrammarParser.cpp" +#line 3840 "GrammarParser.cpp" break; - case 126: // OperatorExpression: Term "^" Term -#line 1186 "../../obj/src/GrammarParser.y" + case 128: // OperatorExpression: Term "^" Term +#line 1203 "../../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 3823 "GrammarParser.cpp" +#line 3848 "GrammarParser.cpp" break; - case 127: // OperatorExpression: Term "!=" Term -#line 1190 "../../obj/src/GrammarParser.y" + case 129: // OperatorExpression: Term "!=" Term +#line 1207 "../../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 3831 "GrammarParser.cpp" +#line 3856 "GrammarParser.cpp" break; - case 128: // OperatorExpression: Term "=" Term -#line 1194 "../../obj/src/GrammarParser.y" + case 130: // OperatorExpression: Term "=" Term +#line 1211 "../../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 3839 "GrammarParser.cpp" +#line 3864 "GrammarParser.cpp" break; - case 129: // OperatorExpression: Term "<" Term -#line 1198 "../../obj/src/GrammarParser.y" + case 131: // OperatorExpression: Term "<" Term +#line 1215 "../../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 3847 "GrammarParser.cpp" +#line 3872 "GrammarParser.cpp" break; - case 130: // OperatorExpression: Term ">" Term -#line 1202 "../../obj/src/GrammarParser.y" + case 132: // OperatorExpression: Term ">" Term +#line 1219 "../../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 3855 "GrammarParser.cpp" +#line 3880 "GrammarParser.cpp" break; - case 131: // OperatorExpression: Term "<=" Term -#line 1206 "../../obj/src/GrammarParser.y" + case 133: // OperatorExpression: Term "<=" Term +#line 1223 "../../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 3863 "GrammarParser.cpp" +#line 3888 "GrammarParser.cpp" break; - case 132: // OperatorExpression: Term ">=" Term -#line 1210 "../../obj/src/GrammarParser.y" + case 134: // OperatorExpression: Term ">=" Term +#line 1227 "../../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 3871 "GrammarParser.cpp" +#line 3896 "GrammarParser.cpp" break; - case 133: // OperatorExpression: Term "or" Term -#line 1214 "../../obj/src/GrammarParser.y" + case 135: // OperatorExpression: Term "or" 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::OR_INSTRUCTION ); } -#line 3879 "GrammarParser.cpp" +#line 3904 "GrammarParser.cpp" break; - case 134: // OperatorExpression: Term "xor" Term -#line 1218 "../../obj/src/GrammarParser.y" + case 136: // OperatorExpression: Term "xor" 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::XOR_INSTRUCTION ); } -#line 3887 "GrammarParser.cpp" +#line 3912 "GrammarParser.cpp" break; - case 135: // OperatorExpression: Term "and" Term -#line 1222 "../../obj/src/GrammarParser.y" + case 137: // OperatorExpression: Term "and" 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::AND_INSTRUCTION ); } -#line 3895 "GrammarParser.cpp" +#line 3920 "GrammarParser.cpp" break; - case 136: // OperatorExpression: Term "=>" Term -#line 1226 "../../obj/src/GrammarParser.y" + case 138: // 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::IMP_INSTRUCTION ); } -#line 3903 "GrammarParser.cpp" +#line 3928 "GrammarParser.cpp" break; - case 137: // OperatorExpression: Term "implies" Term -#line 1230 "../../obj/src/GrammarParser.y" + case 139: // OperatorExpression: Term "implies" 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::IMP_INSTRUCTION ); } -#line 3911 "GrammarParser.cpp" +#line 3936 "GrammarParser.cpp" break; - case 138: // OperatorExpression: "not" Term -#line 1234 "../../obj/src/GrammarParser.y" + case 140: // OperatorExpression: "not" Term +#line 1251 "../../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 3919 "GrammarParser.cpp" +#line 3944 "GrammarParser.cpp" break; - case 139: // CallExpression: DirectCallExpression -#line 1242 "../../obj/src/GrammarParser.y" + case 141: // CallExpression: DirectCallExpression +#line 1259 "../../obj/src/GrammarParser.y" { yylhs.value.as < CallExpression::Ptr > () = yystack_[0].value.as < DirectCallExpression::Ptr > (); } -#line 3927 "GrammarParser.cpp" +#line 3952 "GrammarParser.cpp" break; - case 140: // CallExpression: MethodCallExpression -#line 1246 "../../obj/src/GrammarParser.y" + case 142: // CallExpression: MethodCallExpression +#line 1263 "../../obj/src/GrammarParser.y" { yylhs.value.as < CallExpression::Ptr > () = yystack_[0].value.as < MethodCallExpression::Ptr > (); } -#line 3935 "GrammarParser.cpp" +#line 3960 "GrammarParser.cpp" break; - case 141: // CallExpression: IndirectCallExpression -#line 1250 "../../obj/src/GrammarParser.y" + case 143: // CallExpression: IndirectCallExpression +#line 1267 "../../obj/src/GrammarParser.y" { yylhs.value.as < CallExpression::Ptr > () = yystack_[0].value.as < IndirectCallExpression::Ptr > (); } -#line 3943 "GrammarParser.cpp" +#line 3968 "GrammarParser.cpp" break; - case 142: // DirectCallExpression: IdentifierPath -#line 1258 "../../obj/src/GrammarParser.y" + case 144: // DirectCallExpression: IdentifierPath +#line 1275 "../../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 3952 "GrammarParser.cpp" +#line 3977 "GrammarParser.cpp" break; - case 143: // DirectCallExpression: IdentifierPath "(" ")" -#line 1263 "../../obj/src/GrammarParser.y" + case 145: // DirectCallExpression: IdentifierPath "(" ")" +#line 1280 "../../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 3963 "GrammarParser.cpp" +#line 3988 "GrammarParser.cpp" break; - case 144: // DirectCallExpression: IdentifierPath "(" Terms ")" -#line 1270 "../../obj/src/GrammarParser.y" + case 146: // DirectCallExpression: IdentifierPath "(" Terms ")" +#line 1287 "../../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 3973 "GrammarParser.cpp" +#line 3998 "GrammarParser.cpp" break; - case 145: // DirectCallExpression: IdentifierPath "(" error ")" -#line 1276 "../../obj/src/GrammarParser.y" + case 147: // DirectCallExpression: IdentifierPath "(" error ")" +#line 1293 "../../obj/src/GrammarParser.y" { yylhs.value.as < DirectCallExpression::Ptr > () = nullptr; } -#line 3981 "GrammarParser.cpp" +#line 4006 "GrammarParser.cpp" break; - case 146: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier -#line 1284 "../../obj/src/GrammarParser.y" + case 148: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier +#line 1301 "../../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 3990 "GrammarParser.cpp" +#line 4015 "GrammarParser.cpp" break; - case 147: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" ")" -#line 1289 "../../obj/src/GrammarParser.y" + case 149: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" ")" +#line 1306 "../../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 4001 "GrammarParser.cpp" +#line 4026 "GrammarParser.cpp" break; - case 148: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms ")" -#line 1296 "../../obj/src/GrammarParser.y" + case 150: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms ")" +#line 1313 "../../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 4011 "GrammarParser.cpp" +#line 4036 "GrammarParser.cpp" break; - case 149: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error ")" -#line 1302 "../../obj/src/GrammarParser.y" + case 151: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error ")" +#line 1319 "../../obj/src/GrammarParser.y" { yylhs.value.as < MethodCallExpression::Ptr > () = nullptr; } -#line 4019 "GrammarParser.cpp" +#line 4044 "GrammarParser.cpp" break; - case 150: // LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral -#line 1310 "../../obj/src/GrammarParser.y" + case 152: // LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral +#line 1327 "../../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 4027 "GrammarParser.cpp" +#line 4052 "GrammarParser.cpp" break; - case 151: // IndirectCallExpression: CallExpression "(" ")" -#line 1318 "../../obj/src/GrammarParser.y" + case 153: // IndirectCallExpression: CallExpression "(" ")" +#line 1335 "../../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 4038 "GrammarParser.cpp" +#line 4063 "GrammarParser.cpp" break; - case 152: // IndirectCallExpression: CallExpression "(" Terms ")" -#line 1325 "../../obj/src/GrammarParser.y" + case 154: // IndirectCallExpression: CallExpression "(" Terms ")" +#line 1342 "../../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 4048 "GrammarParser.cpp" +#line 4073 "GrammarParser.cpp" break; - case 153: // IndirectCallExpression: CallExpression "(" error ")" -#line 1331 "../../obj/src/GrammarParser.y" + case 155: // IndirectCallExpression: CallExpression "(" error ")" +#line 1348 "../../obj/src/GrammarParser.y" { yylhs.value.as < IndirectCallExpression::Ptr > () = nullptr; } -#line 4056 "GrammarParser.cpp" +#line 4081 "GrammarParser.cpp" break; - case 154: // TypeCastingExpression: SimpleOrClaspedTerm "as" Type -#line 1339 "../../obj/src/GrammarParser.y" + case 156: // TypeCastingExpression: SimpleOrClaspedTerm "as" Type +#line 1356 "../../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 4064 "GrammarParser.cpp" +#line 4089 "GrammarParser.cpp" break; - case 155: // LetExpression: "let" VariableBindings "in" Term -#line 1347 "../../obj/src/GrammarParser.y" + case 157: // LetExpression: "let" VariableBindings "in" Term +#line 1364 "../../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 4072 "GrammarParser.cpp" +#line 4097 "GrammarParser.cpp" break; - case 156: // ConditionalExpression: "if" Term "then" Term "else" Term -#line 1355 "../../obj/src/GrammarParser.y" + case 158: // ConditionalExpression: "if" Term "then" Term "else" Term +#line 1372 "../../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 4080 "GrammarParser.cpp" +#line 4105 "GrammarParser.cpp" break; - case 157: // ChooseExpression: "choose" AttributedVariables "in" Term "do" Term -#line 1363 "../../obj/src/GrammarParser.y" + case 159: // ChooseExpression: "choose" AttributedVariables "in" Term "do" Term +#line 1380 "../../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 4088 "GrammarParser.cpp" +#line 4113 "GrammarParser.cpp" break; - case 158: // UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term -#line 1371 "../../obj/src/GrammarParser.y" + case 160: // UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term +#line 1388 "../../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 4096 "GrammarParser.cpp" +#line 4121 "GrammarParser.cpp" break; - case 159: // ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term -#line 1379 "../../obj/src/GrammarParser.y" + case 161: // ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term +#line 1396 "../../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 4104 "GrammarParser.cpp" +#line 4129 "GrammarParser.cpp" break; - case 160: // CardinalityExpression: "|" SimpleOrClaspedTerm "|" -#line 1387 "../../obj/src/GrammarParser.y" + case 162: // CardinalityExpression: "|" SimpleOrClaspedTerm "|" +#line 1404 "../../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 4112 "GrammarParser.cpp" +#line 4137 "GrammarParser.cpp" break; - case 161: // Literal: UndefinedLiteral -#line 1400 "../../obj/src/GrammarParser.y" + case 163: // Literal: UndefinedLiteral +#line 1417 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < UndefLiteral::Ptr > (); } -#line 4120 "GrammarParser.cpp" +#line 4145 "GrammarParser.cpp" break; - case 162: // Literal: BooleanLiteral -#line 1404 "../../obj/src/GrammarParser.y" + case 164: // Literal: BooleanLiteral +#line 1421 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4128 "GrammarParser.cpp" +#line 4153 "GrammarParser.cpp" break; - case 163: // Literal: IntegerLiteral -#line 1408 "../../obj/src/GrammarParser.y" + case 165: // Literal: IntegerLiteral +#line 1425 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4136 "GrammarParser.cpp" +#line 4161 "GrammarParser.cpp" break; - case 164: // Literal: RationalLiteral -#line 1412 "../../obj/src/GrammarParser.y" + case 166: // Literal: RationalLiteral +#line 1429 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4144 "GrammarParser.cpp" +#line 4169 "GrammarParser.cpp" break; - case 165: // Literal: DecimalLiteral -#line 1416 "../../obj/src/GrammarParser.y" + case 167: // Literal: DecimalLiteral +#line 1433 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4152 "GrammarParser.cpp" +#line 4177 "GrammarParser.cpp" break; - case 166: // Literal: BinaryLiteral -#line 1420 "../../obj/src/GrammarParser.y" + case 168: // Literal: BinaryLiteral +#line 1437 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4160 "GrammarParser.cpp" +#line 4185 "GrammarParser.cpp" break; - case 167: // Literal: StringLiteral -#line 1424 "../../obj/src/GrammarParser.y" + case 169: // Literal: StringLiteral +#line 1441 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4168 "GrammarParser.cpp" +#line 4193 "GrammarParser.cpp" break; - case 168: // Literal: ReferenceLiteral -#line 1428 "../../obj/src/GrammarParser.y" + case 170: // Literal: ReferenceLiteral +#line 1445 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ReferenceLiteral::Ptr > (); } -#line 4176 "GrammarParser.cpp" +#line 4201 "GrammarParser.cpp" break; - case 169: // Literal: ListLiteral -#line 1432 "../../obj/src/GrammarParser.y" + case 171: // Literal: ListLiteral +#line 1449 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ListLiteral::Ptr > (); } -#line 4184 "GrammarParser.cpp" +#line 4209 "GrammarParser.cpp" break; - case 170: // Literal: RangeLiteral -#line 1436 "../../obj/src/GrammarParser.y" + case 172: // Literal: RangeLiteral +#line 1453 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < RangeLiteral::Ptr > (); } -#line 4192 "GrammarParser.cpp" +#line 4217 "GrammarParser.cpp" break; - case 171: // Literal: TupleLiteral -#line 1440 "../../obj/src/GrammarParser.y" + case 173: // Literal: TupleLiteral +#line 1457 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < TupleLiteral::Ptr > (); } -#line 4200 "GrammarParser.cpp" +#line 4225 "GrammarParser.cpp" break; - case 172: // Literal: RecordLiteral -#line 1444 "../../obj/src/GrammarParser.y" + case 174: // Literal: RecordLiteral +#line 1461 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < RecordLiteral::Ptr > (); } -#line 4208 "GrammarParser.cpp" +#line 4233 "GrammarParser.cpp" break; - case 173: // UndefinedLiteral: "undef" -#line 1452 "../../obj/src/GrammarParser.y" + case 175: // UndefinedLiteral: "undef" +#line 1469 "../../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 4217 "GrammarParser.cpp" +#line 4242 "GrammarParser.cpp" break; - case 174: // BooleanLiteral: "true" -#line 1461 "../../obj/src/GrammarParser.y" + case 176: // BooleanLiteral: "true" +#line 1478 "../../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 4227 "GrammarParser.cpp" +#line 4252 "GrammarParser.cpp" break; - case 175: // BooleanLiteral: "false" -#line 1467 "../../obj/src/GrammarParser.y" + case 177: // BooleanLiteral: "false" +#line 1484 "../../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 4237 "GrammarParser.cpp" +#line 4262 "GrammarParser.cpp" break; - case 176: // IntegerLiteral: "integer" -#line 1477 "../../obj/src/GrammarParser.y" + case 178: // IntegerLiteral: "integer" +#line 1494 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4245 "GrammarParser.cpp" +#line 4270 "GrammarParser.cpp" break; - case 177: // RationalLiteral: "rational" -#line 1485 "../../obj/src/GrammarParser.y" + case 179: // RationalLiteral: "rational" +#line 1502 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4253 "GrammarParser.cpp" +#line 4278 "GrammarParser.cpp" break; - case 178: // DecimalLiteral: "decimal" -#line 1493 "../../obj/src/GrammarParser.y" + case 180: // DecimalLiteral: "decimal" +#line 1510 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4261 "GrammarParser.cpp" +#line 4286 "GrammarParser.cpp" break; - case 179: // BinaryLiteral: "binary" -#line 1501 "../../obj/src/GrammarParser.y" + case 181: // BinaryLiteral: "binary" +#line 1518 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4269 "GrammarParser.cpp" +#line 4294 "GrammarParser.cpp" break; - case 180: // BinaryLiteral: "hexadecimal" -#line 1505 "../../obj/src/GrammarParser.y" + case 182: // BinaryLiteral: "hexadecimal" +#line 1522 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4277 "GrammarParser.cpp" +#line 4302 "GrammarParser.cpp" break; - case 181: // StringLiteral: "string" -#line 1513 "../../obj/src/GrammarParser.y" + case 183: // StringLiteral: "string" +#line 1530 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4285 "GrammarParser.cpp" +#line 4310 "GrammarParser.cpp" break; - case 182: // ReferenceLiteral: "@" IdentifierPath -#line 1521 "../../obj/src/GrammarParser.y" + case 184: // ReferenceLiteral: "@" IdentifierPath +#line 1538 "../../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 4293 "GrammarParser.cpp" +#line 4318 "GrammarParser.cpp" break; - case 183: // ListLiteral: "[" "]" -#line 1529 "../../obj/src/GrammarParser.y" + case 185: // ListLiteral: "[" "]" +#line 1546 "../../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 4304 "GrammarParser.cpp" +#line 4329 "GrammarParser.cpp" break; - case 184: // ListLiteral: "[" Terms "]" -#line 1536 "../../obj/src/GrammarParser.y" + case 186: // ListLiteral: "[" Terms "]" +#line 1553 "../../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 4314 "GrammarParser.cpp" +#line 4339 "GrammarParser.cpp" break; - case 185: // ListLiteral: "[" error "]" -#line 1542 "../../obj/src/GrammarParser.y" + case 187: // ListLiteral: "[" error "]" +#line 1559 "../../obj/src/GrammarParser.y" { yylhs.value.as < ListLiteral::Ptr > () = nullptr; } -#line 4322 "GrammarParser.cpp" +#line 4347 "GrammarParser.cpp" break; - case 186: // RangeLiteral: "[" Term ".." Term "]" -#line 1550 "../../obj/src/GrammarParser.y" + case 188: // RangeLiteral: "[" Term ".." Term "]" +#line 1567 "../../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 4332 "GrammarParser.cpp" +#line 4357 "GrammarParser.cpp" break; - case 187: // TupleLiteral: "(" Terms "," Term ")" -#line 1559 "../../obj/src/GrammarParser.y" + case 189: // TupleLiteral: "(" Terms "," Term ")" +#line 1576 "../../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 > () ); @@ -4341,531 +4366,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 4345 "GrammarParser.cpp" +#line 4370 "GrammarParser.cpp" break; - case 188: // RecordLiteral: "(" Assignments ")" -#line 1570 "../../obj/src/GrammarParser.y" + case 190: // RecordLiteral: "(" Assignments ")" +#line 1587 "../../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 4355 "GrammarParser.cpp" +#line 4380 "GrammarParser.cpp" break; - case 189: // Assignments: Assignments "," Assignment -#line 1579 "../../obj/src/GrammarParser.y" + case 191: // Assignments: Assignments "," Assignment +#line 1596 "../../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 4366 "GrammarParser.cpp" +#line 4391 "GrammarParser.cpp" break; - case 190: // Assignments: Assignment -#line 1586 "../../obj/src/GrammarParser.y" + case 192: // Assignments: Assignment +#line 1603 "../../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 4376 "GrammarParser.cpp" +#line 4401 "GrammarParser.cpp" break; - case 191: // Assignment: Identifier ":" Term -#line 1595 "../../obj/src/GrammarParser.y" + case 193: // Assignment: Identifier ":" Term +#line 1612 "../../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 4384 "GrammarParser.cpp" +#line 4409 "GrammarParser.cpp" break; - case 192: // Types: Types "," Type -#line 1607 "../../obj/src/GrammarParser.y" + case 194: // Types: Types "," Type +#line 1624 "../../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 4395 "GrammarParser.cpp" +#line 4420 "GrammarParser.cpp" break; - case 193: // Types: Type -#line 1614 "../../obj/src/GrammarParser.y" + case 195: // Types: Type +#line 1631 "../../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 4405 "GrammarParser.cpp" +#line 4430 "GrammarParser.cpp" break; - case 194: // Type: BasicType -#line 1623 "../../obj/src/GrammarParser.y" + case 196: // Type: BasicType +#line 1640 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < BasicType::Ptr > (); } -#line 4413 "GrammarParser.cpp" +#line 4438 "GrammarParser.cpp" break; - case 195: // Type: TupleType -#line 1627 "../../obj/src/GrammarParser.y" + case 197: // Type: TupleType +#line 1644 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < TupleType::Ptr > (); } -#line 4421 "GrammarParser.cpp" +#line 4446 "GrammarParser.cpp" break; - case 196: // Type: RecordType -#line 1631 "../../obj/src/GrammarParser.y" + case 198: // Type: RecordType +#line 1648 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < RecordType::Ptr > (); } -#line 4429 "GrammarParser.cpp" +#line 4454 "GrammarParser.cpp" break; - case 197: // Type: TemplateType -#line 1635 "../../obj/src/GrammarParser.y" + case 199: // Type: TemplateType +#line 1652 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < TemplateType::Ptr > (); } -#line 4437 "GrammarParser.cpp" +#line 4462 "GrammarParser.cpp" break; - case 198: // Type: RelationType -#line 1639 "../../obj/src/GrammarParser.y" + case 200: // Type: RelationType +#line 1656 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < RelationType::Ptr > (); } -#line 4445 "GrammarParser.cpp" +#line 4470 "GrammarParser.cpp" break; - case 199: // Type: FixedSizedType -#line 1643 "../../obj/src/GrammarParser.y" + case 201: // Type: FixedSizedType +#line 1660 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < FixedSizedType::Ptr > (); } -#line 4453 "GrammarParser.cpp" +#line 4478 "GrammarParser.cpp" break; - case 200: // BasicType: IdentifierPath -#line 1651 "../../obj/src/GrammarParser.y" + case 202: // BasicType: IdentifierPath +#line 1668 "../../obj/src/GrammarParser.y" { yylhs.value.as < BasicType::Ptr > () = Ast::make< BasicType >( yylhs.location, yystack_[0].value.as < IdentifierPath::Ptr > () ); } -#line 4461 "GrammarParser.cpp" +#line 4486 "GrammarParser.cpp" break; - case 201: // TupleType: "(" Types "," Type ")" -#line 1659 "../../obj/src/GrammarParser.y" + case 203: // TupleType: "(" Types "," Type ")" +#line 1676 "../../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 4472 "GrammarParser.cpp" +#line 4497 "GrammarParser.cpp" break; - case 202: // RecordType: "(" TypedVariables "," TypedVariable ")" -#line 1670 "../../obj/src/GrammarParser.y" + case 204: // RecordType: "(" TypedVariables "," TypedVariable ")" +#line 1687 "../../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 4483 "GrammarParser.cpp" +#line 4508 "GrammarParser.cpp" break; - case 203: // TemplateType: IdentifierPath "<" Types ">" -#line 1681 "../../obj/src/GrammarParser.y" + case 205: // TemplateType: IdentifierPath "<" Types ">" +#line 1698 "../../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 4491 "GrammarParser.cpp" +#line 4516 "GrammarParser.cpp" break; - case 204: // RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" -#line 1689 "../../obj/src/GrammarParser.y" + case 206: // RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" +#line 1706 "../../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 4499 "GrammarParser.cpp" +#line 4524 "GrammarParser.cpp" break; - case 205: // FixedSizedType: IdentifierPath "'" Term -#line 1697 "../../obj/src/GrammarParser.y" + case 207: // FixedSizedType: IdentifierPath "'" Term +#line 1714 "../../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 4507 "GrammarParser.cpp" +#line 4532 "GrammarParser.cpp" break; - case 206: // FunctionParameters: FunctionParameters "*" Type -#line 1709 "../../obj/src/GrammarParser.y" + case 208: // FunctionParameters: FunctionParameters "*" Type +#line 1726 "../../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 4518 "GrammarParser.cpp" +#line 4543 "GrammarParser.cpp" break; - case 207: // FunctionParameters: Type -#line 1716 "../../obj/src/GrammarParser.y" + case 209: // FunctionParameters: Type +#line 1733 "../../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 4528 "GrammarParser.cpp" +#line 4553 "GrammarParser.cpp" break; - case 208: // MaybeFunctionParameters: FunctionParameters -#line 1726 "../../obj/src/GrammarParser.y" + case 210: // MaybeFunctionParameters: FunctionParameters +#line 1743 "../../obj/src/GrammarParser.y" { yylhs.value.as < Types::Ptr > () = yystack_[0].value.as < Types::Ptr > (); } -#line 4536 "GrammarParser.cpp" +#line 4561 "GrammarParser.cpp" break; - case 209: // MaybeFunctionParameters: %empty -#line 1730 "../../obj/src/GrammarParser.y" + case 211: // MaybeFunctionParameters: %empty +#line 1747 "../../obj/src/GrammarParser.y" { yylhs.value.as < Types::Ptr > () = Ast::make< Types >( yylhs.location ); } -#line 4544 "GrammarParser.cpp" +#line 4569 "GrammarParser.cpp" break; - case 210: // Parameters: Parameters "," TypedAttributedVariable -#line 1738 "../../obj/src/GrammarParser.y" + case 212: // Parameters: Parameters "," TypedAttributedVariable +#line 1755 "../../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 4555 "GrammarParser.cpp" +#line 4580 "GrammarParser.cpp" break; - case 211: // Parameters: TypedAttributedVariable -#line 1745 "../../obj/src/GrammarParser.y" + case 213: // Parameters: TypedAttributedVariable +#line 1762 "../../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 4565 "GrammarParser.cpp" +#line 4590 "GrammarParser.cpp" break; - case 212: // MaybeDefined: "defined" "{" Term "}" -#line 1759 "../../obj/src/GrammarParser.y" + case 214: // MaybeDefined: "defined" "{" Term "}" +#line 1776 "../../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 4573 "GrammarParser.cpp" +#line 4598 "GrammarParser.cpp" break; - case 213: // MaybeDefined: %empty -#line 1763 "../../obj/src/GrammarParser.y" + case 215: // MaybeDefined: %empty +#line 1780 "../../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 4581 "GrammarParser.cpp" +#line 4606 "GrammarParser.cpp" break; - case 214: // MaybeInitially: "=" "{" Initializers "}" -#line 1771 "../../obj/src/GrammarParser.y" + case 216: // MaybeInitially: "=" "{" Initializers "}" +#line 1788 "../../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 4589 "GrammarParser.cpp" +#line 4614 "GrammarParser.cpp" break; - case 215: // MaybeInitially: %empty -#line 1775 "../../obj/src/GrammarParser.y" + case 217: // MaybeInitially: %empty +#line 1792 "../../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 4598 "GrammarParser.cpp" +#line 4623 "GrammarParser.cpp" break; - case 216: // Initializers: Initializers "," Initializer -#line 1784 "../../obj/src/GrammarParser.y" + case 218: // Initializers: Initializers "," Initializer +#line 1801 "../../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 4609 "GrammarParser.cpp" +#line 4634 "GrammarParser.cpp" break; - case 217: // Initializers: Initializer -#line 1791 "../../obj/src/GrammarParser.y" + case 219: // Initializers: Initializer +#line 1808 "../../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 4619 "GrammarParser.cpp" +#line 4644 "GrammarParser.cpp" break; - case 218: // Initializer: Term -#line 1801 "../../obj/src/GrammarParser.y" + case 220: // Initializer: Term +#line 1818 "../../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 4628 "GrammarParser.cpp" +#line 4653 "GrammarParser.cpp" break; - case 219: // Initializer: "(" Term ")" "->" Term -#line 1806 "../../obj/src/GrammarParser.y" + case 221: // Initializer: "(" Term ")" "->" Term +#line 1823 "../../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 4638 "GrammarParser.cpp" +#line 4663 "GrammarParser.cpp" break; - case 220: // Initializer: TupleLiteral "->" Term -#line 1812 "../../obj/src/GrammarParser.y" + case 222: // Initializer: TupleLiteral "->" Term +#line 1829 "../../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 4649 "GrammarParser.cpp" +#line 4674 "GrammarParser.cpp" break; - case 221: // Identifier: "identifier" -#line 1827 "../../obj/src/GrammarParser.y" + case 223: // Identifier: "identifier" +#line 1844 "../../obj/src/GrammarParser.y" { yylhs.value.as < Identifier::Ptr > () = yystack_[0].value.as < Identifier::Ptr > (); } -#line 4657 "GrammarParser.cpp" +#line 4682 "GrammarParser.cpp" break; - case 222: // Identifier: "in" -#line 1831 "../../obj/src/GrammarParser.y" + case 224: // Identifier: "in" +#line 1848 "../../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 4666 "GrammarParser.cpp" +#line 4691 "GrammarParser.cpp" break; - case 223: // IdentifierPath: IdentifierPath "::" Identifier -#line 1840 "../../obj/src/GrammarParser.y" + case 225: // IdentifierPath: IdentifierPath "::" Identifier +#line 1857 "../../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 4677 "GrammarParser.cpp" +#line 4702 "GrammarParser.cpp" break; - case 224: // IdentifierPath: Identifier -#line 1847 "../../obj/src/GrammarParser.y" + case 226: // IdentifierPath: Identifier +#line 1864 "../../obj/src/GrammarParser.y" { yylhs.value.as < IdentifierPath::Ptr > () = Ast::make< IdentifierPath >( yylhs.location, yystack_[0].value.as < Identifier::Ptr > () ); } -#line 4685 "GrammarParser.cpp" +#line 4710 "GrammarParser.cpp" break; - case 225: // Variable: TypedVariable -#line 1859 "../../obj/src/GrammarParser.y" + case 227: // Variable: TypedVariable +#line 1876 "../../obj/src/GrammarParser.y" { yylhs.value.as < VariableDefinition::Ptr > () = yystack_[0].value.as < VariableDefinition::Ptr > (); } -#line 4693 "GrammarParser.cpp" +#line 4718 "GrammarParser.cpp" break; - case 226: // Variable: Identifier -#line 1863 "../../obj/src/GrammarParser.y" + case 228: // Variable: Identifier +#line 1880 "../../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 4702 "GrammarParser.cpp" +#line 4727 "GrammarParser.cpp" break; - case 227: // AttributedVariables: AttributedVariables "," AttributedVariable -#line 1872 "../../obj/src/GrammarParser.y" + case 229: // AttributedVariables: AttributedVariables "," AttributedVariable +#line 1889 "../../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 4713 "GrammarParser.cpp" +#line 4738 "GrammarParser.cpp" break; - case 228: // AttributedVariables: AttributedVariable -#line 1879 "../../obj/src/GrammarParser.y" + case 230: // AttributedVariables: AttributedVariable +#line 1896 "../../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 4723 "GrammarParser.cpp" +#line 4748 "GrammarParser.cpp" break; - case 229: // TypedVariables: TypedVariables "," TypedVariable -#line 1889 "../../obj/src/GrammarParser.y" + case 231: // TypedVariables: TypedVariables "," TypedVariable +#line 1906 "../../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 4734 "GrammarParser.cpp" +#line 4759 "GrammarParser.cpp" break; - case 230: // TypedVariables: TypedVariable -#line 1896 "../../obj/src/GrammarParser.y" + case 232: // TypedVariables: TypedVariable +#line 1913 "../../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 4744 "GrammarParser.cpp" +#line 4769 "GrammarParser.cpp" break; - case 231: // TypedVariable: Identifier ":" Type -#line 1906 "../../obj/src/GrammarParser.y" + case 233: // TypedVariable: Identifier ":" Type +#line 1923 "../../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 4753 "GrammarParser.cpp" +#line 4778 "GrammarParser.cpp" break; - case 232: // AttributedVariable: Attributes Variable -#line 1915 "../../obj/src/GrammarParser.y" + case 234: // AttributedVariable: Attributes Variable +#line 1932 "../../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 4763 "GrammarParser.cpp" +#line 4788 "GrammarParser.cpp" break; - case 233: // AttributedVariable: Variable -#line 1921 "../../obj/src/GrammarParser.y" + case 235: // AttributedVariable: Variable +#line 1938 "../../obj/src/GrammarParser.y" { yylhs.value.as < VariableDefinition::Ptr > () = yystack_[0].value.as < VariableDefinition::Ptr > (); } -#line 4771 "GrammarParser.cpp" +#line 4796 "GrammarParser.cpp" break; - case 234: // TypedAttributedVariable: Attributes TypedVariable -#line 1929 "../../obj/src/GrammarParser.y" + case 236: // TypedAttributedVariable: Attributes TypedVariable +#line 1946 "../../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 4781 "GrammarParser.cpp" +#line 4806 "GrammarParser.cpp" break; - case 235: // TypedAttributedVariable: TypedVariable -#line 1935 "../../obj/src/GrammarParser.y" + case 237: // TypedAttributedVariable: TypedVariable +#line 1952 "../../obj/src/GrammarParser.y" { yylhs.value.as < VariableDefinition::Ptr > () = yystack_[0].value.as < VariableDefinition::Ptr > (); } -#line 4789 "GrammarParser.cpp" +#line 4814 "GrammarParser.cpp" break; - case 236: // VariableBindings: VariableBindings "," VariableBinding -#line 1947 "../../obj/src/GrammarParser.y" + case 238: // VariableBindings: VariableBindings "," VariableBinding +#line 1964 "../../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 4800 "GrammarParser.cpp" +#line 4825 "GrammarParser.cpp" break; - case 237: // VariableBindings: VariableBinding -#line 1954 "../../obj/src/GrammarParser.y" + case 239: // VariableBindings: VariableBinding +#line 1971 "../../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 4810 "GrammarParser.cpp" +#line 4835 "GrammarParser.cpp" break; - case 238: // VariableBinding: AttributedVariable "=" Term -#line 1963 "../../obj/src/GrammarParser.y" + case 240: // VariableBinding: AttributedVariable "=" Term +#line 1980 "../../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 4818 "GrammarParser.cpp" +#line 4843 "GrammarParser.cpp" break; - case 239: // LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition -#line 1975 "../../obj/src/GrammarParser.y" + case 241: // LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition +#line 1992 "../../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 4829 "GrammarParser.cpp" +#line 4854 "GrammarParser.cpp" break; - case 240: // LocalFunctionDefinitions: AttributedLocalFunctionDefinition -#line 1982 "../../obj/src/GrammarParser.y" + case 242: // LocalFunctionDefinitions: AttributedLocalFunctionDefinition +#line 1999 "../../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 4839 "GrammarParser.cpp" +#line 4864 "GrammarParser.cpp" break; - case 241: // AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition -#line 1991 "../../obj/src/GrammarParser.y" + case 243: // AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition +#line 2008 "../../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 4849 "GrammarParser.cpp" +#line 4874 "GrammarParser.cpp" break; - case 242: // AttributedLocalFunctionDefinition: LocalFunctionDefinition -#line 1997 "../../obj/src/GrammarParser.y" + case 244: // AttributedLocalFunctionDefinition: LocalFunctionDefinition +#line 2014 "../../obj/src/GrammarParser.y" { yylhs.value.as < FunctionDefinition::Ptr > () = yystack_[0].value.as < FunctionDefinition::Ptr > (); } -#line 4857 "GrammarParser.cpp" +#line 4882 "GrammarParser.cpp" break; - case 243: // AttributedLocalFunctionDefinition: error -#line 2001 "../../obj/src/GrammarParser.y" + case 245: // AttributedLocalFunctionDefinition: error +#line 2018 "../../obj/src/GrammarParser.y" { yylhs.value.as < FunctionDefinition::Ptr > () = nullptr; } -#line 4865 "GrammarParser.cpp" +#line 4890 "GrammarParser.cpp" break; - case 244: // LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially -#line 2008 "../../obj/src/GrammarParser.y" + case 246: // LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially +#line 2025 "../../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 ); @@ -4877,77 +4902,77 @@ namespace libcasm_fe { initializer->setFunction( yylhs.value.as < FunctionDefinition::Ptr > () ); } } -#line 4881 "GrammarParser.cpp" +#line 4906 "GrammarParser.cpp" break; - case 245: // Attributes: Attributes Attribute -#line 2028 "../../obj/src/GrammarParser.y" + case 247: // Attributes: Attributes Attribute +#line 2045 "../../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 4891 "GrammarParser.cpp" +#line 4916 "GrammarParser.cpp" break; - case 246: // Attributes: Attribute -#line 2034 "../../obj/src/GrammarParser.y" + case 248: // Attributes: Attribute +#line 2051 "../../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 4901 "GrammarParser.cpp" +#line 4926 "GrammarParser.cpp" break; - case 247: // Attribute: "[" BasicAttribute "]" -#line 2043 "../../obj/src/GrammarParser.y" + case 249: // Attribute: "[" BasicAttribute "]" +#line 2060 "../../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 4912 "GrammarParser.cpp" +#line 4937 "GrammarParser.cpp" break; - case 248: // Attribute: "[" ExpressionAttribute "]" -#line 2050 "../../obj/src/GrammarParser.y" + case 250: // Attribute: "[" ExpressionAttribute "]" +#line 2067 "../../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 4923 "GrammarParser.cpp" +#line 4948 "GrammarParser.cpp" break; - case 249: // Attribute: "[" error "]" -#line 2057 "../../obj/src/GrammarParser.y" + case 251: // Attribute: "[" error "]" +#line 2074 "../../obj/src/GrammarParser.y" { yylhs.value.as < Attribute::Ptr > () = nullptr; } -#line 4931 "GrammarParser.cpp" +#line 4956 "GrammarParser.cpp" break; - case 250: // BasicAttribute: Identifier -#line 2064 "../../obj/src/GrammarParser.y" + case 252: // BasicAttribute: Identifier +#line 2081 "../../obj/src/GrammarParser.y" { yylhs.value.as < BasicAttribute::Ptr > () = Ast::make< BasicAttribute >( yylhs.location, yystack_[0].value.as < Identifier::Ptr > () ); } -#line 4939 "GrammarParser.cpp" +#line 4964 "GrammarParser.cpp" break; - case 251: // ExpressionAttribute: Identifier Term -#line 2071 "../../obj/src/GrammarParser.y" + case 253: // ExpressionAttribute: Identifier Term +#line 2088 "../../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 4947 "GrammarParser.cpp" +#line 4972 "GrammarParser.cpp" break; -#line 4951 "GrammarParser.cpp" +#line 4976 "GrammarParser.cpp" default: break; @@ -5296,796 +5321,784 @@ namespace libcasm_fe { } - const short Parser::yypact_ninf_ = -377; + const short Parser::yypact_ninf_ = -356; - const short Parser::yytable_ninf_ = -208; + const short Parser::yytable_ninf_ = -210; const short Parser::yypact_[] = { - 32, -377, 26, 57, 539, 33, -377, -17, -377, -377, - 1954, 18, 42, -377, -377, 5, 9, 9, 9, 9, - 9, 9, 9, 9, -6, 9, 130, -377, -377, -377, - -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, - -377, 563, -377, -377, -377, -5, -5, -5, 1954, -5, - -377, -377, -377, 1954, 239, 239, 1474, 1214, 239, 9, - -377, -377, -377, -377, -377, -377, 2711, 61, -377, 58, - -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, - -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, - -377, -377, -377, -377, -377, 16, -377, -377, 2019, 86, - -7, 119, 120, 135, 156, 138, 46, 143, 172, -6, - 187, -377, -377, -377, -377, -377, -377, 0, 177, -377, - -377, 190, -377, -377, 200, 38, -377, -5, 53, -377, - 59, 2248, 64, -377, -377, -377, 199, 202, 2466, -22, - -377, 211, 215, -377, 94, 2501, 19, 86, 1954, 1954, - 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, - 1954, 1954, 1954, 1954, 1954, -6, 28, 1279, 1344, 9, - 1474, 2711, 201, 134, -377, 15, -6, 230, 1824, 17, - -6, -6, -4, 1954, 9, 231, 243, 237, -377, 190, - 92, 240, -377, 246, -6, -6, 1954, -6, -6, 1954, - 1954, -5, -377, 1954, -5, 1954, 1954, 1954, -377, 1954, - -377, -377, 9, 1954, -377, -377, 1954, 1954, -377, 353, - 707, 2776, 2746, 228, 228, 448, 176, 176, 236, 236, - 236, -377, 2746, 448, 176, 176, -377, -377, 254, 256, - -377, 101, 2711, 257, -377, 168, -377, 2536, 1954, -377, - 2019, 258, 169, 190, -377, -377, -5, 261, 22, 857, - 944, -377, -5, 25, -5, -5, 1824, 1954, 1954, 1954, - 1014, 1084, -377, -377, -377, -377, -377, -377, -377, -377, - -377, -377, -377, -377, -377, -377, 235, 115, 252, 262, - 171, 263, -377, -377, 2711, -377, 312, 116, -6, 9, - 255, 278, 227, 195, 264, 259, -377, -377, 265, -377, - 2711, 2711, -377, 2396, -377, 2086, 2325, 2431, 2571, -377, - 211, 2711, 2711, 2606, 1409, -377, -377, -377, -377, 266, - 2711, -377, 267, 268, -5, -377, 1954, -377, -377, 221, - -377, -5, 315, 1544, -377, 314, 1614, 65, -377, 284, - 89, -377, -377, -5, 95, 100, -377, 2287, 2361, 2127, - 279, 1684, 269, 1754, 1954, -19, 4, 1824, 287, 9, - 9, -377, -377, -377, 51, -377, 292, 293, -377, -377, - -377, 60, 294, -6, -377, -6, -6, -6, 1954, 1954, - 1954, 1954, -377, -377, 295, -377, 184, 1954, -6, -6, - -377, 2711, -377, 22, -377, -377, -377, -377, -377, -377, - 1824, -6, 1824, 25, -377, 1954, 1954, 1824, 296, 1824, - -377, -377, -377, -377, 2711, 1824, -6, 1824, -6, -377, - -377, 74, 117, -377, -377, -377, -377, -377, -377, 255, - -377, -377, 286, 336, 2711, 2711, 2711, 2711, -377, -377, - 2711, 303, 305, -377, -377, 285, -377, -377, 2045, 2168, - 325, 1149, -377, -377, 308, -377, 309, -6, -6, 67, - -377, 307, 310, 1954, 1954, -6, 1824, 1954, 1824, 1824, - 316, 311, 317, 1889, -377, 2641, 1824, 1824, 306, 318, - -377, 1954, 320, -377, 2711, 2711, 336, -377, 2209, -377, - -377, -377, 1824, 1824, -377, -377, 1824, -377, -377, -6, - -6, 2676, 2019, 310, 1824, -377, -377, -377, -377, -377, - -377, 222, -377, -377, -377 + 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 }; const unsigned char Parser::yydefact_[] = { - 0, 4, 0, 0, 0, 0, 246, 0, 222, 221, - 250, 0, 0, 1, 9, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 0, 248, 0, 224, 223, + 252, 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, 245, 249, 0, 0, 0, 0, 0, - 173, 175, 174, 0, 0, 0, 0, 0, 0, 0, - 179, 180, 176, 177, 178, 181, 251, 105, 107, 116, - 139, 140, 117, 141, 106, 108, 109, 110, 111, 112, - 113, 118, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 224, 142, 247, 248, 0, 22, - 0, 0, 0, 224, 41, 0, 44, 0, 0, 0, - 0, 194, 195, 196, 197, 198, 199, 200, 0, 5, - 7, 226, 233, 225, 0, 0, 237, 0, 0, 228, - 0, 0, 0, 138, 119, 120, 0, 0, 104, 0, - 190, 224, 0, 183, 0, 104, 0, 182, 0, 0, + 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 218, 171, 0, 217, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 193, 224, - 200, 0, 230, 0, 0, 209, 0, 209, 0, 0, - 0, 0, 232, 0, 0, 0, 0, 0, 115, 0, - 114, 188, 0, 0, 185, 184, 0, 0, 160, 135, - 133, 134, 137, 121, 122, 128, 129, 130, 123, 124, - 125, 126, 136, 127, 131, 132, 154, 150, 146, 0, - 151, 0, 104, 0, 143, 0, 223, 104, 0, 23, - 0, 0, 0, 0, 235, 211, 0, 0, 0, 0, - 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 0, 101, 139, 0, - 0, 0, 40, 42, 43, 45, 0, 0, 0, 0, - 0, 0, 0, 193, 208, 0, 205, 207, 0, 231, - 238, 155, 236, 0, 227, 0, 0, 0, 103, 189, - 0, 191, 103, 0, 0, 153, 152, 145, 144, 114, - 220, 216, 0, 0, 0, 234, 0, 37, 39, 0, - 35, 0, 0, 0, 62, 0, 0, 0, 243, 0, - 0, 240, 242, 0, 0, 0, 91, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 50, 52, 0, 48, 192, 229, 55, 56, - 58, 0, 0, 0, 203, 0, 0, 0, 0, 0, - 0, 0, 187, 186, 0, 147, 0, 0, 0, 0, - 210, 25, 24, 0, 36, 99, 97, 61, 95, 93, - 0, 209, 0, 0, 241, 0, 0, 0, 0, 0, - 94, 92, 98, 96, 100, 0, 0, 0, 0, 29, - 46, 0, 0, 47, 51, 201, 202, 54, 57, 0, - 192, 206, 0, 213, 158, 157, 156, 159, 149, 148, - 219, 0, 0, 38, 86, 0, 87, 239, 0, 0, - 77, 0, 102, 32, 0, 30, 0, 209, 209, 0, - 204, 0, 215, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, - 53, 0, 0, 34, 27, 26, 213, 88, 0, 90, - 78, 80, 0, 0, 79, 81, 0, 33, 31, 0, - 0, 0, 0, 215, 0, 83, 84, 85, 59, 60, - 212, 0, 244, 89, 214 + 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 }; const short Parser::yypgoto_[] = { - -377, -377, -377, -377, 341, 347, -377, -377, 7, 11, - 96, -13, -377, -377, -377, -377, -377, -377, -377, 20, - -377, -377, -376, -46, -377, -75, 445, -377, -377, -377, - -377, -84, -377, -377, -377, -377, -377, -377, -377, -377, - -377, -377, -49, 50, -30, -377, 220, 342, -377, -377, - -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, - -377, 234, -377, -377, -377, -377, -377, -377, -377, -97, - -377, -377, 189, 213, -21, -377, -377, -377, -377, -377, - -377, -377, -195, 233, -90, -104, -102, 173, 483, -15, - 297, -37, -377, -80, -23, 91, 165, 232, -377, 21, - 75, 13, 2, -377, -377 + -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 }; const short Parser::yydefgoto_[] = { - 0, 3, 4, 26, 27, 28, 29, 30, 378, 379, - 33, 338, 339, 34, 35, 36, 37, 38, 39, 373, - 374, 40, 380, 381, 375, 343, 344, 273, 274, 275, - 483, 484, 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, 472, 493, 173, 174, 94, 95, - 122, 128, 191, 123, 129, 255, 125, 126, 350, 351, - 352, 127, 6, 11, 12 + 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 }; const short Parser::yytable_[] = { - 99, 172, 308, 110, 104, 438, 106, 43, 144, 117, - 130, 31, 132, 5, 194, 32, 251, 41, 289, 8, - 8, 8, 124, 337, 134, 135, 348, 7, 146, 192, - 8, 211, 425, 31, 8, 1, 42, 32, 44, 41, - 8, 212, 8, 43, 147, 175, 109, 8, 31, 2, - 8, 8, 32, 8, 426, 427, 369, 13, 370, 169, - 66, 98, 293, 200, 195, 16, 176, 18, 168, 2, - 196, 2, 16, 96, 18, 169, 2, 428, 203, 2, - 218, 9, 9, 9, 205, 184, 2, 2, 188, 207, - 410, 166, 9, 438, 190, 254, 9, 97, 131, 254, - 165, 201, 9, 133, 9, 169, 138, 145, 433, 9, - 167, 62, 9, 9, 412, 9, 204, 437, 241, 245, - 415, 369, 204, 370, 490, 416, 175, 204, 201, 43, - -2, 14, 467, 166, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 236, 169, 25, 176, 286, 215, - 190, 169, 413, 172, 326, 257, 195, 216, 204, 291, - 292, 190, 196, 204, 216, 190, 190, 167, 178, 179, - 177, 178, 179, 301, 303, 468, 335, 309, 124, 190, - 190, 314, 190, 190, 2, 346, 181, -116, 256, 183, - 180, 249, 256, 180, 185, 361, 363, 250, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 182, 455, 242, 242, 377, - 247, 328, 333, 186, 366, 152, 153, 354, 355, 286, - 286, 216, 334, 294, 334, 197, 286, 449, 193, 124, - 286, 286, 157, 158, 159, 160, 306, 216, 198, 310, - 311, 199, 208, 313, 254, 315, 316, 317, 43, 318, - 16, -207, 18, 321, 8, 209, 322, 323, -207, 213, - 214, 341, 488, 489, 248, 396, 353, 376, 402, 524, - 50, 51, 52, 190, 403, 250, 258, 296, 54, 55, - 383, 56, 384, 57, 157, 158, 159, 160, 330, 297, - 298, 59, 300, 299, 371, 160, 324, 166, 372, 325, - 327, 332, 336, 286, 367, 365, 286, 357, 358, 359, - 60, 61, 62, 63, 64, 65, 9, 364, 25, 382, - 385, 286, 386, 286, 405, 408, 420, 286, 387, 397, - 398, 399, 411, 43, 430, 435, 436, 256, 448, 422, - 439, 470, 461, 471, 473, 43, 474, 479, 475, 486, - 487, 492, 440, 491, 441, 442, 443, 119, 190, 502, - 190, 190, 190, 501, 242, 503, 512, 451, 452, 509, - 286, 371, 286, 190, 190, 372, 401, 286, 120, 286, - 453, 510, 368, 469, 434, 286, 190, 286, 287, 505, - 237, 319, 152, 153, 154, 464, 513, 466, 302, 522, - 521, 190, 290, 190, 424, 172, 341, 155, 156, 157, - 158, 159, 160, 331, 202, 400, 353, 347, 414, 162, - 163, 164, 0, 312, 457, 0, 0, 0, 444, 445, - 446, 447, 0, 0, 0, 0, 286, 450, 286, 286, - 0, 0, 190, 190, 496, 0, 286, 286, 0, 0, - 190, 0, 0, 0, 0, 458, 459, 0, 0, 0, - 0, 0, 286, 286, 0, 0, 286, 0, 0, 287, - 287, 0, 0, 0, 286, 10, 287, 0, 518, 519, - 287, 287, 0, 0, 190, 190, 0, 152, 153, 100, - 101, 102, 103, 105, 0, 107, 108, 0, 118, 0, - 0, 485, 155, 156, 157, 158, 159, 160, 0, 0, - 288, 0, 0, 494, 495, 163, 164, 498, 121, 121, - 121, 0, 121, 485, 0, 0, 0, 0, 0, 141, - 14, 511, 0, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 0, 0, 25, 0, 0, 0, 0, - 0, 0, 0, 287, 0, 0, 287, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, - 0, 287, 0, 287, 0, 0, 0, 287, 0, 0, - 0, 0, 189, 2, 0, 0, 0, 0, 0, 0, - 0, 288, 288, 0, 0, 0, 0, 0, 288, 0, - 121, 0, 288, 288, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, - 287, 0, 287, 0, 0, 0, 0, 287, 0, 287, - 0, 0, 0, 0, 0, 287, 0, 287, 0, 238, - 0, 0, 246, 141, 0, 0, 0, 0, 253, 0, - 0, 0, 253, 0, 0, 246, 0, 295, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 121, 288, 0, 121, 288, 0, - 0, 0, 0, 0, 0, 320, 287, 0, 287, 287, - 0, 0, 0, 288, 0, 288, 287, 287, 0, 288, - 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 287, 287, 0, 0, 287, 0, 0, 0, - 0, 0, 0, 0, 287, 0, 0, 0, 0, 253, - 0, 340, 0, 0, 0, 121, 349, 121, 121, 0, - 0, 148, 288, 150, 288, 0, 152, 153, 154, 288, - 0, 288, 0, 0, 0, 0, 0, 288, 0, 288, - 0, 155, 156, 157, 158, 159, 160, 0, 0, 0, - 0, 0, 253, 162, 163, 164, 0, 0, 407, 0, - 0, 407, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 407, 0, 407, 0, - 0, 0, 429, 0, 0, 0, 0, 253, 288, 0, - 288, 288, 0, 0, 404, 0, 0, 0, 288, 288, - 0, 0, 0, 0, 0, 0, 349, 0, 0, 0, - 0, 0, 0, 0, 288, 288, 0, 0, 288, 0, - 0, 0, 431, 432, 0, 454, 288, 456, 342, 0, - 0, 0, 460, 0, 462, 0, 0, 0, 0, 0, - 463, 0, 465, 0, 0, 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, 497, 0, 499, 500, 0, 0, 0, 0, 0, - 0, 507, 508, 0, 0, 0, 271, 0, 60, 61, - 62, 63, 64, 65, 9, 345, 0, 515, 516, 0, - 0, 517, 0, 0, 0, 0, 0, 0, 0, 523, - 0, 0, 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, - 480, 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, 481, 0, 49, 0, 0, 0, - 50, 51, 52, 0, 0, 0, 0, 53, 54, 55, - 0, 56, 0, 57, 0, 0, 0, 0, 0, 482, - 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, 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, + 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, + 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, 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, - 394, 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, 395, 57, 0, 0, 0, 0, 0, 0, - 58, 59, 0, 0, 0, 136, 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, 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, + 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 60, 61, 62, 63, 64, - 65, 9, 259, 406, 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, 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, 0, 0, 0, 0, - 0, 0, 0, 271, 0, 60, 61, 62, 63, 64, - 65, 9, 259, 0, 260, 409, 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, 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, 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, 421, 0, 0, 0, 0, 59, 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, 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, + 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, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 271, 423, 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, + 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, 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, 481, 0, 49, 0, 0, 0, - 50, 51, 52, 0, 0, 0, 0, 53, 54, 55, - 0, 56, 0, 57, 0, 0, 504, 0, 0, 482, - 58, 59, 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, 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, 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, 476, 0, 0, 0, 0, 0, - 58, 59, 0, 477, 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, 389, 0, 0, 0, 161, - 0, 162, 163, 164, 0, 0, 0, 0, 0, 0, - 148, 149, 150, 151, 0, 152, 153, 154, 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, 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, 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, 478, 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, 514, 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, 0, 152, 153, 154, + 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, 0, 0, 0, 0, - 0, 0, 155, 156, 157, 158, 159, 160, 417, 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, 390, 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, 418, 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, 388, 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, 391, - 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, 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, 0, 0, - 155, 156, 157, 158, 159, 160, 0, 0, 0, 0, - 161, 0, 162, 163, 164, 148, 149, 150, 151, 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, 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, + 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, 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, 392, 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, 393, 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, 506, - 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, 520, 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, + 160, 480, 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, 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, + 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, 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, 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 + 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 }; const short Parser::yycheck_[] = { - 15, 98, 197, 24, 19, 381, 21, 5, 57, 24, - 47, 4, 49, 0, 14, 4, 1, 4, 1, 25, - 25, 25, 45, 1, 54, 55, 1, 1, 58, 109, - 25, 53, 51, 26, 25, 3, 3, 26, 55, 26, - 25, 63, 25, 41, 59, 52, 52, 25, 41, 54, - 25, 25, 41, 25, 73, 51, 5, 0, 7, 59, - 10, 56, 66, 25, 64, 5, 73, 7, 52, 54, - 70, 54, 5, 55, 7, 59, 54, 73, 25, 54, - 61, 87, 87, 87, 25, 39, 54, 54, 109, 25, - 25, 72, 87, 469, 109, 175, 87, 55, 48, 179, - 39, 63, 87, 53, 87, 59, 56, 57, 57, 87, - 52, 83, 87, 87, 25, 87, 63, 57, 167, 168, - 25, 5, 63, 7, 57, 25, 52, 63, 63, 127, - 0, 1, 58, 72, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 165, 59, 16, 73, 178, 55, - 165, 59, 63, 250, 53, 176, 64, 63, 63, 180, - 181, 176, 70, 63, 63, 180, 181, 52, 51, 52, - 51, 51, 52, 194, 195, 58, 256, 198, 201, 194, - 195, 204, 197, 198, 54, 260, 51, 72, 175, 51, - 73, 57, 179, 73, 51, 270, 271, 63, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 59, 411, 167, 168, 299, - 170, 53, 53, 51, 53, 49, 50, 264, 265, 259, - 260, 63, 63, 183, 63, 58, 266, 53, 51, 262, - 270, 271, 66, 67, 68, 69, 196, 63, 58, 199, - 200, 51, 53, 203, 334, 205, 206, 207, 256, 209, - 5, 66, 7, 213, 25, 63, 216, 217, 73, 58, - 55, 258, 467, 468, 73, 324, 263, 298, 57, 57, - 41, 42, 43, 298, 63, 63, 56, 56, 49, 50, - 63, 52, 65, 54, 66, 67, 68, 69, 248, 56, - 63, 62, 56, 63, 297, 69, 52, 72, 297, 53, - 53, 53, 51, 343, 51, 53, 346, 267, 268, 269, - 81, 82, 83, 84, 85, 86, 87, 75, 16, 51, - 66, 361, 73, 363, 19, 21, 57, 367, 73, 73, - 73, 73, 58, 341, 57, 53, 53, 334, 53, 80, - 56, 65, 56, 17, 51, 353, 51, 32, 73, 51, - 51, 51, 383, 56, 385, 386, 387, 26, 383, 58, - 385, 386, 387, 57, 324, 58, 56, 398, 399, 73, - 410, 374, 412, 398, 399, 374, 336, 417, 41, 419, - 403, 73, 296, 439, 374, 425, 411, 427, 178, 483, - 166, 212, 49, 50, 51, 426, 496, 428, 195, 513, - 512, 426, 179, 428, 364, 512, 403, 64, 65, 66, - 67, 68, 69, 250, 127, 334, 413, 262, 353, 76, - 77, 78, -1, 201, 413, -1, -1, -1, 388, 389, - 390, 391, -1, -1, -1, -1, 476, 397, 478, 479, - -1, -1, 467, 468, 475, -1, 486, 487, -1, -1, - 475, -1, -1, -1, -1, 415, 416, -1, -1, -1, - -1, -1, 502, 503, -1, -1, 506, -1, -1, 259, - 260, -1, -1, -1, 514, 2, 266, -1, 509, 510, - 270, 271, -1, -1, 509, 510, -1, 49, 50, 16, - 17, 18, 19, 20, -1, 22, 23, -1, 25, -1, - -1, 461, 64, 65, 66, 67, 68, 69, -1, -1, - 178, -1, -1, 473, 474, 77, 78, 477, 45, 46, - 47, -1, 49, 483, -1, -1, -1, -1, -1, 56, - 1, 491, -1, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, -1, -1, 16, -1, -1, -1, -1, - -1, -1, -1, 343, -1, -1, 346, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, -1, -1, 16, - -1, 361, -1, 363, -1, -1, -1, 367, -1, -1, - -1, -1, 109, 54, -1, -1, -1, -1, -1, -1, - -1, 259, 260, -1, -1, -1, -1, -1, 266, -1, - 127, -1, 270, 271, -1, -1, -1, 54, -1, -1, - -1, -1, -1, 178, -1, -1, -1, -1, -1, -1, - 410, -1, 412, -1, -1, -1, -1, 417, -1, 419, - -1, -1, -1, -1, -1, 425, -1, 427, -1, 166, - -1, -1, 169, 170, -1, -1, -1, -1, 175, -1, - -1, -1, 179, -1, -1, 182, -1, 184, -1, -1, + 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, + 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 201, 343, -1, 204, 346, -1, - -1, -1, -1, -1, -1, 212, 476, -1, 478, 479, - -1, -1, -1, 361, -1, 363, 486, 487, -1, 367, - -1, 266, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 502, 503, -1, -1, 506, -1, -1, -1, - -1, -1, -1, -1, 514, -1, -1, -1, -1, 256, - -1, 258, -1, -1, -1, 262, 263, 264, 265, -1, - -1, 44, 410, 46, 412, -1, 49, 50, 51, 417, - -1, 419, -1, -1, -1, -1, -1, 425, -1, 427, - -1, 64, 65, 66, 67, 68, 69, -1, -1, -1, - -1, -1, 299, 76, 77, 78, -1, -1, 343, -1, - -1, 346, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 361, -1, 363, -1, - -1, -1, 367, -1, -1, -1, -1, 334, 476, -1, - 478, 479, -1, -1, 341, -1, -1, -1, 486, 487, - -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, - -1, -1, -1, -1, 502, 503, -1, -1, 506, -1, - -1, -1, 369, 370, -1, 410, 514, 412, 1, -1, - -1, -1, 417, -1, 419, -1, -1, -1, -1, -1, - 425, -1, 427, -1, -1, 18, -1, 20, -1, 22, - 23, 24, 25, 26, 27, 28, 403, 30, -1, -1, - 33, -1, -1, -1, -1, -1, 413, 40, 41, 42, - 43, -1, -1, -1, -1, -1, 49, 50, -1, 52, - -1, 54, -1, 56, -1, -1, -1, -1, -1, 62, - -1, 476, -1, 478, 479, -1, -1, -1, -1, -1, - -1, 486, 487, -1, -1, -1, 79, -1, 81, 82, - 83, 84, 85, 86, 87, 1, -1, 502, 503, -1, - -1, 506, -1, -1, -1, -1, -1, -1, -1, 514, - -1, -1, 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, 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, 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, -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, -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, + 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, -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, 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, - 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, 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, -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, 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, -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, + 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, -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, + 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, -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, + 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, - -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, + 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, -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, + 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, - 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, 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, -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, - 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, -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, -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, + -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, -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, -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, + 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, + -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, 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, -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, -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 + 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 }; const unsigned char Parser::yystos_[] = { - 0, 3, 54, 94, 95, 194, 195, 1, 25, 87, - 181, 196, 197, 0, 1, 4, 5, 6, 7, 8, + 0, 3, 54, 94, 95, 195, 196, 1, 25, 87, + 182, 197, 198, 0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 16, 96, 97, 98, 99, - 100, 101, 102, 103, 106, 107, 108, 109, 110, 111, - 114, 194, 3, 195, 55, 23, 26, 27, 30, 37, + 100, 101, 102, 104, 107, 108, 109, 110, 111, 112, + 115, 195, 3, 196, 55, 23, 26, 27, 30, 37, 41, 42, 43, 48, 49, 50, 52, 54, 61, 62, - 81, 82, 83, 84, 85, 86, 136, 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, 181, 182, 55, 55, 56, 182, - 181, 181, 181, 181, 182, 181, 182, 181, 181, 52, - 167, 168, 169, 170, 171, 172, 173, 182, 181, 97, - 98, 181, 183, 186, 187, 189, 190, 194, 184, 187, - 184, 136, 184, 136, 137, 137, 1, 135, 136, 164, - 165, 181, 1, 55, 135, 136, 137, 182, 44, 45, + 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, 46, 47, 49, 50, 51, 64, 65, 66, 67, 68, 69, 74, 76, 77, 78, 39, 72, 52, 52, 59, - 52, 136, 162, 179, 180, 52, 73, 51, 51, 52, - 73, 51, 59, 51, 39, 51, 51, 166, 167, 181, - 182, 185, 186, 51, 14, 64, 70, 58, 58, 51, - 25, 63, 183, 25, 63, 25, 31, 25, 53, 63, - 53, 53, 63, 58, 55, 55, 63, 71, 61, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 167, 154, 181, 1, - 53, 135, 136, 1, 53, 135, 181, 136, 73, 57, - 63, 1, 176, 181, 186, 188, 194, 167, 56, 18, + 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, 20, 22, 23, 24, 26, 27, 28, 30, 33, 40, - 56, 79, 119, 120, 121, 122, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 137, 139, 140, 1, - 176, 167, 167, 66, 136, 181, 56, 56, 63, 63, - 56, 167, 166, 167, 174, 175, 136, 167, 175, 167, - 136, 136, 190, 136, 187, 136, 136, 136, 136, 165, - 181, 136, 136, 136, 52, 53, 53, 53, 53, 53, - 136, 180, 53, 53, 63, 186, 51, 1, 104, 105, - 181, 194, 1, 118, 119, 1, 118, 189, 1, 181, - 191, 192, 193, 194, 184, 184, 119, 136, 136, 136, - 1, 118, 1, 118, 75, 53, 53, 51, 103, 5, - 7, 101, 102, 112, 113, 117, 167, 186, 101, 102, - 115, 116, 51, 63, 65, 66, 73, 73, 36, 29, - 32, 38, 53, 55, 1, 53, 135, 73, 73, 73, - 188, 136, 57, 63, 181, 19, 19, 119, 21, 21, - 25, 58, 25, 63, 193, 25, 25, 31, 34, 29, - 57, 57, 80, 80, 136, 51, 73, 51, 73, 119, - 57, 181, 181, 57, 112, 53, 53, 57, 115, 56, - 167, 167, 167, 167, 136, 136, 136, 136, 53, 53, - 136, 167, 167, 104, 119, 175, 119, 192, 136, 136, - 119, 56, 119, 119, 167, 119, 167, 58, 58, 116, - 65, 17, 177, 51, 51, 73, 29, 38, 29, 32, - 1, 35, 60, 123, 124, 136, 51, 51, 175, 175, - 57, 56, 51, 178, 136, 136, 167, 119, 136, 119, - 119, 57, 58, 58, 57, 124, 58, 119, 119, 73, - 73, 136, 56, 177, 29, 119, 119, 119, 167, 167, - 57, 179, 178, 119, 57 + 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 }; const unsigned char @@ -6094,29 +6107,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, 104, 104, 104, 105, 105, - 106, 107, 107, 108, 109, 109, 110, 111, 112, 112, - 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, - 117, 118, 118, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 120, 121, 121, 122, - 122, 123, 123, 124, 124, 124, 125, 126, 127, 127, - 128, 129, 130, 130, 130, 130, 131, 131, 131, 131, - 132, 133, 134, 135, 135, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 137, 137, 137, 137, 137, 137, - 137, 138, 138, 138, 138, 138, 138, 138, 138, 138, - 138, 138, 138, 138, 138, 138, 138, 138, 138, 139, - 139, 139, 140, 140, 140, 140, 141, 141, 141, 141, - 142, 143, 143, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 152, 153, 153, 154, 155, 156, 157, - 157, 158, 159, 160, 160, 160, 161, 162, 163, 164, - 164, 165, 166, 166, 167, 167, 167, 167, 167, 167, - 168, 169, 170, 171, 172, 173, 174, 174, 175, 175, + 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, 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, - 180, 181, 181, 182, 182, 183, 183, 184, 184, 185, - 185, 186, 187, 187, 188, 188, 189, 189, 190, 191, - 191, 192, 192, 192, 193, 194, 194, 195, 195, 195, - 196, 197 + 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 }; const signed char @@ -6125,29 +6138,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, 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, 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, 1, 1, + 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, + 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, 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, 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 }; @@ -6176,11 +6189,12 @@ namespace libcasm_fe { "CALL_WITHOUT_ARGS", "$accept", "Specification", "Header", "Definitions", "AttributedDefinition", "Definition", "InitDefinition", "EnumerationDefinition", "DerivedDefinition", "RuleDefinition", - "FunctionDefinition", "EnumeratorDefinition", "Enumerators", - "UsingDefinition", "UsingPathDefinition", "InvariantDefinition", - "ImportDefinition", "StructureDefinition", "FeatureDefinition", - "FeatureDeclarationOrDefinition", "FeatureDeclarationsAndDefinitions", - "ImplementationDefinition", "ImplementationDefinitionDefinition", + "FunctionDefinitions", "FunctionDefinition", "EnumeratorDefinition", + "Enumerators", "UsingDefinition", "UsingPathDefinition", + "InvariantDefinition", "ImportDefinition", "StructureDefinition", + "FeatureDefinition", "FeatureDeclarationOrDefinition", + "FeatureDeclarationsAndDefinitions", "ImplementationDefinition", + "ImplementationDefinitionDefinition", "ImplementationDefinitionDefinitions", "DeclarationDefinition", "Rules", "Rule", "SkipRule", "ConditionalRule", "CaseRule", "CaseLabels", "CaseLabel", "LetRule", "LocalRule", "ForallRule", "ChooseRule", @@ -6212,32 +6226,32 @@ namespace libcasm_fe { const short Parser::yyrline_[] = { - 0, 431, 431, 441, 447, 455, 461, 471, 477, 481, - 489, 493, 497, 501, 505, 509, 513, 517, 521, 525, - 529, 533, 541, 545, 553, 561, 566, 572, 580, 586, - 591, 598, 604, 608, 616, 631, 635, 641, 649, 656, - 666, 674, 678, 686, 694, 698, 706, 715, 724, 728, - 732, 740, 746, 756, 760, 770, 774, 782, 788, 798, - 805, 820, 826, 836, 840, 844, 848, 852, 856, 860, - 864, 868, 872, 876, 880, 884, 892, 900, 904, 912, - 916, 924, 930, 940, 944, 948, 956, 964, 972, 976, - 984, 992, 1000, 1004, 1008, 1013, 1022, 1026, 1030, 1035, - 1044, 1052, 1060, 1072, 1079, 1089, 1093, 1097, 1101, 1105, - 1109, 1113, 1117, 1121, 1129, 1133, 1137, 1141, 1145, 1149, - 1153, 1165, 1169, 1173, 1177, 1181, 1185, 1189, 1193, 1197, - 1201, 1205, 1209, 1213, 1217, 1221, 1225, 1229, 1233, 1241, - 1245, 1249, 1257, 1262, 1269, 1275, 1283, 1288, 1295, 1301, - 1309, 1317, 1324, 1330, 1338, 1346, 1354, 1362, 1370, 1378, - 1386, 1399, 1403, 1407, 1411, 1415, 1419, 1423, 1427, 1431, - 1435, 1439, 1443, 1451, 1460, 1466, 1476, 1484, 1492, 1500, - 1504, 1512, 1520, 1528, 1535, 1541, 1549, 1558, 1569, 1578, - 1585, 1594, 1606, 1613, 1622, 1626, 1630, 1634, 1638, 1642, - 1650, 1658, 1669, 1680, 1688, 1696, 1708, 1715, 1725, 1729, - 1737, 1744, 1758, 1762, 1770, 1774, 1783, 1790, 1800, 1805, - 1811, 1826, 1830, 1839, 1846, 1858, 1862, 1871, 1878, 1888, - 1895, 1905, 1914, 1920, 1928, 1934, 1946, 1953, 1962, 1974, - 1981, 1990, 1996, 2000, 2007, 2027, 2033, 2042, 2049, 2056, - 2063, 2070 + 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 }; void @@ -6270,9 +6284,9 @@ namespace libcasm_fe { #line 51 "../../obj/src/GrammarParser.y" } // libcasm_fe -#line 6274 "GrammarParser.cpp" +#line 6288 "GrammarParser.cpp" -#line 2076 "../../obj/src/GrammarParser.y" +#line 2093 "../../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 08c42ca9..19486068 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\l246 Attribute: \"[\" • BasicAttribute \"]\"\l247 | \"[\" • ExpressionAttribute \"]\"\l248 | \"[\" • error \"]\"\l"] + 2 [label="State 2\n\l248 Attribute: \"[\" • BasicAttribute \"]\"\l249 | \"[\" • ExpressionAttribute \"]\"\l250 | \"[\" • 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\"\l244 Attributes: Attributes • Attribute\l"] + 5 [label="State 5\n\l 2 Header: Attributes • \"CASM\"\l246 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\l245 Attributes: Attribute •\l"] - 6 -> "6R245" [style=solid] - "6R245" [label="R245", fillcolor=3, shape=diamond, style=filled] - 7 [label="State 7\n\l248 Attribute: \"[\" error • \"]\"\l"] + 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"] 7 -> 44 [style=solid label="\"]\""] - 8 [label="State 8\n\l221 Identifier: \"in\" •\l"] - 8 -> "8R221" [style=solid] - "8R221" [label="R221", fillcolor=3, shape=diamond, style=filled] - 9 [label="State 9\n\l220 Identifier: \"identifier\" •\l"] - 9 -> "9R220" [style=solid] - "9R220" [label="R220", fillcolor=3, shape=diamond, style=filled] - 10 [label="State 10\n\l249 BasicAttribute: Identifier •\l250 ExpressionAttribute: Identifier • Term\l"] + 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"] 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 -> "10R249" [style=solid] - "10R249" [label="R249", fillcolor=3, shape=diamond, style=filled] - 11 [label="State 11\n\l246 Attribute: \"[\" BasicAttribute • \"]\"\l"] + 10 -> "10R251" [style=solid] + "10R251" [label="R251", fillcolor=3, shape=diamond, style=filled] + 11 [label="State 11\n\l248 Attribute: \"[\" BasicAttribute • \"]\"\l"] 11 -> 96 [style=solid label="\"]\""] - 12 [label="State 12\n\l247 Attribute: \"[\" ExpressionAttribute • \"]\"\l"] + 12 [label="State 12\n\l249 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 39 UsingDefinition: \"using\" • Identifier \"=\" Type\l 40 UsingPathDefinition: \"using\" • IdentifierPath\l 41 | \"using\" • IdentifierPath \"::\" \"*\"\l"] + 19 [label="State 19\n\l 41 UsingDefinition: \"using\" • Identifier \"=\" Type\l 42 UsingPathDefinition: \"using\" • IdentifierPath\l 43 | \"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 42 InvariantDefinition: \"invariant\" • Identifier \"=\" Term\l"] + 20 [label="State 20\n\l 44 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 43 ImportDefinition: \"import\" • IdentifierPath\l 44 | \"import\" • IdentifierPath \"as\" Identifier\l"] + 21 [label="State 21\n\l 45 ImportDefinition: \"import\" • IdentifierPath\l 46 | \"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 45 StructureDefinition: \"structure\" • Identifier \"=\" \"{\" FunctionDefinition \"}\"\l"] + 22 [label="State 22\n\l 47 StructureDefinition: \"structure\" • Identifier \"=\" \"{\" FunctionDefinitions \"}\"\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 46 FeatureDefinition: \"feature\" • Identifier \"=\" \"{\" FeatureDeclarationsAndDefinitions \"}\"\l"] + 23 [label="State 23\n\l 48 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 52 ImplementationDefinition: \"implements\" • IdentifierPath \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l 53 | \"implements\" • Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 24 [label="State 24\n\l 54 ImplementationDefinition: \"implements\" • IdentifierPath \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l 55 | \"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 33 FunctionDefinition: \"function\" • Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] + 25 [label="State 25\n\l 35 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\l244 Attributes: Attributes • Attribute\l"] + 41 [label="State 41\n\l 6 AttributedDefinition: Attributes • Definition\l246 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\l244 Attributes: Attributes Attribute •\l"] - 43 -> "43R244" [style=solid] - "43R244" [label="R244", fillcolor=3, shape=diamond, style=filled] - 44 [label="State 44\n\l248 Attribute: \"[\" error \"]\" •\l"] - 44 -> "44R248" [style=solid] - "44R248" [label="R248", fillcolor=3, shape=diamond, style=filled] - 45 [label="State 45\n\l154 LetExpression: \"let\" • VariableBindings \"in\" Term\l"] + 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"] 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\l157 UniversalQuantifierExpression: \"forall\" • AttributedVariables \"in\" Term \"holds\" Term\l"] + 46 [label="State 46\n\l159 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\l156 ChooseExpression: \"choose\" • AttributedVariables \"in\" Term \"do\" Term\l"] + 47 [label="State 47\n\l158 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\l155 ConditionalExpression: \"if\" • Term \"then\" Term \"else\" Term\l"] + 48 [label="State 48\n\l157 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\l158 ExistentialQuantifierExpression: \"exists\" • AttributedVariables \"in\" Term \"with\" Term\l"] + 49 [label="State 49\n\l160 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\l172 UndefinedLiteral: \"undef\" •\l"] - 50 -> "50R172" [style=solid] - "50R172" [label="R172", fillcolor=3, shape=diamond, style=filled] - 51 [label="State 51\n\l174 BooleanLiteral: \"false\" •\l"] - 51 -> "51R174" [style=solid] - "51R174" [label="R174", fillcolor=3, shape=diamond, style=filled] - 52 [label="State 52\n\l173 BooleanLiteral: \"true\" •\l"] - 52 -> "52R173" [style=solid] - "52R173" [label="R173", fillcolor=3, shape=diamond, style=filled] - 53 [label="State 53\n\l137 OperatorExpression: \"not\" • Term\l"] + 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"] 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\l118 SimpleOrClaspedTerm: \"+\" • SimpleOrClaspedTerm\l"] + 54 [label="State 54\n\l120 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\l119 SimpleOrClaspedTerm: \"-\" • SimpleOrClaspedTerm\l"] + 55 [label="State 55\n\l121 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\l113 SimpleOrClaspedTerm: \"(\" • Term \")\"\l114 | \"(\" • error \")\"\l186 TupleLiteral: \"(\" • Terms \",\" Term \")\"\l187 RecordLiteral: \"(\" • Assignments \")\"\l"] + 56 [label="State 56\n\l115 SimpleOrClaspedTerm: \"(\" • Term \")\"\l116 | \"(\" • error \")\"\l188 TupleLiteral: \"(\" • Terms \",\" Term \")\"\l189 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\l182 ListLiteral: \"[\" • \"]\"\l183 | \"[\" • Terms \"]\"\l184 | \"[\" • error \"]\"\l185 RangeLiteral: \"[\" • Term \"..\" Term \"]\"\l"] + 57 [label="State 57\n\l184 ListLiteral: \"[\" • \"]\"\l185 | \"[\" • Terms \"]\"\l186 | \"[\" • error \"]\"\l187 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\l159 CardinalityExpression: \"|\" • SimpleOrClaspedTerm \"|\"\l"] + 58 [label="State 58\n\l161 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\l181 ReferenceLiteral: \"@\" • IdentifierPath\l"] + 59 [label="State 59\n\l183 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\l178 BinaryLiteral: \"binary\" •\l"] - 60 -> "60R178" [style=solid] - "60R178" [label="R178", fillcolor=3, shape=diamond, style=filled] - 61 [label="State 61\n\l179 BinaryLiteral: \"hexadecimal\" •\l"] - 61 -> "61R179" [style=solid] - "61R179" [label="R179", fillcolor=3, shape=diamond, style=filled] - 62 [label="State 62\n\l175 IntegerLiteral: \"integer\" •\l"] - 62 -> "62R175" [style=solid] - "62R175" [label="R175", fillcolor=3, shape=diamond, style=filled] - 63 [label="State 63\n\l176 RationalLiteral: \"rational\" •\l"] - 63 -> "63R176" [style=solid] - "63R176" [label="R176", fillcolor=3, shape=diamond, style=filled] - 64 [label="State 64\n\l177 DecimalLiteral: \"decimal\" •\l"] - 64 -> "64R177" [style=solid] - "64R177" [label="R177", fillcolor=3, shape=diamond, style=filled] - 65 [label="State 65\n\l180 StringLiteral: \"string\" •\l"] - 65 -> "65R180" [style=solid] - "65R180" [label="R180", fillcolor=3, shape=diamond, style=filled] - 66 [label="State 66\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l250 ExpressionAttribute: Identifier Term •\l"] + 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"] 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 -> "66R250" [style=solid] - "66R250" [label="R250", fillcolor=3, shape=diamond, style=filled] - 67 [label="State 67\n\l104 Term: SimpleOrClaspedTerm •\l145 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l146 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l147 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l149 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l153 TypeCastingExpression: SimpleOrClaspedTerm • \"as\" Type\l"] + 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"] 67 -> 165 [style=solid label="\"as\""] 67 -> 166 [style=solid label="\".\""] - 67 -> "67R104" [style=solid] - "67R104" [label="R104", fillcolor=3, shape=diamond, style=filled] - 68 [label="State 68\n\l106 Term: OperatorExpression •\l"] - 68 -> "68R106" [style=solid] - "68R106" [label="R106", fillcolor=3, shape=diamond, style=filled] - 69 [label="State 69\n\l115 SimpleOrClaspedTerm: CallExpression •\l150 IndirectCallExpression: CallExpression • \"(\" \")\"\l151 | CallExpression • \"(\" Terms \")\"\l152 | CallExpression • \"(\" error \")\"\l"] + 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"] 69 -> 167 [style=solid label="\"(\""] - 69 -> "69R115" [style=solid] - "69R115" [label="R115", fillcolor=3, shape=diamond, style=filled] - 70 [label="State 70\n\l138 CallExpression: DirectCallExpression •\l"] - 70 -> "70R138" [style=solid] - "70R138" [label="R138", fillcolor=3, shape=diamond, style=filled] - 71 [label="State 71\n\l139 CallExpression: MethodCallExpression •\l"] - 71 -> "71R139" [style=solid] - "71R139" [label="R139", fillcolor=3, shape=diamond, style=filled] - 72 [label="State 72\n\l116 SimpleOrClaspedTerm: LiteralCallExpression •\l"] - 72 -> "72R116" [style=solid] - "72R116" [label="R116", fillcolor=3, shape=diamond, style=filled] - 73 [label="State 73\n\l140 CallExpression: IndirectCallExpression •\l"] - 73 -> "73R140" [style=solid] - "73R140" [label="R140", fillcolor=3, shape=diamond, style=filled] - 74 [label="State 74\n\l105 Term: TypeCastingExpression •\l"] - 74 -> "74R105" [style=solid] - "74R105" [label="R105", fillcolor=3, shape=diamond, style=filled] - 75 [label="State 75\n\l107 Term: LetExpression •\l"] - 75 -> "75R107" [style=solid] - "75R107" [label="R107", fillcolor=3, shape=diamond, style=filled] - 76 [label="State 76\n\l108 Term: ConditionalExpression •\l"] - 76 -> "76R108" [style=solid] - "76R108" [label="R108", fillcolor=3, shape=diamond, style=filled] - 77 [label="State 77\n\l109 Term: ChooseExpression •\l"] - 77 -> "77R109" [style=solid] - "77R109" [label="R109", fillcolor=3, shape=diamond, style=filled] - 78 [label="State 78\n\l110 Term: UniversalQuantifierExpression •\l"] - 78 -> "78R110" [style=solid] - "78R110" [label="R110", fillcolor=3, shape=diamond, style=filled] - 79 [label="State 79\n\l111 Term: ExistentialQuantifierExpression •\l"] - 79 -> "79R111" [style=solid] - "79R111" [label="R111", fillcolor=3, shape=diamond, style=filled] - 80 [label="State 80\n\l112 Term: CardinalityExpression •\l"] - 80 -> "80R112" [style=solid] - "80R112" [label="R112", fillcolor=3, shape=diamond, style=filled] - 81 [label="State 81\n\l117 SimpleOrClaspedTerm: Literal •\l"] - 81 -> "81R117" [style=solid] - "81R117" [label="R117", fillcolor=3, shape=diamond, style=filled] - 82 [label="State 82\n\l160 Literal: UndefinedLiteral •\l"] - 82 -> "82R160" [style=solid] - "82R160" [label="R160", fillcolor=3, shape=diamond, style=filled] - 83 [label="State 83\n\l161 Literal: BooleanLiteral •\l"] - 83 -> "83R161" [style=solid] - "83R161" [label="R161", fillcolor=3, shape=diamond, style=filled] - 84 [label="State 84\n\l162 Literal: IntegerLiteral •\l"] - 84 -> "84R162" [style=solid] - "84R162" [label="R162", fillcolor=3, shape=diamond, style=filled] - 85 [label="State 85\n\l163 Literal: RationalLiteral •\l"] - 85 -> "85R163" [style=solid] - "85R163" [label="R163", fillcolor=3, shape=diamond, style=filled] - 86 [label="State 86\n\l164 Literal: DecimalLiteral •\l"] - 86 -> "86R164" [style=solid] - "86R164" [label="R164", fillcolor=3, shape=diamond, style=filled] - 87 [label="State 87\n\l165 Literal: BinaryLiteral •\l"] - 87 -> "87R165" [style=solid] - "87R165" [label="R165", fillcolor=3, shape=diamond, style=filled] - 88 [label="State 88\n\l166 Literal: StringLiteral •\l"] - 88 -> "88R166" [style=solid] - "88R166" [label="R166", fillcolor=3, shape=diamond, style=filled] - 89 [label="State 89\n\l167 Literal: ReferenceLiteral •\l"] - 89 -> "89R167" [style=solid] - "89R167" [label="R167", fillcolor=3, shape=diamond, style=filled] - 90 [label="State 90\n\l168 Literal: ListLiteral •\l"] - 90 -> "90R168" [style=solid] - "90R168" [label="R168", fillcolor=3, shape=diamond, style=filled] - 91 [label="State 91\n\l169 Literal: RangeLiteral •\l"] - 91 -> "91R169" [style=solid] - "91R169" [label="R169", fillcolor=3, shape=diamond, style=filled] - 92 [label="State 92\n\l170 Literal: TupleLiteral •\l"] - 92 -> "92R170" [style=solid] - "92R170" [label="R170", fillcolor=3, shape=diamond, style=filled] - 93 [label="State 93\n\l171 Literal: RecordLiteral •\l"] - 93 -> "93R171" [style=solid] - "93R171" [label="R171", fillcolor=3, shape=diamond, style=filled] - 94 [label="State 94\n\l223 IdentifierPath: Identifier •\l"] - 94 -> "94R223" [style=solid] - "94R223" [label="R223", fillcolor=3, shape=diamond, style=filled] - 95 [label="State 95\n\l141 DirectCallExpression: IdentifierPath •\l142 | IdentifierPath • \"(\" \")\"\l143 | IdentifierPath • \"(\" Terms \")\"\l144 | IdentifierPath • \"(\" error \")\"\l222 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 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"] 95 -> 168 [style=solid label="\"(\""] 95 -> 169 [style=solid label="\"::\""] - 95 -> "95R141" [style=solid] - "95R141" [label="R141", fillcolor=3, shape=diamond, style=filled] - 96 [label="State 96\n\l246 Attribute: \"[\" BasicAttribute \"]\" •\l"] - 96 -> "96R246" [style=solid] - "96R246" [label="R246", fillcolor=3, shape=diamond, style=filled] - 97 [label="State 97\n\l247 Attribute: \"[\" ExpressionAttribute \"]\" •\l"] - 97 -> "97R247" [style=solid] - "97R247" [label="R247", fillcolor=3, shape=diamond, style=filled] + 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] 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 •\l222 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 99 [label="State 99\n\l 21 InitDefinition: \"init\" IdentifierPath •\l224 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 39 UsingDefinition: \"using\" Identifier • \"=\" Type\l223 IdentifierPath: Identifier •\l"] + 103 [label="State 103\n\l 41 UsingDefinition: \"using\" Identifier • \"=\" Type\l225 IdentifierPath: Identifier •\l"] 103 -> 181 [style=solid label="\"=\""] - 103 -> "103R223" [style=solid] - "103R223" [label="R223", fillcolor=3, shape=diamond, style=filled] - 104 [label="State 104\n\l 40 UsingPathDefinition: \"using\" IdentifierPath •\l 41 | \"using\" IdentifierPath • \"::\" \"*\"\l222 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 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"] 104 -> 182 [style=solid label="\"::\""] - 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"] + 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"] 105 -> 183 [style=solid label="\"=\""] - 106 [label="State 106\n\l 43 ImportDefinition: \"import\" IdentifierPath •\l 44 | \"import\" IdentifierPath • \"as\" Identifier\l222 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 106 [label="State 106\n\l 45 ImportDefinition: \"import\" IdentifierPath •\l 46 | \"import\" IdentifierPath • \"as\" Identifier\l224 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] 106 -> 184 [style=solid label="\"as\""] 106 -> 169 [style=solid label="\"::\""] - 106 -> "106R43" [style=solid] - "106R43" [label="R43", fillcolor=3, shape=diamond, style=filled] - 107 [label="State 107\n\l 45 StructureDefinition: \"structure\" Identifier • \"=\" \"{\" FunctionDefinition \"}\"\l"] + 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"] 107 -> 185 [style=solid label="\"=\""] - 108 [label="State 108\n\l 46 FeatureDefinition: \"feature\" Identifier • \"=\" \"{\" FeatureDeclarationsAndDefinitions \"}\"\l"] + 108 [label="State 108\n\l 48 FeatureDefinition: \"feature\" Identifier • \"=\" \"{\" FeatureDeclarationsAndDefinitions \"}\"\l"] 108 -> 186 [style=solid label="\"=\""] - 109 [label="State 109\n\l200 TupleType: \"(\" • Types \",\" Type \")\"\l201 RecordType: \"(\" • TypedVariables \",\" TypedVariable \")\"\l"] + 109 [label="State 109\n\l202 TupleType: \"(\" • Types \",\" Type \")\"\l203 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 53 ImplementationDefinition: \"implements\" Type • \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 110 [label="State 110\n\l 55 ImplementationDefinition: \"implements\" Type • \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] 110 -> 193 [style=solid label="\"=\""] - 111 [label="State 111\n\l193 Type: BasicType •\l"] - 111 -> "111R193" [style=solid] - "111R193" [label="R193", fillcolor=3, shape=diamond, style=filled] - 112 [label="State 112\n\l194 Type: TupleType •\l"] - 112 -> "112R194" [style=solid] - "112R194" [label="R194", fillcolor=3, shape=diamond, style=filled] - 113 [label="State 113\n\l195 Type: RecordType •\l"] - 113 -> "113R195" [style=solid] - "113R195" [label="R195", fillcolor=3, shape=diamond, style=filled] - 114 [label="State 114\n\l196 Type: TemplateType •\l"] - 114 -> "114R196" [style=solid] - "114R196" [label="R196", fillcolor=3, shape=diamond, style=filled] - 115 [label="State 115\n\l197 Type: RelationType •\l"] - 115 -> "115R197" [style=solid] - "115R197" [label="R197", fillcolor=3, shape=diamond, style=filled] - 116 [label="State 116\n\l198 Type: FixedSizedType •\l"] - 116 -> "116R198" [style=solid] - "116R198" [label="R198", fillcolor=3, shape=diamond, style=filled] - 117 [label="State 117\n\l 52 ImplementationDefinition: \"implements\" IdentifierPath • \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l199 BasicType: IdentifierPath •\l202 TemplateType: IdentifierPath • \"<\" Types \">\"\l203 RelationType: IdentifierPath • \"<\" MaybeFunctionParameters \"->\" Type \">\"\l204 FixedSizedType: IdentifierPath • \"'\" Term\l222 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 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"] 117 -> 194 [style=solid label="\"for\""] 117 -> 169 [style=solid label="\"::\""] 117 -> 195 [style=solid label="\"<\""] 117 -> 196 [style=solid label="\"'\""] - 117 -> "117R199" [style=solid] - "117R199" [label="R199", fillcolor=3, shape=diamond, style=filled] - 118 [label="State 118\n\l 33 FunctionDefinition: \"function\" Identifier • \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] + 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"] 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\l225 Variable: Identifier •\l230 TypedVariable: Identifier • \":\" Type\l"] + 121 [label="State 121\n\l227 Variable: Identifier •\l232 TypedVariable: Identifier • \":\" Type\l"] 121 -> 198 [style=solid label="\":\""] - 121 -> "121R225" [style=solid] - "121R225" [label="R225", fillcolor=3, shape=diamond, style=filled] - 122 [label="State 122\n\l232 AttributedVariable: Variable •\l"] - 122 -> "122R232" [style=solid] - "122R232" [label="R232", fillcolor=3, shape=diamond, style=filled] - 123 [label="State 123\n\l224 Variable: TypedVariable •\l"] - 123 -> "123R224" [style=solid] - "123R224" [label="R224", fillcolor=3, shape=diamond, style=filled] - 124 [label="State 124\n\l237 VariableBinding: AttributedVariable • \"=\" Term\l"] + 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"] 124 -> 199 [style=solid label="\"=\""] - 125 [label="State 125\n\l154 LetExpression: \"let\" VariableBindings • \"in\" Term\l235 VariableBindings: VariableBindings • \",\" VariableBinding\l"] + 125 [label="State 125\n\l156 LetExpression: \"let\" VariableBindings • \"in\" Term\l237 VariableBindings: VariableBindings • \",\" VariableBinding\l"] 125 -> 200 [style=solid label="\"in\""] 125 -> 201 [style=solid label="\",\""] - 126 [label="State 126\n\l236 VariableBindings: VariableBinding •\l"] - 126 -> "126R236" [style=solid] - "126R236" [label="R236", fillcolor=3, shape=diamond, style=filled] - 127 [label="State 127\n\l231 AttributedVariable: Attributes • Variable\l244 Attributes: Attributes • Attribute\l"] + 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"] 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\l157 UniversalQuantifierExpression: \"forall\" AttributedVariables • \"in\" Term \"holds\" Term\l226 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] + 128 [label="State 128\n\l159 UniversalQuantifierExpression: \"forall\" AttributedVariables • \"in\" Term \"holds\" Term\l228 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] 128 -> 203 [style=solid label="\"in\""] 128 -> 204 [style=solid label="\",\""] - 129 [label="State 129\n\l227 AttributedVariables: AttributedVariable •\l"] - 129 -> "129R227" [style=solid] - "129R227" [label="R227", fillcolor=3, shape=diamond, style=filled] - 130 [label="State 130\n\l156 ChooseExpression: \"choose\" AttributedVariables • \"in\" Term \"do\" Term\l226 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] + 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"] 130 -> 205 [style=solid label="\"in\""] 130 -> 204 [style=solid label="\",\""] - 131 [label="State 131\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l155 ConditionalExpression: \"if\" Term • \"then\" Term \"else\" Term\l"] + 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 -> 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\l158 ExistentialQuantifierExpression: \"exists\" AttributedVariables • \"in\" Term \"with\" Term\l226 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] + 132 [label="State 132\n\l160 ExistentialQuantifierExpression: \"exists\" AttributedVariables • \"in\" Term \"with\" Term\l228 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] 132 -> 207 [style=solid label="\"in\""] 132 -> 204 [style=solid label="\",\""] - 133 [label="State 133\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l137 | \"not\" Term •\l"] - 133 -> "133R137" [style=solid] - "133R137" [label="R137", fillcolor=3, shape=diamond, style=filled] - 134 [label="State 134\n\l118 SimpleOrClaspedTerm: \"+\" SimpleOrClaspedTerm •\l145 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l146 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l147 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l149 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] - 134 -> "134R118" [style=solid] - "134R118" [label="R118", fillcolor=3, shape=diamond, style=filled] - 135 [label="State 135\n\l119 SimpleOrClaspedTerm: \"-\" SimpleOrClaspedTerm •\l145 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l146 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l147 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l149 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] - 135 -> "135R119" [style=solid] - "135R119" [label="R119", fillcolor=3, shape=diamond, style=filled] - 136 [label="State 136\n\l114 SimpleOrClaspedTerm: \"(\" error • \")\"\l"] + 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"] 136 -> 208 [style=solid label="\")\""] - 137 [label="State 137\n\l102 Terms: Terms • \",\" Term\l186 TupleLiteral: \"(\" Terms • \",\" Term \")\"\l"] + 137 [label="State 137\n\l104 Terms: Terms • \",\" Term\l188 TupleLiteral: \"(\" Terms • \",\" Term \")\"\l"] 137 -> 209 [style=solid label="\",\""] - 138 [label="State 138\n\l103 Terms: Term •\l113 SimpleOrClaspedTerm: \"(\" Term • \")\"\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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 -> 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 -> "138R103" [style=solid] - "138R103" [label="R103", fillcolor=3, shape=diamond, style=filled] - 139 [label="State 139\n\l187 RecordLiteral: \"(\" Assignments • \")\"\l188 Assignments: Assignments • \",\" Assignment\l"] + 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"] 139 -> 211 [style=solid label="\")\""] 139 -> 212 [style=solid label="\",\""] - 140 [label="State 140\n\l189 Assignments: Assignment •\l"] - 140 -> "140R189" [style=solid] - "140R189" [label="R189", fillcolor=3, shape=diamond, style=filled] - 141 [label="State 141\n\l190 Assignment: Identifier • \":\" Term\l223 IdentifierPath: Identifier •\l"] + 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"] 141 -> 213 [style=solid label="\":\""] - 141 -> "141R223" [style=solid] - "141R223" [label="R223", fillcolor=3, shape=diamond, style=filled] - 142 [label="State 142\n\l184 ListLiteral: \"[\" error • \"]\"\l"] + 141 -> "141R225" [style=solid] + "141R225" [label="R225", fillcolor=3, shape=diamond, style=filled] + 142 [label="State 142\n\l186 ListLiteral: \"[\" error • \"]\"\l"] 142 -> 214 [style=solid label="\"]\""] - 143 [label="State 143\n\l182 ListLiteral: \"[\" \"]\" •\l"] - 143 -> "143R182" [style=solid] - "143R182" [label="R182", fillcolor=3, shape=diamond, style=filled] - 144 [label="State 144\n\l102 Terms: Terms • \",\" Term\l183 ListLiteral: \"[\" Terms • \"]\"\l"] + 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"] 144 -> 215 [style=solid label="\"]\""] 144 -> 216 [style=solid label="\",\""] - 145 [label="State 145\n\l103 Terms: Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l185 RangeLiteral: \"[\" Term • \"..\" Term \"]\"\l"] + 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 -> 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 -> "145R103" [style=solid] - "145R103" [label="R103", fillcolor=3, shape=diamond, style=filled] - 146 [label="State 146\n\l145 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l146 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l147 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l149 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l159 CardinalityExpression: \"|\" SimpleOrClaspedTerm • \"|\"\l"] + 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"] 146 -> 218 [style=solid label="\"|\""] 146 -> 166 [style=solid label="\".\""] - 147 [label="State 147\n\l181 ReferenceLiteral: \"@\" IdentifierPath •\l222 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 147 [label="State 147\n\l183 ReferenceLiteral: \"@\" IdentifierPath •\l224 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] 147 -> 169 [style=solid label="\"::\""] - 147 -> "147R181" [style=solid] - "147R181" [label="R181", fillcolor=3, shape=diamond, style=filled] - 148 [label="State 148\n\l134 OperatorExpression: Term \"and\" • Term\l"] + 147 -> "147R183" [style=solid] + "147R183" [label="R183", fillcolor=3, shape=diamond, style=filled] + 148 [label="State 148\n\l136 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\l132 OperatorExpression: Term \"or\" • Term\l"] + 149 [label="State 149\n\l134 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\l133 OperatorExpression: Term \"xor\" • Term\l"] + 150 [label="State 150\n\l135 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\l136 OperatorExpression: Term \"implies\" • Term\l"] + 151 [label="State 151\n\l138 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\l120 OperatorExpression: Term \"+\" • Term\l"] + 152 [label="State 152\n\l122 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\l121 OperatorExpression: Term \"-\" • Term\l"] + 153 [label="State 153\n\l123 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\l127 OperatorExpression: Term \"=\" • Term\l"] + 154 [label="State 154\n\l129 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\l128 OperatorExpression: Term \"<\" • Term\l"] + 155 [label="State 155\n\l130 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\l129 OperatorExpression: Term \">\" • Term\l"] + 156 [label="State 156\n\l131 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\l122 OperatorExpression: Term \"*\" • Term\l"] + 157 [label="State 157\n\l124 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\l123 OperatorExpression: Term \"/\" • Term\l"] + 158 [label="State 158\n\l125 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\l124 OperatorExpression: Term \"%\" • Term\l"] + 159 [label="State 159\n\l126 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\l125 OperatorExpression: Term \"^\" • Term\l"] + 160 [label="State 160\n\l127 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\l135 OperatorExpression: Term \"=>\" • Term\l"] + 161 [label="State 161\n\l137 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\l126 OperatorExpression: Term \"!=\" • Term\l"] + 162 [label="State 162\n\l128 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\l130 OperatorExpression: Term \"<=\" • Term\l"] + 163 [label="State 163\n\l132 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\l131 OperatorExpression: Term \">=\" • Term\l"] + 164 [label="State 164\n\l133 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\l153 TypeCastingExpression: SimpleOrClaspedTerm \"as\" • Type\l"] + 165 [label="State 165\n\l155 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\l145 MethodCallExpression: SimpleOrClaspedTerm \".\" • Identifier\l146 | SimpleOrClaspedTerm \".\" • Identifier \"(\" \")\"\l147 | SimpleOrClaspedTerm \".\" • Identifier \"(\" Terms \")\"\l148 | SimpleOrClaspedTerm \".\" • Identifier \"(\" error \")\"\l149 LiteralCallExpression: SimpleOrClaspedTerm \".\" • IntegerLiteral\l"] + 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 -> 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\l150 IndirectCallExpression: CallExpression \"(\" • \")\"\l151 | CallExpression \"(\" • Terms \")\"\l152 | CallExpression \"(\" • error \")\"\l"] + 167 [label="State 167\n\l152 IndirectCallExpression: CallExpression \"(\" • \")\"\l153 | CallExpression \"(\" • Terms \")\"\l154 | 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\l142 DirectCallExpression: IdentifierPath \"(\" • \")\"\l143 | IdentifierPath \"(\" • Terms \")\"\l144 | IdentifierPath \"(\" • error \")\"\l"] + 168 [label="State 168\n\l144 DirectCallExpression: IdentifierPath \"(\" • \")\"\l145 | IdentifierPath \"(\" • Terms \")\"\l146 | 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\l222 IdentifierPath: IdentifierPath \"::\" • Identifier\l"] + 169 [label="State 169\n\l224 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\l113 SimpleOrClaspedTerm: \"(\" • Term \")\"\l114 | \"(\" • error \")\"\l186 TupleLiteral: \"(\" • Terms \",\" Term \")\"\l187 RecordLiteral: \"(\" • Assignments \")\"\l218 Initializer: \"(\" • Term \")\" \"->\" Term\l"] + 170 [label="State 170\n\l115 SimpleOrClaspedTerm: \"(\" • Term \")\"\l116 | \"(\" • error \")\"\l188 TupleLiteral: \"(\" • Terms \",\" Term \")\"\l189 RecordLiteral: \"(\" • Assignments \")\"\l220 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\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l217 Initializer: Term •\l"] + 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 -> 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 -> "171R217" [style=solid] - "171R217" [label="R217", fillcolor=3, shape=diamond, style=filled] - 172 [label="State 172\n\l170 Literal: TupleLiteral •\l219 Initializer: TupleLiteral • \"->\" Term\l"] + 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"] 172 -> 248 [style=solid label="\"->\""] - 172 -> "172R170" [style=solid] - "172R170" [label="R170", fillcolor=3, shape=diamond, style=filled] - 173 [label="State 173\n\l 22 InitDefinition: \"init\" \"{\" Initializers • \"}\"\l215 Initializers: Initializers • \",\" Initializer\l"] + 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"] 173 -> 249 [style=solid label="\"}\""] 173 -> 250 [style=solid label="\",\""] - 174 [label="State 174\n\l216 Initializers: Initializer •\l"] - 174 -> "174R216" [style=solid] - "174R216" [label="R216", fillcolor=3, shape=diamond, style=filled] + 174 [label="State 174\n\l218 Initializers: Initializer •\l"] + 174 -> "174R218" [style=solid] + "174R218" [label="R218", 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 39 UsingDefinition: \"using\" Identifier \"=\" • Type\l"] + 181 [label="State 181\n\l 41 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 41 UsingPathDefinition: \"using\" IdentifierPath \"::\" • \"*\"\l222 IdentifierPath: IdentifierPath \"::\" • Identifier\l"] + 182 [label="State 182\n\l 43 UsingPathDefinition: \"using\" IdentifierPath \"::\" • \"*\"\l224 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 42 InvariantDefinition: \"invariant\" Identifier \"=\" • Term\l"] + 183 [label="State 183\n\l 44 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 44 ImportDefinition: \"import\" IdentifierPath \"as\" • Identifier\l"] + 184 [label="State 184\n\l 46 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 45 StructureDefinition: \"structure\" Identifier \"=\" • \"{\" FunctionDefinition \"}\"\l"] + 185 [label="State 185\n\l 47 StructureDefinition: \"structure\" Identifier \"=\" • \"{\" FunctionDefinitions \"}\"\l"] 185 -> 296 [style=solid label="\"{\""] - 186 [label="State 186\n\l 46 FeatureDefinition: \"feature\" Identifier \"=\" • \"{\" FeatureDeclarationsAndDefinitions \"}\"\l"] + 186 [label="State 186\n\l 48 FeatureDefinition: \"feature\" Identifier \"=\" • \"{\" FeatureDeclarationsAndDefinitions \"}\"\l"] 186 -> 297 [style=solid label="\"{\""] - 187 [label="State 187\n\l191 Types: Types • \",\" Type\l200 TupleType: \"(\" Types • \",\" Type \")\"\l"] + 187 [label="State 187\n\l193 Types: Types • \",\" Type\l202 TupleType: \"(\" Types • \",\" Type \")\"\l"] 187 -> 298 [style=solid label="\",\""] - 188 [label="State 188\n\l192 Types: Type •\l"] - 188 -> "188R192" [style=solid] - "188R192" [label="R192", fillcolor=3, shape=diamond, style=filled] - 189 [label="State 189\n\l223 IdentifierPath: Identifier •\l230 TypedVariable: Identifier • \":\" Type\l"] + 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"] 189 -> 198 [style=solid label="\":\""] - 189 -> "189R223" [style=solid] - "189R223" [label="R223", fillcolor=3, shape=diamond, style=filled] - 190 [label="State 190\n\l199 BasicType: IdentifierPath •\l202 TemplateType: IdentifierPath • \"<\" Types \">\"\l203 RelationType: IdentifierPath • \"<\" MaybeFunctionParameters \"->\" Type \">\"\l204 FixedSizedType: IdentifierPath • \"'\" Term\l222 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 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"] 190 -> 169 [style=solid label="\"::\""] 190 -> 195 [style=solid label="\"<\""] 190 -> 196 [style=solid label="\"'\""] - 190 -> "190R199" [style=solid] - "190R199" [label="R199", fillcolor=3, shape=diamond, style=filled] - 191 [label="State 191\n\l201 RecordType: \"(\" TypedVariables • \",\" TypedVariable \")\"\l228 TypedVariables: TypedVariables • \",\" TypedVariable\l"] + 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"] 191 -> 299 [style=solid label="\",\""] - 192 [label="State 192\n\l229 TypedVariables: TypedVariable •\l"] - 192 -> "192R229" [style=solid] - "192R229" [label="R229", fillcolor=3, shape=diamond, style=filled] - 193 [label="State 193\n\l 53 ImplementationDefinition: \"implements\" Type \"=\" • \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 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"] 193 -> 300 [style=solid label="\"{\""] - 194 [label="State 194\n\l 52 ImplementationDefinition: \"implements\" IdentifierPath \"for\" • Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 194 [label="State 194\n\l 54 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\l202 TemplateType: IdentifierPath \"<\" • Types \">\"\l203 RelationType: IdentifierPath \"<\" • MaybeFunctionParameters \"->\" Type \">\"\l"] + 195 [label="State 195\n\l204 TemplateType: IdentifierPath \"<\" • Types \">\"\l205 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 -> "195R208" [style=solid] - "195R208" [label="R208", fillcolor=3, shape=diamond, style=filled] - 196 [label="State 196\n\l204 FixedSizedType: IdentifierPath \"'\" • Term\l"] + 195 -> "195R210" [style=solid] + "195R210" [label="R210", fillcolor=3, shape=diamond, style=filled] + 196 [label="State 196\n\l206 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 33 FunctionDefinition: \"function\" Identifier \":\" • MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] + 197 [label="State 197\n\l 35 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 -> "197R208" [style=solid] - "197R208" [label="R208", fillcolor=3, shape=diamond, style=filled] - 198 [label="State 198\n\l230 TypedVariable: Identifier \":\" • Type\l"] + 197 -> "197R210" [style=solid] + "197R210" [label="R210", fillcolor=3, shape=diamond, style=filled] + 198 [label="State 198\n\l232 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\l237 VariableBinding: AttributedVariable \"=\" • Term\l"] + 199 [label="State 199\n\l239 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\l154 LetExpression: \"let\" VariableBindings \"in\" • Term\l"] + 200 [label="State 200\n\l156 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\l235 VariableBindings: VariableBindings \",\" • VariableBinding\l"] + 201 [label="State 201\n\l237 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\l231 AttributedVariable: Attributes Variable •\l"] - 202 -> "202R231" [style=solid] - "202R231" [label="R231", fillcolor=3, shape=diamond, style=filled] - 203 [label="State 203\n\l157 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" • Term \"holds\" Term\l"] + 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"] 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\l226 AttributedVariables: AttributedVariables \",\" • AttributedVariable\l"] + 204 [label="State 204\n\l228 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\l156 ChooseExpression: \"choose\" AttributedVariables \"in\" • Term \"do\" Term\l"] + 205 [label="State 205\n\l158 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\l155 ConditionalExpression: \"if\" Term \"then\" • Term \"else\" Term\l"] + 206 [label="State 206\n\l157 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\l158 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" • Term \"with\" Term\l"] + 207 [label="State 207\n\l160 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\l114 SimpleOrClaspedTerm: \"(\" error \")\" •\l"] - 208 -> "208R114" [style=solid] - "208R114" [label="R114", fillcolor=3, shape=diamond, style=filled] - 209 [label="State 209\n\l102 Terms: Terms \",\" • Term\l186 TupleLiteral: \"(\" Terms \",\" • Term \")\"\l"] + 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"] 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\l113 SimpleOrClaspedTerm: \"(\" Term \")\" •\l"] - 210 -> "210R113" [style=solid] - "210R113" [label="R113", fillcolor=3, shape=diamond, style=filled] - 211 [label="State 211\n\l187 RecordLiteral: \"(\" Assignments \")\" •\l"] - 211 -> "211R187" [style=solid] - "211R187" [label="R187", fillcolor=3, shape=diamond, style=filled] - 212 [label="State 212\n\l188 Assignments: Assignments \",\" • Assignment\l"] + 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"] 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\l190 Assignment: Identifier \":\" • Term\l"] + 213 [label="State 213\n\l192 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\l184 ListLiteral: \"[\" error \"]\" •\l"] - 214 -> "214R184" [style=solid] - "214R184" [label="R184", fillcolor=3, shape=diamond, style=filled] - 215 [label="State 215\n\l183 ListLiteral: \"[\" Terms \"]\" •\l"] - 215 -> "215R183" [style=solid] - "215R183" [label="R183", fillcolor=3, shape=diamond, style=filled] - 216 [label="State 216\n\l102 Terms: Terms \",\" • Term\l"] + 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"] 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\l185 RangeLiteral: \"[\" Term \"..\" • Term \"]\"\l"] + 217 [label="State 217\n\l187 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\l159 CardinalityExpression: \"|\" SimpleOrClaspedTerm \"|\" •\l"] - 218 -> "218R159" [style=solid] - "218R159" [label="R159", fillcolor=3, shape=diamond, style=filled] - 219 [label="State 219\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l134 | Term \"and\" Term •\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 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 -> "219R134" [style=solid] - "219R134" [label="R134", fillcolor=3, shape=diamond, style=filled] - 220 [label="State 220\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l132 | Term \"or\" Term •\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 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 -> "220R132" [style=solid] - "220R132" [label="R132", fillcolor=3, shape=diamond, style=filled] - 221 [label="State 221\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l133 | Term \"xor\" Term •\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 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 -> "221R133" [style=solid] - "221R133" [label="R133", fillcolor=3, shape=diamond, style=filled] - 222 [label="State 222\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l136 | Term \"implies\" Term •\l"] + 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"] 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 -> "222R136" [style=solid] - "222R136" [label="R136", fillcolor=3, shape=diamond, style=filled] - 223 [label="State 223\n\l120 OperatorExpression: Term • \"+\" Term\l120 | Term \"+\" Term •\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 223 -> 157 [style=solid label="\"*\""] 223 -> 158 [style=solid label="\"/\""] 223 -> 159 [style=solid label="\"%\""] 223 -> 160 [style=solid label="\"^\""] - 223 -> "223R120" [style=solid] - "223R120" [label="R120", fillcolor=3, shape=diamond, style=filled] - 224 [label="State 224\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 224 -> 157 [style=solid label="\"*\""] 224 -> 158 [style=solid label="\"/\""] 224 -> 159 [style=solid label="\"%\""] 224 -> 160 [style=solid label="\"^\""] - 224 -> "224R121" [style=solid] - "224R121" [label="R121", fillcolor=3, shape=diamond, style=filled] - 225 [label="State 225\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 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 -> "225R127" [style=solid] - "225R127" [label="R127", fillcolor=3, shape=diamond, style=filled] - 226 [label="State 226\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 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 -> "226R128" [style=solid] - "226R128" [label="R128", fillcolor=3, shape=diamond, style=filled] - 227 [label="State 227\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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\l129 | Term \">\" Term •\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 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 -> "227R129" [style=solid] - "227R129" [label="R129", fillcolor=3, shape=diamond, style=filled] - 228 [label="State 228\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 228 -> 160 [style=solid label="\"^\""] - 228 -> "228R122" [style=solid] - "228R122" [label="R122", fillcolor=3, shape=diamond, style=filled] - 229 [label="State 229\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 229 -> 160 [style=solid label="\"^\""] - 229 -> "229R123" [style=solid] - "229R123" [label="R123", fillcolor=3, shape=diamond, style=filled] - 230 [label="State 230\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 230 -> 160 [style=solid label="\"^\""] - 230 -> "230R124" [style=solid] - "230R124" [label="R124", fillcolor=3, shape=diamond, style=filled] - 231 [label="State 231\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] - 231 -> "231R125" [style=solid] - "231R125" [label="R125", fillcolor=3, shape=diamond, style=filled] - 232 [label="State 232\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l135 | Term \"=>\" Term •\l136 | Term • \"implies\" Term\l"] + 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"] 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 -> "232R135" [style=solid] - "232R135" [label="R135", fillcolor=3, shape=diamond, style=filled] - 233 [label="State 233\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 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 -> "233R126" [style=solid] - "233R126" [label="R126", fillcolor=3, shape=diamond, style=filled] - 234 [label="State 234\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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\l130 | Term \"<=\" Term •\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 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 -> "234R130" [style=solid] - "234R130" [label="R130", fillcolor=3, shape=diamond, style=filled] - 235 [label="State 235\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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\l131 | Term \">=\" Term •\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 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 -> "235R131" [style=solid] - "235R131" [label="R131", fillcolor=3, shape=diamond, style=filled] - 236 [label="State 236\n\l153 TypeCastingExpression: SimpleOrClaspedTerm \"as\" Type •\l"] - 236 -> "236R153" [style=solid] - "236R153" [label="R153", fillcolor=3, shape=diamond, style=filled] - 237 [label="State 237\n\l149 LiteralCallExpression: SimpleOrClaspedTerm \".\" IntegerLiteral •\l"] - 237 -> "237R149" [style=solid] - "237R149" [label="R149", fillcolor=3, shape=diamond, style=filled] - 238 [label="State 238\n\l145 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier •\l146 | SimpleOrClaspedTerm \".\" Identifier • \"(\" \")\"\l147 | SimpleOrClaspedTerm \".\" Identifier • \"(\" Terms \")\"\l148 | SimpleOrClaspedTerm \".\" Identifier • \"(\" error \")\"\l"] + 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"] 238 -> 324 [style=solid label="\"(\""] - 238 -> "238R145" [style=solid] - "238R145" [label="R145", fillcolor=3, shape=diamond, style=filled] - 239 [label="State 239\n\l152 IndirectCallExpression: CallExpression \"(\" error • \")\"\l"] + 238 -> "238R147" [style=solid] + "238R147" [label="R147", fillcolor=3, shape=diamond, style=filled] + 239 [label="State 239\n\l154 IndirectCallExpression: CallExpression \"(\" error • \")\"\l"] 239 -> 325 [style=solid label="\")\""] - 240 [label="State 240\n\l150 IndirectCallExpression: CallExpression \"(\" \")\" •\l"] - 240 -> "240R150" [style=solid] - "240R150" [label="R150", fillcolor=3, shape=diamond, style=filled] - 241 [label="State 241\n\l102 Terms: Terms • \",\" Term\l151 IndirectCallExpression: CallExpression \"(\" Terms • \")\"\l"] + 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"] 241 -> 326 [style=solid label="\")\""] 241 -> 216 [style=solid label="\",\""] - 242 [label="State 242\n\l103 Terms: Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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 -> 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 -> "242R103" [style=solid] - "242R103" [label="R103", fillcolor=3, shape=diamond, style=filled] - 243 [label="State 243\n\l144 DirectCallExpression: IdentifierPath \"(\" error • \")\"\l"] + 242 -> "242R105" [style=solid] + "242R105" [label="R105", fillcolor=3, shape=diamond, style=filled] + 243 [label="State 243\n\l146 DirectCallExpression: IdentifierPath \"(\" error • \")\"\l"] 243 -> 327 [style=solid label="\")\""] - 244 [label="State 244\n\l142 DirectCallExpression: IdentifierPath \"(\" \")\" •\l"] - 244 -> "244R142" [style=solid] - "244R142" [label="R142", fillcolor=3, shape=diamond, style=filled] - 245 [label="State 245\n\l102 Terms: Terms • \",\" Term\l143 DirectCallExpression: IdentifierPath \"(\" Terms • \")\"\l"] + 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"] 245 -> 328 [style=solid label="\")\""] 245 -> 216 [style=solid label="\",\""] - 246 [label="State 246\n\l222 IdentifierPath: IdentifierPath \"::\" Identifier •\l"] - 246 -> "246R222" [style=solid] - "246R222" [label="R222", fillcolor=3, shape=diamond, style=filled] - 247 [label="State 247\n\l103 Terms: Term •\l113 SimpleOrClaspedTerm: \"(\" Term • \")\"\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l218 Initializer: \"(\" Term • \")\" \"->\" Term\l"] + 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"] 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 -> "247R103" [style=solid] - "247R103" [label="R103", fillcolor=3, shape=diamond, style=filled] - 248 [label="State 248\n\l219 Initializer: TupleLiteral \"->\" • Term\l"] + 247 -> "247R105" [style=solid] + "247R105" [label="R105", fillcolor=3, shape=diamond, style=filled] + 248 [label="State 248\n\l221 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\l215 Initializers: Initializers \",\" • Initializer\l"] + 250 [label="State 250\n\l217 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\l209 Parameters: Parameters • \",\" TypedAttributedVariable\l"] + 252 [label="State 252\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters • \")\" \"->\" Type \"=\" Term\l211 Parameters: Parameters • \",\" TypedAttributedVariable\l"] 252 -> 333 [style=solid label="\")\""] 252 -> 334 [style=solid label="\",\""] - 253 [label="State 253\n\l230 TypedVariable: Identifier • \":\" Type\l"] + 253 [label="State 253\n\l232 TypedVariable: Identifier • \":\" Type\l"] 253 -> 198 [style=solid label="\":\""] - 254 [label="State 254\n\l234 TypedAttributedVariable: TypedVariable •\l"] - 254 -> "254R234" [style=solid] - "254R234" [label="R234", fillcolor=3, shape=diamond, style=filled] - 255 [label="State 255\n\l210 Parameters: TypedAttributedVariable •\l"] - 255 -> "255R210" [style=solid] - "255R210" [label="R210", fillcolor=3, shape=diamond, style=filled] - 256 [label="State 256\n\l233 TypedAttributedVariable: Attributes • TypedVariable\l244 Attributes: Attributes • Attribute\l"] + 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"] 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 96 SequenceRule: \"seq\" • Rules \"endseq\"\l 98 | \"seq\" • error \"endseq\"\l"] + 259 [label="State 259\n\l 98 SequenceRule: \"seq\" • Rules \"endseq\"\l100 | \"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 92 BlockRule: \"par\" • Rules \"endpar\"\l 94 | \"par\" • error \"endpar\"\l"] + 260 [label="State 260\n\l 94 BlockRule: \"par\" • Rules \"endpar\"\l 96 | \"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 75 SkipRule: \"skip\" •\l"] - 261 -> "261R75" [style=solid] - "261R75" [label="R75", fillcolor=3, shape=diamond, style=filled] - 262 [label="State 262\n\l 85 LetRule: \"let\" • VariableBindings \"in\" Rule\l"] + 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"] 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 86 LocalRule: \"local\" • LocalFunctionDefinitions \"in\" Rule\l"] + 263 [label="State 263\n\l 88 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 87 ForallRule: \"forall\" • AttributedVariables \"in\" Term \"do\" Rule\l 88 | \"forall\" • AttributedVariables \"in\" Term \"with\" Term \"do\" Rule\l"] + 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 -> 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 89 ChooseRule: \"choose\" • AttributedVariables \"in\" Term \"do\" Rule\l"] + 265 [label="State 265\n\l 91 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 90 IterateRule: \"iterate\" • Rule\l"] + 266 [label="State 266\n\l 92 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 76 ConditionalRule: \"if\" • Term \"then\" Rule\l 77 | \"if\" • Term \"then\" Rule \"else\" Rule\l"] + 267 [label="State 267\n\l 78 ConditionalRule: \"if\" • Term \"then\" Rule\l 79 | \"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 78 CaseRule: \"case\" • Term \"of\" \"{\" CaseLabels \"}\"\l 79 | \"case\" • Term \"of\" \"{\" error \"}\"\l"] + 268 [label="State 268\n\l 80 CaseRule: \"case\" • Term \"of\" \"{\" CaseLabels \"}\"\l 81 | \"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\l101 WhileRule: \"while\" • Term \"do\" Rule\l"] + 269 [label="State 269\n\l103 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 91 BlockRule: \"{\" • Rules \"}\"\l 93 | \"{\" • error \"}\"\l"] + 270 [label="State 270\n\l 93 BlockRule: \"{\" • Rules \"}\"\l 95 | \"{\" • 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 95 SequenceRule: \"{|\" • Rules \"|}\"\l 97 | \"{|\" • error \"|}\"\l"] + 271 [label="State 271\n\l 97 SequenceRule: \"{|\" • Rules \"|}\"\l 99 | \"{|\" • 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 62 Rule: SkipRule •\l"] - 273 -> "273R62" [style=solid] - "273R62" [label="R62", fillcolor=3, shape=diamond, style=filled] - 274 [label="State 274\n\l 63 Rule: ConditionalRule •\l"] - 274 -> "274R63" [style=solid] - "274R63" [label="R63", fillcolor=3, shape=diamond, style=filled] - 275 [label="State 275\n\l 64 Rule: CaseRule •\l"] - 275 -> "275R64" [style=solid] - "275R64" [label="R64", fillcolor=3, shape=diamond, style=filled] - 276 [label="State 276\n\l 65 Rule: LetRule •\l"] - 276 -> "276R65" [style=solid] - "276R65" [label="R65", fillcolor=3, shape=diamond, style=filled] - 277 [label="State 277\n\l 66 Rule: LocalRule •\l"] - 277 -> "277R66" [style=solid] - "277R66" [label="R66", fillcolor=3, shape=diamond, style=filled] - 278 [label="State 278\n\l 67 Rule: ForallRule •\l"] - 278 -> "278R67" [style=solid] - "278R67" [label="R67", fillcolor=3, shape=diamond, style=filled] - 279 [label="State 279\n\l 68 Rule: ChooseRule •\l"] - 279 -> "279R68" [style=solid] - "279R68" [label="R68", fillcolor=3, shape=diamond, style=filled] - 280 [label="State 280\n\l 69 Rule: IterateRule •\l"] - 280 -> "280R69" [style=solid] - "280R69" [label="R69", fillcolor=3, shape=diamond, style=filled] - 281 [label="State 281\n\l 70 Rule: BlockRule •\l"] - 281 -> "281R70" [style=solid] - "281R70" [label="R70", fillcolor=3, shape=diamond, style=filled] - 282 [label="State 282\n\l 71 Rule: SequenceRule •\l"] - 282 -> "282R71" [style=solid] - "282R71" [label="R71", fillcolor=3, shape=diamond, style=filled] - 283 [label="State 283\n\l 72 Rule: UpdateRule •\l"] - 283 -> "283R72" [style=solid] - "283R72" [label="R72", fillcolor=3, shape=diamond, style=filled] - 284 [label="State 284\n\l 73 Rule: CallRule •\l"] - 284 -> "284R73" [style=solid] - "284R73" [label="R73", fillcolor=3, shape=diamond, style=filled] - 285 [label="State 285\n\l 74 Rule: WhileRule •\l"] - 285 -> "285R74" [style=solid] - "285R74" [label="R74", fillcolor=3, shape=diamond, style=filled] - 286 [label="State 286\n\l145 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l146 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l147 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l149 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] + 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"] 286 -> 166 [style=solid label="\".\""] - 287 [label="State 287\n\l100 CallRule: CallExpression •\l115 SimpleOrClaspedTerm: CallExpression •\l150 IndirectCallExpression: CallExpression • \"(\" \")\"\l151 | CallExpression • \"(\" Terms \")\"\l152 | CallExpression • \"(\" error \")\"\l"] + 287 [label="State 287\n\l102 CallRule: CallExpression •\l117 SimpleOrClaspedTerm: CallExpression •\l152 IndirectCallExpression: CallExpression • \"(\" \")\"\l153 | CallExpression • \"(\" Terms \")\"\l154 | CallExpression • \"(\" error \")\"\l"] 287 -> 167 [style=solid label="\"(\""] - 287 -> "287R100" [style=solid] - "287R100" [label="R100", fillcolor=3, shape=diamond, style=filled] - 287 -> "287R115" [label="[\".\"]", style=solid] - "287R115" [label="R115", fillcolor=3, shape=diamond, style=filled] - 288 [label="State 288\n\l 99 UpdateRule: DirectCallExpression • \":=\" Term\l138 CallExpression: DirectCallExpression •\l"] + 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"] 288 -> 364 [style=solid label="\":=\""] - 288 -> "288R138" [style=solid] - "288R138" [label="R138", fillcolor=3, shape=diamond, style=filled] + 288 -> "288R140" [style=solid] + "288R140" [label="R140", 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\l209 Parameters: Parameters • \",\" TypedAttributedVariable\l"] + 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 -> 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 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 •\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 294 -> 148 [style=solid label="\"and\""] 294 -> 149 [style=solid label="\"or\""] 294 -> 150 [style=solid label="\"xor\""] @@ -4192,27 +4192,28 @@ digraph "../../obj/src/GrammarParser.y" 294 -> 162 [style=solid label="\"!=\""] 294 -> 163 [style=solid label="\"<=\""] 294 -> 164 [style=solid label="\">=\""] - 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 \"=\" \"{\" • FunctionDefinition \"}\"\l"] + 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"] 296 -> 25 [style=solid label="\"function\""] - 296 -> 368 [style=dashed label="FunctionDefinition"] - 297 [label="State 297\n\l 46 FeatureDefinition: \"feature\" Identifier \"=\" \"{\" • FeatureDeclarationsAndDefinitions \"}\"\l"] - 297 -> 369 [style=solid label="\"derived\""] - 297 -> 370 [style=solid label="\"rule\""] - 297 -> 371 [style=dashed label="DerivedDefinition"] - 297 -> 372 [style=dashed label="RuleDefinition"] - 297 -> 373 [style=dashed label="FeatureDeclarationOrDefinition"] - 297 -> 374 [style=dashed label="FeatureDeclarationsAndDefinitions"] - 297 -> 375 [style=dashed label="DeclarationDefinition"] - 298 [label="State 298\n\l191 Types: Types \",\" • Type\l200 TupleType: \"(\" Types \",\" • Type \")\"\l"] + 296 -> 368 [style=dashed label="FunctionDefinitions"] + 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"] 298 -> 8 [style=solid label="\"in\""] 298 -> 109 [style=solid label="\"(\""] 298 -> 9 [style=solid label="\"identifier\""] - 298 -> 376 [style=dashed label="Type"] + 298 -> 377 [style=dashed label="Type"] 298 -> 111 [style=dashed label="BasicType"] 298 -> 112 [style=dashed label="TupleType"] 298 -> 113 [style=dashed label="RecordType"] @@ -4221,46 +4222,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\l201 RecordType: \"(\" TypedVariables \",\" • TypedVariable \")\"\l228 TypedVariables: TypedVariables \",\" • TypedVariable\l"] + 299 [label="State 299\n\l203 RecordType: \"(\" TypedVariables \",\" • TypedVariable \")\"\l230 TypedVariables: TypedVariables \",\" • TypedVariable\l"] 299 -> 8 [style=solid label="\"in\""] 299 -> 9 [style=solid label="\"identifier\""] 299 -> 253 [style=dashed label="Identifier"] - 299 -> 377 [style=dashed label="TypedVariable"] - 300 [label="State 300\n\l 53 ImplementationDefinition: \"implements\" Type \"=\" \"{\" • ImplementationDefinitionDefinitions \"}\"\l"] + 299 -> 378 [style=dashed label="TypedVariable"] + 300 [label="State 300\n\l 55 ImplementationDefinition: \"implements\" Type \"=\" \"{\" • ImplementationDefinitionDefinitions \"}\"\l"] 300 -> 16 [style=solid label="\"derived\""] 300 -> 18 [style=solid label="\"rule\""] - 300 -> 378 [style=dashed label="DerivedDefinition"] - 300 -> 379 [style=dashed label="RuleDefinition"] - 300 -> 380 [style=dashed label="ImplementationDefinitionDefinition"] - 300 -> 381 [style=dashed label="ImplementationDefinitionDefinitions"] - 301 [label="State 301\n\l 52 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type • \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] - 301 -> 382 [style=solid label="\"=\""] - 302 [label="State 302\n\l191 Types: Types • \",\" Type\l202 TemplateType: IdentifierPath \"<\" Types • \">\"\l"] - 302 -> 383 [style=solid label="\",\""] - 302 -> 384 [style=solid label="\">\""] - 303 [label="State 303\n\l192 Types: Type •\l206 FunctionParameters: Type •\l"] - 303 -> "303R192" [style=solid] - "303R192" [label="R192", fillcolor=3, shape=diamond, style=filled] - 303 -> "303R206" [label="[\"*\", \"->\"]", style=solid] - "303R206" [label="R206", fillcolor=3, shape=diamond, style=filled] - 304 [label="State 304\n\l205 FunctionParameters: FunctionParameters • \"*\" Type\l207 MaybeFunctionParameters: FunctionParameters •\l"] - 304 -> 385 [style=solid label="\"*\""] - 304 -> "304R207" [style=solid] - "304R207" [label="R207", fillcolor=3, shape=diamond, style=filled] - 305 [label="State 305\n\l203 RelationType: IdentifierPath \"<\" MaybeFunctionParameters • \"->\" Type \">\"\l"] - 305 -> 386 [style=solid label="\"->\""] - 306 [label="State 306\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l204 FixedSizedType: IdentifierPath \"'\" Term •\l"] - 306 -> "306R204" [style=solid] - "306R204" [label="R204", fillcolor=3, shape=diamond, style=filled] - 307 [label="State 307\n\l206 FunctionParameters: Type •\l"] - 307 -> "307R206" [style=solid] - "307R206" [label="R206", fillcolor=3, shape=diamond, style=filled] - 308 [label="State 308\n\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters • \"->\" Type MaybeDefined MaybeInitially\l"] - 308 -> 387 [style=solid label="\"->\""] - 309 [label="State 309\n\l230 TypedVariable: Identifier \":\" Type •\l"] - 309 -> "309R230" [style=solid] - "309R230" [label="R230", fillcolor=3, shape=diamond, style=filled] - 310 [label="State 310\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l237 VariableBinding: AttributedVariable \"=\" Term •\l"] + 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"] 310 -> 148 [style=solid label="\"and\""] 310 -> 149 [style=solid label="\"or\""] 310 -> 150 [style=solid label="\"xor\""] @@ -4278,9 +4279,9 @@ digraph "../../obj/src/GrammarParser.y" 310 -> 162 [style=solid label="\"!=\""] 310 -> 163 [style=solid label="\"<=\""] 310 -> 164 [style=solid label="\">=\""] - 310 -> "310R237" [style=solid] - "310R237" [label="R237", fillcolor=3, shape=diamond, style=filled] - 311 [label="State 311\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l154 LetExpression: \"let\" VariableBindings \"in\" Term •\l"] + 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"] 311 -> 148 [style=solid label="\"and\""] 311 -> 149 [style=solid label="\"or\""] 311 -> 150 [style=solid label="\"xor\""] @@ -4298,13 +4299,13 @@ digraph "../../obj/src/GrammarParser.y" 311 -> 162 [style=solid label="\"!=\""] 311 -> 163 [style=solid label="\"<=\""] 311 -> 164 [style=solid label="\">=\""] - 311 -> "311R154" [style=solid] - "311R154" [label="R154", fillcolor=3, shape=diamond, style=filled] - 312 [label="State 312\n\l235 VariableBindings: VariableBindings \",\" VariableBinding •\l"] - 312 -> "312R235" [style=solid] - "312R235" [label="R235", fillcolor=3, shape=diamond, style=filled] - 313 [label="State 313\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l157 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term • \"holds\" Term\l"] - 313 -> 388 [style=solid label="\"holds\""] + 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\""] 313 -> 148 [style=solid label="\"and\""] 313 -> 149 [style=solid label="\"or\""] 313 -> 150 [style=solid label="\"xor\""] @@ -4322,11 +4323,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\l226 AttributedVariables: AttributedVariables \",\" AttributedVariable •\l"] - 314 -> "314R226" [style=solid] - "314R226" [label="R226", fillcolor=3, shape=diamond, style=filled] - 315 [label="State 315\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l156 ChooseExpression: \"choose\" AttributedVariables \"in\" Term • \"do\" Term\l"] - 315 -> 389 [style=solid label="\"do\""] + 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\""] 315 -> 148 [style=solid label="\"and\""] 315 -> 149 [style=solid label="\"or\""] 315 -> 150 [style=solid label="\"xor\""] @@ -4344,8 +4345,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\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l155 ConditionalExpression: \"if\" Term \"then\" Term • \"else\" Term\l"] - 316 -> 390 [style=solid label="\"else\""] + 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 -> 148 [style=solid label="\"and\""] 316 -> 149 [style=solid label="\"or\""] 316 -> 150 [style=solid label="\"xor\""] @@ -4363,8 +4364,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\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l158 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term • \"with\" Term\l"] - 317 -> 391 [style=solid label="\"with\""] + 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 -> 148 [style=solid label="\"and\""] 317 -> 149 [style=solid label="\"or\""] 317 -> 150 [style=solid label="\"xor\""] @@ -4382,7 +4383,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\l102 Terms: Terms \",\" Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l186 TupleLiteral: \"(\" Terms \",\" Term • \")\"\l"] + 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 -> 148 [style=solid label="\"and\""] 318 -> 149 [style=solid label="\"or\""] 318 -> 150 [style=solid label="\"xor\""] @@ -4390,7 +4391,7 @@ digraph "../../obj/src/GrammarParser.y" 318 -> 152 [style=solid label="\"+\""] 318 -> 153 [style=solid label="\"-\""] 318 -> 154 [style=solid label="\"=\""] - 318 -> 392 [style=solid label="\")\""] + 318 -> 393 [style=solid label="\")\""] 318 -> 155 [style=solid label="\"<\""] 318 -> 156 [style=solid label="\">\""] 318 -> 157 [style=solid label="\"*\""] @@ -4401,14 +4402,14 @@ digraph "../../obj/src/GrammarParser.y" 318 -> 162 [style=solid label="\"!=\""] 318 -> 163 [style=solid label="\"<=\""] 318 -> 164 [style=solid label="\">=\""] - 318 -> "318R102" [style=solid] - "318R102" [label="R102", fillcolor=3, shape=diamond, style=filled] - 319 [label="State 319\n\l188 Assignments: Assignments \",\" Assignment •\l"] - 319 -> "319R188" [style=solid] - "319R188" [label="R188", fillcolor=3, shape=diamond, style=filled] - 320 [label="State 320\n\l190 Assignment: Identifier • \":\" Term\l"] + 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"] 320 -> 213 [style=solid label="\":\""] - 321 [label="State 321\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l190 Assignment: Identifier \":\" Term •\l"] + 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 -> 148 [style=solid label="\"and\""] 321 -> 149 [style=solid label="\"or\""] 321 -> 150 [style=solid label="\"xor\""] @@ -4426,9 +4427,9 @@ digraph "../../obj/src/GrammarParser.y" 321 -> 162 [style=solid label="\"!=\""] 321 -> 163 [style=solid label="\"<=\""] 321 -> 164 [style=solid label="\">=\""] - 321 -> "321R190" [style=solid] - "321R190" [label="R190", fillcolor=3, shape=diamond, style=filled] - 322 [label="State 322\n\l102 Terms: Terms \",\" Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 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"] 322 -> 148 [style=solid label="\"and\""] 322 -> 149 [style=solid label="\"or\""] 322 -> 150 [style=solid label="\"xor\""] @@ -4446,9 +4447,9 @@ digraph "../../obj/src/GrammarParser.y" 322 -> 162 [style=solid label="\"!=\""] 322 -> 163 [style=solid label="\"<=\""] 322 -> 164 [style=solid label="\">=\""] - 322 -> "322R102" [style=solid] - "322R102" [label="R102", fillcolor=3, shape=diamond, style=filled] - 323 [label="State 323\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l185 RangeLiteral: \"[\" Term \"..\" Term • \"]\"\l"] + 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"] 323 -> 148 [style=solid label="\"and\""] 323 -> 149 [style=solid label="\"or\""] 323 -> 150 [style=solid label="\"xor\""] @@ -4456,7 +4457,7 @@ digraph "../../obj/src/GrammarParser.y" 323 -> 152 [style=solid label="\"+\""] 323 -> 153 [style=solid label="\"-\""] 323 -> 154 [style=solid label="\"=\""] - 323 -> 393 [style=solid label="\"]\""] + 323 -> 394 [style=solid label="\"]\""] 323 -> 155 [style=solid label="\"<\""] 323 -> 156 [style=solid label="\">\""] 323 -> 157 [style=solid label="\"*\""] @@ -4467,8 +4468,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\l146 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" • \")\"\l147 | SimpleOrClaspedTerm \".\" Identifier \"(\" • Terms \")\"\l148 | SimpleOrClaspedTerm \".\" Identifier \"(\" • error \")\"\l"] - 324 -> 394 [style=dotted] + 324 [label="State 324\n\l148 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" • \")\"\l149 | SimpleOrClaspedTerm \".\" Identifier \"(\" • Terms \")\"\l150 | SimpleOrClaspedTerm \".\" Identifier \"(\" • error \")\"\l"] + 324 -> 395 [style=dotted] 324 -> 45 [style=solid label="\"let\""] 324 -> 8 [style=solid label="\"in\""] 324 -> 46 [style=solid label="\"forall\""] @@ -4482,7 +4483,7 @@ digraph "../../obj/src/GrammarParser.y" 324 -> 54 [style=solid label="\"+\""] 324 -> 55 [style=solid label="\"-\""] 324 -> 56 [style=solid label="\"(\""] - 324 -> 395 [style=solid label="\")\""] + 324 -> 396 [style=solid label="\")\""] 324 -> 57 [style=solid label="\"[\""] 324 -> 58 [style=solid label="\"|\""] 324 -> 59 [style=solid label="\"@\""] @@ -4493,7 +4494,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 -> 396 [style=dashed label="Terms"] + 324 -> 397 [style=dashed label="Terms"] 324 -> 242 [style=dashed label="Term"] 324 -> 67 [style=dashed label="SimpleOrClaspedTerm"] 324 -> 68 [style=dashed label="OperatorExpression"] @@ -4524,23 +4525,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\l152 IndirectCallExpression: CallExpression \"(\" error \")\" •\l"] - 325 -> "325R152" [style=solid] - "325R152" [label="R152", fillcolor=3, shape=diamond, style=filled] - 326 [label="State 326\n\l151 IndirectCallExpression: CallExpression \"(\" Terms \")\" •\l"] - 326 -> "326R151" [style=solid] - "326R151" [label="R151", fillcolor=3, shape=diamond, style=filled] - 327 [label="State 327\n\l144 DirectCallExpression: IdentifierPath \"(\" error \")\" •\l"] - 327 -> "327R144" [style=solid] - "327R144" [label="R144", fillcolor=3, shape=diamond, style=filled] - 328 [label="State 328\n\l143 DirectCallExpression: IdentifierPath \"(\" Terms \")\" •\l"] - 328 -> "328R143" [style=solid] - "328R143" [label="R143", fillcolor=3, shape=diamond, style=filled] - 329 [label="State 329\n\l113 SimpleOrClaspedTerm: \"(\" Term \")\" •\l218 Initializer: \"(\" Term \")\" • \"->\" Term\l"] - 329 -> 397 [style=solid label="\"->\""] - 329 -> "329R113" [style=solid] - "329R113" [label="R113", fillcolor=3, shape=diamond, style=filled] - 330 [label="State 330\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l219 Initializer: TupleLiteral \"->\" Term •\l"] + 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"] 330 -> 148 [style=solid label="\"and\""] 330 -> 149 [style=solid label="\"or\""] 330 -> 150 [style=solid label="\"xor\""] @@ -4558,27 +4559,27 @@ digraph "../../obj/src/GrammarParser.y" 330 -> 162 [style=solid label="\"!=\""] 330 -> 163 [style=solid label="\"<=\""] 330 -> 164 [style=solid label="\">=\""] - 330 -> "330R219" [style=solid] - "330R219" [label="R219", fillcolor=3, shape=diamond, style=filled] - 331 [label="State 331\n\l215 Initializers: Initializers \",\" Initializer •\l"] - 331 -> "331R215" [style=solid] - "331R215" [label="R215", fillcolor=3, shape=diamond, style=filled] + 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] 332 [label="State 332\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" • \"->\" Type \"=\" Term\l"] - 332 -> 398 [style=solid label="\"->\""] + 332 -> 399 [style=solid label="\"->\""] 333 [label="State 333\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" • \"->\" Type \"=\" Term\l"] - 333 -> 399 [style=solid label="\"->\""] - 334 [label="State 334\n\l209 Parameters: Parameters \",\" • TypedAttributedVariable\l"] + 333 -> 400 [style=solid label="\"->\""] + 334 [label="State 334\n\l211 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 -> 400 [style=dashed label="TypedAttributedVariable"] + 334 -> 401 [style=dashed label="TypedAttributedVariable"] 334 -> 256 [style=dashed label="Attributes"] 334 -> 6 [style=dashed label="Attribute"] - 335 [label="State 335\n\l233 TypedAttributedVariable: Attributes TypedVariable •\l"] - 335 -> "335R233" [style=solid] - "335R233" [label="R233", fillcolor=3, shape=diamond, style=filled] + 335 [label="State 335\n\l235 TypedAttributedVariable: Attributes TypedVariable •\l"] + 335 -> "335R235" [style=solid] + "335R235" [label="R235", 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\""] @@ -4603,7 +4604,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 -> 401 [style=dashed label="Term"] + 336 -> 402 [style=dashed label="Term"] 336 -> 67 [style=dashed label="SimpleOrClaspedTerm"] 336 -> 68 [style=dashed label="OperatorExpression"] 336 -> 69 [style=dashed label="CallExpression"] @@ -4633,29 +4634,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 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 -> 402 [style=solid label="\"}\""] - 339 -> 403 [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\l244 Attributes: Attributes • Attribute\l"] + 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"] 341 -> 8 [style=solid label="\"in\""] 341 -> 2 [style=solid label="\"[\""] 341 -> 9 [style=solid label="\"identifier\""] - 341 -> 404 [style=dashed label="Identifier"] + 341 -> 405 [style=dashed label="Identifier"] 341 -> 43 [style=dashed label="Attribute"] - 342 [label="State 342\n\l 98 SequenceRule: \"seq\" error • \"endseq\"\l"] - 342 -> 405 [style=solid label="\"endseq\""] - 343 [label="State 343\n\l 60 Rules: Rules • Rule\l 96 SequenceRule: \"seq\" Rules • \"endseq\"\l"] + 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"] 343 -> 259 [style=solid label="\"seq\""] - 343 -> 406 [style=solid label="\"endseq\""] + 343 -> 407 [style=solid label="\"endseq\""] 343 -> 260 [style=solid label="\"par\""] 343 -> 261 [style=solid label="\"skip\""] 343 -> 262 [style=solid label="\"let\""] @@ -4684,7 +4685,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 -> 407 [style=dashed label="Rule"] + 343 -> 408 [style=dashed label="Rule"] 343 -> 273 [style=dashed label="SkipRule"] 343 -> 274 [style=dashed label="ConditionalRule"] 343 -> 275 [style=dashed label="CaseRule"] @@ -4719,15 +4720,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 61 Rules: Rule •\l"] - 344 -> "344R61" [style=solid] - "344R61" [label="R61", fillcolor=3, shape=diamond, style=filled] - 345 [label="State 345\n\l 94 BlockRule: \"par\" error • \"endpar\"\l"] - 345 -> 408 [style=solid label="\"endpar\""] - 346 [label="State 346\n\l 60 Rules: Rules • Rule\l 92 BlockRule: \"par\" Rules • \"endpar\"\l"] + 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"] 346 -> 259 [style=solid label="\"seq\""] 346 -> 260 [style=solid label="\"par\""] - 346 -> 409 [style=solid label="\"endpar\""] + 346 -> 410 [style=solid label="\"endpar\""] 346 -> 261 [style=solid label="\"skip\""] 346 -> 262 [style=solid label="\"let\""] 346 -> 263 [style=solid label="\"local\""] @@ -4755,7 +4756,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 -> 407 [style=dashed label="Rule"] + 346 -> 408 [style=dashed label="Rule"] 346 -> 273 [style=dashed label="SkipRule"] 346 -> 274 [style=dashed label="ConditionalRule"] 346 -> 275 [style=dashed label="CaseRule"] @@ -4790,41 +4791,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 85 LetRule: \"let\" VariableBindings • \"in\" Rule\l235 VariableBindings: VariableBindings • \",\" VariableBinding\l"] - 347 -> 410 [style=solid label="\"in\""] + 347 [label="State 347\n\l 87 LetRule: \"let\" VariableBindings • \"in\" Rule\l237 VariableBindings: VariableBindings • \",\" VariableBinding\l"] + 347 -> 411 [style=solid label="\"in\""] 347 -> 201 [style=solid label="\",\""] - 348 [label="State 348\n\l242 AttributedLocalFunctionDefinition: error •\l"] - 348 -> "348R242" [style=solid] - "348R242" [label="R242", fillcolor=3, shape=diamond, style=filled] - 349 [label="State 349\n\l243 LocalFunctionDefinition: Identifier • \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] - 349 -> 411 [style=solid label="\":\""] - 350 [label="State 350\n\l 86 LocalRule: \"local\" LocalFunctionDefinitions • \"in\" Rule\l238 LocalFunctionDefinitions: LocalFunctionDefinitions • \",\" AttributedLocalFunctionDefinition\l"] - 350 -> 412 [style=solid label="\"in\""] - 350 -> 413 [style=solid label="\",\""] - 351 [label="State 351\n\l239 LocalFunctionDefinitions: AttributedLocalFunctionDefinition •\l"] - 351 -> "351R239" [style=solid] - "351R239" [label="R239", fillcolor=3, shape=diamond, style=filled] - 352 [label="State 352\n\l241 AttributedLocalFunctionDefinition: LocalFunctionDefinition •\l"] - 352 -> "352R241" [style=solid] - "352R241" [label="R241", fillcolor=3, shape=diamond, style=filled] - 353 [label="State 353\n\l240 AttributedLocalFunctionDefinition: Attributes • LocalFunctionDefinition\l244 Attributes: Attributes • Attribute\l"] + 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"] 353 -> 8 [style=solid label="\"in\""] 353 -> 2 [style=solid label="\"[\""] 353 -> 9 [style=solid label="\"identifier\""] 353 -> 349 [style=dashed label="Identifier"] - 353 -> 414 [style=dashed label="LocalFunctionDefinition"] + 353 -> 415 [style=dashed label="LocalFunctionDefinition"] 353 -> 43 [style=dashed label="Attribute"] - 354 [label="State 354\n\l 87 ForallRule: \"forall\" AttributedVariables • \"in\" Term \"do\" Rule\l 88 | \"forall\" AttributedVariables • \"in\" Term \"with\" Term \"do\" Rule\l226 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] - 354 -> 415 [style=solid label="\"in\""] + 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 -> 204 [style=solid label="\",\""] - 355 [label="State 355\n\l 89 ChooseRule: \"choose\" AttributedVariables • \"in\" Term \"do\" Rule\l226 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] - 355 -> 416 [style=solid label="\"in\""] + 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 -> 204 [style=solid label="\",\""] - 356 [label="State 356\n\l 90 IterateRule: \"iterate\" Rule •\l"] - 356 -> "356R90" [style=solid] - "356R90" [label="R90", fillcolor=3, shape=diamond, style=filled] - 357 [label="State 357\n\l 76 ConditionalRule: \"if\" Term • \"then\" Rule\l 77 | \"if\" Term • \"then\" Rule \"else\" Rule\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] - 357 -> 417 [style=solid label="\"then\""] + 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\""] 357 -> 148 [style=solid label="\"and\""] 357 -> 149 [style=solid label="\"or\""] 357 -> 150 [style=solid label="\"xor\""] @@ -4842,8 +4843,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 78 CaseRule: \"case\" Term • \"of\" \"{\" CaseLabels \"}\"\l 79 | \"case\" Term • \"of\" \"{\" error \"}\"\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] - 358 -> 418 [style=solid label="\"of\""] + 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 -> 148 [style=solid label="\"and\""] 358 -> 149 [style=solid label="\"or\""] 358 -> 150 [style=solid label="\"xor\""] @@ -4861,8 +4862,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\l101 WhileRule: \"while\" Term • \"do\" Rule\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] - 359 -> 419 [style=solid label="\"do\""] + 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 -> 148 [style=solid label="\"and\""] 359 -> 149 [style=solid label="\"or\""] 359 -> 150 [style=solid label="\"xor\""] @@ -4880,9 +4881,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 93 BlockRule: \"{\" error • \"}\"\l"] - 360 -> 420 [style=solid label="\"}\""] - 361 [label="State 361\n\l 60 Rules: Rules • Rule\l 91 BlockRule: \"{\" Rules • \"}\"\l"] + 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"] 361 -> 259 [style=solid label="\"seq\""] 361 -> 260 [style=solid label="\"par\""] 361 -> 261 [style=solid label="\"skip\""] @@ -4903,7 +4904,7 @@ digraph "../../obj/src/GrammarParser.y" 361 -> 56 [style=solid label="\"(\""] 361 -> 57 [style=solid label="\"[\""] 361 -> 270 [style=solid label="\"{\""] - 361 -> 421 [style=solid label="\"}\""] + 361 -> 422 [style=solid label="\"}\""] 361 -> 59 [style=solid label="\"@\""] 361 -> 271 [style=solid label="\"{|\""] 361 -> 60 [style=solid label="\"binary\""] @@ -4913,7 +4914,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 -> 407 [style=dashed label="Rule"] + 361 -> 408 [style=dashed label="Rule"] 361 -> 273 [style=dashed label="SkipRule"] 361 -> 274 [style=dashed label="ConditionalRule"] 361 -> 275 [style=dashed label="CaseRule"] @@ -4948,9 +4949,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 97 SequenceRule: \"{|\" error • \"|}\"\l"] - 362 -> 422 [style=solid label="\"|}\""] - 363 [label="State 363\n\l 60 Rules: Rules • Rule\l 95 SequenceRule: \"{|\" Rules • \"|}\"\l"] + 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"] 363 -> 259 [style=solid label="\"seq\""] 363 -> 260 [style=solid label="\"par\""] 363 -> 261 [style=solid label="\"skip\""] @@ -4973,7 +4974,7 @@ digraph "../../obj/src/GrammarParser.y" 363 -> 270 [style=solid label="\"{\""] 363 -> 59 [style=solid label="\"@\""] 363 -> 271 [style=solid label="\"{|\""] - 363 -> 423 [style=solid label="\"|}\""] + 363 -> 424 [style=solid label="\"|}\""] 363 -> 60 [style=solid label="\"binary\""] 363 -> 61 [style=solid label="\"hexadecimal\""] 363 -> 62 [style=solid label="\"integer\""] @@ -4981,7 +4982,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 -> 407 [style=dashed label="Rule"] + 363 -> 408 [style=dashed label="Rule"] 363 -> 273 [style=dashed label="SkipRule"] 363 -> 274 [style=dashed label="ConditionalRule"] 363 -> 275 [style=dashed label="CaseRule"] @@ -5016,7 +5017,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\l 99 UpdateRule: DirectCallExpression \":=\" • Term\l"] + 364 [label="State 364\n\l101 UpdateRule: DirectCallExpression \":=\" • Term\l"] 364 -> 45 [style=solid label="\"let\""] 364 -> 8 [style=solid label="\"in\""] 364 -> 46 [style=solid label="\"forall\""] @@ -5040,7 +5041,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 -> 424 [style=dashed label="Term"] + 364 -> 425 [style=dashed label="Term"] 364 -> 67 [style=dashed label="SimpleOrClaspedTerm"] 364 -> 68 [style=dashed label="OperatorExpression"] 364 -> 69 [style=dashed label="CallExpression"] @@ -5071,11 +5072,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 -> 425 [style=solid label="\"=\""] - 365 -> 426 [style=solid label="\"->\""] + 365 -> 426 [style=solid label="\"=\""] + 365 -> 427 [style=solid label="\"->\""] 366 [label="State 366\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" • \"=\" Rule\l 30 | \"rule\" Identifier \"(\" Parameters \")\" • \"->\" Type \"=\" Rule\l"] - 366 -> 427 [style=solid label="\"=\""] - 366 -> 428 [style=solid label="\"->\""] + 366 -> 428 [style=solid label="\"=\""] + 366 -> 429 [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\""] @@ -5106,7 +5107,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 -> 429 [style=dashed label="Rule"] + 367 -> 430 [style=dashed label="Rule"] 367 -> 273 [style=dashed label="SkipRule"] 367 -> 274 [style=dashed label="ConditionalRule"] 367 -> 275 [style=dashed label="CaseRule"] @@ -5141,96 +5142,89 @@ 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 45 StructureDefinition: \"structure\" Identifier \"=\" \"{\" FunctionDefinition • \"}\"\l"] - 368 -> 430 [style=solid label="\"}\""] - 369 [label="State 369\n\l 24 DerivedDefinition: \"derived\" • Identifier \"->\" Type \"=\" Term\l 25 | \"derived\" • Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Term\l 26 | \"derived\" • Identifier \"(\" error \")\" \"->\" Type \"=\" Term\l 58 DeclarationDefinition: \"derived\" • Identifier \":\" MaybeFunctionParameters \"->\" Type\l"] - 369 -> 8 [style=solid label="\"in\""] - 369 -> 9 [style=solid label="\"identifier\""] - 369 -> 431 [style=dashed label="Identifier"] - 370 [label="State 370\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 59 DeclarationDefinition: \"rule\" • Identifier \":\" MaybeFunctionParameters \"->\" Type\l"] + 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 -> 432 [style=dashed label="Identifier"] - 371 [label="State 371\n\l 48 FeatureDeclarationOrDefinition: DerivedDefinition •\l"] - 371 -> "371R48" [style=solid] - "371R48" [label="R48", fillcolor=3, shape=diamond, style=filled] - 372 [label="State 372\n\l 49 FeatureDeclarationOrDefinition: RuleDefinition •\l"] - 372 -> "372R49" [style=solid] - "372R49" [label="R49", fillcolor=3, shape=diamond, style=filled] - 373 [label="State 373\n\l 51 FeatureDeclarationsAndDefinitions: FeatureDeclarationOrDefinition •\l"] + 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 46 FeatureDefinition: \"feature\" Identifier \"=\" \"{\" FeatureDeclarationsAndDefinitions • \"}\"\l 50 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions • FeatureDeclarationOrDefinition\l"] - 374 -> 369 [style=solid label="\"derived\""] - 374 -> 370 [style=solid label="\"rule\""] - 374 -> 433 [style=solid label="\"}\""] - 374 -> 371 [style=dashed label="DerivedDefinition"] - 374 -> 372 [style=dashed label="RuleDefinition"] - 374 -> 434 [style=dashed label="FeatureDeclarationOrDefinition"] - 374 -> 375 [style=dashed label="DeclarationDefinition"] - 375 [label="State 375\n\l 47 FeatureDeclarationOrDefinition: DeclarationDefinition •\l"] - 375 -> "375R47" [style=solid] - "375R47" [label="R47", fillcolor=3, shape=diamond, style=filled] - 376 [label="State 376\n\l191 Types: Types \",\" Type •\l200 TupleType: \"(\" Types \",\" Type • \")\"\l"] - 376 -> 435 [style=solid label="\")\""] - 376 -> "376R191" [style=solid] - "376R191" [label="R191", fillcolor=3, shape=diamond, style=filled] - 377 [label="State 377\n\l201 RecordType: \"(\" TypedVariables \",\" TypedVariable • \")\"\l228 TypedVariables: TypedVariables \",\" TypedVariable •\l"] - 377 -> 436 [style=solid label="\")\""] - 377 -> "377R228" [style=solid] - "377R228" [label="R228", fillcolor=3, shape=diamond, style=filled] - 378 [label="State 378\n\l 54 ImplementationDefinitionDefinition: DerivedDefinition •\l"] - 378 -> "378R54" [style=solid] - "378R54" [label="R54", fillcolor=3, shape=diamond, style=filled] - 379 [label="State 379\n\l 55 ImplementationDefinitionDefinition: RuleDefinition •\l"] - 379 -> "379R55" [style=solid] - "379R55" [label="R55", fillcolor=3, shape=diamond, style=filled] - 380 [label="State 380\n\l 57 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition •\l"] + 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 53 ImplementationDefinition: \"implements\" Type \"=\" \"{\" ImplementationDefinitionDefinitions • \"}\"\l 56 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions • ImplementationDefinitionDefinition\l"] + 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 -> 437 [style=solid label="\"}\""] - 381 -> 378 [style=dashed label="DerivedDefinition"] - 381 -> 379 [style=dashed label="RuleDefinition"] - 381 -> 438 [style=dashed label="ImplementationDefinitionDefinition"] - 382 [label="State 382\n\l 52 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" • \"{\" ImplementationDefinitionDefinitions \"}\"\l"] - 382 -> 439 [style=solid label="\"{\""] - 383 [label="State 383\n\l191 Types: Types \",\" • Type\l"] - 383 -> 8 [style=solid label="\"in\""] - 383 -> 109 [style=solid label="\"(\""] - 383 -> 9 [style=solid label="\"identifier\""] - 383 -> 440 [style=dashed label="Type"] - 383 -> 111 [style=dashed label="BasicType"] - 383 -> 112 [style=dashed label="TupleType"] - 383 -> 113 [style=dashed label="RecordType"] - 383 -> 114 [style=dashed label="TemplateType"] - 383 -> 115 [style=dashed label="RelationType"] - 383 -> 116 [style=dashed label="FixedSizedType"] - 383 -> 94 [style=dashed label="Identifier"] - 383 -> 190 [style=dashed label="IdentifierPath"] - 384 [label="State 384\n\l202 TemplateType: IdentifierPath \"<\" Types \">\" •\l"] - 384 -> "384R202" [style=solid] - "384R202" [label="R202", fillcolor=3, shape=diamond, style=filled] - 385 [label="State 385\n\l205 FunctionParameters: FunctionParameters \"*\" • Type\l"] - 385 -> 8 [style=solid label="\"in\""] - 385 -> 109 [style=solid label="\"(\""] - 385 -> 9 [style=solid label="\"identifier\""] - 385 -> 441 [style=dashed label="Type"] - 385 -> 111 [style=dashed label="BasicType"] - 385 -> 112 [style=dashed label="TupleType"] - 385 -> 113 [style=dashed label="RecordType"] - 385 -> 114 [style=dashed label="TemplateType"] - 385 -> 115 [style=dashed label="RelationType"] - 385 -> 116 [style=dashed label="FixedSizedType"] - 385 -> 94 [style=dashed label="Identifier"] - 385 -> 190 [style=dashed label="IdentifierPath"] - 386 [label="State 386\n\l203 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" • Type \">\"\l"] + 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"] 386 -> 8 [style=solid label="\"in\""] 386 -> 109 [style=solid label="\"(\""] 386 -> 9 [style=solid label="\"identifier\""] - 386 -> 442 [style=dashed label="Type"] + 386 -> 443 [style=dashed label="Type"] 386 -> 111 [style=dashed label="BasicType"] 386 -> 112 [style=dashed label="TupleType"] 386 -> 113 [style=dashed label="RecordType"] @@ -5239,11 +5233,11 @@ 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\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" • Type MaybeDefined MaybeInitially\l"] + 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 -> 443 [style=dashed label="Type"] + 387 -> 444 [style=dashed label="Type"] 387 -> 111 [style=dashed label="BasicType"] 387 -> 112 [style=dashed label="TupleType"] 387 -> 113 [style=dashed label="RecordType"] @@ -5252,61 +5246,20 @@ digraph "../../obj/src/GrammarParser.y" 387 -> 116 [style=dashed label="FixedSizedType"] 387 -> 94 [style=dashed label="Identifier"] 387 -> 190 [style=dashed label="IdentifierPath"] - 388 [label="State 388\n\l157 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term \"holds\" • Term\l"] - 388 -> 45 [style=solid label="\"let\""] + 388 [label="State 388\n\l 35 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" • Type MaybeDefined MaybeInitially\l"] 388 -> 8 [style=solid label="\"in\""] - 388 -> 46 [style=solid label="\"forall\""] - 388 -> 47 [style=solid label="\"choose\""] - 388 -> 48 [style=solid label="\"if\""] - 388 -> 49 [style=solid label="\"exists\""] - 388 -> 50 [style=solid label="\"undef\""] - 388 -> 51 [style=solid label="\"false\""] - 388 -> 52 [style=solid label="\"true\""] - 388 -> 53 [style=solid label="\"not\""] - 388 -> 54 [style=solid label="\"+\""] - 388 -> 55 [style=solid label="\"-\""] - 388 -> 56 [style=solid label="\"(\""] - 388 -> 57 [style=solid label="\"[\""] - 388 -> 58 [style=solid label="\"|\""] - 388 -> 59 [style=solid label="\"@\""] - 388 -> 60 [style=solid label="\"binary\""] - 388 -> 61 [style=solid label="\"hexadecimal\""] - 388 -> 62 [style=solid label="\"integer\""] - 388 -> 63 [style=solid label="\"rational\""] - 388 -> 64 [style=solid label="\"decimal\""] - 388 -> 65 [style=solid label="\"string\""] + 388 -> 109 [style=solid label="\"(\""] 388 -> 9 [style=solid label="\"identifier\""] - 388 -> 444 [style=dashed label="Term"] - 388 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 388 -> 68 [style=dashed label="OperatorExpression"] - 388 -> 69 [style=dashed label="CallExpression"] - 388 -> 70 [style=dashed label="DirectCallExpression"] - 388 -> 71 [style=dashed label="MethodCallExpression"] - 388 -> 72 [style=dashed label="LiteralCallExpression"] - 388 -> 73 [style=dashed label="IndirectCallExpression"] - 388 -> 74 [style=dashed label="TypeCastingExpression"] - 388 -> 75 [style=dashed label="LetExpression"] - 388 -> 76 [style=dashed label="ConditionalExpression"] - 388 -> 77 [style=dashed label="ChooseExpression"] - 388 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 388 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 388 -> 80 [style=dashed label="CardinalityExpression"] - 388 -> 81 [style=dashed label="Literal"] - 388 -> 82 [style=dashed label="UndefinedLiteral"] - 388 -> 83 [style=dashed label="BooleanLiteral"] - 388 -> 84 [style=dashed label="IntegerLiteral"] - 388 -> 85 [style=dashed label="RationalLiteral"] - 388 -> 86 [style=dashed label="DecimalLiteral"] - 388 -> 87 [style=dashed label="BinaryLiteral"] - 388 -> 88 [style=dashed label="StringLiteral"] - 388 -> 89 [style=dashed label="ReferenceLiteral"] - 388 -> 90 [style=dashed label="ListLiteral"] - 388 -> 91 [style=dashed label="RangeLiteral"] - 388 -> 92 [style=dashed label="TupleLiteral"] - 388 -> 93 [style=dashed label="RecordLiteral"] + 388 -> 445 [style=dashed label="Type"] + 388 -> 111 [style=dashed label="BasicType"] + 388 -> 112 [style=dashed label="TupleType"] + 388 -> 113 [style=dashed label="RecordType"] + 388 -> 114 [style=dashed label="TemplateType"] + 388 -> 115 [style=dashed label="RelationType"] + 388 -> 116 [style=dashed label="FixedSizedType"] 388 -> 94 [style=dashed label="Identifier"] - 388 -> 95 [style=dashed label="IdentifierPath"] - 389 [label="State 389\n\l156 ChooseExpression: \"choose\" AttributedVariables \"in\" Term \"do\" • Term\l"] + 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 -> 8 [style=solid label="\"in\""] 389 -> 46 [style=solid label="\"forall\""] @@ -5330,7 +5283,7 @@ digraph "../../obj/src/GrammarParser.y" 389 -> 64 [style=solid label="\"decimal\""] 389 -> 65 [style=solid label="\"string\""] 389 -> 9 [style=solid label="\"identifier\""] - 389 -> 445 [style=dashed label="Term"] + 389 -> 446 [style=dashed label="Term"] 389 -> 67 [style=dashed label="SimpleOrClaspedTerm"] 389 -> 68 [style=dashed label="OperatorExpression"] 389 -> 69 [style=dashed label="CallExpression"] @@ -5360,7 +5313,7 @@ digraph "../../obj/src/GrammarParser.y" 389 -> 93 [style=dashed label="RecordLiteral"] 389 -> 94 [style=dashed label="Identifier"] 389 -> 95 [style=dashed label="IdentifierPath"] - 390 [label="State 390\n\l155 ConditionalExpression: \"if\" Term \"then\" Term \"else\" • Term\l"] + 390 [label="State 390\n\l158 ChooseExpression: \"choose\" AttributedVariables \"in\" Term \"do\" • Term\l"] 390 -> 45 [style=solid label="\"let\""] 390 -> 8 [style=solid label="\"in\""] 390 -> 46 [style=solid label="\"forall\""] @@ -5384,7 +5337,7 @@ digraph "../../obj/src/GrammarParser.y" 390 -> 64 [style=solid label="\"decimal\""] 390 -> 65 [style=solid label="\"string\""] 390 -> 9 [style=solid label="\"identifier\""] - 390 -> 446 [style=dashed label="Term"] + 390 -> 447 [style=dashed label="Term"] 390 -> 67 [style=dashed label="SimpleOrClaspedTerm"] 390 -> 68 [style=dashed label="OperatorExpression"] 390 -> 69 [style=dashed label="CallExpression"] @@ -5414,7 +5367,7 @@ digraph "../../obj/src/GrammarParser.y" 390 -> 93 [style=dashed label="RecordLiteral"] 390 -> 94 [style=dashed label="Identifier"] 390 -> 95 [style=dashed label="IdentifierPath"] - 391 [label="State 391\n\l158 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term \"with\" • Term\l"] + 391 [label="State 391\n\l157 ConditionalExpression: \"if\" Term \"then\" Term \"else\" • Term\l"] 391 -> 45 [style=solid label="\"let\""] 391 -> 8 [style=solid label="\"in\""] 391 -> 46 [style=solid label="\"forall\""] @@ -5438,7 +5391,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 -> 447 [style=dashed label="Term"] + 391 -> 448 [style=dashed label="Term"] 391 -> 67 [style=dashed label="SimpleOrClaspedTerm"] 391 -> 68 [style=dashed label="OperatorExpression"] 391 -> 69 [style=dashed label="CallExpression"] @@ -5468,92 +5421,133 @@ 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\l186 TupleLiteral: \"(\" Terms \",\" Term \")\" •\l"] - 392 -> "392R186" [style=solid] - "392R186" [label="R186", fillcolor=3, shape=diamond, style=filled] - 393 [label="State 393\n\l185 RangeLiteral: \"[\" Term \"..\" Term \"]\" •\l"] - 393 -> "393R185" [style=solid] - "393R185" [label="R185", fillcolor=3, shape=diamond, style=filled] - 394 [label="State 394\n\l148 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" error • \")\"\l"] - 394 -> 448 [style=solid label="\")\""] - 395 [label="State 395\n\l146 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" \")\" •\l"] - 395 -> "395R146" [style=solid] - "395R146" [label="R146", fillcolor=3, shape=diamond, style=filled] - 396 [label="State 396\n\l102 Terms: Terms • \",\" Term\l147 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" Terms • \")\"\l"] - 396 -> 449 [style=solid label="\")\""] - 396 -> 216 [style=solid label="\",\""] - 397 [label="State 397\n\l218 Initializer: \"(\" Term \")\" \"->\" • Term\l"] - 397 -> 45 [style=solid label="\"let\""] - 397 -> 8 [style=solid label="\"in\""] - 397 -> 46 [style=solid label="\"forall\""] - 397 -> 47 [style=solid label="\"choose\""] - 397 -> 48 [style=solid label="\"if\""] - 397 -> 49 [style=solid label="\"exists\""] - 397 -> 50 [style=solid label="\"undef\""] - 397 -> 51 [style=solid label="\"false\""] - 397 -> 52 [style=solid label="\"true\""] - 397 -> 53 [style=solid label="\"not\""] - 397 -> 54 [style=solid label="\"+\""] - 397 -> 55 [style=solid label="\"-\""] - 397 -> 56 [style=solid label="\"(\""] - 397 -> 57 [style=solid label="\"[\""] - 397 -> 58 [style=solid label="\"|\""] - 397 -> 59 [style=solid label="\"@\""] - 397 -> 60 [style=solid label="\"binary\""] - 397 -> 61 [style=solid label="\"hexadecimal\""] - 397 -> 62 [style=solid label="\"integer\""] - 397 -> 63 [style=solid label="\"rational\""] - 397 -> 64 [style=solid label="\"decimal\""] - 397 -> 65 [style=solid label="\"string\""] - 397 -> 9 [style=solid label="\"identifier\""] - 397 -> 450 [style=dashed label="Term"] - 397 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 397 -> 68 [style=dashed label="OperatorExpression"] - 397 -> 69 [style=dashed label="CallExpression"] - 397 -> 70 [style=dashed label="DirectCallExpression"] - 397 -> 71 [style=dashed label="MethodCallExpression"] - 397 -> 72 [style=dashed label="LiteralCallExpression"] - 397 -> 73 [style=dashed label="IndirectCallExpression"] - 397 -> 74 [style=dashed label="TypeCastingExpression"] - 397 -> 75 [style=dashed label="LetExpression"] - 397 -> 76 [style=dashed label="ConditionalExpression"] - 397 -> 77 [style=dashed label="ChooseExpression"] - 397 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 397 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 397 -> 80 [style=dashed label="CardinalityExpression"] - 397 -> 81 [style=dashed label="Literal"] - 397 -> 82 [style=dashed label="UndefinedLiteral"] - 397 -> 83 [style=dashed label="BooleanLiteral"] - 397 -> 84 [style=dashed label="IntegerLiteral"] - 397 -> 85 [style=dashed label="RationalLiteral"] - 397 -> 86 [style=dashed label="DecimalLiteral"] - 397 -> 87 [style=dashed label="BinaryLiteral"] - 397 -> 88 [style=dashed label="StringLiteral"] - 397 -> 89 [style=dashed label="ReferenceLiteral"] - 397 -> 90 [style=dashed label="ListLiteral"] - 397 -> 91 [style=dashed label="RangeLiteral"] - 397 -> 92 [style=dashed label="TupleLiteral"] - 397 -> 93 [style=dashed label="RecordLiteral"] - 397 -> 94 [style=dashed label="Identifier"] - 397 -> 95 [style=dashed label="IdentifierPath"] - 398 [label="State 398\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" • Type \"=\" Term\l"] + 392 [label="State 392\n\l160 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term \"with\" • Term\l"] + 392 -> 45 [style=solid label="\"let\""] + 392 -> 8 [style=solid label="\"in\""] + 392 -> 46 [style=solid label="\"forall\""] + 392 -> 47 [style=solid label="\"choose\""] + 392 -> 48 [style=solid label="\"if\""] + 392 -> 49 [style=solid label="\"exists\""] + 392 -> 50 [style=solid label="\"undef\""] + 392 -> 51 [style=solid label="\"false\""] + 392 -> 52 [style=solid label="\"true\""] + 392 -> 53 [style=solid label="\"not\""] + 392 -> 54 [style=solid label="\"+\""] + 392 -> 55 [style=solid label="\"-\""] + 392 -> 56 [style=solid label="\"(\""] + 392 -> 57 [style=solid label="\"[\""] + 392 -> 58 [style=solid label="\"|\""] + 392 -> 59 [style=solid label="\"@\""] + 392 -> 60 [style=solid label="\"binary\""] + 392 -> 61 [style=solid label="\"hexadecimal\""] + 392 -> 62 [style=solid label="\"integer\""] + 392 -> 63 [style=solid label="\"rational\""] + 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 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 392 -> 68 [style=dashed label="OperatorExpression"] + 392 -> 69 [style=dashed label="CallExpression"] + 392 -> 70 [style=dashed label="DirectCallExpression"] + 392 -> 71 [style=dashed label="MethodCallExpression"] + 392 -> 72 [style=dashed label="LiteralCallExpression"] + 392 -> 73 [style=dashed label="IndirectCallExpression"] + 392 -> 74 [style=dashed label="TypeCastingExpression"] + 392 -> 75 [style=dashed label="LetExpression"] + 392 -> 76 [style=dashed label="ConditionalExpression"] + 392 -> 77 [style=dashed label="ChooseExpression"] + 392 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 392 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 392 -> 80 [style=dashed label="CardinalityExpression"] + 392 -> 81 [style=dashed label="Literal"] + 392 -> 82 [style=dashed label="UndefinedLiteral"] + 392 -> 83 [style=dashed label="BooleanLiteral"] + 392 -> 84 [style=dashed label="IntegerLiteral"] + 392 -> 85 [style=dashed label="RationalLiteral"] + 392 -> 86 [style=dashed label="DecimalLiteral"] + 392 -> 87 [style=dashed label="BinaryLiteral"] + 392 -> 88 [style=dashed label="StringLiteral"] + 392 -> 89 [style=dashed label="ReferenceLiteral"] + 392 -> 90 [style=dashed label="ListLiteral"] + 392 -> 91 [style=dashed label="RangeLiteral"] + 392 -> 92 [style=dashed label="TupleLiteral"] + 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 -> 109 [style=solid label="\"(\""] + 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 -> 451 [style=dashed label="Type"] - 398 -> 111 [style=dashed label="BasicType"] - 398 -> 112 [style=dashed label="TupleType"] - 398 -> 113 [style=dashed label="RecordType"] - 398 -> 114 [style=dashed label="TemplateType"] - 398 -> 115 [style=dashed label="RelationType"] - 398 -> 116 [style=dashed label="FixedSizedType"] + 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 -> 190 [style=dashed label="IdentifierPath"] - 399 [label="State 399\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" • Type \"=\" Term\l"] + 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 -> 452 [style=dashed label="Type"] + 399 -> 453 [style=dashed label="Type"] 399 -> 111 [style=dashed label="BasicType"] 399 -> 112 [style=dashed label="TupleType"] 399 -> 113 [style=dashed label="RecordType"] @@ -5562,274 +5556,233 @@ digraph "../../obj/src/GrammarParser.y" 399 -> 116 [style=dashed label="FixedSizedType"] 399 -> 94 [style=dashed label="Identifier"] 399 -> 190 [style=dashed label="IdentifierPath"] - 400 [label="State 400\n\l209 Parameters: Parameters \",\" TypedAttributedVariable •\l"] - 400 -> "400R209" [style=solid] - "400R209" [label="R209", fillcolor=3, shape=diamond, style=filled] - 401 [label="State 401\n\l 24 DerivedDefinition: \"derived\" Identifier \"->\" Type \"=\" Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] - 401 -> 148 [style=solid label="\"and\""] - 401 -> 149 [style=solid label="\"or\""] - 401 -> 150 [style=solid label="\"xor\""] - 401 -> 151 [style=solid label="\"implies\""] - 401 -> 152 [style=solid label="\"+\""] - 401 -> 153 [style=solid label="\"-\""] - 401 -> 154 [style=solid label="\"=\""] - 401 -> 155 [style=solid label="\"<\""] - 401 -> 156 [style=solid label="\">\""] - 401 -> 157 [style=solid label="\"*\""] - 401 -> 158 [style=solid label="\"/\""] - 401 -> 159 [style=solid label="\"%\""] - 401 -> 160 [style=solid label="\"^\""] - 401 -> 161 [style=solid label="\"=>\""] - 401 -> 162 [style=solid label="\"!=\""] - 401 -> 163 [style=solid label="\"<=\""] - 401 -> 164 [style=solid label="\">=\""] - 401 -> "401R24" [style=solid] - "401R24" [label="R24", fillcolor=3, shape=diamond, style=filled] - 402 [label="State 402\n\l 23 EnumerationDefinition: \"enumeration\" Identifier \"=\" \"{\" Enumerators \"}\" •\l"] - 402 -> "402R23" [style=solid] - "402R23" [label="R23", fillcolor=3, shape=diamond, style=filled] - 403 [label="State 403\n\l 37 Enumerators: Enumerators \",\" • EnumeratorDefinition\l"] - 403 -> 337 [style=dotted] - 403 -> 8 [style=solid label="\"in\""] - 403 -> 2 [style=solid label="\"[\""] - 403 -> 9 [style=solid label="\"identifier\""] - 403 -> 453 [style=dashed label="EnumeratorDefinition"] - 403 -> 340 [style=dashed label="Identifier"] - 403 -> 341 [style=dashed label="Attributes"] - 403 -> 6 [style=dashed label="Attribute"] - 404 [label="State 404\n\l 35 EnumeratorDefinition: Attributes Identifier •\l"] - 404 -> "404R35" [style=solid] - "404R35" [label="R35", fillcolor=3, shape=diamond, style=filled] - 405 [label="State 405\n\l 98 SequenceRule: \"seq\" error \"endseq\" •\l"] - 405 -> "405R98" [style=solid] - "405R98" [label="R98", fillcolor=3, shape=diamond, style=filled] - 406 [label="State 406\n\l 96 SequenceRule: \"seq\" Rules \"endseq\" •\l"] - 406 -> "406R96" [style=solid] - "406R96" [label="R96", fillcolor=3, shape=diamond, style=filled] - 407 [label="State 407\n\l 60 Rules: Rules Rule •\l"] - 407 -> "407R60" [style=solid] - "407R60" [label="R60", fillcolor=3, shape=diamond, style=filled] - 408 [label="State 408\n\l 94 BlockRule: \"par\" error \"endpar\" •\l"] - 408 -> "408R94" [style=solid] - "408R94" [label="R94", fillcolor=3, shape=diamond, style=filled] - 409 [label="State 409\n\l 92 BlockRule: \"par\" Rules \"endpar\" •\l"] - 409 -> "409R92" [style=solid] - "409R92" [label="R92", fillcolor=3, shape=diamond, style=filled] - 410 [label="State 410\n\l 85 LetRule: \"let\" VariableBindings \"in\" • Rule\l"] - 410 -> 259 [style=solid label="\"seq\""] - 410 -> 260 [style=solid label="\"par\""] - 410 -> 261 [style=solid label="\"skip\""] - 410 -> 262 [style=solid label="\"let\""] - 410 -> 263 [style=solid label="\"local\""] - 410 -> 8 [style=solid label="\"in\""] - 410 -> 264 [style=solid label="\"forall\""] - 410 -> 265 [style=solid label="\"choose\""] - 410 -> 266 [style=solid label="\"iterate\""] - 410 -> 267 [style=solid label="\"if\""] - 410 -> 268 [style=solid label="\"case\""] - 410 -> 269 [style=solid label="\"while\""] - 410 -> 50 [style=solid label="\"undef\""] - 410 -> 51 [style=solid label="\"false\""] - 410 -> 52 [style=solid label="\"true\""] - 410 -> 54 [style=solid label="\"+\""] - 410 -> 55 [style=solid label="\"-\""] - 410 -> 56 [style=solid label="\"(\""] - 410 -> 57 [style=solid label="\"[\""] - 410 -> 270 [style=solid label="\"{\""] - 410 -> 59 [style=solid label="\"@\""] - 410 -> 271 [style=solid label="\"{|\""] - 410 -> 60 [style=solid label="\"binary\""] - 410 -> 61 [style=solid label="\"hexadecimal\""] - 410 -> 62 [style=solid label="\"integer\""] - 410 -> 63 [style=solid label="\"rational\""] - 410 -> 64 [style=solid label="\"decimal\""] - 410 -> 65 [style=solid label="\"string\""] - 410 -> 9 [style=solid label="\"identifier\""] - 410 -> 454 [style=dashed label="Rule"] - 410 -> 273 [style=dashed label="SkipRule"] - 410 -> 274 [style=dashed label="ConditionalRule"] - 410 -> 275 [style=dashed label="CaseRule"] - 410 -> 276 [style=dashed label="LetRule"] - 410 -> 277 [style=dashed label="LocalRule"] - 410 -> 278 [style=dashed label="ForallRule"] - 410 -> 279 [style=dashed label="ChooseRule"] - 410 -> 280 [style=dashed label="IterateRule"] - 410 -> 281 [style=dashed label="BlockRule"] - 410 -> 282 [style=dashed label="SequenceRule"] - 410 -> 283 [style=dashed label="UpdateRule"] - 410 -> 284 [style=dashed label="CallRule"] - 410 -> 285 [style=dashed label="WhileRule"] - 410 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 410 -> 287 [style=dashed label="CallExpression"] - 410 -> 288 [style=dashed label="DirectCallExpression"] - 410 -> 71 [style=dashed label="MethodCallExpression"] - 410 -> 72 [style=dashed label="LiteralCallExpression"] - 410 -> 73 [style=dashed label="IndirectCallExpression"] - 410 -> 81 [style=dashed label="Literal"] - 410 -> 82 [style=dashed label="UndefinedLiteral"] - 410 -> 83 [style=dashed label="BooleanLiteral"] - 410 -> 84 [style=dashed label="IntegerLiteral"] - 410 -> 85 [style=dashed label="RationalLiteral"] - 410 -> 86 [style=dashed label="DecimalLiteral"] - 410 -> 87 [style=dashed label="BinaryLiteral"] - 410 -> 88 [style=dashed label="StringLiteral"] - 410 -> 89 [style=dashed label="ReferenceLiteral"] - 410 -> 90 [style=dashed label="ListLiteral"] - 410 -> 91 [style=dashed label="RangeLiteral"] - 410 -> 92 [style=dashed label="TupleLiteral"] - 410 -> 93 [style=dashed label="RecordLiteral"] - 410 -> 94 [style=dashed label="Identifier"] - 410 -> 95 [style=dashed label="IdentifierPath"] - 411 [label="State 411\n\l243 LocalFunctionDefinition: Identifier \":\" • MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] + 400 [label="State 400\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" • Type \"=\" Term\l"] + 400 -> 8 [style=solid label="\"in\""] + 400 -> 109 [style=solid label="\"(\""] + 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 -> 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 -> 109 [style=solid label="\"(\""] + 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 -> 307 [style=dashed label="Type"] - 411 -> 111 [style=dashed label="BasicType"] - 411 -> 112 [style=dashed label="TupleType"] - 411 -> 113 [style=dashed label="RecordType"] - 411 -> 114 [style=dashed label="TemplateType"] - 411 -> 115 [style=dashed label="RelationType"] - 411 -> 116 [style=dashed label="FixedSizedType"] - 411 -> 304 [style=dashed label="FunctionParameters"] - 411 -> 455 [style=dashed label="MaybeFunctionParameters"] + 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 -> 190 [style=dashed label="IdentifierPath"] - 411 -> "411R208" [style=solid] - "411R208" [label="R208", fillcolor=3, shape=diamond, style=filled] - 412 [label="State 412\n\l 86 LocalRule: \"local\" LocalFunctionDefinitions \"in\" • Rule\l"] - 412 -> 259 [style=solid label="\"seq\""] - 412 -> 260 [style=solid label="\"par\""] - 412 -> 261 [style=solid label="\"skip\""] - 412 -> 262 [style=solid label="\"let\""] - 412 -> 263 [style=solid label="\"local\""] + 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 -> 264 [style=solid label="\"forall\""] - 412 -> 265 [style=solid label="\"choose\""] - 412 -> 266 [style=solid label="\"iterate\""] - 412 -> 267 [style=solid label="\"if\""] - 412 -> 268 [style=solid label="\"case\""] - 412 -> 269 [style=solid label="\"while\""] - 412 -> 50 [style=solid label="\"undef\""] - 412 -> 51 [style=solid label="\"false\""] - 412 -> 52 [style=solid label="\"true\""] - 412 -> 54 [style=solid label="\"+\""] - 412 -> 55 [style=solid label="\"-\""] - 412 -> 56 [style=solid label="\"(\""] - 412 -> 57 [style=solid label="\"[\""] - 412 -> 270 [style=solid label="\"{\""] - 412 -> 59 [style=solid label="\"@\""] - 412 -> 271 [style=solid label="\"{|\""] - 412 -> 60 [style=solid label="\"binary\""] - 412 -> 61 [style=solid label="\"hexadecimal\""] - 412 -> 62 [style=solid label="\"integer\""] - 412 -> 63 [style=solid label="\"rational\""] - 412 -> 64 [style=solid label="\"decimal\""] - 412 -> 65 [style=solid label="\"string\""] + 412 -> 109 [style=solid label="\"(\""] 412 -> 9 [style=solid label="\"identifier\""] - 412 -> 456 [style=dashed label="Rule"] - 412 -> 273 [style=dashed label="SkipRule"] - 412 -> 274 [style=dashed label="ConditionalRule"] - 412 -> 275 [style=dashed label="CaseRule"] - 412 -> 276 [style=dashed label="LetRule"] - 412 -> 277 [style=dashed label="LocalRule"] - 412 -> 278 [style=dashed label="ForallRule"] - 412 -> 279 [style=dashed label="ChooseRule"] - 412 -> 280 [style=dashed label="IterateRule"] - 412 -> 281 [style=dashed label="BlockRule"] - 412 -> 282 [style=dashed label="SequenceRule"] - 412 -> 283 [style=dashed label="UpdateRule"] - 412 -> 284 [style=dashed label="CallRule"] - 412 -> 285 [style=dashed label="WhileRule"] - 412 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 412 -> 287 [style=dashed label="CallExpression"] - 412 -> 288 [style=dashed label="DirectCallExpression"] - 412 -> 71 [style=dashed label="MethodCallExpression"] - 412 -> 72 [style=dashed label="LiteralCallExpression"] - 412 -> 73 [style=dashed label="IndirectCallExpression"] - 412 -> 81 [style=dashed label="Literal"] - 412 -> 82 [style=dashed label="UndefinedLiteral"] - 412 -> 83 [style=dashed label="BooleanLiteral"] - 412 -> 84 [style=dashed label="IntegerLiteral"] - 412 -> 85 [style=dashed label="RationalLiteral"] - 412 -> 86 [style=dashed label="DecimalLiteral"] - 412 -> 87 [style=dashed label="BinaryLiteral"] - 412 -> 88 [style=dashed label="StringLiteral"] - 412 -> 89 [style=dashed label="ReferenceLiteral"] - 412 -> 90 [style=dashed label="ListLiteral"] - 412 -> 91 [style=dashed label="RangeLiteral"] - 412 -> 92 [style=dashed label="TupleLiteral"] - 412 -> 93 [style=dashed label="RecordLiteral"] + 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 -> 95 [style=dashed label="IdentifierPath"] - 413 [label="State 413\n\l238 LocalFunctionDefinitions: LocalFunctionDefinitions \",\" • AttributedLocalFunctionDefinition\l"] - 413 -> 348 [style=dotted] + 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"] + 413 -> 259 [style=solid label="\"seq\""] + 413 -> 260 [style=solid label="\"par\""] + 413 -> 261 [style=solid label="\"skip\""] + 413 -> 262 [style=solid label="\"let\""] + 413 -> 263 [style=solid label="\"local\""] 413 -> 8 [style=solid label="\"in\""] - 413 -> 2 [style=solid label="\"[\""] + 413 -> 264 [style=solid label="\"forall\""] + 413 -> 265 [style=solid label="\"choose\""] + 413 -> 266 [style=solid label="\"iterate\""] + 413 -> 267 [style=solid label="\"if\""] + 413 -> 268 [style=solid label="\"case\""] + 413 -> 269 [style=solid label="\"while\""] + 413 -> 50 [style=solid label="\"undef\""] + 413 -> 51 [style=solid label="\"false\""] + 413 -> 52 [style=solid label="\"true\""] + 413 -> 54 [style=solid label="\"+\""] + 413 -> 55 [style=solid label="\"-\""] + 413 -> 56 [style=solid label="\"(\""] + 413 -> 57 [style=solid label="\"[\""] + 413 -> 270 [style=solid label="\"{\""] + 413 -> 59 [style=solid label="\"@\""] + 413 -> 271 [style=solid label="\"{|\""] + 413 -> 60 [style=solid label="\"binary\""] + 413 -> 61 [style=solid label="\"hexadecimal\""] + 413 -> 62 [style=solid label="\"integer\""] + 413 -> 63 [style=solid label="\"rational\""] + 413 -> 64 [style=solid label="\"decimal\""] + 413 -> 65 [style=solid label="\"string\""] 413 -> 9 [style=solid label="\"identifier\""] - 413 -> 349 [style=dashed label="Identifier"] - 413 -> 457 [style=dashed label="AttributedLocalFunctionDefinition"] - 413 -> 352 [style=dashed label="LocalFunctionDefinition"] - 413 -> 353 [style=dashed label="Attributes"] - 413 -> 6 [style=dashed label="Attribute"] - 414 [label="State 414\n\l240 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition •\l"] - 414 -> "414R240" [style=solid] - "414R240" [label="R240", fillcolor=3, shape=diamond, style=filled] - 415 [label="State 415\n\l 87 ForallRule: \"forall\" AttributedVariables \"in\" • Term \"do\" Rule\l 88 | \"forall\" AttributedVariables \"in\" • Term \"with\" Term \"do\" Rule\l"] - 415 -> 45 [style=solid label="\"let\""] - 415 -> 8 [style=solid label="\"in\""] - 415 -> 46 [style=solid label="\"forall\""] - 415 -> 47 [style=solid label="\"choose\""] - 415 -> 48 [style=solid label="\"if\""] - 415 -> 49 [style=solid label="\"exists\""] - 415 -> 50 [style=solid label="\"undef\""] - 415 -> 51 [style=solid label="\"false\""] - 415 -> 52 [style=solid label="\"true\""] - 415 -> 53 [style=solid label="\"not\""] - 415 -> 54 [style=solid label="\"+\""] - 415 -> 55 [style=solid label="\"-\""] - 415 -> 56 [style=solid label="\"(\""] - 415 -> 57 [style=solid label="\"[\""] - 415 -> 58 [style=solid label="\"|\""] - 415 -> 59 [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 -> 458 [style=dashed label="Term"] - 415 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 415 -> 68 [style=dashed label="OperatorExpression"] - 415 -> 69 [style=dashed label="CallExpression"] - 415 -> 70 [style=dashed label="DirectCallExpression"] - 415 -> 71 [style=dashed label="MethodCallExpression"] - 415 -> 72 [style=dashed label="LiteralCallExpression"] - 415 -> 73 [style=dashed label="IndirectCallExpression"] - 415 -> 74 [style=dashed label="TypeCastingExpression"] - 415 -> 75 [style=dashed label="LetExpression"] - 415 -> 76 [style=dashed label="ConditionalExpression"] - 415 -> 77 [style=dashed label="ChooseExpression"] - 415 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 415 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 415 -> 80 [style=dashed label="CardinalityExpression"] - 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\l 89 ChooseRule: \"choose\" AttributedVariables \"in\" • Term \"do\" Rule\l"] + 413 -> 458 [style=dashed label="Rule"] + 413 -> 273 [style=dashed label="SkipRule"] + 413 -> 274 [style=dashed label="ConditionalRule"] + 413 -> 275 [style=dashed label="CaseRule"] + 413 -> 276 [style=dashed label="LetRule"] + 413 -> 277 [style=dashed label="LocalRule"] + 413 -> 278 [style=dashed label="ForallRule"] + 413 -> 279 [style=dashed label="ChooseRule"] + 413 -> 280 [style=dashed label="IterateRule"] + 413 -> 281 [style=dashed label="BlockRule"] + 413 -> 282 [style=dashed label="SequenceRule"] + 413 -> 283 [style=dashed label="UpdateRule"] + 413 -> 284 [style=dashed label="CallRule"] + 413 -> 285 [style=dashed label="WhileRule"] + 413 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 413 -> 287 [style=dashed label="CallExpression"] + 413 -> 288 [style=dashed label="DirectCallExpression"] + 413 -> 71 [style=dashed label="MethodCallExpression"] + 413 -> 72 [style=dashed label="LiteralCallExpression"] + 413 -> 73 [style=dashed label="IndirectCallExpression"] + 413 -> 81 [style=dashed label="Literal"] + 413 -> 82 [style=dashed label="UndefinedLiteral"] + 413 -> 83 [style=dashed label="BooleanLiteral"] + 413 -> 84 [style=dashed label="IntegerLiteral"] + 413 -> 85 [style=dashed label="RationalLiteral"] + 413 -> 86 [style=dashed label="DecimalLiteral"] + 413 -> 87 [style=dashed label="BinaryLiteral"] + 413 -> 88 [style=dashed label="StringLiteral"] + 413 -> 89 [style=dashed label="ReferenceLiteral"] + 413 -> 90 [style=dashed label="ListLiteral"] + 413 -> 91 [style=dashed label="RangeLiteral"] + 413 -> 92 [style=dashed label="TupleLiteral"] + 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 -> 8 [style=solid label="\"in\""] + 414 -> 2 [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\""] 416 -> 8 [style=solid label="\"in\""] 416 -> 46 [style=solid label="\"forall\""] @@ -5853,7 +5806,7 @@ digraph "../../obj/src/GrammarParser.y" 416 -> 64 [style=solid label="\"decimal\""] 416 -> 65 [style=solid label="\"string\""] 416 -> 9 [style=solid label="\"identifier\""] - 416 -> 459 [style=dashed label="Term"] + 416 -> 460 [style=dashed label="Term"] 416 -> 67 [style=dashed label="SimpleOrClaspedTerm"] 416 -> 68 [style=dashed label="OperatorExpression"] 416 -> 69 [style=dashed label="CallExpression"] @@ -5883,29 +5836,23 @@ digraph "../../obj/src/GrammarParser.y" 416 -> 93 [style=dashed label="RecordLiteral"] 416 -> 94 [style=dashed label="Identifier"] 416 -> 95 [style=dashed label="IdentifierPath"] - 417 [label="State 417\n\l 76 ConditionalRule: \"if\" Term \"then\" • Rule\l 77 | \"if\" Term \"then\" • Rule \"else\" Rule\l"] - 417 -> 259 [style=solid label="\"seq\""] - 417 -> 260 [style=solid label="\"par\""] - 417 -> 261 [style=solid label="\"skip\""] - 417 -> 262 [style=solid label="\"let\""] - 417 -> 263 [style=solid label="\"local\""] + 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 -> 264 [style=solid label="\"forall\""] - 417 -> 265 [style=solid label="\"choose\""] - 417 -> 266 [style=solid label="\"iterate\""] - 417 -> 267 [style=solid label="\"if\""] - 417 -> 268 [style=solid label="\"case\""] - 417 -> 269 [style=solid label="\"while\""] + 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 -> 270 [style=solid label="\"{\""] + 417 -> 58 [style=solid label="\"|\""] 417 -> 59 [style=solid label="\"@\""] - 417 -> 271 [style=solid label="\"{|\""] 417 -> 60 [style=solid label="\"binary\""] 417 -> 61 [style=solid label="\"hexadecimal\""] 417 -> 62 [style=solid label="\"integer\""] @@ -5913,26 +5860,21 @@ digraph "../../obj/src/GrammarParser.y" 417 -> 64 [style=solid label="\"decimal\""] 417 -> 65 [style=solid label="\"string\""] 417 -> 9 [style=solid label="\"identifier\""] - 417 -> 460 [style=dashed label="Rule"] - 417 -> 273 [style=dashed label="SkipRule"] - 417 -> 274 [style=dashed label="ConditionalRule"] - 417 -> 275 [style=dashed label="CaseRule"] - 417 -> 276 [style=dashed label="LetRule"] - 417 -> 277 [style=dashed label="LocalRule"] - 417 -> 278 [style=dashed label="ForallRule"] - 417 -> 279 [style=dashed label="ChooseRule"] - 417 -> 280 [style=dashed label="IterateRule"] - 417 -> 281 [style=dashed label="BlockRule"] - 417 -> 282 [style=dashed label="SequenceRule"] - 417 -> 283 [style=dashed label="UpdateRule"] - 417 -> 284 [style=dashed label="CallRule"] - 417 -> 285 [style=dashed label="WhileRule"] - 417 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 417 -> 287 [style=dashed label="CallExpression"] - 417 -> 288 [style=dashed label="DirectCallExpression"] + 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"] @@ -5948,355 +5890,383 @@ digraph "../../obj/src/GrammarParser.y" 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 CaseRule: \"case\" Term \"of\" • \"{\" CaseLabels \"}\"\l 79 | \"case\" Term \"of\" • \"{\" error \"}\"\l"] - 418 -> 461 [style=solid label="\"{\""] - 419 [label="State 419\n\l101 WhileRule: \"while\" Term \"do\" • Rule\l"] - 419 -> 259 [style=solid label="\"seq\""] - 419 -> 260 [style=solid label="\"par\""] - 419 -> 261 [style=solid label="\"skip\""] - 419 -> 262 [style=solid label="\"let\""] - 419 -> 263 [style=solid label="\"local\""] - 419 -> 8 [style=solid label="\"in\""] - 419 -> 264 [style=solid label="\"forall\""] - 419 -> 265 [style=solid label="\"choose\""] - 419 -> 266 [style=solid label="\"iterate\""] - 419 -> 267 [style=solid label="\"if\""] - 419 -> 268 [style=solid label="\"case\""] - 419 -> 269 [style=solid label="\"while\""] - 419 -> 50 [style=solid label="\"undef\""] - 419 -> 51 [style=solid label="\"false\""] - 419 -> 52 [style=solid label="\"true\""] - 419 -> 54 [style=solid label="\"+\""] - 419 -> 55 [style=solid label="\"-\""] - 419 -> 56 [style=solid label="\"(\""] - 419 -> 57 [style=solid label="\"[\""] - 419 -> 270 [style=solid label="\"{\""] - 419 -> 59 [style=solid label="\"@\""] - 419 -> 271 [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 -> 462 [style=dashed label="Rule"] - 419 -> 273 [style=dashed label="SkipRule"] - 419 -> 274 [style=dashed label="ConditionalRule"] - 419 -> 275 [style=dashed label="CaseRule"] - 419 -> 276 [style=dashed label="LetRule"] - 419 -> 277 [style=dashed label="LocalRule"] - 419 -> 278 [style=dashed label="ForallRule"] - 419 -> 279 [style=dashed label="ChooseRule"] - 419 -> 280 [style=dashed label="IterateRule"] - 419 -> 281 [style=dashed label="BlockRule"] - 419 -> 282 [style=dashed label="SequenceRule"] - 419 -> 283 [style=dashed label="UpdateRule"] - 419 -> 284 [style=dashed label="CallRule"] - 419 -> 285 [style=dashed label="WhileRule"] - 419 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 419 -> 287 [style=dashed label="CallExpression"] - 419 -> 288 [style=dashed label="DirectCallExpression"] - 419 -> 71 [style=dashed label="MethodCallExpression"] - 419 -> 72 [style=dashed label="LiteralCallExpression"] - 419 -> 73 [style=dashed label="IndirectCallExpression"] - 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 93 BlockRule: \"{\" error \"}\" •\l"] - 420 -> "420R93" [style=solid] - "420R93" [label="R93", fillcolor=3, shape=diamond, style=filled] - 421 [label="State 421\n\l 91 BlockRule: \"{\" Rules \"}\" •\l"] - 421 -> "421R91" [style=solid] - "421R91" [label="R91", fillcolor=3, shape=diamond, style=filled] - 422 [label="State 422\n\l 97 SequenceRule: \"{|\" error \"|}\" •\l"] - 422 -> "422R97" [style=solid] - "422R97" [label="R97", fillcolor=3, shape=diamond, style=filled] - 423 [label="State 423\n\l 95 SequenceRule: \"{|\" Rules \"|}\" •\l"] - 423 -> "423R95" [style=solid] - "423R95" [label="R95", fillcolor=3, shape=diamond, style=filled] - 424 [label="State 424\n\l 99 UpdateRule: DirectCallExpression \":=\" Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] - 424 -> 148 [style=solid label="\"and\""] - 424 -> 149 [style=solid label="\"or\""] - 424 -> 150 [style=solid label="\"xor\""] - 424 -> 151 [style=solid label="\"implies\""] - 424 -> 152 [style=solid label="\"+\""] - 424 -> 153 [style=solid label="\"-\""] - 424 -> 154 [style=solid label="\"=\""] - 424 -> 155 [style=solid label="\"<\""] - 424 -> 156 [style=solid label="\">\""] - 424 -> 157 [style=solid label="\"*\""] - 424 -> 158 [style=solid label="\"/\""] - 424 -> 159 [style=solid label="\"%\""] - 424 -> 160 [style=solid label="\"^\""] - 424 -> 161 [style=solid label="\"=>\""] - 424 -> 162 [style=solid label="\"!=\""] - 424 -> 163 [style=solid label="\"<=\""] - 424 -> 164 [style=solid label="\">=\""] - 424 -> "424R99" [style=solid] - "424R99" [label="R99", fillcolor=3, shape=diamond, style=filled] - 425 [label="State 425\n\l 31 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"=\" • Rule\l"] - 425 -> 259 [style=solid label="\"seq\""] - 425 -> 260 [style=solid label="\"par\""] - 425 -> 261 [style=solid label="\"skip\""] - 425 -> 262 [style=solid label="\"let\""] - 425 -> 263 [style=solid label="\"local\""] - 425 -> 8 [style=solid label="\"in\""] - 425 -> 264 [style=solid label="\"forall\""] - 425 -> 265 [style=solid label="\"choose\""] - 425 -> 266 [style=solid label="\"iterate\""] - 425 -> 267 [style=solid label="\"if\""] - 425 -> 268 [style=solid label="\"case\""] - 425 -> 269 [style=solid label="\"while\""] - 425 -> 50 [style=solid label="\"undef\""] - 425 -> 51 [style=solid label="\"false\""] - 425 -> 52 [style=solid label="\"true\""] - 425 -> 54 [style=solid label="\"+\""] - 425 -> 55 [style=solid label="\"-\""] - 425 -> 56 [style=solid label="\"(\""] - 425 -> 57 [style=solid label="\"[\""] - 425 -> 270 [style=solid label="\"{\""] - 425 -> 59 [style=solid label="\"@\""] - 425 -> 271 [style=solid label="\"{|\""] - 425 -> 60 [style=solid label="\"binary\""] - 425 -> 61 [style=solid label="\"hexadecimal\""] - 425 -> 62 [style=solid label="\"integer\""] - 425 -> 63 [style=solid label="\"rational\""] - 425 -> 64 [style=solid label="\"decimal\""] - 425 -> 65 [style=solid label="\"string\""] - 425 -> 9 [style=solid label="\"identifier\""] - 425 -> 463 [style=dashed label="Rule"] - 425 -> 273 [style=dashed label="SkipRule"] - 425 -> 274 [style=dashed label="ConditionalRule"] - 425 -> 275 [style=dashed label="CaseRule"] - 425 -> 276 [style=dashed label="LetRule"] - 425 -> 277 [style=dashed label="LocalRule"] - 425 -> 278 [style=dashed label="ForallRule"] - 425 -> 279 [style=dashed label="ChooseRule"] - 425 -> 280 [style=dashed label="IterateRule"] - 425 -> 281 [style=dashed label="BlockRule"] - 425 -> 282 [style=dashed label="SequenceRule"] - 425 -> 283 [style=dashed label="UpdateRule"] - 425 -> 284 [style=dashed label="CallRule"] - 425 -> 285 [style=dashed label="WhileRule"] - 425 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 425 -> 287 [style=dashed label="CallExpression"] - 425 -> 288 [style=dashed label="DirectCallExpression"] - 425 -> 71 [style=dashed label="MethodCallExpression"] - 425 -> 72 [style=dashed label="LiteralCallExpression"] - 425 -> 73 [style=dashed label="IndirectCallExpression"] - 425 -> 81 [style=dashed label="Literal"] - 425 -> 82 [style=dashed label="UndefinedLiteral"] - 425 -> 83 [style=dashed label="BooleanLiteral"] - 425 -> 84 [style=dashed label="IntegerLiteral"] - 425 -> 85 [style=dashed label="RationalLiteral"] - 425 -> 86 [style=dashed label="DecimalLiteral"] - 425 -> 87 [style=dashed label="BinaryLiteral"] - 425 -> 88 [style=dashed label="StringLiteral"] - 425 -> 89 [style=dashed label="ReferenceLiteral"] - 425 -> 90 [style=dashed label="ListLiteral"] - 425 -> 91 [style=dashed label="RangeLiteral"] - 425 -> 92 [style=dashed label="TupleLiteral"] - 425 -> 93 [style=dashed label="RecordLiteral"] - 425 -> 94 [style=dashed label="Identifier"] - 425 -> 95 [style=dashed label="IdentifierPath"] - 426 [label="State 426\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" • Type \"=\" Rule\l"] + 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\""] + 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 -> 50 [style=solid label="\"undef\""] + 418 -> 51 [style=solid label="\"false\""] + 418 -> 52 [style=solid label="\"true\""] + 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 -> 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\""] + 418 -> 63 [style=solid label="\"rational\""] + 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 -> 71 [style=dashed label="MethodCallExpression"] + 418 -> 72 [style=dashed label="LiteralCallExpression"] + 418 -> 73 [style=dashed label="IndirectCallExpression"] + 418 -> 81 [style=dashed label="Literal"] + 418 -> 82 [style=dashed label="UndefinedLiteral"] + 418 -> 83 [style=dashed label="BooleanLiteral"] + 418 -> 84 [style=dashed label="IntegerLiteral"] + 418 -> 85 [style=dashed label="RationalLiteral"] + 418 -> 86 [style=dashed label="DecimalLiteral"] + 418 -> 87 [style=dashed label="BinaryLiteral"] + 418 -> 88 [style=dashed label="StringLiteral"] + 418 -> 89 [style=dashed label="ReferenceLiteral"] + 418 -> 90 [style=dashed label="ListLiteral"] + 418 -> 91 [style=dashed label="RangeLiteral"] + 418 -> 92 [style=dashed label="TupleLiteral"] + 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"] + 420 -> 259 [style=solid label="\"seq\""] + 420 -> 260 [style=solid label="\"par\""] + 420 -> 261 [style=solid label="\"skip\""] + 420 -> 262 [style=solid label="\"let\""] + 420 -> 263 [style=solid label="\"local\""] + 420 -> 8 [style=solid label="\"in\""] + 420 -> 264 [style=solid label="\"forall\""] + 420 -> 265 [style=solid label="\"choose\""] + 420 -> 266 [style=solid label="\"iterate\""] + 420 -> 267 [style=solid label="\"if\""] + 420 -> 268 [style=solid label="\"case\""] + 420 -> 269 [style=solid label="\"while\""] + 420 -> 50 [style=solid label="\"undef\""] + 420 -> 51 [style=solid label="\"false\""] + 420 -> 52 [style=solid label="\"true\""] + 420 -> 54 [style=solid label="\"+\""] + 420 -> 55 [style=solid label="\"-\""] + 420 -> 56 [style=solid label="\"(\""] + 420 -> 57 [style=solid label="\"[\""] + 420 -> 270 [style=solid label="\"{\""] + 420 -> 59 [style=solid label="\"@\""] + 420 -> 271 [style=solid label="\"{|\""] + 420 -> 60 [style=solid label="\"binary\""] + 420 -> 61 [style=solid label="\"hexadecimal\""] + 420 -> 62 [style=solid label="\"integer\""] + 420 -> 63 [style=solid label="\"rational\""] + 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 -> 273 [style=dashed label="SkipRule"] + 420 -> 274 [style=dashed label="ConditionalRule"] + 420 -> 275 [style=dashed label="CaseRule"] + 420 -> 276 [style=dashed label="LetRule"] + 420 -> 277 [style=dashed label="LocalRule"] + 420 -> 278 [style=dashed label="ForallRule"] + 420 -> 279 [style=dashed label="ChooseRule"] + 420 -> 280 [style=dashed label="IterateRule"] + 420 -> 281 [style=dashed label="BlockRule"] + 420 -> 282 [style=dashed label="SequenceRule"] + 420 -> 283 [style=dashed label="UpdateRule"] + 420 -> 284 [style=dashed label="CallRule"] + 420 -> 285 [style=dashed label="WhileRule"] + 420 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 420 -> 287 [style=dashed label="CallExpression"] + 420 -> 288 [style=dashed label="DirectCallExpression"] + 420 -> 71 [style=dashed label="MethodCallExpression"] + 420 -> 72 [style=dashed label="LiteralCallExpression"] + 420 -> 73 [style=dashed label="IndirectCallExpression"] + 420 -> 81 [style=dashed label="Literal"] + 420 -> 82 [style=dashed label="UndefinedLiteral"] + 420 -> 83 [style=dashed label="BooleanLiteral"] + 420 -> 84 [style=dashed label="IntegerLiteral"] + 420 -> 85 [style=dashed label="RationalLiteral"] + 420 -> 86 [style=dashed label="DecimalLiteral"] + 420 -> 87 [style=dashed label="BinaryLiteral"] + 420 -> 88 [style=dashed label="StringLiteral"] + 420 -> 89 [style=dashed label="ReferenceLiteral"] + 420 -> 90 [style=dashed label="ListLiteral"] + 420 -> 91 [style=dashed label="RangeLiteral"] + 420 -> 92 [style=dashed label="TupleLiteral"] + 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="\">=\""] + 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 -> 109 [style=solid label="\"(\""] + 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 -> 464 [style=dashed label="Type"] - 426 -> 111 [style=dashed label="BasicType"] - 426 -> 112 [style=dashed label="TupleType"] - 426 -> 113 [style=dashed label="RecordType"] - 426 -> 114 [style=dashed label="TemplateType"] - 426 -> 115 [style=dashed label="RelationType"] - 426 -> 116 [style=dashed label="FixedSizedType"] + 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 -> 190 [style=dashed label="IdentifierPath"] - 427 [label="State 427\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"=\" • Rule\l"] - 427 -> 259 [style=solid label="\"seq\""] - 427 -> 260 [style=solid label="\"par\""] - 427 -> 261 [style=solid label="\"skip\""] - 427 -> 262 [style=solid label="\"let\""] - 427 -> 263 [style=solid label="\"local\""] + 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 -> 264 [style=solid label="\"forall\""] - 427 -> 265 [style=solid label="\"choose\""] - 427 -> 266 [style=solid label="\"iterate\""] - 427 -> 267 [style=solid label="\"if\""] - 427 -> 268 [style=solid label="\"case\""] - 427 -> 269 [style=solid label="\"while\""] - 427 -> 50 [style=solid label="\"undef\""] - 427 -> 51 [style=solid label="\"false\""] - 427 -> 52 [style=solid label="\"true\""] - 427 -> 54 [style=solid label="\"+\""] - 427 -> 55 [style=solid label="\"-\""] - 427 -> 56 [style=solid label="\"(\""] - 427 -> 57 [style=solid label="\"[\""] - 427 -> 270 [style=solid label="\"{\""] - 427 -> 59 [style=solid label="\"@\""] - 427 -> 271 [style=solid label="\"{|\""] - 427 -> 60 [style=solid label="\"binary\""] - 427 -> 61 [style=solid label="\"hexadecimal\""] - 427 -> 62 [style=solid label="\"integer\""] - 427 -> 63 [style=solid label="\"rational\""] - 427 -> 64 [style=solid label="\"decimal\""] - 427 -> 65 [style=solid label="\"string\""] + 427 -> 109 [style=solid label="\"(\""] 427 -> 9 [style=solid label="\"identifier\""] - 427 -> 465 [style=dashed label="Rule"] - 427 -> 273 [style=dashed label="SkipRule"] - 427 -> 274 [style=dashed label="ConditionalRule"] - 427 -> 275 [style=dashed label="CaseRule"] - 427 -> 276 [style=dashed label="LetRule"] - 427 -> 277 [style=dashed label="LocalRule"] - 427 -> 278 [style=dashed label="ForallRule"] - 427 -> 279 [style=dashed label="ChooseRule"] - 427 -> 280 [style=dashed label="IterateRule"] - 427 -> 281 [style=dashed label="BlockRule"] - 427 -> 282 [style=dashed label="SequenceRule"] - 427 -> 283 [style=dashed label="UpdateRule"] - 427 -> 284 [style=dashed label="CallRule"] - 427 -> 285 [style=dashed label="WhileRule"] - 427 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 427 -> 287 [style=dashed label="CallExpression"] - 427 -> 288 [style=dashed label="DirectCallExpression"] - 427 -> 71 [style=dashed label="MethodCallExpression"] - 427 -> 72 [style=dashed label="LiteralCallExpression"] - 427 -> 73 [style=dashed label="IndirectCallExpression"] - 427 -> 81 [style=dashed label="Literal"] - 427 -> 82 [style=dashed label="UndefinedLiteral"] - 427 -> 83 [style=dashed label="BooleanLiteral"] - 427 -> 84 [style=dashed label="IntegerLiteral"] - 427 -> 85 [style=dashed label="RationalLiteral"] - 427 -> 86 [style=dashed label="DecimalLiteral"] - 427 -> 87 [style=dashed label="BinaryLiteral"] - 427 -> 88 [style=dashed label="StringLiteral"] - 427 -> 89 [style=dashed label="ReferenceLiteral"] - 427 -> 90 [style=dashed label="ListLiteral"] - 427 -> 91 [style=dashed label="RangeLiteral"] - 427 -> 92 [style=dashed label="TupleLiteral"] - 427 -> 93 [style=dashed label="RecordLiteral"] + 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 -> 95 [style=dashed label="IdentifierPath"] - 428 [label="State 428\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" • Type \"=\" Rule\l"] + 427 -> 190 [style=dashed label="IdentifierPath"] + 428 [label="State 428\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"=\" • Rule\l"] + 428 -> 259 [style=solid label="\"seq\""] + 428 -> 260 [style=solid label="\"par\""] + 428 -> 261 [style=solid label="\"skip\""] + 428 -> 262 [style=solid label="\"let\""] + 428 -> 263 [style=solid label="\"local\""] 428 -> 8 [style=solid label="\"in\""] - 428 -> 109 [style=solid label="\"(\""] + 428 -> 264 [style=solid label="\"forall\""] + 428 -> 265 [style=solid label="\"choose\""] + 428 -> 266 [style=solid label="\"iterate\""] + 428 -> 267 [style=solid label="\"if\""] + 428 -> 268 [style=solid label="\"case\""] + 428 -> 269 [style=solid label="\"while\""] + 428 -> 50 [style=solid label="\"undef\""] + 428 -> 51 [style=solid label="\"false\""] + 428 -> 52 [style=solid label="\"true\""] + 428 -> 54 [style=solid label="\"+\""] + 428 -> 55 [style=solid label="\"-\""] + 428 -> 56 [style=solid label="\"(\""] + 428 -> 57 [style=solid label="\"[\""] + 428 -> 270 [style=solid label="\"{\""] + 428 -> 59 [style=solid label="\"@\""] + 428 -> 271 [style=solid label="\"{|\""] + 428 -> 60 [style=solid label="\"binary\""] + 428 -> 61 [style=solid label="\"hexadecimal\""] + 428 -> 62 [style=solid label="\"integer\""] + 428 -> 63 [style=solid label="\"rational\""] + 428 -> 64 [style=solid label="\"decimal\""] + 428 -> 65 [style=solid label="\"string\""] 428 -> 9 [style=solid label="\"identifier\""] - 428 -> 466 [style=dashed label="Type"] - 428 -> 111 [style=dashed label="BasicType"] - 428 -> 112 [style=dashed label="TupleType"] - 428 -> 113 [style=dashed label="RecordType"] - 428 -> 114 [style=dashed label="TemplateType"] - 428 -> 115 [style=dashed label="RelationType"] - 428 -> 116 [style=dashed label="FixedSizedType"] + 428 -> 467 [style=dashed label="Rule"] + 428 -> 273 [style=dashed label="SkipRule"] + 428 -> 274 [style=dashed label="ConditionalRule"] + 428 -> 275 [style=dashed label="CaseRule"] + 428 -> 276 [style=dashed label="LetRule"] + 428 -> 277 [style=dashed label="LocalRule"] + 428 -> 278 [style=dashed label="ForallRule"] + 428 -> 279 [style=dashed label="ChooseRule"] + 428 -> 280 [style=dashed label="IterateRule"] + 428 -> 281 [style=dashed label="BlockRule"] + 428 -> 282 [style=dashed label="SequenceRule"] + 428 -> 283 [style=dashed label="UpdateRule"] + 428 -> 284 [style=dashed label="CallRule"] + 428 -> 285 [style=dashed label="WhileRule"] + 428 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 428 -> 287 [style=dashed label="CallExpression"] + 428 -> 288 [style=dashed label="DirectCallExpression"] + 428 -> 71 [style=dashed label="MethodCallExpression"] + 428 -> 72 [style=dashed label="LiteralCallExpression"] + 428 -> 73 [style=dashed label="IndirectCallExpression"] + 428 -> 81 [style=dashed label="Literal"] + 428 -> 82 [style=dashed label="UndefinedLiteral"] + 428 -> 83 [style=dashed label="BooleanLiteral"] + 428 -> 84 [style=dashed label="IntegerLiteral"] + 428 -> 85 [style=dashed label="RationalLiteral"] + 428 -> 86 [style=dashed label="DecimalLiteral"] + 428 -> 87 [style=dashed label="BinaryLiteral"] + 428 -> 88 [style=dashed label="StringLiteral"] + 428 -> 89 [style=dashed label="ReferenceLiteral"] + 428 -> 90 [style=dashed label="ListLiteral"] + 428 -> 91 [style=dashed label="RangeLiteral"] + 428 -> 92 [style=dashed label="TupleLiteral"] + 428 -> 93 [style=dashed label="RecordLiteral"] 428 -> 94 [style=dashed label="Identifier"] - 428 -> 190 [style=dashed label="IdentifierPath"] - 429 [label="State 429\n\l 28 RuleDefinition: \"rule\" Identifier \"->\" Type \"=\" Rule •\l"] - 429 -> "429R28" [style=solid] - "429R28" [label="R28", fillcolor=3, shape=diamond, style=filled] - 430 [label="State 430\n\l 45 StructureDefinition: \"structure\" Identifier \"=\" \"{\" FunctionDefinition \"}\" •\l"] - 430 -> "430R45" [style=solid] - "430R45" [label="R45", fillcolor=3, shape=diamond, style=filled] - 431 [label="State 431\n\l 24 DerivedDefinition: \"derived\" Identifier • \"->\" Type \"=\" Term\l 25 | \"derived\" Identifier • \"(\" Parameters \")\" \"->\" Type \"=\" Term\l 26 | \"derived\" Identifier • \"(\" error \")\" \"->\" Type \"=\" Term\l 58 DeclarationDefinition: \"derived\" Identifier • \":\" MaybeFunctionParameters \"->\" Type\l"] - 431 -> 175 [style=solid label="\"(\""] - 431 -> 467 [style=solid label="\":\""] - 431 -> 176 [style=solid label="\"->\""] - 432 [label="State 432\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 59 DeclarationDefinition: \"rule\" Identifier • \":\" MaybeFunctionParameters \"->\" Type\l"] - 432 -> 178 [style=solid label="\"=\""] - 432 -> 179 [style=solid label="\"(\""] - 432 -> 468 [style=solid label="\":\""] - 432 -> 180 [style=solid label="\"->\""] - 433 [label="State 433\n\l 46 FeatureDefinition: \"feature\" Identifier \"=\" \"{\" FeatureDeclarationsAndDefinitions \"}\" •\l"] - 433 -> "433R46" [style=solid] - "433R46" [label="R46", fillcolor=3, shape=diamond, style=filled] - 434 [label="State 434\n\l 50 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition •\l"] - 434 -> "434R50" [style=solid] - "434R50" [label="R50", fillcolor=3, shape=diamond, style=filled] - 435 [label="State 435\n\l200 TupleType: \"(\" Types \",\" Type \")\" •\l"] - 435 -> "435R200" [style=solid] - "435R200" [label="R200", fillcolor=3, shape=diamond, style=filled] - 436 [label="State 436\n\l201 RecordType: \"(\" TypedVariables \",\" TypedVariable \")\" •\l"] - 436 -> "436R201" [style=solid] - "436R201" [label="R201", fillcolor=3, shape=diamond, style=filled] - 437 [label="State 437\n\l 53 ImplementationDefinition: \"implements\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\" •\l"] - 437 -> "437R53" [style=solid] - "437R53" [label="R53", fillcolor=3, shape=diamond, style=filled] - 438 [label="State 438\n\l 56 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions ImplementationDefinitionDefinition •\l"] - 438 -> "438R56" [style=solid] - "438R56" [label="R56", fillcolor=3, shape=diamond, style=filled] - 439 [label="State 439\n\l 52 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" \"{\" • ImplementationDefinitionDefinitions \"}\"\l"] - 439 -> 16 [style=solid label="\"derived\""] - 439 -> 18 [style=solid label="\"rule\""] - 439 -> 378 [style=dashed label="DerivedDefinition"] - 439 -> 379 [style=dashed label="RuleDefinition"] - 439 -> 380 [style=dashed label="ImplementationDefinitionDefinition"] - 439 -> 469 [style=dashed label="ImplementationDefinitionDefinitions"] - 440 [label="State 440\n\l191 Types: Types \",\" Type •\l"] - 440 -> "440R191" [style=solid] - "440R191" [label="R191", fillcolor=3, shape=diamond, style=filled] - 441 [label="State 441\n\l205 FunctionParameters: FunctionParameters \"*\" Type •\l"] - 441 -> "441R205" [style=solid] - "441R205" [label="R205", fillcolor=3, shape=diamond, style=filled] - 442 [label="State 442\n\l203 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" Type • \">\"\l"] - 442 -> 470 [style=solid label="\">\""] - 443 [label="State 443\n\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type • MaybeDefined MaybeInitially\l"] - 443 -> 471 [style=solid label="\"defined\""] - 443 -> 472 [style=dashed label="MaybeDefined"] - 443 -> "443R212" [style=solid] - "443R212" [label="R212", fillcolor=3, shape=diamond, style=filled] - 444 [label="State 444\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l157 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term \"holds\" Term •\l"] - 444 -> 148 [style=solid label="\"and\""] - 444 -> 149 [style=solid label="\"or\""] - 444 -> 150 [style=solid label="\"xor\""] - 444 -> 151 [style=solid label="\"implies\""] - 444 -> 152 [style=solid label="\"+\""] - 444 -> 153 [style=solid label="\"-\""] - 444 -> 154 [style=solid label="\"=\""] - 444 -> 155 [style=solid label="\"<\""] - 444 -> 156 [style=solid label="\">\""] - 444 -> 157 [style=solid label="\"*\""] - 444 -> 158 [style=solid label="\"/\""] - 444 -> 159 [style=solid label="\"%\""] - 444 -> 160 [style=solid label="\"^\""] - 444 -> 161 [style=solid label="\"=>\""] - 444 -> 162 [style=solid label="\"!=\""] - 444 -> 163 [style=solid label="\"<=\""] - 444 -> 164 [style=solid label="\">=\""] - 444 -> "444R157" [style=solid] - "444R157" [label="R157", fillcolor=3, shape=diamond, style=filled] - 445 [label="State 445\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l156 ChooseExpression: \"choose\" AttributedVariables \"in\" Term \"do\" Term •\l"] - 445 -> 148 [style=solid label="\"and\""] - 445 -> 149 [style=solid label="\"or\""] - 445 -> 150 [style=solid label="\"xor\""] - 445 -> 151 [style=solid label="\"implies\""] - 445 -> 152 [style=solid label="\"+\""] - 445 -> 153 [style=solid label="\"-\""] - 445 -> 154 [style=solid label="\"=\""] - 445 -> 155 [style=solid label="\"<\""] - 445 -> 156 [style=solid label="\">\""] - 445 -> 157 [style=solid label="\"*\""] - 445 -> 158 [style=solid label="\"/\""] - 445 -> 159 [style=solid label="\"%\""] - 445 -> 160 [style=solid label="\"^\""] - 445 -> 161 [style=solid label="\"=>\""] - 445 -> 162 [style=solid label="\"!=\""] - 445 -> 163 [style=solid label="\"<=\""] - 445 -> 164 [style=solid label="\">=\""] - 445 -> "445R156" [style=solid] - "445R156" [label="R156", fillcolor=3, shape=diamond, style=filled] - 446 [label="State 446\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l155 ConditionalExpression: \"if\" Term \"then\" Term \"else\" Term •\l"] + 428 -> 95 [style=dashed label="IdentifierPath"] + 429 [label="State 429\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" • 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 -> 111 [style=dashed label="BasicType"] + 429 -> 112 [style=dashed label="TupleType"] + 429 -> 113 [style=dashed label="RecordType"] + 429 -> 114 [style=dashed label="TemplateType"] + 429 -> 115 [style=dashed label="RelationType"] + 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"] + 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\""] @@ -6314,9 +6284,9 @@ digraph "../../obj/src/GrammarParser.y" 446 -> 162 [style=solid label="\"!=\""] 446 -> 163 [style=solid label="\"<=\""] 446 -> 164 [style=solid label="\">=\""] - 446 -> "446R155" [style=solid] - "446R155" [label="R155", fillcolor=3, shape=diamond, style=filled] - 447 [label="State 447\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l158 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term \"with\" Term •\l"] + 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\""] @@ -6336,360 +6306,322 @@ digraph "../../obj/src/GrammarParser.y" 447 -> 164 [style=solid label="\">=\""] 447 -> "447R158" [style=solid] "447R158" [label="R158", fillcolor=3, shape=diamond, style=filled] - 448 [label="State 448\n\l148 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" error \")\" •\l"] - 448 -> "448R148" [style=solid] - "448R148" [label="R148", fillcolor=3, shape=diamond, style=filled] - 449 [label="State 449\n\l147 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" Terms \")\" •\l"] - 449 -> "449R147" [style=solid] - "449R147" [label="R147", fillcolor=3, shape=diamond, style=filled] - 450 [label="State 450\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l218 Initializer: \"(\" Term \")\" \"->\" 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 -> "450R218" [style=solid] - "450R218" [label="R218", fillcolor=3, shape=diamond, style=filled] - 451 [label="State 451\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type • \"=\" Term\l"] - 451 -> 473 [style=solid label="\"=\""] - 452 [label="State 452\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type • \"=\" Term\l"] - 452 -> 474 [style=solid label="\"=\""] - 453 [label="State 453\n\l 37 Enumerators: Enumerators \",\" EnumeratorDefinition •\l"] - 453 -> "453R37" [style=solid] - "453R37" [label="R37", fillcolor=3, shape=diamond, style=filled] - 454 [label="State 454\n\l 85 LetRule: \"let\" VariableBindings \"in\" Rule •\l"] - 454 -> "454R85" [style=solid] - "454R85" [label="R85", fillcolor=3, shape=diamond, style=filled] - 455 [label="State 455\n\l243 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters • \"->\" Type MaybeDefined MaybeInitially\l"] - 455 -> 475 [style=solid label="\"->\""] - 456 [label="State 456\n\l 86 LocalRule: \"local\" LocalFunctionDefinitions \"in\" Rule •\l"] - 456 -> "456R86" [style=solid] - "456R86" [label="R86", fillcolor=3, shape=diamond, style=filled] - 457 [label="State 457\n\l238 LocalFunctionDefinitions: LocalFunctionDefinitions \",\" AttributedLocalFunctionDefinition •\l"] - 457 -> "457R238" [style=solid] - "457R238" [label="R238", fillcolor=3, shape=diamond, style=filled] - 458 [label="State 458\n\l 87 ForallRule: \"forall\" AttributedVariables \"in\" Term • \"do\" Rule\l 88 | \"forall\" AttributedVariables \"in\" Term • \"with\" Term \"do\" Rule\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] - 458 -> 476 [style=solid label="\"do\""] - 458 -> 477 [style=solid label="\"with\""] - 458 -> 148 [style=solid label="\"and\""] - 458 -> 149 [style=solid label="\"or\""] - 458 -> 150 [style=solid label="\"xor\""] - 458 -> 151 [style=solid label="\"implies\""] - 458 -> 152 [style=solid label="\"+\""] - 458 -> 153 [style=solid label="\"-\""] - 458 -> 154 [style=solid label="\"=\""] - 458 -> 155 [style=solid label="\"<\""] - 458 -> 156 [style=solid label="\">\""] - 458 -> 157 [style=solid label="\"*\""] - 458 -> 158 [style=solid label="\"/\""] - 458 -> 159 [style=solid label="\"%\""] - 458 -> 160 [style=solid label="\"^\""] - 458 -> 161 [style=solid label="\"=>\""] - 458 -> 162 [style=solid label="\"!=\""] - 458 -> 163 [style=solid label="\"<=\""] - 458 -> 164 [style=solid label="\">=\""] - 459 [label="State 459\n\l 89 ChooseRule: \"choose\" AttributedVariables \"in\" Term • \"do\" Rule\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] - 459 -> 478 [style=solid label="\"do\""] - 459 -> 148 [style=solid label="\"and\""] - 459 -> 149 [style=solid label="\"or\""] - 459 -> 150 [style=solid label="\"xor\""] - 459 -> 151 [style=solid label="\"implies\""] - 459 -> 152 [style=solid label="\"+\""] - 459 -> 153 [style=solid label="\"-\""] - 459 -> 154 [style=solid label="\"=\""] - 459 -> 155 [style=solid label="\"<\""] - 459 -> 156 [style=solid label="\">\""] - 459 -> 157 [style=solid label="\"*\""] - 459 -> 158 [style=solid label="\"/\""] - 459 -> 159 [style=solid label="\"%\""] - 459 -> 160 [style=solid label="\"^\""] - 459 -> 161 [style=solid label="\"=>\""] - 459 -> 162 [style=solid label="\"!=\""] - 459 -> 163 [style=solid label="\"<=\""] - 459 -> 164 [style=solid label="\">=\""] - 460 [label="State 460\n\l 76 ConditionalRule: \"if\" Term \"then\" Rule •\l 77 | \"if\" Term \"then\" Rule • \"else\" Rule\l"] - 460 -> 479 [style=solid label="\"else\""] - 460 -> "460R76" [style=solid] - "460R76" [label="R76", fillcolor=3, shape=diamond, style=filled] - 461 [label="State 461\n\l 78 CaseRule: \"case\" Term \"of\" \"{\" • CaseLabels \"}\"\l 79 | \"case\" Term \"of\" \"{\" • error \"}\"\l"] - 461 -> 480 [style=dotted] - 461 -> 45 [style=solid label="\"let\""] - 461 -> 8 [style=solid label="\"in\""] - 461 -> 46 [style=solid label="\"forall\""] - 461 -> 47 [style=solid label="\"choose\""] - 461 -> 48 [style=solid label="\"if\""] - 461 -> 481 [style=solid label="\"default\""] - 461 -> 49 [style=solid label="\"exists\""] - 461 -> 50 [style=solid label="\"undef\""] - 461 -> 51 [style=solid label="\"false\""] - 461 -> 52 [style=solid label="\"true\""] - 461 -> 53 [style=solid label="\"not\""] - 461 -> 54 [style=solid label="\"+\""] - 461 -> 55 [style=solid label="\"-\""] - 461 -> 56 [style=solid label="\"(\""] - 461 -> 57 [style=solid label="\"[\""] - 461 -> 482 [style=solid label="\"_\""] - 461 -> 58 [style=solid label="\"|\""] - 461 -> 59 [style=solid label="\"@\""] - 461 -> 60 [style=solid label="\"binary\""] - 461 -> 61 [style=solid label="\"hexadecimal\""] - 461 -> 62 [style=solid label="\"integer\""] - 461 -> 63 [style=solid label="\"rational\""] - 461 -> 64 [style=solid label="\"decimal\""] - 461 -> 65 [style=solid label="\"string\""] - 461 -> 9 [style=solid label="\"identifier\""] - 461 -> 483 [style=dashed label="CaseLabels"] - 461 -> 484 [style=dashed label="CaseLabel"] - 461 -> 485 [style=dashed label="Term"] - 461 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 461 -> 68 [style=dashed label="OperatorExpression"] - 461 -> 69 [style=dashed label="CallExpression"] - 461 -> 70 [style=dashed label="DirectCallExpression"] - 461 -> 71 [style=dashed label="MethodCallExpression"] - 461 -> 72 [style=dashed label="LiteralCallExpression"] - 461 -> 73 [style=dashed label="IndirectCallExpression"] - 461 -> 74 [style=dashed label="TypeCastingExpression"] - 461 -> 75 [style=dashed label="LetExpression"] - 461 -> 76 [style=dashed label="ConditionalExpression"] - 461 -> 77 [style=dashed label="ChooseExpression"] - 461 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 461 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 461 -> 80 [style=dashed label="CardinalityExpression"] - 461 -> 81 [style=dashed label="Literal"] - 461 -> 82 [style=dashed label="UndefinedLiteral"] - 461 -> 83 [style=dashed label="BooleanLiteral"] - 461 -> 84 [style=dashed label="IntegerLiteral"] - 461 -> 85 [style=dashed label="RationalLiteral"] - 461 -> 86 [style=dashed label="DecimalLiteral"] - 461 -> 87 [style=dashed label="BinaryLiteral"] - 461 -> 88 [style=dashed label="StringLiteral"] - 461 -> 89 [style=dashed label="ReferenceLiteral"] - 461 -> 90 [style=dashed label="ListLiteral"] - 461 -> 91 [style=dashed label="RangeLiteral"] - 461 -> 92 [style=dashed label="TupleLiteral"] - 461 -> 93 [style=dashed label="RecordLiteral"] - 461 -> 94 [style=dashed label="Identifier"] - 461 -> 95 [style=dashed label="IdentifierPath"] - 462 [label="State 462\n\l101 WhileRule: \"while\" Term \"do\" Rule •\l"] - 462 -> "462R101" [style=solid] - "462R101" [label="R101", fillcolor=3, shape=diamond, style=filled] - 463 [label="State 463\n\l 31 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"=\" Rule •\l"] - 463 -> "463R31" [style=solid] - "463R31" [label="R31", fillcolor=3, shape=diamond, style=filled] - 464 [label="State 464\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type • \"=\" Rule\l"] - 464 -> 486 [style=solid label="\"=\""] - 465 [label="State 465\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"=\" Rule •\l"] - 465 -> "465R29" [style=solid] - "465R29" [label="R29", fillcolor=3, shape=diamond, style=filled] - 466 [label="State 466\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type • \"=\" Rule\l"] - 466 -> 487 [style=solid label="\"=\""] - 467 [label="State 467\n\l 58 DeclarationDefinition: \"derived\" Identifier \":\" • MaybeFunctionParameters \"->\" Type\l"] - 467 -> 8 [style=solid label="\"in\""] - 467 -> 109 [style=solid label="\"(\""] - 467 -> 9 [style=solid label="\"identifier\""] - 467 -> 307 [style=dashed label="Type"] - 467 -> 111 [style=dashed label="BasicType"] - 467 -> 112 [style=dashed label="TupleType"] - 467 -> 113 [style=dashed label="RecordType"] - 467 -> 114 [style=dashed label="TemplateType"] - 467 -> 115 [style=dashed label="RelationType"] - 467 -> 116 [style=dashed label="FixedSizedType"] - 467 -> 304 [style=dashed label="FunctionParameters"] - 467 -> 488 [style=dashed label="MaybeFunctionParameters"] - 467 -> 94 [style=dashed label="Identifier"] - 467 -> 190 [style=dashed label="IdentifierPath"] - 467 -> "467R208" [style=solid] - "467R208" [label="R208", fillcolor=3, shape=diamond, style=filled] - 468 [label="State 468\n\l 59 DeclarationDefinition: \"rule\" Identifier \":\" • MaybeFunctionParameters \"->\" Type\l"] - 468 -> 8 [style=solid label="\"in\""] - 468 -> 109 [style=solid label="\"(\""] - 468 -> 9 [style=solid label="\"identifier\""] - 468 -> 307 [style=dashed label="Type"] - 468 -> 111 [style=dashed label="BasicType"] - 468 -> 112 [style=dashed label="TupleType"] - 468 -> 113 [style=dashed label="RecordType"] - 468 -> 114 [style=dashed label="TemplateType"] - 468 -> 115 [style=dashed label="RelationType"] - 468 -> 116 [style=dashed label="FixedSizedType"] - 468 -> 304 [style=dashed label="FunctionParameters"] - 468 -> 489 [style=dashed label="MaybeFunctionParameters"] - 468 -> 94 [style=dashed label="Identifier"] - 468 -> 190 [style=dashed label="IdentifierPath"] - 468 -> "468R208" [style=solid] - "468R208" [label="R208", fillcolor=3, shape=diamond, style=filled] - 469 [label="State 469\n\l 52 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions • \"}\"\l 56 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions • ImplementationDefinitionDefinition\l"] - 469 -> 16 [style=solid label="\"derived\""] - 469 -> 18 [style=solid label="\"rule\""] - 469 -> 490 [style=solid label="\"}\""] - 469 -> 378 [style=dashed label="DerivedDefinition"] - 469 -> 379 [style=dashed label="RuleDefinition"] - 469 -> 438 [style=dashed label="ImplementationDefinitionDefinition"] - 470 [label="State 470\n\l203 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" Type \">\" •\l"] - 470 -> "470R203" [style=solid] - "470R203" [label="R203", fillcolor=3, shape=diamond, style=filled] - 471 [label="State 471\n\l211 MaybeDefined: \"defined\" • \"{\" Term \"}\"\l"] - 471 -> 491 [style=solid label="\"{\""] - 472 [label="State 472\n\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined • MaybeInitially\l"] - 472 -> 492 [style=solid label="\"=\""] - 472 -> 493 [style=dashed label="MaybeInitially"] - 472 -> "472R214" [style=solid] - "472R214" [label="R214", fillcolor=3, shape=diamond, style=filled] - 473 [label="State 473\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type \"=\" • Term\l"] - 473 -> 45 [style=solid label="\"let\""] - 473 -> 8 [style=solid label="\"in\""] - 473 -> 46 [style=solid label="\"forall\""] - 473 -> 47 [style=solid label="\"choose\""] - 473 -> 48 [style=solid label="\"if\""] - 473 -> 49 [style=solid label="\"exists\""] - 473 -> 50 [style=solid label="\"undef\""] - 473 -> 51 [style=solid label="\"false\""] - 473 -> 52 [style=solid label="\"true\""] - 473 -> 53 [style=solid label="\"not\""] - 473 -> 54 [style=solid label="\"+\""] - 473 -> 55 [style=solid label="\"-\""] - 473 -> 56 [style=solid label="\"(\""] - 473 -> 57 [style=solid label="\"[\""] - 473 -> 58 [style=solid label="\"|\""] - 473 -> 59 [style=solid label="\"@\""] - 473 -> 60 [style=solid label="\"binary\""] - 473 -> 61 [style=solid label="\"hexadecimal\""] - 473 -> 62 [style=solid label="\"integer\""] - 473 -> 63 [style=solid label="\"rational\""] - 473 -> 64 [style=solid label="\"decimal\""] - 473 -> 65 [style=solid label="\"string\""] - 473 -> 9 [style=solid label="\"identifier\""] - 473 -> 494 [style=dashed label="Term"] - 473 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 473 -> 68 [style=dashed label="OperatorExpression"] - 473 -> 69 [style=dashed label="CallExpression"] - 473 -> 70 [style=dashed label="DirectCallExpression"] - 473 -> 71 [style=dashed label="MethodCallExpression"] - 473 -> 72 [style=dashed label="LiteralCallExpression"] - 473 -> 73 [style=dashed label="IndirectCallExpression"] - 473 -> 74 [style=dashed label="TypeCastingExpression"] - 473 -> 75 [style=dashed label="LetExpression"] - 473 -> 76 [style=dashed label="ConditionalExpression"] - 473 -> 77 [style=dashed label="ChooseExpression"] - 473 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 473 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 473 -> 80 [style=dashed label="CardinalityExpression"] - 473 -> 81 [style=dashed label="Literal"] - 473 -> 82 [style=dashed label="UndefinedLiteral"] - 473 -> 83 [style=dashed label="BooleanLiteral"] - 473 -> 84 [style=dashed label="IntegerLiteral"] - 473 -> 85 [style=dashed label="RationalLiteral"] - 473 -> 86 [style=dashed label="DecimalLiteral"] - 473 -> 87 [style=dashed label="BinaryLiteral"] - 473 -> 88 [style=dashed label="StringLiteral"] - 473 -> 89 [style=dashed label="ReferenceLiteral"] - 473 -> 90 [style=dashed label="ListLiteral"] - 473 -> 91 [style=dashed label="RangeLiteral"] - 473 -> 92 [style=dashed label="TupleLiteral"] - 473 -> 93 [style=dashed label="RecordLiteral"] - 473 -> 94 [style=dashed label="Identifier"] - 473 -> 95 [style=dashed label="IdentifierPath"] - 474 [label="State 474\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" • Term\l"] - 474 -> 45 [style=solid label="\"let\""] - 474 -> 8 [style=solid label="\"in\""] - 474 -> 46 [style=solid label="\"forall\""] - 474 -> 47 [style=solid label="\"choose\""] - 474 -> 48 [style=solid label="\"if\""] - 474 -> 49 [style=solid label="\"exists\""] - 474 -> 50 [style=solid label="\"undef\""] - 474 -> 51 [style=solid label="\"false\""] - 474 -> 52 [style=solid label="\"true\""] - 474 -> 53 [style=solid label="\"not\""] - 474 -> 54 [style=solid label="\"+\""] - 474 -> 55 [style=solid label="\"-\""] - 474 -> 56 [style=solid label="\"(\""] - 474 -> 57 [style=solid label="\"[\""] - 474 -> 58 [style=solid label="\"|\""] - 474 -> 59 [style=solid label="\"@\""] - 474 -> 60 [style=solid label="\"binary\""] - 474 -> 61 [style=solid label="\"hexadecimal\""] - 474 -> 62 [style=solid label="\"integer\""] - 474 -> 63 [style=solid label="\"rational\""] - 474 -> 64 [style=solid label="\"decimal\""] - 474 -> 65 [style=solid label="\"string\""] - 474 -> 9 [style=solid label="\"identifier\""] - 474 -> 495 [style=dashed label="Term"] - 474 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 474 -> 68 [style=dashed label="OperatorExpression"] - 474 -> 69 [style=dashed label="CallExpression"] - 474 -> 70 [style=dashed label="DirectCallExpression"] - 474 -> 71 [style=dashed label="MethodCallExpression"] - 474 -> 72 [style=dashed label="LiteralCallExpression"] - 474 -> 73 [style=dashed label="IndirectCallExpression"] - 474 -> 74 [style=dashed label="TypeCastingExpression"] - 474 -> 75 [style=dashed label="LetExpression"] - 474 -> 76 [style=dashed label="ConditionalExpression"] - 474 -> 77 [style=dashed label="ChooseExpression"] - 474 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 474 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 474 -> 80 [style=dashed label="CardinalityExpression"] - 474 -> 81 [style=dashed label="Literal"] - 474 -> 82 [style=dashed label="UndefinedLiteral"] - 474 -> 83 [style=dashed label="BooleanLiteral"] - 474 -> 84 [style=dashed label="IntegerLiteral"] - 474 -> 85 [style=dashed label="RationalLiteral"] - 474 -> 86 [style=dashed label="DecimalLiteral"] - 474 -> 87 [style=dashed label="BinaryLiteral"] - 474 -> 88 [style=dashed label="StringLiteral"] - 474 -> 89 [style=dashed label="ReferenceLiteral"] - 474 -> 90 [style=dashed label="ListLiteral"] - 474 -> 91 [style=dashed label="RangeLiteral"] - 474 -> 92 [style=dashed label="TupleLiteral"] - 474 -> 93 [style=dashed label="RecordLiteral"] - 474 -> 94 [style=dashed label="Identifier"] - 474 -> 95 [style=dashed label="IdentifierPath"] - 475 [label="State 475\n\l243 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" • Type MaybeDefined MaybeInitially\l"] + 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"] + 449 -> 148 [style=solid label="\"and\""] + 449 -> 149 [style=solid label="\"or\""] + 449 -> 150 [style=solid label="\"xor\""] + 449 -> 151 [style=solid label="\"implies\""] + 449 -> 152 [style=solid label="\"+\""] + 449 -> 153 [style=solid label="\"-\""] + 449 -> 154 [style=solid label="\"=\""] + 449 -> 155 [style=solid label="\"<\""] + 449 -> 156 [style=solid label="\">\""] + 449 -> 157 [style=solid label="\"*\""] + 449 -> 158 [style=solid label="\"/\""] + 449 -> 159 [style=solid label="\"%\""] + 449 -> 160 [style=solid label="\"^\""] + 449 -> 161 [style=solid label="\"=>\""] + 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"] + 452 -> 148 [style=solid label="\"and\""] + 452 -> 149 [style=solid label="\"or\""] + 452 -> 150 [style=solid label="\"xor\""] + 452 -> 151 [style=solid label="\"implies\""] + 452 -> 152 [style=solid label="\"+\""] + 452 -> 153 [style=solid label="\"-\""] + 452 -> 154 [style=solid label="\"=\""] + 452 -> 155 [style=solid label="\"<\""] + 452 -> 156 [style=solid label="\">\""] + 452 -> 157 [style=solid label="\"*\""] + 452 -> 158 [style=solid label="\"/\""] + 452 -> 159 [style=solid label="\"%\""] + 452 -> 160 [style=solid label="\"^\""] + 452 -> 161 [style=solid label="\"=>\""] + 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 -> 109 [style=solid label="\"(\""] + 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="Type"] - 475 -> 111 [style=dashed label="BasicType"] - 475 -> 112 [style=dashed label="TupleType"] - 475 -> 113 [style=dashed label="RecordType"] - 475 -> 114 [style=dashed label="TemplateType"] - 475 -> 115 [style=dashed label="RelationType"] - 475 -> 116 [style=dashed label="FixedSizedType"] + 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 -> 190 [style=dashed label="IdentifierPath"] - 476 [label="State 476\n\l 87 ForallRule: \"forall\" AttributedVariables \"in\" Term \"do\" • Rule\l"] - 476 -> 259 [style=solid label="\"seq\""] - 476 -> 260 [style=solid label="\"par\""] - 476 -> 261 [style=solid label="\"skip\""] - 476 -> 262 [style=solid label="\"let\""] - 476 -> 263 [style=solid label="\"local\""] + 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 -> 264 [style=solid label="\"forall\""] - 476 -> 265 [style=solid label="\"choose\""] - 476 -> 266 [style=solid label="\"iterate\""] - 476 -> 267 [style=solid label="\"if\""] - 476 -> 268 [style=solid label="\"case\""] - 476 -> 269 [style=solid label="\"while\""] + 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 -> 270 [style=solid label="\"{\""] + 476 -> 58 [style=solid label="\"|\""] 476 -> 59 [style=solid label="\"@\""] - 476 -> 271 [style=solid label="\"{|\""] 476 -> 60 [style=solid label="\"binary\""] 476 -> 61 [style=solid label="\"hexadecimal\""] 476 -> 62 [style=solid label="\"integer\""] @@ -6697,26 +6629,21 @@ digraph "../../obj/src/GrammarParser.y" 476 -> 64 [style=solid label="\"decimal\""] 476 -> 65 [style=solid label="\"string\""] 476 -> 9 [style=solid label="\"identifier\""] - 476 -> 497 [style=dashed label="Rule"] - 476 -> 273 [style=dashed label="SkipRule"] - 476 -> 274 [style=dashed label="ConditionalRule"] - 476 -> 275 [style=dashed label="CaseRule"] - 476 -> 276 [style=dashed label="LetRule"] - 476 -> 277 [style=dashed label="LocalRule"] - 476 -> 278 [style=dashed label="ForallRule"] - 476 -> 279 [style=dashed label="ChooseRule"] - 476 -> 280 [style=dashed label="IterateRule"] - 476 -> 281 [style=dashed label="BlockRule"] - 476 -> 282 [style=dashed label="SequenceRule"] - 476 -> 283 [style=dashed label="UpdateRule"] - 476 -> 284 [style=dashed label="CallRule"] - 476 -> 285 [style=dashed label="WhileRule"] - 476 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 476 -> 287 [style=dashed label="CallExpression"] - 476 -> 288 [style=dashed label="DirectCallExpression"] + 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"] @@ -6732,61 +6659,20 @@ digraph "../../obj/src/GrammarParser.y" 476 -> 93 [style=dashed label="RecordLiteral"] 476 -> 94 [style=dashed label="Identifier"] 476 -> 95 [style=dashed label="IdentifierPath"] - 477 [label="State 477\n\l 88 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" • Term \"do\" Rule\l"] - 477 -> 45 [style=solid label="\"let\""] + 477 [label="State 477\n\l245 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" • Type MaybeDefined MaybeInitially\l"] 477 -> 8 [style=solid label="\"in\""] - 477 -> 46 [style=solid label="\"forall\""] - 477 -> 47 [style=solid label="\"choose\""] - 477 -> 48 [style=solid label="\"if\""] - 477 -> 49 [style=solid label="\"exists\""] - 477 -> 50 [style=solid label="\"undef\""] - 477 -> 51 [style=solid label="\"false\""] - 477 -> 52 [style=solid label="\"true\""] - 477 -> 53 [style=solid label="\"not\""] - 477 -> 54 [style=solid label="\"+\""] - 477 -> 55 [style=solid label="\"-\""] - 477 -> 56 [style=solid label="\"(\""] - 477 -> 57 [style=solid label="\"[\""] - 477 -> 58 [style=solid label="\"|\""] - 477 -> 59 [style=solid label="\"@\""] - 477 -> 60 [style=solid label="\"binary\""] - 477 -> 61 [style=solid label="\"hexadecimal\""] - 477 -> 62 [style=solid label="\"integer\""] - 477 -> 63 [style=solid label="\"rational\""] - 477 -> 64 [style=solid label="\"decimal\""] - 477 -> 65 [style=solid label="\"string\""] + 477 -> 109 [style=solid label="\"(\""] 477 -> 9 [style=solid label="\"identifier\""] - 477 -> 498 [style=dashed label="Term"] - 477 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 477 -> 68 [style=dashed label="OperatorExpression"] - 477 -> 69 [style=dashed label="CallExpression"] - 477 -> 70 [style=dashed label="DirectCallExpression"] - 477 -> 71 [style=dashed label="MethodCallExpression"] - 477 -> 72 [style=dashed label="LiteralCallExpression"] - 477 -> 73 [style=dashed label="IndirectCallExpression"] - 477 -> 74 [style=dashed label="TypeCastingExpression"] - 477 -> 75 [style=dashed label="LetExpression"] - 477 -> 76 [style=dashed label="ConditionalExpression"] - 477 -> 77 [style=dashed label="ChooseExpression"] - 477 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 477 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 477 -> 80 [style=dashed label="CardinalityExpression"] - 477 -> 81 [style=dashed label="Literal"] - 477 -> 82 [style=dashed label="UndefinedLiteral"] - 477 -> 83 [style=dashed label="BooleanLiteral"] - 477 -> 84 [style=dashed label="IntegerLiteral"] - 477 -> 85 [style=dashed label="RationalLiteral"] - 477 -> 86 [style=dashed label="DecimalLiteral"] - 477 -> 87 [style=dashed label="BinaryLiteral"] - 477 -> 88 [style=dashed label="StringLiteral"] - 477 -> 89 [style=dashed label="ReferenceLiteral"] - 477 -> 90 [style=dashed label="ListLiteral"] - 477 -> 91 [style=dashed label="RangeLiteral"] - 477 -> 92 [style=dashed label="TupleLiteral"] - 477 -> 93 [style=dashed label="RecordLiteral"] + 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 -> 95 [style=dashed label="IdentifierPath"] - 478 [label="State 478\n\l 89 ChooseRule: \"choose\" AttributedVariables \"in\" Term \"do\" • Rule\l"] + 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\""] @@ -6851,29 +6737,23 @@ digraph "../../obj/src/GrammarParser.y" 478 -> 93 [style=dashed label="RecordLiteral"] 478 -> 94 [style=dashed label="Identifier"] 478 -> 95 [style=dashed label="IdentifierPath"] - 479 [label="State 479\n\l 77 ConditionalRule: \"if\" Term \"then\" Rule \"else\" • Rule\l"] - 479 -> 259 [style=solid label="\"seq\""] - 479 -> 260 [style=solid label="\"par\""] - 479 -> 261 [style=solid label="\"skip\""] - 479 -> 262 [style=solid label="\"let\""] - 479 -> 263 [style=solid label="\"local\""] + 479 [label="State 479\n\l 90 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" • Term \"do\" Rule\l"] + 479 -> 45 [style=solid label="\"let\""] 479 -> 8 [style=solid label="\"in\""] - 479 -> 264 [style=solid label="\"forall\""] - 479 -> 265 [style=solid label="\"choose\""] - 479 -> 266 [style=solid label="\"iterate\""] - 479 -> 267 [style=solid label="\"if\""] - 479 -> 268 [style=solid label="\"case\""] - 479 -> 269 [style=solid label="\"while\""] + 479 -> 46 [style=solid label="\"forall\""] + 479 -> 47 [style=solid label="\"choose\""] + 479 -> 48 [style=solid label="\"if\""] + 479 -> 49 [style=solid label="\"exists\""] 479 -> 50 [style=solid label="\"undef\""] 479 -> 51 [style=solid label="\"false\""] 479 -> 52 [style=solid label="\"true\""] + 479 -> 53 [style=solid label="\"not\""] 479 -> 54 [style=solid label="\"+\""] 479 -> 55 [style=solid label="\"-\""] 479 -> 56 [style=solid label="\"(\""] 479 -> 57 [style=solid label="\"[\""] - 479 -> 270 [style=solid label="\"{\""] + 479 -> 58 [style=solid label="\"|\""] 479 -> 59 [style=solid label="\"@\""] - 479 -> 271 [style=solid label="\"{|\""] 479 -> 60 [style=solid label="\"binary\""] 479 -> 61 [style=solid label="\"hexadecimal\""] 479 -> 62 [style=solid label="\"integer\""] @@ -6881,26 +6761,21 @@ 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="Rule"] - 479 -> 273 [style=dashed label="SkipRule"] - 479 -> 274 [style=dashed label="ConditionalRule"] - 479 -> 275 [style=dashed label="CaseRule"] - 479 -> 276 [style=dashed label="LetRule"] - 479 -> 277 [style=dashed label="LocalRule"] - 479 -> 278 [style=dashed label="ForallRule"] - 479 -> 279 [style=dashed label="ChooseRule"] - 479 -> 280 [style=dashed label="IterateRule"] - 479 -> 281 [style=dashed label="BlockRule"] - 479 -> 282 [style=dashed label="SequenceRule"] - 479 -> 283 [style=dashed label="UpdateRule"] - 479 -> 284 [style=dashed label="CallRule"] - 479 -> 285 [style=dashed label="WhileRule"] - 479 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 479 -> 287 [style=dashed label="CallExpression"] - 479 -> 288 [style=dashed label="DirectCallExpression"] + 479 -> 500 [style=dashed label="Term"] + 479 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 479 -> 68 [style=dashed label="OperatorExpression"] + 479 -> 69 [style=dashed label="CallExpression"] + 479 -> 70 [style=dashed label="DirectCallExpression"] 479 -> 71 [style=dashed label="MethodCallExpression"] 479 -> 72 [style=dashed label="LiteralCallExpression"] 479 -> 73 [style=dashed label="IndirectCallExpression"] + 479 -> 74 [style=dashed label="TypeCastingExpression"] + 479 -> 75 [style=dashed label="LetExpression"] + 479 -> 76 [style=dashed label="ConditionalExpression"] + 479 -> 77 [style=dashed label="ChooseExpression"] + 479 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 479 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 479 -> 80 [style=dashed label="CardinalityExpression"] 479 -> 81 [style=dashed label="Literal"] 479 -> 82 [style=dashed label="UndefinedLiteral"] 479 -> 83 [style=dashed label="BooleanLiteral"] @@ -6916,700 +6791,763 @@ 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 79 CaseRule: \"case\" Term \"of\" \"{\" error • \"}\"\l"] - 480 -> 501 [style=solid label="\"}\""] - 481 [label="State 481\n\l 82 CaseLabel: \"default\" • \":\" Rule\l"] - 481 -> 502 [style=solid label="\":\""] - 482 [label="State 482\n\l 83 CaseLabel: \"_\" • \":\" Rule\l"] - 482 -> 503 [style=solid label="\":\""] - 483 [label="State 483\n\l 78 CaseRule: \"case\" Term \"of\" \"{\" CaseLabels • \"}\"\l 80 CaseLabels: CaseLabels • CaseLabel\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 -> 481 [style=solid label="\"default\""] - 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 -> 504 [style=solid label="\"}\""] - 483 -> 482 [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="CaseLabel"] - 483 -> 485 [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 81 CaseLabels: CaseLabel •\l"] - 484 -> "484R81" [style=solid] - "484R81" [label="R81", fillcolor=3, shape=diamond, style=filled] - 485 [label="State 485\n\l 84 CaseLabel: Term • \":\" Rule\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] - 485 -> 148 [style=solid label="\"and\""] - 485 -> 149 [style=solid label="\"or\""] - 485 -> 150 [style=solid label="\"xor\""] - 485 -> 151 [style=solid label="\"implies\""] - 485 -> 152 [style=solid label="\"+\""] - 485 -> 153 [style=solid label="\"-\""] - 485 -> 154 [style=solid label="\"=\""] - 485 -> 506 [style=solid label="\":\""] - 485 -> 155 [style=solid label="\"<\""] - 485 -> 156 [style=solid label="\">\""] - 485 -> 157 [style=solid label="\"*\""] - 485 -> 158 [style=solid label="\"/\""] - 485 -> 159 [style=solid label="\"%\""] - 485 -> 160 [style=solid label="\"^\""] - 485 -> 161 [style=solid label="\"=>\""] - 485 -> 162 [style=solid label="\"!=\""] - 485 -> 163 [style=solid label="\"<=\""] - 485 -> 164 [style=solid label="\">=\""] - 486 [label="State 486\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type \"=\" • Rule\l"] - 486 -> 259 [style=solid label="\"seq\""] - 486 -> 260 [style=solid label="\"par\""] - 486 -> 261 [style=solid label="\"skip\""] - 486 -> 262 [style=solid label="\"let\""] - 486 -> 263 [style=solid label="\"local\""] - 486 -> 8 [style=solid label="\"in\""] - 486 -> 264 [style=solid label="\"forall\""] - 486 -> 265 [style=solid label="\"choose\""] - 486 -> 266 [style=solid label="\"iterate\""] - 486 -> 267 [style=solid label="\"if\""] - 486 -> 268 [style=solid label="\"case\""] - 486 -> 269 [style=solid label="\"while\""] - 486 -> 50 [style=solid label="\"undef\""] - 486 -> 51 [style=solid label="\"false\""] - 486 -> 52 [style=solid label="\"true\""] - 486 -> 54 [style=solid label="\"+\""] - 486 -> 55 [style=solid label="\"-\""] - 486 -> 56 [style=solid label="\"(\""] - 486 -> 57 [style=solid label="\"[\""] - 486 -> 270 [style=solid label="\"{\""] - 486 -> 59 [style=solid label="\"@\""] - 486 -> 271 [style=solid label="\"{|\""] - 486 -> 60 [style=solid label="\"binary\""] - 486 -> 61 [style=solid label="\"hexadecimal\""] - 486 -> 62 [style=solid label="\"integer\""] - 486 -> 63 [style=solid label="\"rational\""] - 486 -> 64 [style=solid label="\"decimal\""] - 486 -> 65 [style=solid label="\"string\""] - 486 -> 9 [style=solid label="\"identifier\""] - 486 -> 507 [style=dashed label="Rule"] - 486 -> 273 [style=dashed label="SkipRule"] - 486 -> 274 [style=dashed label="ConditionalRule"] - 486 -> 275 [style=dashed label="CaseRule"] - 486 -> 276 [style=dashed label="LetRule"] - 486 -> 277 [style=dashed label="LocalRule"] - 486 -> 278 [style=dashed label="ForallRule"] - 486 -> 279 [style=dashed label="ChooseRule"] - 486 -> 280 [style=dashed label="IterateRule"] - 486 -> 281 [style=dashed label="BlockRule"] - 486 -> 282 [style=dashed label="SequenceRule"] - 486 -> 283 [style=dashed label="UpdateRule"] - 486 -> 284 [style=dashed label="CallRule"] - 486 -> 285 [style=dashed label="WhileRule"] - 486 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 486 -> 287 [style=dashed label="CallExpression"] - 486 -> 288 [style=dashed label="DirectCallExpression"] - 486 -> 71 [style=dashed label="MethodCallExpression"] - 486 -> 72 [style=dashed label="LiteralCallExpression"] - 486 -> 73 [style=dashed label="IndirectCallExpression"] - 486 -> 81 [style=dashed label="Literal"] - 486 -> 82 [style=dashed label="UndefinedLiteral"] - 486 -> 83 [style=dashed label="BooleanLiteral"] - 486 -> 84 [style=dashed label="IntegerLiteral"] - 486 -> 85 [style=dashed label="RationalLiteral"] - 486 -> 86 [style=dashed label="DecimalLiteral"] - 486 -> 87 [style=dashed label="BinaryLiteral"] - 486 -> 88 [style=dashed label="StringLiteral"] - 486 -> 89 [style=dashed label="ReferenceLiteral"] - 486 -> 90 [style=dashed label="ListLiteral"] - 486 -> 91 [style=dashed label="RangeLiteral"] - 486 -> 92 [style=dashed label="TupleLiteral"] - 486 -> 93 [style=dashed label="RecordLiteral"] - 486 -> 94 [style=dashed label="Identifier"] - 486 -> 95 [style=dashed label="IdentifierPath"] - 487 [label="State 487\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" • Rule\l"] - 487 -> 259 [style=solid label="\"seq\""] - 487 -> 260 [style=solid label="\"par\""] - 487 -> 261 [style=solid label="\"skip\""] - 487 -> 262 [style=solid label="\"let\""] - 487 -> 263 [style=solid label="\"local\""] - 487 -> 8 [style=solid label="\"in\""] - 487 -> 264 [style=solid label="\"forall\""] - 487 -> 265 [style=solid label="\"choose\""] - 487 -> 266 [style=solid label="\"iterate\""] - 487 -> 267 [style=solid label="\"if\""] - 487 -> 268 [style=solid label="\"case\""] - 487 -> 269 [style=solid label="\"while\""] - 487 -> 50 [style=solid label="\"undef\""] - 487 -> 51 [style=solid label="\"false\""] - 487 -> 52 [style=solid label="\"true\""] - 487 -> 54 [style=solid label="\"+\""] - 487 -> 55 [style=solid label="\"-\""] - 487 -> 56 [style=solid label="\"(\""] - 487 -> 57 [style=solid label="\"[\""] - 487 -> 270 [style=solid label="\"{\""] - 487 -> 59 [style=solid label="\"@\""] - 487 -> 271 [style=solid label="\"{|\""] - 487 -> 60 [style=solid label="\"binary\""] - 487 -> 61 [style=solid label="\"hexadecimal\""] - 487 -> 62 [style=solid label="\"integer\""] - 487 -> 63 [style=solid label="\"rational\""] - 487 -> 64 [style=solid label="\"decimal\""] - 487 -> 65 [style=solid label="\"string\""] - 487 -> 9 [style=solid label="\"identifier\""] - 487 -> 508 [style=dashed label="Rule"] - 487 -> 273 [style=dashed label="SkipRule"] - 487 -> 274 [style=dashed label="ConditionalRule"] - 487 -> 275 [style=dashed label="CaseRule"] - 487 -> 276 [style=dashed label="LetRule"] - 487 -> 277 [style=dashed label="LocalRule"] - 487 -> 278 [style=dashed label="ForallRule"] - 487 -> 279 [style=dashed label="ChooseRule"] - 487 -> 280 [style=dashed label="IterateRule"] - 487 -> 281 [style=dashed label="BlockRule"] - 487 -> 282 [style=dashed label="SequenceRule"] - 487 -> 283 [style=dashed label="UpdateRule"] - 487 -> 284 [style=dashed label="CallRule"] - 487 -> 285 [style=dashed label="WhileRule"] - 487 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 487 -> 287 [style=dashed label="CallExpression"] - 487 -> 288 [style=dashed label="DirectCallExpression"] - 487 -> 71 [style=dashed label="MethodCallExpression"] - 487 -> 72 [style=dashed label="LiteralCallExpression"] - 487 -> 73 [style=dashed label="IndirectCallExpression"] - 487 -> 81 [style=dashed label="Literal"] - 487 -> 82 [style=dashed label="UndefinedLiteral"] - 487 -> 83 [style=dashed label="BooleanLiteral"] - 487 -> 84 [style=dashed label="IntegerLiteral"] - 487 -> 85 [style=dashed label="RationalLiteral"] - 487 -> 86 [style=dashed label="DecimalLiteral"] - 487 -> 87 [style=dashed label="BinaryLiteral"] - 487 -> 88 [style=dashed label="StringLiteral"] - 487 -> 89 [style=dashed label="ReferenceLiteral"] - 487 -> 90 [style=dashed label="ListLiteral"] - 487 -> 91 [style=dashed label="RangeLiteral"] - 487 -> 92 [style=dashed label="TupleLiteral"] - 487 -> 93 [style=dashed label="RecordLiteral"] - 487 -> 94 [style=dashed label="Identifier"] - 487 -> 95 [style=dashed label="IdentifierPath"] - 488 [label="State 488\n\l 58 DeclarationDefinition: \"derived\" Identifier \":\" MaybeFunctionParameters • \"->\" Type\l"] - 488 -> 509 [style=solid label="\"->\""] - 489 [label="State 489\n\l 59 DeclarationDefinition: \"rule\" Identifier \":\" MaybeFunctionParameters • \"->\" Type\l"] - 489 -> 510 [style=solid label="\"->\""] - 490 [label="State 490\n\l 52 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\" •\l"] - 490 -> "490R52" [style=solid] - "490R52" [label="R52", fillcolor=3, shape=diamond, style=filled] - 491 [label="State 491\n\l211 MaybeDefined: \"defined\" \"{\" • Term \"}\"\l"] - 491 -> 45 [style=solid label="\"let\""] - 491 -> 8 [style=solid label="\"in\""] - 491 -> 46 [style=solid label="\"forall\""] - 491 -> 47 [style=solid label="\"choose\""] - 491 -> 48 [style=solid label="\"if\""] - 491 -> 49 [style=solid label="\"exists\""] - 491 -> 50 [style=solid label="\"undef\""] - 491 -> 51 [style=solid label="\"false\""] - 491 -> 52 [style=solid label="\"true\""] - 491 -> 53 [style=solid label="\"not\""] - 491 -> 54 [style=solid label="\"+\""] - 491 -> 55 [style=solid label="\"-\""] - 491 -> 56 [style=solid label="\"(\""] - 491 -> 57 [style=solid label="\"[\""] - 491 -> 58 [style=solid label="\"|\""] - 491 -> 59 [style=solid label="\"@\""] - 491 -> 60 [style=solid label="\"binary\""] - 491 -> 61 [style=solid label="\"hexadecimal\""] - 491 -> 62 [style=solid label="\"integer\""] - 491 -> 63 [style=solid label="\"rational\""] - 491 -> 64 [style=solid label="\"decimal\""] - 491 -> 65 [style=solid label="\"string\""] - 491 -> 9 [style=solid label="\"identifier\""] - 491 -> 511 [style=dashed label="Term"] - 491 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 491 -> 68 [style=dashed label="OperatorExpression"] - 491 -> 69 [style=dashed label="CallExpression"] - 491 -> 70 [style=dashed label="DirectCallExpression"] - 491 -> 71 [style=dashed label="MethodCallExpression"] - 491 -> 72 [style=dashed label="LiteralCallExpression"] - 491 -> 73 [style=dashed label="IndirectCallExpression"] - 491 -> 74 [style=dashed label="TypeCastingExpression"] - 491 -> 75 [style=dashed label="LetExpression"] - 491 -> 76 [style=dashed label="ConditionalExpression"] - 491 -> 77 [style=dashed label="ChooseExpression"] - 491 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 491 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 491 -> 80 [style=dashed label="CardinalityExpression"] - 491 -> 81 [style=dashed label="Literal"] - 491 -> 82 [style=dashed label="UndefinedLiteral"] - 491 -> 83 [style=dashed label="BooleanLiteral"] - 491 -> 84 [style=dashed label="IntegerLiteral"] - 491 -> 85 [style=dashed label="RationalLiteral"] - 491 -> 86 [style=dashed label="DecimalLiteral"] - 491 -> 87 [style=dashed label="BinaryLiteral"] - 491 -> 88 [style=dashed label="StringLiteral"] - 491 -> 89 [style=dashed label="ReferenceLiteral"] - 491 -> 90 [style=dashed label="ListLiteral"] - 491 -> 91 [style=dashed label="RangeLiteral"] - 491 -> 92 [style=dashed label="TupleLiteral"] - 491 -> 93 [style=dashed label="RecordLiteral"] - 491 -> 94 [style=dashed label="Identifier"] - 491 -> 95 [style=dashed label="IdentifierPath"] - 492 [label="State 492\n\l213 MaybeInitially: \"=\" • \"{\" Initializers \"}\"\l"] - 492 -> 512 [style=solid label="\"{\""] - 493 [label="State 493\n\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially •\l"] - 493 -> "493R33" [style=solid] - "493R33" [label="R33", fillcolor=3, shape=diamond, style=filled] - 494 [label="State 494\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type \"=\" Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] - 494 -> 148 [style=solid label="\"and\""] - 494 -> 149 [style=solid label="\"or\""] - 494 -> 150 [style=solid label="\"xor\""] - 494 -> 151 [style=solid label="\"implies\""] - 494 -> 152 [style=solid label="\"+\""] - 494 -> 153 [style=solid label="\"-\""] - 494 -> 154 [style=solid label="\"=\""] - 494 -> 155 [style=solid label="\"<\""] - 494 -> 156 [style=solid label="\">\""] - 494 -> 157 [style=solid label="\"*\""] - 494 -> 158 [style=solid label="\"/\""] - 494 -> 159 [style=solid label="\"%\""] - 494 -> 160 [style=solid label="\"^\""] - 494 -> 161 [style=solid label="\"=>\""] - 494 -> 162 [style=solid label="\"!=\""] - 494 -> 163 [style=solid label="\"<=\""] - 494 -> 164 [style=solid label="\">=\""] - 494 -> "494R26" [style=solid] - "494R26" [label="R26", fillcolor=3, shape=diamond, style=filled] - 495 [label="State 495\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] - 495 -> 148 [style=solid label="\"and\""] - 495 -> 149 [style=solid label="\"or\""] - 495 -> 150 [style=solid label="\"xor\""] - 495 -> 151 [style=solid label="\"implies\""] - 495 -> 152 [style=solid label="\"+\""] - 495 -> 153 [style=solid label="\"-\""] - 495 -> 154 [style=solid label="\"=\""] - 495 -> 155 [style=solid label="\"<\""] - 495 -> 156 [style=solid label="\">\""] - 495 -> 157 [style=solid label="\"*\""] - 495 -> 158 [style=solid label="\"/\""] - 495 -> 159 [style=solid label="\"%\""] - 495 -> 160 [style=solid label="\"^\""] - 495 -> 161 [style=solid label="\"=>\""] - 495 -> 162 [style=solid label="\"!=\""] - 495 -> 163 [style=solid label="\"<=\""] - 495 -> 164 [style=solid label="\">=\""] - 495 -> "495R25" [style=solid] - "495R25" [label="R25", fillcolor=3, shape=diamond, style=filled] - 496 [label="State 496\n\l243 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type • MaybeDefined MaybeInitially\l"] - 496 -> 471 [style=solid label="\"defined\""] - 496 -> 513 [style=dashed label="MaybeDefined"] - 496 -> "496R212" [style=solid] - "496R212" [label="R212", fillcolor=3, shape=diamond, style=filled] - 497 [label="State 497\n\l 87 ForallRule: \"forall\" AttributedVariables \"in\" Term \"do\" Rule •\l"] - 497 -> "497R87" [style=solid] - "497R87" [label="R87", fillcolor=3, shape=diamond, style=filled] - 498 [label="State 498\n\l 88 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term • \"do\" Rule\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] - 498 -> 514 [style=solid label="\"do\""] - 498 -> 148 [style=solid label="\"and\""] - 498 -> 149 [style=solid label="\"or\""] - 498 -> 150 [style=solid label="\"xor\""] - 498 -> 151 [style=solid label="\"implies\""] - 498 -> 152 [style=solid label="\"+\""] - 498 -> 153 [style=solid label="\"-\""] - 498 -> 154 [style=solid label="\"=\""] - 498 -> 155 [style=solid label="\"<\""] - 498 -> 156 [style=solid label="\">\""] - 498 -> 157 [style=solid label="\"*\""] - 498 -> 158 [style=solid label="\"/\""] - 498 -> 159 [style=solid label="\"%\""] - 498 -> 160 [style=solid label="\"^\""] - 498 -> 161 [style=solid label="\"=>\""] - 498 -> 162 [style=solid label="\"!=\""] - 498 -> 163 [style=solid label="\"<=\""] - 498 -> 164 [style=solid label="\">=\""] - 499 [label="State 499\n\l 89 ChooseRule: \"choose\" AttributedVariables \"in\" Term \"do\" Rule •\l"] + 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 -> 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 -> 50 [style=solid label="\"undef\""] + 480 -> 51 [style=solid label="\"false\""] + 480 -> 52 [style=solid label="\"true\""] + 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 -> 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\""] + 480 -> 63 [style=solid label="\"rational\""] + 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 -> 71 [style=dashed label="MethodCallExpression"] + 480 -> 72 [style=dashed label="LiteralCallExpression"] + 480 -> 73 [style=dashed label="IndirectCallExpression"] + 480 -> 81 [style=dashed label="Literal"] + 480 -> 82 [style=dashed label="UndefinedLiteral"] + 480 -> 83 [style=dashed label="BooleanLiteral"] + 480 -> 84 [style=dashed label="IntegerLiteral"] + 480 -> 85 [style=dashed label="RationalLiteral"] + 480 -> 86 [style=dashed label="DecimalLiteral"] + 480 -> 87 [style=dashed label="BinaryLiteral"] + 480 -> 88 [style=dashed label="StringLiteral"] + 480 -> 89 [style=dashed label="ReferenceLiteral"] + 480 -> 90 [style=dashed label="ListLiteral"] + 480 -> 91 [style=dashed label="RangeLiteral"] + 480 -> 92 [style=dashed label="TupleLiteral"] + 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 -> 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 -> 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 -> 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\""] + 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 -> 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 -> 59 [style=solid label="\"@\""] + 485 -> 60 [style=solid label="\"binary\""] + 485 -> 61 [style=solid label="\"hexadecimal\""] + 485 -> 62 [style=solid label="\"integer\""] + 485 -> 63 [style=solid label="\"rational\""] + 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 -> 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"] + 485 -> 84 [style=dashed label="IntegerLiteral"] + 485 -> 85 [style=dashed label="RationalLiteral"] + 485 -> 86 [style=dashed label="DecimalLiteral"] + 485 -> 87 [style=dashed label="BinaryLiteral"] + 485 -> 88 [style=dashed label="StringLiteral"] + 485 -> 89 [style=dashed label="ReferenceLiteral"] + 485 -> 90 [style=dashed label="ListLiteral"] + 485 -> 91 [style=dashed label="RangeLiteral"] + 485 -> 92 [style=dashed label="TupleLiteral"] + 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\""] + 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 -> 50 [style=solid label="\"undef\""] + 489 -> 51 [style=solid label="\"false\""] + 489 -> 52 [style=solid label="\"true\""] + 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 -> 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\""] + 489 -> 63 [style=solid label="\"rational\""] + 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 -> 71 [style=dashed label="MethodCallExpression"] + 489 -> 72 [style=dashed label="LiteralCallExpression"] + 489 -> 73 [style=dashed label="IndirectCallExpression"] + 489 -> 81 [style=dashed label="Literal"] + 489 -> 82 [style=dashed label="UndefinedLiteral"] + 489 -> 83 [style=dashed label="BooleanLiteral"] + 489 -> 84 [style=dashed label="IntegerLiteral"] + 489 -> 85 [style=dashed label="RationalLiteral"] + 489 -> 86 [style=dashed label="DecimalLiteral"] + 489 -> 87 [style=dashed label="BinaryLiteral"] + 489 -> 88 [style=dashed label="StringLiteral"] + 489 -> 89 [style=dashed label="ReferenceLiteral"] + 489 -> 90 [style=dashed label="ListLiteral"] + 489 -> 91 [style=dashed label="RangeLiteral"] + 489 -> 92 [style=dashed label="TupleLiteral"] + 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\""] + 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 -> 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 -> 59 [style=solid label="\"@\""] + 493 -> 60 [style=solid label="\"binary\""] + 493 -> 61 [style=solid label="\"hexadecimal\""] + 493 -> 62 [style=solid label="\"integer\""] + 493 -> 63 [style=solid label="\"rational\""] + 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 -> 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"] + 493 -> 84 [style=dashed label="IntegerLiteral"] + 493 -> 85 [style=dashed label="RationalLiteral"] + 493 -> 86 [style=dashed label="DecimalLiteral"] + 493 -> 87 [style=dashed label="BinaryLiteral"] + 493 -> 88 [style=dashed label="StringLiteral"] + 493 -> 89 [style=dashed label="ReferenceLiteral"] + 493 -> 90 [style=dashed label="ListLiteral"] + 493 -> 91 [style=dashed label="RangeLiteral"] + 493 -> 92 [style=dashed label="TupleLiteral"] + 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 77 ConditionalRule: \"if\" Term \"then\" Rule \"else\" Rule •\l"] - 500 -> "500R77" [style=solid] - "500R77" [label="R77", fillcolor=3, shape=diamond, style=filled] - 501 [label="State 501\n\l 79 CaseRule: \"case\" Term \"of\" \"{\" error \"}\" •\l"] - 501 -> "501R79" [style=solid] - "501R79" [label="R79", fillcolor=3, shape=diamond, style=filled] - 502 [label="State 502\n\l 82 CaseLabel: \"default\" \":\" • Rule\l"] - 502 -> 259 [style=solid label="\"seq\""] - 502 -> 260 [style=solid label="\"par\""] - 502 -> 261 [style=solid label="\"skip\""] - 502 -> 262 [style=solid label="\"let\""] - 502 -> 263 [style=solid label="\"local\""] - 502 -> 8 [style=solid label="\"in\""] - 502 -> 264 [style=solid label="\"forall\""] - 502 -> 265 [style=solid label="\"choose\""] - 502 -> 266 [style=solid label="\"iterate\""] - 502 -> 267 [style=solid label="\"if\""] - 502 -> 268 [style=solid label="\"case\""] - 502 -> 269 [style=solid label="\"while\""] - 502 -> 50 [style=solid label="\"undef\""] - 502 -> 51 [style=solid label="\"false\""] - 502 -> 52 [style=solid label="\"true\""] - 502 -> 54 [style=solid label="\"+\""] - 502 -> 55 [style=solid label="\"-\""] - 502 -> 56 [style=solid label="\"(\""] - 502 -> 57 [style=solid label="\"[\""] - 502 -> 270 [style=solid label="\"{\""] - 502 -> 59 [style=solid label="\"@\""] - 502 -> 271 [style=solid label="\"{|\""] - 502 -> 60 [style=solid label="\"binary\""] - 502 -> 61 [style=solid label="\"hexadecimal\""] - 502 -> 62 [style=solid label="\"integer\""] - 502 -> 63 [style=solid label="\"rational\""] - 502 -> 64 [style=solid label="\"decimal\""] - 502 -> 65 [style=solid label="\"string\""] - 502 -> 9 [style=solid label="\"identifier\""] - 502 -> 515 [style=dashed label="Rule"] - 502 -> 273 [style=dashed label="SkipRule"] - 502 -> 274 [style=dashed label="ConditionalRule"] - 502 -> 275 [style=dashed label="CaseRule"] - 502 -> 276 [style=dashed label="LetRule"] - 502 -> 277 [style=dashed label="LocalRule"] - 502 -> 278 [style=dashed label="ForallRule"] - 502 -> 279 [style=dashed label="ChooseRule"] - 502 -> 280 [style=dashed label="IterateRule"] - 502 -> 281 [style=dashed label="BlockRule"] - 502 -> 282 [style=dashed label="SequenceRule"] - 502 -> 283 [style=dashed label="UpdateRule"] - 502 -> 284 [style=dashed label="CallRule"] - 502 -> 285 [style=dashed label="WhileRule"] - 502 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 502 -> 287 [style=dashed label="CallExpression"] - 502 -> 288 [style=dashed label="DirectCallExpression"] - 502 -> 71 [style=dashed label="MethodCallExpression"] - 502 -> 72 [style=dashed label="LiteralCallExpression"] - 502 -> 73 [style=dashed label="IndirectCallExpression"] - 502 -> 81 [style=dashed label="Literal"] - 502 -> 82 [style=dashed label="UndefinedLiteral"] - 502 -> 83 [style=dashed label="BooleanLiteral"] - 502 -> 84 [style=dashed label="IntegerLiteral"] - 502 -> 85 [style=dashed label="RationalLiteral"] - 502 -> 86 [style=dashed label="DecimalLiteral"] - 502 -> 87 [style=dashed label="BinaryLiteral"] - 502 -> 88 [style=dashed label="StringLiteral"] - 502 -> 89 [style=dashed label="ReferenceLiteral"] - 502 -> 90 [style=dashed label="ListLiteral"] - 502 -> 91 [style=dashed label="RangeLiteral"] - 502 -> 92 [style=dashed label="TupleLiteral"] - 502 -> 93 [style=dashed label="RecordLiteral"] - 502 -> 94 [style=dashed label="Identifier"] - 502 -> 95 [style=dashed label="IdentifierPath"] - 503 [label="State 503\n\l 83 CaseLabel: \"_\" \":\" • Rule\l"] - 503 -> 259 [style=solid label="\"seq\""] - 503 -> 260 [style=solid label="\"par\""] - 503 -> 261 [style=solid label="\"skip\""] - 503 -> 262 [style=solid label="\"let\""] - 503 -> 263 [style=solid label="\"local\""] - 503 -> 8 [style=solid label="\"in\""] - 503 -> 264 [style=solid label="\"forall\""] - 503 -> 265 [style=solid label="\"choose\""] - 503 -> 266 [style=solid label="\"iterate\""] - 503 -> 267 [style=solid label="\"if\""] - 503 -> 268 [style=solid label="\"case\""] - 503 -> 269 [style=solid label="\"while\""] - 503 -> 50 [style=solid label="\"undef\""] - 503 -> 51 [style=solid label="\"false\""] - 503 -> 52 [style=solid label="\"true\""] - 503 -> 54 [style=solid label="\"+\""] - 503 -> 55 [style=solid label="\"-\""] - 503 -> 56 [style=solid label="\"(\""] - 503 -> 57 [style=solid label="\"[\""] - 503 -> 270 [style=solid label="\"{\""] - 503 -> 59 [style=solid label="\"@\""] - 503 -> 271 [style=solid label="\"{|\""] - 503 -> 60 [style=solid label="\"binary\""] - 503 -> 61 [style=solid label="\"hexadecimal\""] - 503 -> 62 [style=solid label="\"integer\""] - 503 -> 63 [style=solid label="\"rational\""] - 503 -> 64 [style=solid label="\"decimal\""] - 503 -> 65 [style=solid label="\"string\""] - 503 -> 9 [style=solid label="\"identifier\""] - 503 -> 516 [style=dashed label="Rule"] - 503 -> 273 [style=dashed label="SkipRule"] - 503 -> 274 [style=dashed label="ConditionalRule"] - 503 -> 275 [style=dashed label="CaseRule"] - 503 -> 276 [style=dashed label="LetRule"] - 503 -> 277 [style=dashed label="LocalRule"] - 503 -> 278 [style=dashed label="ForallRule"] - 503 -> 279 [style=dashed label="ChooseRule"] - 503 -> 280 [style=dashed label="IterateRule"] - 503 -> 281 [style=dashed label="BlockRule"] - 503 -> 282 [style=dashed label="SequenceRule"] - 503 -> 283 [style=dashed label="UpdateRule"] - 503 -> 284 [style=dashed label="CallRule"] - 503 -> 285 [style=dashed label="WhileRule"] - 503 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 503 -> 287 [style=dashed label="CallExpression"] - 503 -> 288 [style=dashed label="DirectCallExpression"] - 503 -> 71 [style=dashed label="MethodCallExpression"] - 503 -> 72 [style=dashed label="LiteralCallExpression"] - 503 -> 73 [style=dashed label="IndirectCallExpression"] - 503 -> 81 [style=dashed label="Literal"] - 503 -> 82 [style=dashed label="UndefinedLiteral"] - 503 -> 83 [style=dashed label="BooleanLiteral"] - 503 -> 84 [style=dashed label="IntegerLiteral"] - 503 -> 85 [style=dashed label="RationalLiteral"] - 503 -> 86 [style=dashed label="DecimalLiteral"] - 503 -> 87 [style=dashed label="BinaryLiteral"] - 503 -> 88 [style=dashed label="StringLiteral"] - 503 -> 89 [style=dashed label="ReferenceLiteral"] - 503 -> 90 [style=dashed label="ListLiteral"] - 503 -> 91 [style=dashed label="RangeLiteral"] - 503 -> 92 [style=dashed label="TupleLiteral"] - 503 -> 93 [style=dashed label="RecordLiteral"] - 503 -> 94 [style=dashed label="Identifier"] - 503 -> 95 [style=dashed label="IdentifierPath"] - 504 [label="State 504\n\l 78 CaseRule: \"case\" Term \"of\" \"{\" CaseLabels \"}\" •\l"] - 504 -> "504R78" [style=solid] - "504R78" [label="R78", fillcolor=3, shape=diamond, style=filled] - 505 [label="State 505\n\l 80 CaseLabels: CaseLabels CaseLabel •\l"] - 505 -> "505R80" [style=solid] - "505R80" [label="R80", fillcolor=3, shape=diamond, style=filled] - 506 [label="State 506\n\l 84 CaseLabel: Term \":\" • Rule\l"] - 506 -> 259 [style=solid label="\"seq\""] - 506 -> 260 [style=solid label="\"par\""] - 506 -> 261 [style=solid label="\"skip\""] - 506 -> 262 [style=solid label="\"let\""] - 506 -> 263 [style=solid label="\"local\""] - 506 -> 8 [style=solid label="\"in\""] - 506 -> 264 [style=solid label="\"forall\""] - 506 -> 265 [style=solid label="\"choose\""] - 506 -> 266 [style=solid label="\"iterate\""] - 506 -> 267 [style=solid label="\"if\""] - 506 -> 268 [style=solid label="\"case\""] - 506 -> 269 [style=solid label="\"while\""] - 506 -> 50 [style=solid label="\"undef\""] - 506 -> 51 [style=solid label="\"false\""] - 506 -> 52 [style=solid label="\"true\""] - 506 -> 54 [style=solid label="\"+\""] - 506 -> 55 [style=solid label="\"-\""] - 506 -> 56 [style=solid label="\"(\""] - 506 -> 57 [style=solid label="\"[\""] - 506 -> 270 [style=solid label="\"{\""] - 506 -> 59 [style=solid label="\"@\""] - 506 -> 271 [style=solid label="\"{|\""] - 506 -> 60 [style=solid label="\"binary\""] - 506 -> 61 [style=solid label="\"hexadecimal\""] - 506 -> 62 [style=solid label="\"integer\""] - 506 -> 63 [style=solid label="\"rational\""] - 506 -> 64 [style=solid label="\"decimal\""] - 506 -> 65 [style=solid label="\"string\""] - 506 -> 9 [style=solid label="\"identifier\""] - 506 -> 517 [style=dashed label="Rule"] - 506 -> 273 [style=dashed label="SkipRule"] - 506 -> 274 [style=dashed label="ConditionalRule"] - 506 -> 275 [style=dashed label="CaseRule"] - 506 -> 276 [style=dashed label="LetRule"] - 506 -> 277 [style=dashed label="LocalRule"] - 506 -> 278 [style=dashed label="ForallRule"] - 506 -> 279 [style=dashed label="ChooseRule"] - 506 -> 280 [style=dashed label="IterateRule"] - 506 -> 281 [style=dashed label="BlockRule"] - 506 -> 282 [style=dashed label="SequenceRule"] - 506 -> 283 [style=dashed label="UpdateRule"] - 506 -> 284 [style=dashed label="CallRule"] - 506 -> 285 [style=dashed label="WhileRule"] - 506 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 506 -> 287 [style=dashed label="CallExpression"] - 506 -> 288 [style=dashed label="DirectCallExpression"] - 506 -> 71 [style=dashed label="MethodCallExpression"] - 506 -> 72 [style=dashed label="LiteralCallExpression"] - 506 -> 73 [style=dashed label="IndirectCallExpression"] - 506 -> 81 [style=dashed label="Literal"] - 506 -> 82 [style=dashed label="UndefinedLiteral"] - 506 -> 83 [style=dashed label="BooleanLiteral"] - 506 -> 84 [style=dashed label="IntegerLiteral"] - 506 -> 85 [style=dashed label="RationalLiteral"] - 506 -> 86 [style=dashed label="DecimalLiteral"] - 506 -> 87 [style=dashed label="BinaryLiteral"] - 506 -> 88 [style=dashed label="StringLiteral"] - 506 -> 89 [style=dashed label="ReferenceLiteral"] - 506 -> 90 [style=dashed label="ListLiteral"] - 506 -> 91 [style=dashed label="RangeLiteral"] - 506 -> 92 [style=dashed label="TupleLiteral"] - 506 -> 93 [style=dashed label="RecordLiteral"] - 506 -> 94 [style=dashed label="Identifier"] - 506 -> 95 [style=dashed label="IdentifierPath"] - 507 [label="State 507\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type \"=\" Rule •\l"] - 507 -> "507R32" [style=solid] - "507R32" [label="R32", fillcolor=3, shape=diamond, style=filled] - 508 [label="State 508\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Rule •\l"] - 508 -> "508R30" [style=solid] - "508R30" [label="R30", fillcolor=3, shape=diamond, style=filled] - 509 [label="State 509\n\l 58 DeclarationDefinition: \"derived\" Identifier \":\" MaybeFunctionParameters \"->\" • Type\l"] - 509 -> 8 [style=solid label="\"in\""] - 509 -> 109 [style=solid label="\"(\""] - 509 -> 9 [style=solid label="\"identifier\""] - 509 -> 518 [style=dashed label="Type"] - 509 -> 111 [style=dashed label="BasicType"] - 509 -> 112 [style=dashed label="TupleType"] - 509 -> 113 [style=dashed label="RecordType"] - 509 -> 114 [style=dashed label="TemplateType"] - 509 -> 115 [style=dashed label="RelationType"] - 509 -> 116 [style=dashed label="FixedSizedType"] - 509 -> 94 [style=dashed label="Identifier"] - 509 -> 190 [style=dashed label="IdentifierPath"] - 510 [label="State 510\n\l 59 DeclarationDefinition: \"rule\" Identifier \":\" MaybeFunctionParameters \"->\" • Type\l"] - 510 -> 8 [style=solid label="\"in\""] - 510 -> 109 [style=solid label="\"(\""] - 510 -> 9 [style=solid label="\"identifier\""] - 510 -> 519 [style=dashed label="Type"] - 510 -> 111 [style=dashed label="BasicType"] - 510 -> 112 [style=dashed label="TupleType"] - 510 -> 113 [style=dashed label="RecordType"] - 510 -> 114 [style=dashed label="TemplateType"] - 510 -> 115 [style=dashed label="RelationType"] - 510 -> 116 [style=dashed label="FixedSizedType"] - 510 -> 94 [style=dashed label="Identifier"] - 510 -> 190 [style=dashed label="IdentifierPath"] - 511 [label="State 511\n\l120 OperatorExpression: Term • \"+\" Term\l121 | 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 • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l211 MaybeDefined: \"defined\" \"{\" Term • \"}\"\l"] - 511 -> 148 [style=solid label="\"and\""] - 511 -> 149 [style=solid label="\"or\""] - 511 -> 150 [style=solid label="\"xor\""] - 511 -> 151 [style=solid label="\"implies\""] - 511 -> 152 [style=solid label="\"+\""] - 511 -> 153 [style=solid label="\"-\""] - 511 -> 154 [style=solid label="\"=\""] - 511 -> 520 [style=solid label="\"}\""] - 511 -> 155 [style=solid label="\"<\""] - 511 -> 156 [style=solid label="\">\""] - 511 -> 157 [style=solid label="\"*\""] - 511 -> 158 [style=solid label="\"/\""] - 511 -> 159 [style=solid label="\"%\""] - 511 -> 160 [style=solid label="\"^\""] - 511 -> 161 [style=solid label="\"=>\""] - 511 -> 162 [style=solid label="\"!=\""] - 511 -> 163 [style=solid label="\"<=\""] - 511 -> 164 [style=solid label="\">=\""] - 512 [label="State 512\n\l213 MaybeInitially: \"=\" \"{\" • Initializers \"}\"\l"] - 512 -> 45 [style=solid label="\"let\""] + 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 -> 46 [style=solid label="\"forall\""] - 512 -> 47 [style=solid label="\"choose\""] - 512 -> 48 [style=solid label="\"if\""] - 512 -> 49 [style=solid label="\"exists\""] - 512 -> 50 [style=solid label="\"undef\""] - 512 -> 51 [style=solid label="\"false\""] - 512 -> 52 [style=solid label="\"true\""] - 512 -> 53 [style=solid label="\"not\""] - 512 -> 54 [style=solid label="\"+\""] - 512 -> 55 [style=solid label="\"-\""] - 512 -> 170 [style=solid label="\"(\""] - 512 -> 57 [style=solid label="\"[\""] - 512 -> 58 [style=solid label="\"|\""] - 512 -> 59 [style=solid label="\"@\""] - 512 -> 60 [style=solid label="\"binary\""] - 512 -> 61 [style=solid label="\"hexadecimal\""] - 512 -> 62 [style=solid label="\"integer\""] - 512 -> 63 [style=solid label="\"rational\""] - 512 -> 64 [style=solid label="\"decimal\""] - 512 -> 65 [style=solid label="\"string\""] + 512 -> 109 [style=solid label="\"(\""] 512 -> 9 [style=solid label="\"identifier\""] - 512 -> 171 [style=dashed label="Term"] - 512 -> 67 [style=dashed label="SimpleOrClaspedTerm"] - 512 -> 68 [style=dashed label="OperatorExpression"] - 512 -> 69 [style=dashed label="CallExpression"] - 512 -> 70 [style=dashed label="DirectCallExpression"] - 512 -> 71 [style=dashed label="MethodCallExpression"] - 512 -> 72 [style=dashed label="LiteralCallExpression"] - 512 -> 73 [style=dashed label="IndirectCallExpression"] - 512 -> 74 [style=dashed label="TypeCastingExpression"] - 512 -> 75 [style=dashed label="LetExpression"] - 512 -> 76 [style=dashed label="ConditionalExpression"] - 512 -> 77 [style=dashed label="ChooseExpression"] - 512 -> 78 [style=dashed label="UniversalQuantifierExpression"] - 512 -> 79 [style=dashed label="ExistentialQuantifierExpression"] - 512 -> 80 [style=dashed label="CardinalityExpression"] - 512 -> 81 [style=dashed label="Literal"] - 512 -> 82 [style=dashed label="UndefinedLiteral"] - 512 -> 83 [style=dashed label="BooleanLiteral"] - 512 -> 84 [style=dashed label="IntegerLiteral"] - 512 -> 85 [style=dashed label="RationalLiteral"] - 512 -> 86 [style=dashed label="DecimalLiteral"] - 512 -> 87 [style=dashed label="BinaryLiteral"] - 512 -> 88 [style=dashed label="StringLiteral"] - 512 -> 89 [style=dashed label="ReferenceLiteral"] - 512 -> 90 [style=dashed label="ListLiteral"] - 512 -> 91 [style=dashed label="RangeLiteral"] - 512 -> 172 [style=dashed label="TupleLiteral"] - 512 -> 93 [style=dashed label="RecordLiteral"] - 512 -> 521 [style=dashed label="Initializers"] - 512 -> 174 [style=dashed label="Initializer"] + 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 -> 95 [style=dashed label="IdentifierPath"] - 513 [label="State 513\n\l243 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined • MaybeInitially\l"] - 513 -> 492 [style=solid label="\"=\""] - 513 -> 522 [style=dashed label="MaybeInitially"] - 513 -> "513R214" [style=solid] - "513R214" [label="R214", fillcolor=3, shape=diamond, style=filled] - 514 [label="State 514\n\l 88 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term \"do\" • Rule\l"] - 514 -> 259 [style=solid label="\"seq\""] - 514 -> 260 [style=solid label="\"par\""] - 514 -> 261 [style=solid label="\"skip\""] - 514 -> 262 [style=solid label="\"let\""] - 514 -> 263 [style=solid label="\"local\""] + 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 -> 264 [style=solid label="\"forall\""] - 514 -> 265 [style=solid label="\"choose\""] - 514 -> 266 [style=solid label="\"iterate\""] - 514 -> 267 [style=solid label="\"if\""] - 514 -> 268 [style=solid label="\"case\""] - 514 -> 269 [style=solid label="\"while\""] + 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 -> 56 [style=solid label="\"(\""] + 514 -> 170 [style=solid label="\"(\""] 514 -> 57 [style=solid label="\"[\""] - 514 -> 270 [style=solid label="\"{\""] + 514 -> 58 [style=solid label="\"|\""] 514 -> 59 [style=solid label="\"@\""] - 514 -> 271 [style=solid label="\"{|\""] 514 -> 60 [style=solid label="\"binary\""] 514 -> 61 [style=solid label="\"hexadecimal\""] 514 -> 62 [style=solid label="\"integer\""] @@ -7617,26 +7555,21 @@ digraph "../../obj/src/GrammarParser.y" 514 -> 64 [style=solid label="\"decimal\""] 514 -> 65 [style=solid label="\"string\""] 514 -> 9 [style=solid label="\"identifier\""] - 514 -> 523 [style=dashed label="Rule"] - 514 -> 273 [style=dashed label="SkipRule"] - 514 -> 274 [style=dashed label="ConditionalRule"] - 514 -> 275 [style=dashed label="CaseRule"] - 514 -> 276 [style=dashed label="LetRule"] - 514 -> 277 [style=dashed label="LocalRule"] - 514 -> 278 [style=dashed label="ForallRule"] - 514 -> 279 [style=dashed label="ChooseRule"] - 514 -> 280 [style=dashed label="IterateRule"] - 514 -> 281 [style=dashed label="BlockRule"] - 514 -> 282 [style=dashed label="SequenceRule"] - 514 -> 283 [style=dashed label="UpdateRule"] - 514 -> 284 [style=dashed label="CallRule"] - 514 -> 285 [style=dashed label="WhileRule"] - 514 -> 286 [style=dashed label="SimpleOrClaspedTerm"] - 514 -> 287 [style=dashed label="CallExpression"] - 514 -> 288 [style=dashed label="DirectCallExpression"] + 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"] @@ -7648,38 +7581,110 @@ digraph "../../obj/src/GrammarParser.y" 514 -> 89 [style=dashed label="ReferenceLiteral"] 514 -> 90 [style=dashed label="ListLiteral"] 514 -> 91 [style=dashed label="RangeLiteral"] - 514 -> 92 [style=dashed label="TupleLiteral"] + 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\l 82 CaseLabel: \"default\" \":\" Rule •\l"] - 515 -> "515R82" [style=solid] - "515R82" [label="R82", fillcolor=3, shape=diamond, style=filled] - 516 [label="State 516\n\l 83 CaseLabel: \"_\" \":\" Rule •\l"] - 516 -> "516R83" [style=solid] - "516R83" [label="R83", fillcolor=3, shape=diamond, style=filled] - 517 [label="State 517\n\l 84 CaseLabel: Term \":\" Rule •\l"] + 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\""] + 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 -> 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 -> 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 58 DeclarationDefinition: \"derived\" Identifier \":\" MaybeFunctionParameters \"->\" Type •\l"] - 518 -> "518R58" [style=solid] - "518R58" [label="R58", fillcolor=3, shape=diamond, style=filled] - 519 [label="State 519\n\l 59 DeclarationDefinition: \"rule\" Identifier \":\" MaybeFunctionParameters \"->\" Type •\l"] - 519 -> "519R59" [style=solid] - "519R59" [label="R59", fillcolor=3, shape=diamond, style=filled] - 520 [label="State 520\n\l211 MaybeDefined: \"defined\" \"{\" Term \"}\" •\l"] - 520 -> "520R211" [style=solid] - "520R211" [label="R211", fillcolor=3, shape=diamond, style=filled] - 521 [label="State 521\n\l213 MaybeInitially: \"=\" \"{\" Initializers • \"}\"\l215 Initializers: Initializers • \",\" Initializer\l"] - 521 -> 524 [style=solid label="\"}\""] - 521 -> 250 [style=solid label="\",\""] - 522 [label="State 522\n\l243 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially •\l"] - 522 -> "522R243" [style=solid] - "522R243" [label="R243", fillcolor=3, shape=diamond, style=filled] - 523 [label="State 523\n\l 88 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term \"do\" Rule •\l"] - 523 -> "523R88" [style=solid] - "523R88" [label="R88", fillcolor=3, shape=diamond, style=filled] - 524 [label="State 524\n\l213 MaybeInitially: \"=\" \"{\" Initializers \"}\" •\l"] - 524 -> "524R213" [style=solid] - "524R213" [label="R213", 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] } diff --git a/src/various/GrammarParser.output b/src/various/GrammarParser.output index 570b17b1..bf01a61b 100644 --- a/src/various/GrammarParser.output +++ b/src/various/GrammarParser.output @@ -48,409 +48,412 @@ Grammar 31 | "rule" Identifier "(" error ")" "=" Rule 32 | "rule" Identifier "(" error ")" "->" Type "=" Rule - 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 33 FunctionDefinitions: FunctionDefinitions FunctionDefinition + 34 | FunctionDefinition - 34 EnumeratorDefinition: Identifier - 35 | Attributes Identifier - 36 | error + 35 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially - 37 Enumerators: Enumerators "," EnumeratorDefinition - 38 | EnumeratorDefinition + 36 EnumeratorDefinition: Identifier + 37 | Attributes Identifier + 38 | error - 39 UsingDefinition: "using" Identifier "=" Type + 39 Enumerators: Enumerators "," EnumeratorDefinition + 40 | EnumeratorDefinition - 40 UsingPathDefinition: "using" IdentifierPath - 41 | "using" IdentifierPath "::" "*" + 41 UsingDefinition: "using" Identifier "=" Type - 42 InvariantDefinition: "invariant" Identifier "=" Term + 42 UsingPathDefinition: "using" IdentifierPath + 43 | "using" IdentifierPath "::" "*" - 43 ImportDefinition: "import" IdentifierPath - 44 | "import" IdentifierPath "as" Identifier + 44 InvariantDefinition: "invariant" Identifier "=" Term - 45 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinition "}" + 45 ImportDefinition: "import" IdentifierPath + 46 | "import" IdentifierPath "as" Identifier - 46 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" + 47 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinitions "}" - 47 FeatureDeclarationOrDefinition: DeclarationDefinition - 48 | DerivedDefinition - 49 | RuleDefinition + 48 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" - 50 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition - 51 | FeatureDeclarationOrDefinition + 49 FeatureDeclarationOrDefinition: DeclarationDefinition + 50 | DerivedDefinition + 51 | RuleDefinition - 52 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" - 53 | "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" + 52 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition + 53 | FeatureDeclarationOrDefinition - 54 ImplementationDefinitionDefinition: DerivedDefinition - 55 | RuleDefinition + 54 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" + 55 | "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" - 56 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions ImplementationDefinitionDefinition - 57 | ImplementationDefinitionDefinition + 56 ImplementationDefinitionDefinition: DerivedDefinition + 57 | RuleDefinition - 58 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type - 59 | "rule" Identifier ":" MaybeFunctionParameters "->" Type + 58 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions + 59 | ImplementationDefinitionDefinition - 60 Rules: Rules Rule - 61 | Rule + 60 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type + 61 | "rule" Identifier ":" MaybeFunctionParameters "->" Type - 62 Rule: SkipRule - 63 | ConditionalRule - 64 | CaseRule - 65 | LetRule - 66 | LocalRule - 67 | ForallRule - 68 | ChooseRule - 69 | IterateRule - 70 | BlockRule - 71 | SequenceRule - 72 | UpdateRule - 73 | CallRule - 74 | WhileRule + 62 Rules: Rules Rule + 63 | Rule - 75 SkipRule: "skip" + 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 - 76 ConditionalRule: "if" Term "then" Rule - 77 | "if" Term "then" Rule "else" Rule + 77 SkipRule: "skip" - 78 CaseRule: "case" Term "of" "{" CaseLabels "}" - 79 | "case" Term "of" "{" error "}" + 78 ConditionalRule: "if" Term "then" Rule + 79 | "if" Term "then" Rule "else" Rule - 80 CaseLabels: CaseLabels CaseLabel - 81 | CaseLabel + 80 CaseRule: "case" Term "of" "{" CaseLabels "}" + 81 | "case" Term "of" "{" error "}" - 82 CaseLabel: "default" ":" Rule - 83 | "_" ":" Rule - 84 | Term ":" Rule + 82 CaseLabels: CaseLabels CaseLabel + 83 | CaseLabel - 85 LetRule: "let" VariableBindings "in" Rule + 84 CaseLabel: "default" ":" Rule + 85 | "_" ":" Rule + 86 | Term ":" Rule - 86 LocalRule: "local" LocalFunctionDefinitions "in" Rule + 87 LetRule: "let" VariableBindings "in" Rule - 87 ForallRule: "forall" AttributedVariables "in" Term "do" Rule - 88 | "forall" AttributedVariables "in" Term "with" Term "do" Rule + 88 LocalRule: "local" LocalFunctionDefinitions "in" Rule - 89 ChooseRule: "choose" AttributedVariables "in" Term "do" Rule + 89 ForallRule: "forall" AttributedVariables "in" Term "do" Rule + 90 | "forall" AttributedVariables "in" Term "with" Term "do" Rule - 90 IterateRule: "iterate" Rule + 91 ChooseRule: "choose" AttributedVariables "in" Term "do" Rule - 91 BlockRule: "{" Rules "}" - 92 | "par" Rules "endpar" - 93 | "{" error "}" - 94 | "par" error "endpar" + 92 IterateRule: "iterate" Rule - 95 SequenceRule: "{|" Rules "|}" - 96 | "seq" Rules "endseq" - 97 | "{|" error "|}" - 98 | "seq" error "endseq" + 93 BlockRule: "{" Rules "}" + 94 | "par" Rules "endpar" + 95 | "{" error "}" + 96 | "par" error "endpar" - 99 UpdateRule: DirectCallExpression ":=" Term + 97 SequenceRule: "{|" Rules "|}" + 98 | "seq" Rules "endseq" + 99 | "{|" error "|}" + 100 | "seq" error "endseq" - 100 CallRule: CallExpression + 101 UpdateRule: DirectCallExpression ":=" Term - 101 WhileRule: "while" Term "do" Rule + 102 CallRule: CallExpression - 102 Terms: Terms "," Term - 103 | Term + 103 WhileRule: "while" Term "do" Rule - 104 Term: SimpleOrClaspedTerm - 105 | TypeCastingExpression - 106 | OperatorExpression - 107 | LetExpression - 108 | ConditionalExpression - 109 | ChooseExpression - 110 | UniversalQuantifierExpression - 111 | ExistentialQuantifierExpression - 112 | CardinalityExpression + 104 Terms: Terms "," Term + 105 | Term - 113 SimpleOrClaspedTerm: "(" Term ")" - 114 | "(" error ")" - 115 | CallExpression - 116 | LiteralCallExpression - 117 | Literal - 118 | "+" SimpleOrClaspedTerm - 119 | "-" SimpleOrClaspedTerm + 106 Term: SimpleOrClaspedTerm + 107 | TypeCastingExpression + 108 | OperatorExpression + 109 | LetExpression + 110 | ConditionalExpression + 111 | ChooseExpression + 112 | UniversalQuantifierExpression + 113 | ExistentialQuantifierExpression + 114 | CardinalityExpression - 120 OperatorExpression: Term "+" Term - 121 | 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 "or" Term - 133 | Term "xor" Term - 134 | Term "and" Term - 135 | Term "=>" Term - 136 | Term "implies" Term - 137 | "not" Term + 115 SimpleOrClaspedTerm: "(" Term ")" + 116 | "(" error ")" + 117 | CallExpression + 118 | LiteralCallExpression + 119 | Literal + 120 | "+" SimpleOrClaspedTerm + 121 | "-" SimpleOrClaspedTerm - 138 CallExpression: DirectCallExpression - 139 | MethodCallExpression - 140 | IndirectCallExpression + 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 - 141 DirectCallExpression: IdentifierPath - 142 | IdentifierPath "(" ")" - 143 | IdentifierPath "(" Terms ")" - 144 | IdentifierPath "(" error ")" + 140 CallExpression: DirectCallExpression + 141 | MethodCallExpression + 142 | IndirectCallExpression - 145 MethodCallExpression: SimpleOrClaspedTerm "." Identifier - 146 | SimpleOrClaspedTerm "." Identifier "(" ")" - 147 | SimpleOrClaspedTerm "." Identifier "(" Terms ")" - 148 | SimpleOrClaspedTerm "." Identifier "(" error ")" + 143 DirectCallExpression: IdentifierPath + 144 | IdentifierPath "(" ")" + 145 | IdentifierPath "(" Terms ")" + 146 | IdentifierPath "(" error ")" - 149 LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral + 147 MethodCallExpression: SimpleOrClaspedTerm "." Identifier + 148 | SimpleOrClaspedTerm "." Identifier "(" ")" + 149 | SimpleOrClaspedTerm "." Identifier "(" Terms ")" + 150 | SimpleOrClaspedTerm "." Identifier "(" error ")" - 150 IndirectCallExpression: CallExpression "(" ")" - 151 | CallExpression "(" Terms ")" - 152 | CallExpression "(" error ")" + 151 LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral - 153 TypeCastingExpression: SimpleOrClaspedTerm "as" Type + 152 IndirectCallExpression: CallExpression "(" ")" + 153 | CallExpression "(" Terms ")" + 154 | CallExpression "(" error ")" - 154 LetExpression: "let" VariableBindings "in" Term + 155 TypeCastingExpression: SimpleOrClaspedTerm "as" Type - 155 ConditionalExpression: "if" Term "then" Term "else" Term + 156 LetExpression: "let" VariableBindings "in" Term - 156 ChooseExpression: "choose" AttributedVariables "in" Term "do" Term + 157 ConditionalExpression: "if" Term "then" Term "else" Term - 157 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term + 158 ChooseExpression: "choose" AttributedVariables "in" Term "do" Term - 158 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term + 159 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term - 159 CardinalityExpression: "|" SimpleOrClaspedTerm "|" + 160 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term - 160 Literal: UndefinedLiteral - 161 | BooleanLiteral - 162 | IntegerLiteral - 163 | RationalLiteral - 164 | DecimalLiteral - 165 | BinaryLiteral - 166 | StringLiteral - 167 | ReferenceLiteral - 168 | ListLiteral - 169 | RangeLiteral - 170 | TupleLiteral - 171 | RecordLiteral + 161 CardinalityExpression: "|" SimpleOrClaspedTerm "|" - 172 UndefinedLiteral: "undef" + 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 - 173 BooleanLiteral: "true" - 174 | "false" + 174 UndefinedLiteral: "undef" - 175 IntegerLiteral: "integer" + 175 BooleanLiteral: "true" + 176 | "false" - 176 RationalLiteral: "rational" + 177 IntegerLiteral: "integer" - 177 DecimalLiteral: "decimal" + 178 RationalLiteral: "rational" - 178 BinaryLiteral: "binary" - 179 | "hexadecimal" + 179 DecimalLiteral: "decimal" - 180 StringLiteral: "string" + 180 BinaryLiteral: "binary" + 181 | "hexadecimal" - 181 ReferenceLiteral: "@" IdentifierPath + 182 StringLiteral: "string" - 182 ListLiteral: "[" "]" - 183 | "[" Terms "]" - 184 | "[" error "]" + 183 ReferenceLiteral: "@" IdentifierPath - 185 RangeLiteral: "[" Term ".." Term "]" + 184 ListLiteral: "[" "]" + 185 | "[" Terms "]" + 186 | "[" error "]" - 186 TupleLiteral: "(" Terms "," Term ")" + 187 RangeLiteral: "[" Term ".." Term "]" - 187 RecordLiteral: "(" Assignments ")" + 188 TupleLiteral: "(" Terms "," Term ")" - 188 Assignments: Assignments "," Assignment - 189 | Assignment + 189 RecordLiteral: "(" Assignments ")" - 190 Assignment: Identifier ":" Term + 190 Assignments: Assignments "," Assignment + 191 | Assignment - 191 Types: Types "," Type - 192 | Type + 192 Assignment: Identifier ":" Term - 193 Type: BasicType - 194 | TupleType - 195 | RecordType - 196 | TemplateType - 197 | RelationType - 198 | FixedSizedType + 193 Types: Types "," Type + 194 | Type - 199 BasicType: IdentifierPath + 195 Type: BasicType + 196 | TupleType + 197 | RecordType + 198 | TemplateType + 199 | RelationType + 200 | FixedSizedType - 200 TupleType: "(" Types "," Type ")" + 201 BasicType: IdentifierPath - 201 RecordType: "(" TypedVariables "," TypedVariable ")" + 202 TupleType: "(" Types "," Type ")" - 202 TemplateType: IdentifierPath "<" Types ">" + 203 RecordType: "(" TypedVariables "," TypedVariable ")" - 203 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" + 204 TemplateType: IdentifierPath "<" Types ">" - 204 FixedSizedType: IdentifierPath "'" Term + 205 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" - 205 FunctionParameters: FunctionParameters "*" Type - 206 | Type + 206 FixedSizedType: IdentifierPath "'" Term - 207 MaybeFunctionParameters: FunctionParameters - 208 | %empty + 207 FunctionParameters: FunctionParameters "*" Type + 208 | Type - 209 Parameters: Parameters "," TypedAttributedVariable - 210 | TypedAttributedVariable + 209 MaybeFunctionParameters: FunctionParameters + 210 | %empty - 211 MaybeDefined: "defined" "{" Term "}" - 212 | %empty + 211 Parameters: Parameters "," TypedAttributedVariable + 212 | TypedAttributedVariable - 213 MaybeInitially: "=" "{" Initializers "}" - 214 | %empty + 213 MaybeDefined: "defined" "{" Term "}" + 214 | %empty - 215 Initializers: Initializers "," Initializer - 216 | Initializer + 215 MaybeInitially: "=" "{" Initializers "}" + 216 | %empty - 217 Initializer: Term - 218 | "(" Term ")" "->" Term - 219 | TupleLiteral "->" Term + 217 Initializers: Initializers "," Initializer + 218 | Initializer - 220 Identifier: "identifier" - 221 | "in" + 219 Initializer: Term + 220 | "(" Term ")" "->" Term + 221 | TupleLiteral "->" Term - 222 IdentifierPath: IdentifierPath "::" Identifier - 223 | Identifier + 222 Identifier: "identifier" + 223 | "in" - 224 Variable: TypedVariable - 225 | Identifier + 224 IdentifierPath: IdentifierPath "::" Identifier + 225 | Identifier - 226 AttributedVariables: AttributedVariables "," AttributedVariable - 227 | AttributedVariable + 226 Variable: TypedVariable + 227 | Identifier - 228 TypedVariables: TypedVariables "," TypedVariable - 229 | TypedVariable + 228 AttributedVariables: AttributedVariables "," AttributedVariable + 229 | AttributedVariable - 230 TypedVariable: Identifier ":" Type + 230 TypedVariables: TypedVariables "," TypedVariable + 231 | TypedVariable - 231 AttributedVariable: Attributes Variable - 232 | Variable + 232 TypedVariable: Identifier ":" Type - 233 TypedAttributedVariable: Attributes TypedVariable - 234 | TypedVariable + 233 AttributedVariable: Attributes Variable + 234 | Variable - 235 VariableBindings: VariableBindings "," VariableBinding - 236 | VariableBinding + 235 TypedAttributedVariable: Attributes TypedVariable + 236 | TypedVariable - 237 VariableBinding: AttributedVariable "=" Term + 237 VariableBindings: VariableBindings "," VariableBinding + 238 | VariableBinding - 238 LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition - 239 | AttributedLocalFunctionDefinition + 239 VariableBinding: AttributedVariable "=" Term - 240 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition - 241 | LocalFunctionDefinition - 242 | error + 240 LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition + 241 | AttributedLocalFunctionDefinition - 243 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 242 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition + 243 | LocalFunctionDefinition + 244 | error - 244 Attributes: Attributes Attribute - 245 | Attribute + 245 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially - 246 Attribute: "[" BasicAttribute "]" - 247 | "[" ExpressionAttribute "]" - 248 | "[" error "]" + 246 Attributes: Attributes Attribute + 247 | Attribute - 249 BasicAttribute: Identifier + 248 Attribute: "[" BasicAttribute "]" + 249 | "[" ExpressionAttribute "]" + 250 | "[" error "]" - 250 ExpressionAttribute: Identifier Term + 251 BasicAttribute: Identifier + + 252 ExpressionAttribute: Identifier Term Terminals, with rules where they appear "end of file" (0) 0 - error (256) 8 26 31 32 36 79 93 94 97 98 114 144 148 152 184 242 248 + error (256) 8 26 31 32 38 81 95 96 99 100 116 146 150 154 186 244 250 "CASM" (258) 2 3 "init" (259) 21 22 - "derived" (260) 24 25 26 58 + "derived" (260) 24 25 26 60 "enumeration" (261) 23 - "rule" (262) 27 28 29 30 31 32 59 - "using" (263) 39 40 41 - "invariant" (264) 42 - "import" (265) 43 44 - "structure" (266) 45 - "feature" (267) 46 - "implements" (268) 52 53 - "for" (269) 52 + "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 "this" (270) - "function" (271) 33 - "defined" (272) 211 - "seq" (273) 96 98 - "endseq" (274) 96 98 - "par" (275) 92 94 - "endpar" (276) 92 94 - "skip" (277) 75 - "let" (278) 85 154 - "local" (279) 86 - "in" (280) 85 86 87 88 89 154 156 157 158 221 - "forall" (281) 87 88 157 - "choose" (282) 89 156 - "iterate" (283) 90 - "do" (284) 87 88 89 101 156 - "if" (285) 76 77 155 - "then" (286) 76 77 155 - "else" (287) 77 155 - "case" (288) 78 79 - "of" (289) 78 79 - "default" (290) 82 - "holds" (291) 157 - "exists" (292) 158 - "with" (293) 88 158 - "as" (294) 44 153 - "while" (295) 101 - "undef" (296) 172 - "false" (297) 174 - "true" (298) 173 - "and" (299) 134 - "or" (300) 132 - "xor" (301) 133 - "implies" (302) 136 - "not" (303) 137 - "+" (304) 118 120 - "-" (305) 119 121 - "=" (306) 23 24 25 26 27 28 29 30 31 32 39 42 45 46 52 53 127 213 237 - "(" (307) 25 26 29 30 31 32 113 114 142 143 144 146 147 148 150 151 152 186 187 200 201 218 - ")" (308) 25 26 29 30 31 32 113 114 142 143 144 146 147 148 150 151 152 186 187 200 201 218 - "[" (309) 182 183 184 185 246 247 248 - "]" (310) 182 183 184 185 246 247 248 - "{" (311) 22 23 45 46 52 53 78 79 91 93 211 213 - "}" (312) 22 23 45 46 52 53 78 79 91 93 211 213 - ":" (313) 33 58 59 82 83 84 190 230 243 - "::" (314) 41 222 - "_" (315) 83 - "|" (316) 159 - "@" (317) 181 - "," (318) 37 102 186 188 191 200 201 209 215 226 228 235 238 - "<" (319) 128 202 203 - ">" (320) 129 202 203 - "*" (321) 41 122 205 - "/" (322) 123 - "%" (323) 124 - "^" (324) 125 - "'" (325) 204 - ".." (326) 185 - "." (327) 145 146 147 148 149 - "->" (328) 24 25 26 28 30 32 33 58 59 203 218 219 243 - "=>" (329) 135 - ":=" (330) 99 - "!=" (331) 126 - "<=" (332) 130 - ">=" (333) 131 - "{|" (334) 95 97 - "|}" (335) 95 97 - "binary" (336) 178 - "hexadecimal" (337) 179 - "integer" (338) 175 - "rational" (339) 176 - "decimal" (340) 177 - "string" (341) 180 - "identifier" (342) 220 + "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 BASIC_TYPE (343) CALL (344) UPLUS (345) @@ -485,295 +488,298 @@ Nonterminals, with rules where they appear on right: 10 DerivedDefinition (101) on left: 24 25 26 - on right: 11 48 54 + on right: 11 50 56 RuleDefinition (102) on left: 27 28 29 30 31 32 - on right: 12 49 55 - FunctionDefinition (103) - on left: 33 - on right: 13 45 - 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: 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: 14 - UsingPathDefinition (107) - on left: 40 41 + UsingPathDefinition (108) + on left: 42 43 on right: 15 - InvariantDefinition (108) - on left: 42 + InvariantDefinition (109) + on left: 44 on right: 16 - ImportDefinition (109) - on left: 43 44 + ImportDefinition (110) + on left: 45 46 on right: 17 - StructureDefinition (110) - on left: 45 + StructureDefinition (111) + on left: 47 on right: 18 - FeatureDefinition (111) - on left: 46 + FeatureDefinition (112) + on left: 48 on right: 19 - FeatureDeclarationOrDefinition (112) - on left: 47 48 49 - on right: 50 51 - FeatureDeclarationsAndDefinitions (113) - on left: 50 51 - on right: 46 50 - ImplementationDefinition (114) + FeatureDeclarationOrDefinition (113) + on left: 49 50 51 + on right: 52 53 + FeatureDeclarationsAndDefinitions (114) on left: 52 53 - on right: 20 - ImplementationDefinitionDefinition (115) + on right: 48 52 + ImplementationDefinition (115) on left: 54 55 - on right: 56 57 - ImplementationDefinitionDefinitions (116) + on right: 20 + ImplementationDefinitionDefinition (116) on left: 56 57 - on right: 52 53 56 - DeclarationDefinition (117) + on right: 58 59 + ImplementationDefinitionDefinitions (117) on left: 58 59 - on right: 47 - Rules (118) + on right: 54 55 58 + DeclarationDefinition (118) on left: 60 61 - on right: 60 91 92 95 96 - Rule (119) - on left: 62 63 64 65 66 67 68 69 70 71 72 73 74 - on right: 27 28 29 30 31 32 60 61 76 77 82 83 84 85 86 87 88 89 90 101 - SkipRule (120) - on left: 75 - on right: 62 - ConditionalRule (121) - on left: 76 77 - on right: 63 - CaseRule (122) - on left: 78 79 + on right: 49 + Rules (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 - CaseLabels (123) - on left: 80 81 - on right: 78 80 - CaseLabel (124) - on left: 82 83 84 - on right: 80 81 - LetRule (125) - on left: 85 + ConditionalRule (122) + on left: 78 79 on right: 65 - LocalRule (126) - on left: 86 + CaseRule (123) + on left: 80 81 on right: 66 - ForallRule (127) - on left: 87 88 + 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 on right: 67 - ChooseRule (128) - on left: 89 + LocalRule (127) + on left: 88 on right: 68 - IterateRule (129) - on left: 90 + ForallRule (128) + on left: 89 90 on right: 69 - BlockRule (130) - on left: 91 92 93 94 + ChooseRule (129) + on left: 91 on right: 70 - SequenceRule (131) - on left: 95 96 97 98 + IterateRule (130) + on left: 92 on right: 71 - UpdateRule (132) - on left: 99 + BlockRule (131) + on left: 93 94 95 96 on right: 72 - CallRule (133) - on left: 100 + SequenceRule (132) + on left: 97 98 99 100 on right: 73 - WhileRule (134) + UpdateRule (133) on left: 101 on right: 74 - Terms (135) - on left: 102 103 - on right: 102 143 147 151 183 186 - Term (136) - on left: 104 105 106 107 108 109 110 111 112 - on right: 24 25 26 42 76 77 78 79 84 87 88 89 99 101 102 103 113 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 154 155 156 157 158 185 186 190 204 211 217 218 219 237 250 - SimpleOrClaspedTerm (137) - on left: 113 114 115 116 117 118 119 - on right: 104 118 119 145 146 147 148 149 153 159 - OperatorExpression (138) - on left: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 - on right: 106 - CallExpression (139) - on left: 138 139 140 - on right: 100 115 150 151 152 - DirectCallExpression (140) - on left: 141 142 143 144 - on right: 99 138 - MethodCallExpression (141) - on left: 145 146 147 148 - on right: 139 - LiteralCallExpression (142) - on left: 149 - on right: 116 - IndirectCallExpression (143) - on left: 150 151 152 - on right: 140 - TypeCastingExpression (144) - on left: 153 - on right: 105 - LetExpression (145) - on left: 154 - on right: 107 - ConditionalExpression (146) - on left: 155 + CallRule (134) + on left: 102 + on right: 75 + WhileRule (135) + 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 - ChooseExpression (147) + 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 - UniversalQuantifierExpression (148) + ConditionalExpression (147) on left: 157 on right: 110 - ExistentialQuantifierExpression (149) + ChooseExpression (148) on left: 158 on right: 111 - CardinalityExpression (150) + UniversalQuantifierExpression (149) on left: 159 on right: 112 - Literal (151) - on left: 160 161 162 163 164 165 166 167 168 169 170 171 - on right: 117 - UndefinedLiteral (152) - on left: 172 - on right: 160 - BooleanLiteral (153) - on left: 173 174 - on right: 161 - IntegerLiteral (154) - on left: 175 - on right: 149 162 - RationalLiteral (155) - on left: 176 + ExistentialQuantifierExpression (150) + on left: 160 + on right: 113 + CardinalityExpression (151) + 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 - DecimalLiteral (156) + IntegerLiteral (155) on left: 177 - on right: 164 - BinaryLiteral (157) - on left: 178 179 + on right: 151 164 + RationalLiteral (156) + on left: 178 on right: 165 - StringLiteral (158) - on left: 180 + DecimalLiteral (157) + on left: 179 on right: 166 - ReferenceLiteral (159) - on left: 181 + BinaryLiteral (158) + on left: 180 181 on right: 167 - ListLiteral (160) - on left: 182 183 184 + StringLiteral (159) + on left: 182 on right: 168 - RangeLiteral (161) - on left: 185 + ReferenceLiteral (160) + on left: 183 on right: 169 - TupleLiteral (162) - on left: 186 - on right: 170 219 - RecordLiteral (163) + ListLiteral (161) + on left: 184 185 186 + on right: 170 + RangeLiteral (162) on left: 187 on right: 171 - Assignments (164) - on left: 188 189 - on right: 187 188 - Assignment (165) - on left: 190 - on right: 188 189 - Types (166) - on left: 191 192 - on right: 191 200 202 - Type (167) - on left: 193 194 195 196 197 198 - on right: 24 25 26 28 30 32 33 39 52 53 58 59 153 191 192 200 203 205 206 230 243 - BasicType (168) - on left: 199 - on right: 193 - TupleType (169) - on left: 200 - on right: 194 - RecordType (170) + TupleLiteral (163) + on left: 188 + on right: 172 221 + RecordLiteral (164) + 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 - TemplateType (171) + TupleType (170) on left: 202 on right: 196 - RelationType (172) + RecordType (171) on left: 203 on right: 197 - FixedSizedType (173) + TemplateType (172) on left: 204 on right: 198 - FunctionParameters (174) - on left: 205 206 - on right: 205 207 - MaybeFunctionParameters (175) + RelationType (173) + on left: 205 + on right: 199 + FixedSizedType (174) + on left: 206 + on right: 200 + FunctionParameters (175) on left: 207 208 - on right: 33 58 59 203 243 - Parameters (176) + on right: 207 209 + MaybeFunctionParameters (176) on left: 209 210 - on right: 25 29 30 209 - MaybeDefined (177) + on right: 35 60 61 205 245 + Parameters (177) on left: 211 212 - on right: 33 243 - MaybeInitially (178) + on right: 25 29 30 211 + MaybeDefined (178) on left: 213 214 - on right: 33 243 - Initializers (179) + on right: 35 245 + MaybeInitially (179) on left: 215 216 - on right: 22 213 215 - Initializer (180) - on left: 217 218 219 - on right: 215 216 - Identifier (181) - on left: 220 221 - on right: 23 24 25 26 27 28 29 30 31 32 33 34 35 39 42 44 45 46 58 59 145 146 147 148 190 222 223 225 230 243 249 250 - IdentifierPath (182) + on right: 35 245 + Initializers (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: 21 40 41 43 44 52 141 142 143 144 181 199 202 203 204 222 - Variable (183) + 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 left: 224 225 - on right: 231 232 - AttributedVariables (184) + on right: 21 42 43 45 46 54 143 144 145 146 183 201 204 205 206 224 + Variable (184) on left: 226 227 - on right: 87 88 89 156 157 158 226 - TypedVariables (185) + on right: 233 234 + AttributedVariables (185) on left: 228 229 - on right: 201 228 - TypedVariable (186) - on left: 230 - on right: 201 224 228 229 233 234 - AttributedVariable (187) - on left: 231 232 - on right: 226 227 237 - TypedAttributedVariable (188) + on right: 89 90 91 158 159 160 228 + TypedVariables (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: 209 210 - VariableBindings (189) + on right: 228 229 239 + TypedAttributedVariable (189) on left: 235 236 - on right: 85 154 235 - VariableBinding (190) - on left: 237 - on right: 235 236 - LocalFunctionDefinitions (191) - on left: 238 239 - on right: 86 238 - AttributedLocalFunctionDefinition (192) - on left: 240 241 242 - on right: 238 239 - LocalFunctionDefinition (193) - on left: 243 + on right: 211 212 + VariableBindings (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 - Attributes (194) - on left: 244 245 - on right: 2 6 35 231 233 240 244 - Attribute (195) - on left: 246 247 248 - on right: 244 245 - BasicAttribute (196) - on left: 249 - on right: 246 - ExpressionAttribute (197) - on left: 250 - on right: 247 + LocalFunctionDefinition (194) + on left: 245 + 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 State 0 @@ -798,9 +804,9 @@ State 1 State 2 - 246 Attribute: "[" • BasicAttribute "]" - 247 | "[" • ExpressionAttribute "]" - 248 | "[" • error "]" + 248 Attribute: "[" • BasicAttribute "]" + 249 | "[" • ExpressionAttribute "]" + 250 | "[" • error "]" error shift, and go to state 7 "in" shift, and go to state 8 @@ -858,7 +864,7 @@ State 4 State 5 2 Header: Attributes • "CASM" - 244 Attributes: Attributes • Attribute + 246 Attributes: Attributes • Attribute "CASM" shift, and go to state 42 "[" shift, and go to state 2 @@ -868,36 +874,36 @@ State 5 State 6 - 245 Attributes: Attribute • + 247 Attributes: Attribute • - $default reduce using rule 245 (Attributes) + $default reduce using rule 247 (Attributes) State 7 - 248 Attribute: "[" error • "]" + 250 Attribute: "[" error • "]" "]" shift, and go to state 44 State 8 - 221 Identifier: "in" • + 223 Identifier: "in" • - $default reduce using rule 221 (Identifier) + $default reduce using rule 223 (Identifier) State 9 - 220 Identifier: "identifier" • + 222 Identifier: "identifier" • - $default reduce using rule 220 (Identifier) + $default reduce using rule 222 (Identifier) State 10 - 249 BasicAttribute: Identifier • - 250 ExpressionAttribute: Identifier • Term + 251 BasicAttribute: Identifier • + 252 ExpressionAttribute: Identifier • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -923,7 +929,7 @@ State 10 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - $default reduce using rule 249 (BasicAttribute) + $default reduce using rule 251 (BasicAttribute) Term go to state 66 SimpleOrClaspedTerm go to state 67 @@ -959,14 +965,14 @@ State 10 State 11 - 246 Attribute: "[" BasicAttribute • "]" + 248 Attribute: "[" BasicAttribute • "]" "]" shift, and go to state 96 State 12 - 247 Attribute: "[" ExpressionAttribute • "]" + 249 Attribute: "[" ExpressionAttribute • "]" "]" shift, and go to state 97 @@ -1037,9 +1043,9 @@ State 18 State 19 - 39 UsingDefinition: "using" • Identifier "=" Type - 40 UsingPathDefinition: "using" • IdentifierPath - 41 | "using" • IdentifierPath "::" "*" + 41 UsingDefinition: "using" • Identifier "=" Type + 42 UsingPathDefinition: "using" • IdentifierPath + 43 | "using" • IdentifierPath "::" "*" "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -1050,7 +1056,7 @@ State 19 State 20 - 42 InvariantDefinition: "invariant" • Identifier "=" Term + 44 InvariantDefinition: "invariant" • Identifier "=" Term "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -1060,8 +1066,8 @@ State 20 State 21 - 43 ImportDefinition: "import" • IdentifierPath - 44 | "import" • IdentifierPath "as" Identifier + 45 ImportDefinition: "import" • IdentifierPath + 46 | "import" • IdentifierPath "as" Identifier "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -1072,7 +1078,7 @@ State 21 State 22 - 45 StructureDefinition: "structure" • Identifier "=" "{" FunctionDefinition "}" + 47 StructureDefinition: "structure" • Identifier "=" "{" FunctionDefinitions "}" "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -1082,7 +1088,7 @@ State 22 State 23 - 46 FeatureDefinition: "feature" • Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" + 48 FeatureDefinition: "feature" • Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -1092,8 +1098,8 @@ State 23 State 24 - 52 ImplementationDefinition: "implements" • IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" - 53 | "implements" • Type "=" "{" ImplementationDefinitionDefinitions "}" + 54 ImplementationDefinition: "implements" • IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" + 55 | "implements" • Type "=" "{" ImplementationDefinitionDefinitions "}" "in" shift, and go to state 8 "(" shift, and go to state 109 @@ -1112,7 +1118,7 @@ State 24 State 25 - 33 FunctionDefinition: "function" • Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 35 FunctionDefinition: "function" • Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -1260,7 +1266,7 @@ State 40 State 41 6 AttributedDefinition: Attributes • Definition - 244 Attributes: Attributes • Attribute + 246 Attributes: Attributes • Attribute "init" shift, and go to state 15 "derived" shift, and go to state 16 @@ -1300,21 +1306,21 @@ State 42 State 43 - 244 Attributes: Attributes Attribute • + 246 Attributes: Attributes Attribute • - $default reduce using rule 244 (Attributes) + $default reduce using rule 246 (Attributes) State 44 - 248 Attribute: "[" error "]" • + 250 Attribute: "[" error "]" • - $default reduce using rule 248 (Attribute) + $default reduce using rule 250 (Attribute) State 45 - 154 LetExpression: "let" • VariableBindings "in" Term + 156 LetExpression: "let" • VariableBindings "in" Term "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -1332,7 +1338,7 @@ State 45 State 46 - 157 UniversalQuantifierExpression: "forall" • AttributedVariables "in" Term "holds" Term + 159 UniversalQuantifierExpression: "forall" • AttributedVariables "in" Term "holds" Term "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -1349,7 +1355,7 @@ State 46 State 47 - 156 ChooseExpression: "choose" • AttributedVariables "in" Term "do" Term + 158 ChooseExpression: "choose" • AttributedVariables "in" Term "do" Term "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -1366,7 +1372,7 @@ State 47 State 48 - 155 ConditionalExpression: "if" • Term "then" Term "else" Term + 157 ConditionalExpression: "if" • Term "then" Term "else" Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -1426,7 +1432,7 @@ State 48 State 49 - 158 ExistentialQuantifierExpression: "exists" • AttributedVariables "in" Term "with" Term + 160 ExistentialQuantifierExpression: "exists" • AttributedVariables "in" Term "with" Term "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -1443,28 +1449,28 @@ State 49 State 50 - 172 UndefinedLiteral: "undef" • + 174 UndefinedLiteral: "undef" • - $default reduce using rule 172 (UndefinedLiteral) + $default reduce using rule 174 (UndefinedLiteral) State 51 - 174 BooleanLiteral: "false" • + 176 BooleanLiteral: "false" • - $default reduce using rule 174 (BooleanLiteral) + $default reduce using rule 176 (BooleanLiteral) State 52 - 173 BooleanLiteral: "true" • + 175 BooleanLiteral: "true" • - $default reduce using rule 173 (BooleanLiteral) + $default reduce using rule 175 (BooleanLiteral) State 53 - 137 OperatorExpression: "not" • Term + 139 OperatorExpression: "not" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -1524,7 +1530,7 @@ State 53 State 54 - 118 SimpleOrClaspedTerm: "+" • SimpleOrClaspedTerm + 120 SimpleOrClaspedTerm: "+" • SimpleOrClaspedTerm "in" shift, and go to state 8 "undef" shift, and go to state 50 @@ -1568,7 +1574,7 @@ State 54 State 55 - 119 SimpleOrClaspedTerm: "-" • SimpleOrClaspedTerm + 121 SimpleOrClaspedTerm: "-" • SimpleOrClaspedTerm "in" shift, and go to state 8 "undef" shift, and go to state 50 @@ -1612,10 +1618,10 @@ State 55 State 56 - 113 SimpleOrClaspedTerm: "(" • Term ")" - 114 | "(" • error ")" - 186 TupleLiteral: "(" • Terms "," Term ")" - 187 RecordLiteral: "(" • Assignments ")" + 115 SimpleOrClaspedTerm: "(" • Term ")" + 116 | "(" • error ")" + 188 TupleLiteral: "(" • Terms "," Term ")" + 189 RecordLiteral: "(" • Assignments ")" error shift, and go to state 136 "let" shift, and go to state 45 @@ -1679,10 +1685,10 @@ State 56 State 57 - 182 ListLiteral: "[" • "]" - 183 | "[" • Terms "]" - 184 | "[" • error "]" - 185 RangeLiteral: "[" • Term ".." Term "]" + 184 ListLiteral: "[" • "]" + 185 | "[" • Terms "]" + 186 | "[" • error "]" + 187 RangeLiteral: "[" • Term ".." Term "]" error shift, and go to state 142 "let" shift, and go to state 45 @@ -1745,7 +1751,7 @@ State 57 State 58 - 159 CardinalityExpression: "|" • SimpleOrClaspedTerm "|" + 161 CardinalityExpression: "|" • SimpleOrClaspedTerm "|" "in" shift, and go to state 8 "undef" shift, and go to state 50 @@ -1789,7 +1795,7 @@ State 58 State 59 - 181 ReferenceLiteral: "@" • IdentifierPath + 183 ReferenceLiteral: "@" • IdentifierPath "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -1800,66 +1806,66 @@ State 59 State 60 - 178 BinaryLiteral: "binary" • + 180 BinaryLiteral: "binary" • - $default reduce using rule 178 (BinaryLiteral) + $default reduce using rule 180 (BinaryLiteral) State 61 - 179 BinaryLiteral: "hexadecimal" • + 181 BinaryLiteral: "hexadecimal" • - $default reduce using rule 179 (BinaryLiteral) + $default reduce using rule 181 (BinaryLiteral) State 62 - 175 IntegerLiteral: "integer" • + 177 IntegerLiteral: "integer" • - $default reduce using rule 175 (IntegerLiteral) + $default reduce using rule 177 (IntegerLiteral) State 63 - 176 RationalLiteral: "rational" • + 178 RationalLiteral: "rational" • - $default reduce using rule 176 (RationalLiteral) + $default reduce using rule 178 (RationalLiteral) State 64 - 177 DecimalLiteral: "decimal" • + 179 DecimalLiteral: "decimal" • - $default reduce using rule 177 (DecimalLiteral) + $default reduce using rule 179 (DecimalLiteral) State 65 - 180 StringLiteral: "string" • + 182 StringLiteral: "string" • - $default reduce using rule 180 (StringLiteral) + $default reduce using rule 182 (StringLiteral) State 66 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 250 ExpressionAttribute: 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 + 252 ExpressionAttribute: Identifier Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -1879,245 +1885,245 @@ State 66 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 250 (ExpressionAttribute) + $default reduce using rule 252 (ExpressionAttribute) State 67 - 104 Term: SimpleOrClaspedTerm • - 145 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 146 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 147 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 148 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 149 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral - 153 TypeCastingExpression: SimpleOrClaspedTerm • "as" Type + 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 "as" shift, and go to state 165 "." shift, and go to state 166 - $default reduce using rule 104 (Term) + $default reduce using rule 106 (Term) State 68 - 106 Term: OperatorExpression • + 108 Term: OperatorExpression • - $default reduce using rule 106 (Term) + $default reduce using rule 108 (Term) State 69 - 115 SimpleOrClaspedTerm: CallExpression • - 150 IndirectCallExpression: CallExpression • "(" ")" - 151 | CallExpression • "(" Terms ")" - 152 | CallExpression • "(" error ")" + 117 SimpleOrClaspedTerm: CallExpression • + 152 IndirectCallExpression: CallExpression • "(" ")" + 153 | CallExpression • "(" Terms ")" + 154 | CallExpression • "(" error ")" "(" shift, and go to state 167 - $default reduce using rule 115 (SimpleOrClaspedTerm) + $default reduce using rule 117 (SimpleOrClaspedTerm) State 70 - 138 CallExpression: DirectCallExpression • + 140 CallExpression: DirectCallExpression • - $default reduce using rule 138 (CallExpression) + $default reduce using rule 140 (CallExpression) State 71 - 139 CallExpression: MethodCallExpression • + 141 CallExpression: MethodCallExpression • - $default reduce using rule 139 (CallExpression) + $default reduce using rule 141 (CallExpression) State 72 - 116 SimpleOrClaspedTerm: LiteralCallExpression • + 118 SimpleOrClaspedTerm: LiteralCallExpression • - $default reduce using rule 116 (SimpleOrClaspedTerm) + $default reduce using rule 118 (SimpleOrClaspedTerm) State 73 - 140 CallExpression: IndirectCallExpression • + 142 CallExpression: IndirectCallExpression • - $default reduce using rule 140 (CallExpression) + $default reduce using rule 142 (CallExpression) State 74 - 105 Term: TypeCastingExpression • + 107 Term: TypeCastingExpression • - $default reduce using rule 105 (Term) + $default reduce using rule 107 (Term) State 75 - 107 Term: LetExpression • + 109 Term: LetExpression • - $default reduce using rule 107 (Term) + $default reduce using rule 109 (Term) State 76 - 108 Term: ConditionalExpression • + 110 Term: ConditionalExpression • - $default reduce using rule 108 (Term) + $default reduce using rule 110 (Term) State 77 - 109 Term: ChooseExpression • + 111 Term: ChooseExpression • - $default reduce using rule 109 (Term) + $default reduce using rule 111 (Term) State 78 - 110 Term: UniversalQuantifierExpression • + 112 Term: UniversalQuantifierExpression • - $default reduce using rule 110 (Term) + $default reduce using rule 112 (Term) State 79 - 111 Term: ExistentialQuantifierExpression • + 113 Term: ExistentialQuantifierExpression • - $default reduce using rule 111 (Term) + $default reduce using rule 113 (Term) State 80 - 112 Term: CardinalityExpression • + 114 Term: CardinalityExpression • - $default reduce using rule 112 (Term) + $default reduce using rule 114 (Term) State 81 - 117 SimpleOrClaspedTerm: Literal • + 119 SimpleOrClaspedTerm: Literal • - $default reduce using rule 117 (SimpleOrClaspedTerm) + $default reduce using rule 119 (SimpleOrClaspedTerm) State 82 - 160 Literal: UndefinedLiteral • + 162 Literal: UndefinedLiteral • - $default reduce using rule 160 (Literal) + $default reduce using rule 162 (Literal) State 83 - 161 Literal: BooleanLiteral • + 163 Literal: BooleanLiteral • - $default reduce using rule 161 (Literal) + $default reduce using rule 163 (Literal) State 84 - 162 Literal: IntegerLiteral • + 164 Literal: IntegerLiteral • - $default reduce using rule 162 (Literal) + $default reduce using rule 164 (Literal) State 85 - 163 Literal: RationalLiteral • + 165 Literal: RationalLiteral • - $default reduce using rule 163 (Literal) + $default reduce using rule 165 (Literal) State 86 - 164 Literal: DecimalLiteral • + 166 Literal: DecimalLiteral • - $default reduce using rule 164 (Literal) + $default reduce using rule 166 (Literal) State 87 - 165 Literal: BinaryLiteral • + 167 Literal: BinaryLiteral • - $default reduce using rule 165 (Literal) + $default reduce using rule 167 (Literal) State 88 - 166 Literal: StringLiteral • + 168 Literal: StringLiteral • - $default reduce using rule 166 (Literal) + $default reduce using rule 168 (Literal) State 89 - 167 Literal: ReferenceLiteral • + 169 Literal: ReferenceLiteral • - $default reduce using rule 167 (Literal) + $default reduce using rule 169 (Literal) State 90 - 168 Literal: ListLiteral • + 170 Literal: ListLiteral • - $default reduce using rule 168 (Literal) + $default reduce using rule 170 (Literal) State 91 - 169 Literal: RangeLiteral • + 171 Literal: RangeLiteral • - $default reduce using rule 169 (Literal) + $default reduce using rule 171 (Literal) State 92 - 170 Literal: TupleLiteral • + 172 Literal: TupleLiteral • - $default reduce using rule 170 (Literal) + $default reduce using rule 172 (Literal) State 93 - 171 Literal: RecordLiteral • + 173 Literal: RecordLiteral • - $default reduce using rule 171 (Literal) + $default reduce using rule 173 (Literal) State 94 - 223 IdentifierPath: Identifier • + 225 IdentifierPath: Identifier • - $default reduce using rule 223 (IdentifierPath) + $default reduce using rule 225 (IdentifierPath) State 95 - 141 DirectCallExpression: IdentifierPath • - 142 | IdentifierPath • "(" ")" - 143 | IdentifierPath • "(" Terms ")" - 144 | IdentifierPath • "(" error ")" - 222 IdentifierPath: IdentifierPath • "::" Identifier + 143 DirectCallExpression: IdentifierPath • + 144 | IdentifierPath • "(" ")" + 145 | IdentifierPath • "(" Terms ")" + 146 | IdentifierPath • "(" error ")" + 224 IdentifierPath: IdentifierPath • "::" Identifier "(" shift, and go to state 168 "::" shift, and go to state 169 - $default reduce using rule 141 (DirectCallExpression) + $default reduce using rule 143 (DirectCallExpression) State 96 - 246 Attribute: "[" BasicAttribute "]" • + 248 Attribute: "[" BasicAttribute "]" • - $default reduce using rule 246 (Attribute) + $default reduce using rule 248 (Attribute) State 97 - 247 Attribute: "[" ExpressionAttribute "]" • + 249 Attribute: "[" ExpressionAttribute "]" • - $default reduce using rule 247 (Attribute) + $default reduce using rule 249 (Attribute) State 98 @@ -2185,7 +2191,7 @@ State 98 State 99 21 InitDefinition: "init" IdentifierPath • - 222 IdentifierPath: IdentifierPath • "::" Identifier + 224 IdentifierPath: IdentifierPath • "::" Identifier "::" shift, and go to state 169 @@ -2225,62 +2231,62 @@ State 102 State 103 - 39 UsingDefinition: "using" Identifier • "=" Type - 223 IdentifierPath: Identifier • + 41 UsingDefinition: "using" Identifier • "=" Type + 225 IdentifierPath: Identifier • "=" shift, and go to state 181 - $default reduce using rule 223 (IdentifierPath) + $default reduce using rule 225 (IdentifierPath) State 104 - 40 UsingPathDefinition: "using" IdentifierPath • - 41 | "using" IdentifierPath • "::" "*" - 222 IdentifierPath: IdentifierPath • "::" Identifier + 42 UsingPathDefinition: "using" IdentifierPath • + 43 | "using" IdentifierPath • "::" "*" + 224 IdentifierPath: IdentifierPath • "::" Identifier "::" shift, and go to state 182 - $default reduce using rule 40 (UsingPathDefinition) + $default reduce using rule 42 (UsingPathDefinition) State 105 - 42 InvariantDefinition: "invariant" Identifier • "=" Term + 44 InvariantDefinition: "invariant" Identifier • "=" Term "=" shift, and go to state 183 State 106 - 43 ImportDefinition: "import" IdentifierPath • - 44 | "import" IdentifierPath • "as" Identifier - 222 IdentifierPath: IdentifierPath • "::" Identifier + 45 ImportDefinition: "import" IdentifierPath • + 46 | "import" IdentifierPath • "as" Identifier + 224 IdentifierPath: IdentifierPath • "::" Identifier "as" shift, and go to state 184 "::" shift, and go to state 169 - $default reduce using rule 43 (ImportDefinition) + $default reduce using rule 45 (ImportDefinition) State 107 - 45 StructureDefinition: "structure" Identifier • "=" "{" FunctionDefinition "}" + 47 StructureDefinition: "structure" Identifier • "=" "{" FunctionDefinitions "}" "=" shift, and go to state 185 State 108 - 46 FeatureDefinition: "feature" Identifier • "=" "{" FeatureDeclarationsAndDefinitions "}" + 48 FeatureDefinition: "feature" Identifier • "=" "{" FeatureDeclarationsAndDefinitions "}" "=" shift, and go to state 186 State 109 - 200 TupleType: "(" • Types "," Type ")" - 201 RecordType: "(" • TypedVariables "," TypedVariable ")" + 202 TupleType: "(" • Types "," Type ")" + 203 RecordType: "(" • TypedVariables "," TypedVariable ")" "in" shift, and go to state 8 "(" shift, and go to state 109 @@ -2302,73 +2308,73 @@ State 109 State 110 - 53 ImplementationDefinition: "implements" Type • "=" "{" ImplementationDefinitionDefinitions "}" + 55 ImplementationDefinition: "implements" Type • "=" "{" ImplementationDefinitionDefinitions "}" "=" shift, and go to state 193 State 111 - 193 Type: BasicType • + 195 Type: BasicType • - $default reduce using rule 193 (Type) + $default reduce using rule 195 (Type) State 112 - 194 Type: TupleType • + 196 Type: TupleType • - $default reduce using rule 194 (Type) + $default reduce using rule 196 (Type) State 113 - 195 Type: RecordType • + 197 Type: RecordType • - $default reduce using rule 195 (Type) + $default reduce using rule 197 (Type) State 114 - 196 Type: TemplateType • + 198 Type: TemplateType • - $default reduce using rule 196 (Type) + $default reduce using rule 198 (Type) State 115 - 197 Type: RelationType • + 199 Type: RelationType • - $default reduce using rule 197 (Type) + $default reduce using rule 199 (Type) State 116 - 198 Type: FixedSizedType • + 200 Type: FixedSizedType • - $default reduce using rule 198 (Type) + $default reduce using rule 200 (Type) State 117 - 52 ImplementationDefinition: "implements" IdentifierPath • "for" Type "=" "{" ImplementationDefinitionDefinitions "}" - 199 BasicType: IdentifierPath • - 202 TemplateType: IdentifierPath • "<" Types ">" - 203 RelationType: IdentifierPath • "<" MaybeFunctionParameters "->" Type ">" - 204 FixedSizedType: IdentifierPath • "'" Term - 222 IdentifierPath: IdentifierPath • "::" Identifier + 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 "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 199 (BasicType) + $default reduce using rule 201 (BasicType) State 118 - 33 FunctionDefinition: "function" Identifier • ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 35 FunctionDefinition: "function" Identifier • ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially ":" shift, and go to state 197 @@ -2389,39 +2395,39 @@ State 120 State 121 - 225 Variable: Identifier • - 230 TypedVariable: Identifier • ":" Type + 227 Variable: Identifier • + 232 TypedVariable: Identifier • ":" Type ":" shift, and go to state 198 - $default reduce using rule 225 (Variable) + $default reduce using rule 227 (Variable) State 122 - 232 AttributedVariable: Variable • + 234 AttributedVariable: Variable • - $default reduce using rule 232 (AttributedVariable) + $default reduce using rule 234 (AttributedVariable) State 123 - 224 Variable: TypedVariable • + 226 Variable: TypedVariable • - $default reduce using rule 224 (Variable) + $default reduce using rule 226 (Variable) State 124 - 237 VariableBinding: AttributedVariable • "=" Term + 239 VariableBinding: AttributedVariable • "=" Term "=" shift, and go to state 199 State 125 - 154 LetExpression: "let" VariableBindings • "in" Term - 235 VariableBindings: VariableBindings • "," VariableBinding + 156 LetExpression: "let" VariableBindings • "in" Term + 237 VariableBindings: VariableBindings • "," VariableBinding "in" shift, and go to state 200 "," shift, and go to state 201 @@ -2429,15 +2435,15 @@ State 125 State 126 - 236 VariableBindings: VariableBinding • + 238 VariableBindings: VariableBinding • - $default reduce using rule 236 (VariableBindings) + $default reduce using rule 238 (VariableBindings) State 127 - 231 AttributedVariable: Attributes • Variable - 244 Attributes: Attributes • Attribute + 233 AttributedVariable: Attributes • Variable + 246 Attributes: Attributes • Attribute "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -2451,8 +2457,8 @@ State 127 State 128 - 157 UniversalQuantifierExpression: "forall" AttributedVariables • "in" Term "holds" Term - 226 AttributedVariables: AttributedVariables • "," AttributedVariable + 159 UniversalQuantifierExpression: "forall" AttributedVariables • "in" Term "holds" Term + 228 AttributedVariables: AttributedVariables • "," AttributedVariable "in" shift, and go to state 203 "," shift, and go to state 204 @@ -2460,15 +2466,15 @@ State 128 State 129 - 227 AttributedVariables: AttributedVariable • + 229 AttributedVariables: AttributedVariable • - $default reduce using rule 227 (AttributedVariables) + $default reduce using rule 229 (AttributedVariables) State 130 - 156 ChooseExpression: "choose" AttributedVariables • "in" Term "do" Term - 226 AttributedVariables: AttributedVariables • "," AttributedVariable + 158 ChooseExpression: "choose" AttributedVariables • "in" Term "do" Term + 228 AttributedVariables: AttributedVariables • "," AttributedVariable "in" shift, and go to state 205 "," shift, and go to state 204 @@ -2476,24 +2482,24 @@ State 130 State 131 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 155 ConditionalExpression: "if" Term • "then" Term "else" 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 + 157 ConditionalExpression: "if" Term • "then" Term "else" Term "then" shift, and go to state 206 "and" shift, and go to state 148 @@ -2517,8 +2523,8 @@ State 131 State 132 - 158 ExistentialQuantifierExpression: "exists" AttributedVariables • "in" Term "with" Term - 226 AttributedVariables: AttributedVariables • "," AttributedVariable + 160 ExistentialQuantifierExpression: "exists" AttributedVariables • "in" Term "with" Term + 228 AttributedVariables: AttributedVariables • "," AttributedVariable "in" shift, and go to state 207 "," shift, and go to state 204 @@ -2526,88 +2532,88 @@ State 132 State 133 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 137 | "not" Term • - - $default reduce using rule 137 (OperatorExpression) + 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) State 134 - 118 SimpleOrClaspedTerm: "+" SimpleOrClaspedTerm • - 145 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 146 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 147 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 148 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 149 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral + 120 SimpleOrClaspedTerm: "+" SimpleOrClaspedTerm • + 147 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier + 148 | SimpleOrClaspedTerm • "." Identifier "(" ")" + 149 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" + 150 | SimpleOrClaspedTerm • "." Identifier "(" error ")" + 151 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral - $default reduce using rule 118 (SimpleOrClaspedTerm) + $default reduce using rule 120 (SimpleOrClaspedTerm) State 135 - 119 SimpleOrClaspedTerm: "-" SimpleOrClaspedTerm • - 145 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 146 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 147 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 148 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 149 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral + 121 SimpleOrClaspedTerm: "-" SimpleOrClaspedTerm • + 147 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier + 148 | SimpleOrClaspedTerm • "." Identifier "(" ")" + 149 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" + 150 | SimpleOrClaspedTerm • "." Identifier "(" error ")" + 151 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral - $default reduce using rule 119 (SimpleOrClaspedTerm) + $default reduce using rule 121 (SimpleOrClaspedTerm) State 136 - 114 SimpleOrClaspedTerm: "(" error • ")" + 116 SimpleOrClaspedTerm: "(" error • ")" ")" shift, and go to state 208 State 137 - 102 Terms: Terms • "," Term - 186 TupleLiteral: "(" Terms • "," Term ")" + 104 Terms: Terms • "," Term + 188 TupleLiteral: "(" Terms • "," Term ")" "," shift, and go to state 209 State 138 - 103 Terms: Term • - 113 SimpleOrClaspedTerm: "(" Term • ")" - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -2628,13 +2634,13 @@ State 138 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 103 (Terms) + $default reduce using rule 105 (Terms) State 139 - 187 RecordLiteral: "(" Assignments • ")" - 188 Assignments: Assignments • "," Assignment + 189 RecordLiteral: "(" Assignments • ")" + 190 Assignments: Assignments • "," Assignment ")" shift, and go to state 211 "," shift, and go to state 212 @@ -2642,39 +2648,39 @@ State 139 State 140 - 189 Assignments: Assignment • + 191 Assignments: Assignment • - $default reduce using rule 189 (Assignments) + $default reduce using rule 191 (Assignments) State 141 - 190 Assignment: Identifier • ":" Term - 223 IdentifierPath: Identifier • + 192 Assignment: Identifier • ":" Term + 225 IdentifierPath: Identifier • ":" shift, and go to state 213 - $default reduce using rule 223 (IdentifierPath) + $default reduce using rule 225 (IdentifierPath) State 142 - 184 ListLiteral: "[" error • "]" + 186 ListLiteral: "[" error • "]" "]" shift, and go to state 214 State 143 - 182 ListLiteral: "[" "]" • + 184 ListLiteral: "[" "]" • - $default reduce using rule 182 (ListLiteral) + $default reduce using rule 184 (ListLiteral) State 144 - 102 Terms: Terms • "," Term - 183 ListLiteral: "[" Terms • "]" + 104 Terms: Terms • "," Term + 185 ListLiteral: "[" Terms • "]" "]" shift, and go to state 215 "," shift, and go to state 216 @@ -2682,25 +2688,25 @@ State 144 State 145 - 103 Terms: Term • - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 185 RangeLiteral: "[" Term • ".." Term "]" + 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 "]" "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -2721,17 +2727,17 @@ State 145 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 103 (Terms) + $default reduce using rule 105 (Terms) State 146 - 145 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 146 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 147 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 148 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 149 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral - 159 CardinalityExpression: "|" SimpleOrClaspedTerm • "|" + 147 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier + 148 | SimpleOrClaspedTerm • "." Identifier "(" ")" + 149 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" + 150 | SimpleOrClaspedTerm • "." Identifier "(" error ")" + 151 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral + 161 CardinalityExpression: "|" SimpleOrClaspedTerm • "|" "|" shift, and go to state 218 "." shift, and go to state 166 @@ -2739,17 +2745,17 @@ State 146 State 147 - 181 ReferenceLiteral: "@" IdentifierPath • - 222 IdentifierPath: IdentifierPath • "::" Identifier + 183 ReferenceLiteral: "@" IdentifierPath • + 224 IdentifierPath: IdentifierPath • "::" Identifier "::" shift, and go to state 169 - $default reduce using rule 181 (ReferenceLiteral) + $default reduce using rule 183 (ReferenceLiteral) State 148 - 134 OperatorExpression: Term "and" • Term + 136 OperatorExpression: Term "and" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -2809,7 +2815,7 @@ State 148 State 149 - 132 OperatorExpression: Term "or" • Term + 134 OperatorExpression: Term "or" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -2869,7 +2875,7 @@ State 149 State 150 - 133 OperatorExpression: Term "xor" • Term + 135 OperatorExpression: Term "xor" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -2929,7 +2935,7 @@ State 150 State 151 - 136 OperatorExpression: Term "implies" • Term + 138 OperatorExpression: Term "implies" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -2989,7 +2995,7 @@ State 151 State 152 - 120 OperatorExpression: Term "+" • Term + 122 OperatorExpression: Term "+" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3049,7 +3055,7 @@ State 152 State 153 - 121 OperatorExpression: Term "-" • Term + 123 OperatorExpression: Term "-" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3109,7 +3115,7 @@ State 153 State 154 - 127 OperatorExpression: Term "=" • Term + 129 OperatorExpression: Term "=" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3169,7 +3175,7 @@ State 154 State 155 - 128 OperatorExpression: Term "<" • Term + 130 OperatorExpression: Term "<" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3229,7 +3235,7 @@ State 155 State 156 - 129 OperatorExpression: Term ">" • Term + 131 OperatorExpression: Term ">" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3289,7 +3295,7 @@ State 156 State 157 - 122 OperatorExpression: Term "*" • Term + 124 OperatorExpression: Term "*" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3349,7 +3355,7 @@ State 157 State 158 - 123 OperatorExpression: Term "/" • Term + 125 OperatorExpression: Term "/" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3409,7 +3415,7 @@ State 158 State 159 - 124 OperatorExpression: Term "%" • Term + 126 OperatorExpression: Term "%" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3469,7 +3475,7 @@ State 159 State 160 - 125 OperatorExpression: Term "^" • Term + 127 OperatorExpression: Term "^" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3529,7 +3535,7 @@ State 160 State 161 - 135 OperatorExpression: Term "=>" • Term + 137 OperatorExpression: Term "=>" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3589,7 +3595,7 @@ State 161 State 162 - 126 OperatorExpression: Term "!=" • Term + 128 OperatorExpression: Term "!=" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3649,7 +3655,7 @@ State 162 State 163 - 130 OperatorExpression: Term "<=" • Term + 132 OperatorExpression: Term "<=" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3709,7 +3715,7 @@ State 163 State 164 - 131 OperatorExpression: Term ">=" • Term + 133 OperatorExpression: Term ">=" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -3769,7 +3775,7 @@ State 164 State 165 - 153 TypeCastingExpression: SimpleOrClaspedTerm "as" • Type + 155 TypeCastingExpression: SimpleOrClaspedTerm "as" • Type "in" shift, and go to state 8 "(" shift, and go to state 109 @@ -3788,11 +3794,11 @@ State 165 State 166 - 145 MethodCallExpression: SimpleOrClaspedTerm "." • Identifier - 146 | SimpleOrClaspedTerm "." • Identifier "(" ")" - 147 | SimpleOrClaspedTerm "." • Identifier "(" Terms ")" - 148 | SimpleOrClaspedTerm "." • Identifier "(" error ")" - 149 LiteralCallExpression: SimpleOrClaspedTerm "." • IntegerLiteral + 147 MethodCallExpression: SimpleOrClaspedTerm "." • Identifier + 148 | SimpleOrClaspedTerm "." • Identifier "(" ")" + 149 | SimpleOrClaspedTerm "." • Identifier "(" Terms ")" + 150 | SimpleOrClaspedTerm "." • Identifier "(" error ")" + 151 LiteralCallExpression: SimpleOrClaspedTerm "." • IntegerLiteral "in" shift, and go to state 8 "integer" shift, and go to state 62 @@ -3804,9 +3810,9 @@ State 166 State 167 - 150 IndirectCallExpression: CallExpression "(" • ")" - 151 | CallExpression "(" • Terms ")" - 152 | CallExpression "(" • error ")" + 152 IndirectCallExpression: CallExpression "(" • ")" + 153 | CallExpression "(" • Terms ")" + 154 | CallExpression "(" • error ")" error shift, and go to state 239 "let" shift, and go to state 45 @@ -3869,9 +3875,9 @@ State 167 State 168 - 142 DirectCallExpression: IdentifierPath "(" • ")" - 143 | IdentifierPath "(" • Terms ")" - 144 | IdentifierPath "(" • error ")" + 144 DirectCallExpression: IdentifierPath "(" • ")" + 145 | IdentifierPath "(" • Terms ")" + 146 | IdentifierPath "(" • error ")" error shift, and go to state 243 "let" shift, and go to state 45 @@ -3934,7 +3940,7 @@ State 168 State 169 - 222 IdentifierPath: IdentifierPath "::" • Identifier + 224 IdentifierPath: IdentifierPath "::" • Identifier "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -3944,11 +3950,11 @@ State 169 State 170 - 113 SimpleOrClaspedTerm: "(" • Term ")" - 114 | "(" • error ")" - 186 TupleLiteral: "(" • Terms "," Term ")" - 187 RecordLiteral: "(" • Assignments ")" - 218 Initializer: "(" • Term ")" "->" Term + 115 SimpleOrClaspedTerm: "(" • Term ")" + 116 | "(" • error ")" + 188 TupleLiteral: "(" • Terms "," Term ")" + 189 RecordLiteral: "(" • Assignments ")" + 220 Initializer: "(" • Term ")" "->" Term error shift, and go to state 136 "let" shift, and go to state 45 @@ -4012,24 +4018,24 @@ State 170 State 171 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 217 Initializer: 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 + 219 Initializer: Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -4049,23 +4055,23 @@ State 171 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 217 (Initializer) + $default reduce using rule 219 (Initializer) State 172 - 170 Literal: TupleLiteral • - 219 Initializer: TupleLiteral • "->" Term + 172 Literal: TupleLiteral • + 221 Initializer: TupleLiteral • "->" Term "->" shift, and go to state 248 - $default reduce using rule 170 (Literal) + $default reduce using rule 172 (Literal) State 173 22 InitDefinition: "init" "{" Initializers • "}" - 215 Initializers: Initializers • "," Initializer + 217 Initializers: Initializers • "," Initializer "}" shift, and go to state 249 "," shift, and go to state 250 @@ -4073,9 +4079,9 @@ State 173 State 174 - 216 Initializers: Initializer • + 218 Initializers: Initializer • - $default reduce using rule 216 (Initializers) + $default reduce using rule 218 (Initializers) State 175 @@ -4234,7 +4240,7 @@ State 180 State 181 - 39 UsingDefinition: "using" Identifier "=" • Type + 41 UsingDefinition: "using" Identifier "=" • Type "in" shift, and go to state 8 "(" shift, and go to state 109 @@ -4253,8 +4259,8 @@ State 181 State 182 - 41 UsingPathDefinition: "using" IdentifierPath "::" • "*" - 222 IdentifierPath: IdentifierPath "::" • Identifier + 43 UsingPathDefinition: "using" IdentifierPath "::" • "*" + 224 IdentifierPath: IdentifierPath "::" • Identifier "in" shift, and go to state 8 "*" shift, and go to state 293 @@ -4265,7 +4271,7 @@ State 182 State 183 - 42 InvariantDefinition: "invariant" Identifier "=" • Term + 44 InvariantDefinition: "invariant" Identifier "=" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4325,7 +4331,7 @@ State 183 State 184 - 44 ImportDefinition: "import" IdentifierPath "as" • Identifier + 46 ImportDefinition: "import" IdentifierPath "as" • Identifier "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -4335,83 +4341,83 @@ State 184 State 185 - 45 StructureDefinition: "structure" Identifier "=" • "{" FunctionDefinition "}" + 47 StructureDefinition: "structure" Identifier "=" • "{" FunctionDefinitions "}" "{" shift, and go to state 296 State 186 - 46 FeatureDefinition: "feature" Identifier "=" • "{" FeatureDeclarationsAndDefinitions "}" + 48 FeatureDefinition: "feature" Identifier "=" • "{" FeatureDeclarationsAndDefinitions "}" "{" shift, and go to state 297 State 187 - 191 Types: Types • "," Type - 200 TupleType: "(" Types • "," Type ")" + 193 Types: Types • "," Type + 202 TupleType: "(" Types • "," Type ")" "," shift, and go to state 298 State 188 - 192 Types: Type • + 194 Types: Type • - $default reduce using rule 192 (Types) + $default reduce using rule 194 (Types) State 189 - 223 IdentifierPath: Identifier • - 230 TypedVariable: Identifier • ":" Type + 225 IdentifierPath: Identifier • + 232 TypedVariable: Identifier • ":" Type ":" shift, and go to state 198 - $default reduce using rule 223 (IdentifierPath) + $default reduce using rule 225 (IdentifierPath) State 190 - 199 BasicType: IdentifierPath • - 202 TemplateType: IdentifierPath • "<" Types ">" - 203 RelationType: IdentifierPath • "<" MaybeFunctionParameters "->" Type ">" - 204 FixedSizedType: IdentifierPath • "'" Term - 222 IdentifierPath: IdentifierPath • "::" Identifier + 201 BasicType: IdentifierPath • + 204 TemplateType: IdentifierPath • "<" Types ">" + 205 RelationType: IdentifierPath • "<" MaybeFunctionParameters "->" Type ">" + 206 FixedSizedType: IdentifierPath • "'" Term + 224 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 199 (BasicType) + $default reduce using rule 201 (BasicType) State 191 - 201 RecordType: "(" TypedVariables • "," TypedVariable ")" - 228 TypedVariables: TypedVariables • "," TypedVariable + 203 RecordType: "(" TypedVariables • "," TypedVariable ")" + 230 TypedVariables: TypedVariables • "," TypedVariable "," shift, and go to state 299 State 192 - 229 TypedVariables: TypedVariable • + 231 TypedVariables: TypedVariable • - $default reduce using rule 229 (TypedVariables) + $default reduce using rule 231 (TypedVariables) State 193 - 53 ImplementationDefinition: "implements" Type "=" • "{" ImplementationDefinitionDefinitions "}" + 55 ImplementationDefinition: "implements" Type "=" • "{" ImplementationDefinitionDefinitions "}" "{" shift, and go to state 300 State 194 - 52 ImplementationDefinition: "implements" IdentifierPath "for" • Type "=" "{" ImplementationDefinitionDefinitions "}" + 54 ImplementationDefinition: "implements" IdentifierPath "for" • Type "=" "{" ImplementationDefinitionDefinitions "}" "in" shift, and go to state 8 "(" shift, and go to state 109 @@ -4430,14 +4436,14 @@ State 194 State 195 - 202 TemplateType: IdentifierPath "<" • Types ">" - 203 RelationType: IdentifierPath "<" • MaybeFunctionParameters "->" Type ">" + 204 TemplateType: IdentifierPath "<" • Types ">" + 205 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 208 (MaybeFunctionParameters) + $default reduce using rule 210 (MaybeFunctionParameters) Types go to state 302 Type go to state 303 @@ -4455,7 +4461,7 @@ State 195 State 196 - 204 FixedSizedType: IdentifierPath "'" • Term + 206 FixedSizedType: IdentifierPath "'" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4515,13 +4521,13 @@ State 196 State 197 - 33 FunctionDefinition: "function" Identifier ":" • MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 35 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 208 (MaybeFunctionParameters) + $default reduce using rule 210 (MaybeFunctionParameters) Type go to state 307 BasicType go to state 111 @@ -4538,7 +4544,7 @@ State 197 State 198 - 230 TypedVariable: Identifier ":" • Type + 232 TypedVariable: Identifier ":" • Type "in" shift, and go to state 8 "(" shift, and go to state 109 @@ -4557,7 +4563,7 @@ State 198 State 199 - 237 VariableBinding: AttributedVariable "=" • Term + 239 VariableBinding: AttributedVariable "=" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4617,7 +4623,7 @@ State 199 State 200 - 154 LetExpression: "let" VariableBindings "in" • Term + 156 LetExpression: "let" VariableBindings "in" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4677,7 +4683,7 @@ State 200 State 201 - 235 VariableBindings: VariableBindings "," • VariableBinding + 237 VariableBindings: VariableBindings "," • VariableBinding "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -4694,14 +4700,14 @@ State 201 State 202 - 231 AttributedVariable: Attributes Variable • + 233 AttributedVariable: Attributes Variable • - $default reduce using rule 231 (AttributedVariable) + $default reduce using rule 233 (AttributedVariable) State 203 - 157 UniversalQuantifierExpression: "forall" AttributedVariables "in" • Term "holds" Term + 159 UniversalQuantifierExpression: "forall" AttributedVariables "in" • Term "holds" Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4761,7 +4767,7 @@ State 203 State 204 - 226 AttributedVariables: AttributedVariables "," • AttributedVariable + 228 AttributedVariables: AttributedVariables "," • AttributedVariable "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -4777,7 +4783,7 @@ State 204 State 205 - 156 ChooseExpression: "choose" AttributedVariables "in" • Term "do" Term + 158 ChooseExpression: "choose" AttributedVariables "in" • Term "do" Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4837,7 +4843,7 @@ State 205 State 206 - 155 ConditionalExpression: "if" Term "then" • Term "else" Term + 157 ConditionalExpression: "if" Term "then" • Term "else" Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4897,7 +4903,7 @@ State 206 State 207 - 158 ExistentialQuantifierExpression: "exists" AttributedVariables "in" • Term "with" Term + 160 ExistentialQuantifierExpression: "exists" AttributedVariables "in" • Term "with" Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -4957,15 +4963,15 @@ State 207 State 208 - 114 SimpleOrClaspedTerm: "(" error ")" • + 116 SimpleOrClaspedTerm: "(" error ")" • - $default reduce using rule 114 (SimpleOrClaspedTerm) + $default reduce using rule 116 (SimpleOrClaspedTerm) State 209 - 102 Terms: Terms "," • Term - 186 TupleLiteral: "(" Terms "," • Term ")" + 104 Terms: Terms "," • Term + 188 TupleLiteral: "(" Terms "," • Term ")" "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -5025,21 +5031,21 @@ State 209 State 210 - 113 SimpleOrClaspedTerm: "(" Term ")" • + 115 SimpleOrClaspedTerm: "(" Term ")" • - $default reduce using rule 113 (SimpleOrClaspedTerm) + $default reduce using rule 115 (SimpleOrClaspedTerm) State 211 - 187 RecordLiteral: "(" Assignments ")" • + 189 RecordLiteral: "(" Assignments ")" • - $default reduce using rule 187 (RecordLiteral) + $default reduce using rule 189 (RecordLiteral) State 212 - 188 Assignments: Assignments "," • Assignment + 190 Assignments: Assignments "," • Assignment "in" shift, and go to state 8 "identifier" shift, and go to state 9 @@ -5050,7 +5056,7 @@ State 212 State 213 - 190 Assignment: Identifier ":" • Term + 192 Assignment: Identifier ":" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -5110,21 +5116,21 @@ State 213 State 214 - 184 ListLiteral: "[" error "]" • + 186 ListLiteral: "[" error "]" • - $default reduce using rule 184 (ListLiteral) + $default reduce using rule 186 (ListLiteral) State 215 - 183 ListLiteral: "[" Terms "]" • + 185 ListLiteral: "[" Terms "]" • - $default reduce using rule 183 (ListLiteral) + $default reduce using rule 185 (ListLiteral) State 216 - 102 Terms: Terms "," • Term + 104 Terms: Terms "," • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -5184,7 +5190,7 @@ State 216 State 217 - 185 RangeLiteral: "[" Term ".." • Term "]" + 187 RangeLiteral: "[" Term ".." • Term "]" "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -5244,31 +5250,31 @@ State 217 State 218 - 159 CardinalityExpression: "|" SimpleOrClaspedTerm "|" • + 161 CardinalityExpression: "|" SimpleOrClaspedTerm "|" • - $default reduce using rule 159 (CardinalityExpression) + $default reduce using rule 161 (CardinalityExpression) State 219 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 134 | Term "and" Term • - 135 | Term • "=>" Term - 136 | Term • "implies" 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 + 136 | Term "and" Term • + 137 | Term • "=>" Term + 138 | Term • "implies" Term "+" shift, and go to state 152 "-" shift, and go to state 153 @@ -5283,29 +5289,29 @@ State 219 "<=" 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 220 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 132 | Term "or" Term • - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" 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 + 134 | Term "or" Term • + 135 | Term • "xor" Term + 136 | Term • "and" Term + 137 | Term • "=>" Term + 138 | Term • "implies" Term "and" shift, and go to state 148 "xor" shift, and go to state 150 @@ -5322,29 +5328,29 @@ State 220 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 132 (OperatorExpression) + $default reduce using rule 134 (OperatorExpression) State 221 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 133 | Term "xor" Term • - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" 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 + 135 | Term "xor" Term • + 136 | Term • "and" Term + 137 | Term • "=>" Term + 138 | Term • "implies" Term "and" shift, and go to state 148 "+" shift, and go to state 152 @@ -5360,29 +5366,29 @@ State 221 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 133 (OperatorExpression) + $default reduce using rule 135 (OperatorExpression) State 222 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 136 | Term "implies" 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 + 138 | Term "implies" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -5400,87 +5406,87 @@ State 222 "<=" 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 223 - 120 OperatorExpression: Term • "+" Term - 120 | Term "+" Term • - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term + 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 "*" 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 120 (OperatorExpression) + $default reduce using rule 122 (OperatorExpression) State 224 - 120 OperatorExpression: Term • "+" Term - 121 | Term • "-" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term + 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 "*" 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 121 (OperatorExpression) + $default reduce using rule 123 (OperatorExpression) State 225 - 120 OperatorExpression: Term • "+" Term - 121 | Term • "-" Term - 122 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" 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 + 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 "+" shift, and go to state 152 "-" shift, and go to state 153 @@ -5493,29 +5499,29 @@ State 225 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 127 (OperatorExpression) + $default reduce using rule 129 (OperatorExpression) State 226 - 120 OperatorExpression: Term • "+" Term - 121 | Term • "-" Term - 122 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" 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 + 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 "+" shift, and go to state 152 "-" shift, and go to state 153 @@ -5524,29 +5530,29 @@ State 226 "%" shift, and go to state 159 "^" shift, and go to state 160 - $default reduce using rule 128 (OperatorExpression) + $default reduce using rule 130 (OperatorExpression) State 227 - 120 OperatorExpression: Term • "+" Term - 121 | 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 - 129 | Term ">" Term • - 130 | Term • "<=" Term - 131 | Term • ">=" Term - 132 | Term • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" 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 + 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 "+" shift, and go to state 152 "-" shift, and go to state 153 @@ -5555,131 +5561,131 @@ State 227 "%" shift, and go to state 159 "^" shift, and go to state 160 - $default reduce using rule 129 (OperatorExpression) + $default reduce using rule 131 (OperatorExpression) State 228 - 120 OperatorExpression: Term • "+" Term - 121 | Term • "-" Term - 122 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term + 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 "^" shift, and go to state 160 - $default reduce using rule 122 (OperatorExpression) + $default reduce using rule 124 (OperatorExpression) State 229 - 120 OperatorExpression: Term • "+" Term - 121 | Term • "-" Term - 122 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term + 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 "^" shift, and go to state 160 - $default reduce using rule 123 (OperatorExpression) + $default reduce using rule 125 (OperatorExpression) State 230 - 120 OperatorExpression: Term • "+" Term - 121 | Term • "-" Term - 122 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term + 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 "^" shift, and go to state 160 - $default reduce using rule 124 (OperatorExpression) + $default reduce using rule 126 (OperatorExpression) State 231 - 120 OperatorExpression: Term • "+" Term - 121 | Term • "-" Term - 122 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term + 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 - $default reduce using rule 125 (OperatorExpression) + $default reduce using rule 127 (OperatorExpression) State 232 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 135 | Term "=>" Term • - 136 | Term • "implies" 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 + 137 | Term "=>" Term • + 138 | Term • "implies" Term "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -5697,29 +5703,29 @@ State 232 "<=" 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 233 - 120 OperatorExpression: Term • "+" Term - 121 | Term • "-" Term - 122 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term + 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 "+" shift, and go to state 152 "-" shift, and go to state 153 @@ -5732,29 +5738,29 @@ State 233 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 126 (OperatorExpression) + $default reduce using rule 128 (OperatorExpression) State 234 - 120 OperatorExpression: Term • "+" Term - 121 | 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 - 130 | Term "<=" Term • - 131 | Term • ">=" Term - 132 | Term • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" 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 + 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 "+" shift, and go to state 152 "-" shift, and go to state 153 @@ -5763,29 +5769,29 @@ State 234 "%" 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 235 - 120 OperatorExpression: Term • "+" Term - 121 | 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 - 131 | Term ">=" Term • - 132 | Term • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" 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 + 133 | Term ">=" Term • + 134 | Term • "or" Term + 135 | Term • "xor" Term + 136 | Term • "and" Term + 137 | Term • "=>" Term + 138 | Term • "implies" Term "+" shift, and go to state 152 "-" shift, and go to state 153 @@ -5794,53 +5800,53 @@ State 235 "%" 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 236 - 153 TypeCastingExpression: SimpleOrClaspedTerm "as" Type • + 155 TypeCastingExpression: SimpleOrClaspedTerm "as" Type • - $default reduce using rule 153 (TypeCastingExpression) + $default reduce using rule 155 (TypeCastingExpression) State 237 - 149 LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral • + 151 LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral • - $default reduce using rule 149 (LiteralCallExpression) + $default reduce using rule 151 (LiteralCallExpression) State 238 - 145 MethodCallExpression: SimpleOrClaspedTerm "." Identifier • - 146 | SimpleOrClaspedTerm "." Identifier • "(" ")" - 147 | SimpleOrClaspedTerm "." Identifier • "(" Terms ")" - 148 | SimpleOrClaspedTerm "." Identifier • "(" error ")" + 147 MethodCallExpression: SimpleOrClaspedTerm "." Identifier • + 148 | SimpleOrClaspedTerm "." Identifier • "(" ")" + 149 | SimpleOrClaspedTerm "." Identifier • "(" Terms ")" + 150 | SimpleOrClaspedTerm "." Identifier • "(" error ")" "(" shift, and go to state 324 - $default reduce using rule 145 (MethodCallExpression) + $default reduce using rule 147 (MethodCallExpression) State 239 - 152 IndirectCallExpression: CallExpression "(" error • ")" + 154 IndirectCallExpression: CallExpression "(" error • ")" ")" shift, and go to state 325 State 240 - 150 IndirectCallExpression: CallExpression "(" ")" • + 152 IndirectCallExpression: CallExpression "(" ")" • - $default reduce using rule 150 (IndirectCallExpression) + $default reduce using rule 152 (IndirectCallExpression) State 241 - 102 Terms: Terms • "," Term - 151 IndirectCallExpression: CallExpression "(" Terms • ")" + 104 Terms: Terms • "," Term + 153 IndirectCallExpression: CallExpression "(" Terms • ")" ")" shift, and go to state 326 "," shift, and go to state 216 @@ -5848,24 +5854,24 @@ State 241 State 242 - 103 Terms: Term • - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -5885,27 +5891,27 @@ State 242 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 103 (Terms) + $default reduce using rule 105 (Terms) State 243 - 144 DirectCallExpression: IdentifierPath "(" error • ")" + 146 DirectCallExpression: IdentifierPath "(" error • ")" ")" shift, and go to state 327 State 244 - 142 DirectCallExpression: IdentifierPath "(" ")" • + 144 DirectCallExpression: IdentifierPath "(" ")" • - $default reduce using rule 142 (DirectCallExpression) + $default reduce using rule 144 (DirectCallExpression) State 245 - 102 Terms: Terms • "," Term - 143 DirectCallExpression: IdentifierPath "(" Terms • ")" + 104 Terms: Terms • "," Term + 145 DirectCallExpression: IdentifierPath "(" Terms • ")" ")" shift, and go to state 328 "," shift, and go to state 216 @@ -5913,33 +5919,33 @@ State 245 State 246 - 222 IdentifierPath: IdentifierPath "::" Identifier • + 224 IdentifierPath: IdentifierPath "::" Identifier • - $default reduce using rule 222 (IdentifierPath) + $default reduce using rule 224 (IdentifierPath) State 247 - 103 Terms: Term • - 113 SimpleOrClaspedTerm: "(" Term • ")" - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 218 Initializer: "(" Term • ")" "->" Term + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -5960,12 +5966,12 @@ State 247 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 103 (Terms) + $default reduce using rule 105 (Terms) State 248 - 219 Initializer: TupleLiteral "->" • Term + 221 Initializer: TupleLiteral "->" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -6032,7 +6038,7 @@ State 249 State 250 - 215 Initializers: Initializers "," • Initializer + 217 Initializers: Initializers "," • Initializer "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -6101,7 +6107,7 @@ State 251 State 252 25 DerivedDefinition: "derived" Identifier "(" Parameters • ")" "->" Type "=" Term - 209 Parameters: Parameters • "," TypedAttributedVariable + 211 Parameters: Parameters • "," TypedAttributedVariable ")" shift, and go to state 333 "," shift, and go to state 334 @@ -6109,29 +6115,29 @@ State 252 State 253 - 230 TypedVariable: Identifier • ":" Type + 232 TypedVariable: Identifier • ":" Type ":" shift, and go to state 198 State 254 - 234 TypedAttributedVariable: TypedVariable • + 236 TypedAttributedVariable: TypedVariable • - $default reduce using rule 234 (TypedAttributedVariable) + $default reduce using rule 236 (TypedAttributedVariable) State 255 - 210 Parameters: TypedAttributedVariable • + 212 Parameters: TypedAttributedVariable • - $default reduce using rule 210 (Parameters) + $default reduce using rule 212 (Parameters) State 256 - 233 TypedAttributedVariable: Attributes • TypedVariable - 244 Attributes: Attributes • Attribute + 235 TypedAttributedVariable: Attributes • TypedVariable + 246 Attributes: Attributes • Attribute "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -6167,8 +6173,8 @@ State 258 State 259 - 96 SequenceRule: "seq" • Rules "endseq" - 98 | "seq" • error "endseq" + 98 SequenceRule: "seq" • Rules "endseq" + 100 | "seq" • error "endseq" error shift, and go to state 342 "seq" shift, and go to state 259 @@ -6241,8 +6247,8 @@ State 259 State 260 - 92 BlockRule: "par" • Rules "endpar" - 94 | "par" • error "endpar" + 94 BlockRule: "par" • Rules "endpar" + 96 | "par" • error "endpar" error shift, and go to state 345 "seq" shift, and go to state 259 @@ -6315,14 +6321,14 @@ State 260 State 261 - 75 SkipRule: "skip" • + 77 SkipRule: "skip" • - $default reduce using rule 75 (SkipRule) + $default reduce using rule 77 (SkipRule) State 262 - 85 LetRule: "let" • VariableBindings "in" Rule + 87 LetRule: "let" • VariableBindings "in" Rule "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -6340,7 +6346,7 @@ State 262 State 263 - 86 LocalRule: "local" • LocalFunctionDefinitions "in" Rule + 88 LocalRule: "local" • LocalFunctionDefinitions "in" Rule error shift, and go to state 348 "in" shift, and go to state 8 @@ -6357,8 +6363,8 @@ State 263 State 264 - 87 ForallRule: "forall" • AttributedVariables "in" Term "do" Rule - 88 | "forall" • AttributedVariables "in" Term "with" Term "do" Rule + 89 ForallRule: "forall" • AttributedVariables "in" Term "do" Rule + 90 | "forall" • AttributedVariables "in" Term "with" Term "do" Rule "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -6375,7 +6381,7 @@ State 264 State 265 - 89 ChooseRule: "choose" • AttributedVariables "in" Term "do" Rule + 91 ChooseRule: "choose" • AttributedVariables "in" Term "do" Rule "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -6392,7 +6398,7 @@ State 265 State 266 - 90 IterateRule: "iterate" • Rule + 92 IterateRule: "iterate" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -6463,8 +6469,8 @@ State 266 State 267 - 76 ConditionalRule: "if" • Term "then" Rule - 77 | "if" • Term "then" Rule "else" Rule + 78 ConditionalRule: "if" • Term "then" Rule + 79 | "if" • Term "then" Rule "else" Rule "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -6524,8 +6530,8 @@ State 267 State 268 - 78 CaseRule: "case" • Term "of" "{" CaseLabels "}" - 79 | "case" • Term "of" "{" error "}" + 80 CaseRule: "case" • Term "of" "{" CaseLabels "}" + 81 | "case" • Term "of" "{" error "}" "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -6585,7 +6591,7 @@ State 268 State 269 - 101 WhileRule: "while" • Term "do" Rule + 103 WhileRule: "while" • Term "do" Rule "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -6645,8 +6651,8 @@ State 269 State 270 - 91 BlockRule: "{" • Rules "}" - 93 | "{" • error "}" + 93 BlockRule: "{" • Rules "}" + 95 | "{" • error "}" error shift, and go to state 360 "seq" shift, and go to state 259 @@ -6719,8 +6725,8 @@ State 270 State 271 - 95 SequenceRule: "{|" • Rules "|}" - 97 | "{|" • error "|}" + 97 SequenceRule: "{|" • Rules "|}" + 99 | "{|" • error "|}" error shift, and go to state 362 "seq" shift, and go to state 259 @@ -6800,128 +6806,128 @@ State 272 State 273 - 62 Rule: SkipRule • + 64 Rule: SkipRule • - $default reduce using rule 62 (Rule) + $default reduce using rule 64 (Rule) State 274 - 63 Rule: ConditionalRule • + 65 Rule: ConditionalRule • - $default reduce using rule 63 (Rule) + $default reduce using rule 65 (Rule) State 275 - 64 Rule: CaseRule • + 66 Rule: CaseRule • - $default reduce using rule 64 (Rule) + $default reduce using rule 66 (Rule) State 276 - 65 Rule: LetRule • + 67 Rule: LetRule • - $default reduce using rule 65 (Rule) + $default reduce using rule 67 (Rule) State 277 - 66 Rule: LocalRule • + 68 Rule: LocalRule • - $default reduce using rule 66 (Rule) + $default reduce using rule 68 (Rule) State 278 - 67 Rule: ForallRule • + 69 Rule: ForallRule • - $default reduce using rule 67 (Rule) + $default reduce using rule 69 (Rule) State 279 - 68 Rule: ChooseRule • + 70 Rule: ChooseRule • - $default reduce using rule 68 (Rule) + $default reduce using rule 70 (Rule) State 280 - 69 Rule: IterateRule • + 71 Rule: IterateRule • - $default reduce using rule 69 (Rule) + $default reduce using rule 71 (Rule) State 281 - 70 Rule: BlockRule • + 72 Rule: BlockRule • - $default reduce using rule 70 (Rule) + $default reduce using rule 72 (Rule) State 282 - 71 Rule: SequenceRule • + 73 Rule: SequenceRule • - $default reduce using rule 71 (Rule) + $default reduce using rule 73 (Rule) State 283 - 72 Rule: UpdateRule • + 74 Rule: UpdateRule • - $default reduce using rule 72 (Rule) + $default reduce using rule 74 (Rule) State 284 - 73 Rule: CallRule • + 75 Rule: CallRule • - $default reduce using rule 73 (Rule) + $default reduce using rule 75 (Rule) State 285 - 74 Rule: WhileRule • + 76 Rule: WhileRule • - $default reduce using rule 74 (Rule) + $default reduce using rule 76 (Rule) State 286 - 145 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 146 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 147 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 148 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 149 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral + 147 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier + 148 | SimpleOrClaspedTerm • "." Identifier "(" ")" + 149 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" + 150 | SimpleOrClaspedTerm • "." Identifier "(" error ")" + 151 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral "." shift, and go to state 166 State 287 - 100 CallRule: CallExpression • - 115 SimpleOrClaspedTerm: CallExpression • - 150 IndirectCallExpression: CallExpression • "(" ")" - 151 | CallExpression • "(" Terms ")" - 152 | CallExpression • "(" error ")" + 102 CallRule: CallExpression • + 117 SimpleOrClaspedTerm: CallExpression • + 152 IndirectCallExpression: CallExpression • "(" ")" + 153 | CallExpression • "(" Terms ")" + 154 | CallExpression • "(" error ")" "(" shift, and go to state 167 - "." reduce using rule 115 (SimpleOrClaspedTerm) - $default reduce using rule 100 (CallRule) + "." reduce using rule 117 (SimpleOrClaspedTerm) + $default reduce using rule 102 (CallRule) State 288 - 99 UpdateRule: DirectCallExpression • ":=" Term - 138 CallExpression: DirectCallExpression • + 101 UpdateRule: DirectCallExpression • ":=" Term + 140 CallExpression: DirectCallExpression • ":=" shift, and go to state 364 - $default reduce using rule 138 (CallExpression) + $default reduce using rule 140 (CallExpression) State 289 @@ -6936,7 +6942,7 @@ State 290 29 RuleDefinition: "rule" Identifier "(" Parameters • ")" "=" Rule 30 | "rule" Identifier "(" Parameters • ")" "->" Type "=" Rule - 209 Parameters: Parameters • "," TypedAttributedVariable + 211 Parameters: Parameters • "," TypedAttributedVariable ")" shift, and go to state 366 "," shift, and go to state 334 @@ -6951,38 +6957,38 @@ State 291 State 292 - 39 UsingDefinition: "using" Identifier "=" Type • + 41 UsingDefinition: "using" Identifier "=" Type • - $default reduce using rule 39 (UsingDefinition) + $default reduce using rule 41 (UsingDefinition) State 293 - 41 UsingPathDefinition: "using" IdentifierPath "::" "*" • + 43 UsingPathDefinition: "using" IdentifierPath "::" "*" • - $default reduce using rule 41 (UsingPathDefinition) + $default reduce using rule 43 (UsingPathDefinition) State 294 - 42 InvariantDefinition: "invariant" Identifier "=" Term • - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7002,49 +7008,50 @@ State 294 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 42 (InvariantDefinition) + $default reduce using rule 44 (InvariantDefinition) State 295 - 44 ImportDefinition: "import" IdentifierPath "as" Identifier • + 46 ImportDefinition: "import" IdentifierPath "as" Identifier • - $default reduce using rule 44 (ImportDefinition) + $default reduce using rule 46 (ImportDefinition) State 296 - 45 StructureDefinition: "structure" Identifier "=" "{" • FunctionDefinition "}" + 47 StructureDefinition: "structure" Identifier "=" "{" • FunctionDefinitions "}" "function" shift, and go to state 25 - FunctionDefinition go to state 368 + FunctionDefinitions go to state 368 + FunctionDefinition go to state 369 State 297 - 46 FeatureDefinition: "feature" Identifier "=" "{" • FeatureDeclarationsAndDefinitions "}" + 48 FeatureDefinition: "feature" Identifier "=" "{" • FeatureDeclarationsAndDefinitions "}" - "derived" shift, and go to state 369 - "rule" shift, and go to state 370 + "derived" shift, and go to state 370 + "rule" shift, and go to state 371 - DerivedDefinition go to state 371 - RuleDefinition go to state 372 - FeatureDeclarationOrDefinition go to state 373 - FeatureDeclarationsAndDefinitions go to state 374 - DeclarationDefinition go to state 375 + 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 State 298 - 191 Types: Types "," • Type - 200 TupleType: "(" Types "," • Type ")" + 193 Types: Types "," • Type + 202 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 376 + Type go to state 377 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -7057,137 +7064,137 @@ State 298 State 299 - 201 RecordType: "(" TypedVariables "," • TypedVariable ")" - 228 TypedVariables: TypedVariables "," • TypedVariable + 203 RecordType: "(" TypedVariables "," • TypedVariable ")" + 230 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 377 + TypedVariable go to state 378 State 300 - 53 ImplementationDefinition: "implements" Type "=" "{" • ImplementationDefinitionDefinitions "}" + 55 ImplementationDefinition: "implements" Type "=" "{" • ImplementationDefinitionDefinitions "}" "derived" shift, and go to state 16 "rule" shift, and go to state 18 - DerivedDefinition go to state 378 - RuleDefinition go to state 379 - ImplementationDefinitionDefinition go to state 380 - ImplementationDefinitionDefinitions go to state 381 + DerivedDefinition go to state 379 + RuleDefinition go to state 380 + ImplementationDefinitionDefinition go to state 381 + ImplementationDefinitionDefinitions go to state 382 State 301 - 52 ImplementationDefinition: "implements" IdentifierPath "for" Type • "=" "{" ImplementationDefinitionDefinitions "}" + 54 ImplementationDefinition: "implements" IdentifierPath "for" Type • "=" "{" ImplementationDefinitionDefinitions "}" - "=" shift, and go to state 382 + "=" shift, and go to state 383 State 302 - 191 Types: Types • "," Type - 202 TemplateType: IdentifierPath "<" Types • ">" + 193 Types: Types • "," Type + 204 TemplateType: IdentifierPath "<" Types • ">" - "," shift, and go to state 383 - ">" shift, and go to state 384 + "," shift, and go to state 384 + ">" shift, and go to state 385 State 303 - 192 Types: Type • - 206 FunctionParameters: Type • + 194 Types: Type • + 208 FunctionParameters: Type • - "*" reduce using rule 206 (FunctionParameters) - "->" reduce using rule 206 (FunctionParameters) - $default reduce using rule 192 (Types) + "*" reduce using rule 208 (FunctionParameters) + "->" reduce using rule 208 (FunctionParameters) + $default reduce using rule 194 (Types) State 304 - 205 FunctionParameters: FunctionParameters • "*" Type - 207 MaybeFunctionParameters: FunctionParameters • + 207 FunctionParameters: FunctionParameters • "*" Type + 209 MaybeFunctionParameters: FunctionParameters • - "*" shift, and go to state 385 + "*" shift, and go to state 386 - $default reduce using rule 207 (MaybeFunctionParameters) + $default reduce using rule 209 (MaybeFunctionParameters) State 305 - 203 RelationType: IdentifierPath "<" MaybeFunctionParameters • "->" Type ">" + 205 RelationType: IdentifierPath "<" MaybeFunctionParameters • "->" Type ">" - "->" shift, and go to state 386 + "->" shift, and go to state 387 State 306 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 204 FixedSizedType: IdentifierPath "'" Term • - - $default reduce using rule 204 (FixedSizedType) + 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) State 307 - 206 FunctionParameters: Type • + 208 FunctionParameters: Type • - $default reduce using rule 206 (FunctionParameters) + $default reduce using rule 208 (FunctionParameters) State 308 - 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters • "->" Type MaybeDefined MaybeInitially + 35 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters • "->" Type MaybeDefined MaybeInitially - "->" shift, and go to state 387 + "->" shift, and go to state 388 State 309 - 230 TypedVariable: Identifier ":" Type • + 232 TypedVariable: Identifier ":" Type • - $default reduce using rule 230 (TypedVariable) + $default reduce using rule 232 (TypedVariable) State 310 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 237 VariableBinding: AttributedVariable "=" 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 + 239 VariableBinding: AttributedVariable "=" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7207,29 +7214,29 @@ State 310 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 237 (VariableBinding) + $default reduce using rule 239 (VariableBinding) State 311 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 154 LetExpression: "let" VariableBindings "in" 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 + 156 LetExpression: "let" VariableBindings "in" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7249,38 +7256,38 @@ State 311 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 154 (LetExpression) + $default reduce using rule 156 (LetExpression) State 312 - 235 VariableBindings: VariableBindings "," VariableBinding • + 237 VariableBindings: VariableBindings "," VariableBinding • - $default reduce using rule 235 (VariableBindings) + $default reduce using rule 237 (VariableBindings) State 313 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 157 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term • "holds" Term - - "holds" shift, and go to state 388 + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -7302,33 +7309,33 @@ State 313 State 314 - 226 AttributedVariables: AttributedVariables "," AttributedVariable • + 228 AttributedVariables: AttributedVariables "," AttributedVariable • - $default reduce using rule 226 (AttributedVariables) + $default reduce using rule 228 (AttributedVariables) State 315 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 156 ChooseExpression: "choose" AttributedVariables "in" Term • "do" Term - - "do" shift, and go to state 389 + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -7350,26 +7357,26 @@ State 315 State 316 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 155 ConditionalExpression: "if" Term "then" Term • "else" Term - - "else" shift, and go to state 390 + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -7391,26 +7398,26 @@ State 316 State 317 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 158 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term • "with" Term - - "with" shift, and go to state 391 + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -7432,25 +7439,25 @@ State 317 State 318 - 102 Terms: Terms "," Term • - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 186 TupleLiteral: "(" Terms "," Term • ")" + 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 • ")" "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7459,7 +7466,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 392 + ")" shift, and go to state 393 "<" shift, and go to state 155 ">" shift, and go to state 156 "*" shift, and go to state 157 @@ -7471,43 +7478,43 @@ State 318 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 102 (Terms) + $default reduce using rule 104 (Terms) State 319 - 188 Assignments: Assignments "," Assignment • + 190 Assignments: Assignments "," Assignment • - $default reduce using rule 188 (Assignments) + $default reduce using rule 190 (Assignments) State 320 - 190 Assignment: Identifier • ":" Term + 192 Assignment: Identifier • ":" Term ":" shift, and go to state 213 State 321 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 190 Assignment: 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 + 192 Assignment: Identifier ":" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7527,29 +7534,29 @@ State 321 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 190 (Assignment) + $default reduce using rule 192 (Assignment) State 322 - 102 Terms: Terms "," Term • - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7569,29 +7576,29 @@ State 322 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 102 (Terms) + $default reduce using rule 104 (Terms) State 323 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 185 RangeLiteral: "[" Term ".." 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 • "]" "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7600,7 +7607,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 393 + "]" shift, and go to state 394 "<" shift, and go to state 155 ">" shift, and go to state 156 "*" shift, and go to state 157 @@ -7615,11 +7622,11 @@ State 323 State 324 - 146 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" • ")" - 147 | SimpleOrClaspedTerm "." Identifier "(" • Terms ")" - 148 | SimpleOrClaspedTerm "." Identifier "(" • error ")" + 148 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" • ")" + 149 | SimpleOrClaspedTerm "." Identifier "(" • Terms ")" + 150 | SimpleOrClaspedTerm "." Identifier "(" • error ")" - error shift, and go to state 394 + error shift, and go to state 395 "let" shift, and go to state 45 "in" shift, and go to state 8 "forall" shift, and go to state 46 @@ -7633,7 +7640,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 395 + ")" shift, and go to state 396 "[" shift, and go to state 57 "|" shift, and go to state 58 "@" shift, and go to state 59 @@ -7645,7 +7652,7 @@ State 324 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Terms go to state 396 + Terms go to state 397 Term go to state 242 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 @@ -7680,62 +7687,62 @@ State 324 State 325 - 152 IndirectCallExpression: CallExpression "(" error ")" • + 154 IndirectCallExpression: CallExpression "(" error ")" • - $default reduce using rule 152 (IndirectCallExpression) + $default reduce using rule 154 (IndirectCallExpression) State 326 - 151 IndirectCallExpression: CallExpression "(" Terms ")" • + 153 IndirectCallExpression: CallExpression "(" Terms ")" • - $default reduce using rule 151 (IndirectCallExpression) + $default reduce using rule 153 (IndirectCallExpression) State 327 - 144 DirectCallExpression: IdentifierPath "(" error ")" • + 146 DirectCallExpression: IdentifierPath "(" error ")" • - $default reduce using rule 144 (DirectCallExpression) + $default reduce using rule 146 (DirectCallExpression) State 328 - 143 DirectCallExpression: IdentifierPath "(" Terms ")" • + 145 DirectCallExpression: IdentifierPath "(" Terms ")" • - $default reduce using rule 143 (DirectCallExpression) + $default reduce using rule 145 (DirectCallExpression) State 329 - 113 SimpleOrClaspedTerm: "(" Term ")" • - 218 Initializer: "(" Term ")" • "->" Term + 115 SimpleOrClaspedTerm: "(" Term ")" • + 220 Initializer: "(" Term ")" • "->" Term - "->" shift, and go to state 397 + "->" shift, and go to state 398 - $default reduce using rule 113 (SimpleOrClaspedTerm) + $default reduce using rule 115 (SimpleOrClaspedTerm) State 330 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 219 Initializer: TupleLiteral "->" 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 + 221 Initializer: TupleLiteral "->" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -7755,33 +7762,33 @@ State 330 "<=" 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 331 - 215 Initializers: Initializers "," Initializer • + 217 Initializers: Initializers "," Initializer • - $default reduce using rule 215 (Initializers) + $default reduce using rule 217 (Initializers) State 332 26 DerivedDefinition: "derived" Identifier "(" error ")" • "->" Type "=" Term - "->" shift, and go to state 398 + "->" shift, and go to state 399 State 333 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" • "->" Type "=" Term - "->" shift, and go to state 399 + "->" shift, and go to state 400 State 334 - 209 Parameters: Parameters "," • TypedAttributedVariable + 211 Parameters: Parameters "," • TypedAttributedVariable "in" shift, and go to state 8 "[" shift, and go to state 2 @@ -7789,16 +7796,16 @@ State 334 Identifier go to state 253 TypedVariable go to state 254 - TypedAttributedVariable go to state 400 + TypedAttributedVariable go to state 401 Attributes go to state 256 Attribute go to state 6 State 335 - 233 TypedAttributedVariable: Attributes TypedVariable • + 235 TypedAttributedVariable: Attributes TypedVariable • - $default reduce using rule 233 (TypedAttributedVariable) + $default reduce using rule 235 (TypedAttributedVariable) State 336 @@ -7829,7 +7836,7 @@ State 336 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 401 + Term go to state 402 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -7863,61 +7870,61 @@ State 336 State 337 - 36 EnumeratorDefinition: error • + 38 EnumeratorDefinition: error • - $default reduce using rule 36 (EnumeratorDefinition) + $default reduce using rule 38 (EnumeratorDefinition) State 338 - 38 Enumerators: EnumeratorDefinition • + 40 Enumerators: EnumeratorDefinition • - $default reduce using rule 38 (Enumerators) + $default reduce using rule 40 (Enumerators) State 339 23 EnumerationDefinition: "enumeration" Identifier "=" "{" Enumerators • "}" - 37 Enumerators: Enumerators • "," EnumeratorDefinition + 39 Enumerators: Enumerators • "," EnumeratorDefinition - "}" shift, and go to state 402 - "," shift, and go to state 403 + "}" shift, and go to state 403 + "," shift, and go to state 404 State 340 - 34 EnumeratorDefinition: Identifier • + 36 EnumeratorDefinition: Identifier • - $default reduce using rule 34 (EnumeratorDefinition) + $default reduce using rule 36 (EnumeratorDefinition) State 341 - 35 EnumeratorDefinition: Attributes • Identifier - 244 Attributes: Attributes • Attribute + 37 EnumeratorDefinition: Attributes • Identifier + 246 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 404 + Identifier go to state 405 Attribute go to state 43 State 342 - 98 SequenceRule: "seq" error • "endseq" + 100 SequenceRule: "seq" error • "endseq" - "endseq" shift, and go to state 405 + "endseq" shift, and go to state 406 State 343 - 60 Rules: Rules • Rule - 96 SequenceRule: "seq" Rules • "endseq" + 62 Rules: Rules • Rule + 98 SequenceRule: "seq" Rules • "endseq" "seq" shift, and go to state 259 - "endseq" shift, and go to state 406 + "endseq" shift, and go to state 407 "par" shift, and go to state 260 "skip" shift, and go to state 261 "let" shift, and go to state 262 @@ -7947,7 +7954,7 @@ State 343 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 407 + Rule go to state 408 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -7986,26 +7993,26 @@ State 343 State 344 - 61 Rules: Rule • + 63 Rules: Rule • - $default reduce using rule 61 (Rules) + $default reduce using rule 63 (Rules) State 345 - 94 BlockRule: "par" error • "endpar" + 96 BlockRule: "par" error • "endpar" - "endpar" shift, and go to state 408 + "endpar" shift, and go to state 409 State 346 - 60 Rules: Rules • Rule - 92 BlockRule: "par" Rules • "endpar" + 62 Rules: Rules • Rule + 94 BlockRule: "par" Rules • "endpar" "seq" shift, and go to state 259 "par" shift, and go to state 260 - "endpar" shift, and go to state 409 + "endpar" shift, and go to state 410 "skip" shift, and go to state 261 "let" shift, and go to state 262 "local" shift, and go to state 263 @@ -8034,7 +8041,7 @@ State 346 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 407 + Rule go to state 408 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -8073,113 +8080,113 @@ State 346 State 347 - 85 LetRule: "let" VariableBindings • "in" Rule - 235 VariableBindings: VariableBindings • "," VariableBinding + 87 LetRule: "let" VariableBindings • "in" Rule + 237 VariableBindings: VariableBindings • "," VariableBinding - "in" shift, and go to state 410 + "in" shift, and go to state 411 "," shift, and go to state 201 State 348 - 242 AttributedLocalFunctionDefinition: error • + 244 AttributedLocalFunctionDefinition: error • - $default reduce using rule 242 (AttributedLocalFunctionDefinition) + $default reduce using rule 244 (AttributedLocalFunctionDefinition) State 349 - 243 LocalFunctionDefinition: Identifier • ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 245 LocalFunctionDefinition: Identifier • ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially - ":" shift, and go to state 411 + ":" shift, and go to state 412 State 350 - 86 LocalRule: "local" LocalFunctionDefinitions • "in" Rule - 238 LocalFunctionDefinitions: LocalFunctionDefinitions • "," AttributedLocalFunctionDefinition + 88 LocalRule: "local" LocalFunctionDefinitions • "in" Rule + 240 LocalFunctionDefinitions: LocalFunctionDefinitions • "," AttributedLocalFunctionDefinition - "in" shift, and go to state 412 - "," shift, and go to state 413 + "in" shift, and go to state 413 + "," shift, and go to state 414 State 351 - 239 LocalFunctionDefinitions: AttributedLocalFunctionDefinition • + 241 LocalFunctionDefinitions: AttributedLocalFunctionDefinition • - $default reduce using rule 239 (LocalFunctionDefinitions) + $default reduce using rule 241 (LocalFunctionDefinitions) State 352 - 241 AttributedLocalFunctionDefinition: LocalFunctionDefinition • + 243 AttributedLocalFunctionDefinition: LocalFunctionDefinition • - $default reduce using rule 241 (AttributedLocalFunctionDefinition) + $default reduce using rule 243 (AttributedLocalFunctionDefinition) State 353 - 240 AttributedLocalFunctionDefinition: Attributes • LocalFunctionDefinition - 244 Attributes: Attributes • Attribute + 242 AttributedLocalFunctionDefinition: Attributes • LocalFunctionDefinition + 246 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 414 + LocalFunctionDefinition go to state 415 Attribute go to state 43 State 354 - 87 ForallRule: "forall" AttributedVariables • "in" Term "do" Rule - 88 | "forall" AttributedVariables • "in" Term "with" Term "do" Rule - 226 AttributedVariables: AttributedVariables • "," AttributedVariable + 89 ForallRule: "forall" AttributedVariables • "in" Term "do" Rule + 90 | "forall" AttributedVariables • "in" Term "with" Term "do" Rule + 228 AttributedVariables: AttributedVariables • "," AttributedVariable - "in" shift, and go to state 415 + "in" shift, and go to state 416 "," shift, and go to state 204 State 355 - 89 ChooseRule: "choose" AttributedVariables • "in" Term "do" Rule - 226 AttributedVariables: AttributedVariables • "," AttributedVariable + 91 ChooseRule: "choose" AttributedVariables • "in" Term "do" Rule + 228 AttributedVariables: AttributedVariables • "," AttributedVariable - "in" shift, and go to state 416 + "in" shift, and go to state 417 "," shift, and go to state 204 State 356 - 90 IterateRule: "iterate" Rule • + 92 IterateRule: "iterate" Rule • - $default reduce using rule 90 (IterateRule) + $default reduce using rule 92 (IterateRule) State 357 - 76 ConditionalRule: "if" Term • "then" Rule - 77 | "if" Term • "then" Rule "else" Rule - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - - "then" shift, and go to state 417 + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -8201,27 +8208,27 @@ State 357 State 358 - 78 CaseRule: "case" Term • "of" "{" CaseLabels "}" - 79 | "case" Term • "of" "{" error "}" - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - - "of" shift, and go to state 418 + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -8243,26 +8250,26 @@ State 358 State 359 - 101 WhileRule: "while" Term • "do" Rule - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - - "do" shift, and go to state 419 + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -8284,15 +8291,15 @@ State 359 State 360 - 93 BlockRule: "{" error • "}" + 95 BlockRule: "{" error • "}" - "}" shift, and go to state 420 + "}" shift, and go to state 421 State 361 - 60 Rules: Rules • Rule - 91 BlockRule: "{" Rules • "}" + 62 Rules: Rules • Rule + 93 BlockRule: "{" Rules • "}" "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -8314,7 +8321,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 421 + "}" shift, and go to state 422 "@" shift, and go to state 59 "{|" shift, and go to state 271 "binary" shift, and go to state 60 @@ -8325,7 +8332,7 @@ State 361 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 407 + Rule go to state 408 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -8364,15 +8371,15 @@ State 361 State 362 - 97 SequenceRule: "{|" error • "|}" + 99 SequenceRule: "{|" error • "|}" - "|}" shift, and go to state 422 + "|}" shift, and go to state 423 State 363 - 60 Rules: Rules • Rule - 95 SequenceRule: "{|" Rules • "|}" + 62 Rules: Rules • Rule + 97 SequenceRule: "{|" Rules • "|}" "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -8396,7 +8403,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 423 + "|}" shift, and go to state 424 "binary" shift, and go to state 60 "hexadecimal" shift, and go to state 61 "integer" shift, and go to state 62 @@ -8405,7 +8412,7 @@ State 363 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 407 + Rule go to state 408 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -8444,7 +8451,7 @@ State 363 State 364 - 99 UpdateRule: DirectCallExpression ":=" • Term + 101 UpdateRule: DirectCallExpression ":=" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -8470,7 +8477,7 @@ State 364 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 424 + Term go to state 425 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -8507,8 +8514,8 @@ State 365 31 RuleDefinition: "rule" Identifier "(" error ")" • "=" Rule 32 | "rule" Identifier "(" error ")" • "->" Type "=" Rule - "=" shift, and go to state 425 - "->" shift, and go to state 426 + "=" shift, and go to state 426 + "->" shift, and go to state 427 State 366 @@ -8516,8 +8523,8 @@ State 366 29 RuleDefinition: "rule" Identifier "(" Parameters ")" • "=" Rule 30 | "rule" Identifier "(" Parameters ")" • "->" Type "=" Rule - "=" shift, and go to state 427 - "->" shift, and go to state 428 + "=" shift, and go to state 428 + "->" shift, and go to state 429 State 367 @@ -8554,7 +8561,7 @@ State 367 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 429 + Rule go to state 430 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -8593,25 +8600,36 @@ State 367 State 368 - 45 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinition • "}" + 33 FunctionDefinitions: FunctionDefinitions • FunctionDefinition + 47 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinitions • "}" - "}" shift, and go to state 430 + "function" shift, and go to state 25 + "}" shift, and go to state 431 + + FunctionDefinition go to state 432 State 369 + 34 FunctionDefinitions: FunctionDefinition • + + $default reduce using rule 34 (FunctionDefinitions) + + +State 370 + 24 DerivedDefinition: "derived" • Identifier "->" Type "=" Term 25 | "derived" • Identifier "(" Parameters ")" "->" Type "=" Term 26 | "derived" • Identifier "(" error ")" "->" Type "=" Term - 58 DeclarationDefinition: "derived" • Identifier ":" MaybeFunctionParameters "->" Type + 60 DeclarationDefinition: "derived" • Identifier ":" MaybeFunctionParameters "->" Type "in" shift, and go to state 8 "identifier" shift, and go to state 9 - Identifier go to state 431 + Identifier go to state 433 -State 370 +State 371 27 RuleDefinition: "rule" • Identifier "=" Rule 28 | "rule" • Identifier "->" Type "=" Rule @@ -8619,128 +8637,130 @@ State 370 30 | "rule" • Identifier "(" Parameters ")" "->" Type "=" Rule 31 | "rule" • Identifier "(" error ")" "=" Rule 32 | "rule" • Identifier "(" error ")" "->" Type "=" Rule - 59 DeclarationDefinition: "rule" • Identifier ":" MaybeFunctionParameters "->" Type + 61 DeclarationDefinition: "rule" • Identifier ":" MaybeFunctionParameters "->" Type "in" shift, and go to state 8 "identifier" shift, and go to state 9 - Identifier go to state 432 - - -State 371 - - 48 FeatureDeclarationOrDefinition: DerivedDefinition • - - $default reduce using rule 48 (FeatureDeclarationOrDefinition) + Identifier go to state 434 State 372 - 49 FeatureDeclarationOrDefinition: RuleDefinition • + 50 FeatureDeclarationOrDefinition: DerivedDefinition • - $default reduce using rule 49 (FeatureDeclarationOrDefinition) + $default reduce using rule 50 (FeatureDeclarationOrDefinition) State 373 - 51 FeatureDeclarationsAndDefinitions: FeatureDeclarationOrDefinition • + 51 FeatureDeclarationOrDefinition: RuleDefinition • - $default reduce using rule 51 (FeatureDeclarationsAndDefinitions) + $default reduce using rule 51 (FeatureDeclarationOrDefinition) State 374 - 46 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions • "}" - 50 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions • FeatureDeclarationOrDefinition - - "derived" shift, and go to state 369 - "rule" shift, and go to state 370 - "}" shift, and go to state 433 + 53 FeatureDeclarationsAndDefinitions: FeatureDeclarationOrDefinition • - DerivedDefinition go to state 371 - RuleDefinition go to state 372 - FeatureDeclarationOrDefinition go to state 434 - DeclarationDefinition go to state 375 + $default reduce using rule 53 (FeatureDeclarationsAndDefinitions) State 375 - 47 FeatureDeclarationOrDefinition: DeclarationDefinition • + 48 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions • "}" + 52 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions • FeatureDeclarationOrDefinition - $default reduce using rule 47 (FeatureDeclarationOrDefinition) + "derived" shift, and go to state 370 + "rule" shift, and go to state 371 + "}" shift, and go to state 435 + DerivedDefinition go to state 372 + RuleDefinition go to state 373 + FeatureDeclarationOrDefinition go to state 436 + DeclarationDefinition go to state 376 -State 376 - 191 Types: Types "," Type • - 200 TupleType: "(" Types "," Type • ")" +State 376 - ")" shift, and go to state 435 + 49 FeatureDeclarationOrDefinition: DeclarationDefinition • - $default reduce using rule 191 (Types) + $default reduce using rule 49 (FeatureDeclarationOrDefinition) State 377 - 201 RecordType: "(" TypedVariables "," TypedVariable • ")" - 228 TypedVariables: TypedVariables "," TypedVariable • + 193 Types: Types "," Type • + 202 TupleType: "(" Types "," Type • ")" - ")" shift, and go to state 436 + ")" shift, and go to state 437 - $default reduce using rule 228 (TypedVariables) + $default reduce using rule 193 (Types) State 378 - 54 ImplementationDefinitionDefinition: DerivedDefinition • + 203 RecordType: "(" TypedVariables "," TypedVariable • ")" + 230 TypedVariables: TypedVariables "," TypedVariable • + + ")" shift, and go to state 438 - $default reduce using rule 54 (ImplementationDefinitionDefinition) + $default reduce using rule 230 (TypedVariables) State 379 - 55 ImplementationDefinitionDefinition: RuleDefinition • + 56 ImplementationDefinitionDefinition: DerivedDefinition • - $default reduce using rule 55 (ImplementationDefinitionDefinition) + $default reduce using rule 56 (ImplementationDefinitionDefinition) State 380 - 57 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition • + 57 ImplementationDefinitionDefinition: RuleDefinition • - $default reduce using rule 57 (ImplementationDefinitionDefinitions) + $default reduce using rule 57 (ImplementationDefinitionDefinition) State 381 - 53 ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions • "}" - 56 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions • ImplementationDefinitionDefinition + 58 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition • ImplementationDefinitionDefinitions + 59 | ImplementationDefinitionDefinition • "derived" shift, and go to state 16 "rule" shift, and go to state 18 - "}" shift, and go to state 437 - DerivedDefinition go to state 378 - RuleDefinition go to state 379 - ImplementationDefinitionDefinition go to state 438 + $default reduce using rule 59 (ImplementationDefinitionDefinitions) + + DerivedDefinition go to state 379 + RuleDefinition go to state 380 + ImplementationDefinitionDefinition go to state 381 + ImplementationDefinitionDefinitions go to state 439 State 382 - 52 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" • "{" ImplementationDefinitionDefinitions "}" + 55 ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions • "}" - "{" shift, and go to state 439 + "}" shift, and go to state 440 State 383 - 191 Types: Types "," • Type + 54 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" • "{" ImplementationDefinitionDefinitions "}" + + "{" shift, and go to state 441 + + +State 384 + + 193 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 440 + Type go to state 442 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -8751,22 +8771,22 @@ State 383 IdentifierPath go to state 190 -State 384 +State 385 - 202 TemplateType: IdentifierPath "<" Types ">" • + 204 TemplateType: IdentifierPath "<" Types ">" • - $default reduce using rule 202 (TemplateType) + $default reduce using rule 204 (TemplateType) -State 385 +State 386 - 205 FunctionParameters: FunctionParameters "*" • Type + 207 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 441 + Type go to state 443 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -8777,15 +8797,15 @@ State 385 IdentifierPath go to state 190 -State 386 +State 387 - 203 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" • Type ">" + 205 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 442 + Type go to state 444 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -8796,15 +8816,15 @@ State 386 IdentifierPath go to state 190 -State 387 +State 388 - 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" • Type MaybeDefined MaybeInitially + 35 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 443 + Type go to state 445 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -8815,9 +8835,9 @@ State 387 IdentifierPath go to state 190 -State 388 +State 389 - 157 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" • Term + 159 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -8843,7 +8863,7 @@ State 388 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 444 + Term go to state 446 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -8875,9 +8895,9 @@ State 388 IdentifierPath go to state 95 -State 389 +State 390 - 156 ChooseExpression: "choose" AttributedVariables "in" Term "do" • Term + 158 ChooseExpression: "choose" AttributedVariables "in" Term "do" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -8903,7 +8923,7 @@ State 389 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 445 + Term go to state 447 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -8935,9 +8955,9 @@ State 389 IdentifierPath go to state 95 -State 390 +State 391 - 155 ConditionalExpression: "if" Term "then" Term "else" • Term + 157 ConditionalExpression: "if" Term "then" Term "else" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -8963,7 +8983,7 @@ State 390 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 446 + Term go to state 448 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -8995,9 +9015,9 @@ State 390 IdentifierPath go to state 95 -State 391 +State 392 - 158 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" • Term + 160 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -9023,7 +9043,7 @@ State 391 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 447 + Term go to state 449 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -9055,46 +9075,46 @@ State 391 IdentifierPath go to state 95 -State 392 - - 186 TupleLiteral: "(" Terms "," Term ")" • - - $default reduce using rule 186 (TupleLiteral) - - State 393 - 185 RangeLiteral: "[" Term ".." Term "]" • + 188 TupleLiteral: "(" Terms "," Term ")" • - $default reduce using rule 185 (RangeLiteral) + $default reduce using rule 188 (TupleLiteral) State 394 - 148 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error • ")" + 187 RangeLiteral: "[" Term ".." Term "]" • - ")" shift, and go to state 448 + $default reduce using rule 187 (RangeLiteral) State 395 - 146 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" ")" • + 150 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error • ")" - $default reduce using rule 146 (MethodCallExpression) + ")" shift, and go to state 450 State 396 - 102 Terms: Terms • "," Term - 147 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms • ")" + 148 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" ")" • - ")" shift, and go to state 449 - "," shift, and go to state 216 + $default reduce using rule 148 (MethodCallExpression) State 397 - 218 Initializer: "(" Term ")" "->" • Term + 104 Terms: Terms • "," Term + 149 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms • ")" + + ")" shift, and go to state 451 + "," shift, and go to state 216 + + +State 398 + + 220 Initializer: "(" Term ")" "->" • Term "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -9120,7 +9140,7 @@ State 397 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 450 + Term go to state 452 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -9152,7 +9172,7 @@ State 397 IdentifierPath go to state 95 -State 398 +State 399 26 DerivedDefinition: "derived" Identifier "(" error ")" "->" • Type "=" Term @@ -9160,7 +9180,7 @@ State 398 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 451 + Type go to state 453 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -9171,7 +9191,7 @@ State 398 IdentifierPath go to state 190 -State 399 +State 400 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" • Type "=" Term @@ -9179,7 +9199,7 @@ State 399 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 452 + Type go to state 454 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -9190,33 +9210,33 @@ State 399 IdentifierPath go to state 190 -State 400 +State 401 - 209 Parameters: Parameters "," TypedAttributedVariable • + 211 Parameters: Parameters "," TypedAttributedVariable • - $default reduce using rule 209 (Parameters) + $default reduce using rule 211 (Parameters) -State 401 +State 402 24 DerivedDefinition: "derived" Identifier "->" Type "=" Term • - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" 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 "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -9239,73 +9259,73 @@ State 401 $default reduce using rule 24 (DerivedDefinition) -State 402 +State 403 23 EnumerationDefinition: "enumeration" Identifier "=" "{" Enumerators "}" • $default reduce using rule 23 (EnumerationDefinition) -State 403 +State 404 - 37 Enumerators: Enumerators "," • EnumeratorDefinition + 39 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 453 + EnumeratorDefinition go to state 455 Identifier go to state 340 Attributes go to state 341 Attribute go to state 6 -State 404 - - 35 EnumeratorDefinition: Attributes Identifier • - - $default reduce using rule 35 (EnumeratorDefinition) - - State 405 - 98 SequenceRule: "seq" error "endseq" • + 37 EnumeratorDefinition: Attributes Identifier • - $default reduce using rule 98 (SequenceRule) + $default reduce using rule 37 (EnumeratorDefinition) State 406 - 96 SequenceRule: "seq" Rules "endseq" • + 100 SequenceRule: "seq" error "endseq" • - $default reduce using rule 96 (SequenceRule) + $default reduce using rule 100 (SequenceRule) State 407 - 60 Rules: Rules Rule • + 98 SequenceRule: "seq" Rules "endseq" • - $default reduce using rule 60 (Rules) + $default reduce using rule 98 (SequenceRule) State 408 - 94 BlockRule: "par" error "endpar" • + 62 Rules: Rules Rule • - $default reduce using rule 94 (BlockRule) + $default reduce using rule 62 (Rules) State 409 - 92 BlockRule: "par" Rules "endpar" • + 96 BlockRule: "par" error "endpar" • - $default reduce using rule 92 (BlockRule) + $default reduce using rule 96 (BlockRule) State 410 - 85 LetRule: "let" VariableBindings "in" • Rule + 94 BlockRule: "par" Rules "endpar" • + + $default reduce using rule 94 (BlockRule) + + +State 411 + + 87 LetRule: "let" VariableBindings "in" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -9337,7 +9357,7 @@ State 410 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 454 + Rule go to state 456 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -9374,15 +9394,15 @@ State 410 IdentifierPath go to state 95 -State 411 +State 412 - 243 LocalFunctionDefinition: Identifier ":" • MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 245 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 208 (MaybeFunctionParameters) + $default reduce using rule 210 (MaybeFunctionParameters) Type go to state 307 BasicType go to state 111 @@ -9392,14 +9412,14 @@ State 411 RelationType go to state 115 FixedSizedType go to state 116 FunctionParameters go to state 304 - MaybeFunctionParameters go to state 455 + MaybeFunctionParameters go to state 457 Identifier go to state 94 IdentifierPath go to state 190 -State 412 +State 413 - 86 LocalRule: "local" LocalFunctionDefinitions "in" • Rule + 88 LocalRule: "local" LocalFunctionDefinitions "in" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -9431,7 +9451,7 @@ State 412 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 456 + Rule go to state 458 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -9468,9 +9488,9 @@ State 412 IdentifierPath go to state 95 -State 413 +State 414 - 238 LocalFunctionDefinitions: LocalFunctionDefinitions "," • AttributedLocalFunctionDefinition + 240 LocalFunctionDefinitions: LocalFunctionDefinitions "," • AttributedLocalFunctionDefinition error shift, and go to state 348 "in" shift, and go to state 8 @@ -9478,23 +9498,23 @@ State 413 "identifier" shift, and go to state 9 Identifier go to state 349 - AttributedLocalFunctionDefinition go to state 457 + AttributedLocalFunctionDefinition go to state 459 LocalFunctionDefinition go to state 352 Attributes go to state 353 Attribute go to state 6 -State 414 +State 415 - 240 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition • + 242 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition • - $default reduce using rule 240 (AttributedLocalFunctionDefinition) + $default reduce using rule 242 (AttributedLocalFunctionDefinition) -State 415 +State 416 - 87 ForallRule: "forall" AttributedVariables "in" • Term "do" Rule - 88 | "forall" AttributedVariables "in" • Term "with" Term "do" Rule + 89 ForallRule: "forall" AttributedVariables "in" • Term "do" Rule + 90 | "forall" AttributedVariables "in" • Term "with" Term "do" Rule "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -9520,7 +9540,7 @@ State 415 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 458 + Term go to state 460 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -9552,9 +9572,9 @@ State 415 IdentifierPath go to state 95 -State 416 +State 417 - 89 ChooseRule: "choose" AttributedVariables "in" • Term "do" Rule + 91 ChooseRule: "choose" AttributedVariables "in" • Term "do" Rule "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -9580,7 +9600,7 @@ State 416 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 459 + Term go to state 461 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -9612,10 +9632,10 @@ State 416 IdentifierPath go to state 95 -State 417 +State 418 - 76 ConditionalRule: "if" Term "then" • Rule - 77 | "if" Term "then" • Rule "else" Rule + 78 ConditionalRule: "if" Term "then" • Rule + 79 | "if" Term "then" • Rule "else" Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -9647,7 +9667,7 @@ State 417 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 460 + Rule go to state 462 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -9684,17 +9704,17 @@ State 417 IdentifierPath go to state 95 -State 418 +State 419 - 78 CaseRule: "case" Term "of" • "{" CaseLabels "}" - 79 | "case" Term "of" • "{" error "}" + 80 CaseRule: "case" Term "of" • "{" CaseLabels "}" + 81 | "case" Term "of" • "{" error "}" - "{" shift, and go to state 461 + "{" shift, and go to state 463 -State 419 +State 420 - 101 WhileRule: "while" Term "do" • Rule + 103 WhileRule: "while" Term "do" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -9726,7 +9746,7 @@ State 419 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 462 + Rule go to state 464 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -9763,54 +9783,54 @@ State 419 IdentifierPath go to state 95 -State 420 - - 93 BlockRule: "{" error "}" • - - $default reduce using rule 93 (BlockRule) - - State 421 - 91 BlockRule: "{" Rules "}" • + 95 BlockRule: "{" error "}" • - $default reduce using rule 91 (BlockRule) + $default reduce using rule 95 (BlockRule) State 422 - 97 SequenceRule: "{|" error "|}" • + 93 BlockRule: "{" Rules "}" • - $default reduce using rule 97 (SequenceRule) + $default reduce using rule 93 (BlockRule) State 423 - 95 SequenceRule: "{|" Rules "|}" • + 99 SequenceRule: "{|" error "|}" • - $default reduce using rule 95 (SequenceRule) + $default reduce using rule 99 (SequenceRule) State 424 - 99 UpdateRule: DirectCallExpression ":=" Term • - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term + 97 SequenceRule: "{|" Rules "|}" • + + $default reduce using rule 97 (SequenceRule) + + +State 425 + + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -9830,10 +9850,10 @@ State 424 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 99 (UpdateRule) + $default reduce using rule 101 (UpdateRule) -State 425 +State 426 31 RuleDefinition: "rule" Identifier "(" error ")" "=" • Rule @@ -9867,7 +9887,7 @@ State 425 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 463 + Rule go to state 465 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -9904,7 +9924,7 @@ State 425 IdentifierPath go to state 95 -State 426 +State 427 32 RuleDefinition: "rule" Identifier "(" error ")" "->" • Type "=" Rule @@ -9912,7 +9932,7 @@ State 426 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 464 + Type go to state 466 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -9923,7 +9943,7 @@ State 426 IdentifierPath go to state 190 -State 427 +State 428 29 RuleDefinition: "rule" Identifier "(" Parameters ")" "=" • Rule @@ -9957,7 +9977,7 @@ State 427 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 465 + Rule go to state 467 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -9994,7 +10014,7 @@ State 427 IdentifierPath go to state 95 -State 428 +State 429 30 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" • Type "=" Rule @@ -10002,7 +10022,7 @@ State 428 "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 466 + Type go to state 468 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -10013,33 +10033,40 @@ State 428 IdentifierPath go to state 190 -State 429 +State 430 28 RuleDefinition: "rule" Identifier "->" Type "=" Rule • $default reduce using rule 28 (RuleDefinition) -State 430 +State 431 - 45 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinition "}" • + 47 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinitions "}" • - $default reduce using rule 45 (StructureDefinition) + $default reduce using rule 47 (StructureDefinition) -State 431 +State 432 + + 33 FunctionDefinitions: FunctionDefinitions FunctionDefinition • + + $default reduce using rule 33 (FunctionDefinitions) + + +State 433 24 DerivedDefinition: "derived" Identifier • "->" Type "=" Term 25 | "derived" Identifier • "(" Parameters ")" "->" Type "=" Term 26 | "derived" Identifier • "(" error ")" "->" Type "=" Term - 58 DeclarationDefinition: "derived" Identifier • ":" MaybeFunctionParameters "->" Type + 60 DeclarationDefinition: "derived" Identifier • ":" MaybeFunctionParameters "->" Type "(" shift, and go to state 175 - ":" shift, and go to state 467 + ":" shift, and go to state 469 "->" shift, and go to state 176 -State 432 +State 434 27 RuleDefinition: "rule" Identifier • "=" Rule 28 | "rule" Identifier • "->" Type "=" Rule @@ -10047,121 +10074,121 @@ State 432 30 | "rule" Identifier • "(" Parameters ")" "->" Type "=" Rule 31 | "rule" Identifier • "(" error ")" "=" Rule 32 | "rule" Identifier • "(" error ")" "->" Type "=" Rule - 59 DeclarationDefinition: "rule" Identifier • ":" MaybeFunctionParameters "->" Type + 61 DeclarationDefinition: "rule" Identifier • ":" MaybeFunctionParameters "->" Type "=" shift, and go to state 178 "(" shift, and go to state 179 - ":" shift, and go to state 468 + ":" shift, and go to state 470 "->" shift, and go to state 180 -State 433 +State 435 - 46 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" • + 48 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" • - $default reduce using rule 46 (FeatureDefinition) + $default reduce using rule 48 (FeatureDefinition) -State 434 +State 436 - 50 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition • + 52 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition • - $default reduce using rule 50 (FeatureDeclarationsAndDefinitions) + $default reduce using rule 52 (FeatureDeclarationsAndDefinitions) -State 435 +State 437 - 200 TupleType: "(" Types "," Type ")" • + 202 TupleType: "(" Types "," Type ")" • - $default reduce using rule 200 (TupleType) + $default reduce using rule 202 (TupleType) -State 436 +State 438 - 201 RecordType: "(" TypedVariables "," TypedVariable ")" • + 203 RecordType: "(" TypedVariables "," TypedVariable ")" • - $default reduce using rule 201 (RecordType) + $default reduce using rule 203 (RecordType) -State 437 +State 439 - 53 ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" • + 58 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions • - $default reduce using rule 53 (ImplementationDefinition) + $default reduce using rule 58 (ImplementationDefinitionDefinitions) -State 438 +State 440 - 56 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions ImplementationDefinitionDefinition • + 55 ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" • - $default reduce using rule 56 (ImplementationDefinitionDefinitions) + $default reduce using rule 55 (ImplementationDefinition) -State 439 +State 441 - 52 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" • ImplementationDefinitionDefinitions "}" + 54 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" • ImplementationDefinitionDefinitions "}" "derived" shift, and go to state 16 "rule" shift, and go to state 18 - DerivedDefinition go to state 378 - RuleDefinition go to state 379 - ImplementationDefinitionDefinition go to state 380 - ImplementationDefinitionDefinitions go to state 469 + DerivedDefinition go to state 379 + RuleDefinition go to state 380 + ImplementationDefinitionDefinition go to state 381 + ImplementationDefinitionDefinitions go to state 471 -State 440 +State 442 - 191 Types: Types "," Type • + 193 Types: Types "," Type • - $default reduce using rule 191 (Types) + $default reduce using rule 193 (Types) -State 441 +State 443 - 205 FunctionParameters: FunctionParameters "*" Type • + 207 FunctionParameters: FunctionParameters "*" Type • - $default reduce using rule 205 (FunctionParameters) + $default reduce using rule 207 (FunctionParameters) -State 442 +State 444 - 203 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type • ">" + 205 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type • ">" - ">" shift, and go to state 470 + ">" shift, and go to state 472 -State 443 +State 445 - 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type • MaybeDefined MaybeInitially + 35 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type • MaybeDefined MaybeInitially - "defined" shift, and go to state 471 + "defined" shift, and go to state 473 - $default reduce using rule 212 (MaybeDefined) + $default reduce using rule 214 (MaybeDefined) - MaybeDefined go to state 472 + MaybeDefined go to state 474 -State 444 +State 446 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 157 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" 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 + 159 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -10181,29 +10208,29 @@ State 444 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 157 (UniversalQuantifierExpression) + $default reduce using rule 159 (UniversalQuantifierExpression) -State 445 +State 447 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 156 ChooseExpression: "choose" AttributedVariables "in" Term "do" 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 + 158 ChooseExpression: "choose" AttributedVariables "in" Term "do" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -10223,29 +10250,29 @@ State 445 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 156 (ChooseExpression) + $default reduce using rule 158 (ChooseExpression) -State 446 +State 448 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 155 ConditionalExpression: "if" Term "then" Term "else" 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 + 157 ConditionalExpression: "if" Term "then" Term "else" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -10265,29 +10292,29 @@ State 446 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 155 (ConditionalExpression) + $default reduce using rule 157 (ConditionalExpression) -State 447 +State 449 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 158 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" 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 + 160 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -10307,43 +10334,43 @@ State 447 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 158 (ExistentialQuantifierExpression) + $default reduce using rule 160 (ExistentialQuantifierExpression) -State 448 +State 450 - 148 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error ")" • + 150 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error ")" • - $default reduce using rule 148 (MethodCallExpression) + $default reduce using rule 150 (MethodCallExpression) -State 449 +State 451 - 147 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms ")" • + 149 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms ")" • - $default reduce using rule 147 (MethodCallExpression) + $default reduce using rule 149 (MethodCallExpression) -State 450 +State 452 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 218 Initializer: "(" Term ")" "->" 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 • "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -10363,82 +10390,82 @@ State 450 "<=" shift, and go to state 163 ">=" shift, and go to state 164 - $default reduce using rule 218 (Initializer) + $default reduce using rule 220 (Initializer) -State 451 +State 453 26 DerivedDefinition: "derived" Identifier "(" error ")" "->" Type • "=" Term - "=" shift, and go to state 473 + "=" shift, and go to state 475 -State 452 +State 454 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type • "=" Term - "=" shift, and go to state 474 + "=" shift, and go to state 476 -State 453 +State 455 - 37 Enumerators: Enumerators "," EnumeratorDefinition • + 39 Enumerators: Enumerators "," EnumeratorDefinition • - $default reduce using rule 37 (Enumerators) + $default reduce using rule 39 (Enumerators) -State 454 +State 456 - 85 LetRule: "let" VariableBindings "in" Rule • + 87 LetRule: "let" VariableBindings "in" Rule • - $default reduce using rule 85 (LetRule) + $default reduce using rule 87 (LetRule) -State 455 +State 457 - 243 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters • "->" Type MaybeDefined MaybeInitially + 245 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters • "->" Type MaybeDefined MaybeInitially - "->" shift, and go to state 475 + "->" shift, and go to state 477 -State 456 +State 458 - 86 LocalRule: "local" LocalFunctionDefinitions "in" Rule • + 88 LocalRule: "local" LocalFunctionDefinitions "in" Rule • - $default reduce using rule 86 (LocalRule) + $default reduce using rule 88 (LocalRule) -State 457 +State 459 - 238 LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition • + 240 LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition • - $default reduce using rule 238 (LocalFunctionDefinitions) + $default reduce using rule 240 (LocalFunctionDefinitions) -State 458 +State 460 + + 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 - 87 ForallRule: "forall" AttributedVariables "in" Term • "do" Rule - 88 | "forall" AttributedVariables "in" Term • "with" Term "do" Rule - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - - "do" shift, and go to state 476 - "with" shift, and go to state 477 + "do" shift, and go to state 478 + "with" shift, and go to state 479 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -10458,28 +10485,28 @@ State 458 ">=" shift, and go to state 164 -State 459 - - 89 ChooseRule: "choose" AttributedVariables "in" Term • "do" Rule - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term +State 461 - "do" shift, and go to state 478 + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -10499,28 +10526,28 @@ State 459 ">=" shift, and go to state 164 -State 460 +State 462 - 76 ConditionalRule: "if" Term "then" Rule • - 77 | "if" Term "then" Rule • "else" Rule + 78 ConditionalRule: "if" Term "then" Rule • + 79 | "if" Term "then" Rule • "else" Rule - "else" shift, and go to state 479 + "else" shift, and go to state 481 - $default reduce using rule 76 (ConditionalRule) + $default reduce using rule 78 (ConditionalRule) -State 461 +State 463 - 78 CaseRule: "case" Term "of" "{" • CaseLabels "}" - 79 | "case" Term "of" "{" • error "}" + 80 CaseRule: "case" Term "of" "{" • CaseLabels "}" + 81 | "case" Term "of" "{" • error "}" - error shift, and go to state 480 + error shift, and go to state 482 "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 481 + "default" shift, and go to state 483 "exists" shift, and go to state 49 "undef" shift, and go to state 50 "false" shift, and go to state 51 @@ -10530,7 +10557,7 @@ State 461 "-" shift, and go to state 55 "(" shift, and go to state 56 "[" shift, and go to state 57 - "_" shift, and go to state 482 + "_" shift, and go to state 484 "|" shift, and go to state 58 "@" shift, and go to state 59 "binary" shift, and go to state 60 @@ -10541,9 +10568,9 @@ State 461 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - CaseLabels go to state 483 - CaseLabel go to state 484 - Term go to state 485 + CaseLabels go to state 485 + CaseLabel go to state 486 + Term go to state 487 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -10575,50 +10602,50 @@ State 461 IdentifierPath go to state 95 -State 462 +State 464 - 101 WhileRule: "while" Term "do" Rule • + 103 WhileRule: "while" Term "do" Rule • - $default reduce using rule 101 (WhileRule) + $default reduce using rule 103 (WhileRule) -State 463 +State 465 31 RuleDefinition: "rule" Identifier "(" error ")" "=" Rule • $default reduce using rule 31 (RuleDefinition) -State 464 +State 466 32 RuleDefinition: "rule" Identifier "(" error ")" "->" Type • "=" Rule - "=" shift, and go to state 486 + "=" shift, and go to state 488 -State 465 +State 467 29 RuleDefinition: "rule" Identifier "(" Parameters ")" "=" Rule • $default reduce using rule 29 (RuleDefinition) -State 466 +State 468 30 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type • "=" Rule - "=" shift, and go to state 487 + "=" shift, and go to state 489 -State 467 +State 469 - 58 DeclarationDefinition: "derived" Identifier ":" • MaybeFunctionParameters "->" Type + 60 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 208 (MaybeFunctionParameters) + $default reduce using rule 210 (MaybeFunctionParameters) Type go to state 307 BasicType go to state 111 @@ -10628,20 +10655,20 @@ State 467 RelationType go to state 115 FixedSizedType go to state 116 FunctionParameters go to state 304 - MaybeFunctionParameters go to state 488 + MaybeFunctionParameters go to state 490 Identifier go to state 94 IdentifierPath go to state 190 -State 468 +State 470 - 59 DeclarationDefinition: "rule" Identifier ":" • MaybeFunctionParameters "->" Type + 61 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 208 (MaybeFunctionParameters) + $default reduce using rule 210 (MaybeFunctionParameters) Type go to state 307 BasicType go to state 111 @@ -10651,51 +10678,44 @@ State 468 RelationType go to state 115 FixedSizedType go to state 116 FunctionParameters go to state 304 - MaybeFunctionParameters go to state 489 + MaybeFunctionParameters go to state 491 Identifier go to state 94 IdentifierPath go to state 190 -State 469 - - 52 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions • "}" - 56 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions • ImplementationDefinitionDefinition +State 471 - "derived" shift, and go to state 16 - "rule" shift, and go to state 18 - "}" shift, and go to state 490 + 54 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions • "}" - DerivedDefinition go to state 378 - RuleDefinition go to state 379 - ImplementationDefinitionDefinition go to state 438 + "}" shift, and go to state 492 -State 470 +State 472 - 203 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" • + 205 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" • - $default reduce using rule 203 (RelationType) + $default reduce using rule 205 (RelationType) -State 471 +State 473 - 211 MaybeDefined: "defined" • "{" Term "}" + 213 MaybeDefined: "defined" • "{" Term "}" - "{" shift, and go to state 491 + "{" shift, and go to state 493 -State 472 +State 474 - 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined • MaybeInitially + 35 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined • MaybeInitially - "=" shift, and go to state 492 + "=" shift, and go to state 494 - $default reduce using rule 214 (MaybeInitially) + $default reduce using rule 216 (MaybeInitially) - MaybeInitially go to state 493 + MaybeInitially go to state 495 -State 473 +State 475 26 DerivedDefinition: "derived" Identifier "(" error ")" "->" Type "=" • Term @@ -10723,7 +10743,7 @@ State 473 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 494 + Term go to state 496 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -10755,7 +10775,7 @@ State 473 IdentifierPath go to state 95 -State 474 +State 476 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type "=" • Term @@ -10783,7 +10803,7 @@ State 474 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 495 + Term go to state 497 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -10815,15 +10835,15 @@ State 474 IdentifierPath go to state 95 -State 475 +State 477 - 243 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" • Type MaybeDefined MaybeInitially + 245 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 496 + Type go to state 498 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -10834,9 +10854,9 @@ State 475 IdentifierPath go to state 190 -State 476 +State 478 - 87 ForallRule: "forall" AttributedVariables "in" Term "do" • Rule + 89 ForallRule: "forall" AttributedVariables "in" Term "do" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -10868,7 +10888,7 @@ State 476 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 497 + Rule go to state 499 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -10905,9 +10925,9 @@ State 476 IdentifierPath go to state 95 -State 477 +State 479 - 88 ForallRule: "forall" AttributedVariables "in" Term "with" • Term "do" Rule + 90 ForallRule: "forall" AttributedVariables "in" Term "with" • Term "do" Rule "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -10933,7 +10953,7 @@ State 477 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 498 + Term go to state 500 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -10965,9 +10985,9 @@ State 477 IdentifierPath go to state 95 -State 478 +State 480 - 89 ChooseRule: "choose" AttributedVariables "in" Term "do" • Rule + 91 ChooseRule: "choose" AttributedVariables "in" Term "do" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -10999,7 +11019,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 501 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -11036,9 +11056,9 @@ State 478 IdentifierPath go to state 95 -State 479 +State 481 - 77 ConditionalRule: "if" Term "then" Rule "else" • Rule + 79 ConditionalRule: "if" Term "then" Rule "else" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -11070,7 +11090,7 @@ State 479 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 500 + Rule go to state 502 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -11107,38 +11127,38 @@ State 479 IdentifierPath go to state 95 -State 480 +State 482 - 79 CaseRule: "case" Term "of" "{" error • "}" + 81 CaseRule: "case" Term "of" "{" error • "}" - "}" shift, and go to state 501 + "}" shift, and go to state 503 -State 481 +State 483 - 82 CaseLabel: "default" • ":" Rule + 84 CaseLabel: "default" • ":" Rule - ":" shift, and go to state 502 + ":" shift, and go to state 504 -State 482 +State 484 - 83 CaseLabel: "_" • ":" Rule + 85 CaseLabel: "_" • ":" Rule - ":" shift, and go to state 503 + ":" shift, and go to state 505 -State 483 +State 485 - 78 CaseRule: "case" Term "of" "{" CaseLabels • "}" - 80 CaseLabels: CaseLabels • CaseLabel + 80 CaseRule: "case" Term "of" "{" CaseLabels • "}" + 82 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 481 + "default" shift, and go to state 483 "exists" shift, and go to state 49 "undef" shift, and go to state 50 "false" shift, and go to state 51 @@ -11148,8 +11168,8 @@ State 483 "-" shift, and go to state 55 "(" shift, and go to state 56 "[" shift, and go to state 57 - "}" shift, and go to state 504 - "_" shift, and go to state 482 + "}" shift, and go to state 506 + "_" shift, and go to state 484 "|" shift, and go to state 58 "@" shift, and go to state 59 "binary" shift, and go to state 60 @@ -11160,8 +11180,8 @@ State 483 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - CaseLabel go to state 505 - Term go to state 485 + CaseLabel go to state 507 + Term go to state 487 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -11193,33 +11213,33 @@ State 483 IdentifierPath go to state 95 -State 484 +State 486 - 81 CaseLabels: CaseLabel • + 83 CaseLabels: CaseLabel • - $default reduce using rule 81 (CaseLabels) + $default reduce using rule 83 (CaseLabels) -State 485 +State 487 - 84 CaseLabel: Term • ":" Rule - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -11228,7 +11248,7 @@ State 485 "+" shift, and go to state 152 "-" shift, and go to state 153 "=" shift, and go to state 154 - ":" shift, and go to state 506 + ":" shift, and go to state 508 "<" shift, and go to state 155 ">" shift, and go to state 156 "*" shift, and go to state 157 @@ -11241,7 +11261,7 @@ State 485 ">=" shift, and go to state 164 -State 486 +State 488 32 RuleDefinition: "rule" Identifier "(" error ")" "->" Type "=" • Rule @@ -11275,7 +11295,7 @@ State 486 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 507 + Rule go to state 509 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -11312,7 +11332,7 @@ State 486 IdentifierPath go to state 95 -State 487 +State 489 30 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type "=" • Rule @@ -11346,7 +11366,7 @@ State 487 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 508 + Rule go to state 510 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -11383,30 +11403,30 @@ State 487 IdentifierPath go to state 95 -State 488 +State 490 - 58 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters • "->" Type + 60 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters • "->" Type - "->" shift, and go to state 509 + "->" shift, and go to state 511 -State 489 +State 491 - 59 DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters • "->" Type + 61 DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters • "->" Type - "->" shift, and go to state 510 + "->" shift, and go to state 512 -State 490 +State 492 - 52 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" • + 54 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" • - $default reduce using rule 52 (ImplementationDefinition) + $default reduce using rule 54 (ImplementationDefinition) -State 491 +State 493 - 211 MaybeDefined: "defined" "{" • Term "}" + 213 MaybeDefined: "defined" "{" • Term "}" "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -11432,7 +11452,7 @@ State 491 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 511 + Term go to state 513 SimpleOrClaspedTerm go to state 67 OperatorExpression go to state 68 CallExpression go to state 69 @@ -11464,40 +11484,40 @@ State 491 IdentifierPath go to state 95 -State 492 +State 494 - 213 MaybeInitially: "=" • "{" Initializers "}" + 215 MaybeInitially: "=" • "{" Initializers "}" - "{" shift, and go to state 512 + "{" shift, and go to state 514 -State 493 +State 495 - 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially • + 35 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially • - $default reduce using rule 33 (FunctionDefinition) + $default reduce using rule 35 (FunctionDefinition) -State 494 +State 496 26 DerivedDefinition: "derived" Identifier "(" error ")" "->" Type "=" Term • - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" 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 "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -11520,26 +11540,26 @@ State 494 $default reduce using rule 26 (DerivedDefinition) -State 495 +State 497 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type "=" Term • - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" 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 "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -11562,46 +11582,46 @@ State 495 $default reduce using rule 25 (DerivedDefinition) -State 496 +State 498 - 243 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type • MaybeDefined MaybeInitially + 245 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type • MaybeDefined MaybeInitially - "defined" shift, and go to state 471 + "defined" shift, and go to state 473 - $default reduce using rule 212 (MaybeDefined) + $default reduce using rule 214 (MaybeDefined) - MaybeDefined go to state 513 + MaybeDefined go to state 515 -State 497 +State 499 - 87 ForallRule: "forall" AttributedVariables "in" Term "do" Rule • + 89 ForallRule: "forall" AttributedVariables "in" Term "do" Rule • - $default reduce using rule 87 (ForallRule) + $default reduce using rule 89 (ForallRule) -State 498 +State 500 - 88 ForallRule: "forall" AttributedVariables "in" Term "with" Term • "do" Rule - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - - "do" shift, and go to state 514 + 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 "and" shift, and go to state 148 "or" shift, and go to state 149 "xor" shift, and go to state 150 @@ -11621,30 +11641,30 @@ State 498 ">=" shift, and go to state 164 -State 499 +State 501 - 89 ChooseRule: "choose" AttributedVariables "in" Term "do" Rule • + 91 ChooseRule: "choose" AttributedVariables "in" Term "do" Rule • - $default reduce using rule 89 (ChooseRule) + $default reduce using rule 91 (ChooseRule) -State 500 +State 502 - 77 ConditionalRule: "if" Term "then" Rule "else" Rule • + 79 ConditionalRule: "if" Term "then" Rule "else" Rule • - $default reduce using rule 77 (ConditionalRule) + $default reduce using rule 79 (ConditionalRule) -State 501 +State 503 - 79 CaseRule: "case" Term "of" "{" error "}" • + 81 CaseRule: "case" Term "of" "{" error "}" • - $default reduce using rule 79 (CaseRule) + $default reduce using rule 81 (CaseRule) -State 502 +State 504 - 82 CaseLabel: "default" ":" • Rule + 84 CaseLabel: "default" ":" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -11676,7 +11696,7 @@ State 502 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 515 + Rule go to state 517 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -11713,9 +11733,9 @@ State 502 IdentifierPath go to state 95 -State 503 +State 505 - 83 CaseLabel: "_" ":" • Rule + 85 CaseLabel: "_" ":" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -11747,7 +11767,7 @@ State 503 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 516 + Rule go to state 518 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -11784,23 +11804,23 @@ State 503 IdentifierPath go to state 95 -State 504 +State 506 - 78 CaseRule: "case" Term "of" "{" CaseLabels "}" • + 80 CaseRule: "case" Term "of" "{" CaseLabels "}" • - $default reduce using rule 78 (CaseRule) + $default reduce using rule 80 (CaseRule) -State 505 +State 507 - 80 CaseLabels: CaseLabels CaseLabel • + 82 CaseLabels: CaseLabels CaseLabel • - $default reduce using rule 80 (CaseLabels) + $default reduce using rule 82 (CaseLabels) -State 506 +State 508 - 84 CaseLabel: Term ":" • Rule + 86 CaseLabel: Term ":" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -11832,7 +11852,7 @@ State 506 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 517 + Rule go to state 519 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -11869,29 +11889,29 @@ State 506 IdentifierPath go to state 95 -State 507 +State 509 32 RuleDefinition: "rule" Identifier "(" error ")" "->" Type "=" Rule • $default reduce using rule 32 (RuleDefinition) -State 508 +State 510 30 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type "=" Rule • $default reduce using rule 30 (RuleDefinition) -State 509 +State 511 - 58 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" • Type + 60 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 518 + Type go to state 520 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -11902,15 +11922,15 @@ State 509 IdentifierPath go to state 190 -State 510 +State 512 - 59 DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters "->" • Type + 61 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 519 + Type go to state 521 BasicType go to state 111 TupleType go to state 112 RecordType go to state 113 @@ -11921,26 +11941,26 @@ State 510 IdentifierPath go to state 190 -State 511 +State 513 - 120 OperatorExpression: Term • "+" Term - 121 | 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 • "or" Term - 133 | Term • "xor" Term - 134 | Term • "and" Term - 135 | Term • "=>" Term - 136 | Term • "implies" Term - 211 MaybeDefined: "defined" "{" 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 + 213 MaybeDefined: "defined" "{" Term • "}" "and" shift, and go to state 148 "or" shift, and go to state 149 @@ -11949,7 +11969,7 @@ State 511 "+" shift, and go to state 152 "-" shift, and go to state 153 "=" shift, and go to state 154 - "}" shift, and go to state 520 + "}" shift, and go to state 522 "<" shift, and go to state 155 ">" shift, and go to state 156 "*" shift, and go to state 157 @@ -11962,9 +11982,9 @@ State 511 ">=" shift, and go to state 164 -State 512 +State 514 - 213 MaybeInitially: "=" "{" • Initializers "}" + 215 MaybeInitially: "=" "{" • Initializers "}" "let" shift, and go to state 45 "in" shift, and go to state 8 @@ -12018,26 +12038,26 @@ State 512 RangeLiteral go to state 91 TupleLiteral go to state 172 RecordLiteral go to state 93 - Initializers go to state 521 + Initializers go to state 523 Initializer go to state 174 Identifier go to state 94 IdentifierPath go to state 95 -State 513 +State 515 - 243 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined • MaybeInitially + 245 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined • MaybeInitially - "=" shift, and go to state 492 + "=" shift, and go to state 494 - $default reduce using rule 214 (MaybeInitially) + $default reduce using rule 216 (MaybeInitially) - MaybeInitially go to state 522 + MaybeInitially go to state 524 -State 514 +State 516 - 88 ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" • Rule + 90 ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" • Rule "seq" shift, and go to state 259 "par" shift, and go to state 260 @@ -12069,7 +12089,7 @@ State 514 "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 523 + Rule go to state 525 SkipRule go to state 273 ConditionalRule go to state 274 CaseRule go to state 275 @@ -12106,73 +12126,73 @@ State 514 IdentifierPath go to state 95 -State 515 - - 82 CaseLabel: "default" ":" Rule • - - $default reduce using rule 82 (CaseLabel) - - -State 516 - - 83 CaseLabel: "_" ":" Rule • - - $default reduce using rule 83 (CaseLabel) - - State 517 - 84 CaseLabel: Term ":" Rule • + 84 CaseLabel: "default" ":" Rule • $default reduce using rule 84 (CaseLabel) State 518 - 58 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type • + 85 CaseLabel: "_" ":" Rule • - $default reduce using rule 58 (DeclarationDefinition) + $default reduce using rule 85 (CaseLabel) State 519 - 59 DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters "->" Type • + 86 CaseLabel: Term ":" Rule • - $default reduce using rule 59 (DeclarationDefinition) + $default reduce using rule 86 (CaseLabel) State 520 - 211 MaybeDefined: "defined" "{" Term "}" • + 60 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type • - $default reduce using rule 211 (MaybeDefined) + $default reduce using rule 60 (DeclarationDefinition) State 521 - 213 MaybeInitially: "=" "{" Initializers • "}" - 215 Initializers: Initializers • "," Initializer + 61 DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters "->" Type • - "}" shift, and go to state 524 - "," shift, and go to state 250 + $default reduce using rule 61 (DeclarationDefinition) State 522 - 243 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially • + 213 MaybeDefined: "defined" "{" Term "}" • - $default reduce using rule 243 (LocalFunctionDefinition) + $default reduce using rule 213 (MaybeDefined) State 523 - 88 ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" Rule • + 215 MaybeInitially: "=" "{" Initializers • "}" + 217 Initializers: Initializers • "," Initializer - $default reduce using rule 88 (ForallRule) + "}" shift, and go to state 526 + "," shift, and go to state 250 State 524 - 213 MaybeInitially: "=" "{" Initializers "}" • + 245 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially • + + $default reduce using rule 245 (LocalFunctionDefinition) + + +State 525 + + 90 ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" Rule • + + $default reduce using rule 90 (ForallRule) + + +State 526 + + 215 MaybeInitially: "=" "{" Initializers "}" • - $default reduce using rule 213 (MaybeInitially) + $default reduce using rule 215 (MaybeInitially) diff --git a/src/various/GrammarParser.tab.h b/src/various/GrammarParser.tab.h index 35aef347..a20abf67 100644 --- a/src/various/GrammarParser.tab.h +++ b/src/various/GrammarParser.tab.h @@ -602,6 +602,7 @@ namespace libcasm_fe { // LocalFunctionDefinition char dummy33[sizeof (FunctionDefinition::Ptr)]; + // FunctionDefinitions // LocalFunctionDefinitions char dummy34[sizeof (FunctionDefinitions::Ptr)]; @@ -1035,101 +1036,102 @@ namespace libcasm_fe { S_EnumerationDefinition = 100, // EnumerationDefinition S_DerivedDefinition = 101, // DerivedDefinition S_RuleDefinition = 102, // RuleDefinition - 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_FeatureDefinition = 111, // FeatureDefinition - S_FeatureDeclarationOrDefinition = 112, // FeatureDeclarationOrDefinition - S_FeatureDeclarationsAndDefinitions = 113, // FeatureDeclarationsAndDefinitions - S_ImplementationDefinition = 114, // ImplementationDefinition - S_ImplementationDefinitionDefinition = 115, // ImplementationDefinitionDefinition - S_ImplementationDefinitionDefinitions = 116, // ImplementationDefinitionDefinitions - S_DeclarationDefinition = 117, // DeclarationDefinition - S_Rules = 118, // Rules - S_Rule = 119, // Rule - S_SkipRule = 120, // SkipRule - S_ConditionalRule = 121, // ConditionalRule - S_CaseRule = 122, // CaseRule - S_CaseLabels = 123, // CaseLabels - S_CaseLabel = 124, // CaseLabel - S_LetRule = 125, // LetRule - S_LocalRule = 126, // LocalRule - S_ForallRule = 127, // ForallRule - S_ChooseRule = 128, // ChooseRule - S_IterateRule = 129, // IterateRule - S_BlockRule = 130, // BlockRule - S_SequenceRule = 131, // SequenceRule - S_UpdateRule = 132, // UpdateRule - S_CallRule = 133, // CallRule - S_WhileRule = 134, // WhileRule - S_Terms = 135, // Terms - S_Term = 136, // Term - S_SimpleOrClaspedTerm = 137, // SimpleOrClaspedTerm - S_OperatorExpression = 138, // OperatorExpression - S_CallExpression = 139, // CallExpression - S_DirectCallExpression = 140, // DirectCallExpression - S_MethodCallExpression = 141, // MethodCallExpression - S_LiteralCallExpression = 142, // LiteralCallExpression - S_IndirectCallExpression = 143, // IndirectCallExpression - S_TypeCastingExpression = 144, // TypeCastingExpression - S_LetExpression = 145, // LetExpression - S_ConditionalExpression = 146, // ConditionalExpression - S_ChooseExpression = 147, // ChooseExpression - S_UniversalQuantifierExpression = 148, // UniversalQuantifierExpression - S_ExistentialQuantifierExpression = 149, // ExistentialQuantifierExpression - S_CardinalityExpression = 150, // CardinalityExpression - S_Literal = 151, // Literal - S_UndefinedLiteral = 152, // UndefinedLiteral - S_BooleanLiteral = 153, // BooleanLiteral - S_IntegerLiteral = 154, // IntegerLiteral - S_RationalLiteral = 155, // RationalLiteral - S_DecimalLiteral = 156, // DecimalLiteral - S_BinaryLiteral = 157, // BinaryLiteral - S_StringLiteral = 158, // StringLiteral - S_ReferenceLiteral = 159, // ReferenceLiteral - S_ListLiteral = 160, // ListLiteral - S_RangeLiteral = 161, // RangeLiteral - S_TupleLiteral = 162, // TupleLiteral - S_RecordLiteral = 163, // RecordLiteral - S_Assignments = 164, // Assignments - S_Assignment = 165, // Assignment - S_Types = 166, // Types - S_Type = 167, // Type - S_BasicType = 168, // BasicType - S_TupleType = 169, // TupleType - S_RecordType = 170, // RecordType - S_TemplateType = 171, // TemplateType - S_RelationType = 172, // RelationType - S_FixedSizedType = 173, // FixedSizedType - S_FunctionParameters = 174, // FunctionParameters - S_MaybeFunctionParameters = 175, // MaybeFunctionParameters - S_Parameters = 176, // Parameters - S_MaybeDefined = 177, // MaybeDefined - S_MaybeInitially = 178, // MaybeInitially - S_Initializers = 179, // Initializers - S_Initializer = 180, // Initializer - S_Identifier = 181, // Identifier - S_IdentifierPath = 182, // IdentifierPath - S_Variable = 183, // Variable - S_AttributedVariables = 184, // AttributedVariables - S_TypedVariables = 185, // TypedVariables - S_TypedVariable = 186, // TypedVariable - S_AttributedVariable = 187, // AttributedVariable - S_TypedAttributedVariable = 188, // TypedAttributedVariable - S_VariableBindings = 189, // VariableBindings - S_VariableBinding = 190, // VariableBinding - S_LocalFunctionDefinitions = 191, // LocalFunctionDefinitions - S_AttributedLocalFunctionDefinition = 192, // AttributedLocalFunctionDefinition - S_LocalFunctionDefinition = 193, // LocalFunctionDefinition - S_Attributes = 194, // Attributes - S_Attribute = 195, // Attribute - S_BasicAttribute = 196, // BasicAttribute - S_ExpressionAttribute = 197 // ExpressionAttribute + 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 }; }; @@ -1384,6 +1386,7 @@ namespace libcasm_fe { value.move< FunctionDefinition::Ptr > (std::move (that.value)); break; + case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.move< FunctionDefinitions::Ptr > (std::move (that.value)); break; @@ -3046,6 +3049,7 @@ switch (yykind) value.template destroy< FunctionDefinition::Ptr > (); break; + case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.template destroy< FunctionDefinitions::Ptr > (); break; @@ -5170,8 +5174,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 2854, ///< Last index in yytable_. - yynnts_ = 105, ///< Number of nonterminal symbols. + yylast_ = 2798, ///< Last index in yytable_. + yynnts_ = 106, ///< Number of nonterminal symbols. yyfinal_ = 13 ///< Termination state number. }; @@ -5467,6 +5471,7 @@ switch (yykind) value.copy< FunctionDefinition::Ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.copy< FunctionDefinitions::Ptr > (YY_MOVE (that.value)); break; @@ -5937,6 +5942,7 @@ switch (yykind) value.move< FunctionDefinition::Ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_FunctionDefinitions: // FunctionDefinitions case symbol_kind::S_LocalFunctionDefinitions: // LocalFunctionDefinitions value.move< FunctionDefinitions::Ptr > (YY_MOVE (s.value)); break; @@ -6223,7 +6229,7 @@ switch (yykind) #line 51 "../../obj/src/GrammarParser.y" } // libcasm_fe -#line 6227 "GrammarParser.tab.h" +#line 6233 "GrammarParser.tab.h" diff --git a/src/various/GrammarParser.xml b/src/various/GrammarParser.xml index e58b0e02..9526fe74 100644 --- a/src/various/GrammarParser.xml +++ b/src/various/GrammarParser.xml @@ -276,6 +276,19 @@ + FunctionDefinitions + + FunctionDefinitions + FunctionDefinition + + + + FunctionDefinitions + + FunctionDefinition + + + FunctionDefinition "function" @@ -288,26 +301,26 @@ MaybeInitially - + EnumeratorDefinition Identifier - + EnumeratorDefinition Attributes Identifier - + EnumeratorDefinition error - + Enumerators Enumerators @@ -315,13 +328,13 @@ EnumeratorDefinition - + Enumerators EnumeratorDefinition - + UsingDefinition "using" @@ -330,14 +343,14 @@ Type - + UsingPathDefinition "using" IdentifierPath - + UsingPathDefinition "using" @@ -346,7 +359,7 @@ "*" - + InvariantDefinition "invariant" @@ -355,14 +368,14 @@ Term - + ImportDefinition "import" IdentifierPath - + ImportDefinition "import" @@ -371,18 +384,18 @@ Identifier - + StructureDefinition "structure" Identifier "=" "{" - FunctionDefinition + FunctionDefinitions "}" - + FeatureDefinition "feature" @@ -393,38 +406,38 @@ "}" - + FeatureDeclarationOrDefinition DeclarationDefinition - + FeatureDeclarationOrDefinition DerivedDefinition - + FeatureDeclarationOrDefinition RuleDefinition - + FeatureDeclarationsAndDefinitions FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition - + FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition - + ImplementationDefinition "implements" @@ -437,7 +450,7 @@ "}" - + ImplementationDefinition "implements" @@ -448,32 +461,32 @@ "}" - + ImplementationDefinitionDefinition DerivedDefinition - + ImplementationDefinitionDefinition RuleDefinition - + ImplementationDefinitionDefinitions - ImplementationDefinitionDefinitions ImplementationDefinitionDefinition + ImplementationDefinitionDefinitions - + ImplementationDefinitionDefinitions ImplementationDefinitionDefinition - + DeclarationDefinition "derived" @@ -484,7 +497,7 @@ Type - + DeclarationDefinition "rule" @@ -495,104 +508,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" @@ -601,7 +614,7 @@ Rule - + ConditionalRule "if" @@ -612,7 +625,7 @@ Rule - + CaseRule "case" @@ -623,7 +636,7 @@ "}" - + CaseRule "case" @@ -634,20 +647,20 @@ "}" - + CaseLabels CaseLabels CaseLabel - + CaseLabels CaseLabel - + CaseLabel "default" @@ -655,7 +668,7 @@ Rule - + CaseLabel "_" @@ -663,7 +676,7 @@ Rule - + CaseLabel Term @@ -671,7 +684,7 @@ Rule - + LetRule "let" @@ -680,7 +693,7 @@ Rule - + LocalRule "local" @@ -689,7 +702,7 @@ Rule - + ForallRule "forall" @@ -700,7 +713,7 @@ Rule - + ForallRule "forall" @@ -713,7 +726,7 @@ Rule - + ChooseRule "choose" @@ -724,14 +737,14 @@ Rule - + IterateRule "iterate" Rule - + BlockRule "{" @@ -739,7 +752,7 @@ "}" - + BlockRule "par" @@ -747,7 +760,7 @@ "endpar" - + BlockRule "{" @@ -755,7 +768,7 @@ "}" - + BlockRule "par" @@ -763,7 +776,7 @@ "endpar" - + SequenceRule "{|" @@ -771,7 +784,7 @@ "|}" - + SequenceRule "seq" @@ -779,7 +792,7 @@ "endseq" - + SequenceRule "{|" @@ -787,7 +800,7 @@ "|}" - + SequenceRule "seq" @@ -795,7 +808,7 @@ "endseq" - + UpdateRule DirectCallExpression @@ -803,13 +816,13 @@ Term - + CallRule CallExpression - + WhileRule "while" @@ -818,7 +831,7 @@ Rule - + Terms Terms @@ -826,67 +839,67 @@ Term - + Terms Term - + Term SimpleOrClaspedTerm - + Term TypeCastingExpression - + Term OperatorExpression - + Term LetExpression - + Term ConditionalExpression - + Term ChooseExpression - + Term UniversalQuantifierExpression - + Term ExistentialQuantifierExpression - + Term CardinalityExpression - + SimpleOrClaspedTerm "(" @@ -894,7 +907,7 @@ ")" - + SimpleOrClaspedTerm "(" @@ -902,39 +915,39 @@ ")" - + SimpleOrClaspedTerm CallExpression - + SimpleOrClaspedTerm LiteralCallExpression - + SimpleOrClaspedTerm Literal - + SimpleOrClaspedTerm "+" SimpleOrClaspedTerm - + SimpleOrClaspedTerm "-" SimpleOrClaspedTerm - + OperatorExpression Term @@ -942,7 +955,7 @@ Term - + OperatorExpression Term @@ -950,7 +963,7 @@ Term - + OperatorExpression Term @@ -958,7 +971,7 @@ Term - + OperatorExpression Term @@ -966,7 +979,7 @@ Term - + OperatorExpression Term @@ -974,7 +987,7 @@ Term - + OperatorExpression Term @@ -982,7 +995,7 @@ Term - + OperatorExpression Term @@ -990,7 +1003,7 @@ Term - + OperatorExpression Term @@ -998,7 +1011,7 @@ Term - + OperatorExpression Term @@ -1006,7 +1019,7 @@ Term - + OperatorExpression Term @@ -1014,7 +1027,7 @@ Term - + OperatorExpression Term @@ -1022,7 +1035,7 @@ Term - + OperatorExpression Term @@ -1030,7 +1043,7 @@ Term - + OperatorExpression Term @@ -1038,7 +1051,7 @@ Term - + OperatorExpression Term @@ -1046,7 +1059,7 @@ Term - + OperatorExpression Term @@ -1054,7 +1067,7 @@ Term - + OperatorExpression Term @@ -1062,7 +1075,7 @@ Term - + OperatorExpression Term @@ -1070,38 +1083,38 @@ Term - + OperatorExpression "not" Term - + CallExpression DirectCallExpression - + CallExpression MethodCallExpression - + CallExpression IndirectCallExpression - + DirectCallExpression IdentifierPath - + DirectCallExpression IdentifierPath @@ -1109,7 +1122,7 @@ ")" - + DirectCallExpression IdentifierPath @@ -1118,7 +1131,7 @@ ")" - + DirectCallExpression IdentifierPath @@ -1127,7 +1140,7 @@ ")" - + MethodCallExpression SimpleOrClaspedTerm @@ -1135,7 +1148,7 @@ Identifier - + MethodCallExpression SimpleOrClaspedTerm @@ -1145,7 +1158,7 @@ ")" - + MethodCallExpression SimpleOrClaspedTerm @@ -1156,7 +1169,7 @@ ")" - + MethodCallExpression SimpleOrClaspedTerm @@ -1167,7 +1180,7 @@ ")" - + LiteralCallExpression SimpleOrClaspedTerm @@ -1175,7 +1188,7 @@ IntegerLiteral - + IndirectCallExpression CallExpression @@ -1183,7 +1196,7 @@ ")" - + IndirectCallExpression CallExpression @@ -1192,7 +1205,7 @@ ")" - + IndirectCallExpression CallExpression @@ -1201,7 +1214,7 @@ ")" - + TypeCastingExpression SimpleOrClaspedTerm @@ -1209,7 +1222,7 @@ Type - + LetExpression "let" @@ -1218,7 +1231,7 @@ Term - + ConditionalExpression "if" @@ -1229,7 +1242,7 @@ Term - + ChooseExpression "choose" @@ -1240,7 +1253,7 @@ Term - + UniversalQuantifierExpression "forall" @@ -1251,7 +1264,7 @@ Term - + ExistentialQuantifierExpression "exists" @@ -1262,7 +1275,7 @@ Term - + CardinalityExpression "|" @@ -1270,147 +1283,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 "[" @@ -1418,7 +1431,7 @@ "]" - + ListLiteral "[" @@ -1426,7 +1439,7 @@ "]" - + RangeLiteral "[" @@ -1436,7 +1449,7 @@ "]" - + TupleLiteral "(" @@ -1446,7 +1459,7 @@ ")" - + RecordLiteral "(" @@ -1454,7 +1467,7 @@ ")" - + Assignments Assignments @@ -1462,13 +1475,13 @@ Assignment - + Assignments Assignment - + Assignment Identifier @@ -1476,7 +1489,7 @@ Term - + Types Types @@ -1484,55 +1497,55 @@ Type - + Types Type - + Type BasicType - + Type TupleType - + Type RecordType - + Type TemplateType - + Type RelationType - + Type FixedSizedType - + BasicType IdentifierPath - + TupleType "(" @@ -1542,7 +1555,7 @@ ")" - + RecordType "(" @@ -1552,7 +1565,7 @@ ")" - + TemplateType IdentifierPath @@ -1561,7 +1574,7 @@ ">" - + RelationType IdentifierPath @@ -1572,7 +1585,7 @@ ">" - + FixedSizedType IdentifierPath @@ -1580,7 +1593,7 @@ Term - + FunctionParameters FunctionParameters @@ -1588,25 +1601,25 @@ Type - + FunctionParameters Type - + MaybeFunctionParameters FunctionParameters - + MaybeFunctionParameters - + Parameters Parameters @@ -1614,13 +1627,13 @@ TypedAttributedVariable - + Parameters TypedAttributedVariable - + MaybeDefined "defined" @@ -1629,13 +1642,13 @@ "}" - + MaybeDefined - + MaybeInitially "=" @@ -1644,13 +1657,13 @@ "}" - + MaybeInitially - + Initializers Initializers @@ -1658,19 +1671,19 @@ Initializer - + Initializers Initializer - + Initializer Term - + Initializer "(" @@ -1680,7 +1693,7 @@ Term - + Initializer TupleLiteral @@ -1688,19 +1701,19 @@ Term - + Identifier "identifier" - + Identifier "in" - + IdentifierPath IdentifierPath @@ -1708,25 +1721,25 @@ Identifier - + IdentifierPath Identifier - + Variable TypedVariable - + Variable Identifier - + AttributedVariables AttributedVariables @@ -1734,13 +1747,13 @@ AttributedVariable - + AttributedVariables AttributedVariable - + TypedVariables TypedVariables @@ -1748,13 +1761,13 @@ TypedVariable - + TypedVariables TypedVariable - + TypedVariable Identifier @@ -1762,33 +1775,33 @@ Type - + AttributedVariable Attributes Variable - + AttributedVariable Variable - + TypedAttributedVariable Attributes TypedVariable - + TypedAttributedVariable TypedVariable - + VariableBindings VariableBindings @@ -1796,13 +1809,13 @@ VariableBinding - + VariableBindings VariableBinding - + VariableBinding AttributedVariable @@ -1810,7 +1823,7 @@ Term - + LocalFunctionDefinitions LocalFunctionDefinitions @@ -1818,32 +1831,32 @@ AttributedLocalFunctionDefinition - + LocalFunctionDefinitions AttributedLocalFunctionDefinition - + AttributedLocalFunctionDefinition Attributes LocalFunctionDefinition - + AttributedLocalFunctionDefinition LocalFunctionDefinition - + AttributedLocalFunctionDefinition error - + LocalFunctionDefinition Identifier @@ -1855,20 +1868,20 @@ MaybeInitially - + Attributes Attributes Attribute - + Attributes Attribute - + Attribute "[" @@ -1876,7 +1889,7 @@ "]" - + Attribute "[" @@ -1884,7 +1897,7 @@ "]" - + Attribute "[" @@ -1892,13 +1905,13 @@ "]" - + BasicAttribute Identifier - + ExpressionAttribute Identifier @@ -2011,101 +2024,102 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2117,11 +2131,11 @@ - - + + @@ -2154,13 +2168,13 @@ - - - - + + - - + + + + @@ -2223,22 +2237,22 @@ - - - + - - - - + + + + + + @@ -2282,10 +2296,10 @@ - - - + + + @@ -2301,13 +2315,13 @@ - + - + @@ -2315,7 +2329,7 @@ - + @@ -2329,13 +2343,13 @@ - + - + @@ -2343,13 +2357,13 @@ - + - + @@ -2357,8 +2371,6 @@ - - @@ -2441,16 +2453,18 @@ - - + + - + + + "]" - + @@ -2510,7 +2524,7 @@ - + @@ -2518,7 +2532,7 @@ - + @@ -2532,7 +2546,7 @@ - + @@ -2576,10 +2590,10 @@ - - + + @@ -2600,8 +2614,8 @@ - - + + @@ -2618,8 +2632,8 @@ - - + + @@ -2641,8 +2655,8 @@ - - + + @@ -2658,13 +2672,13 @@ - - - - + + + + @@ -2681,9 +2695,9 @@ - - - + + + @@ -2699,12 +2713,12 @@ - - - - + + + + @@ -2721,9 +2735,9 @@ - - - + + + @@ -2739,9 +2753,9 @@ - - - + + + @@ -2757,10 +2771,8 @@ - - - - + + @@ -2771,10 +2783,12 @@ - - + + + + @@ -2799,9 +2813,9 @@ - - - + + + @@ -2850,22 +2864,22 @@ - - - + - - - - + + + + + + @@ -3128,23 +3142,23 @@ - - - - - + + + - - - - - + + + + + + + @@ -3197,13 +3211,13 @@ - + - + @@ -3211,13 +3225,13 @@ - + - + @@ -3225,22 +3239,22 @@ - - - - - - - + + + + + - - + + - - + + + + @@ -3264,21 +3278,21 @@ - - - - - + + + - - + + - - + + + + @@ -3301,21 +3315,21 @@ - - - - - + + + - - + + - - + + + + @@ -3338,8 +3352,6 @@ - - @@ -3390,9 +3402,9 @@ - + @@ -3423,10 +3435,12 @@ - - + + + + @@ -3492,21 +3506,21 @@ - - - - - + + + - - + + - - + + + + @@ -3529,13 +3543,13 @@ - + - + @@ -3543,13 +3557,13 @@ - + - + @@ -3557,13 +3571,13 @@ - + - + @@ -3571,8 +3585,6 @@ - - @@ -3605,9 +3617,9 @@ - + @@ -3656,10 +3668,12 @@ - - + + + + @@ -3725,16 +3739,14 @@ - - - - - + + + @@ -3748,8 +3760,8 @@ - - + + @@ -3776,10 +3788,12 @@ - - + + + + @@ -3829,16 +3843,14 @@ - - - - - + + + @@ -3852,8 +3864,8 @@ - - + + @@ -3880,10 +3892,12 @@ - - + + + + @@ -3933,8 +3947,6 @@ - - @@ -3945,11 +3957,11 @@ - - + + @@ -4020,16 +4032,18 @@ - - + + - - + + + + @@ -4099,8 +4113,6 @@ - - @@ -4180,19 +4192,21 @@ - - + - - + + + + + @@ -4261,15 +4275,13 @@ - - - - + + @@ -4283,9 +4295,9 @@ - - - + + + @@ -4312,10 +4324,12 @@ - - + + + + @@ -4365,11 +4379,11 @@ - - - + + + @@ -4386,13 +4400,13 @@ - + - + @@ -4400,13 +4414,13 @@ - + - + @@ -4414,13 +4428,13 @@ - + - + @@ -4428,13 +4442,13 @@ - + - + @@ -4442,13 +4456,13 @@ - + - + @@ -4456,13 +4470,13 @@ - + - + @@ -4470,8 +4484,6 @@ - - @@ -4487,7 +4499,9 @@ - + + + "]" @@ -4515,7 +4529,7 @@ - + @@ -4523,7 +4537,7 @@ - + "end of file" error @@ -4606,12 +4620,12 @@ "identifier" - - - + + + @@ -4620,7 +4634,7 @@ - + @@ -4628,13 +4642,13 @@ - + - + @@ -4642,7 +4656,7 @@ - + "end of file" error @@ -4726,9 +4740,9 @@ "identifier" - - + + @@ -4736,23 +4750,23 @@ - + - CALL < "(" + CALL < "(" - + - + @@ -4760,13 +4774,13 @@ - + - + @@ -4774,13 +4788,13 @@ - + - + @@ -4788,13 +4802,13 @@ - + - + @@ -4802,13 +4816,13 @@ - + - + @@ -4816,13 +4830,13 @@ - + - + @@ -4830,13 +4844,13 @@ - + - + @@ -4844,13 +4858,13 @@ - + - + @@ -4858,13 +4872,13 @@ - + - + @@ -4872,13 +4886,13 @@ - + - + @@ -4886,13 +4900,13 @@ - + - + @@ -4900,13 +4914,13 @@ - + - + @@ -4914,13 +4928,13 @@ - + - + @@ -4928,13 +4942,13 @@ - + - + @@ -4942,13 +4956,13 @@ - + - + @@ -4956,13 +4970,13 @@ - + - + @@ -4970,13 +4984,13 @@ - + - + @@ -4984,13 +4998,13 @@ - + - + @@ -4998,13 +5012,13 @@ - + - + @@ -5012,13 +5026,13 @@ - + - + @@ -5026,13 +5040,13 @@ - + - + @@ -5040,13 +5054,13 @@ - + - + @@ -5054,13 +5068,13 @@ - + - + @@ -5068,13 +5082,13 @@ - + - + @@ -5082,13 +5096,13 @@ - + - + @@ -5096,7 +5110,7 @@ - + "end of file" error @@ -5181,10 +5195,10 @@ "identifier" - - - + + + @@ -5193,23 +5207,23 @@ - + - CALL_WITHOUT_ARGS < "(" + CALL_WITHOUT_ARGS < "(" - + - + @@ -5217,13 +5231,13 @@ - + - + @@ -5232,8 +5246,6 @@ - - @@ -5316,8 +5328,8 @@ - - + + @@ -5325,6 +5337,8 @@ + + @@ -5410,7 +5424,7 @@ "[" - + @@ -5478,8 +5492,8 @@ - - + + "end of file" error @@ -5505,7 +5519,7 @@ - + @@ -5513,7 +5527,7 @@ - + "end of file" error @@ -5531,8 +5545,8 @@ "[" - - + + @@ -5540,7 +5554,7 @@ - + @@ -5548,7 +5562,7 @@ - + @@ -5562,7 +5576,7 @@ - + "end of file" error @@ -5580,8 +5594,8 @@ "[" - - + + @@ -5590,7 +5604,7 @@ - + @@ -5598,7 +5612,7 @@ - + @@ -5612,7 +5626,7 @@ - + @@ -5626,8 +5640,6 @@ - - @@ -5636,19 +5648,21 @@ - - + + - - + + - - + + + + @@ -5676,7 +5690,7 @@ - + @@ -5690,13 +5704,13 @@ - + - + @@ -5704,13 +5718,13 @@ - + - + @@ -5718,13 +5732,13 @@ - + - + @@ -5732,13 +5746,13 @@ - + - + @@ -5746,13 +5760,13 @@ - + - + @@ -5760,13 +5774,13 @@ - + - + @@ -5774,16 +5788,16 @@ - - + + "=" - - - + + + @@ -5794,7 +5808,7 @@ - + @@ -5802,7 +5816,7 @@ - + @@ -5844,14 +5858,14 @@ - + "in" "=" "," - + @@ -5859,7 +5873,7 @@ - + @@ -5867,13 +5881,13 @@ - + - + @@ -5881,13 +5895,13 @@ - + - + @@ -5895,7 +5909,7 @@ - + @@ -5909,8 +5923,8 @@ - - + + @@ -5925,13 +5939,13 @@ - + - + @@ -5939,16 +5953,16 @@ - - - - - - - - - + + + + + + + + + @@ -5968,8 +5982,8 @@ - - + + @@ -5984,13 +5998,13 @@ - + - + @@ -5998,8 +6012,8 @@ - - + + @@ -6014,8 +6028,6 @@ - - @@ -6031,7 +6043,9 @@ - + + + @@ -6062,8 +6076,8 @@ - - + + @@ -6078,8 +6092,6 @@ - - @@ -6095,7 +6107,9 @@ - + + + "end of file" error @@ -6183,33 +6197,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 @@ -6294,27 +6308,27 @@ "identifier" - - + + - + - "." < UPLUS + "." < UPLUS - + "end of file" error @@ -6399,27 +6413,27 @@ "identifier" - - + + - + - "." < UMINUS + "." < UMINUS - + @@ -6433,8 +6447,8 @@ - - + + @@ -6448,14 +6462,12 @@ - + "," - - - + @@ -6471,6 +6483,8 @@ + + @@ -6495,7 +6509,7 @@ - + @@ -6503,8 +6517,8 @@ - - + + @@ -6519,13 +6533,13 @@ - + - + @@ -6533,8 +6547,8 @@ - - + + "as" "and" @@ -6568,7 +6582,7 @@ - + @@ -6576,7 +6590,7 @@ - + @@ -6590,13 +6604,13 @@ - + - + @@ -6604,8 +6618,8 @@ - - + + @@ -6620,14 +6634,12 @@ - + "]" "," - - @@ -6643,7 +6655,9 @@ - + + + @@ -6668,7 +6682,7 @@ - + @@ -6676,12 +6690,12 @@ - - - + + + @@ -6696,7 +6710,7 @@ - + "end of file" error @@ -6781,7 +6795,7 @@ "identifier" - + @@ -6789,7 +6803,7 @@ - + @@ -6797,8 +6811,6 @@ - - @@ -6828,9 +6840,9 @@ - + @@ -6882,10 +6894,12 @@ - - + + + + @@ -6951,8 +6965,6 @@ - - @@ -6980,9 +6992,9 @@ - + @@ -7036,10 +7048,12 @@ - - + + + + @@ -7105,8 +7119,6 @@ - - @@ -7135,9 +7147,9 @@ - + @@ -7190,10 +7202,12 @@ - - + + + + @@ -7259,8 +7273,6 @@ - - @@ -7292,9 +7304,9 @@ - + @@ -7344,10 +7356,12 @@ - - + + + + @@ -7413,8 +7427,6 @@ - - @@ -7430,9 +7442,9 @@ - + @@ -7498,10 +7510,12 @@ - - + + + + @@ -7567,8 +7581,6 @@ - - @@ -7585,9 +7597,9 @@ - + @@ -7652,10 +7664,12 @@ - - + + + + @@ -7721,8 +7735,6 @@ - - @@ -7745,9 +7757,9 @@ - + @@ -7806,10 +7818,12 @@ - - + + + + @@ -7875,8 +7889,6 @@ - - @@ -7900,9 +7912,9 @@ - + @@ -7960,10 +7972,12 @@ - - + + + + @@ -8029,8 +8043,6 @@ - - @@ -8055,9 +8067,9 @@ - + @@ -8114,10 +8126,12 @@ - - + + + + @@ -8183,8 +8197,6 @@ - - @@ -8202,9 +8214,9 @@ - + @@ -8268,10 +8280,12 @@ - - + + + + @@ -8337,8 +8351,6 @@ - - @@ -8357,9 +8369,9 @@ - + @@ -8422,10 +8434,12 @@ - - + + + + @@ -8491,8 +8505,6 @@ - - @@ -8512,9 +8524,9 @@ - + @@ -8576,10 +8588,12 @@ - - + + + + @@ -8645,8 +8659,6 @@ - - @@ -8667,9 +8679,9 @@ - + @@ -8730,10 +8742,12 @@ - - + + + + @@ -8799,8 +8813,6 @@ - - @@ -8831,9 +8843,9 @@ - + @@ -8884,10 +8896,12 @@ - - + + + + @@ -8953,8 +8967,6 @@ - - @@ -8976,9 +8988,9 @@ - + @@ -9038,10 +9050,12 @@ - - + + + + @@ -9107,8 +9121,6 @@ - - @@ -9134,9 +9146,9 @@ - + @@ -9192,10 +9204,12 @@ - - + + + + @@ -9261,8 +9275,6 @@ - - @@ -9289,9 +9301,9 @@ - + @@ -9346,10 +9358,12 @@ - - + + + + @@ -9415,9 +9429,7 @@ - - - + @@ -9428,10 +9440,12 @@ - - + + + + @@ -9456,14 +9470,14 @@ - - - - - + + + + + @@ -9481,8 +9495,6 @@ - - @@ -9530,13 +9542,13 @@ - - + + @@ -9570,10 +9582,12 @@ - - + + + + @@ -9642,8 +9656,6 @@ - - @@ -9683,13 +9695,13 @@ - - + + @@ -9731,10 +9743,12 @@ - - + + + + @@ -9803,9 +9817,9 @@ - - - + + + @@ -9821,8 +9835,6 @@ - - @@ -9833,11 +9845,11 @@ - - + + @@ -9908,17 +9920,19 @@ - - + + - - - + + + + + @@ -9988,8 +10002,6 @@ - - @@ -10005,7 +10017,9 @@ - + + + "}" "," @@ -10034,7 +10048,7 @@ - + @@ -10042,7 +10056,7 @@ - + "as" "and" @@ -10067,7 +10081,7 @@ ">=" - + @@ -10075,7 +10089,7 @@ - + @@ -10084,7 +10098,7 @@ - + @@ -10099,13 +10113,13 @@ - + - + @@ -10115,18 +10129,18 @@ - - - - - - - - - + + + + + + + + + @@ -10150,8 +10164,6 @@ - - @@ -10162,10 +10174,12 @@ - - + + + + @@ -10205,8 +10219,6 @@ - - @@ -10223,8 +10235,8 @@ - - + + @@ -10240,15 +10252,15 @@ - - + + - - + + @@ -10262,8 +10274,8 @@ - - + + @@ -10290,10 +10302,12 @@ - - + + + + @@ -10374,18 +10388,18 @@ - - - - - - - - - + + + + + + + + + @@ -10409,8 +10423,6 @@ - - @@ -10421,10 +10433,12 @@ - - + + + + @@ -10449,9 +10463,7 @@ - - - + @@ -10462,10 +10474,12 @@ - - + + + + @@ -10490,10 +10504,10 @@ - - - - + + + + @@ -10510,9 +10524,7 @@ - - - + @@ -10595,10 +10607,12 @@ - - + + + + @@ -10664,9 +10678,9 @@ - - - + + + @@ -10682,7 +10696,7 @@ - + @@ -10696,7 +10710,7 @@ - + @@ -10710,8 +10724,8 @@ - - + + @@ -10725,13 +10739,13 @@ - + - + @@ -10739,7 +10753,7 @@ - + "::" "," @@ -10747,7 +10761,7 @@ "'" - + @@ -10755,7 +10769,7 @@ - + @@ -10763,7 +10777,7 @@ - + "end of file" error @@ -10845,10 +10859,10 @@ "identifier" - - - + + + @@ -10858,18 +10872,18 @@ - + - BASIC_TYPE < "<" + BASIC_TYPE < "<" - - + + @@ -10883,13 +10897,13 @@ - + - + @@ -10897,7 +10911,7 @@ - + @@ -10911,9 +10925,7 @@ - - - + @@ -10924,10 +10936,12 @@ - - + + + + @@ -10952,8 +10966,6 @@ - - @@ -10964,22 +10976,24 @@ - - + + - + + + "->" - - + + @@ -11001,7 +11015,7 @@ - + @@ -11009,8 +11023,6 @@ - - @@ -11093,11 +11105,13 @@ - - - + + + + + @@ -11163,9 +11177,7 @@ - - - + @@ -11179,15 +11191,17 @@ - + + + "->" - - + + @@ -11208,7 +11222,7 @@ - + @@ -11216,8 +11230,6 @@ - - @@ -11228,11 +11240,13 @@ - - + + - + + + @@ -11257,8 +11271,6 @@ - - @@ -11341,11 +11353,13 @@ - - + + - + + + @@ -11411,8 +11425,6 @@ - - @@ -11462,9 +11474,9 @@ - + @@ -11496,10 +11508,12 @@ - - + + + + @@ -11565,20 +11579,20 @@ - - - - - - + + + + - - - - + + + + + + @@ -11601,13 +11615,13 @@ - + - + @@ -11615,8 +11629,6 @@ - - @@ -11669,9 +11681,9 @@ - + @@ -11700,10 +11712,12 @@ - - + + + + @@ -11769,19 +11783,19 @@ - - - - - - - + + + + + - - + + + + @@ -11803,8 +11817,6 @@ - - @@ -11856,9 +11868,9 @@ - + @@ -11888,10 +11900,12 @@ - - + + + + @@ -11957,8 +11971,6 @@ - - @@ -12009,9 +12021,9 @@ - + @@ -12042,10 +12054,12 @@ - - + + + + @@ -12111,8 +12125,6 @@ - - @@ -12166,9 +12178,9 @@ - + @@ -12196,10 +12208,12 @@ - - + + + + @@ -12265,13 +12279,13 @@ - + - + @@ -12279,9 +12293,7 @@ - - - + @@ -12363,12 +12375,14 @@ - - - + + + + + @@ -12434,13 +12448,13 @@ - + - + @@ -12448,13 +12462,13 @@ - + - + @@ -12462,10 +12476,10 @@ - - - - + + + + @@ -12482,8 +12496,6 @@ - - @@ -12566,11 +12578,13 @@ - - - + + + + + @@ -12636,13 +12650,13 @@ - + - + @@ -12650,13 +12664,13 @@ - + - + @@ -12664,9 +12678,7 @@ - - - + @@ -12749,10 +12761,12 @@ - - + + + + @@ -12818,8 +12832,6 @@ - - @@ -12900,13 +12912,15 @@ - - - + + + + + @@ -12972,13 +12986,13 @@ - + - + @@ -12986,8 +13000,6 @@ - - @@ -13001,7 +13013,9 @@ - + + + "end of file" error @@ -13072,8 +13086,8 @@ "identifier" - - + + @@ -13092,34 +13106,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" < ">=" - - @@ -13131,7 +13143,9 @@ - + + + "end of file" error @@ -13200,10 +13214,10 @@ "identifier" - - + + @@ -13224,34 +13238,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" < ">=" - - @@ -13264,7 +13276,9 @@ - + + + "end of file" error @@ -13334,9 +13348,9 @@ "identifier" - - + + @@ -13356,34 +13370,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" < ">=" - - @@ -13399,7 +13411,9 @@ - + + + "end of file" error @@ -13488,34 +13502,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 @@ -13594,8 +13608,6 @@ "identifier" - - @@ -13610,6 +13622,8 @@ + + @@ -13620,35 +13634,35 @@ - + - "and" < "+" - "or" < "+" - "xor" < "+" - "implies" < "+" - %left "+" - %left "-" - "=" < "+" - "<" < "+" - ">" < "+" - "+" < "*" - "+" < "/" - "+" < "%" - "+" < "^" - "=>" < "+" - "!=" < "+" - "<=" < "+" - ">=" < "+" + "and" < "+" + "or" < "+" + "xor" < "+" + "implies" < "+" + %left "+" + %left "-" + "=" < "+" + "<" < "+" + ">" < "+" + "+" < "*" + "+" < "/" + "+" < "%" + "+" < "^" + "=>" < "+" + "!=" < "+" + "<=" < "+" + ">=" < "+" - - - + + + "end of file" error @@ -13727,8 +13741,6 @@ "identifier" - - @@ -13742,6 +13754,8 @@ + + @@ -13752,41 +13766,41 @@ - + - "and" < "-" - "or" < "-" - "xor" < "-" - "implies" < "-" - %left "+" - %left "-" - "=" < "-" - "<" < "-" - ">" < "-" - "-" < "*" - "-" < "/" - "-" < "%" - "-" < "^" - "=>" < "-" - "!=" < "-" - "<=" < "-" - ">=" < "-" + "and" < "-" + "or" < "-" + "xor" < "-" + "implies" < "-" + %left "+" + %left "-" + "=" < "-" + "<" < "-" + ">" < "-" + "-" < "*" + "-" < "/" + "-" < "%" + "-" < "^" + "=>" < "-" + "!=" < "-" + "<=" < "-" + ">=" < "-" - - - + + + "end of file" error @@ -13859,8 +13873,6 @@ "identifier" - - @@ -13868,6 +13880,8 @@ + + @@ -13884,34 +13898,32 @@ - + - "and" < "=" - "or" < "=" - "xor" < "=" - "implies" < "=" - "=" < "+" - "=" < "-" - %left "=" - "=" < "<" - "=" < ">" - "=" < "*" - "=" < "/" - "=" < "%" - "=" < "^" - "=>" < "=" - %left "!=" - "=" < "<=" - "=" < ">=" + "and" < "=" + "or" < "=" + "xor" < "=" + "implies" < "=" + "=" < "+" + "=" < "-" + %left "=" + "=" < "<" + "=" < ">" + "=" < "*" + "=" < "/" + "=" < "%" + "=" < "^" + "=>" < "=" + %left "!=" + "=" < "<=" + "=" < ">=" - - @@ -13919,7 +13931,9 @@ - + + + "end of file" error @@ -13996,14 +14010,14 @@ "identifier" - - + + @@ -14016,34 +14030,32 @@ - + - "and" < "<" - "or" < "<" - "xor" < "<" - "implies" < "<" - "<" < "+" - "<" < "-" - "=" < "<" - %left "<" - %left ">" - "<" < "*" - "<" < "/" - "<" < "%" - "<" < "^" - "=>" < "<" - "!=" < "<" - %left "<=" - %left ">=" + "and" < "<" + "or" < "<" + "xor" < "<" + "implies" < "<" + "<" < "+" + "<" < "-" + "=" < "<" + %left "<" + %left ">" + "<" < "*" + "<" < "/" + "<" < "%" + "<" < "^" + "=>" < "<" + "!=" < "<" + %left "<=" + %left ">=" - - @@ -14052,7 +14064,9 @@ - + + + "end of file" error @@ -14129,13 +14143,13 @@ "identifier" - - + + @@ -14148,36 +14162,36 @@ - + - "and" < ">" - "or" < ">" - "xor" < ">" - "implies" < ">" - ">" < "+" - ">" < "-" - "=" < ">" - %left "<" - %left ">" - ">" < "*" - ">" < "/" - ">" < "%" - ">" < "^" - "=>" < ">" - "!=" < ">" - %left "<=" - %left ">=" + "and" < ">" + "or" < ">" + "xor" < ">" + "implies" < ">" + ">" < "+" + ">" < "-" + "=" < ">" + %left "<" + %left ">" + ">" < "*" + ">" < "/" + ">" < "%" + ">" < "^" + "=>" < ">" + "!=" < ">" + %left "<=" + %left ">=" - - - + + + "end of file" error @@ -14259,8 +14273,6 @@ "identifier" - - @@ -14273,6 +14285,8 @@ + + @@ -14280,37 +14294,37 @@ - + - "and" < "*" - "or" < "*" - "xor" < "*" - "implies" < "*" - "+" < "*" - "-" < "*" - "=" < "*" - "<" < "*" - ">" < "*" - %left "*" - %left "/" - %left "%" - "*" < "^" - "=>" < "*" - "!=" < "*" - "<=" < "*" - ">=" < "*" + "and" < "*" + "or" < "*" + "xor" < "*" + "implies" < "*" + "+" < "*" + "-" < "*" + "=" < "*" + "<" < "*" + ">" < "*" + %left "*" + %left "/" + %left "%" + "*" < "^" + "=>" < "*" + "!=" < "*" + "<=" < "*" + ">=" < "*" - - - + + + "end of file" error @@ -14392,8 +14406,6 @@ "identifier" - - @@ -14405,6 +14417,8 @@ + + @@ -14412,38 +14426,38 @@ - + - "and" < "/" - "or" < "/" - "xor" < "/" - "implies" < "/" - "+" < "/" - "-" < "/" - "=" < "/" - "<" < "/" - ">" < "/" - %left "*" - %left "/" - %left "%" - "/" < "^" - "=>" < "/" - "!=" < "/" - "<=" < "/" - ">=" < "/" + "and" < "/" + "or" < "/" + "xor" < "/" + "implies" < "/" + "+" < "/" + "-" < "/" + "=" < "/" + "<" < "/" + ">" < "/" + %left "*" + %left "/" + %left "%" + "/" < "^" + "=>" < "/" + "!=" < "/" + "<=" < "/" + ">=" < "/" - - - + + + "end of file" error @@ -14525,8 +14539,6 @@ "identifier" - - @@ -14537,6 +14549,8 @@ + + @@ -14544,39 +14558,39 @@ - + - "and" < "%" - "or" < "%" - "xor" < "%" - "implies" < "%" - "+" < "%" - "-" < "%" - "=" < "%" - "<" < "%" - ">" < "%" - %left "*" - %left "/" - %left "%" - "%" < "^" - "=>" < "%" - "!=" < "%" - "<=" < "%" - ">=" < "%" + "and" < "%" + "or" < "%" + "xor" < "%" + "implies" < "%" + "+" < "%" + "-" < "%" + "=" < "%" + "<" < "%" + ">" < "%" + %left "*" + %left "/" + %left "%" + "%" < "^" + "=>" < "%" + "!=" < "%" + "<=" < "%" + ">=" < "%" - - - + + + "end of file" error @@ -14659,8 +14673,6 @@ "identifier" - - @@ -14670,39 +14682,39 @@ + + - + - "and" < "^" - "or" < "^" - "xor" < "^" - "implies" < "^" - "+" < "^" - "-" < "^" - "=" < "^" - "<" < "^" - ">" < "^" - "*" < "^" - "/" < "^" - "%" < "^" - %left "^" - "=>" < "^" - "!=" < "^" - "<=" < "^" - ">=" < "^" + "and" < "^" + "or" < "^" + "xor" < "^" + "implies" < "^" + "+" < "^" + "-" < "^" + "=" < "^" + "<" < "^" + ">" < "^" + "*" < "^" + "/" < "^" + "%" < "^" + %left "^" + "=>" < "^" + "!=" < "^" + "<=" < "^" + ">=" < "^" - - @@ -14717,7 +14729,9 @@ - + + + "end of file" error @@ -14785,7 +14799,7 @@ "identifier" - + @@ -14807,40 +14821,40 @@ - + - "=>" < "and" - "=>" < "or" - "=>" < "xor" - %left "implies" - "=>" < "+" - "=>" < "-" - "=>" < "=" - "=>" < "<" - "=>" < ">" - "=>" < "*" - "=>" < "/" - "=>" < "%" - "=>" < "^" - %left "=>" - "=>" < "!=" - "=>" < "<=" - "=>" < ">=" + "=>" < "and" + "=>" < "or" + "=>" < "xor" + %left "implies" + "=>" < "+" + "=>" < "-" + "=>" < "=" + "=>" < "<" + "=>" < ">" + "=>" < "*" + "=>" < "/" + "=>" < "%" + "=>" < "^" + %left "=>" + "=>" < "!=" + "=>" < "<=" + "=>" < ">=" - - - + + + "end of file" error @@ -14913,8 +14927,6 @@ "identifier" - - @@ -14923,6 +14935,8 @@ + + @@ -14939,34 +14953,32 @@ - + - "and" < "!=" - "or" < "!=" - "xor" < "!=" - "implies" < "!=" - "!=" < "+" - "!=" < "-" - %left "=" - "!=" < "<" - "!=" < ">" - "!=" < "*" - "!=" < "/" - "!=" < "%" - "!=" < "^" - "=>" < "!=" - %left "!=" - "!=" < "<=" - "!=" < ">=" + "and" < "!=" + "or" < "!=" + "xor" < "!=" + "implies" < "!=" + "!=" < "+" + "!=" < "-" + %left "=" + "!=" < "<" + "!=" < ">" + "!=" < "*" + "!=" < "/" + "!=" < "%" + "!=" < "^" + "=>" < "!=" + %left "!=" + "!=" < "<=" + "!=" < ">=" - - @@ -14976,7 +14988,9 @@ - + + + "end of file" error @@ -15053,12 +15067,12 @@ "identifier" - - + + @@ -15071,34 +15085,32 @@ - + - "and" < "<=" - "or" < "<=" - "xor" < "<=" - "implies" < "<=" - "<=" < "+" - "<=" < "-" - "=" < "<=" - %left "<" - %left ">" - "<=" < "*" - "<=" < "/" - "<=" < "%" - "<=" < "^" - "=>" < "<=" - "!=" < "<=" - %left "<=" - %left ">=" + "and" < "<=" + "or" < "<=" + "xor" < "<=" + "implies" < "<=" + "<=" < "+" + "<=" < "-" + "=" < "<=" + %left "<" + %left ">" + "<=" < "*" + "<=" < "/" + "<=" < "%" + "<=" < "^" + "=>" < "<=" + "!=" < "<=" + %left "<=" + %left ">=" - - @@ -15109,7 +15121,9 @@ - + + + "end of file" error @@ -15186,11 +15200,11 @@ "identifier" - - + + @@ -15203,39 +15217,39 @@ - + - "and" < ">=" - "or" < ">=" - "xor" < ">=" - "implies" < ">=" - ">=" < "+" - ">=" < "-" - "=" < ">=" - %left "<" - %left ">" - ">=" < "*" - ">=" < "/" - ">=" < "%" - ">=" < "^" - "=>" < ">=" - "!=" < ">=" - %left "<=" - %left ">=" + "and" < ">=" + "or" < ">=" + "xor" < ">=" + "implies" < ">=" + ">=" < "+" + ">=" < "-" + "=" < ">=" + %left "<" + %left ">" + ">=" < "*" + ">=" < "/" + ">=" < "%" + ">=" < "^" + "=>" < ">=" + "!=" < ">=" + %left "<=" + %left ">=" - + - + @@ -15243,13 +15257,13 @@ - + - + @@ -15257,7 +15271,7 @@ - + "end of file" error @@ -15341,9 +15355,9 @@ "identifier" - - + + @@ -15351,17 +15365,17 @@ - + - CALL_WITHOUT_ARGS < "(" + CALL_WITHOUT_ARGS < "(" - + @@ -15375,13 +15389,13 @@ - + - + @@ -15389,8 +15403,8 @@ - - + + @@ -15405,14 +15419,12 @@ - + ")" "," - - @@ -15428,6 +15440,8 @@ + + @@ -15451,7 +15465,7 @@ - + @@ -15459,7 +15473,7 @@ - + @@ -15473,13 +15487,13 @@ - + - + @@ -15487,8 +15501,8 @@ - - + + @@ -15503,13 +15517,13 @@ - + - + @@ -15517,14 +15531,12 @@ - + "," - - - + @@ -15540,7 +15552,9 @@ - + + + @@ -15565,7 +15579,7 @@ - + @@ -15573,8 +15587,6 @@ - - @@ -15657,11 +15669,13 @@ - - - + + + + + @@ -15741,8 +15755,6 @@ - - @@ -15825,14 +15837,16 @@ - - - + + + + + @@ -15914,7 +15928,7 @@ - + @@ -15929,7 +15943,7 @@ - + @@ -15943,13 +15957,13 @@ - + - + @@ -15957,13 +15971,13 @@ - + - + @@ -15971,14 +15985,14 @@ - - - - - - - + + + + + + + @@ -16012,18 +16026,18 @@ - - - - - - + + + + + + @@ -16045,8 +16059,6 @@ - - @@ -16065,8 +16077,8 @@ - - + + @@ -16077,22 +16089,22 @@ - + - - + + - - + + @@ -16106,8 +16118,8 @@ - - + + @@ -16134,10 +16146,12 @@ - - + + + + @@ -16216,8 +16230,6 @@ - - @@ -16236,34 +16248,34 @@ - - + + - + - - + + - - + + @@ -16277,8 +16289,8 @@ - - + + @@ -16305,10 +16317,12 @@ - - + + + + @@ -16387,13 +16401,13 @@ - + - + @@ -16401,22 +16415,22 @@ - - - - - - - + + + + + - - + + - - + + + + @@ -16439,12 +16453,10 @@ - - - - - - + + + + @@ -16454,6 +16466,8 @@ + + @@ -16476,22 +16490,22 @@ - - - - - - + + + + - - + + - - + + + + @@ -16514,21 +16528,21 @@ - - - - - + + + - - + + - - + + + + @@ -16551,8 +16565,6 @@ - - @@ -16569,15 +16581,15 @@ - - + + - + @@ -16587,15 +16599,15 @@ - - + + - - + + @@ -16609,8 +16621,8 @@ - - + + @@ -16637,10 +16649,12 @@ - - + + + + @@ -16717,10 +16731,8 @@ - - - - + + @@ -16803,10 +16815,12 @@ - - + + + + @@ -16872,10 +16886,8 @@ - - - - + + @@ -16958,10 +16970,12 @@ - - + + + + @@ -17027,9 +17041,7 @@ - - - + @@ -17112,10 +17124,12 @@ - - + + + + @@ -17181,8 +17195,6 @@ - - @@ -17201,34 +17213,34 @@ - - + + - + - - + + - - + + @@ -17242,8 +17254,8 @@ - - + + @@ -17270,10 +17282,12 @@ - - + + + + @@ -17352,8 +17366,6 @@ - - @@ -17372,8 +17384,8 @@ - - + + @@ -17383,23 +17395,23 @@ - + - - + + - - + + @@ -17413,8 +17425,8 @@ - - + + @@ -17441,10 +17453,12 @@ - - + + + + @@ -17537,13 +17551,13 @@ - + - + @@ -17551,13 +17565,13 @@ - + - + @@ -17565,13 +17579,13 @@ - + - + @@ -17579,13 +17593,13 @@ - + - + @@ -17593,13 +17607,13 @@ - + - + @@ -17607,13 +17621,13 @@ - + - + @@ -17621,13 +17635,13 @@ - + - + @@ -17635,13 +17649,13 @@ - + - + @@ -17649,13 +17663,13 @@ - + - + @@ -17663,13 +17677,13 @@ - + - + @@ -17677,13 +17691,13 @@ - + - + @@ -17691,13 +17705,13 @@ - + - + @@ -17705,13 +17719,13 @@ - + - + @@ -17719,11 +17733,11 @@ - - + + @@ -17737,7 +17751,7 @@ - + "end of file" error @@ -17792,14 +17806,14 @@ "identifier" - + "." - - + + @@ -17807,19 +17821,19 @@ - - + + - CALL < "(" + CALL < "(" - - + + "end of file" error @@ -17883,7 +17897,7 @@ - + @@ -17908,7 +17922,7 @@ - + @@ -17937,13 +17951,13 @@ - + - + @@ -17951,13 +17965,13 @@ - + - + @@ -17965,7 +17979,7 @@ - + "end of file" error @@ -17983,8 +17997,6 @@ "[" - - @@ -18000,6 +18012,8 @@ + + @@ -18023,7 +18037,7 @@ - + @@ -18031,13 +18045,13 @@ - + - + @@ -18046,12 +18060,15 @@ - + + + - + + @@ -18070,24 +18087,24 @@ - - - + - - + + + + - - - - - - - + + + + + + + @@ -18097,31 +18114,31 @@ - - - + - + - - + + + + - + @@ -18139,18 +18156,18 @@ - - - - - + + + + + - + @@ -18169,20 +18186,20 @@ - - - + + + - - - - + + + + @@ -18192,11 +18209,11 @@ - + - + @@ -18206,13 +18223,13 @@ - - + + - - + + @@ -18222,13 +18239,13 @@ - + "," ">" - + "*" "->" @@ -18239,9 +18256,9 @@ - - - + + + @@ -18249,8 +18266,8 @@ - - + + "->" @@ -18258,11 +18275,11 @@ - + - + @@ -18270,11 +18287,11 @@ - + - + @@ -18284,8 +18301,6 @@ - - @@ -18301,7 +18316,9 @@ - + + + "end of file" error @@ -18389,39 +18406,39 @@ - + - "and" < "'" - "or" < "'" - "xor" < "'" - "implies" < "'" - "+" < "'" - "-" < "'" - "=" < "'" - "<" < "'" - ">" < "'" - "*" < "'" - "/" < "'" - "%" < "'" - "^" < "'" - "=>" < "'" - "!=" < "'" - "<=" < "'" - ">=" < "'" + "and" < "'" + "or" < "'" + "xor" < "'" + "implies" < "'" + "+" < "'" + "-" < "'" + "=" < "'" + "<" < "'" + ">" < "'" + "*" < "'" + "/" < "'" + "%" < "'" + "^" < "'" + "=>" < "'" + "!=" < "'" + "<=" < "'" + ">=" < "'" - + - + @@ -18429,11 +18446,11 @@ - + - + @@ -18443,13 +18460,13 @@ - + - + @@ -18457,8 +18474,6 @@ - - @@ -18474,7 +18489,9 @@ - + + + "in" "," @@ -18503,7 +18520,7 @@ - + @@ -18511,8 +18528,6 @@ - - @@ -18528,7 +18543,9 @@ - + + + "end of file" error @@ -18617,39 +18634,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" < ">=" - + - + @@ -18657,8 +18674,6 @@ - - @@ -18674,11 +18689,13 @@ - + + + - + @@ -18705,13 +18722,13 @@ - + - + @@ -18719,8 +18736,6 @@ - - @@ -18736,11 +18751,13 @@ - + + + - + @@ -18767,8 +18784,6 @@ - - @@ -18784,11 +18799,13 @@ - + + + - + @@ -18815,8 +18832,6 @@ - - @@ -18832,11 +18847,13 @@ - + + + - + @@ -18863,13 +18880,11 @@ - + "," - - @@ -18885,7 +18900,9 @@ - + + + @@ -18896,7 +18913,7 @@ - + @@ -18910,7 +18927,7 @@ - + @@ -18918,13 +18935,13 @@ - + - + @@ -18932,7 +18949,7 @@ - + @@ -18946,8 +18963,6 @@ - - @@ -18963,7 +18978,9 @@ - + + + ")" "," @@ -18992,7 +19009,7 @@ - + @@ -19000,15 +19017,13 @@ - + ")" "]" "," - - @@ -19024,6 +19039,8 @@ + + @@ -19047,7 +19064,7 @@ - + @@ -19055,8 +19072,6 @@ - - @@ -19072,7 +19087,9 @@ - + + + @@ -19083,7 +19100,7 @@ - + @@ -19103,8 +19120,6 @@ - - @@ -19148,13 +19163,13 @@ - - + + @@ -19192,14 +19207,16 @@ - - + + + + - + @@ -19213,7 +19230,7 @@ - + @@ -19224,7 +19241,7 @@ - + @@ -19264,13 +19281,13 @@ - + - + @@ -19278,13 +19295,13 @@ - + - + @@ -19292,13 +19309,13 @@ - + - + @@ -19306,13 +19323,13 @@ - + - + @@ -19320,7 +19337,7 @@ - + "as" "and" @@ -19345,15 +19362,15 @@ ">=" - + - + - + @@ -19361,8 +19378,6 @@ - - @@ -19378,7 +19393,9 @@ - + + + "}" "," @@ -19407,7 +19424,7 @@ - + @@ -19415,13 +19432,13 @@ - + - + @@ -19433,7 +19450,7 @@ - + @@ -19447,7 +19464,7 @@ - + @@ -19457,17 +19474,17 @@ - - - - - - - - + + + + + + + + @@ -19476,7 +19493,7 @@ - + @@ -19488,13 +19505,13 @@ - + - + @@ -19503,8 +19520,6 @@ - - @@ -19587,10 +19602,12 @@ - - + + + + @@ -19617,7 +19634,7 @@ - + @@ -19656,13 +19673,13 @@ - + - + @@ -19670,13 +19687,13 @@ - + - + @@ -19685,12 +19702,12 @@ - + - - + + @@ -19700,13 +19717,13 @@ - + - + @@ -19714,20 +19731,20 @@ - - - - - - + + + + + + - + @@ -19738,11 +19755,11 @@ - + - + @@ -19752,9 +19769,7 @@ - - - + @@ -19771,8 +19786,8 @@ - - + + @@ -19783,21 +19798,21 @@ - + - - + + - - + + @@ -19811,8 +19826,8 @@ - - + + @@ -19839,15 +19854,17 @@ - - + + + + - + @@ -19876,7 +19893,7 @@ - + @@ -19920,13 +19937,13 @@ - + - + @@ -19934,11 +19951,11 @@ - + - + @@ -19948,9 +19965,7 @@ - - - + @@ -19967,17 +19982,17 @@ - - + + - + @@ -19985,15 +20000,15 @@ - - + + - - + + @@ -20007,8 +20022,8 @@ - - + + @@ -20035,16 +20050,18 @@ - - + + + + - + @@ -20072,7 +20089,7 @@ - + @@ -20115,13 +20132,13 @@ - - - + + + - + @@ -20132,13 +20149,13 @@ - + - + @@ -20146,11 +20163,11 @@ - + - + @@ -20160,13 +20177,13 @@ - - + + - - + + @@ -20176,13 +20193,13 @@ - + - + @@ -20190,13 +20207,13 @@ - + - + @@ -20204,14 +20221,14 @@ - - - - - - - + + + + + + + @@ -20219,7 +20236,7 @@ - + @@ -20230,13 +20247,13 @@ - - - + + + - + @@ -20247,12 +20264,12 @@ - - + + - + @@ -20263,13 +20280,13 @@ - + - + @@ -20277,10 +20294,8 @@ - - - - + + @@ -20296,10 +20311,12 @@ + + - + @@ -20326,10 +20343,8 @@ - - - - + + @@ -20345,10 +20360,12 @@ + + - + @@ -20375,9 +20392,7 @@ - - - + @@ -20393,10 +20408,12 @@ + + - + @@ -20423,11 +20440,11 @@ - + - + @@ -20437,9 +20454,7 @@ - - - + @@ -20456,16 +20471,16 @@ - - + + - + @@ -20474,15 +20489,15 @@ - - + + - - + + @@ -20496,8 +20511,8 @@ - - + + @@ -20524,10 +20539,12 @@ - - + + + + @@ -20551,7 +20568,7 @@ - + @@ -20561,7 +20578,7 @@ - + @@ -20605,11 +20622,11 @@ - + - + @@ -20619,9 +20636,7 @@ - - - + @@ -20638,8 +20653,8 @@ - - + + @@ -20649,22 +20664,22 @@ - + - - + + - - + + @@ -20678,8 +20693,8 @@ - - + + @@ -20706,10 +20721,12 @@ - - + + + + @@ -20735,7 +20752,7 @@ - + @@ -20743,7 +20760,7 @@ - + @@ -20787,9 +20804,7 @@ - - - + @@ -20872,10 +20887,12 @@ - - + + + + @@ -20902,7 +20919,7 @@ - + @@ -20946,8 +20963,8 @@ - - + + @@ -20962,8 +20979,8 @@ - - + + @@ -20974,8 +20991,6 @@ - - @@ -20992,8 +21007,8 @@ - - + + @@ -21009,15 +21024,15 @@ - - + + - - + + @@ -21031,8 +21046,8 @@ - - + + @@ -21059,10 +21074,12 @@ - - + + + + @@ -21095,7 +21112,7 @@ - + @@ -21139,11 +21156,15 @@ - + + + - + + + @@ -21152,19 +21173,33 @@ + + + + + + + + + + + + + + - - - + + + - + @@ -21172,7 +21207,7 @@ - + @@ -21180,15 +21215,15 @@ - - - + + + - + @@ -21196,49 +21231,49 @@ - + - + - + - + - + - + - + - + - + - + @@ -21249,23 +21284,23 @@ - - - + - - - + + + + + - - - - - - - + + + + + + + @@ -21273,45 +21308,45 @@ - + - + - + - + - + "," - + - + - + - + - - + + "," @@ -21319,25 +21354,11 @@ - + - - - - - - - - - - - - - - - + @@ -21345,13 +21366,13 @@ - + - + @@ -21382,33 +21403,41 @@ - - - - + + + + + + + + "}" + + - - - - + + + + - + + + - + - + @@ -21418,9 +21447,21 @@ - - - + + + + + + + + + + + + + + + @@ -21431,17 +21472,19 @@ - - + + + + - + @@ -21457,24 +21500,22 @@ - + - + - + - + - - @@ -21485,18 +21526,20 @@ - - - + + + + + - + @@ -21512,10 +21555,8 @@ - + - - @@ -21525,19 +21566,21 @@ - - - + + + + + - + @@ -21553,11 +21596,9 @@ - + - - - + @@ -21568,17 +21609,19 @@ - - + + + + - + @@ -21594,10 +21637,8 @@ - + - - @@ -21650,9 +21691,9 @@ - + @@ -21681,10 +21722,12 @@ - - + + + + @@ -21711,7 +21754,7 @@ - + @@ -21748,10 +21791,8 @@ - + - - @@ -21803,9 +21844,9 @@ - + @@ -21835,10 +21876,12 @@ - - + + + + @@ -21865,7 +21908,7 @@ - + @@ -21902,10 +21945,8 @@ - + - - @@ -21956,9 +21997,9 @@ - + @@ -21989,10 +22030,12 @@ - - + + + + @@ -22019,7 +22062,7 @@ - + @@ -22056,10 +22099,8 @@ - + - - @@ -22113,9 +22154,9 @@ - + @@ -22143,10 +22184,12 @@ - - + + + + @@ -22173,7 +22216,7 @@ - + @@ -22210,41 +22253,41 @@ - + - + - + - + - + - + - + - + - + @@ -22252,28 +22295,28 @@ - + - + - + - + - - + + - + @@ -22282,10 +22325,8 @@ - + - - @@ -22368,11 +22409,13 @@ - - - + + + + + @@ -22399,7 +22442,7 @@ - + @@ -22436,11 +22479,9 @@ - + - - @@ -22451,17 +22492,19 @@ - - + + + + - + @@ -22477,11 +22520,9 @@ - + - - @@ -22492,17 +22533,19 @@ - - + + + + - + @@ -22518,21 +22561,21 @@ - + - + - + - + @@ -22553,8 +22596,6 @@ "}" - - @@ -22570,6 +22611,8 @@ + + @@ -22599,7 +22642,7 @@ - + @@ -22613,19 +22656,19 @@ - + - - - - - - - + + + + + + + @@ -22633,7 +22676,7 @@ - + @@ -22644,94 +22687,92 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - @@ -22748,10 +22789,10 @@ - - - + + + @@ -22766,15 +22807,15 @@ - - + + - - + + @@ -22788,8 +22829,8 @@ - - + + @@ -22816,10 +22857,12 @@ - - + + + + @@ -22852,7 +22895,7 @@ - + @@ -22894,10 +22937,8 @@ - + - - @@ -22911,16 +22952,18 @@ - + + + "->" - - - + + + @@ -22935,22 +22978,20 @@ - + - + - + - - @@ -22967,11 +23008,11 @@ - - - + + + @@ -22985,15 +23026,15 @@ - - + + - - + + @@ -23007,8 +23048,8 @@ - - + + @@ -23035,10 +23076,12 @@ - - + + + + @@ -23071,7 +23114,7 @@ - + @@ -23113,13 +23156,11 @@ - + - - - - - + + + @@ -23127,6 +23168,8 @@ + + @@ -23135,7 +23178,7 @@ - + @@ -23146,26 +23189,24 @@ - + - + - + - + - - - - + + @@ -23248,10 +23289,12 @@ - - + + + + @@ -23278,7 +23321,7 @@ - + @@ -23315,11 +23358,9 @@ - + - - - + @@ -23402,10 +23443,12 @@ - - + + + + @@ -23432,7 +23475,7 @@ - + @@ -23469,10 +23512,8 @@ - + - - @@ -23486,13 +23527,13 @@ - - + - - + + + @@ -23508,15 +23549,15 @@ - - + + - - + + @@ -23530,8 +23571,8 @@ - - + + @@ -23558,10 +23599,12 @@ - - + + + + @@ -23594,7 +23637,7 @@ - + @@ -23636,14 +23679,14 @@ - + - - + + - + @@ -23651,10 +23694,8 @@ - + - - @@ -23671,8 +23712,8 @@ - - + + @@ -23688,16 +23729,16 @@ - - - + + + - - + + @@ -23711,8 +23752,8 @@ - - + + @@ -23739,10 +23780,12 @@ - - + + + + @@ -23775,7 +23818,7 @@ - + @@ -23817,65 +23860,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + "end of file" error @@ -23929,8 +23972,6 @@ "identifier" - - @@ -23946,6 +23987,8 @@ + + @@ -23969,20 +24012,18 @@ - + - ":=" < "+" - ":=" < "-" + ":=" < "+" + ":=" < "-" - + - - @@ -23999,8 +24040,8 @@ - - + + @@ -24016,15 +24057,15 @@ - - + + - - + + @@ -24038,8 +24079,8 @@ - - + + @@ -24066,10 +24107,12 @@ - - + + + + @@ -24102,7 +24145,7 @@ - + @@ -24144,11 +24187,9 @@ - + - - @@ -24159,17 +24200,19 @@ - - + + + + - + @@ -24185,11 +24228,9 @@ - + - - @@ -24206,8 +24247,8 @@ - - + + @@ -24223,15 +24264,15 @@ - - + + - - + + @@ -24245,8 +24286,8 @@ - - + + @@ -24273,10 +24314,12 @@ - - + + + + @@ -24309,7 +24352,7 @@ - + @@ -24351,11 +24394,9 @@ - + - - @@ -24366,17 +24407,19 @@ - - + + + + - + @@ -24392,7 +24435,7 @@ - + @@ -24406,31 +24449,45 @@ - + - + - + - + + + + + + + + + + + + + + + - + - + @@ -24439,7 +24496,7 @@ - + @@ -24447,13 +24504,13 @@ - + - + @@ -24462,91 +24519,91 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -24557,20 +24614,20 @@ - - - + + + - - - - + + + + @@ -24578,41 +24635,41 @@ - + - + - + - + - + - + - + - + - + @@ -24620,11 +24677,11 @@ - + - - - + + + "end of file" error @@ -24647,21 +24704,19 @@ - - + + - + - + - - @@ -24677,7 +24732,9 @@ - + + + "end of file" error @@ -24766,34 +24823,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" < ">=" - + - - @@ -24809,7 +24864,9 @@ - + + + "end of file" error @@ -24898,34 +24955,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" < ">=" - + - - @@ -24941,7 +24996,9 @@ - + + + "end of file" error @@ -25030,34 +25087,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" < ">=" - + - - @@ -25073,7 +25128,9 @@ - + + + "end of file" error @@ -25162,62 +25219,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" < ">=" - + - + - + - + - + - + - + - - @@ -25233,7 +25288,9 @@ - + + + "}" "," @@ -25262,19 +25319,19 @@ - + - + - + @@ -25282,13 +25339,13 @@ - + - + @@ -25296,41 +25353,41 @@ - + - + - + - + - + - + - + - + - + @@ -25338,40 +25395,38 @@ - + - + - + - + - + - + - + - - - - + + @@ -25387,11 +25442,13 @@ + + - - + + @@ -25416,11 +25473,9 @@ - + - - - + @@ -25436,10 +25491,12 @@ + + - + @@ -25464,9 +25521,9 @@ - + - + "end of file" error @@ -25521,33 +25578,31 @@ "identifier" - + - + - + - "then" < "else" + "then" < "else" - + - - - - + + - - + + @@ -25630,20 +25685,22 @@ - - + + + + - + - + @@ -25653,7 +25710,7 @@ - + @@ -25663,9 +25720,9 @@ - - - + + + @@ -25702,21 +25759,21 @@ - + - + - + - + @@ -25730,13 +25787,13 @@ - + - + @@ -25744,7 +25801,7 @@ - + @@ -25758,13 +25815,13 @@ - + - + @@ -25772,11 +25829,9 @@ - + - - - + @@ -25790,15 +25845,17 @@ - + + + "->" - - + + @@ -25813,23 +25870,21 @@ - + - + - + - - - + @@ -25843,15 +25898,17 @@ - + + + "->" - - + + @@ -25866,42 +25923,25 @@ - + - + - + - - - - - - - - - - - - - + - - - - - - + @@ -25909,27 +25949,27 @@ - + - + - + - + - + - + @@ -25937,11 +25977,11 @@ - + - - - + + + "end of file" error @@ -25963,22 +26003,20 @@ - - + + - + - + - - @@ -26061,10 +26099,12 @@ - - + + + + @@ -26091,7 +26131,7 @@ - + @@ -26128,11 +26168,9 @@ - + - - @@ -26215,10 +26253,12 @@ - - + + + + @@ -26245,7 +26285,7 @@ - + @@ -26282,10 +26322,8 @@ - + - - @@ -26296,18 +26334,20 @@ - - + + - + + + - + @@ -26323,10 +26363,8 @@ - + - - @@ -26343,12 +26381,12 @@ - - + + - + @@ -26361,15 +26399,15 @@ - - + + - - + + @@ -26383,8 +26421,8 @@ - - + + @@ -26411,10 +26449,12 @@ - - + + + + @@ -26447,7 +26487,7 @@ - + @@ -26489,11 +26529,9 @@ - + - - - + @@ -26576,10 +26614,12 @@ - - + + + + @@ -26606,7 +26646,7 @@ - + @@ -26643,10 +26683,8 @@ - + - - @@ -26663,14 +26701,14 @@ - - + + - + @@ -26681,15 +26719,15 @@ - - + + - - + + @@ -26703,8 +26741,8 @@ - - + + @@ -26731,10 +26769,12 @@ - - + + + + @@ -26767,7 +26807,7 @@ - + @@ -26809,10 +26849,8 @@ - + - - @@ -26827,11 +26865,11 @@ - - - + + + @@ -26847,15 +26885,15 @@ - - + + - - + + @@ -26869,8 +26907,8 @@ - - + + @@ -26897,10 +26935,12 @@ - - + + + + @@ -26933,7 +26973,7 @@ - + @@ -26975,13 +27015,13 @@ - + - + - + @@ -26989,13 +27029,13 @@ - + - + - + @@ -27003,13 +27043,13 @@ - + - + - + @@ -27017,15 +27057,13 @@ - + - - - - + + - - + + @@ -27108,10 +27146,12 @@ - - + + + + @@ -27120,7 +27160,7 @@ - + @@ -27130,8 +27170,8 @@ - - + + @@ -27141,8 +27181,8 @@ - - + + @@ -27179,25 +27219,23 @@ - + - + - + - + - - - + @@ -27213,6 +27251,8 @@ + + @@ -27223,7 +27263,7 @@ - + @@ -27241,11 +27281,9 @@ - + - - @@ -27262,8 +27300,8 @@ - - + + @@ -27279,15 +27317,15 @@ - - + + - - + + @@ -27301,8 +27339,8 @@ - - + + @@ -27329,10 +27367,12 @@ - - + + + + @@ -27365,7 +27405,7 @@ - + @@ -27407,11 +27447,9 @@ - + - - @@ -27428,8 +27466,8 @@ - - + + @@ -27445,15 +27483,15 @@ - - + + - - + + @@ -27467,8 +27505,8 @@ - - + + @@ -27495,10 +27533,12 @@ - - + + + + @@ -27531,7 +27571,7 @@ - + @@ -27573,13 +27613,13 @@ - + - + - + @@ -27587,13 +27627,13 @@ - + - + - + @@ -27601,24 +27641,22 @@ - + - + - + - + - - @@ -27701,11 +27739,13 @@ - - - + + + + + @@ -27732,7 +27772,7 @@ - + @@ -27769,13 +27809,13 @@ - + - + - + @@ -27783,21 +27823,21 @@ - + - + - + - + @@ -27818,8 +27858,6 @@ "}" - - @@ -27835,6 +27873,8 @@ + + @@ -27864,7 +27904,7 @@ - + @@ -27885,8 +27925,6 @@ "}" - - @@ -27902,6 +27940,8 @@ + + @@ -27931,50 +27971,48 @@ - + - - + + "in" "=" "," - + - - + + - + - + - + - + - + - - - + @@ -27990,10 +28028,12 @@ + + - + @@ -28018,52 +28058,50 @@ - + - + - + - + - + - + - + - + - + - + - - @@ -28080,9 +28118,9 @@ - - - + + + @@ -28098,15 +28136,15 @@ - - + + - - + + @@ -28120,8 +28158,8 @@ - - + + @@ -28148,10 +28186,12 @@ - - + + + + @@ -28184,7 +28224,7 @@ - + @@ -28226,10 +28266,8 @@ - + - - @@ -28246,9 +28284,9 @@ - - - + + + @@ -28264,15 +28302,15 @@ - - + + - - + + @@ -28286,8 +28324,8 @@ - - + + @@ -28314,10 +28352,12 @@ - - + + + + @@ -28350,7 +28390,7 @@ - + @@ -28392,38 +28432,36 @@ - + - + - + - + - + - + - + - - @@ -28440,9 +28478,9 @@ - - - + + + @@ -28458,15 +28496,15 @@ - - + + - - + + @@ -28480,8 +28518,8 @@ - - + + @@ -28508,10 +28546,12 @@ - - + + + + @@ -28544,7 +28584,7 @@ - + @@ -28586,7 +28626,7 @@ - + @@ -28600,7 +28640,7 @@ - + @@ -28614,11 +28654,9 @@ - + - - - + @@ -28629,17 +28667,19 @@ - - + + + + - + @@ -28655,11 +28695,9 @@ - + - - - + @@ -28670,17 +28708,19 @@ - - + + + + - + @@ -28696,10 +28736,8 @@ - + - - @@ -28715,7 +28753,9 @@ - + + + @@ -28726,7 +28766,7 @@ - + @@ -28744,10 +28784,8 @@ - + - - @@ -28830,9 +28868,9 @@ - - - + + + @@ -28840,6 +28878,8 @@ + + @@ -28894,7 +28934,7 @@ - + @@ -28905,34 +28945,32 @@ - + - - + + "in" "," - + - - + + - + - + - - @@ -28949,13 +28987,13 @@ - - + + - + @@ -28967,15 +29005,15 @@ - - + + - - + + @@ -28989,8 +29027,8 @@ - - + + @@ -29017,10 +29055,12 @@ - - + + + + @@ -29053,7 +29093,7 @@ - + @@ -29095,98 +29135,98 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + @@ -29195,43 +29235,43 @@ - + - + - + - + - + - + - + - + - +