diff --git a/src/GrammarParser.yy b/src/GrammarParser.yy index 534fad28c..a9fd6374e 100644 --- a/src/GrammarParser.yy +++ b/src/GrammarParser.yy @@ -177,8 +177,8 @@ END 0 "end of file" %type FeatureDefinitionElement %type FeatureDefinitionList %type ImplementationDefinition -%type ImplementationDefinitionDefinition -%type ImplementationDefinitionDefinitions +%type ImplementationDefinitionElement +%type ImplementationDefinitionList %type Declaration // expressions @@ -649,13 +649,17 @@ FeatureDefinitionList } ; +// +// +// ImplementationDefinition +// ImplementationDefinition -: IMPLEMENTS IdentifierPath FOR Type EQUAL LCURPAREN ImplementationDefinitionDefinitions RCURPAREN +: IMPLEMENTS IdentifierPath FOR Type EQUAL LCURPAREN ImplementationDefinitionList RCURPAREN { $$ = Ast::make< ImplementationDefinition >( @$, $2, $4, $7 ); } -| IMPLEMENTS Type EQUAL LCURPAREN ImplementationDefinitionDefinitions RCURPAREN +| IMPLEMENTS Type EQUAL LCURPAREN ImplementationDefinitionList RCURPAREN { const auto name = Ast::make< Identifier >( @$, "" ); const auto path = asIdentifierPath( name ); @@ -664,11 +668,23 @@ ImplementationDefinition ; -ImplementationDefinitionDefinition -: DerivedDefinition +ImplementationDefinitionElement +: LSQPAREN Attributes RSQPAREN DerivedDefinition + { + auto definition = $4; + definition->setAttributes( $2 ); + $$ = definition; + } +| DerivedDefinition { $$ = $1; } +| LSQPAREN Attributes RSQPAREN RuleDefinition + { + auto definition = $4; + definition->setAttributes( $2 ); + $$ = definition; + } | RuleDefinition { $$ = $1; @@ -676,14 +692,14 @@ ImplementationDefinitionDefinition ; -ImplementationDefinitionDefinitions -: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions +ImplementationDefinitionList +: ImplementationDefinitionList ImplementationDefinitionElement { - auto definitions = $2; - definitions->add( $1 ); + auto definitions = $1; + definitions->add( $2 ); $$ = definitions; } -| ImplementationDefinitionDefinition +| ImplementationDefinitionElement { auto definitions = Ast::make< Definitions >( @$ ); definitions->add( $1 ); diff --git a/src/various/Grammar.org b/src/various/Grammar.org index 4af86f4de..d6b7d8f92 100644 --- a/src/various/Grammar.org +++ b/src/various/Grammar.org @@ -90,16 +90,18 @@ FeatureDefinitionList | FeatureDefinitionElement ImplementationDefinition -: IMPLEMENTS IdentifierPath FOR Type EQUAL LCURPAREN ImplementationDefinitionDefinitions RCURPAREN -| IMPLEMENTS Type EQUAL LCURPAREN ImplementationDefinitionDefinitions RCURPAREN +: IMPLEMENTS IdentifierPath FOR Type EQUAL LCURPAREN ImplementationDefinitionList RCURPAREN +| IMPLEMENTS Type EQUAL LCURPAREN ImplementationDefinitionList RCURPAREN -ImplementationDefinitionDefinition -: DerivedDefinition +ImplementationDefinitionElement +: LSQPAREN Attributes RSQPAREN DerivedDefinition +| DerivedDefinition +| LSQPAREN Attributes RSQPAREN RuleDefinition | RuleDefinition -ImplementationDefinitionDefinitions -: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions -| ImplementationDefinitionDefinition +ImplementationDefinitionList +: ImplementationDefinitionList ImplementationDefinitionElement +| ImplementationDefinitionElement Declaration : DERIVED Identifier COLON MaybeFunctionParameters MAPS Type diff --git a/src/various/GrammarParser.cpp b/src/various/GrammarParser.cpp index cc8823ddd..2d963ebbb 100644 --- a/src/various/GrammarParser.cpp +++ b/src/various/GrammarParser.cpp @@ -391,13 +391,13 @@ namespace libcasm_fe { case 88: // Definition case 89: // AttributedDefinition case 106: // FeatureDefinitionElement - case 109: // ImplementationDefinitionDefinition + case 109: // ImplementationDefinitionElement value.move< Definition::Ptr > (that.value); break; case 90: // Definitions case 107: // FeatureDefinitionList - case 110: // ImplementationDefinitionDefinitions + case 110: // ImplementationDefinitionList value.move< Definitions::Ptr > (that.value); break; @@ -669,13 +669,13 @@ namespace libcasm_fe { case 88: // Definition case 89: // AttributedDefinition case 106: // FeatureDefinitionElement - case 109: // ImplementationDefinitionDefinition + case 109: // ImplementationDefinitionElement value.copy< Definition::Ptr > (that.value); break; case 90: // Definitions case 107: // FeatureDefinitionList - case 110: // ImplementationDefinitionDefinitions + case 110: // ImplementationDefinitionList value.copy< Definitions::Ptr > (that.value); break; @@ -1160,13 +1160,13 @@ namespace libcasm_fe { case 88: // Definition case 89: // AttributedDefinition case 106: // FeatureDefinitionElement - case 109: // ImplementationDefinitionDefinition + case 109: // ImplementationDefinitionElement yylhs.value.build< Definition::Ptr > (); break; case 90: // Definitions case 107: // FeatureDefinitionList - case 110: // ImplementationDefinitionDefinitions + case 110: // ImplementationDefinitionList yylhs.value.build< Definitions::Ptr > (); break; @@ -1850,7 +1850,7 @@ namespace libcasm_fe { break; case 50: -#line 739 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 743 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< ImplementationDefinition::Ptr > () = Ast::make< ImplementationDefinition >( yylhs.location, yystack_[6].value.as< IdentifierPath::Ptr > (), yystack_[4].value.as< Type::Ptr > (), yystack_[1].value.as< Definitions::Ptr > () ); } @@ -1858,7 +1858,7 @@ namespace libcasm_fe { break; case 51: -#line 743 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 747 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { const auto name = Ast::make< Identifier >( yylhs.location, "" ); const auto path = asIdentifierPath( name ); @@ -1868,37 +1868,37 @@ namespace libcasm_fe { break; case 52: -#line 753 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 757 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< Definition::Ptr > () = yystack_[0].value.as< DerivedDefinition::Ptr > (); + auto definition = yystack_[0].value.as< DerivedDefinition::Ptr > (); + definition->setAttributes( yystack_[2].value.as< Attributes::Ptr > () ); + yylhs.value.as< Definition::Ptr > () = definition; } -#line 1876 "GrammarParser.cpp" // lalr1.cc:859 +#line 1878 "GrammarParser.cpp" // lalr1.cc:859 break; case 53: -#line 757 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 763 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< Definition::Ptr > () = yystack_[0].value.as< RuleDefinition::Ptr > (); + yylhs.value.as< Definition::Ptr > () = yystack_[0].value.as< DerivedDefinition::Ptr > (); } -#line 1884 "GrammarParser.cpp" // lalr1.cc:859 +#line 1886 "GrammarParser.cpp" // lalr1.cc:859 break; case 54: -#line 765 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 767 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - auto definitions = yystack_[0].value.as< Definitions::Ptr > (); - definitions->add( yystack_[1].value.as< Definition::Ptr > () ); - yylhs.value.as< Definitions::Ptr > () = definitions; + auto definition = yystack_[0].value.as< RuleDefinition::Ptr > (); + definition->setAttributes( yystack_[2].value.as< Attributes::Ptr > () ); + yylhs.value.as< Definition::Ptr > () = definition; } -#line 1894 "GrammarParser.cpp" // lalr1.cc:859 +#line 1896 "GrammarParser.cpp" // lalr1.cc:859 break; case 55: -#line 771 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 773 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - auto definitions = Ast::make< Definitions >( yylhs.location ); - definitions->add( yystack_[0].value.as< Definition::Ptr > () ); - yylhs.value.as< Definitions::Ptr > () = definitions; + yylhs.value.as< Definition::Ptr > () = yystack_[0].value.as< RuleDefinition::Ptr > (); } #line 1904 "GrammarParser.cpp" // lalr1.cc:859 break; @@ -1906,53 +1906,53 @@ namespace libcasm_fe { case 56: #line 781 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< DeclarationDefinition::Ptr > () = Ast::make< DeclarationDefinition > - ( yylhs.location, yystack_[4].value.as< Identifier::Ptr > (), yystack_[2].value.as< Types::Ptr > (), yystack_[0].value.as< Type::Ptr > (), DeclarationDefinition::Kind::DERIVED ); + auto definitions = yystack_[1].value.as< Definitions::Ptr > (); + definitions->add( yystack_[0].value.as< Definition::Ptr > () ); + yylhs.value.as< Definitions::Ptr > () = definitions; } -#line 1913 "GrammarParser.cpp" // lalr1.cc:859 +#line 1914 "GrammarParser.cpp" // lalr1.cc:859 break; case 57: -#line 786 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 787 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< DeclarationDefinition::Ptr > () = Ast::make< DeclarationDefinition > - ( yylhs.location, yystack_[4].value.as< Identifier::Ptr > (), yystack_[2].value.as< Types::Ptr > (), yystack_[0].value.as< Type::Ptr > (), DeclarationDefinition::Kind::RULE ); + auto definitions = Ast::make< Definitions >( yylhs.location ); + definitions->add( yystack_[0].value.as< Definition::Ptr > () ); + yylhs.value.as< Definitions::Ptr > () = definitions; } -#line 1922 "GrammarParser.cpp" // lalr1.cc:859 +#line 1924 "GrammarParser.cpp" // lalr1.cc:859 break; case 58: -#line 795 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 797 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< Identifier::Ptr > () = Ast::make< Identifier >( yylhs.location, yystack_[0].value.as< std::string > () ); + yylhs.value.as< DeclarationDefinition::Ptr > () = Ast::make< DeclarationDefinition > + ( yylhs.location, yystack_[4].value.as< Identifier::Ptr > (), yystack_[2].value.as< Types::Ptr > (), yystack_[0].value.as< Type::Ptr > (), DeclarationDefinition::Kind::DERIVED ); } -#line 1930 "GrammarParser.cpp" // lalr1.cc:859 +#line 1933 "GrammarParser.cpp" // lalr1.cc:859 break; case 59: -#line 799 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 802 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< Identifier::Ptr > () = Ast::make< Identifier >( yylhs.location, "in" ); + yylhs.value.as< DeclarationDefinition::Ptr > () = Ast::make< DeclarationDefinition > + ( yylhs.location, yystack_[4].value.as< Identifier::Ptr > (), yystack_[2].value.as< Types::Ptr > (), yystack_[0].value.as< Type::Ptr > (), DeclarationDefinition::Kind::RULE ); } -#line 1938 "GrammarParser.cpp" // lalr1.cc:859 +#line 1942 "GrammarParser.cpp" // lalr1.cc:859 break; case 60: -#line 807 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 811 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - auto identifiers = yystack_[2].value.as< Identifiers::Ptr > (); - identifiers->add( yystack_[0].value.as< Identifier::Ptr > () ); - yylhs.value.as< Identifiers::Ptr > () = identifiers; + yylhs.value.as< Identifier::Ptr > () = Ast::make< Identifier >( yylhs.location, yystack_[0].value.as< std::string > () ); } -#line 1948 "GrammarParser.cpp" // lalr1.cc:859 +#line 1950 "GrammarParser.cpp" // lalr1.cc:859 break; case 61: -#line 813 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 815 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - auto identifiers = Ast::make< Identifiers >( yylhs.location ); - identifiers->add( yystack_[0].value.as< Identifier::Ptr > () ); - yylhs.value.as< Identifiers::Ptr > () = identifiers; + yylhs.value.as< Identifier::Ptr > () = Ast::make< Identifier >( yylhs.location, "in" ); } #line 1958 "GrammarParser.cpp" // lalr1.cc:859 break; @@ -1980,78 +1980,78 @@ namespace libcasm_fe { case 64: #line 839 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< IdentifierPath::Ptr > () = Ast::make< IdentifierPath >( yylhs.location, yystack_[0].value.as< Identifiers::Ptr > (), IdentifierPath::Type::ABSOLUTE ); + auto identifiers = yystack_[2].value.as< Identifiers::Ptr > (); + identifiers->add( yystack_[0].value.as< Identifier::Ptr > () ); + yylhs.value.as< Identifiers::Ptr > () = identifiers; } -#line 1986 "GrammarParser.cpp" // lalr1.cc:859 +#line 1988 "GrammarParser.cpp" // lalr1.cc:859 break; case 65: -#line 843 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 845 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< IdentifierPath::Ptr > () = Ast::make< IdentifierPath >( yylhs.location, yystack_[0].value.as< Identifiers::Ptr > (), IdentifierPath::Type::RELATIVE ); + auto identifiers = Ast::make< Identifiers >( yylhs.location ); + identifiers->add( yystack_[0].value.as< Identifier::Ptr > () ); + yylhs.value.as< Identifiers::Ptr > () = identifiers; } -#line 1994 "GrammarParser.cpp" // lalr1.cc:859 +#line 1998 "GrammarParser.cpp" // lalr1.cc:859 break; case 66: -#line 847 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 855 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< IdentifierPath::Ptr > () = Ast::make< IdentifierPath >( yylhs.location, yystack_[0].value.as< Identifiers::Ptr > (), IdentifierPath::Type::THIS ); + yylhs.value.as< IdentifierPath::Ptr > () = Ast::make< IdentifierPath >( yylhs.location, yystack_[0].value.as< Identifiers::Ptr > (), IdentifierPath::Type::ABSOLUTE ); } -#line 2002 "GrammarParser.cpp" // lalr1.cc:859 +#line 2006 "GrammarParser.cpp" // lalr1.cc:859 break; case 67: -#line 855 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 859 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< VariableDefinition::Ptr > () = Ast::make< VariableDefinition >( yylhs.location, yystack_[2].value.as< Identifier::Ptr > (), yystack_[0].value.as< Type::Ptr > () ); + yylhs.value.as< IdentifierPath::Ptr > () = Ast::make< IdentifierPath >( yylhs.location, yystack_[0].value.as< Identifiers::Ptr > (), IdentifierPath::Type::RELATIVE ); } -#line 2010 "GrammarParser.cpp" // lalr1.cc:859 +#line 2014 "GrammarParser.cpp" // lalr1.cc:859 break; case 68: -#line 859 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 863 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - const auto unresolvedType = Ast::make< UnresolvedType >( yylhs.location ); - yylhs.value.as< VariableDefinition::Ptr > () = Ast::make< VariableDefinition >( yylhs.location, yystack_[0].value.as< Identifier::Ptr > (), unresolvedType ); + yylhs.value.as< IdentifierPath::Ptr > () = Ast::make< IdentifierPath >( yylhs.location, yystack_[0].value.as< Identifiers::Ptr > (), IdentifierPath::Type::THIS ); } -#line 2019 "GrammarParser.cpp" // lalr1.cc:859 +#line 2022 "GrammarParser.cpp" // lalr1.cc:859 break; case 69: -#line 868 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 871 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - auto variable = yystack_[0].value.as< VariableDefinition::Ptr > (); - variable->setAttributes( yystack_[2].value.as< Attributes::Ptr > () ); - yylhs.value.as< VariableDefinition::Ptr > () = variable; + yylhs.value.as< VariableDefinition::Ptr > () = Ast::make< VariableDefinition >( yylhs.location, yystack_[2].value.as< Identifier::Ptr > (), yystack_[0].value.as< Type::Ptr > () ); } -#line 2029 "GrammarParser.cpp" // lalr1.cc:859 +#line 2030 "GrammarParser.cpp" // lalr1.cc:859 break; case 70: -#line 874 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 875 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< VariableDefinition::Ptr > () = yystack_[0].value.as< VariableDefinition::Ptr > (); + const auto unresolvedType = Ast::make< UnresolvedType >( yylhs.location ); + yylhs.value.as< VariableDefinition::Ptr > () = Ast::make< VariableDefinition >( yylhs.location, yystack_[0].value.as< Identifier::Ptr > (), unresolvedType ); } -#line 2037 "GrammarParser.cpp" // lalr1.cc:859 +#line 2039 "GrammarParser.cpp" // lalr1.cc:859 break; case 71: -#line 882 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 884 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - auto parameters = yystack_[2].value.as< NodeList< VariableDefinition >::Ptr > (); - parameters->add( yystack_[0].value.as< VariableDefinition::Ptr > () ); - yylhs.value.as< NodeList< VariableDefinition >::Ptr > () = parameters; + auto variable = yystack_[0].value.as< VariableDefinition::Ptr > (); + variable->setAttributes( yystack_[2].value.as< Attributes::Ptr > () ); + yylhs.value.as< VariableDefinition::Ptr > () = variable; } -#line 2047 "GrammarParser.cpp" // lalr1.cc:859 +#line 2049 "GrammarParser.cpp" // lalr1.cc:859 break; case 72: -#line 888 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 890 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - auto parameters = Ast::make< NodeList< VariableDefinition > >( yylhs.location ); - parameters->add( yystack_[0].value.as< VariableDefinition::Ptr > () ); - yylhs.value.as< NodeList< VariableDefinition >::Ptr > () = parameters; + yylhs.value.as< VariableDefinition::Ptr > () = yystack_[0].value.as< VariableDefinition::Ptr > (); } #line 2057 "GrammarParser.cpp" // lalr1.cc:859 break; @@ -2059,107 +2059,107 @@ namespace libcasm_fe { case 73: #line 898 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< NodeList< VariableDefinition >::Ptr > () = yystack_[1].value.as< NodeList< VariableDefinition >::Ptr > (); + auto parameters = yystack_[2].value.as< NodeList< VariableDefinition >::Ptr > (); + parameters->add( yystack_[0].value.as< VariableDefinition::Ptr > () ); + yylhs.value.as< NodeList< VariableDefinition >::Ptr > () = parameters; } -#line 2065 "GrammarParser.cpp" // lalr1.cc:859 +#line 2067 "GrammarParser.cpp" // lalr1.cc:859 break; case 74: -#line 902 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 904 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< NodeList< VariableDefinition >::Ptr > () = nullptr; + auto parameters = Ast::make< NodeList< VariableDefinition > >( yylhs.location ); + parameters->add( yystack_[0].value.as< VariableDefinition::Ptr > () ); + yylhs.value.as< NodeList< VariableDefinition >::Ptr > () = parameters; } -#line 2073 "GrammarParser.cpp" // lalr1.cc:859 +#line 2077 "GrammarParser.cpp" // lalr1.cc:859 break; case 75: -#line 906 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 914 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< NodeList< VariableDefinition >::Ptr > () = Ast::make< NodeList< VariableDefinition > >( yylhs.location ); + yylhs.value.as< NodeList< VariableDefinition >::Ptr > () = yystack_[1].value.as< NodeList< VariableDefinition >::Ptr > (); } -#line 2081 "GrammarParser.cpp" // lalr1.cc:859 +#line 2085 "GrammarParser.cpp" // lalr1.cc:859 break; case 76: -#line 914 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 918 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< Type::Ptr > () = yystack_[0].value.as< BasicType::Ptr > (); + yylhs.value.as< NodeList< VariableDefinition >::Ptr > () = nullptr; } -#line 2089 "GrammarParser.cpp" // lalr1.cc:859 +#line 2093 "GrammarParser.cpp" // lalr1.cc:859 break; case 77: -#line 918 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 922 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< Type::Ptr > () = yystack_[0].value.as< ComposedType::Ptr > (); + yylhs.value.as< NodeList< VariableDefinition >::Ptr > () = Ast::make< NodeList< VariableDefinition > >( yylhs.location ); } -#line 2097 "GrammarParser.cpp" // lalr1.cc:859 +#line 2101 "GrammarParser.cpp" // lalr1.cc:859 break; case 78: -#line 922 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 930 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< Type::Ptr > () = yystack_[0].value.as< RelationType::Ptr > (); + yylhs.value.as< Type::Ptr > () = yystack_[0].value.as< BasicType::Ptr > (); } -#line 2105 "GrammarParser.cpp" // lalr1.cc:859 +#line 2109 "GrammarParser.cpp" // lalr1.cc:859 break; case 79: -#line 926 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 934 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< Type::Ptr > () = yystack_[0].value.as< FixedSizedType::Ptr > (); + yylhs.value.as< Type::Ptr > () = yystack_[0].value.as< ComposedType::Ptr > (); } -#line 2113 "GrammarParser.cpp" // lalr1.cc:859 +#line 2117 "GrammarParser.cpp" // lalr1.cc:859 break; case 80: -#line 934 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 938 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< BasicType::Ptr > () = Ast::make< BasicType >( yylhs.location, yystack_[0].value.as< IdentifierPath::Ptr > () ); + yylhs.value.as< Type::Ptr > () = yystack_[0].value.as< RelationType::Ptr > (); } -#line 2121 "GrammarParser.cpp" // lalr1.cc:859 +#line 2125 "GrammarParser.cpp" // lalr1.cc:859 break; case 81: #line 942 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< ComposedType::Ptr > () = Ast::make< ComposedType >( yylhs.location, yystack_[3].value.as< IdentifierPath::Ptr > (), yystack_[1].value.as< Types::Ptr > () ); + yylhs.value.as< Type::Ptr > () = yystack_[0].value.as< FixedSizedType::Ptr > (); } -#line 2129 "GrammarParser.cpp" // lalr1.cc:859 +#line 2133 "GrammarParser.cpp" // lalr1.cc:859 break; case 82: #line 950 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< RelationType::Ptr > () = Ast::make< RelationType >( yylhs.location, yystack_[5].value.as< IdentifierPath::Ptr > (), yystack_[3].value.as< Types::Ptr > (), yystack_[1].value.as< Type::Ptr > () ); + yylhs.value.as< BasicType::Ptr > () = Ast::make< BasicType >( yylhs.location, yystack_[0].value.as< IdentifierPath::Ptr > () ); } -#line 2137 "GrammarParser.cpp" // lalr1.cc:859 +#line 2141 "GrammarParser.cpp" // lalr1.cc:859 break; case 83: #line 958 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< FixedSizedType::Ptr > () = Ast::make< FixedSizedType >( yylhs.location, yystack_[2].value.as< IdentifierPath::Ptr > (), yystack_[0].value.as< Expression::Ptr > () ); + yylhs.value.as< ComposedType::Ptr > () = Ast::make< ComposedType >( yylhs.location, yystack_[3].value.as< IdentifierPath::Ptr > (), yystack_[1].value.as< Types::Ptr > () ); } -#line 2145 "GrammarParser.cpp" // lalr1.cc:859 +#line 2149 "GrammarParser.cpp" // lalr1.cc:859 break; case 84: #line 966 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - auto types = yystack_[2].value.as< Types::Ptr > (); - types->add( yystack_[0].value.as< Type::Ptr > () ); - yylhs.value.as< Types::Ptr > () = types; + yylhs.value.as< RelationType::Ptr > () = Ast::make< RelationType >( yylhs.location, yystack_[5].value.as< IdentifierPath::Ptr > (), yystack_[3].value.as< Types::Ptr > (), yystack_[1].value.as< Type::Ptr > () ); } -#line 2155 "GrammarParser.cpp" // lalr1.cc:859 +#line 2157 "GrammarParser.cpp" // lalr1.cc:859 break; case 85: -#line 972 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 974 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - auto types = Ast::make< Types >( yylhs.location ); - types->add( yystack_[0].value.as< Type::Ptr > () ); - yylhs.value.as< Types::Ptr > () = types; + yylhs.value.as< FixedSizedType::Ptr > () = Ast::make< FixedSizedType >( yylhs.location, yystack_[2].value.as< IdentifierPath::Ptr > (), yystack_[0].value.as< Expression::Ptr > () ); } #line 2165 "GrammarParser.cpp" // lalr1.cc:859 break; @@ -2167,95 +2167,115 @@ namespace libcasm_fe { case 86: #line 982 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< ReferenceAtom::Ptr > (); + auto types = yystack_[2].value.as< Types::Ptr > (); + types->add( yystack_[0].value.as< Type::Ptr > () ); + yylhs.value.as< Types::Ptr > () = types; } -#line 2173 "GrammarParser.cpp" // lalr1.cc:859 +#line 2175 "GrammarParser.cpp" // lalr1.cc:859 break; case 87: -#line 986 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 988 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< ValueAtom::Ptr > (); + auto types = Ast::make< Types >( yylhs.location ); + types->add( yystack_[0].value.as< Type::Ptr > () ); + yylhs.value.as< Types::Ptr > () = types; } -#line 2181 "GrammarParser.cpp" // lalr1.cc:859 +#line 2185 "GrammarParser.cpp" // lalr1.cc:859 break; case 88: -#line 990 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 998 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< ValueAtom::Ptr > (); + yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< ReferenceAtom::Ptr > (); } -#line 2189 "GrammarParser.cpp" // lalr1.cc:859 +#line 2193 "GrammarParser.cpp" // lalr1.cc:859 break; case 89: -#line 994 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 1002 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< ValueAtom::Ptr > (); } -#line 2197 "GrammarParser.cpp" // lalr1.cc:859 +#line 2201 "GrammarParser.cpp" // lalr1.cc:859 break; case 90: -#line 998 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 1006 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< ValueAtom::Ptr > (); } -#line 2205 "GrammarParser.cpp" // lalr1.cc:859 +#line 2209 "GrammarParser.cpp" // lalr1.cc:859 break; case 91: -#line 1002 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 1010 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< ValueAtom::Ptr > (); } -#line 2213 "GrammarParser.cpp" // lalr1.cc:859 +#line 2217 "GrammarParser.cpp" // lalr1.cc:859 break; case 92: -#line 1006 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 1014 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< UndefAtom::Ptr > (); + yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< ValueAtom::Ptr > (); } -#line 2221 "GrammarParser.cpp" // lalr1.cc:859 +#line 2225 "GrammarParser.cpp" // lalr1.cc:859 break; case 93: -#line 1010 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 1018 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< ValueAtom::Ptr > (); } -#line 2229 "GrammarParser.cpp" // lalr1.cc:859 +#line 2233 "GrammarParser.cpp" // lalr1.cc:859 break; case 94: -#line 1018 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 +#line 1022 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { - yylhs.value.as< UndefAtom::Ptr > () = Ast::make< UndefAtom >( yylhs.location ); + yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< UndefAtom::Ptr > (); } -#line 2237 "GrammarParser.cpp" // lalr1.cc:859 +#line 2241 "GrammarParser.cpp" // lalr1.cc:859 break; case 95: #line 1026 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + { + yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< ValueAtom::Ptr > (); + } +#line 2249 "GrammarParser.cpp" // lalr1.cc:859 + break; + + case 96: +#line 1034 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + { + yylhs.value.as< UndefAtom::Ptr > () = Ast::make< UndefAtom >( yylhs.location ); + } +#line 2257 "GrammarParser.cpp" // lalr1.cc:859 + break; + + case 97: +#line 1042 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { const auto value = libstdhl::get< libcasm_ir::BooleanConstant >( true ); yylhs.value.as< ValueAtom::Ptr > () = Ast::make< ValueAtom >( yylhs.location, value ); } -#line 2246 "GrammarParser.cpp" // lalr1.cc:859 +#line 2266 "GrammarParser.cpp" // lalr1.cc:859 break; - case 96: -#line 1031 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 98: +#line 1047 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { const auto value = libstdhl::get< libcasm_ir::BooleanConstant >( false ); yylhs.value.as< ValueAtom::Ptr > () = Ast::make< ValueAtom >( yylhs.location, value ); } -#line 2255 "GrammarParser.cpp" // lalr1.cc:859 +#line 2275 "GrammarParser.cpp" // lalr1.cc:859 break; - case 97: -#line 1040 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 99: +#line 1056 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { try { @@ -2267,11 +2287,11 @@ namespace libcasm_fe { throw syntax_error( yylhs.location, e.what() ); } } -#line 2271 "GrammarParser.cpp" // lalr1.cc:859 +#line 2291 "GrammarParser.cpp" // lalr1.cc:859 break; - case 98: -#line 1056 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 100: +#line 1072 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { try { @@ -2283,11 +2303,11 @@ namespace libcasm_fe { throw syntax_error( yylhs.location, e.what() ); } } -#line 2287 "GrammarParser.cpp" // lalr1.cc:859 +#line 2307 "GrammarParser.cpp" // lalr1.cc:859 break; - case 99: -#line 1068 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 101: +#line 1084 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { try { @@ -2299,11 +2319,11 @@ namespace libcasm_fe { throw syntax_error( yylhs.location, e.what() ); } } -#line 2303 "GrammarParser.cpp" // lalr1.cc:859 +#line 2323 "GrammarParser.cpp" // lalr1.cc:859 break; - case 100: -#line 1084 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 102: +#line 1100 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { try { @@ -2315,11 +2335,11 @@ namespace libcasm_fe { throw syntax_error( yylhs.location, e.what() ); } } -#line 2319 "GrammarParser.cpp" // lalr1.cc:859 +#line 2339 "GrammarParser.cpp" // lalr1.cc:859 break; - case 101: -#line 1100 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 103: +#line 1116 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { try { @@ -2331,11 +2351,11 @@ namespace libcasm_fe { throw syntax_error( yylhs.location, e.what() ); } } -#line 2335 "GrammarParser.cpp" // lalr1.cc:859 +#line 2355 "GrammarParser.cpp" // lalr1.cc:859 break; - case 102: -#line 1116 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 104: +#line 1132 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { try { @@ -2347,850 +2367,850 @@ namespace libcasm_fe { throw syntax_error( yylhs.location, e.what() ); } } -#line 2351 "GrammarParser.cpp" // lalr1.cc:859 +#line 2371 "GrammarParser.cpp" // lalr1.cc:859 break; - case 103: -#line 1132 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 105: +#line 1148 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< ReferenceAtom::Ptr > () = Ast::make< ReferenceAtom >( yylhs.location, yystack_[0].value.as< IdentifierPath::Ptr > () ); } -#line 2359 "GrammarParser.cpp" // lalr1.cc:859 +#line 2379 "GrammarParser.cpp" // lalr1.cc:859 break; - case 104: -#line 1140 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 106: +#line 1156 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< DirectCallExpression::Ptr > (); } -#line 2367 "GrammarParser.cpp" // lalr1.cc:859 +#line 2387 "GrammarParser.cpp" // lalr1.cc:859 break; - case 105: -#line 1144 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 107: +#line 1160 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< IndirectCallExpression::Ptr > (); } -#line 2375 "GrammarParser.cpp" // lalr1.cc:859 +#line 2395 "GrammarParser.cpp" // lalr1.cc:859 break; - case 106: -#line 1148 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 108: +#line 1164 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< LetExpression::Ptr > (); } -#line 2383 "GrammarParser.cpp" // lalr1.cc:859 +#line 2403 "GrammarParser.cpp" // lalr1.cc:859 break; - case 107: -#line 1152 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 109: +#line 1168 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< ConditionalExpression::Ptr > (); } -#line 2391 "GrammarParser.cpp" // lalr1.cc:859 +#line 2411 "GrammarParser.cpp" // lalr1.cc:859 break; - case 108: -#line 1156 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 110: +#line 1172 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< ChooseExpression::Ptr > (); } -#line 2399 "GrammarParser.cpp" // lalr1.cc:859 +#line 2419 "GrammarParser.cpp" // lalr1.cc:859 break; - case 109: -#line 1160 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 111: +#line 1176 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< UniversalQuantifierExpression::Ptr > (); } -#line 2407 "GrammarParser.cpp" // lalr1.cc:859 +#line 2427 "GrammarParser.cpp" // lalr1.cc:859 break; - case 110: -#line 1164 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 112: +#line 1180 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< ExistentialQuantifierExpression::Ptr > (); } -#line 2415 "GrammarParser.cpp" // lalr1.cc:859 +#line 2435 "GrammarParser.cpp" // lalr1.cc:859 break; - case 111: -#line 1168 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 113: +#line 1184 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< Expression::Ptr > (); } -#line 2423 "GrammarParser.cpp" // lalr1.cc:859 +#line 2443 "GrammarParser.cpp" // lalr1.cc:859 break; - case 112: -#line 1172 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 114: +#line 1188 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< ListExpression::Ptr > (); } -#line 2431 "GrammarParser.cpp" // lalr1.cc:859 +#line 2451 "GrammarParser.cpp" // lalr1.cc:859 break; - case 113: -#line 1176 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 115: +#line 1192 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< RangeExpression::Ptr > (); } -#line 2439 "GrammarParser.cpp" // lalr1.cc:859 +#line 2459 "GrammarParser.cpp" // lalr1.cc:859 break; - case 114: -#line 1180 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 116: +#line 1196 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< Expression::Ptr > (); } -#line 2447 "GrammarParser.cpp" // lalr1.cc:859 +#line 2467 "GrammarParser.cpp" // lalr1.cc:859 break; - case 115: -#line 1188 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 117: +#line 1204 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[1].value.as< Expression::Ptr > (); } -#line 2455 "GrammarParser.cpp" // lalr1.cc:859 +#line 2475 "GrammarParser.cpp" // lalr1.cc:859 break; - case 116: -#line 1192 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 118: +#line 1208 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = nullptr; } -#line 2463 "GrammarParser.cpp" // lalr1.cc:859 +#line 2483 "GrammarParser.cpp" // lalr1.cc:859 break; - case 117: -#line 1196 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 119: +#line 1212 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = yystack_[0].value.as< Expression::Ptr > (); } -#line 2471 "GrammarParser.cpp" // lalr1.cc:859 +#line 2491 "GrammarParser.cpp" // lalr1.cc:859 break; - case 118: -#line 1200 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 120: +#line 1216 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< UnaryExpression >( yylhs.location, yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::INV_INSTRUCTION ); } -#line 2479 "GrammarParser.cpp" // lalr1.cc:859 +#line 2499 "GrammarParser.cpp" // lalr1.cc:859 break; - case 119: -#line 1204 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 121: +#line 1220 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::ADD_INSTRUCTION ); } -#line 2487 "GrammarParser.cpp" // lalr1.cc:859 +#line 2507 "GrammarParser.cpp" // lalr1.cc:859 break; - case 120: -#line 1208 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 122: +#line 1224 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::SUB_INSTRUCTION ); } -#line 2495 "GrammarParser.cpp" // lalr1.cc:859 +#line 2515 "GrammarParser.cpp" // lalr1.cc:859 break; - case 121: -#line 1212 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 123: +#line 1228 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::MUL_INSTRUCTION ); } -#line 2503 "GrammarParser.cpp" // lalr1.cc:859 +#line 2523 "GrammarParser.cpp" // lalr1.cc:859 break; - case 122: -#line 1216 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 124: +#line 1232 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::DIV_INSTRUCTION ); } -#line 2511 "GrammarParser.cpp" // lalr1.cc:859 +#line 2531 "GrammarParser.cpp" // lalr1.cc:859 break; - case 123: -#line 1220 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 125: +#line 1236 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::MOD_INSTRUCTION ); } -#line 2519 "GrammarParser.cpp" // lalr1.cc:859 +#line 2539 "GrammarParser.cpp" // lalr1.cc:859 break; - case 124: -#line 1224 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 126: +#line 1240 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::POW_INSTRUCTION ); } -#line 2527 "GrammarParser.cpp" // lalr1.cc:859 +#line 2547 "GrammarParser.cpp" // lalr1.cc:859 break; - case 125: -#line 1228 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 127: +#line 1244 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::NEQ_INSTRUCTION ); } -#line 2535 "GrammarParser.cpp" // lalr1.cc:859 +#line 2555 "GrammarParser.cpp" // lalr1.cc:859 break; - case 126: -#line 1232 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 128: +#line 1248 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::EQU_INSTRUCTION ); } -#line 2543 "GrammarParser.cpp" // lalr1.cc:859 +#line 2563 "GrammarParser.cpp" // lalr1.cc:859 break; - case 127: -#line 1236 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 129: +#line 1252 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::LTH_INSTRUCTION ); } -#line 2551 "GrammarParser.cpp" // lalr1.cc:859 +#line 2571 "GrammarParser.cpp" // lalr1.cc:859 break; - case 128: -#line 1240 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 130: +#line 1256 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::GTH_INSTRUCTION ); } -#line 2559 "GrammarParser.cpp" // lalr1.cc:859 +#line 2579 "GrammarParser.cpp" // lalr1.cc:859 break; - case 129: -#line 1244 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 131: +#line 1260 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::LEQ_INSTRUCTION ); } -#line 2567 "GrammarParser.cpp" // lalr1.cc:859 +#line 2587 "GrammarParser.cpp" // lalr1.cc:859 break; - case 130: -#line 1248 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 132: +#line 1264 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::GEQ_INSTRUCTION ); } -#line 2575 "GrammarParser.cpp" // lalr1.cc:859 +#line 2595 "GrammarParser.cpp" // lalr1.cc:859 break; - case 131: -#line 1252 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 133: +#line 1268 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::OR_INSTRUCTION ); } -#line 2583 "GrammarParser.cpp" // lalr1.cc:859 +#line 2603 "GrammarParser.cpp" // lalr1.cc:859 break; - case 132: -#line 1256 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 134: +#line 1272 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::XOR_INSTRUCTION ); } -#line 2591 "GrammarParser.cpp" // lalr1.cc:859 +#line 2611 "GrammarParser.cpp" // lalr1.cc:859 break; - case 133: -#line 1260 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 135: +#line 1276 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::AND_INSTRUCTION ); } -#line 2599 "GrammarParser.cpp" // lalr1.cc:859 +#line 2619 "GrammarParser.cpp" // lalr1.cc:859 break; - case 134: -#line 1264 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 136: +#line 1280 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::IMP_INSTRUCTION ); } -#line 2607 "GrammarParser.cpp" // lalr1.cc:859 +#line 2627 "GrammarParser.cpp" // lalr1.cc:859 break; - case 135: -#line 1268 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 137: +#line 1284 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::IMP_INSTRUCTION ); } -#line 2615 "GrammarParser.cpp" // lalr1.cc:859 +#line 2635 "GrammarParser.cpp" // lalr1.cc:859 break; - case 136: -#line 1272 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 138: +#line 1288 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expression::Ptr > () = Ast::make< UnaryExpression >( yylhs.location, yystack_[0].value.as< Expression::Ptr > (), libcasm_ir::Value::NOT_INSTRUCTION ); } -#line 2623 "GrammarParser.cpp" // lalr1.cc:859 +#line 2643 "GrammarParser.cpp" // lalr1.cc:859 break; - case 137: -#line 1280 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 139: +#line 1296 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< RangeExpression::Ptr > () = Ast::make< RangeExpression >( yylhs.location, yystack_[3].value.as< Expression::Ptr > (), yystack_[1].value.as< Expression::Ptr > () ); } -#line 2631 "GrammarParser.cpp" // lalr1.cc:859 +#line 2651 "GrammarParser.cpp" // lalr1.cc:859 break; - case 138: -#line 1288 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 140: +#line 1304 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { const auto expressions = Ast::make< Expressions >( yylhs.location ); yylhs.value.as< ListExpression::Ptr > () = Ast::make< ListExpression >( yylhs.location, expressions ); } -#line 2640 "GrammarParser.cpp" // lalr1.cc:859 +#line 2660 "GrammarParser.cpp" // lalr1.cc:859 break; - case 139: -#line 1293 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 141: +#line 1309 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< ListExpression::Ptr > () = Ast::make< ListExpression >( yylhs.location, yystack_[1].value.as< Expressions::Ptr > () ); } -#line 2648 "GrammarParser.cpp" // lalr1.cc:859 +#line 2668 "GrammarParser.cpp" // lalr1.cc:859 break; - case 140: -#line 1297 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 142: +#line 1313 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< ListExpression::Ptr > () = nullptr; } -#line 2656 "GrammarParser.cpp" // lalr1.cc:859 +#line 2676 "GrammarParser.cpp" // lalr1.cc:859 break; - case 141: -#line 1305 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 143: +#line 1321 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { auto expressions = yystack_[2].value.as< Expressions::Ptr > (); expressions->add( yystack_[0].value.as< Expression::Ptr > () ); yylhs.value.as< Expressions::Ptr > () = expressions; } -#line 2666 "GrammarParser.cpp" // lalr1.cc:859 +#line 2686 "GrammarParser.cpp" // lalr1.cc:859 break; - case 142: -#line 1311 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 144: +#line 1327 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { const auto expressions = Ast::make< Expressions >( yylhs.location ); expressions->add( yystack_[0].value.as< Expression::Ptr > () ); yylhs.value.as< Expressions::Ptr > () = expressions; } -#line 2676 "GrammarParser.cpp" // lalr1.cc:859 +#line 2696 "GrammarParser.cpp" // lalr1.cc:859 break; - case 143: -#line 1321 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 145: +#line 1337 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expressions::Ptr > () = yystack_[1].value.as< Expressions::Ptr > (); } -#line 2684 "GrammarParser.cpp" // lalr1.cc:859 +#line 2704 "GrammarParser.cpp" // lalr1.cc:859 break; - case 144: -#line 1325 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 146: +#line 1341 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Expressions::Ptr > () = nullptr; } -#line 2692 "GrammarParser.cpp" // lalr1.cc:859 +#line 2712 "GrammarParser.cpp" // lalr1.cc:859 break; - case 145: -#line 1329 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 147: +#line 1345 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { const auto expressions = Ast::make< Expressions >( yylhs.location ); yylhs.value.as< Expressions::Ptr > () = expressions; } -#line 2701 "GrammarParser.cpp" // lalr1.cc:859 +#line 2721 "GrammarParser.cpp" // lalr1.cc:859 break; - case 146: -#line 1338 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 148: +#line 1354 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { const auto expressions = yystack_[3].value.as< Expressions::Ptr > (); expressions->add( yystack_[1].value.as< Expression::Ptr > () ); yylhs.value.as< Expressions::Ptr > () = expressions; } -#line 2711 "GrammarParser.cpp" // lalr1.cc:859 +#line 2731 "GrammarParser.cpp" // lalr1.cc:859 break; - case 147: -#line 1348 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 149: +#line 1364 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { 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 2720 "GrammarParser.cpp" // lalr1.cc:859 +#line 2740 "GrammarParser.cpp" // lalr1.cc:859 break; - case 148: -#line 1353 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 150: +#line 1369 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< DirectCallExpression::Ptr > () = Ast::make< DirectCallExpression >( yylhs.location, yystack_[1].value.as< IdentifierPath::Ptr > (), yystack_[0].value.as< Expressions::Ptr > () ); } -#line 2728 "GrammarParser.cpp" // lalr1.cc:859 +#line 2748 "GrammarParser.cpp" // lalr1.cc:859 break; - case 149: -#line 1361 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 151: +#line 1377 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< IndirectCallExpression::Ptr > () = Ast::make< IndirectCallExpression >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expressions::Ptr > () ); } -#line 2736 "GrammarParser.cpp" // lalr1.cc:859 +#line 2756 "GrammarParser.cpp" // lalr1.cc:859 break; - case 150: -#line 1369 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 152: +#line 1385 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< LetExpression::Ptr > () = Ast::make< LetExpression >( yylhs.location, yystack_[4].value.as< VariableDefinition::Ptr > (), yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > () ); } -#line 2744 "GrammarParser.cpp" // lalr1.cc:859 +#line 2764 "GrammarParser.cpp" // lalr1.cc:859 break; - case 151: -#line 1377 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 153: +#line 1393 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< ConditionalExpression::Ptr > () = Ast::make< ConditionalExpression >( yylhs.location, yystack_[4].value.as< Expression::Ptr > (), yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > () ); } -#line 2752 "GrammarParser.cpp" // lalr1.cc:859 +#line 2772 "GrammarParser.cpp" // lalr1.cc:859 break; - case 152: -#line 1385 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 154: +#line 1401 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< ChooseExpression::Ptr > () = Ast::make< ChooseExpression >( yylhs.location, yystack_[4].value.as< VariableDefinition::Ptr > (), yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > () ); } -#line 2760 "GrammarParser.cpp" // lalr1.cc:859 +#line 2780 "GrammarParser.cpp" // lalr1.cc:859 break; - case 153: -#line 1393 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 155: +#line 1409 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< UniversalQuantifierExpression::Ptr > () = Ast::make< UniversalQuantifierExpression >( yylhs.location, yystack_[4].value.as< VariableDefinition::Ptr > (), yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > () ); } -#line 2768 "GrammarParser.cpp" // lalr1.cc:859 +#line 2788 "GrammarParser.cpp" // lalr1.cc:859 break; - case 154: -#line 1401 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 156: +#line 1417 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< ExistentialQuantifierExpression::Ptr > () = Ast::make< ExistentialQuantifierExpression >( yylhs.location, yystack_[4].value.as< VariableDefinition::Ptr > (), yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Expression::Ptr > () ); } -#line 2776 "GrammarParser.cpp" // lalr1.cc:859 +#line 2796 "GrammarParser.cpp" // lalr1.cc:859 break; - case 155: -#line 1409 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 157: +#line 1425 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< RuleDefinition::Ptr > () = Ast::make< RuleDefinition >( yylhs.location, yystack_[3].value.as< Identifier::Ptr > (), yystack_[2].value.as< NodeList< VariableDefinition >::Ptr > (), createVoidType( yylhs.location ), wrapInBlockRule( yystack_[0].value.as< Rule::Ptr > () ) ); } -#line 2785 "GrammarParser.cpp" // lalr1.cc:859 +#line 2805 "GrammarParser.cpp" // lalr1.cc:859 break; - case 156: -#line 1414 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 158: +#line 1430 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< RuleDefinition::Ptr > () = Ast::make< RuleDefinition >( yylhs.location, yystack_[5].value.as< Identifier::Ptr > (), yystack_[4].value.as< NodeList< VariableDefinition >::Ptr > (), yystack_[2].value.as< Type::Ptr > (), wrapInBlockRule( yystack_[0].value.as< Rule::Ptr > () ) ); } -#line 2794 "GrammarParser.cpp" // lalr1.cc:859 +#line 2814 "GrammarParser.cpp" // lalr1.cc:859 break; - case 157: -#line 1423 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 159: +#line 1439 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Rule::Ptr > () = yystack_[0].value.as< SkipRule::Ptr > (); } -#line 2802 "GrammarParser.cpp" // lalr1.cc:859 +#line 2822 "GrammarParser.cpp" // lalr1.cc:859 break; - case 158: -#line 1427 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 160: +#line 1443 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Rule::Ptr > () = yystack_[0].value.as< ConditionalRule::Ptr > (); } -#line 2810 "GrammarParser.cpp" // lalr1.cc:859 +#line 2830 "GrammarParser.cpp" // lalr1.cc:859 break; - case 159: -#line 1431 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 161: +#line 1447 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Rule::Ptr > () = yystack_[0].value.as< CaseRule::Ptr > (); } -#line 2818 "GrammarParser.cpp" // lalr1.cc:859 +#line 2838 "GrammarParser.cpp" // lalr1.cc:859 break; - case 160: -#line 1435 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 162: +#line 1451 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Rule::Ptr > () = yystack_[0].value.as< LetRule::Ptr > (); } -#line 2826 "GrammarParser.cpp" // lalr1.cc:859 +#line 2846 "GrammarParser.cpp" // lalr1.cc:859 break; - case 161: -#line 1439 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 163: +#line 1455 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Rule::Ptr > () = yystack_[0].value.as< ForallRule::Ptr > (); } -#line 2834 "GrammarParser.cpp" // lalr1.cc:859 +#line 2854 "GrammarParser.cpp" // lalr1.cc:859 break; - case 162: -#line 1443 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 164: +#line 1459 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Rule::Ptr > () = yystack_[0].value.as< ChooseRule::Ptr > (); } -#line 2842 "GrammarParser.cpp" // lalr1.cc:859 +#line 2862 "GrammarParser.cpp" // lalr1.cc:859 break; - case 163: -#line 1447 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 165: +#line 1463 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Rule::Ptr > () = yystack_[0].value.as< IterateRule::Ptr > (); } -#line 2850 "GrammarParser.cpp" // lalr1.cc:859 +#line 2870 "GrammarParser.cpp" // lalr1.cc:859 break; - case 164: -#line 1451 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 166: +#line 1467 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Rule::Ptr > () = yystack_[0].value.as< BlockRule::Ptr > (); } -#line 2858 "GrammarParser.cpp" // lalr1.cc:859 +#line 2878 "GrammarParser.cpp" // lalr1.cc:859 break; - case 165: -#line 1455 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 167: +#line 1471 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Rule::Ptr > () = yystack_[0].value.as< SequenceRule::Ptr > (); } -#line 2866 "GrammarParser.cpp" // lalr1.cc:859 +#line 2886 "GrammarParser.cpp" // lalr1.cc:859 break; - case 166: -#line 1459 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 168: +#line 1475 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Rule::Ptr > () = yystack_[0].value.as< UpdateRule::Ptr > (); } -#line 2874 "GrammarParser.cpp" // lalr1.cc:859 +#line 2894 "GrammarParser.cpp" // lalr1.cc:859 break; - case 167: -#line 1463 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 169: +#line 1479 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Rule::Ptr > () = yystack_[0].value.as< CallRule::Ptr > (); } -#line 2882 "GrammarParser.cpp" // lalr1.cc:859 +#line 2902 "GrammarParser.cpp" // lalr1.cc:859 break; - case 168: -#line 1471 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 170: +#line 1487 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { auto rules = yystack_[1].value.as< Rules::Ptr > (); rules->add( yystack_[0].value.as< Rule::Ptr > () ); yylhs.value.as< Rules::Ptr > () = rules; } -#line 2892 "GrammarParser.cpp" // lalr1.cc:859 +#line 2912 "GrammarParser.cpp" // lalr1.cc:859 break; - case 169: -#line 1477 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 171: +#line 1493 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { auto rules = Ast::make< Rules >( yylhs.location ); rules->add( yystack_[0].value.as< Rule::Ptr > () ); yylhs.value.as< Rules::Ptr > () = rules; } -#line 2902 "GrammarParser.cpp" // lalr1.cc:859 +#line 2922 "GrammarParser.cpp" // lalr1.cc:859 break; - case 170: -#line 1487 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 172: +#line 1503 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< SkipRule::Ptr > () = Ast::make< SkipRule >( yylhs.location ); } -#line 2910 "GrammarParser.cpp" // lalr1.cc:859 +#line 2930 "GrammarParser.cpp" // lalr1.cc:859 break; - case 171: -#line 1495 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 173: +#line 1511 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< ConditionalRule::Ptr > () = Ast::make< ConditionalRule >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Rule::Ptr > () ); } -#line 2918 "GrammarParser.cpp" // lalr1.cc:859 +#line 2938 "GrammarParser.cpp" // lalr1.cc:859 break; - case 172: -#line 1499 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 174: +#line 1515 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< ConditionalRule::Ptr > () = Ast::make< ConditionalRule >( yylhs.location, yystack_[4].value.as< Expression::Ptr > (), yystack_[2].value.as< Rule::Ptr > (), yystack_[0].value.as< Rule::Ptr > () ); } -#line 2926 "GrammarParser.cpp" // lalr1.cc:859 +#line 2946 "GrammarParser.cpp" // lalr1.cc:859 break; - case 173: -#line 1507 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 175: +#line 1523 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< CaseRule::Ptr > () = Ast::make< CaseRule >( yylhs.location, yystack_[4].value.as< Expression::Ptr > (), yystack_[1].value.as< Cases::Ptr > () ); } -#line 2934 "GrammarParser.cpp" // lalr1.cc:859 +#line 2954 "GrammarParser.cpp" // lalr1.cc:859 break; - case 174: -#line 1511 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 176: +#line 1527 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< CaseRule::Ptr > () = nullptr; } -#line 2942 "GrammarParser.cpp" // lalr1.cc:859 +#line 2962 "GrammarParser.cpp" // lalr1.cc:859 break; - case 175: -#line 1519 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 177: +#line 1535 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Case::Ptr > () = Ast::make< DefaultCase >( yylhs.location, yystack_[0].value.as< Rule::Ptr > () ); } -#line 2950 "GrammarParser.cpp" // lalr1.cc:859 +#line 2970 "GrammarParser.cpp" // lalr1.cc:859 break; - case 176: -#line 1523 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 178: +#line 1539 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Case::Ptr > () = Ast::make< DefaultCase >( yylhs.location, yystack_[0].value.as< Rule::Ptr > () ); } -#line 2958 "GrammarParser.cpp" // lalr1.cc:859 +#line 2978 "GrammarParser.cpp" // lalr1.cc:859 break; - case 177: -#line 1527 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 179: +#line 1543 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Case::Ptr > () = Ast::make< ExpressionCase >( yylhs.location, yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Rule::Ptr > () ); } -#line 2966 "GrammarParser.cpp" // lalr1.cc:859 +#line 2986 "GrammarParser.cpp" // lalr1.cc:859 break; - case 178: -#line 1535 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 180: +#line 1551 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { auto cases = yystack_[0].value.as< Cases::Ptr > (); cases->add( yystack_[1].value.as< Case::Ptr > () ); yylhs.value.as< Cases::Ptr > () = cases; } -#line 2976 "GrammarParser.cpp" // lalr1.cc:859 +#line 2996 "GrammarParser.cpp" // lalr1.cc:859 break; - case 179: -#line 1541 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 181: +#line 1557 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { auto cases = Ast::make< Cases >( yylhs.location ); cases->add( yystack_[0].value.as< Case::Ptr > () ); yylhs.value.as< Cases::Ptr > () = cases; } -#line 2986 "GrammarParser.cpp" // lalr1.cc:859 +#line 3006 "GrammarParser.cpp" // lalr1.cc:859 break; - case 180: -#line 1551 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 182: +#line 1567 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< LetRule::Ptr > () = Ast::make< LetRule >( yylhs.location, yystack_[4].value.as< VariableDefinition::Ptr > (), yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Rule::Ptr > () ); } -#line 2994 "GrammarParser.cpp" // lalr1.cc:859 +#line 3014 "GrammarParser.cpp" // lalr1.cc:859 break; - case 181: -#line 1559 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 183: +#line 1575 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< ForallRule::Ptr > () = Ast::make< ForallRule >( yylhs.location, yystack_[4].value.as< VariableDefinition::Ptr > (), yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Rule::Ptr > () ); } -#line 3002 "GrammarParser.cpp" // lalr1.cc:859 +#line 3022 "GrammarParser.cpp" // lalr1.cc:859 break; - case 182: -#line 1567 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 184: +#line 1583 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< ChooseRule::Ptr > () = Ast::make< ChooseRule >( yylhs.location, yystack_[4].value.as< VariableDefinition::Ptr > (), yystack_[2].value.as< Expression::Ptr > (), yystack_[0].value.as< Rule::Ptr > () ); } -#line 3010 "GrammarParser.cpp" // lalr1.cc:859 +#line 3030 "GrammarParser.cpp" // lalr1.cc:859 break; - case 183: -#line 1575 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 185: +#line 1591 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< IterateRule::Ptr > () = Ast::make< IterateRule >( yylhs.location, yystack_[0].value.as< Rule::Ptr > () ); } -#line 3018 "GrammarParser.cpp" // lalr1.cc:859 +#line 3038 "GrammarParser.cpp" // lalr1.cc:859 break; - case 184: -#line 1583 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 186: +#line 1599 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< BlockRule::Ptr > () = Ast::make< BlockRule >( yylhs.location, yystack_[1].value.as< Rules::Ptr > () ); } -#line 3026 "GrammarParser.cpp" // lalr1.cc:859 +#line 3046 "GrammarParser.cpp" // lalr1.cc:859 break; - case 185: -#line 1587 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 187: +#line 1603 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< BlockRule::Ptr > () = Ast::make< BlockRule >( yylhs.location, yystack_[1].value.as< Rules::Ptr > () ); } -#line 3034 "GrammarParser.cpp" // lalr1.cc:859 +#line 3054 "GrammarParser.cpp" // lalr1.cc:859 break; - case 186: -#line 1591 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 188: +#line 1607 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< BlockRule::Ptr > () = nullptr; yyerrok; } -#line 3043 "GrammarParser.cpp" // lalr1.cc:859 +#line 3063 "GrammarParser.cpp" // lalr1.cc:859 break; - case 187: -#line 1596 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 189: +#line 1612 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< BlockRule::Ptr > () = nullptr; yyerrok; } -#line 3052 "GrammarParser.cpp" // lalr1.cc:859 +#line 3072 "GrammarParser.cpp" // lalr1.cc:859 break; - case 188: -#line 1605 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 190: +#line 1621 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< SequenceRule::Ptr > () = Ast::make< SequenceRule >( yylhs.location, yystack_[1].value.as< Rules::Ptr > () ); } -#line 3060 "GrammarParser.cpp" // lalr1.cc:859 +#line 3080 "GrammarParser.cpp" // lalr1.cc:859 break; - case 189: -#line 1609 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 191: +#line 1625 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< SequenceRule::Ptr > () = Ast::make< SequenceRule >( yylhs.location, yystack_[1].value.as< Rules::Ptr > () ); } -#line 3068 "GrammarParser.cpp" // lalr1.cc:859 +#line 3088 "GrammarParser.cpp" // lalr1.cc:859 break; - case 190: -#line 1613 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 192: +#line 1629 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< SequenceRule::Ptr > () = nullptr; yyerrok; } -#line 3077 "GrammarParser.cpp" // lalr1.cc:859 +#line 3097 "GrammarParser.cpp" // lalr1.cc:859 break; - case 191: -#line 1618 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 193: +#line 1634 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< SequenceRule::Ptr > () = nullptr; yyerrok; } -#line 3086 "GrammarParser.cpp" // lalr1.cc:859 +#line 3106 "GrammarParser.cpp" // lalr1.cc:859 break; - case 192: -#line 1627 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 194: +#line 1643 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { const auto function = yystack_[2].value.as< DirectCallExpression::Ptr > (); function->setTargetType( CallExpression::TargetType::FUNCTION ); yylhs.value.as< UpdateRule::Ptr > () = Ast::make< UpdateRule >( yylhs.location, function, yystack_[0].value.as< Expression::Ptr > () ); } -#line 3096 "GrammarParser.cpp" // lalr1.cc:859 +#line 3116 "GrammarParser.cpp" // lalr1.cc:859 break; - case 193: -#line 1637 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 195: +#line 1653 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { const std::set< CallExpression::TargetType > allowedCallTargetTypes{ CallExpression::TargetType::RULE }; yylhs.value.as< CallRule::Ptr > () = Ast::make< CallRule >( yylhs.location, yystack_[0].value.as< DirectCallExpression::Ptr > (), allowedCallTargetTypes ); } -#line 3106 "GrammarParser.cpp" // lalr1.cc:859 +#line 3126 "GrammarParser.cpp" // lalr1.cc:859 break; - case 194: -#line 1643 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 196: +#line 1659 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { const std::set< CallExpression::TargetType > allowedCallTargetTypes{ CallExpression::TargetType::DERIVED, CallExpression::TargetType::BUILTIN }; yylhs.value.as< CallRule::Ptr > () = Ast::make< CallRule >( yylhs.location, yystack_[0].value.as< DirectCallExpression::Ptr > (), allowedCallTargetTypes ); } -#line 3117 "GrammarParser.cpp" // lalr1.cc:859 +#line 3137 "GrammarParser.cpp" // lalr1.cc:859 break; - case 195: -#line 1650 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 197: +#line 1666 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { const std::set< CallExpression::TargetType > allowedCallTargetTypes{ CallExpression::TargetType::RULE }; yylhs.value.as< CallRule::Ptr > () = Ast::make< CallRule >( yylhs.location, yystack_[0].value.as< IndirectCallExpression::Ptr > (), allowedCallTargetTypes ); } -#line 3127 "GrammarParser.cpp" // lalr1.cc:859 +#line 3147 "GrammarParser.cpp" // lalr1.cc:859 break; - case 196: -#line 1656 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 198: +#line 1672 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { const std::set< CallExpression::TargetType > allowedCallTargetTypes{ CallExpression::TargetType::DERIVED, CallExpression::TargetType::BUILTIN }; yylhs.value.as< CallRule::Ptr > () = Ast::make< CallRule >( yylhs.location, yystack_[0].value.as< IndirectCallExpression::Ptr > (), allowedCallTargetTypes ); } -#line 3138 "GrammarParser.cpp" // lalr1.cc:859 +#line 3158 "GrammarParser.cpp" // lalr1.cc:859 break; - case 197: -#line 1667 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 199: +#line 1683 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Attribute::Ptr > () = yystack_[0].value.as< BasicAttribute::Ptr > (); } -#line 3146 "GrammarParser.cpp" // lalr1.cc:859 +#line 3166 "GrammarParser.cpp" // lalr1.cc:859 break; - case 198: -#line 1671 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 200: +#line 1687 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< Attribute::Ptr > () = yystack_[0].value.as< ExpressionAttribute::Ptr > (); } -#line 3154 "GrammarParser.cpp" // lalr1.cc:859 +#line 3174 "GrammarParser.cpp" // lalr1.cc:859 break; - case 199: -#line 1679 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 201: +#line 1695 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { auto attributes = yystack_[2].value.as< Attributes::Ptr > (); attributes->add( yystack_[0].value.as< Attribute::Ptr > () ); yylhs.value.as< Attributes::Ptr > () = attributes; } -#line 3164 "GrammarParser.cpp" // lalr1.cc:859 +#line 3184 "GrammarParser.cpp" // lalr1.cc:859 break; - case 200: -#line 1685 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 202: +#line 1701 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { auto attributes = Ast::make< Attributes >( yylhs.location ); attributes->add( yystack_[0].value.as< Attribute::Ptr > () ); yylhs.value.as< Attributes::Ptr > () = attributes; } -#line 3174 "GrammarParser.cpp" // lalr1.cc:859 +#line 3194 "GrammarParser.cpp" // lalr1.cc:859 break; - case 201: -#line 1695 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 203: +#line 1711 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< BasicAttribute::Ptr > () = Ast::make< BasicAttribute >( yylhs.location, yystack_[0].value.as< Identifier::Ptr > () ); } -#line 3182 "GrammarParser.cpp" // lalr1.cc:859 +#line 3202 "GrammarParser.cpp" // lalr1.cc:859 break; - case 202: -#line 1703 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 + case 204: +#line 1719 "../../obj/src/GrammarParser.yy" // lalr1.cc:859 { yylhs.value.as< ExpressionAttribute::Ptr > () = Ast::make< ExpressionAttribute >( yylhs.location, yystack_[1].value.as< Identifier::Ptr > (), yystack_[0].value.as< Expression::Ptr > () ); } -#line 3190 "GrammarParser.cpp" // lalr1.cc:859 +#line 3210 "GrammarParser.cpp" // lalr1.cc:859 break; -#line 3194 "GrammarParser.cpp" // lalr1.cc:859 +#line 3214 "GrammarParser.cpp" // lalr1.cc:859 default: break; } @@ -3445,55 +3465,55 @@ namespace libcasm_fe { } - const short int Parser::yypact_ninf_ = -255; + const short int Parser::yypact_ninf_ = -265; - const signed char Parser::yytable_ninf_ = -86; + const signed char Parser::yytable_ninf_ = -88; const short int Parser::yypact_[] = { - 33, 229, 24, -255, -2, -7, -7, -7, -7, -7, - -7, 1, -7, -255, -255, 212, -255, -255, -255, -255, - -255, -255, -255, -255, -255, -29, -255, 943, -7, -255, - -255, -27, -255, 5, 11, 5, -5, 40, 64, 8, - 67, -255, -255, -255, -255, 1010, -255, 27, -255, -255, - -255, -7, -12, -12, -12, 1010, -12, -255, -255, -255, - 1010, 1010, 1010, 501, 568, 1, -255, -255, -255, -255, - -255, -255, -255, 89, 65, 103, -255, -255, -255, -255, - -255, -255, -255, -255, -255, 1538, -255, -255, -255, 86, - -255, -255, -255, -255, -255, -255, -255, -255, -7, 4, - 87, 107, -15, 1, 108, 117, 1, 1, 1010, 125, - 501, 1802, 270, -7, -255, -7, 129, -255, 141, 171, - 175, 1337, 176, -255, -255, -255, 151, 1010, 1571, 144, - 159, -255, 1604, 32, -255, 943, -255, 635, -255, 1010, - 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, - 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, -255, 153, - -255, 2, 1, -7, 1189, 1, 161, 155, 28, -255, - 21, 26, 164, 160, 18, 90, 1868, 163, 1571, -255, - -255, 44, 1, 1010, 1010, 1010, 1010, 1010, -255, 1637, - -255, 1010, -255, 1010, -255, 1010, -255, 179, -255, 1802, - 13, 472, 274, 1887, 1835, 119, 119, 539, 146, 146, - 166, 166, 166, -255, 1802, 1835, 539, 146, 146, 1802, - -255, -255, -12, 191, -255, 91, 702, 742, -255, -12, - -12, -12, 1189, -1, 1010, 1010, 183, 804, 844, 170, - -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, - -255, -255, -255, 200, 1, 1, -7, -255, -255, 10, - -7, -7, -7, -255, -255, 41, -255, -255, 197, 1, - 1, -255, -255, 163, 202, -255, -7, -255, 739, 1472, - 1226, 1406, 1505, 103, 1670, 1703, 1802, -255, -255, -255, - 1010, -255, -7, 239, -255, 1047, 242, 1087, 220, 250, - 251, -255, -255, -255, 1372, 1439, 227, 1109, 210, 1149, - 1010, 1189, -255, 276, 47, -255, -255, 58, 61, 59, - -255, -255, 163, 228, -255, -255, -255, -255, 1010, 1010, - 1010, 1010, 1010, -255, -255, -255, 1802, -255, -255, -255, - -255, -255, -255, 1010, 1010, 1010, 1189, 240, -255, -255, - -255, -255, 1802, -255, 241, 282, 289, 1, 1, 169, - 245, -255, 1802, -255, 1802, 1802, -255, 1186, 1264, 1302, - 271, 434, 1010, 252, -255, -255, 235, 236, -255, -255, - -255, -255, 1189, 1189, 1189, 1189, 253, 259, 264, 1736, - 876, 254, 1769, 943, 1, 1, -255, -255, -255, -255, - -255, 1189, 1189, 1189, -255, -255, -255, 269, -255, -255, - -255, -255, -255, -255 + 13, 950, 31, -265, 12, -9, -9, -9, -9, -9, + -9, 8, -9, -265, -265, 438, -265, -265, -265, -265, + -265, -265, -265, -265, -265, 5, -265, 960, -9, -265, + -265, 22, -265, 1, 62, 1, -2, 63, 73, 21, + 75, -265, -265, -265, -265, 1027, -265, -36, -265, -265, + -265, -9, -12, -12, -12, 1027, -12, -265, -265, -265, + 1027, 1027, 1027, 558, 625, 8, -265, -265, -265, -265, + -265, -265, -265, 102, 110, 116, -265, -265, -265, -265, + -265, -265, -265, -265, -265, 1573, -265, -265, -265, 109, + -265, -265, -265, -265, -265, -265, -265, -265, -9, 32, + 119, 138, -35, 8, 151, 158, 8, 8, 1027, 165, + 558, 1837, 790, -9, -265, -9, 137, -265, 173, 200, + 202, 1372, 204, -265, -265, -265, 181, 1027, 1606, 176, + 183, -265, 1639, 49, -265, 960, -265, 692, -265, 1027, + 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, + 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, -265, 186, + -265, 27, 8, -9, 1194, 8, 172, 170, 84, -265, + 18, 36, 192, 174, -17, 48, 1870, 68, 1606, -265, + -265, 92, 8, 1027, 1027, 1027, 1027, 1027, -265, 1672, + -265, 1027, -265, 1027, -265, 1027, -265, 191, -265, 1837, + 55, 315, 1903, 1931, 424, 153, 153, 529, 231, 231, + 179, 179, 179, -265, 1837, 424, 529, 231, 231, 1837, + -265, -265, -12, 205, -265, -29, 35, 759, -265, -12, + -12, -12, 1194, 190, 1027, 1027, 187, 799, 861, 180, + -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, + -265, -265, -265, 206, 8, 8, -9, -265, -265, 17, + -9, -9, -9, -265, -265, 112, -265, -265, 196, 8, + 8, -265, -9, -265, -265, 139, -265, -9, -265, 1110, + 1507, 1261, 1441, 1540, 116, 1705, 1738, 1837, -265, -265, + -265, 1027, -265, -9, 237, -265, 821, 236, 1094, 215, + 241, 242, -265, -265, -265, 1407, 1474, 216, 1113, 198, + 1175, 1027, 1194, -265, 260, 96, -265, -265, 103, 106, + 142, -265, -265, 68, 219, -265, 150, -265, -265, -265, + 1027, 1027, 1027, 1027, 1027, -265, -265, -265, 1837, -265, + -265, -265, -265, -265, -265, 1027, 1027, 1027, 1194, 228, + -265, -265, -265, -265, 1837, -265, 229, 273, 275, 8, + 8, 197, 193, -265, 201, 1837, -265, 1837, 1837, -265, + 1223, 1299, 1337, 254, 491, 1027, 233, -265, -265, 220, + 222, -265, -265, -265, -265, -265, -265, 1194, 1194, 1194, + 1194, 243, 252, 253, 1771, 893, 244, 1804, 960, 8, + 8, -265, -265, -265, -265, -265, 1194, 1194, 1194, -265, + -265, -265, 255, -265, -265, -265, -265, -265, -265 }; const unsigned char @@ -3501,476 +3521,486 @@ namespace libcasm_fe { { 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 15, 0, 4, 3, 5, 7, - 8, 9, 10, 6, 1, 0, 59, 33, 0, 58, - 63, 64, 25, 75, 0, 75, 0, 0, 0, 80, - 0, 76, 77, 78, 79, 201, 200, 0, 197, 198, - 14, 0, 0, 0, 0, 0, 0, 94, 96, 95, - 0, 0, 0, 0, 0, 0, 98, 99, 100, 102, - 101, 97, 31, 32, 0, 147, 114, 92, 93, 91, - 87, 88, 89, 90, 86, 27, 111, 113, 112, 0, - 104, 105, 106, 107, 108, 109, 110, 65, 0, 0, + 8, 9, 10, 6, 1, 0, 61, 33, 0, 60, + 65, 66, 25, 77, 0, 77, 0, 0, 0, 82, + 0, 78, 79, 80, 81, 203, 202, 0, 199, 200, + 14, 0, 0, 0, 0, 0, 0, 96, 98, 97, + 0, 0, 0, 0, 0, 0, 100, 101, 102, 104, + 103, 99, 31, 32, 0, 149, 116, 94, 95, 93, + 89, 90, 91, 92, 88, 27, 113, 115, 114, 0, + 106, 107, 108, 109, 110, 111, 112, 67, 0, 0, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, - 0, 202, 0, 0, 66, 0, 68, 70, 0, 0, - 0, 0, 0, 136, 117, 118, 0, 0, 142, 0, - 0, 138, 142, 0, 103, 0, 26, 0, 148, 0, + 0, 204, 0, 0, 68, 0, 70, 72, 0, 0, + 0, 0, 0, 138, 119, 120, 0, 0, 144, 0, + 0, 140, 144, 0, 105, 0, 26, 0, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, - 72, 0, 0, 0, 0, 0, 23, 0, 80, 22, - 0, 0, 0, 0, 22, 0, 83, 0, 0, 12, - 199, 0, 0, 0, 0, 0, 0, 0, 116, 0, - 115, 0, 140, 0, 139, 0, 30, 0, 145, 142, - 0, 133, 131, 132, 135, 119, 120, 126, 127, 128, - 121, 122, 123, 124, 28, 134, 125, 129, 130, 29, - 74, 73, 0, 0, 61, 0, 0, 0, 170, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 194, - 196, 155, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 0, 0, 0, 0, 38, 40, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, + 74, 0, 0, 0, 0, 0, 23, 0, 82, 22, + 0, 0, 0, 0, 22, 0, 85, 0, 0, 12, + 201, 0, 0, 0, 0, 0, 0, 0, 118, 0, + 117, 0, 142, 0, 141, 0, 30, 0, 147, 144, + 0, 135, 133, 134, 137, 121, 122, 128, 129, 130, + 123, 124, 125, 126, 28, 136, 127, 131, 132, 29, + 76, 75, 0, 0, 63, 0, 0, 0, 172, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, + 198, 157, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 0, 0, 0, 0, 38, 40, 0, 0, 0, 0, 45, 49, 0, 43, 47, 0, 0, - 0, 81, 52, 55, 0, 53, 0, 67, 0, 0, - 0, 0, 0, 0, 141, 0, 141, 144, 143, 71, - 0, 35, 0, 0, 169, 0, 0, 0, 0, 0, - 0, 183, 193, 195, 0, 0, 0, 0, 0, 0, - 0, 0, 21, 20, 0, 36, 39, 75, 75, 0, - 41, 48, 0, 0, 84, 54, 51, 69, 0, 0, - 0, 0, 0, 149, 146, 137, 34, 60, 191, 189, - 168, 187, 185, 0, 0, 0, 0, 0, 186, 184, - 190, 188, 192, 156, 0, 18, 0, 24, 24, 0, - 0, 82, 150, 153, 152, 151, 154, 0, 0, 0, - 171, 0, 0, 0, 16, 37, 0, 0, 44, 42, - 46, 50, 0, 0, 0, 0, 0, 0, 0, 0, - 179, 0, 0, 33, 0, 0, 180, 181, 182, 172, - 174, 0, 0, 0, 178, 173, 19, 0, 56, 57, - 175, 176, 177, 17 + 0, 83, 0, 53, 57, 0, 55, 0, 69, 0, + 0, 0, 0, 0, 0, 143, 0, 143, 146, 145, + 73, 0, 35, 0, 0, 171, 0, 0, 0, 0, + 0, 0, 185, 195, 197, 0, 0, 0, 0, 0, + 0, 0, 0, 21, 20, 0, 36, 39, 77, 77, + 0, 41, 48, 0, 0, 86, 0, 51, 56, 71, + 0, 0, 0, 0, 0, 151, 148, 139, 34, 62, + 193, 191, 170, 189, 187, 0, 0, 0, 0, 0, + 188, 186, 192, 190, 194, 158, 0, 18, 0, 24, + 24, 0, 0, 84, 0, 152, 155, 154, 153, 156, + 0, 0, 0, 173, 0, 0, 0, 16, 37, 0, + 0, 44, 42, 46, 50, 52, 54, 0, 0, 0, + 0, 0, 0, 0, 0, 181, 0, 0, 33, 0, + 0, 182, 183, 184, 174, 176, 0, 0, 0, 180, + 175, 19, 0, 58, 59, 177, 178, 179, 17 }; const short int Parser::yypgoto_[] = { - -255, -255, 193, 315, -255, -166, -255, -255, -255, -104, - -255, 204, -255, -52, -165, -255, -255, 84, -255, -255, - 82, -255, -255, -255, -254, -11, 133, -255, 6, -4, - 73, -26, -255, -33, -10, -255, -255, -255, -255, -255, - -255, -255, -255, -255, -255, -255, -255, -255, -255, -20, - -255, -255, -255, -56, 75, -255, 31, 62, -255, -255, - -255, -255, -255, -160, 20, -182, -255, -255, -255, -255, - -40, -255, -255, -255, -255, -255, -255, -255, -255, 243, - -106, -255, -255 + -265, -265, 199, 297, -265, -164, -265, -265, -265, -102, + -265, 178, -265, -76, 2, -265, -265, 64, -265, -265, + 59, -265, -265, -264, 4, -28, 175, -265, -14, -4, + 51, -34, -265, -33, -10, -265, -265, -265, -265, -265, + -265, -265, -265, -265, -265, -265, -265, -265, -265, -16, + -265, -265, -265, -56, 41, -265, 72, 115, -265, -265, + -265, -265, -265, 3, -87, -147, -265, -265, -265, -265, + -69, -265, -265, -265, -265, -265, -265, -265, -265, 221, + -106, -265, -265 }; const short int Parser::yydefgoto_[] = { - -1, 2, 13, 14, 15, 16, 374, 355, 166, 167, - 17, 72, 73, 74, 18, 19, 20, 258, 259, 21, - 264, 265, 22, 273, 274, 266, 30, 225, 31, 75, + -1, 2, 13, 14, 15, 16, 377, 357, 166, 167, + 17, 72, 73, 74, 273, 19, 20, 258, 259, 21, + 264, 265, 22, 274, 275, 266, 30, 225, 31, 75, 117, 118, 161, 100, 169, 41, 42, 43, 44, 175, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 129, 138, 89, 90, 91, 92, 93, - 94, 95, 96, 23, 294, 295, 242, 243, 244, 390, - 391, 245, 246, 247, 248, 249, 250, 251, 252, 46, + 94, 95, 96, 276, 295, 296, 242, 243, 244, 395, + 396, 245, 246, 247, 248, 249, 250, 251, 252, 46, 47, 48, 49 }; const short int Parser::yytable_[] = { - 32, 40, 102, 173, 257, 159, 263, 39, 133, 181, - 26, 267, 272, 25, 25, 26, 25, 275, 8, 325, - 26, 26, 106, 26, 24, 111, 26, 119, 120, 8, - 122, 260, 164, 261, 97, 121, 1, 51, 115, 98, - 123, 124, 125, 128, 132, 297, 260, 236, 261, 103, - 27, 221, 165, 99, 115, 307, 309, 114, 101, 222, - 256, 134, 288, 315, 28, 28, 107, 28, 360, 29, - 195, 256, 108, 160, 29, -85, 262, -85, 112, 29, - 29, 200, 29, 194, 113, 29, 107, 104, 176, 195, - 178, 262, 108, 257, 320, 276, 172, 174, 356, 168, - 263, 113, 168, 168, 113, 267, 99, 189, 272, 99, - 359, 105, 357, 275, 109, 358, 113, 199, 136, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 33, 34, - 35, 36, 37, 38, 291, 45, 135, 270, 292, 271, - 314, 137, 223, 157, 162, 253, 319, 272, 168, 163, - 170, 168, 275, 278, 279, 280, 281, 282, 5, 171, - 7, 284, 277, 285, 260, 286, 261, 177, 168, 148, - 149, 150, 151, 182, 241, 116, 116, 116, 183, 116, - 375, 143, 144, 184, 378, 239, 289, 185, 187, 380, - 188, 191, 220, 298, 299, 300, 148, 149, 150, 151, - 192, 268, -2, 3, 304, 305, 4, 5, 6, 7, - 8, 254, 255, 9, 10, 11, 240, 269, 287, 151, - 3, 158, 116, 4, 5, 6, 7, 8, 290, 310, - 9, 10, 11, 127, 312, 313, 45, 311, 45, 322, - 168, 168, 301, 376, 377, 326, 338, 239, 239, 323, - 324, 341, 12, 239, 302, 168, 168, 343, 239, 239, - 336, 3, 344, 345, 4, 5, 6, 7, 8, 12, - 348, 9, 10, 11, 350, 102, 354, 361, 240, 240, - 352, 373, 371, 372, 240, 303, 224, 8, 381, 240, - 240, 385, 394, 395, 393, 179, 400, 405, 362, 363, - 364, 365, 366, 401, 139, 340, 141, 340, 402, 143, - 144, 145, 413, 367, 368, 369, 239, 340, 239, 340, - 50, 353, 146, 147, 148, 149, 150, 151, 239, 196, - 239, 407, 239, 316, 154, 155, 156, 321, 379, 327, - 404, 389, 392, 168, 168, 116, 180, 240, 333, 240, - 0, 0, 116, 116, 116, 0, 370, 0, 0, 240, - 389, 240, 0, 240, 0, 0, 0, 239, 0, 0, - 0, 0, 0, 0, 408, 409, 0, 0, 0, 45, - 168, 168, 0, 317, 318, 45, 0, 0, 0, 0, - 0, 0, 396, 397, 398, 399, 0, 0, 240, 116, - 0, 0, 0, 239, 239, 239, 239, 0, 0, 0, - 0, 410, 411, 412, 0, 337, 0, 0, 0, 0, - 0, 0, 239, 239, 239, 386, 0, 0, 0, 0, - 0, 0, 0, 0, 240, 240, 240, 240, 0, 25, - 0, 0, 0, 0, 0, 52, 26, 53, 54, 0, - 0, 0, 55, 240, 240, 240, 0, 387, 0, 56, - 0, 57, 58, 59, 0, 0, 0, 0, 60, 61, - 62, 0, 110, 0, 64, 0, 0, 0, 0, 388, - 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 28, 0, 126, 0, 0, 0, 0, 0, 0, 66, - 67, 68, 69, 70, 71, 29, 25, 143, 144, 145, + 32, 40, 102, 18, 23, 173, 257, 39, 133, 181, + 26, 328, 164, 26, 97, 112, 1, 18, 23, 119, + 120, 113, 122, 25, 292, 8, 8, 25, 293, 111, + 26, 24, 165, 159, 26, 106, 294, 114, 115, 121, + -87, 260, -87, 261, 123, 124, 125, 128, 132, 99, + 25, 226, 103, 227, 26, 228, 229, 26, 230, 231, + 232, 134, 233, 234, 27, 160, 235, 256, 256, 29, + 316, 51, 29, 5, 28, 7, 221, 241, 28, 107, + 298, 200, 115, 236, 222, 108, 262, 237, 98, 29, + 308, 310, 176, 29, 178, 257, 172, 174, 328, 168, + 194, 28, 168, 168, 289, 270, 195, 271, 238, 101, + 104, 189, 195, 29, 18, 23, 29, 260, 272, 261, + 105, 199, 109, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 107, 277, 5, 302, 7, 358, 108, 113, + 315, 99, 223, 113, 99, 253, 320, 359, 168, 135, + 360, 168, 262, 136, 137, 321, 326, 279, 280, 281, + 282, 283, 278, 263, 267, 285, 157, 286, 168, 287, + 33, 34, 35, 36, 37, 38, 162, 45, 290, 272, + 163, 182, 327, 361, 378, 299, 300, 301, 5, 113, + 7, 364, 260, 170, 261, 25, 5, 113, 7, 342, + 171, 342, 26, 148, 149, 150, 151, 177, 305, 306, + 183, 342, 184, 342, 185, 355, 187, 116, 116, 116, + 188, 116, 254, 191, 192, 220, 239, 255, 236, 268, + 288, 269, 151, 272, 313, 314, 384, 127, 323, 311, + 168, 168, 291, 312, 340, 343, 28, 379, 380, 324, + 325, 373, 345, 346, 347, 168, 168, 263, 267, 350, + 356, 29, 352, 158, 116, 338, 143, 144, 363, 240, + 374, 375, 376, 8, 390, 398, 102, 399, 45, 400, + 45, 148, 149, 150, 151, 354, 405, 410, 239, 239, + 401, 402, 403, 404, 239, 303, 406, 407, 418, 239, + 239, 179, 50, 196, 365, 366, 367, 368, 369, 415, + 416, 417, 412, 317, 322, 335, 409, 362, 329, 370, + 371, 372, 0, 382, 180, 0, 0, 0, 224, 0, + 0, 240, 240, 0, 0, 0, 0, 240, 304, 0, + 0, 0, 240, 240, 0, 168, 168, 0, 394, 397, + 143, 144, 145, 381, 383, 0, 385, 386, 239, 0, + 239, 0, 0, 146, 147, 148, 149, 150, 151, 394, + 239, 0, 239, 0, 239, 154, 155, 156, 0, 413, + 414, 0, 0, 0, 0, 168, 168, 116, 0, 0, + 0, 0, 0, 0, 116, 116, 116, 0, 0, 0, + 0, 240, 0, 240, 0, 0, 0, 0, 0, 0, + 239, 0, 0, 240, 0, 240, 0, 240, 0, 0, + 0, 45, 0, 0, 0, 318, 319, 45, -2, 3, + 0, 0, 4, 5, 6, 7, 8, 45, 0, 9, + 10, 11, 116, 0, 0, 0, 0, 0, 0, 239, + 239, 239, 239, 240, 139, 140, 141, 0, 339, 143, + 144, 145, 0, 0, 0, 0, 0, 0, 239, 239, + 239, 0, 146, 147, 148, 149, 150, 151, 12, 0, + 0, 0, 391, 0, 154, 155, 156, 0, 0, 0, + 0, 0, 240, 240, 240, 240, 25, 0, 0, 0, 0, 0, 52, 26, 53, 54, 0, 0, 0, 55, - 146, 147, 148, 149, 150, 151, 56, 0, 57, 58, - 59, 0, 154, 155, 156, 60, 61, 62, 0, 110, - 0, 64, 0, 0, 0, 0, 0, 65, 0, 0, - 0, 127, 0, 0, 0, 0, 0, 28, 0, 130, + 0, 240, 240, 240, 392, 0, 56, 0, 57, 58, + 59, 0, 0, 0, 0, 60, 61, 62, 0, 110, + 0, 64, 0, 0, 0, 0, 393, 65, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 28, 0, 126, 0, 0, 0, 0, 0, 0, 66, 67, 68, 69, 70, 71, 29, 25, 143, 144, 0, 0, 0, 52, 26, 53, 54, 0, 0, 0, 55, 146, 147, 148, 149, 150, 151, 56, 0, 57, 58, 59, 0, 0, - 155, 156, 60, 61, 62, 0, 110, 0, 64, 131, - 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 28, 0, 197, 0, 0, 0, + 155, 156, 60, 61, 62, 0, 110, 0, 64, 0, + 0, 0, 0, 0, 65, 0, 0, 0, 127, 0, + 0, 0, 0, 0, 28, 0, 130, 0, 0, 0, 0, 0, 0, 66, 67, 68, 69, 70, 71, 29, 25, 0, 0, 0, 0, 0, 52, 26, 53, 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 0, 0, 0, 0, 60, - 61, 62, 0, 110, 198, 64, 0, 0, 0, 0, + 61, 62, 0, 110, 0, 64, 131, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 28, 0, 293, 0, 0, 0, 0, 0, 0, - 66, 67, 68, 69, 70, 71, 29, 25, 226, 0, - 227, 0, 228, 229, 26, 230, 231, 232, 0, 233, - 234, 0, 0, 235, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, - 236, 0, 0, 0, 237, 0, 0, 25, 226, 0, - 227, 328, 228, 229, 26, 230, 231, 232, 28, 233, - 234, 0, 0, 235, 0, 238, 0, 0, 0, 139, - 140, 141, 142, 29, 143, 144, 145, 0, 0, 0, - 236, 0, 0, 0, 237, 0, 0, 146, 147, 148, - 149, 150, 151, 0, 0, 306, 0, 153, 28, 154, - 155, 156, 0, 0, 0, 238, 0, 0, 0, 25, - 226, 0, 227, 29, 228, 229, 26, 230, 231, 232, - 0, 233, 234, 0, 0, 235, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 308, 0, 0, 0, 0, - 0, 0, 236, 0, 0, 0, 237, 0, 0, 25, - 226, 0, 227, 0, 228, 229, 26, 230, 231, 232, - 28, 233, 234, 0, 0, 235, 0, 238, 0, 0, - 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, - 0, 25, 236, 0, 0, 0, 237, 52, 26, 53, - 54, 0, 0, 0, 55, 0, 0, 0, 0, 387, - 28, 56, 0, 57, 58, 59, 0, 238, 0, 0, - 60, 61, 62, 0, 110, 29, 64, 0, 0, 0, - 0, 388, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, - 0, 66, 67, 68, 69, 70, 71, 29, 25, 0, - 0, 0, 0, 0, 52, 26, 53, 54, 0, 0, - 0, 55, 0, 0, 0, 0, 0, 0, 56, 0, - 57, 58, 59, 0, 0, 0, 0, 60, 61, 62, - 0, 63, 0, 64, 0, 0, 0, 0, 0, 65, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 67, + 0, 28, 0, 197, 0, 0, 0, 0, 0, 0, + 66, 67, 68, 69, 70, 71, 29, 25, 0, 0, + 0, 0, 0, 52, 26, 53, 54, 0, 0, 0, + 55, 0, 0, 0, 0, 0, 0, 56, 0, 57, + 58, 59, 0, 0, 0, 0, 60, 61, 62, 0, + 110, 198, 64, 0, 0, 0, 0, 0, 65, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, + 297, 0, 0, 0, 0, 0, 0, 66, 67, 68, + 69, 70, 71, 29, 25, 226, 0, 227, 0, 228, + 229, 26, 230, 231, 232, 0, 233, 234, 0, 0, + 235, 3, 0, 0, 4, 5, 6, 7, 8, 0, + 307, 9, 10, 11, 0, 0, 0, 236, 0, 0, + 0, 237, 0, 0, 25, 226, 0, 227, 0, 228, + 229, 26, 230, 231, 232, 28, 233, 234, 0, 0, + 235, 0, 238, 0, 0, 0, 25, 226, 341, 227, + 29, 228, 229, 26, 230, 231, 232, 236, 233, 234, + 0, 237, 235, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 309, 0, 0, 28, 0, 0, 0, 236, + 0, 0, 238, 237, 0, 0, 25, 226, 0, 227, + 29, 228, 229, 26, 230, 231, 232, 28, 233, 234, + 0, 0, 235, 0, 238, 0, 0, 0, 0, 0, + 0, 0, 29, 0, 0, 0, 0, 0, 25, 236, + 0, 0, 0, 237, 52, 26, 53, 54, 0, 0, + 0, 55, 0, 0, 0, 0, 392, 28, 56, 0, + 57, 58, 59, 0, 238, 0, 0, 60, 61, 62, + 0, 110, 29, 64, 0, 0, 0, 0, 393, 65, + 0, 3, 0, 0, 4, 5, 6, 7, 8, 28, + 0, 9, 10, 11, 0, 0, 0, 0, 66, 67, 68, 69, 70, 71, 29, 25, 0, 0, 0, 0, 0, 52, 26, 53, 54, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, - 0, 0, 0, 0, 60, 61, 62, 0, 110, 0, - 64, 0, 25, 226, 339, 227, 65, 228, 229, 26, - 230, 231, 232, 0, 233, 234, 28, 0, 235, 0, + 12, 0, 0, 0, 60, 61, 62, 0, 63, 0, + 64, 0, 0, 0, 0, 0, 65, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 66, 67, 68, 69, 70, - 71, 29, 0, 0, 0, 236, 0, 0, 0, 237, - 0, 0, 25, 226, 0, 227, 342, 228, 229, 26, - 230, 231, 232, 28, 233, 234, 0, 0, 235, 0, - 238, 0, 0, 0, 25, 226, 0, 227, 29, 228, - 229, 26, 230, 231, 232, 236, 233, 234, 0, 237, - 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 28, 0, 0, 0, 236, 0, 0, - 238, 237, 349, 0, 25, 226, 0, 227, 29, 228, - 229, 26, 230, 231, 232, 28, 233, 234, 0, 0, - 235, 0, 238, 0, 0, 0, 0, 0, 0, 0, - 29, 0, 0, 0, 0, 0, 0, 236, 0, 0, - 0, 237, 0, 0, 25, 226, 0, 227, 382, 228, - 229, 26, 230, 231, 232, 28, 233, 234, 0, 0, - 235, 0, 238, 351, 0, 0, 139, 140, 141, 142, - 29, 143, 144, 145, 0, 0, 0, 236, 0, 0, - 0, 237, 0, 0, 146, 147, 148, 149, 150, 151, - 0, 0, 330, 0, 153, 28, 154, 155, 156, 0, - 0, 0, 238, 0, 0, 0, 139, 140, 141, 142, - 29, 143, 144, 145, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 146, 147, 148, 149, 150, 151, - 383, 0, 0, 0, 153, 0, 154, 155, 156, 0, - 0, 0, 0, 0, 139, 140, 141, 142, 0, 143, - 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 146, 147, 148, 149, 150, 151, 384, 0, - 0, 0, 153, 0, 154, 155, 156, 0, 0, 0, - 0, 0, 139, 140, 141, 142, 0, 143, 144, 145, + 71, 29, 25, 0, 0, 0, 0, 0, 52, 26, + 53, 54, 0, 0, 0, 55, 0, 0, 0, 0, + 0, 0, 56, 0, 57, 58, 59, 0, 0, 0, + 0, 60, 61, 62, 0, 110, 0, 64, 0, 0, + 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, + 0, 0, 66, 67, 68, 69, 70, 71, 29, 25, + 226, 0, 227, 344, 228, 229, 26, 230, 231, 232, + 0, 233, 234, 0, 0, 235, 0, 0, 25, 226, + 0, 227, 330, 228, 229, 26, 230, 231, 232, 0, + 233, 234, 236, 0, 235, 0, 237, 0, 0, 0, + 139, 140, 141, 142, 0, 143, 144, 145, 0, 0, + 28, 236, 0, 0, 0, 237, 351, 238, 146, 147, + 148, 149, 150, 151, 0, 29, 0, 0, 153, 28, + 154, 155, 156, 0, 0, 0, 238, 0, 0, 0, + 25, 226, 0, 227, 29, 228, 229, 26, 230, 231, + 232, 0, 233, 234, 0, 0, 235, 0, 0, 25, + 226, 0, 227, 0, 228, 229, 26, 230, 231, 232, + 0, 233, 234, 236, 0, 235, 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 146, 147, 148, 149, 150, 151, 186, 0, 0, 0, - 153, 0, 154, 155, 156, 0, 0, 139, 140, 141, + 0, 28, 236, 0, 0, 387, 237, 0, 238, 353, + 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, + 28, 0, 0, 139, 140, 141, 142, 238, 143, 144, + 145, 0, 0, 0, 0, 29, 0, 0, 0, 0, + 0, 146, 147, 148, 149, 150, 151, 332, 0, 0, + 0, 153, 0, 154, 155, 156, 0, 0, 0, 0, + 0, 139, 140, 141, 142, 0, 143, 144, 145, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, + 147, 148, 149, 150, 151, 388, 0, 0, 0, 153, + 0, 154, 155, 156, 0, 0, 0, 0, 0, 139, + 140, 141, 142, 0, 143, 144, 145, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 146, 147, 148, + 149, 150, 151, 389, 0, 0, 0, 153, 0, 154, + 155, 156, 0, 0, 0, 0, 0, 139, 140, 141, 142, 0, 143, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 147, 148, 149, 150, - 151, 346, 0, 0, 0, 153, 0, 154, 155, 156, + 151, 186, 0, 0, 0, 153, 0, 154, 155, 156, 0, 0, 139, 140, 141, 142, 0, 143, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 146, 147, 148, 149, 150, 151, 331, 0, 0, 0, - 153, 0, 154, 155, 156, 0, 139, 140, 141, 142, - 0, 143, 144, 145, 0, 0, 0, 0, 0, 0, + 146, 147, 148, 149, 150, 151, 348, 0, 0, 0, + 153, 0, 154, 155, 156, 0, 0, 139, 140, 141, + 142, 0, 143, 144, 145, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 146, 147, 148, 149, 150, + 151, 333, 0, 0, 0, 153, 0, 154, 155, 156, + 0, 139, 140, 141, 142, 0, 143, 144, 145, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, + 147, 148, 149, 150, 151, 0, 349, 0, 0, 153, + 0, 154, 155, 156, 139, 140, 141, 142, 0, 143, + 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 146, 147, 148, 149, 150, 151, 0, 0, + 0, 331, 153, 0, 154, 155, 156, 139, 140, 141, + 142, 0, 143, 144, 145, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 146, 147, 148, 149, 150, + 151, 0, 0, 0, 0, 153, 334, 154, 155, 156, + 139, 140, 141, 142, 0, 143, 144, 145, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 146, 147, + 148, 149, 150, 151, 0, 0, 0, 0, 153, 0, + 154, 155, 156, 139, 140, 141, 142, 0, 143, 144, + 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 146, 147, 148, 149, 150, 151, 0, 0, 0, + 152, 153, 0, 154, 155, 156, 139, 140, 141, 142, + 0, 143, 144, 145, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 146, 147, 148, 149, 150, 151, - 0, 347, 0, 0, 153, 0, 154, 155, 156, 139, + 0, 0, 0, 0, 153, 0, 154, 155, 156, 139, 140, 141, 142, 0, 143, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 147, 148, - 149, 150, 151, 0, 0, 0, 329, 153, 0, 154, + 149, 150, 151, 0, 193, 0, 0, 153, 0, 154, 155, 156, 139, 140, 141, 142, 0, 143, 144, 145, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 284, 0, 0, 0, 0, 0, 0, 0, 0, 146, 147, 148, 149, 150, 151, 0, 0, 0, 0, - 153, 332, 154, 155, 156, 139, 140, 141, 142, 0, - 143, 144, 145, 0, 0, 0, 0, 0, 0, 0, + 153, 0, 154, 155, 156, 139, 140, 141, 142, 0, + 143, 144, 145, 0, 336, 0, 0, 0, 0, 0, 0, 0, 0, 146, 147, 148, 149, 150, 151, 0, 0, 0, 0, 153, 0, 154, 155, 156, 139, 140, - 141, 142, 0, 143, 144, 145, 0, 0, 0, 0, + 141, 142, 0, 143, 144, 145, 0, 0, 0, 337, 0, 0, 0, 0, 0, 0, 146, 147, 148, 149, - 150, 151, 0, 0, 0, 152, 153, 0, 154, 155, + 150, 151, 0, 0, 0, 0, 153, 0, 154, 155, 156, 139, 140, 141, 142, 0, 143, 144, 145, 0, - 190, 0, 0, 0, 0, 0, 0, 0, 0, 146, + 0, 0, 0, 0, 0, 408, 0, 0, 0, 146, 147, 148, 149, 150, 151, 0, 0, 0, 0, 153, 0, 154, 155, 156, 139, 140, 141, 142, 0, 143, - 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 146, 147, 148, 149, 150, 151, 0, 193, + 144, 145, 0, 0, 0, 0, 0, 411, 0, 0, + 0, 0, 146, 147, 148, 149, 150, 151, 0, 0, 0, 0, 153, 0, 154, 155, 156, 139, 140, 141, - 142, 0, 143, 144, 145, 0, 283, 0, 0, 0, + 142, 0, 143, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 147, 148, 149, 150, 151, 0, 0, 0, 0, 153, 0, 154, 155, 156, - 139, 140, 141, 142, 0, 143, 144, 145, 0, 334, - 0, 0, 0, 0, 0, 0, 0, 0, 146, 147, - 148, 149, 150, 151, 0, 0, 0, 0, 153, 0, - 154, 155, 156, 139, 140, 141, 142, 0, 143, 144, - 145, 0, 0, 0, 335, 0, 0, 0, 0, 0, + 139, 140, 141, 142, 0, 143, 144, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 146, 0, + 0, 149, 150, 151, 0, 0, 0, 0, 153, 0, + 154, 155, 156, 139, 0, 141, 0, 0, 143, 144, + 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 147, 148, 149, 150, 151, 0, 0, 0, - 0, 153, 0, 154, 155, 156, 139, 140, 141, 142, - 0, 143, 144, 145, 0, 0, 0, 0, 0, 0, - 403, 0, 0, 0, 146, 147, 148, 149, 150, 151, - 0, 0, 0, 0, 153, 0, 154, 155, 156, 139, - 140, 141, 142, 0, 143, 144, 145, 0, 0, 0, - 0, 0, 406, 0, 0, 0, 0, 146, 147, 148, - 149, 150, 151, 0, 0, 0, 0, 153, 0, 154, - 155, 156, 139, 140, 141, 142, 0, 143, 144, 145, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 146, 147, 148, 149, 150, 151, 0, 0, 0, 0, - 153, 0, 154, 155, 156, 139, 140, 141, 0, 0, - 143, 144, 145, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 146, 147, 148, 149, 150, 151, 0, - 0, 0, 0, 0, 0, 154, 155, 156, 139, 140, - 141, 142, 0, 143, 144, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 146, 139, 0, 149, - 150, 151, 143, 144, 145, 0, 153, 0, 154, 155, - 156, 0, 0, 0, 0, 146, 147, 148, 149, 150, - 151, 0, 0, 0, 0, 0, 0, 154, 155, 156 + 0, 139, 0, 154, 155, 156, 143, 144, 145, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, + 147, 148, 149, 150, 151, 0, 0, 0, 0, 0, + 0, 154, 155, 156 }; const short int Parser::yycheck_[] = { - 4, 11, 35, 107, 170, 1, 171, 11, 64, 115, - 22, 171, 177, 15, 15, 22, 15, 177, 8, 273, - 22, 22, 14, 22, 0, 45, 22, 53, 54, 8, - 56, 5, 47, 7, 28, 55, 3, 66, 50, 66, - 60, 61, 62, 63, 64, 227, 5, 48, 7, 54, - 52, 49, 67, 48, 50, 237, 238, 51, 47, 57, - 50, 65, 49, 53, 66, 66, 58, 66, 322, 81, - 57, 50, 64, 99, 81, 57, 50, 59, 51, 81, - 81, 137, 81, 51, 57, 81, 58, 47, 108, 57, - 110, 50, 64, 259, 53, 51, 106, 107, 51, 103, - 265, 57, 106, 107, 57, 265, 48, 127, 273, 48, - 51, 47, 54, 273, 47, 54, 57, 137, 53, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 5, 6, - 7, 8, 9, 10, 53, 12, 57, 57, 57, 59, - 256, 48, 162, 67, 67, 165, 262, 322, 162, 52, - 52, 165, 322, 183, 184, 185, 186, 187, 5, 52, - 7, 191, 182, 193, 5, 195, 7, 52, 182, 60, - 61, 62, 63, 54, 164, 52, 53, 54, 47, 56, - 356, 45, 46, 22, 359, 164, 222, 22, 22, 359, - 49, 57, 49, 229, 230, 231, 60, 61, 62, 63, - 51, 47, 0, 1, 234, 235, 4, 5, 6, 7, - 8, 60, 67, 11, 12, 13, 164, 67, 49, 63, - 1, 98, 99, 4, 5, 6, 7, 8, 47, 69, - 11, 12, 13, 60, 254, 255, 113, 47, 115, 52, - 254, 255, 232, 357, 358, 53, 17, 226, 227, 269, - 270, 19, 50, 232, 233, 269, 270, 47, 237, 238, - 290, 1, 22, 22, 4, 5, 6, 7, 8, 50, - 53, 11, 12, 13, 74, 318, 10, 59, 226, 227, - 310, 9, 52, 52, 232, 233, 163, 8, 53, 237, - 238, 30, 67, 67, 52, 112, 53, 53, 328, 329, - 330, 331, 332, 54, 40, 295, 42, 297, 54, 45, - 46, 47, 53, 343, 344, 345, 295, 307, 297, 309, - 15, 311, 58, 59, 60, 61, 62, 63, 307, 135, - 309, 393, 311, 259, 70, 71, 72, 265, 359, 276, - 390, 371, 372, 357, 358, 222, 113, 295, 283, 297, - -1, -1, 229, 230, 231, -1, 346, -1, -1, 307, - 390, 309, -1, 311, -1, -1, -1, 346, -1, -1, - -1, -1, -1, -1, 394, 395, -1, -1, -1, 256, - 394, 395, -1, 260, 261, 262, -1, -1, -1, -1, - -1, -1, 382, 383, 384, 385, -1, -1, 346, 276, - -1, -1, -1, 382, 383, 384, 385, -1, -1, -1, - -1, 401, 402, 403, -1, 292, -1, -1, -1, -1, - -1, -1, 401, 402, 403, 1, -1, -1, -1, -1, - -1, -1, -1, -1, 382, 383, 384, 385, -1, 15, - -1, -1, -1, -1, -1, 21, 22, 23, 24, -1, - -1, -1, 28, 401, 402, 403, -1, 33, -1, 35, - -1, 37, 38, 39, -1, -1, -1, -1, 44, 45, - 46, -1, 48, -1, 50, -1, -1, -1, -1, 55, - 56, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 66, -1, 1, -1, -1, -1, -1, -1, -1, 75, - 76, 77, 78, 79, 80, 81, 15, 45, 46, 47, + 4, 11, 35, 1, 1, 107, 170, 11, 64, 115, + 22, 275, 47, 22, 28, 51, 3, 15, 15, 53, + 54, 57, 56, 15, 53, 8, 8, 15, 57, 45, + 22, 0, 67, 1, 22, 14, 1, 51, 50, 55, + 57, 5, 59, 7, 60, 61, 62, 63, 64, 48, + 15, 16, 54, 18, 22, 20, 21, 22, 23, 24, + 25, 65, 27, 28, 52, 99, 31, 50, 50, 81, + 53, 66, 81, 5, 66, 7, 49, 164, 66, 58, + 227, 137, 50, 48, 57, 64, 50, 52, 66, 81, + 237, 238, 108, 81, 110, 259, 106, 107, 362, 103, + 51, 66, 106, 107, 49, 57, 57, 59, 73, 47, + 47, 127, 57, 81, 112, 112, 81, 5, 50, 7, + 47, 137, 47, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 58, 51, 5, 232, 7, 51, 64, 57, + 256, 48, 162, 57, 48, 165, 262, 54, 162, 57, + 54, 165, 50, 53, 48, 53, 272, 183, 184, 185, + 186, 187, 182, 171, 171, 191, 67, 193, 182, 195, + 5, 6, 7, 8, 9, 10, 67, 12, 222, 50, + 52, 54, 53, 51, 358, 229, 230, 231, 5, 57, + 7, 51, 5, 52, 7, 15, 5, 57, 7, 296, + 52, 298, 22, 60, 61, 62, 63, 52, 234, 235, + 47, 308, 22, 310, 22, 312, 22, 52, 53, 54, + 49, 56, 60, 57, 51, 49, 164, 67, 48, 47, + 49, 67, 63, 50, 254, 255, 53, 60, 52, 69, + 254, 255, 47, 47, 17, 19, 66, 359, 360, 269, + 270, 348, 47, 22, 22, 269, 270, 265, 265, 53, + 10, 81, 74, 98, 99, 291, 45, 46, 59, 164, + 52, 52, 9, 8, 30, 52, 319, 67, 113, 67, + 115, 60, 61, 62, 63, 311, 53, 53, 226, 227, + 387, 388, 389, 390, 232, 233, 54, 54, 53, 237, + 238, 112, 15, 135, 330, 331, 332, 333, 334, 406, + 407, 408, 398, 259, 265, 284, 395, 323, 277, 345, + 346, 347, -1, 361, 113, -1, -1, -1, 163, -1, + -1, 226, 227, -1, -1, -1, -1, 232, 233, -1, + -1, -1, 237, 238, -1, 359, 360, -1, 374, 375, + 45, 46, 47, 361, 361, -1, 364, 364, 296, -1, + 298, -1, -1, 58, 59, 60, 61, 62, 63, 395, + 308, -1, 310, -1, 312, 70, 71, 72, -1, 399, + 400, -1, -1, -1, -1, 399, 400, 222, -1, -1, + -1, -1, -1, -1, 229, 230, 231, -1, -1, -1, + -1, 296, -1, 298, -1, -1, -1, -1, -1, -1, + 348, -1, -1, 308, -1, 310, -1, 312, -1, -1, + -1, 256, -1, -1, -1, 260, 261, 262, 0, 1, + -1, -1, 4, 5, 6, 7, 8, 272, -1, 11, + 12, 13, 277, -1, -1, -1, -1, -1, -1, 387, + 388, 389, 390, 348, 40, 41, 42, -1, 293, 45, + 46, 47, -1, -1, -1, -1, -1, -1, 406, 407, + 408, -1, 58, 59, 60, 61, 62, 63, 50, -1, + -1, -1, 1, -1, 70, 71, 72, -1, -1, -1, + -1, -1, 387, 388, 389, 390, 15, -1, -1, -1, -1, -1, 21, 22, 23, 24, -1, -1, -1, 28, - 58, 59, 60, 61, 62, 63, 35, -1, 37, 38, - 39, -1, 70, 71, 72, 44, 45, 46, -1, 48, - -1, 50, -1, -1, -1, -1, -1, 56, -1, -1, - -1, 60, -1, -1, -1, -1, -1, 66, -1, 1, + -1, 406, 407, 408, 33, -1, 35, -1, 37, 38, + 39, -1, -1, -1, -1, 44, 45, 46, -1, 48, + -1, 50, -1, -1, -1, -1, 55, 56, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 66, -1, 1, -1, -1, -1, -1, -1, -1, 75, 76, 77, 78, 79, 80, 81, 15, 45, 46, -1, -1, -1, 21, 22, 23, 24, -1, -1, -1, 28, 58, 59, 60, 61, 62, 63, 35, -1, 37, 38, 39, -1, -1, - 71, 72, 44, 45, 46, -1, 48, -1, 50, 51, - -1, -1, -1, -1, 56, -1, -1, -1, -1, -1, + 71, 72, 44, 45, 46, -1, 48, -1, 50, -1, + -1, -1, -1, -1, 56, -1, -1, -1, 60, -1, -1, -1, -1, -1, 66, -1, 1, -1, -1, -1, -1, -1, -1, 75, 76, 77, 78, 79, 80, 81, 15, -1, -1, -1, -1, -1, 21, 22, 23, 24, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, 35, -1, 37, 38, 39, -1, -1, -1, -1, 44, - 45, 46, -1, 48, 49, 50, -1, -1, -1, -1, + 45, 46, -1, 48, -1, 50, 51, -1, -1, -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, 1, -1, -1, -1, -1, -1, -1, - 75, 76, 77, 78, 79, 80, 81, 15, 16, -1, - 18, -1, 20, 21, 22, 23, 24, 25, -1, 27, - 28, -1, -1, 31, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, - 48, -1, -1, -1, 52, -1, -1, 15, 16, -1, - 18, 22, 20, 21, 22, 23, 24, 25, 66, 27, - 28, -1, -1, 31, -1, 73, -1, -1, -1, 40, - 41, 42, 43, 81, 45, 46, 47, -1, -1, -1, - 48, -1, -1, -1, 52, -1, -1, 58, 59, 60, - 61, 62, 63, -1, -1, 1, -1, 68, 66, 70, - 71, 72, -1, -1, -1, 73, -1, -1, -1, 15, - 16, -1, 18, 81, 20, 21, 22, 23, 24, 25, - -1, 27, 28, -1, -1, 31, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, - -1, -1, 48, -1, -1, -1, 52, -1, -1, 15, - 16, -1, 18, -1, 20, 21, 22, 23, 24, 25, - 66, 27, 28, -1, -1, 31, -1, 73, -1, -1, - -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, - -1, 15, 48, -1, -1, -1, 52, 21, 22, 23, - 24, -1, -1, -1, 28, -1, -1, -1, -1, 33, - 66, 35, -1, 37, 38, 39, -1, 73, -1, -1, - 44, 45, 46, -1, 48, 81, 50, -1, -1, -1, - -1, 55, 56, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, - -1, 75, 76, 77, 78, 79, 80, 81, 15, -1, - -1, -1, -1, -1, 21, 22, 23, 24, -1, -1, - -1, 28, -1, -1, -1, -1, -1, -1, 35, -1, - 37, 38, 39, -1, -1, -1, -1, 44, 45, 46, - -1, 48, -1, 50, -1, -1, -1, -1, -1, 56, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, - -1, -1, -1, -1, -1, -1, -1, -1, 75, 76, + 75, 76, 77, 78, 79, 80, 81, 15, -1, -1, + -1, -1, -1, 21, 22, 23, 24, -1, -1, -1, + 28, -1, -1, -1, -1, -1, -1, 35, -1, 37, + 38, 39, -1, -1, -1, -1, 44, 45, 46, -1, + 48, 49, 50, -1, -1, -1, -1, -1, 56, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, + 1, -1, -1, -1, -1, -1, -1, 75, 76, 77, + 78, 79, 80, 81, 15, 16, -1, 18, -1, 20, + 21, 22, 23, 24, 25, -1, 27, 28, -1, -1, + 31, 1, -1, -1, 4, 5, 6, 7, 8, -1, + 1, 11, 12, 13, -1, -1, -1, 48, -1, -1, + -1, 52, -1, -1, 15, 16, -1, 18, -1, 20, + 21, 22, 23, 24, 25, 66, 27, 28, -1, -1, + 31, -1, 73, -1, -1, -1, 15, 16, 17, 18, + 81, 20, 21, 22, 23, 24, 25, 48, 27, 28, + -1, 52, 31, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1, -1, -1, 66, -1, -1, -1, 48, + -1, -1, 73, 52, -1, -1, 15, 16, -1, 18, + 81, 20, 21, 22, 23, 24, 25, 66, 27, 28, + -1, -1, 31, -1, 73, -1, -1, -1, -1, -1, + -1, -1, 81, -1, -1, -1, -1, -1, 15, 48, + -1, -1, -1, 52, 21, 22, 23, 24, -1, -1, + -1, 28, -1, -1, -1, -1, 33, 66, 35, -1, + 37, 38, 39, -1, 73, -1, -1, 44, 45, 46, + -1, 48, 81, 50, -1, -1, -1, -1, 55, 56, + -1, 1, -1, -1, 4, 5, 6, 7, 8, 66, + -1, 11, 12, 13, -1, -1, -1, -1, 75, 76, 77, 78, 79, 80, 81, 15, -1, -1, -1, -1, -1, 21, 22, 23, 24, -1, -1, -1, 28, -1, -1, -1, -1, -1, -1, 35, -1, 37, 38, 39, - -1, -1, -1, -1, 44, 45, 46, -1, 48, -1, - 50, -1, 15, 16, 17, 18, 56, 20, 21, 22, - 23, 24, 25, -1, 27, 28, 66, -1, 31, -1, + 50, -1, -1, -1, 44, 45, 46, -1, 48, -1, + 50, -1, -1, -1, -1, -1, 56, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, 75, 76, 77, 78, 79, - 80, 81, -1, -1, -1, 48, -1, -1, -1, 52, - -1, -1, 15, 16, -1, 18, 19, 20, 21, 22, - 23, 24, 25, 66, 27, 28, -1, -1, 31, -1, - 73, -1, -1, -1, 15, 16, -1, 18, 81, 20, - 21, 22, 23, 24, 25, 48, 27, 28, -1, 52, - 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 66, -1, -1, -1, 48, -1, -1, - 73, 52, 53, -1, 15, 16, -1, 18, 81, 20, - 21, 22, 23, 24, 25, 66, 27, 28, -1, -1, - 31, -1, 73, -1, -1, -1, -1, -1, -1, -1, - 81, -1, -1, -1, -1, -1, -1, 48, -1, -1, - -1, 52, -1, -1, 15, 16, -1, 18, 22, 20, - 21, 22, 23, 24, 25, 66, 27, 28, -1, -1, - 31, -1, 73, 74, -1, -1, 40, 41, 42, 43, - 81, 45, 46, 47, -1, -1, -1, 48, -1, -1, - -1, 52, -1, -1, 58, 59, 60, 61, 62, 63, - -1, -1, 26, -1, 68, 66, 70, 71, 72, -1, - -1, -1, 73, -1, -1, -1, 40, 41, 42, 43, - 81, 45, 46, 47, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, - 26, -1, -1, -1, 68, -1, 70, 71, 72, -1, - -1, -1, -1, -1, 40, 41, 42, 43, -1, 45, - 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 58, 59, 60, 61, 62, 63, 26, -1, - -1, -1, 68, -1, 70, 71, 72, -1, -1, -1, - -1, -1, 40, 41, 42, 43, -1, 45, 46, 47, + 80, 81, 15, -1, -1, -1, -1, -1, 21, 22, + 23, 24, -1, -1, -1, 28, -1, -1, -1, -1, + -1, -1, 35, -1, 37, 38, 39, -1, -1, -1, + -1, 44, 45, 46, -1, 48, -1, 50, -1, -1, + -1, -1, -1, 56, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, + -1, -1, 75, 76, 77, 78, 79, 80, 81, 15, + 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, + -1, 27, 28, -1, -1, 31, -1, -1, 15, 16, + -1, 18, 22, 20, 21, 22, 23, 24, 25, -1, + 27, 28, 48, -1, 31, -1, 52, -1, -1, -1, + 40, 41, 42, 43, -1, 45, 46, 47, -1, -1, + 66, 48, -1, -1, -1, 52, 53, 73, 58, 59, + 60, 61, 62, 63, -1, 81, -1, -1, 68, 66, + 70, 71, 72, -1, -1, -1, 73, -1, -1, -1, + 15, 16, -1, 18, 81, 20, 21, 22, 23, 24, + 25, -1, 27, 28, -1, -1, 31, -1, -1, 15, + 16, -1, 18, -1, 20, 21, 22, 23, 24, 25, + -1, 27, 28, 48, -1, 31, -1, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 58, 59, 60, 61, 62, 63, 29, -1, -1, -1, - 68, -1, 70, 71, 72, -1, -1, 40, 41, 42, + -1, 66, 48, -1, -1, 22, 52, -1, 73, 74, + -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, + 66, -1, -1, 40, 41, 42, 43, 73, 45, 46, + 47, -1, -1, -1, -1, 81, -1, -1, -1, -1, + -1, 58, 59, 60, 61, 62, 63, 26, -1, -1, + -1, 68, -1, 70, 71, 72, -1, -1, -1, -1, + -1, 40, 41, 42, 43, -1, 45, 46, 47, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, + 59, 60, 61, 62, 63, 26, -1, -1, -1, 68, + -1, 70, 71, 72, -1, -1, -1, -1, -1, 40, + 41, 42, 43, -1, 45, 46, 47, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, + 61, 62, 63, 26, -1, -1, -1, 68, -1, 70, + 71, 72, -1, -1, -1, -1, -1, 40, 41, 42, 43, -1, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, 29, -1, -1, -1, 68, -1, 70, 71, 72, -1, -1, 40, 41, 42, 43, -1, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 58, 59, 60, 61, 62, 63, 30, -1, -1, -1, - 68, -1, 70, 71, 72, -1, 40, 41, 42, 43, - -1, 45, 46, 47, -1, -1, -1, -1, -1, -1, + 58, 59, 60, 61, 62, 63, 29, -1, -1, -1, + 68, -1, 70, 71, 72, -1, -1, 40, 41, 42, + 43, -1, 45, 46, 47, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, + 63, 30, -1, -1, -1, 68, -1, 70, 71, 72, + -1, 40, 41, 42, 43, -1, 45, 46, 47, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, + 59, 60, 61, 62, 63, -1, 32, -1, -1, 68, + -1, 70, 71, 72, 40, 41, 42, 43, -1, 45, + 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, + -1, 34, 68, -1, 70, 71, 72, 40, 41, 42, + 43, -1, 45, 46, 47, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, + 63, -1, -1, -1, -1, 68, 36, 70, 71, 72, + 40, 41, 42, 43, -1, 45, 46, 47, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, + 60, 61, 62, 63, -1, -1, -1, -1, 68, -1, + 70, 71, 72, 40, 41, 42, 43, -1, 45, 46, + 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, + 67, 68, -1, 70, 71, 72, 40, 41, 42, 43, + -1, 45, 46, 47, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, - -1, 32, -1, -1, 68, -1, 70, 71, 72, 40, + -1, -1, -1, -1, 68, -1, 70, 71, 72, 40, 41, 42, 43, -1, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, - 61, 62, 63, -1, -1, -1, 34, 68, -1, 70, + 61, 62, 63, -1, 65, -1, -1, 68, -1, 70, 71, 72, 40, 41, 42, 43, -1, 45, 46, 47, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, - 68, 36, 70, 71, 72, 40, 41, 42, 43, -1, - 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, + 68, -1, 70, 71, 72, 40, 41, 42, 43, -1, + 45, 46, 47, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, 68, -1, 70, 71, 72, 40, 41, - 42, 43, -1, 45, 46, 47, -1, -1, -1, -1, + 42, 43, -1, 45, 46, 47, -1, -1, -1, 51, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, - 62, 63, -1, -1, -1, 67, 68, -1, 70, 71, + 62, 63, -1, -1, -1, -1, 68, -1, 70, 71, 72, 40, 41, 42, 43, -1, 45, 46, 47, -1, - 49, -1, -1, -1, -1, -1, -1, -1, -1, 58, + -1, -1, -1, -1, -1, 54, -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, 68, -1, 70, 71, 72, 40, 41, 42, 43, -1, 45, - 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 58, 59, 60, 61, 62, 63, -1, 65, + 46, 47, -1, -1, -1, -1, -1, 53, -1, -1, + -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, 68, -1, 70, 71, 72, 40, 41, 42, - 43, -1, 45, 46, 47, -1, 49, -1, -1, -1, + 43, -1, 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, 68, -1, 70, 71, 72, - 40, 41, 42, 43, -1, 45, 46, 47, -1, 49, - -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, - 60, 61, 62, 63, -1, -1, -1, -1, 68, -1, - 70, 71, 72, 40, 41, 42, 43, -1, 45, 46, - 47, -1, -1, -1, 51, -1, -1, -1, -1, -1, + 40, 41, 42, 43, -1, 45, 46, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, + -1, 61, 62, 63, -1, -1, -1, -1, 68, -1, + 70, 71, 72, 40, -1, 42, -1, -1, 45, 46, + 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, -1, -1, - -1, 68, -1, 70, 71, 72, 40, 41, 42, 43, - -1, 45, 46, 47, -1, -1, -1, -1, -1, -1, - 54, -1, -1, -1, 58, 59, 60, 61, 62, 63, - -1, -1, -1, -1, 68, -1, 70, 71, 72, 40, - 41, 42, 43, -1, 45, 46, 47, -1, -1, -1, - -1, -1, 53, -1, -1, -1, -1, 58, 59, 60, - 61, 62, 63, -1, -1, -1, -1, 68, -1, 70, - 71, 72, 40, 41, 42, 43, -1, 45, 46, 47, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 58, 59, 60, 61, 62, 63, -1, -1, -1, -1, - 68, -1, 70, 71, 72, 40, 41, 42, -1, -1, - 45, 46, 47, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 58, 59, 60, 61, 62, 63, -1, - -1, -1, -1, -1, -1, 70, 71, 72, 40, 41, - 42, 43, -1, 45, 46, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 58, 40, -1, 61, - 62, 63, 45, 46, 47, -1, 68, -1, 70, 71, - 72, -1, -1, -1, -1, 58, 59, 60, 61, 62, - 63, -1, -1, -1, -1, -1, -1, 70, 71, 72 + -1, 40, -1, 70, 71, 72, 45, 46, 47, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, + 59, 60, 61, 62, 63, -1, -1, -1, -1, -1, + -1, 70, 71, 72 }; const unsigned char @@ -4003,21 +4033,21 @@ namespace libcasm_fe { 143, 150, 152, 153, 154, 157, 158, 159, 160, 161, 162, 163, 164, 120, 60, 67, 50, 91, 103, 104, 5, 7, 50, 100, 106, 107, 111, 149, 47, 67, - 57, 59, 100, 109, 110, 149, 51, 120, 135, 135, - 135, 135, 135, 49, 135, 135, 135, 49, 49, 117, - 47, 53, 57, 1, 150, 151, 1, 151, 117, 117, - 117, 150, 142, 143, 135, 135, 1, 151, 1, 151, - 69, 47, 120, 120, 166, 53, 103, 112, 112, 166, - 53, 106, 52, 120, 120, 110, 53, 116, 22, 34, - 26, 30, 36, 140, 49, 51, 135, 112, 17, 17, - 150, 19, 19, 47, 22, 22, 29, 32, 53, 53, - 74, 74, 135, 150, 10, 93, 51, 54, 54, 51, - 110, 59, 135, 135, 135, 135, 135, 135, 135, 135, - 150, 52, 52, 9, 92, 91, 95, 95, 100, 111, - 149, 53, 22, 26, 26, 30, 1, 33, 55, 135, - 155, 156, 135, 52, 67, 67, 150, 150, 150, 150, - 53, 54, 54, 54, 156, 53, 53, 99, 120, 120, - 150, 150, 150, 53 + 57, 59, 50, 100, 109, 110, 149, 51, 120, 135, + 135, 135, 135, 135, 49, 135, 135, 135, 49, 49, + 117, 47, 53, 57, 1, 150, 151, 1, 151, 117, + 117, 117, 150, 142, 143, 135, 135, 1, 151, 1, + 151, 69, 47, 120, 120, 166, 53, 103, 112, 112, + 166, 53, 106, 52, 120, 120, 166, 53, 109, 116, + 22, 34, 26, 30, 36, 140, 49, 51, 135, 112, + 17, 17, 150, 19, 19, 47, 22, 22, 29, 32, + 53, 53, 74, 74, 135, 150, 10, 93, 51, 54, + 54, 51, 110, 59, 51, 135, 135, 135, 135, 135, + 135, 135, 135, 150, 52, 52, 9, 92, 91, 95, + 95, 100, 111, 149, 53, 100, 149, 22, 26, 26, + 30, 1, 33, 55, 135, 155, 156, 135, 52, 67, + 67, 150, 150, 150, 150, 53, 54, 54, 54, 156, + 53, 53, 99, 120, 120, 150, 150, 150, 53 }; const unsigned char @@ -4028,22 +4058,22 @@ namespace libcasm_fe { 93, 94, 94, 95, 95, 96, 96, 97, 97, 97, 98, 98, 99, 99, 100, 101, 102, 103, 103, 104, 104, 105, 106, 106, 106, 106, 106, 106, 107, 107, - 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, - 113, 113, 114, 114, 115, 115, 115, 116, 116, 117, - 117, 118, 118, 119, 119, 119, 120, 120, 120, 120, - 121, 122, 123, 124, 125, 125, 126, 126, 126, 126, - 126, 126, 126, 126, 127, 128, 128, 129, 130, 130, - 131, 132, 133, 134, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 136, 136, 136, 136, 136, + 108, 108, 109, 109, 109, 109, 110, 110, 111, 111, + 112, 112, 113, 113, 114, 114, 115, 115, 115, 116, + 116, 117, 117, 118, 118, 119, 119, 119, 120, 120, + 120, 120, 121, 122, 123, 124, 125, 125, 126, 126, + 126, 126, 126, 126, 126, 126, 127, 128, 128, 129, + 130, 130, 131, 132, 133, 134, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 137, 138, 138, - 138, 139, 139, 140, 140, 140, 141, 142, 142, 143, - 144, 145, 146, 147, 148, 149, 149, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, 151, 151, - 152, 153, 153, 154, 154, 155, 155, 155, 156, 156, - 157, 158, 159, 160, 161, 161, 161, 161, 162, 162, - 162, 162, 163, 164, 164, 164, 164, 165, 165, 166, - 166, 167, 168 + 136, 136, 136, 136, 136, 136, 136, 136, 136, 137, + 138, 138, 138, 139, 139, 140, 140, 140, 141, 142, + 142, 143, 144, 145, 146, 147, 148, 149, 149, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 151, 151, 152, 153, 153, 154, 154, 155, 155, 155, + 156, 156, 157, 158, 159, 160, 161, 161, 161, 161, + 162, 162, 162, 162, 163, 164, 164, 164, 164, 165, + 165, 166, 166, 167, 168 }; const unsigned char @@ -4054,22 +4084,22 @@ namespace libcasm_fe { 0, 3, 1, 1, 0, 2, 4, 1, 3, 3, 3, 1, 1, 0, 7, 6, 6, 4, 1, 2, 1, 6, 4, 1, 4, 1, 4, 1, 2, 1, - 8, 6, 1, 1, 2, 1, 6, 6, 1, 1, - 3, 1, 3, 1, 1, 2, 3, 3, 1, 4, - 1, 3, 1, 3, 3, 0, 1, 1, 1, 1, - 1, 4, 6, 3, 3, 1, 1, 1, 1, 1, + 8, 6, 4, 1, 4, 1, 2, 1, 6, 6, + 1, 1, 3, 1, 3, 1, 1, 2, 3, 3, + 1, 4, 1, 3, 1, 3, 3, 0, 1, 1, + 1, 1, 1, 4, 6, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, + 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 2, 5, + 2, 3, 3, 3, 1, 3, 3, 2, 5, 1, + 2, 5, 6, 6, 6, 6, 6, 5, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 3, 2, 2, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 2, 5, 2, 3, - 3, 3, 1, 3, 3, 2, 5, 1, 2, 5, - 6, 6, 6, 6, 6, 5, 7, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, - 1, 4, 6, 6, 6, 3, 3, 3, 2, 1, - 6, 6, 6, 2, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 1, 2, 1, 1, 1, 3, - 1, 1, 2 + 2, 1, 1, 4, 6, 6, 6, 3, 3, 3, + 2, 1, 6, 6, 6, 2, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 2, 1, 2, 1, 1, + 1, 3, 1, 1, 2 }; @@ -4102,8 +4132,8 @@ namespace libcasm_fe { "EnumerationDefinition", "StructureDefinition", "StructureDefinitionElement", "StructureDefinitionList", "FeatureDefinition", "FeatureDefinitionElement", "FeatureDefinitionList", - "ImplementationDefinition", "ImplementationDefinitionDefinition", - "ImplementationDefinitionDefinitions", "Declaration", "Identifier", + "ImplementationDefinition", "ImplementationDefinitionElement", + "ImplementationDefinitionList", "Declaration", "Identifier", "Identifiers", "DotSeparatedIdentifiers", "IdentifierPath", "Variable", "AttributedVariable", "Parameters", "MaybeParameters", "Type", "BasicType", "ComposedType", "RelationType", "FixedSizedType", "Types", @@ -4129,22 +4159,22 @@ namespace libcasm_fe { 484, 492, 498, 508, 512, 520, 543, 561, 569, 579, 590, 596, 606, 610, 618, 626, 638, 646, 652, 660, 666, 680, 688, 694, 698, 704, 708, 714, 722, 728, - 738, 742, 752, 756, 764, 770, 780, 785, 794, 798, - 806, 812, 822, 828, 838, 842, 846, 854, 858, 867, - 873, 881, 887, 897, 901, 905, 913, 917, 921, 925, - 933, 941, 949, 957, 965, 971, 981, 985, 989, 993, - 997, 1001, 1005, 1009, 1017, 1025, 1030, 1039, 1055, 1067, - 1083, 1099, 1115, 1131, 1139, 1143, 1147, 1151, 1155, 1159, - 1163, 1167, 1171, 1175, 1179, 1187, 1191, 1195, 1199, 1203, - 1207, 1211, 1215, 1219, 1223, 1227, 1231, 1235, 1239, 1243, - 1247, 1251, 1255, 1259, 1263, 1267, 1271, 1279, 1287, 1292, - 1296, 1304, 1310, 1320, 1324, 1328, 1337, 1347, 1352, 1360, - 1368, 1376, 1384, 1392, 1400, 1408, 1413, 1422, 1426, 1430, - 1434, 1438, 1442, 1446, 1450, 1454, 1458, 1462, 1470, 1476, - 1486, 1494, 1498, 1506, 1510, 1518, 1522, 1526, 1534, 1540, - 1550, 1558, 1566, 1574, 1582, 1586, 1590, 1595, 1604, 1608, - 1612, 1617, 1626, 1636, 1642, 1649, 1655, 1666, 1670, 1678, - 1684, 1694, 1702 + 742, 746, 756, 762, 766, 772, 780, 786, 796, 801, + 810, 814, 822, 828, 838, 844, 854, 858, 862, 870, + 874, 883, 889, 897, 903, 913, 917, 921, 929, 933, + 937, 941, 949, 957, 965, 973, 981, 987, 997, 1001, + 1005, 1009, 1013, 1017, 1021, 1025, 1033, 1041, 1046, 1055, + 1071, 1083, 1099, 1115, 1131, 1147, 1155, 1159, 1163, 1167, + 1171, 1175, 1179, 1183, 1187, 1191, 1195, 1203, 1207, 1211, + 1215, 1219, 1223, 1227, 1231, 1235, 1239, 1243, 1247, 1251, + 1255, 1259, 1263, 1267, 1271, 1275, 1279, 1283, 1287, 1295, + 1303, 1308, 1312, 1320, 1326, 1336, 1340, 1344, 1353, 1363, + 1368, 1376, 1384, 1392, 1400, 1408, 1416, 1424, 1429, 1438, + 1442, 1446, 1450, 1454, 1458, 1462, 1466, 1470, 1474, 1478, + 1486, 1492, 1502, 1510, 1514, 1522, 1526, 1534, 1538, 1542, + 1550, 1556, 1566, 1574, 1582, 1590, 1598, 1602, 1606, 1611, + 1620, 1624, 1628, 1633, 1642, 1652, 1658, 1665, 1671, 1682, + 1686, 1694, 1700, 1710, 1718 }; // Print the state stack on the debug stream. @@ -4179,8 +4209,8 @@ namespace libcasm_fe { #line 31 "../../obj/src/GrammarParser.yy" // lalr1.cc:1167 } // libcasm_fe -#line 4183 "GrammarParser.cpp" // lalr1.cc:1167 -#line 1708 "../../obj/src/GrammarParser.yy" // lalr1.cc:1168 +#line 4213 "GrammarParser.cpp" // lalr1.cc:1167 +#line 1724 "../../obj/src/GrammarParser.yy" // lalr1.cc:1168 void Parser::error( const SourceLocation& location, const std::string& message ) diff --git a/src/various/GrammarParser.output b/src/various/GrammarParser.output index 1da68e739..947f59bd5 100644 --- a/src/various/GrammarParser.output +++ b/src/various/GrammarParser.output @@ -71,230 +71,232 @@ Grammar 47 FeatureDefinitionList: FeatureDefinitionList FeatureDefinitionElement 48 | FeatureDefinitionElement - 49 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" - 50 | "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" + 49 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionList "}" + 50 | "implements" Type "=" "{" ImplementationDefinitionList "}" - 51 ImplementationDefinitionDefinition: DerivedDefinition - 52 | RuleDefinition + 51 ImplementationDefinitionElement: "[" Attributes "]" DerivedDefinition + 52 | DerivedDefinition + 53 | "[" Attributes "]" RuleDefinition + 54 | RuleDefinition - 53 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions - 54 | ImplementationDefinitionDefinition + 55 ImplementationDefinitionList: ImplementationDefinitionList ImplementationDefinitionElement + 56 | ImplementationDefinitionElement - 55 Declaration: "derived" Identifier ":" MaybeFunctionParameters "->" Type - 56 | "rule" Identifier ":" MaybeFunctionParameters "->" Type + 57 Declaration: "derived" Identifier ":" MaybeFunctionParameters "->" Type + 58 | "rule" Identifier ":" MaybeFunctionParameters "->" Type - 57 Identifier: "identifier" - 58 | "in" + 59 Identifier: "identifier" + 60 | "in" + + 61 Identifiers: Identifiers "," Identifier + 62 | Identifier - 59 Identifiers: Identifiers "," Identifier - 60 | Identifier + 63 DotSeparatedIdentifiers: DotSeparatedIdentifiers "." Identifier + 64 | Identifier - 61 DotSeparatedIdentifiers: DotSeparatedIdentifiers "." Identifier - 62 | Identifier + 65 IdentifierPath: DotSeparatedIdentifiers + 66 | "." DotSeparatedIdentifiers + 67 | "this" "." DotSeparatedIdentifiers - 63 IdentifierPath: DotSeparatedIdentifiers - 64 | "." DotSeparatedIdentifiers - 65 | "this" "." DotSeparatedIdentifiers + 68 Variable: Identifier ":" Type + 69 | Identifier - 66 Variable: Identifier ":" Type - 67 | Identifier + 70 AttributedVariable: "[" Attributes "]" Variable + 71 | Variable - 68 AttributedVariable: "[" Attributes "]" Variable - 69 | Variable + 72 Parameters: Parameters "," AttributedVariable + 73 | AttributedVariable - 70 Parameters: Parameters "," AttributedVariable - 71 | AttributedVariable + 74 MaybeParameters: "(" Parameters ")" + 75 | "(" error ")" + 76 | %empty - 72 MaybeParameters: "(" Parameters ")" - 73 | "(" error ")" - 74 | %empty + 77 Type: BasicType + 78 | ComposedType + 79 | RelationType + 80 | FixedSizedType - 75 Type: BasicType - 76 | ComposedType - 77 | RelationType - 78 | FixedSizedType + 81 BasicType: IdentifierPath - 79 BasicType: IdentifierPath + 82 ComposedType: IdentifierPath "<" Types ">" - 80 ComposedType: IdentifierPath "<" Types ">" + 83 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" - 81 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" + 84 FixedSizedType: IdentifierPath "'" Term - 82 FixedSizedType: IdentifierPath "'" Term + 85 Types: Types "," Type + 86 | Type - 83 Types: Types "," Type - 84 | Type + 87 Atom: Reference + 88 | BitNumber + 89 | IntegerNumber + 90 | FloatingNumber + 91 | RationalNumber + 92 | String + 93 | Undefined + 94 | Boolean - 85 Atom: Reference - 86 | BitNumber - 87 | IntegerNumber - 88 | FloatingNumber - 89 | RationalNumber - 90 | String - 91 | Undefined - 92 | Boolean + 95 Undefined: "undef" - 93 Undefined: "undef" + 96 Boolean: "true" + 97 | "false" - 94 Boolean: "true" - 95 | "false" + 98 String: "string" - 96 String: "string" + 99 BitNumber: "binary" + 100 | "hexadecimal" - 97 BitNumber: "binary" - 98 | "hexadecimal" + 101 IntegerNumber: "integer" - 99 IntegerNumber: "integer" + 102 FloatingNumber: "floating" - 100 FloatingNumber: "floating" + 103 RationalNumber: "rational" - 101 RationalNumber: "rational" + 104 Reference: "@" IdentifierPath - 102 Reference: "@" IdentifierPath + 105 Term: DirectCallExpression + 106 | IndirectCallExpression + 107 | LetExpression + 108 | ConditionalExpression + 109 | ChooseExpression + 110 | UniversalQuantifierExpression + 111 | ExistentialQuantifierExpression + 112 | Expression + 113 | List + 114 | Range + 115 | Atom - 103 Term: DirectCallExpression - 104 | IndirectCallExpression - 105 | LetExpression - 106 | ConditionalExpression - 107 | ChooseExpression - 108 | UniversalQuantifierExpression - 109 | ExistentialQuantifierExpression - 110 | Expression - 111 | List - 112 | Range - 113 | Atom + 116 Expression: "(" Term ")" + 117 | "(" error ")" + 118 | "+" Term + 119 | "-" 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 + 137 | "not" Term - 114 Expression: "(" Term ")" - 115 | "(" error ")" - 116 | "+" Term - 117 | "-" Term - 118 | Term "+" Term - 119 | 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 "or" Term - 131 | Term "xor" Term - 132 | Term "and" Term - 133 | Term "=>" Term - 134 | Term "implies" Term - 135 | "not" Term + 138 Range: "[" Term ".." Term "]" - 136 Range: "[" Term ".." Term "]" + 139 List: "[" "]" + 140 | "[" Terms "]" + 141 | "[" error "]" - 137 List: "[" "]" - 138 | "[" Terms "]" - 139 | "[" error "]" + 142 Terms: Terms "," Term + 143 | Term - 140 Terms: Terms "," Term - 141 | Term + 144 Arguments: "(" Terms ")" + 145 | "(" error ")" + 146 | "(" ")" - 142 Arguments: "(" Terms ")" - 143 | "(" error ")" - 144 | "(" ")" + 147 TwoOrMoreArguments: "(" Terms "," Term ")" - 145 TwoOrMoreArguments: "(" Terms "," Term ")" + 148 DirectCallExpression: IdentifierPath + 149 | IdentifierPath Arguments - 146 DirectCallExpression: IdentifierPath - 147 | IdentifierPath Arguments + 150 IndirectCallExpression: "(" "*" Term ")" Arguments - 148 IndirectCallExpression: "(" "*" Term ")" Arguments + 151 LetExpression: "let" AttributedVariable "=" Term "in" Term - 149 LetExpression: "let" AttributedVariable "=" Term "in" Term + 152 ConditionalExpression: "if" Term "then" Term "else" Term - 150 ConditionalExpression: "if" Term "then" Term "else" Term + 153 ChooseExpression: "choose" AttributedVariable "in" Term "do" Term - 151 ChooseExpression: "choose" AttributedVariable "in" Term "do" Term + 154 UniversalQuantifierExpression: "forall" AttributedVariable "in" Term "holds" Term - 152 UniversalQuantifierExpression: "forall" AttributedVariable "in" Term "holds" Term + 155 ExistentialQuantifierExpression: "exists" AttributedVariable "in" Term "with" Term - 153 ExistentialQuantifierExpression: "exists" AttributedVariable "in" Term "with" Term + 156 RuleDefinition: "rule" Identifier MaybeParameters "=" Rule + 157 | "rule" Identifier MaybeParameters "->" Type "=" Rule - 154 RuleDefinition: "rule" Identifier MaybeParameters "=" Rule - 155 | "rule" Identifier MaybeParameters "->" Type "=" Rule + 158 Rule: SkipRule + 159 | ConditionalRule + 160 | CaseRule + 161 | LetRule + 162 | ForallRule + 163 | ChooseRule + 164 | IterateRule + 165 | BlockRule + 166 | SequenceRule + 167 | UpdateRule + 168 | CallRule - 156 Rule: SkipRule - 157 | ConditionalRule - 158 | CaseRule - 159 | LetRule - 160 | ForallRule - 161 | ChooseRule - 162 | IterateRule - 163 | BlockRule - 164 | SequenceRule - 165 | UpdateRule - 166 | CallRule + 169 Rules: Rules Rule + 170 | Rule - 167 Rules: Rules Rule - 168 | Rule + 171 SkipRule: "skip" - 169 SkipRule: "skip" + 172 ConditionalRule: "if" Term "then" Rule + 173 | "if" Term "then" Rule "else" Rule - 170 ConditionalRule: "if" Term "then" Rule - 171 | "if" Term "then" Rule "else" Rule + 174 CaseRule: "case" Term "of" "{" CaseLabels "}" + 175 | "case" Term "of" "{" error "}" - 172 CaseRule: "case" Term "of" "{" CaseLabels "}" - 173 | "case" Term "of" "{" error "}" + 176 CaseLabel: "default" ":" Rule + 177 | "_" ":" Rule + 178 | Term ":" Rule - 174 CaseLabel: "default" ":" Rule - 175 | "_" ":" Rule - 176 | Term ":" Rule + 179 CaseLabels: CaseLabel CaseLabels + 180 | CaseLabel - 177 CaseLabels: CaseLabel CaseLabels - 178 | CaseLabel + 181 LetRule: "let" AttributedVariable "=" Term "in" Rule - 179 LetRule: "let" AttributedVariable "=" Term "in" Rule + 182 ForallRule: "forall" AttributedVariable "in" Term "do" Rule - 180 ForallRule: "forall" AttributedVariable "in" Term "do" Rule + 183 ChooseRule: "choose" AttributedVariable "in" Term "do" Rule - 181 ChooseRule: "choose" AttributedVariable "in" Term "do" Rule + 184 IterateRule: "iterate" Rule - 182 IterateRule: "iterate" Rule + 185 BlockRule: "{" Rules "}" + 186 | "par" Rules "endpar" + 187 | "{" error "}" + 188 | "par" error "endpar" - 183 BlockRule: "{" Rules "}" - 184 | "par" Rules "endpar" - 185 | "{" error "}" - 186 | "par" error "endpar" + 189 SequenceRule: "{|" Rules "|}" + 190 | "seq" Rules "endseq" + 191 | "{|" error "|}" + 192 | "seq" error "endseq" - 187 SequenceRule: "{|" Rules "|}" - 188 | "seq" Rules "endseq" - 189 | "{|" error "|}" - 190 | "seq" error "endseq" + 193 UpdateRule: DirectCallExpression ":=" Term - 191 UpdateRule: DirectCallExpression ":=" Term + 194 CallRule: "call" DirectCallExpression + 195 | DirectCallExpression + 196 | "call" IndirectCallExpression + 197 | IndirectCallExpression - 192 CallRule: "call" DirectCallExpression - 193 | DirectCallExpression - 194 | "call" IndirectCallExpression - 195 | IndirectCallExpression + 198 Attribute: BasicAttribute + 199 | ExpressionAttribute - 196 Attribute: BasicAttribute - 197 | ExpressionAttribute + 200 Attributes: Attributes "," Attribute + 201 | Attribute - 198 Attributes: Attributes "," Attribute - 199 | Attribute + 202 BasicAttribute: Identifier - 200 BasicAttribute: Identifier - - 201 ExpressionAttribute: Identifier Term + 203 ExpressionAttribute: Identifier Term Terminals, with rules where they appear "end of file" (0) 0 -error (256) 10 73 115 139 143 173 185 186 189 190 +error (256) 10 75 117 141 145 175 187 188 191 192 "CASM" (258) 1 "init" (259) 24 25 -"derived" (260) 33 55 +"derived" (260) 33 57 "enum" (261) 34 -"rule" (262) 56 154 155 +"rule" (262) 58 156 157 "function" (263) 15 "initially" (264) 16 "defined" (265) 18 @@ -302,73 +304,73 @@ error (256) 10 73 115 139 143 173 185 186 189 190 "feature" (267) 40 "implements" (268) 49 50 "for" (269) 49 -"this" (270) 65 -"seq" (271) 188 190 -"endseq" (272) 188 190 -"par" (273) 184 186 -"endpar" (274) 184 186 -"skip" (275) 169 -"let" (276) 149 179 -"in" (277) 58 149 151 152 153 179 180 181 -"forall" (278) 152 180 -"choose" (279) 151 181 -"iterate" (280) 182 -"do" (281) 151 180 181 -"call" (282) 192 194 -"if" (283) 150 170 171 -"then" (284) 150 170 171 -"else" (285) 150 171 -"case" (286) 172 173 -"of" (287) 172 173 -"default" (288) 174 -"holds" (289) 152 -"exists" (290) 153 -"with" (291) 153 -"undef" (292) 93 -"false" (293) 95 -"true" (294) 94 -"and" (295) 132 -"or" (296) 130 -"xor" (297) 131 -"implies" (298) 134 -"not" (299) 135 -"+" (300) 116 118 -"-" (301) 117 119 -"=" (302) 33 34 35 40 49 50 125 149 154 155 179 -"(" (303) 72 73 114 115 142 143 144 145 148 -")" (304) 72 73 114 115 142 143 144 145 148 -"[" (305) 11 36 41 43 45 68 136 137 138 139 -"]" (306) 11 36 41 43 45 68 136 137 138 139 -"{" (307) 16 18 25 34 35 40 49 50 172 173 183 185 -"}" (308) 16 18 25 34 35 40 49 50 172 173 183 185 -":" (309) 15 55 56 66 174 175 176 -"_" (310) 175 -"@" (311) 102 -"," (312) 29 59 70 83 140 145 198 -"<" (313) 80 81 126 -">" (314) 80 81 127 -"*" (315) 20 120 148 -"/" (316) 121 -"%" (317) 122 -"^" (318) 123 -"'" (319) 82 -".." (320) 136 -"." (321) 61 64 65 -"->" (322) 15 27 28 33 55 56 81 155 -"=>" (323) 133 -":=" (324) 191 -"!=" (325) 124 -"<=" (326) 128 -">=" (327) 129 -"{|" (328) 187 189 -"|}" (329) 187 189 -"binary" (330) 97 -"hexadecimal" (331) 98 -"integer" (332) 99 -"rational" (333) 101 -"floating" (334) 100 -"string" (335) 96 -"identifier" (336) 57 +"this" (270) 67 +"seq" (271) 190 192 +"endseq" (272) 190 192 +"par" (273) 186 188 +"endpar" (274) 186 188 +"skip" (275) 171 +"let" (276) 151 181 +"in" (277) 60 151 153 154 155 181 182 183 +"forall" (278) 154 182 +"choose" (279) 153 183 +"iterate" (280) 184 +"do" (281) 153 182 183 +"call" (282) 194 196 +"if" (283) 152 172 173 +"then" (284) 152 172 173 +"else" (285) 152 173 +"case" (286) 174 175 +"of" (287) 174 175 +"default" (288) 176 +"holds" (289) 154 +"exists" (290) 155 +"with" (291) 155 +"undef" (292) 95 +"false" (293) 97 +"true" (294) 96 +"and" (295) 134 +"or" (296) 132 +"xor" (297) 133 +"implies" (298) 136 +"not" (299) 137 +"+" (300) 118 120 +"-" (301) 119 121 +"=" (302) 33 34 35 40 49 50 127 151 156 157 181 +"(" (303) 74 75 116 117 144 145 146 147 150 +")" (304) 74 75 116 117 144 145 146 147 150 +"[" (305) 11 36 41 43 45 51 53 70 138 139 140 141 +"]" (306) 11 36 41 43 45 51 53 70 138 139 140 141 +"{" (307) 16 18 25 34 35 40 49 50 174 175 185 187 +"}" (308) 16 18 25 34 35 40 49 50 174 175 185 187 +":" (309) 15 57 58 68 176 177 178 +"_" (310) 177 +"@" (311) 104 +"," (312) 29 61 72 85 142 147 200 +"<" (313) 82 83 128 +">" (314) 82 83 129 +"*" (315) 20 122 150 +"/" (316) 123 +"%" (317) 124 +"^" (318) 125 +"'" (319) 84 +".." (320) 138 +"." (321) 63 66 67 +"->" (322) 15 27 28 33 57 58 83 157 +"=>" (323) 135 +":=" (324) 193 +"!=" (325) 126 +"<=" (326) 130 +">=" (327) 131 +"{|" (328) 189 191 +"|}" (329) 189 191 +"binary" (330) 99 +"hexadecimal" (331) 100 +"integer" (332) 101 +"rational" (333) 103 +"floating" (334) 102 +"string" (335) 98 +"identifier" (336) 59 ABSOLUTE_PATH (337) UPLUS (338) UMINUS (339) @@ -396,7 +398,7 @@ MaybeDefined (93) FunctionParameters (94) on left: 20 21, on right: 20 22 MaybeFunctionParameters (95) - on left: 22 23, on right: 15 55 56 81 + on left: 22 23, on right: 15 57 58 83 ProgramFunctionDefinition (96) on left: 24 25, on right: 2 Initializer (97) @@ -406,7 +408,7 @@ Initializers (98) MaybeInitializers (99) on left: 31 32, on right: 16 25 DerivedDefinition (100) - on left: 33, on right: 4 43 44 51 + on left: 33, on right: 4 43 44 51 52 EnumerationDefinition (101) on left: 34, on right: 6 StructureDefinition (102) @@ -423,133 +425,133 @@ FeatureDefinitionList (107) on left: 47 48, on right: 40 47 ImplementationDefinition (108) on left: 49 50, on right: 9 -ImplementationDefinitionDefinition (109) - on left: 51 52, on right: 53 54 -ImplementationDefinitionDefinitions (110) - on left: 53 54, on right: 49 50 53 +ImplementationDefinitionElement (109) + on left: 51 52 53 54, on right: 55 56 +ImplementationDefinitionList (110) + on left: 55 56, on right: 49 50 55 Declaration (111) - on left: 55 56, on right: 41 42 + on left: 57 58, on right: 41 42 Identifier (112) - on left: 57 58, on right: 15 33 34 35 40 55 56 59 60 61 62 66 67 - 154 155 200 201 + on left: 59 60, on right: 15 33 34 35 40 57 58 61 62 63 64 68 69 + 156 157 202 203 Identifiers (113) - on left: 59 60, on right: 34 59 + on left: 61 62, on right: 34 61 DotSeparatedIdentifiers (114) - on left: 61 62, on right: 61 63 64 65 + on left: 63 64, on right: 63 65 66 67 IdentifierPath (115) - on left: 63 64 65, on right: 24 49 79 80 81 82 102 146 147 + on left: 65 66 67, on right: 24 49 81 82 83 84 104 148 149 Variable (116) - on left: 66 67, on right: 68 69 + on left: 68 69, on right: 70 71 AttributedVariable (117) - on left: 68 69, on right: 70 71 149 151 152 153 179 180 181 + on left: 70 71, on right: 72 73 151 153 154 155 181 182 183 Parameters (118) - on left: 70 71, on right: 70 72 + on left: 72 73, on right: 72 74 MaybeParameters (119) - on left: 72 73 74, on right: 33 154 155 + on left: 74 75 76, on right: 33 156 157 Type (120) - on left: 75 76 77 78, on right: 15 20 21 33 49 50 55 56 66 81 83 - 84 155 + on left: 77 78 79 80, on right: 15 20 21 33 49 50 57 58 68 83 85 + 86 157 BasicType (121) - on left: 79, on right: 75 + on left: 81, on right: 77 ComposedType (122) - on left: 80, on right: 76 + on left: 82, on right: 78 RelationType (123) - on left: 81, on right: 77 + on left: 83, on right: 79 FixedSizedType (124) - on left: 82, on right: 78 + on left: 84, on right: 80 Types (125) - on left: 83 84, on right: 80 83 + on left: 85 86, on right: 82 85 Atom (126) - on left: 85 86 87 88 89 90 91 92, on right: 113 + on left: 87 88 89 90 91 92 93 94, on right: 115 Undefined (127) - on left: 93, on right: 91 + on left: 95, on right: 93 Boolean (128) - on left: 94 95, on right: 92 + on left: 96 97, on right: 94 String (129) - on left: 96, on right: 90 + on left: 98, on right: 92 BitNumber (130) - on left: 97 98, on right: 86 + on left: 99 100, on right: 88 IntegerNumber (131) - on left: 99, on right: 87 + on left: 101, on right: 89 FloatingNumber (132) - on left: 100, on right: 88 + on left: 102, on right: 90 RationalNumber (133) - on left: 101, on right: 89 + on left: 103, on right: 91 Reference (134) - on left: 102, on right: 85 + on left: 104, on right: 87 Term (135) - on left: 103 104 105 106 107 108 109 110 111 112 113, on right: - 18 26 27 28 33 82 114 116 117 118 119 120 121 122 123 124 125 126 - 127 128 129 130 131 132 133 134 135 136 140 141 145 148 149 150 - 151 152 153 170 171 172 173 176 179 180 181 191 201 + on left: 105 106 107 108 109 110 111 112 113 114 115, on right: + 18 26 27 28 33 84 116 118 119 120 121 122 123 124 125 126 127 128 + 129 130 131 132 133 134 135 136 137 138 142 143 147 150 151 152 + 153 154 155 172 173 174 175 178 181 182 183 193 203 Expression (136) - on left: 114 115 116 117 118 119 120 121 122 123 124 125 126 127 - 128 129 130 131 132 133 134 135, on right: 110 + on left: 116 117 118 119 120 121 122 123 124 125 126 127 128 129 + 130 131 132 133 134 135 136 137, on right: 112 Range (137) - on left: 136, on right: 112 + on left: 138, on right: 114 List (138) - on left: 137 138 139, on right: 111 + on left: 139 140 141, on right: 113 Terms (139) - on left: 140 141, on right: 138 140 142 145 + on left: 142 143, on right: 140 142 144 147 Arguments (140) - on left: 142 143 144, on right: 147 148 + on left: 144 145 146, on right: 149 150 TwoOrMoreArguments (141) - on left: 145, on right: 28 + on left: 147, on right: 28 DirectCallExpression (142) - on left: 146 147, on right: 103 191 192 193 + on left: 148 149, on right: 105 193 194 195 IndirectCallExpression (143) - on left: 148, on right: 104 194 195 + on left: 150, on right: 106 196 197 LetExpression (144) - on left: 149, on right: 105 + on left: 151, on right: 107 ConditionalExpression (145) - on left: 150, on right: 106 + on left: 152, on right: 108 ChooseExpression (146) - on left: 151, on right: 107 + on left: 153, on right: 109 UniversalQuantifierExpression (147) - on left: 152, on right: 108 + on left: 154, on right: 110 ExistentialQuantifierExpression (148) - on left: 153, on right: 109 + on left: 155, on right: 111 RuleDefinition (149) - on left: 154 155, on right: 5 45 46 52 + on left: 156 157, on right: 5 45 46 53 54 Rule (150) - on left: 156 157 158 159 160 161 162 163 164 165 166, on right: - 154 155 167 168 170 171 174 175 176 179 180 181 182 + on left: 158 159 160 161 162 163 164 165 166 167 168, on right: + 156 157 169 170 172 173 176 177 178 181 182 183 184 Rules (151) - on left: 167 168, on right: 167 183 184 187 188 + on left: 169 170, on right: 169 185 186 189 190 SkipRule (152) - on left: 169, on right: 156 + on left: 171, on right: 158 ConditionalRule (153) - on left: 170 171, on right: 157 + on left: 172 173, on right: 159 CaseRule (154) - on left: 172 173, on right: 158 + on left: 174 175, on right: 160 CaseLabel (155) - on left: 174 175 176, on right: 177 178 + on left: 176 177 178, on right: 179 180 CaseLabels (156) - on left: 177 178, on right: 172 177 + on left: 179 180, on right: 174 179 LetRule (157) - on left: 179, on right: 159 + on left: 181, on right: 161 ForallRule (158) - on left: 180, on right: 160 + on left: 182, on right: 162 ChooseRule (159) - on left: 181, on right: 161 + on left: 183, on right: 163 IterateRule (160) - on left: 182, on right: 162 + on left: 184, on right: 164 BlockRule (161) - on left: 183 184 185 186, on right: 163 + on left: 185 186 187 188, on right: 165 SequenceRule (162) - on left: 187 188 189 190, on right: 164 + on left: 189 190 191 192, on right: 166 UpdateRule (163) - on left: 191, on right: 165 + on left: 193, on right: 167 CallRule (164) - on left: 192 193 194 195, on right: 166 + on left: 194 195 196 197, on right: 168 Attribute (165) - on left: 196 197, on right: 198 199 + on left: 198 199, on right: 200 201 Attributes (166) - on left: 198 199, on right: 11 36 41 43 45 68 198 + on left: 200 201, on right: 11 36 41 43 45 51 53 70 200 BasicAttribute (167) - on left: 200, on right: 196 + on left: 202, on right: 198 ExpressionAttribute (168) - on left: 201, on right: 197 + on left: 203, on right: 199 State 0 @@ -641,8 +643,8 @@ State 6 State 7 - 154 RuleDefinition: "rule" . Identifier MaybeParameters "=" Rule - 155 | "rule" . Identifier MaybeParameters "->" Type "=" Rule + 156 RuleDefinition: "rule" . Identifier MaybeParameters "=" Rule + 157 | "rule" . Identifier MaybeParameters "->" Type "=" Rule "in" shift, and go to state 26 "identifier" shift, and go to state 29 @@ -682,8 +684,8 @@ State 10 State 11 - 49 ImplementationDefinition: "implements" . IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" - 50 | "implements" . Type "=" "{" ImplementationDefinitionDefinitions "}" + 49 ImplementationDefinition: "implements" . IdentifierPath "for" Type "=" "{" ImplementationDefinitionList "}" + 50 | "implements" . Type "=" "{" ImplementationDefinitionList "}" "this" shift, and go to state 25 "in" shift, and go to state 26 @@ -823,16 +825,16 @@ State 24 State 25 - 65 IdentifierPath: "this" . "." DotSeparatedIdentifiers + 67 IdentifierPath: "this" . "." DotSeparatedIdentifiers "." shift, and go to state 51 State 26 - 58 Identifier: "in" . + 60 Identifier: "in" . - $default reduce using rule 58 (Identifier) + $default reduce using rule 60 (Identifier) State 27 @@ -897,7 +899,7 @@ State 27 State 28 - 64 IdentifierPath: "." . DotSeparatedIdentifiers + 66 IdentifierPath: "." . DotSeparatedIdentifiers "in" shift, and go to state 26 "identifier" shift, and go to state 29 @@ -908,26 +910,26 @@ State 28 State 29 - 57 Identifier: "identifier" . + 59 Identifier: "identifier" . - $default reduce using rule 57 (Identifier) + $default reduce using rule 59 (Identifier) State 30 - 62 DotSeparatedIdentifiers: Identifier . + 64 DotSeparatedIdentifiers: Identifier . - $default reduce using rule 62 (DotSeparatedIdentifiers) + $default reduce using rule 64 (DotSeparatedIdentifiers) State 31 - 61 DotSeparatedIdentifiers: DotSeparatedIdentifiers . "." Identifier - 63 IdentifierPath: DotSeparatedIdentifiers . + 63 DotSeparatedIdentifiers: DotSeparatedIdentifiers . "." Identifier + 65 IdentifierPath: DotSeparatedIdentifiers . "." shift, and go to state 98 - $default reduce using rule 63 (IdentifierPath) + $default reduce using rule 65 (IdentifierPath) State 32 @@ -943,7 +945,7 @@ State 33 "(" shift, and go to state 99 - $default reduce using rule 74 (MaybeParameters) + $default reduce using rule 76 (MaybeParameters) MaybeParameters go to state 100 @@ -957,12 +959,12 @@ State 34 State 35 - 154 RuleDefinition: "rule" Identifier . MaybeParameters "=" Rule - 155 | "rule" Identifier . MaybeParameters "->" Type "=" Rule + 156 RuleDefinition: "rule" Identifier . MaybeParameters "=" Rule + 157 | "rule" Identifier . MaybeParameters "->" Type "=" Rule "(" shift, and go to state 99 - $default reduce using rule 74 (MaybeParameters) + $default reduce using rule 76 (MaybeParameters) MaybeParameters go to state 102 @@ -990,58 +992,58 @@ State 38 State 39 - 49 ImplementationDefinition: "implements" IdentifierPath . "for" Type "=" "{" ImplementationDefinitionDefinitions "}" - 79 BasicType: IdentifierPath . - 80 ComposedType: IdentifierPath . "<" Types ">" - 81 RelationType: IdentifierPath . "<" MaybeFunctionParameters "->" Type ">" - 82 FixedSizedType: IdentifierPath . "'" Term + 49 ImplementationDefinition: "implements" IdentifierPath . "for" Type "=" "{" ImplementationDefinitionList "}" + 81 BasicType: IdentifierPath . + 82 ComposedType: IdentifierPath . "<" Types ">" + 83 RelationType: IdentifierPath . "<" MaybeFunctionParameters "->" Type ">" + 84 FixedSizedType: IdentifierPath . "'" Term "for" shift, and go to state 106 "<" shift, and go to state 107 "'" shift, and go to state 108 - $default reduce using rule 79 (BasicType) + $default reduce using rule 81 (BasicType) State 40 - 50 ImplementationDefinition: "implements" Type . "=" "{" ImplementationDefinitionDefinitions "}" + 50 ImplementationDefinition: "implements" Type . "=" "{" ImplementationDefinitionList "}" "=" shift, and go to state 109 State 41 - 75 Type: BasicType . + 77 Type: BasicType . - $default reduce using rule 75 (Type) + $default reduce using rule 77 (Type) State 42 - 76 Type: ComposedType . + 78 Type: ComposedType . - $default reduce using rule 76 (Type) + $default reduce using rule 78 (Type) State 43 - 77 Type: RelationType . + 79 Type: RelationType . - $default reduce using rule 77 (Type) + $default reduce using rule 79 (Type) State 44 - 78 Type: FixedSizedType . + 80 Type: FixedSizedType . - $default reduce using rule 78 (Type) + $default reduce using rule 80 (Type) State 45 - 200 BasicAttribute: Identifier . - 201 ExpressionAttribute: Identifier . Term + 202 BasicAttribute: Identifier . + 203 ExpressionAttribute: Identifier . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -1068,7 +1070,7 @@ State 45 "string" shift, and go to state 71 "identifier" shift, and go to state 29 - $default reduce using rule 200 (BasicAttribute) + $default reduce using rule 202 (BasicAttribute) Identifier go to state 30 DotSeparatedIdentifiers go to state 31 @@ -1097,15 +1099,15 @@ State 45 State 46 - 199 Attributes: Attribute . + 201 Attributes: Attribute . - $default reduce using rule 199 (Attributes) + $default reduce using rule 201 (Attributes) State 47 11 AttributedDefinition: "[" Attributes . "]" Definition - 198 Attributes: Attributes . "," Attribute + 200 Attributes: Attributes . "," Attribute "]" shift, and go to state 112 "," shift, and go to state 113 @@ -1113,16 +1115,16 @@ State 47 State 48 - 196 Attribute: BasicAttribute . + 198 Attribute: BasicAttribute . - $default reduce using rule 196 (Attribute) + $default reduce using rule 198 (Attribute) State 49 - 197 Attribute: ExpressionAttribute . + 199 Attribute: ExpressionAttribute . - $default reduce using rule 197 (Attribute) + $default reduce using rule 199 (Attribute) State 50 @@ -1134,7 +1136,7 @@ State 50 State 51 - 65 IdentifierPath: "this" "." . DotSeparatedIdentifiers + 67 IdentifierPath: "this" "." . DotSeparatedIdentifiers "in" shift, and go to state 26 "identifier" shift, and go to state 29 @@ -1145,7 +1147,7 @@ State 51 State 52 - 149 LetExpression: "let" . AttributedVariable "=" Term "in" Term + 151 LetExpression: "let" . AttributedVariable "=" Term "in" Term "in" shift, and go to state 26 "[" shift, and go to state 115 @@ -1158,7 +1160,7 @@ State 52 State 53 - 152 UniversalQuantifierExpression: "forall" . AttributedVariable "in" Term "holds" Term + 154 UniversalQuantifierExpression: "forall" . AttributedVariable "in" Term "holds" Term "in" shift, and go to state 26 "[" shift, and go to state 115 @@ -1171,7 +1173,7 @@ State 53 State 54 - 151 ChooseExpression: "choose" . AttributedVariable "in" Term "do" Term + 153 ChooseExpression: "choose" . AttributedVariable "in" Term "do" Term "in" shift, and go to state 26 "[" shift, and go to state 115 @@ -1184,7 +1186,7 @@ State 54 State 55 - 150 ConditionalExpression: "if" . Term "then" Term "else" Term + 152 ConditionalExpression: "if" . Term "then" Term "else" Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -1238,7 +1240,7 @@ State 55 State 56 - 153 ExistentialQuantifierExpression: "exists" . AttributedVariable "in" Term "with" Term + 155 ExistentialQuantifierExpression: "exists" . AttributedVariable "in" Term "with" Term "in" shift, and go to state 26 "[" shift, and go to state 115 @@ -1251,28 +1253,28 @@ State 56 State 57 - 93 Undefined: "undef" . + 95 Undefined: "undef" . - $default reduce using rule 93 (Undefined) + $default reduce using rule 95 (Undefined) State 58 - 95 Boolean: "false" . + 97 Boolean: "false" . - $default reduce using rule 95 (Boolean) + $default reduce using rule 97 (Boolean) State 59 - 94 Boolean: "true" . + 96 Boolean: "true" . - $default reduce using rule 94 (Boolean) + $default reduce using rule 96 (Boolean) State 60 - 135 Expression: "not" . Term + 137 Expression: "not" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -1326,7 +1328,7 @@ State 60 State 61 - 116 Expression: "+" . Term + 118 Expression: "+" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -1380,7 +1382,7 @@ State 61 State 62 - 117 Expression: "-" . Term + 119 Expression: "-" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -1434,10 +1436,10 @@ State 62 State 63 - 114 Expression: "(" . Term ")" - 115 | "(" . error ")" - 145 TwoOrMoreArguments: "(" . Terms "," Term ")" - 148 IndirectCallExpression: "(" . "*" Term ")" Arguments + 116 Expression: "(" . Term ")" + 117 | "(" . error ")" + 147 TwoOrMoreArguments: "(" . Terms "," Term ")" + 150 IndirectCallExpression: "(" . "*" Term ")" Arguments error shift, and go to state 126 "this" shift, and go to state 25 @@ -1494,10 +1496,10 @@ State 63 State 64 - 136 Range: "[" . Term ".." Term "]" - 137 List: "[" . "]" - 138 | "[" . Terms "]" - 139 | "[" . error "]" + 138 Range: "[" . Term ".." Term "]" + 139 List: "[" . "]" + 140 | "[" . Terms "]" + 141 | "[" . error "]" error shift, and go to state 130 "this" shift, and go to state 25 @@ -1554,7 +1556,7 @@ State 64 State 65 - 102 Reference: "@" . IdentifierPath + 104 Reference: "@" . IdentifierPath "this" shift, and go to state 25 "in" shift, and go to state 26 @@ -1568,44 +1570,44 @@ State 65 State 66 - 97 BitNumber: "binary" . + 99 BitNumber: "binary" . - $default reduce using rule 97 (BitNumber) + $default reduce using rule 99 (BitNumber) State 67 - 98 BitNumber: "hexadecimal" . + 100 BitNumber: "hexadecimal" . - $default reduce using rule 98 (BitNumber) + $default reduce using rule 100 (BitNumber) State 68 - 99 IntegerNumber: "integer" . + 101 IntegerNumber: "integer" . - $default reduce using rule 99 (IntegerNumber) + $default reduce using rule 101 (IntegerNumber) State 69 - 101 RationalNumber: "rational" . + 103 RationalNumber: "rational" . - $default reduce using rule 101 (RationalNumber) + $default reduce using rule 103 (RationalNumber) State 70 - 100 FloatingNumber: "floating" . + 102 FloatingNumber: "floating" . - $default reduce using rule 100 (FloatingNumber) + $default reduce using rule 102 (FloatingNumber) State 71 - 96 String: "string" . + 98 String: "string" . - $default reduce using rule 96 (String) + $default reduce using rule 98 (String) State 72 @@ -1634,100 +1636,100 @@ State 74 State 75 - 146 DirectCallExpression: IdentifierPath . - 147 | IdentifierPath . Arguments + 148 DirectCallExpression: IdentifierPath . + 149 | IdentifierPath . Arguments "(" shift, and go to state 137 - $default reduce using rule 146 (DirectCallExpression) + $default reduce using rule 148 (DirectCallExpression) Arguments go to state 138 State 76 - 113 Term: Atom . + 115 Term: Atom . - $default reduce using rule 113 (Term) + $default reduce using rule 115 (Term) State 77 - 91 Atom: Undefined . + 93 Atom: Undefined . - $default reduce using rule 91 (Atom) + $default reduce using rule 93 (Atom) State 78 - 92 Atom: Boolean . + 94 Atom: Boolean . - $default reduce using rule 92 (Atom) + $default reduce using rule 94 (Atom) State 79 - 90 Atom: String . + 92 Atom: String . - $default reduce using rule 90 (Atom) + $default reduce using rule 92 (Atom) State 80 - 86 Atom: BitNumber . + 88 Atom: BitNumber . - $default reduce using rule 86 (Atom) + $default reduce using rule 88 (Atom) State 81 - 87 Atom: IntegerNumber . + 89 Atom: IntegerNumber . - $default reduce using rule 87 (Atom) + $default reduce using rule 89 (Atom) State 82 - 88 Atom: FloatingNumber . + 90 Atom: FloatingNumber . - $default reduce using rule 88 (Atom) + $default reduce using rule 90 (Atom) State 83 - 89 Atom: RationalNumber . + 91 Atom: RationalNumber . - $default reduce using rule 89 (Atom) + $default reduce using rule 91 (Atom) State 84 - 85 Atom: Reference . + 87 Atom: Reference . - $default reduce using rule 85 (Atom) + $default reduce using rule 87 (Atom) State 85 26 Initializer: Term . 27 | Term . "->" Term - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -1753,23 +1755,23 @@ State 85 State 86 - 110 Term: Expression . + 112 Term: Expression . - $default reduce using rule 110 (Term) + $default reduce using rule 112 (Term) State 87 - 112 Term: Range . + 114 Term: Range . - $default reduce using rule 112 (Term) + $default reduce using rule 114 (Term) State 88 - 111 Term: List . + 113 Term: List . - $default reduce using rule 111 (Term) + $default reduce using rule 113 (Term) State 89 @@ -1781,64 +1783,64 @@ State 89 State 90 - 103 Term: DirectCallExpression . + 105 Term: DirectCallExpression . - $default reduce using rule 103 (Term) + $default reduce using rule 105 (Term) State 91 - 104 Term: IndirectCallExpression . + 106 Term: IndirectCallExpression . - $default reduce using rule 104 (Term) + $default reduce using rule 106 (Term) State 92 - 105 Term: LetExpression . + 107 Term: LetExpression . - $default reduce using rule 105 (Term) + $default reduce using rule 107 (Term) State 93 - 106 Term: ConditionalExpression . + 108 Term: ConditionalExpression . - $default reduce using rule 106 (Term) + $default reduce using rule 108 (Term) State 94 - 107 Term: ChooseExpression . + 109 Term: ChooseExpression . - $default reduce using rule 107 (Term) + $default reduce using rule 109 (Term) State 95 - 108 Term: UniversalQuantifierExpression . + 110 Term: UniversalQuantifierExpression . - $default reduce using rule 108 (Term) + $default reduce using rule 110 (Term) State 96 - 109 Term: ExistentialQuantifierExpression . + 111 Term: ExistentialQuantifierExpression . - $default reduce using rule 109 (Term) + $default reduce using rule 111 (Term) State 97 - 61 DotSeparatedIdentifiers: DotSeparatedIdentifiers . "." Identifier - 64 IdentifierPath: "." DotSeparatedIdentifiers . + 63 DotSeparatedIdentifiers: DotSeparatedIdentifiers . "." Identifier + 66 IdentifierPath: "." DotSeparatedIdentifiers . - $default reduce using rule 64 (IdentifierPath) + $default reduce using rule 66 (IdentifierPath) State 98 - 61 DotSeparatedIdentifiers: DotSeparatedIdentifiers "." . Identifier + 63 DotSeparatedIdentifiers: DotSeparatedIdentifiers "." . Identifier "in" shift, and go to state 26 "identifier" shift, and go to state 29 @@ -1848,8 +1850,8 @@ State 98 State 99 - 72 MaybeParameters: "(" . Parameters ")" - 73 | "(" . error ")" + 74 MaybeParameters: "(" . Parameters ")" + 75 | "(" . error ")" error shift, and go to state 159 "in" shift, and go to state 26 @@ -1878,8 +1880,8 @@ State 101 State 102 - 154 RuleDefinition: "rule" Identifier MaybeParameters . "=" Rule - 155 | "rule" Identifier MaybeParameters . "->" Type "=" Rule + 156 RuleDefinition: "rule" Identifier MaybeParameters . "=" Rule + 157 | "rule" Identifier MaybeParameters . "->" Type "=" Rule "=" shift, and go to state 164 "->" shift, and go to state 165 @@ -1924,7 +1926,7 @@ State 105 State 106 - 49 ImplementationDefinition: "implements" IdentifierPath "for" . Type "=" "{" ImplementationDefinitionDefinitions "}" + 49 ImplementationDefinition: "implements" IdentifierPath "for" . Type "=" "{" ImplementationDefinitionList "}" "this" shift, and go to state 25 "in" shift, and go to state 26 @@ -1943,8 +1945,8 @@ State 106 State 107 - 80 ComposedType: IdentifierPath "<" . Types ">" - 81 RelationType: IdentifierPath "<" . MaybeFunctionParameters "->" Type ">" + 82 ComposedType: IdentifierPath "<" . Types ">" + 83 RelationType: IdentifierPath "<" . MaybeFunctionParameters "->" Type ">" "this" shift, and go to state 25 "in" shift, and go to state 26 @@ -1968,7 +1970,7 @@ State 107 State 108 - 82 FixedSizedType: IdentifierPath "'" . Term + 84 FixedSizedType: IdentifierPath "'" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -2022,16 +2024,16 @@ State 108 State 109 - 50 ImplementationDefinition: "implements" Type "=" . "{" ImplementationDefinitionDefinitions "}" + 50 ImplementationDefinition: "implements" Type "=" . "{" ImplementationDefinitionList "}" "{" shift, and go to state 177 State 110 - 114 Expression: "(" . Term ")" - 115 | "(" . error ")" - 148 IndirectCallExpression: "(" . "*" Term ")" Arguments + 116 Expression: "(" . Term ")" + 117 | "(" . error ")" + 150 IndirectCallExpression: "(" . "*" Term ")" Arguments error shift, and go to state 126 "this" shift, and go to state 25 @@ -2087,24 +2089,24 @@ State 110 State 111 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 201 ExpressionAttribute: Identifier Term . + 120 Expression: 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 + 203 ExpressionAttribute: Identifier Term . "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -2124,7 +2126,7 @@ State 111 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 201 (ExpressionAttribute) + $default reduce using rule 203 (ExpressionAttribute) State 112 @@ -2154,7 +2156,7 @@ State 112 State 113 - 198 Attributes: Attributes "," . Attribute + 200 Attributes: Attributes "," . Attribute "in" shift, and go to state 26 "identifier" shift, and go to state 29 @@ -2167,15 +2169,15 @@ State 113 State 114 - 61 DotSeparatedIdentifiers: DotSeparatedIdentifiers . "." Identifier - 65 IdentifierPath: "this" "." DotSeparatedIdentifiers . + 63 DotSeparatedIdentifiers: DotSeparatedIdentifiers . "." Identifier + 67 IdentifierPath: "this" "." DotSeparatedIdentifiers . - $default reduce using rule 65 (IdentifierPath) + $default reduce using rule 67 (IdentifierPath) State 115 - 68 AttributedVariable: "[" . Attributes "]" Variable + 70 AttributedVariable: "[" . Attributes "]" Variable "in" shift, and go to state 26 "identifier" shift, and go to state 29 @@ -2189,62 +2191,62 @@ State 115 State 116 - 66 Variable: Identifier . ":" Type - 67 | Identifier . + 68 Variable: Identifier . ":" Type + 69 | Identifier . ":" shift, and go to state 182 - $default reduce using rule 67 (Variable) + $default reduce using rule 69 (Variable) State 117 - 69 AttributedVariable: Variable . + 71 AttributedVariable: Variable . - $default reduce using rule 69 (AttributedVariable) + $default reduce using rule 71 (AttributedVariable) State 118 - 149 LetExpression: "let" AttributedVariable . "=" Term "in" Term + 151 LetExpression: "let" AttributedVariable . "=" Term "in" Term "=" shift, and go to state 183 State 119 - 152 UniversalQuantifierExpression: "forall" AttributedVariable . "in" Term "holds" Term + 154 UniversalQuantifierExpression: "forall" AttributedVariable . "in" Term "holds" Term "in" shift, and go to state 184 State 120 - 151 ChooseExpression: "choose" AttributedVariable . "in" Term "do" Term + 153 ChooseExpression: "choose" AttributedVariable . "in" Term "do" Term "in" shift, and go to state 185 State 121 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 150 ConditionalExpression: "if" Term . "then" Term "else" Term + 120 Expression: 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 + 152 ConditionalExpression: "if" Term . "then" Term "else" Term "then" shift, and go to state 186 "and" shift, and go to state 139 @@ -2268,93 +2270,93 @@ State 121 State 122 - 153 ExistentialQuantifierExpression: "exists" AttributedVariable . "in" Term "with" Term + 155 ExistentialQuantifierExpression: "exists" AttributedVariable . "in" Term "with" Term "in" shift, and go to state 187 State 123 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 135 | "not" Term . - - $default reduce using rule 135 (Expression) + 120 Expression: 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 (Expression) State 124 - 116 Expression: "+" Term . - 118 | Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 118 Expression: "+" 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 - $default reduce using rule 116 (Expression) + $default reduce using rule 118 (Expression) State 125 - 117 Expression: "-" Term . - 118 | Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 119 Expression: "-" 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 - $default reduce using rule 117 (Expression) + $default reduce using rule 119 (Expression) State 126 - 115 Expression: "(" error . ")" + 117 Expression: "(" error . ")" ")" shift, and go to state 188 State 127 - 148 IndirectCallExpression: "(" "*" . Term ")" Arguments + 150 IndirectCallExpression: "(" "*" . Term ")" Arguments "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -2408,25 +2410,25 @@ State 127 State 128 - 114 Expression: "(" Term . ")" - 118 | Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 141 Terms: Term . + 116 Expression: "(" 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 + 143 Terms: Term . "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -2447,52 +2449,52 @@ State 128 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 141 (Terms) + $default reduce using rule 143 (Terms) State 129 - 140 Terms: Terms . "," Term - 145 TwoOrMoreArguments: "(" Terms . "," Term ")" + 142 Terms: Terms . "," Term + 147 TwoOrMoreArguments: "(" Terms . "," Term ")" "," shift, and go to state 191 State 130 - 139 List: "[" error . "]" + 141 List: "[" error . "]" "]" shift, and go to state 192 State 131 - 137 List: "[" "]" . + 139 List: "[" "]" . - $default reduce using rule 137 (List) + $default reduce using rule 139 (List) State 132 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 136 Range: "[" Term . ".." Term "]" - 141 Terms: Term . + 120 Expression: 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 + 138 Range: "[" Term . ".." Term "]" + 143 Terms: Term . "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -2513,13 +2515,13 @@ State 132 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 141 (Terms) + $default reduce using rule 143 (Terms) State 133 - 138 List: "[" Terms . "]" - 140 Terms: Terms . "," Term + 140 List: "[" Terms . "]" + 142 Terms: Terms . "," Term "]" shift, and go to state 194 "," shift, and go to state 195 @@ -2527,9 +2529,9 @@ State 133 State 134 - 102 Reference: "@" IdentifierPath . + 104 Reference: "@" IdentifierPath . - $default reduce using rule 102 (Reference) + $default reduce using rule 104 (Reference) State 135 @@ -2597,9 +2599,9 @@ State 136 State 137 - 142 Arguments: "(" . Terms ")" - 143 | "(" . error ")" - 144 | "(" . ")" + 144 Arguments: "(" . Terms ")" + 145 | "(" . error ")" + 146 | "(" . ")" error shift, and go to state 197 "this" shift, and go to state 25 @@ -2656,14 +2658,14 @@ State 137 State 138 - 147 DirectCallExpression: IdentifierPath Arguments . + 149 DirectCallExpression: IdentifierPath Arguments . - $default reduce using rule 147 (DirectCallExpression) + $default reduce using rule 149 (DirectCallExpression) State 139 - 132 Expression: Term "and" . Term + 134 Expression: Term "and" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -2717,7 +2719,7 @@ State 139 State 140 - 130 Expression: Term "or" . Term + 132 Expression: Term "or" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -2771,7 +2773,7 @@ State 140 State 141 - 131 Expression: Term "xor" . Term + 133 Expression: Term "xor" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -2825,7 +2827,7 @@ State 141 State 142 - 134 Expression: Term "implies" . Term + 136 Expression: Term "implies" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -2879,7 +2881,7 @@ State 142 State 143 - 118 Expression: Term "+" . Term + 120 Expression: Term "+" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -2933,7 +2935,7 @@ State 143 State 144 - 119 Expression: Term "-" . Term + 121 Expression: Term "-" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -2987,7 +2989,7 @@ State 144 State 145 - 125 Expression: Term "=" . Term + 127 Expression: Term "=" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -3041,7 +3043,7 @@ State 145 State 146 - 126 Expression: Term "<" . Term + 128 Expression: Term "<" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -3095,7 +3097,7 @@ State 146 State 147 - 127 Expression: Term ">" . Term + 129 Expression: Term ">" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -3149,7 +3151,7 @@ State 147 State 148 - 120 Expression: Term "*" . Term + 122 Expression: Term "*" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -3203,7 +3205,7 @@ State 148 State 149 - 121 Expression: Term "/" . Term + 123 Expression: Term "/" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -3257,7 +3259,7 @@ State 149 State 150 - 122 Expression: Term "%" . Term + 124 Expression: Term "%" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -3311,7 +3313,7 @@ State 150 State 151 - 123 Expression: Term "^" . Term + 125 Expression: Term "^" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -3419,7 +3421,7 @@ State 152 State 153 - 133 Expression: Term "=>" . Term + 135 Expression: Term "=>" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -3473,7 +3475,7 @@ State 153 State 154 - 124 Expression: Term "!=" . Term + 126 Expression: Term "!=" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -3527,7 +3529,7 @@ State 154 State 155 - 128 Expression: Term "<=" . Term + 130 Expression: Term "<=" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -3581,7 +3583,7 @@ State 155 State 156 - 129 Expression: Term ">=" . Term + 131 Expression: Term ">=" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -3689,29 +3691,29 @@ State 157 State 158 - 61 DotSeparatedIdentifiers: DotSeparatedIdentifiers "." Identifier . + 63 DotSeparatedIdentifiers: DotSeparatedIdentifiers "." Identifier . - $default reduce using rule 61 (DotSeparatedIdentifiers) + $default reduce using rule 63 (DotSeparatedIdentifiers) State 159 - 73 MaybeParameters: "(" error . ")" + 75 MaybeParameters: "(" error . ")" ")" shift, and go to state 220 State 160 - 71 Parameters: AttributedVariable . + 73 Parameters: AttributedVariable . - $default reduce using rule 71 (Parameters) + $default reduce using rule 73 (Parameters) State 161 - 70 Parameters: Parameters . "," AttributedVariable - 72 MaybeParameters: "(" Parameters . ")" + 72 Parameters: Parameters . "," AttributedVariable + 74 MaybeParameters: "(" Parameters . ")" ")" shift, and go to state 221 "," shift, and go to state 222 @@ -3749,7 +3751,7 @@ State 163 State 164 - 154 RuleDefinition: "rule" Identifier MaybeParameters "=" . Rule + 156 RuleDefinition: "rule" Identifier MaybeParameters "=" . Rule "this" shift, and go to state 25 "seq" shift, and go to state 226 @@ -3790,7 +3792,7 @@ State 164 State 165 - 155 RuleDefinition: "rule" Identifier MaybeParameters "->" . Type "=" Rule + 157 RuleDefinition: "rule" Identifier MaybeParameters "->" . Type "=" Rule "this" shift, and go to state 25 "in" shift, and go to state 26 @@ -3826,15 +3828,15 @@ State 167 State 168 - 79 BasicType: IdentifierPath . - 80 ComposedType: IdentifierPath . "<" Types ">" - 81 RelationType: IdentifierPath . "<" MaybeFunctionParameters "->" Type ">" - 82 FixedSizedType: IdentifierPath . "'" Term + 81 BasicType: IdentifierPath . + 82 ComposedType: IdentifierPath . "<" Types ">" + 83 RelationType: IdentifierPath . "<" MaybeFunctionParameters "->" Type ">" + 84 FixedSizedType: IdentifierPath . "'" Term "<" shift, and go to state 107 "'" shift, and go to state 108 - $default reduce using rule 79 (BasicType) + $default reduce using rule 81 (BasicType) State 169 @@ -3873,14 +3875,14 @@ State 171 State 172 - 49 ImplementationDefinition: "implements" IdentifierPath "for" Type . "=" "{" ImplementationDefinitionDefinitions "}" + 49 ImplementationDefinition: "implements" IdentifierPath "for" Type . "=" "{" ImplementationDefinitionList "}" "=" shift, and go to state 268 State 173 - 81 RelationType: IdentifierPath "<" MaybeFunctionParameters . "->" Type ">" + 83 RelationType: IdentifierPath "<" MaybeFunctionParameters . "->" Type ">" "->" shift, and go to state 269 @@ -3888,17 +3890,17 @@ State 173 State 174 21 FunctionParameters: Type . - 84 Types: Type . + 86 Types: Type . - "," reduce using rule 84 (Types) - ">" reduce using rule 84 (Types) + "," reduce using rule 86 (Types) + ">" reduce using rule 86 (Types) $default reduce using rule 21 (FunctionParameters) State 175 - 80 ComposedType: IdentifierPath "<" Types . ">" - 83 Types: Types . "," Type + 82 ComposedType: IdentifierPath "<" Types . ">" + 85 Types: Types . "," Type "," shift, and go to state 270 ">" shift, and go to state 271 @@ -3906,24 +3908,24 @@ State 175 State 176 - 82 FixedSizedType: IdentifierPath "'" Term . - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 84 FixedSizedType: IdentifierPath "'" Term . + 120 Expression: 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 "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -3940,42 +3942,43 @@ State 176 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 82 (FixedSizedType) + $default reduce using rule 84 (FixedSizedType) State 177 - 50 ImplementationDefinition: "implements" Type "=" "{" . ImplementationDefinitionDefinitions "}" + 50 ImplementationDefinition: "implements" Type "=" "{" . ImplementationDefinitionList "}" "derived" shift, and go to state 5 "rule" shift, and go to state 7 + "[" shift, and go to state 272 - DerivedDefinition go to state 272 - ImplementationDefinitionDefinition go to state 273 - ImplementationDefinitionDefinitions go to state 274 - RuleDefinition go to state 275 + DerivedDefinition go to state 273 + ImplementationDefinitionElement go to state 274 + ImplementationDefinitionList go to state 275 + RuleDefinition go to state 276 State 178 - 114 Expression: "(" Term . ")" - 118 | Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 116 Expression: "(" 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 "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -4006,23 +4009,23 @@ State 179 State 180 - 198 Attributes: Attributes "," Attribute . + 200 Attributes: Attributes "," Attribute . - $default reduce using rule 198 (Attributes) + $default reduce using rule 200 (Attributes) State 181 - 68 AttributedVariable: "[" Attributes . "]" Variable - 198 Attributes: Attributes . "," Attribute + 70 AttributedVariable: "[" Attributes . "]" Variable + 200 Attributes: Attributes . "," Attribute - "]" shift, and go to state 276 + "]" shift, and go to state 277 "," shift, and go to state 113 State 182 - 66 Variable: Identifier ":" . Type + 68 Variable: Identifier ":" . Type "this" shift, and go to state 25 "in" shift, and go to state 26 @@ -4032,7 +4035,7 @@ State 182 Identifier go to state 30 DotSeparatedIdentifiers go to state 31 IdentifierPath go to state 168 - Type go to state 277 + Type go to state 278 BasicType go to state 41 ComposedType go to state 42 RelationType go to state 43 @@ -4041,7 +4044,7 @@ State 182 State 183 - 149 LetExpression: "let" AttributedVariable "=" . Term "in" Term + 151 LetExpression: "let" AttributedVariable "=" . Term "in" Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -4080,7 +4083,7 @@ State 183 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 278 + Term go to state 279 Expression go to state 86 Range go to state 87 List go to state 88 @@ -4095,7 +4098,7 @@ State 183 State 184 - 152 UniversalQuantifierExpression: "forall" AttributedVariable "in" . Term "holds" Term + 154 UniversalQuantifierExpression: "forall" AttributedVariable "in" . Term "holds" Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -4134,7 +4137,7 @@ State 184 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 279 + Term go to state 280 Expression go to state 86 Range go to state 87 List go to state 88 @@ -4149,7 +4152,7 @@ State 184 State 185 - 151 ChooseExpression: "choose" AttributedVariable "in" . Term "do" Term + 153 ChooseExpression: "choose" AttributedVariable "in" . Term "do" Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -4188,7 +4191,7 @@ State 185 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 280 + Term go to state 281 Expression go to state 86 Range go to state 87 List go to state 88 @@ -4203,7 +4206,7 @@ State 185 State 186 - 150 ConditionalExpression: "if" Term "then" . Term "else" Term + 152 ConditionalExpression: "if" Term "then" . Term "else" Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -4242,7 +4245,7 @@ State 186 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 281 + Term go to state 282 Expression go to state 86 Range go to state 87 List go to state 88 @@ -4257,7 +4260,7 @@ State 186 State 187 - 153 ExistentialQuantifierExpression: "exists" AttributedVariable "in" . Term "with" Term + 155 ExistentialQuantifierExpression: "exists" AttributedVariable "in" . Term "with" Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -4296,7 +4299,7 @@ State 187 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 282 + Term go to state 283 Expression go to state 86 Range go to state 87 List go to state 88 @@ -4311,31 +4314,31 @@ State 187 State 188 - 115 Expression: "(" error ")" . + 117 Expression: "(" error ")" . - $default reduce using rule 115 (Expression) + $default reduce using rule 117 (Expression) State 189 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 148 IndirectCallExpression: "(" "*" Term . ")" Arguments + 120 Expression: 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 + 150 IndirectCallExpression: "(" "*" Term . ")" Arguments "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -4344,7 +4347,7 @@ State 189 "+" shift, and go to state 143 "-" shift, and go to state 144 "=" shift, and go to state 145 - ")" shift, and go to state 283 + ")" shift, and go to state 284 "<" shift, and go to state 146 ">" shift, and go to state 147 "*" shift, and go to state 148 @@ -4359,15 +4362,15 @@ State 189 State 190 - 114 Expression: "(" Term ")" . + 116 Expression: "(" Term ")" . - $default reduce using rule 114 (Expression) + $default reduce using rule 116 (Expression) State 191 - 140 Terms: Terms "," . Term - 145 TwoOrMoreArguments: "(" Terms "," . Term ")" + 142 Terms: Terms "," . Term + 147 TwoOrMoreArguments: "(" Terms "," . Term ")" "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -4406,7 +4409,7 @@ State 191 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 284 + Term go to state 285 Expression go to state 86 Range go to state 87 List go to state 88 @@ -4421,14 +4424,14 @@ State 191 State 192 - 139 List: "[" error "]" . + 141 List: "[" error "]" . - $default reduce using rule 139 (List) + $default reduce using rule 141 (List) State 193 - 136 Range: "[" Term ".." . Term "]" + 138 Range: "[" Term ".." . Term "]" "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -4467,7 +4470,7 @@ State 193 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 285 + Term go to state 286 Expression go to state 86 Range go to state 87 List go to state 88 @@ -4482,14 +4485,14 @@ State 193 State 194 - 138 List: "[" Terms "]" . + 140 List: "[" Terms "]" . - $default reduce using rule 138 (List) + $default reduce using rule 140 (List) State 195 - 140 Terms: Terms "," . Term + 142 Terms: Terms "," . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -4528,7 +4531,7 @@ State 195 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 286 + Term go to state 287 Expression go to state 86 Range go to state 87 List go to state 88 @@ -4550,38 +4553,38 @@ State 196 State 197 - 143 Arguments: "(" error . ")" + 145 Arguments: "(" error . ")" - ")" shift, and go to state 287 + ")" shift, and go to state 288 State 198 - 144 Arguments: "(" ")" . + 146 Arguments: "(" ")" . - $default reduce using rule 144 (Arguments) + $default reduce using rule 146 (Arguments) State 199 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 141 Terms: Term . + 120 Expression: 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 + 143 Terms: Term . "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -4601,38 +4604,38 @@ State 199 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 141 (Terms) + $default reduce using rule 143 (Terms) State 200 - 140 Terms: Terms . "," Term - 142 Arguments: "(" Terms . ")" + 142 Terms: Terms . "," Term + 144 Arguments: "(" Terms . ")" - ")" shift, and go to state 288 + ")" shift, and go to state 289 "," shift, and go to state 195 State 201 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 132 | Term "and" Term . - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "+" shift, and go to state 143 "-" shift, and go to state 144 @@ -4647,29 +4650,29 @@ State 201 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 132 (Expression) + $default reduce using rule 134 (Expression) State 202 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 130 | Term "or" Term . - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "and" shift, and go to state 139 "xor" shift, and go to state 141 @@ -4686,29 +4689,29 @@ State 202 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 130 (Expression) + $default reduce using rule 132 (Expression) State 203 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 131 | Term "xor" Term . - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "and" shift, and go to state 139 "+" shift, and go to state 143 @@ -4724,29 +4727,29 @@ State 203 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 131 (Expression) + $default reduce using rule 133 (Expression) State 204 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 134 | Term "implies" Term . + 120 Expression: 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 . "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -4764,87 +4767,87 @@ State 204 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 134 (Expression) + $default reduce using rule 136 (Expression) State 205 - 118 Expression: Term . "+" Term - 118 | Term "+" Term . - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "*" shift, and go to state 148 "/" shift, and go to state 149 "%" shift, and go to state 150 "^" shift, and go to state 151 - $default reduce using rule 118 (Expression) + $default reduce using rule 120 (Expression) State 206 - 118 Expression: Term . "+" Term - 119 | Term . "-" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "*" shift, and go to state 148 "/" shift, and go to state 149 "%" shift, and go to state 150 "^" shift, and go to state 151 - $default reduce using rule 119 (Expression) + $default reduce using rule 121 (Expression) State 207 - 118 Expression: Term . "+" Term - 119 | Term . "-" Term - 120 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "+" shift, and go to state 143 "-" shift, and go to state 144 @@ -4857,29 +4860,29 @@ State 207 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 125 (Expression) + $default reduce using rule 127 (Expression) State 208 - 118 Expression: Term . "+" Term - 119 | Term . "-" Term - 120 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "+" shift, and go to state 143 "-" shift, and go to state 144 @@ -4888,29 +4891,29 @@ State 208 "%" shift, and go to state 150 "^" shift, and go to state 151 - $default reduce using rule 126 (Expression) + $default reduce using rule 128 (Expression) State 209 - 118 Expression: Term . "+" Term - 119 | 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 - 127 | Term ">" Term . - 128 | Term . "<=" Term - 129 | Term . ">=" Term - 130 | Term . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "+" shift, and go to state 143 "-" shift, and go to state 144 @@ -4919,131 +4922,131 @@ State 209 "%" shift, and go to state 150 "^" shift, and go to state 151 - $default reduce using rule 127 (Expression) + $default reduce using rule 129 (Expression) State 210 - 118 Expression: Term . "+" Term - 119 | Term . "-" Term - 120 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "^" shift, and go to state 151 - $default reduce using rule 120 (Expression) + $default reduce using rule 122 (Expression) State 211 - 118 Expression: Term . "+" Term - 119 | Term . "-" Term - 120 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "^" shift, and go to state 151 - $default reduce using rule 121 (Expression) + $default reduce using rule 123 (Expression) State 212 - 118 Expression: Term . "+" Term - 119 | Term . "-" Term - 120 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "^" shift, and go to state 151 - $default reduce using rule 122 (Expression) + $default reduce using rule 124 (Expression) State 213 - 118 Expression: Term . "+" Term - 119 | Term . "-" Term - 120 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 - $default reduce using rule 123 (Expression) + $default reduce using rule 125 (Expression) State 214 27 Initializer: Term "->" Term . - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -5068,24 +5071,24 @@ State 214 State 215 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 133 | Term "=>" Term . - 134 | Term . "implies" Term + 120 Expression: 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 "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -5103,29 +5106,29 @@ State 215 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 133 (Expression) + $default reduce using rule 135 (Expression) State 216 - 118 Expression: Term . "+" Term - 119 | Term . "-" Term - 120 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "+" shift, and go to state 143 "-" shift, and go to state 144 @@ -5138,29 +5141,29 @@ State 216 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 124 (Expression) + $default reduce using rule 126 (Expression) State 217 - 118 Expression: Term . "+" Term - 119 | 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 - 128 | Term "<=" Term . - 129 | Term . ">=" Term - 130 | Term . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "+" shift, and go to state 143 "-" shift, and go to state 144 @@ -5169,29 +5172,29 @@ State 217 "%" shift, and go to state 150 "^" shift, and go to state 151 - $default reduce using rule 128 (Expression) + $default reduce using rule 130 (Expression) State 218 - 118 Expression: Term . "+" Term - 119 | 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 - 129 | Term ">=" Term . - 130 | Term . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "+" shift, and go to state 143 "-" shift, and go to state 144 @@ -5200,29 +5203,29 @@ State 218 "%" shift, and go to state 150 "^" shift, and go to state 151 - $default reduce using rule 129 (Expression) + $default reduce using rule 131 (Expression) State 219 28 Initializer: TwoOrMoreArguments "->" Term . - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -5247,21 +5250,21 @@ State 219 State 220 - 73 MaybeParameters: "(" error ")" . + 75 MaybeParameters: "(" error ")" . - $default reduce using rule 73 (MaybeParameters) + $default reduce using rule 75 (MaybeParameters) State 221 - 72 MaybeParameters: "(" Parameters ")" . + 74 MaybeParameters: "(" Parameters ")" . - $default reduce using rule 72 (MaybeParameters) + $default reduce using rule 74 (MaybeParameters) State 222 - 70 Parameters: Parameters "," . AttributedVariable + 72 Parameters: Parameters "," . AttributedVariable "in" shift, and go to state 26 "[" shift, and go to state 115 @@ -5269,38 +5272,38 @@ State 222 Identifier go to state 116 Variable go to state 117 - AttributedVariable go to state 289 + AttributedVariable go to state 290 State 223 33 DerivedDefinition: "derived" Identifier MaybeParameters "->" Type . "=" Term - "=" shift, and go to state 290 + "=" shift, and go to state 291 State 224 - 60 Identifiers: Identifier . + 62 Identifiers: Identifier . - $default reduce using rule 60 (Identifiers) + $default reduce using rule 62 (Identifiers) State 225 34 EnumerationDefinition: "enum" Identifier "=" "{" Identifiers . "}" - 59 Identifiers: Identifiers . "," Identifier + 61 Identifiers: Identifiers . "," Identifier - "}" shift, and go to state 291 - "," shift, and go to state 292 + "}" shift, and go to state 292 + "," shift, and go to state 293 State 226 - 188 SequenceRule: "seq" . Rules "endseq" - 190 | "seq" . error "endseq" + 190 SequenceRule: "seq" . Rules "endseq" + 192 | "seq" . error "endseq" - error shift, and go to state 293 + error shift, and go to state 294 "this" shift, and go to state 25 "seq" shift, and go to state 226 "par" shift, and go to state 227 @@ -5324,8 +5327,8 @@ State 226 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 294 - Rules go to state 295 + Rule go to state 295 + Rules go to state 296 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -5341,10 +5344,10 @@ State 226 State 227 - 184 BlockRule: "par" . Rules "endpar" - 186 | "par" . error "endpar" + 186 BlockRule: "par" . Rules "endpar" + 188 | "par" . error "endpar" - error shift, and go to state 296 + error shift, and go to state 297 "this" shift, and go to state 25 "seq" shift, and go to state 226 "par" shift, and go to state 227 @@ -5368,8 +5371,8 @@ State 227 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 294 - Rules go to state 297 + Rule go to state 295 + Rules go to state 298 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -5385,14 +5388,14 @@ State 227 State 228 - 169 SkipRule: "skip" . + 171 SkipRule: "skip" . - $default reduce using rule 169 (SkipRule) + $default reduce using rule 171 (SkipRule) State 229 - 179 LetRule: "let" . AttributedVariable "=" Term "in" Rule + 181 LetRule: "let" . AttributedVariable "=" Term "in" Rule "in" shift, and go to state 26 "[" shift, and go to state 115 @@ -5400,12 +5403,12 @@ State 229 Identifier go to state 116 Variable go to state 117 - AttributedVariable go to state 298 + AttributedVariable go to state 299 State 230 - 180 ForallRule: "forall" . AttributedVariable "in" Term "do" Rule + 182 ForallRule: "forall" . AttributedVariable "in" Term "do" Rule "in" shift, and go to state 26 "[" shift, and go to state 115 @@ -5413,12 +5416,12 @@ State 230 Identifier go to state 116 Variable go to state 117 - AttributedVariable go to state 299 + AttributedVariable go to state 300 State 231 - 181 ChooseRule: "choose" . AttributedVariable "in" Term "do" Rule + 183 ChooseRule: "choose" . AttributedVariable "in" Term "do" Rule "in" shift, and go to state 26 "[" shift, and go to state 115 @@ -5426,12 +5429,12 @@ State 231 Identifier go to state 116 Variable go to state 117 - AttributedVariable go to state 300 + AttributedVariable go to state 301 State 232 - 182 IterateRule: "iterate" . Rule + 184 IterateRule: "iterate" . Rule "this" shift, and go to state 25 "seq" shift, and go to state 226 @@ -5456,7 +5459,7 @@ State 232 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 301 + Rule go to state 302 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -5472,8 +5475,8 @@ State 232 State 233 - 192 CallRule: "call" . DirectCallExpression - 194 | "call" . IndirectCallExpression + 194 CallRule: "call" . DirectCallExpression + 196 | "call" . IndirectCallExpression "this" shift, and go to state 25 "in" shift, and go to state 26 @@ -5484,14 +5487,14 @@ State 233 Identifier go to state 30 DotSeparatedIdentifiers go to state 31 IdentifierPath go to state 75 - DirectCallExpression go to state 302 - IndirectCallExpression go to state 303 + DirectCallExpression go to state 303 + IndirectCallExpression go to state 304 State 234 - 170 ConditionalRule: "if" . Term "then" Rule - 171 | "if" . Term "then" Rule "else" Rule + 172 ConditionalRule: "if" . Term "then" Rule + 173 | "if" . Term "then" Rule "else" Rule "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -5530,7 +5533,7 @@ State 234 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 304 + Term go to state 305 Expression go to state 86 Range go to state 87 List go to state 88 @@ -5545,8 +5548,8 @@ State 234 State 235 - 172 CaseRule: "case" . Term "of" "{" CaseLabels "}" - 173 | "case" . Term "of" "{" error "}" + 174 CaseRule: "case" . Term "of" "{" CaseLabels "}" + 175 | "case" . Term "of" "{" error "}" "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -5585,7 +5588,7 @@ State 235 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 305 + Term go to state 306 Expression go to state 86 Range go to state 87 List go to state 88 @@ -5600,17 +5603,17 @@ State 235 State 236 - 148 IndirectCallExpression: "(" . "*" Term ")" Arguments + 150 IndirectCallExpression: "(" . "*" Term ")" Arguments "*" shift, and go to state 127 State 237 - 183 BlockRule: "{" . Rules "}" - 185 | "{" . error "}" + 185 BlockRule: "{" . Rules "}" + 187 | "{" . error "}" - error shift, and go to state 306 + error shift, and go to state 307 "this" shift, and go to state 25 "seq" shift, and go to state 226 "par" shift, and go to state 227 @@ -5634,8 +5637,8 @@ State 237 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 294 - Rules go to state 307 + Rule go to state 295 + Rules go to state 308 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -5651,10 +5654,10 @@ State 237 State 238 - 187 SequenceRule: "{|" . Rules "|}" - 189 | "{|" . error "|}" + 189 SequenceRule: "{|" . Rules "|}" + 191 | "{|" . error "|}" - error shift, and go to state 308 + error shift, and go to state 309 "this" shift, and go to state 25 "seq" shift, and go to state 226 "par" shift, and go to state 227 @@ -5678,8 +5681,8 @@ State 238 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 294 - Rules go to state 309 + Rule go to state 295 + Rules go to state 310 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -5695,110 +5698,110 @@ State 238 State 239 - 191 UpdateRule: DirectCallExpression . ":=" Term - 193 CallRule: DirectCallExpression . + 193 UpdateRule: DirectCallExpression . ":=" Term + 195 CallRule: DirectCallExpression . - ":=" shift, and go to state 310 + ":=" shift, and go to state 311 - $default reduce using rule 193 (CallRule) + $default reduce using rule 195 (CallRule) State 240 - 195 CallRule: IndirectCallExpression . + 197 CallRule: IndirectCallExpression . - $default reduce using rule 195 (CallRule) + $default reduce using rule 197 (CallRule) State 241 - 154 RuleDefinition: "rule" Identifier MaybeParameters "=" Rule . + 156 RuleDefinition: "rule" Identifier MaybeParameters "=" Rule . - $default reduce using rule 154 (RuleDefinition) + $default reduce using rule 156 (RuleDefinition) State 242 - 156 Rule: SkipRule . + 158 Rule: SkipRule . - $default reduce using rule 156 (Rule) + $default reduce using rule 158 (Rule) State 243 - 157 Rule: ConditionalRule . + 159 Rule: ConditionalRule . - $default reduce using rule 157 (Rule) + $default reduce using rule 159 (Rule) State 244 - 158 Rule: CaseRule . + 160 Rule: CaseRule . - $default reduce using rule 158 (Rule) + $default reduce using rule 160 (Rule) State 245 - 159 Rule: LetRule . + 161 Rule: LetRule . - $default reduce using rule 159 (Rule) + $default reduce using rule 161 (Rule) State 246 - 160 Rule: ForallRule . + 162 Rule: ForallRule . - $default reduce using rule 160 (Rule) + $default reduce using rule 162 (Rule) State 247 - 161 Rule: ChooseRule . + 163 Rule: ChooseRule . - $default reduce using rule 161 (Rule) + $default reduce using rule 163 (Rule) State 248 - 162 Rule: IterateRule . + 164 Rule: IterateRule . - $default reduce using rule 162 (Rule) + $default reduce using rule 164 (Rule) State 249 - 163 Rule: BlockRule . + 165 Rule: BlockRule . - $default reduce using rule 163 (Rule) + $default reduce using rule 165 (Rule) State 250 - 164 Rule: SequenceRule . + 166 Rule: SequenceRule . - $default reduce using rule 164 (Rule) + $default reduce using rule 166 (Rule) State 251 - 165 Rule: UpdateRule . + 167 Rule: UpdateRule . - $default reduce using rule 165 (Rule) + $default reduce using rule 167 (Rule) State 252 - 166 Rule: CallRule . + 168 Rule: CallRule . - $default reduce using rule 166 (Rule) + $default reduce using rule 168 (Rule) State 253 - 155 RuleDefinition: "rule" Identifier MaybeParameters "->" Type . "=" Rule + 157 RuleDefinition: "rule" Identifier MaybeParameters "->" Type . "=" Rule - "=" shift, and go to state 311 + "=" shift, and go to state 312 State 254 @@ -5813,7 +5816,7 @@ State 254 Identifier go to state 30 DotSeparatedIdentifiers go to state 31 IdentifierPath go to state 168 - Type go to state 312 + Type go to state 313 BasicType go to state 41 ComposedType go to state 42 RelationType go to state 43 @@ -5832,7 +5835,7 @@ State 255 Identifier go to state 30 DotSeparatedIdentifiers go to state 31 IdentifierPath go to state 168 - Type go to state 313 + Type go to state 314 BasicType go to state 41 ComposedType go to state 42 RelationType go to state 43 @@ -5848,7 +5851,7 @@ State 256 Identifier go to state 45 Attribute go to state 46 - Attributes go to state 314 + Attributes go to state 315 BasicAttribute go to state 48 ExpressionAttribute go to state 49 @@ -5874,33 +5877,33 @@ State 259 "function" shift, and go to state 8 "[" shift, and go to state 256 - "}" shift, and go to state 315 + "}" shift, and go to state 316 FunctionDefinition go to state 257 - StructureDefinitionElement go to state 316 + StructureDefinitionElement go to state 317 State 260 33 DerivedDefinition: "derived" . Identifier MaybeParameters "->" Type "=" Term - 55 Declaration: "derived" . Identifier ":" MaybeFunctionParameters "->" Type + 57 Declaration: "derived" . Identifier ":" MaybeFunctionParameters "->" Type "in" shift, and go to state 26 "identifier" shift, and go to state 29 - Identifier go to state 317 + Identifier go to state 318 State 261 - 56 Declaration: "rule" . Identifier ":" MaybeFunctionParameters "->" Type - 154 RuleDefinition: "rule" . Identifier MaybeParameters "=" Rule - 155 | "rule" . Identifier MaybeParameters "->" Type "=" Rule + 58 Declaration: "rule" . Identifier ":" MaybeFunctionParameters "->" Type + 156 RuleDefinition: "rule" . Identifier MaybeParameters "=" Rule + 157 | "rule" . Identifier MaybeParameters "->" Type "=" Rule "in" shift, and go to state 26 "identifier" shift, and go to state 29 - Identifier go to state 318 + Identifier go to state 319 State 262 @@ -5914,7 +5917,7 @@ State 262 Identifier go to state 45 Attribute go to state 46 - Attributes go to state 319 + Attributes go to state 320 BasicAttribute go to state 48 ExpressionAttribute go to state 49 @@ -5941,10 +5944,10 @@ State 265 "derived" shift, and go to state 260 "rule" shift, and go to state 261 "[" shift, and go to state 262 - "}" shift, and go to state 320 + "}" shift, and go to state 321 DerivedDefinition go to state 263 - FeatureDefinitionElement go to state 321 + FeatureDefinitionElement go to state 322 Declaration go to state 266 RuleDefinition go to state 267 @@ -5965,14 +5968,14 @@ State 267 State 268 - 49 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" . "{" ImplementationDefinitionDefinitions "}" + 49 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" . "{" ImplementationDefinitionList "}" - "{" shift, and go to state 322 + "{" shift, and go to state 323 State 269 - 81 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" . Type ">" + 83 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" . Type ">" "this" shift, and go to state 25 "in" shift, and go to state 26 @@ -5982,7 +5985,7 @@ State 269 Identifier go to state 30 DotSeparatedIdentifiers go to state 31 IdentifierPath go to state 168 - Type go to state 323 + Type go to state 324 BasicType go to state 41 ComposedType go to state 42 RelationType go to state 43 @@ -5991,7 +5994,7 @@ State 269 State 270 - 83 Types: Types "," . Type + 85 Types: Types "," . Type "this" shift, and go to state 25 "in" shift, and go to state 26 @@ -6001,7 +6004,7 @@ State 270 Identifier go to state 30 DotSeparatedIdentifiers go to state 31 IdentifierPath go to state 168 - Type go to state 324 + Type go to state 325 BasicType go to state 41 ComposedType go to state 42 RelationType go to state 43 @@ -6010,88 +6013,102 @@ State 270 State 271 - 80 ComposedType: IdentifierPath "<" Types ">" . + 82 ComposedType: IdentifierPath "<" Types ">" . - $default reduce using rule 80 (ComposedType) + $default reduce using rule 82 (ComposedType) State 272 - 51 ImplementationDefinitionDefinition: DerivedDefinition . - - $default reduce using rule 51 (ImplementationDefinitionDefinition) + 51 ImplementationDefinitionElement: "[" . Attributes "]" DerivedDefinition + 53 | "[" . Attributes "]" RuleDefinition + "in" shift, and go to state 26 + "identifier" shift, and go to state 29 -State 273 + Identifier go to state 45 + Attribute go to state 46 + Attributes go to state 326 + BasicAttribute go to state 48 + ExpressionAttribute go to state 49 - 53 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition . ImplementationDefinitionDefinitions - 54 | ImplementationDefinitionDefinition . - "derived" shift, and go to state 5 - "rule" shift, and go to state 7 +State 273 - $default reduce using rule 54 (ImplementationDefinitionDefinitions) + 52 ImplementationDefinitionElement: DerivedDefinition . - DerivedDefinition go to state 272 - ImplementationDefinitionDefinition go to state 273 - ImplementationDefinitionDefinitions go to state 325 - RuleDefinition go to state 275 + $default reduce using rule 52 (ImplementationDefinitionElement) State 274 - 50 ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions . "}" + 56 ImplementationDefinitionList: ImplementationDefinitionElement . - "}" shift, and go to state 326 + $default reduce using rule 56 (ImplementationDefinitionList) State 275 - 52 ImplementationDefinitionDefinition: RuleDefinition . + 50 ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionList . "}" + 55 ImplementationDefinitionList: ImplementationDefinitionList . ImplementationDefinitionElement - $default reduce using rule 52 (ImplementationDefinitionDefinition) + "derived" shift, and go to state 5 + "rule" shift, and go to state 7 + "[" shift, and go to state 272 + "}" shift, and go to state 327 + + DerivedDefinition go to state 273 + ImplementationDefinitionElement go to state 328 + RuleDefinition go to state 276 State 276 - 68 AttributedVariable: "[" Attributes "]" . Variable + 54 ImplementationDefinitionElement: RuleDefinition . + + $default reduce using rule 54 (ImplementationDefinitionElement) + + +State 277 + + 70 AttributedVariable: "[" Attributes "]" . Variable "in" shift, and go to state 26 "identifier" shift, and go to state 29 Identifier go to state 116 - Variable go to state 327 + Variable go to state 329 -State 277 +State 278 - 66 Variable: Identifier ":" Type . + 68 Variable: Identifier ":" Type . - $default reduce using rule 66 (Variable) + $default reduce using rule 68 (Variable) -State 278 +State 279 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 149 LetExpression: "let" AttributedVariable "=" Term . "in" Term - - "in" shift, and go to state 328 + 120 Expression: 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 + 151 LetExpression: "let" AttributedVariable "=" Term . "in" Term + + "in" shift, and go to state 330 "and" shift, and go to state 139 "or" shift, and go to state 140 "xor" shift, and go to state 141 @@ -6111,28 +6128,28 @@ State 278 ">=" shift, and go to state 156 -State 279 +State 280 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 152 UniversalQuantifierExpression: "forall" AttributedVariable "in" Term . "holds" Term - - "holds" shift, and go to state 329 + 120 Expression: 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 UniversalQuantifierExpression: "forall" AttributedVariable "in" Term . "holds" Term + + "holds" shift, and go to state 331 "and" shift, and go to state 139 "or" shift, and go to state 140 "xor" shift, and go to state 141 @@ -6152,28 +6169,28 @@ State 279 ">=" shift, and go to state 156 -State 280 +State 281 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 151 ChooseExpression: "choose" AttributedVariable "in" Term . "do" Term - - "do" shift, and go to state 330 + 120 Expression: 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 + 153 ChooseExpression: "choose" AttributedVariable "in" Term . "do" Term + + "do" shift, and go to state 332 "and" shift, and go to state 139 "or" shift, and go to state 140 "xor" shift, and go to state 141 @@ -6193,28 +6210,28 @@ State 280 ">=" shift, and go to state 156 -State 281 +State 282 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 150 ConditionalExpression: "if" Term "then" Term . "else" Term - - "else" shift, and go to state 331 + 120 Expression: 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 + 152 ConditionalExpression: "if" Term "then" Term . "else" Term + + "else" shift, and go to state 333 "and" shift, and go to state 139 "or" shift, and go to state 140 "xor" shift, and go to state 141 @@ -6234,28 +6251,28 @@ State 281 ">=" shift, and go to state 156 -State 282 +State 283 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 153 ExistentialQuantifierExpression: "exists" AttributedVariable "in" Term . "with" Term - - "with" shift, and go to state 332 + 120 Expression: 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 ExistentialQuantifierExpression: "exists" AttributedVariable "in" Term . "with" Term + + "with" shift, and go to state 334 "and" shift, and go to state 139 "or" shift, and go to state 140 "xor" shift, and go to state 141 @@ -6275,36 +6292,36 @@ State 282 ">=" shift, and go to state 156 -State 283 +State 284 - 148 IndirectCallExpression: "(" "*" Term ")" . Arguments + 150 IndirectCallExpression: "(" "*" Term ")" . Arguments "(" shift, and go to state 137 - Arguments go to state 333 + Arguments go to state 335 -State 284 +State 285 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 140 Terms: Terms "," Term . - 145 TwoOrMoreArguments: "(" Terms "," Term . ")" + 120 Expression: 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 + 142 Terms: Terms "," Term . + 147 TwoOrMoreArguments: "(" Terms "," Term . ")" "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -6313,7 +6330,7 @@ State 284 "+" shift, and go to state 143 "-" shift, and go to state 144 "=" shift, and go to state 145 - ")" shift, and go to state 334 + ")" shift, and go to state 336 "<" shift, and go to state 146 ">" shift, and go to state 147 "*" shift, and go to state 148 @@ -6325,29 +6342,29 @@ State 284 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 140 (Terms) + $default reduce using rule 142 (Terms) -State 285 +State 286 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 136 Range: "[" Term ".." Term . "]" + 120 Expression: 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 + 138 Range: "[" Term ".." Term . "]" "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -6356,7 +6373,7 @@ State 285 "+" shift, and go to state 143 "-" shift, and go to state 144 "=" shift, and go to state 145 - "]" shift, and go to state 335 + "]" shift, and go to state 337 "<" shift, and go to state 146 ">" shift, and go to state 147 "*" shift, and go to state 148 @@ -6369,26 +6386,26 @@ State 285 ">=" shift, and go to state 156 -State 286 +State 287 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 140 Terms: Terms "," Term . + 120 Expression: 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 + 142 Terms: Terms "," Term . "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -6408,31 +6425,31 @@ State 286 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 140 (Terms) + $default reduce using rule 142 (Terms) -State 287 +State 288 - 143 Arguments: "(" error ")" . + 145 Arguments: "(" error ")" . - $default reduce using rule 143 (Arguments) + $default reduce using rule 145 (Arguments) -State 288 +State 289 - 142 Arguments: "(" Terms ")" . + 144 Arguments: "(" Terms ")" . - $default reduce using rule 142 (Arguments) + $default reduce using rule 144 (Arguments) -State 289 +State 290 - 70 Parameters: Parameters "," AttributedVariable . + 72 Parameters: Parameters "," AttributedVariable . - $default reduce using rule 70 (Parameters) + $default reduce using rule 72 (Parameters) -State 290 +State 291 33 DerivedDefinition: "derived" Identifier MaybeParameters "->" Type "=" . Term @@ -6473,7 +6490,7 @@ State 290 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 336 + Term go to state 338 Expression go to state 86 Range go to state 87 List go to state 88 @@ -6486,45 +6503,45 @@ State 290 ExistentialQuantifierExpression go to state 96 -State 291 +State 292 34 EnumerationDefinition: "enum" Identifier "=" "{" Identifiers "}" . $default reduce using rule 34 (EnumerationDefinition) -State 292 +State 293 - 59 Identifiers: Identifiers "," . Identifier + 61 Identifiers: Identifiers "," . Identifier "in" shift, and go to state 26 "identifier" shift, and go to state 29 - Identifier go to state 337 + Identifier go to state 339 -State 293 +State 294 - 190 SequenceRule: "seq" error . "endseq" + 192 SequenceRule: "seq" error . "endseq" - "endseq" shift, and go to state 338 + "endseq" shift, and go to state 340 -State 294 +State 295 - 168 Rules: Rule . + 170 Rules: Rule . - $default reduce using rule 168 (Rules) + $default reduce using rule 170 (Rules) -State 295 +State 296 - 167 Rules: Rules . Rule - 188 SequenceRule: "seq" Rules . "endseq" + 169 Rules: Rules . Rule + 190 SequenceRule: "seq" Rules . "endseq" "this" shift, and go to state 25 "seq" shift, and go to state 226 - "endseq" shift, and go to state 339 + "endseq" shift, and go to state 341 "par" shift, and go to state 227 "skip" shift, and go to state 228 "let" shift, and go to state 229 @@ -6546,7 +6563,7 @@ State 295 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 340 + Rule go to state 342 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -6560,22 +6577,22 @@ State 295 CallRule go to state 252 -State 296 +State 297 - 186 BlockRule: "par" error . "endpar" + 188 BlockRule: "par" error . "endpar" - "endpar" shift, and go to state 341 + "endpar" shift, and go to state 343 -State 297 +State 298 - 167 Rules: Rules . Rule - 184 BlockRule: "par" Rules . "endpar" + 169 Rules: Rules . Rule + 186 BlockRule: "par" Rules . "endpar" "this" shift, and go to state 25 "seq" shift, and go to state 226 "par" shift, and go to state 227 - "endpar" shift, and go to state 342 + "endpar" shift, and go to state 344 "skip" shift, and go to state 228 "let" shift, and go to state 229 "in" shift, and go to state 26 @@ -6596,7 +6613,7 @@ State 297 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 340 + Rule go to state 342 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -6610,71 +6627,71 @@ State 297 CallRule go to state 252 -State 298 - - 179 LetRule: "let" AttributedVariable . "=" Term "in" Rule - - "=" shift, and go to state 343 - - State 299 - 180 ForallRule: "forall" AttributedVariable . "in" Term "do" Rule + 181 LetRule: "let" AttributedVariable . "=" Term "in" Rule - "in" shift, and go to state 344 + "=" shift, and go to state 345 State 300 - 181 ChooseRule: "choose" AttributedVariable . "in" Term "do" Rule + 182 ForallRule: "forall" AttributedVariable . "in" Term "do" Rule - "in" shift, and go to state 345 + "in" shift, and go to state 346 State 301 - 182 IterateRule: "iterate" Rule . + 183 ChooseRule: "choose" AttributedVariable . "in" Term "do" Rule - $default reduce using rule 182 (IterateRule) + "in" shift, and go to state 347 State 302 - 192 CallRule: "call" DirectCallExpression . + 184 IterateRule: "iterate" Rule . - $default reduce using rule 192 (CallRule) + $default reduce using rule 184 (IterateRule) State 303 - 194 CallRule: "call" IndirectCallExpression . + 194 CallRule: "call" DirectCallExpression . $default reduce using rule 194 (CallRule) State 304 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 170 ConditionalRule: "if" Term . "then" Rule - 171 | "if" Term . "then" Rule "else" Rule - - "then" shift, and go to state 346 + 196 CallRule: "call" IndirectCallExpression . + + $default reduce using rule 196 (CallRule) + + +State 305 + + 120 Expression: 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 + 172 ConditionalRule: "if" Term . "then" Rule + 173 | "if" Term . "then" Rule "else" Rule + + "then" shift, and go to state 348 "and" shift, and go to state 139 "or" shift, and go to state 140 "xor" shift, and go to state 141 @@ -6694,29 +6711,29 @@ State 304 ">=" shift, and go to state 156 -State 305 +State 306 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 172 CaseRule: "case" Term . "of" "{" CaseLabels "}" - 173 | "case" Term . "of" "{" error "}" - - "of" shift, and go to state 347 + 120 Expression: 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 + 174 CaseRule: "case" Term . "of" "{" CaseLabels "}" + 175 | "case" Term . "of" "{" error "}" + + "of" shift, and go to state 349 "and" shift, and go to state 139 "or" shift, and go to state 140 "xor" shift, and go to state 141 @@ -6736,17 +6753,17 @@ State 305 ">=" shift, and go to state 156 -State 306 +State 307 - 185 BlockRule: "{" error . "}" + 187 BlockRule: "{" error . "}" - "}" shift, and go to state 348 + "}" shift, and go to state 350 -State 307 +State 308 - 167 Rules: Rules . Rule - 183 BlockRule: "{" Rules . "}" + 169 Rules: Rules . Rule + 185 BlockRule: "{" Rules . "}" "this" shift, and go to state 25 "seq" shift, and go to state 226 @@ -6762,7 +6779,7 @@ State 307 "case" shift, and go to state 235 "(" shift, and go to state 236 "{" shift, and go to state 237 - "}" shift, and go to state 349 + "}" shift, and go to state 351 "." shift, and go to state 28 "{|" shift, and go to state 238 "identifier" shift, and go to state 29 @@ -6772,7 +6789,7 @@ State 307 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 340 + Rule go to state 342 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -6786,17 +6803,17 @@ State 307 CallRule go to state 252 -State 308 +State 309 - 189 SequenceRule: "{|" error . "|}" + 191 SequenceRule: "{|" error . "|}" - "|}" shift, and go to state 350 + "|}" shift, and go to state 352 -State 309 +State 310 - 167 Rules: Rules . Rule - 187 SequenceRule: "{|" Rules . "|}" + 169 Rules: Rules . Rule + 189 SequenceRule: "{|" Rules . "|}" "this" shift, and go to state 25 "seq" shift, and go to state 226 @@ -6814,7 +6831,7 @@ State 309 "{" shift, and go to state 237 "." shift, and go to state 28 "{|" shift, and go to state 238 - "|}" shift, and go to state 351 + "|}" shift, and go to state 353 "identifier" shift, and go to state 29 Identifier go to state 30 @@ -6822,7 +6839,7 @@ State 309 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 340 + Rule go to state 342 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -6836,9 +6853,9 @@ State 309 CallRule go to state 252 -State 310 +State 311 - 191 UpdateRule: DirectCallExpression ":=" . Term + 193 UpdateRule: DirectCallExpression ":=" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -6877,7 +6894,7 @@ State 310 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 352 + Term go to state 354 Expression go to state 86 Range go to state 87 List go to state 88 @@ -6890,9 +6907,9 @@ State 310 ExistentialQuantifierExpression go to state 96 -State 311 +State 312 - 155 RuleDefinition: "rule" Identifier MaybeParameters "->" Type "=" . Rule + 157 RuleDefinition: "rule" Identifier MaybeParameters "->" Type "=" . Rule "this" shift, and go to state 25 "seq" shift, and go to state 226 @@ -6917,7 +6934,7 @@ State 311 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 353 + Rule go to state 355 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -6931,150 +6948,161 @@ State 311 CallRule go to state 252 -State 312 +State 313 20 FunctionParameters: FunctionParameters "*" Type . $default reduce using rule 20 (FunctionParameters) -State 313 +State 314 15 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type . MaybeDefined MaybeInitially - "defined" shift, and go to state 354 + "defined" shift, and go to state 356 $default reduce using rule 19 (MaybeDefined) - MaybeDefined go to state 355 + MaybeDefined go to state 357 -State 314 +State 315 36 StructureDefinitionElement: "[" Attributes . "]" FunctionDefinition - 198 Attributes: Attributes . "," Attribute + 200 Attributes: Attributes . "," Attribute - "]" shift, and go to state 356 + "]" shift, and go to state 358 "," shift, and go to state 113 -State 315 +State 316 35 StructureDefinition: "structure" Identifier "=" "{" StructureDefinitionList "}" . $default reduce using rule 35 (StructureDefinition) -State 316 +State 317 38 StructureDefinitionList: StructureDefinitionList StructureDefinitionElement . $default reduce using rule 38 (StructureDefinitionList) -State 317 +State 318 33 DerivedDefinition: "derived" Identifier . MaybeParameters "->" Type "=" Term - 55 Declaration: "derived" Identifier . ":" MaybeFunctionParameters "->" Type + 57 Declaration: "derived" Identifier . ":" MaybeFunctionParameters "->" Type "(" shift, and go to state 99 - ":" shift, and go to state 357 + ":" shift, and go to state 359 - $default reduce using rule 74 (MaybeParameters) + $default reduce using rule 76 (MaybeParameters) MaybeParameters go to state 100 -State 318 +State 319 - 56 Declaration: "rule" Identifier . ":" MaybeFunctionParameters "->" Type - 154 RuleDefinition: "rule" Identifier . MaybeParameters "=" Rule - 155 | "rule" Identifier . MaybeParameters "->" Type "=" Rule + 58 Declaration: "rule" Identifier . ":" MaybeFunctionParameters "->" Type + 156 RuleDefinition: "rule" Identifier . MaybeParameters "=" Rule + 157 | "rule" Identifier . MaybeParameters "->" Type "=" Rule "(" shift, and go to state 99 - ":" shift, and go to state 358 + ":" shift, and go to state 360 - $default reduce using rule 74 (MaybeParameters) + $default reduce using rule 76 (MaybeParameters) MaybeParameters go to state 102 -State 319 +State 320 41 FeatureDefinitionElement: "[" Attributes . "]" Declaration 43 | "[" Attributes . "]" DerivedDefinition 45 | "[" Attributes . "]" RuleDefinition - 198 Attributes: Attributes . "," Attribute + 200 Attributes: Attributes . "," Attribute - "]" shift, and go to state 359 + "]" shift, and go to state 361 "," shift, and go to state 113 -State 320 +State 321 40 FeatureDefinition: "feature" Identifier "=" "{" FeatureDefinitionList "}" . $default reduce using rule 40 (FeatureDefinition) -State 321 +State 322 47 FeatureDefinitionList: FeatureDefinitionList FeatureDefinitionElement . $default reduce using rule 47 (FeatureDefinitionList) -State 322 +State 323 - 49 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" . ImplementationDefinitionDefinitions "}" + 49 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" . ImplementationDefinitionList "}" "derived" shift, and go to state 5 "rule" shift, and go to state 7 + "[" shift, and go to state 272 - DerivedDefinition go to state 272 - ImplementationDefinitionDefinition go to state 273 - ImplementationDefinitionDefinitions go to state 360 - RuleDefinition go to state 275 - - -State 323 - - 81 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type . ">" - - ">" shift, and go to state 361 + DerivedDefinition go to state 273 + ImplementationDefinitionElement go to state 274 + ImplementationDefinitionList go to state 362 + RuleDefinition go to state 276 State 324 - 83 Types: Types "," Type . + 83 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type . ">" - $default reduce using rule 83 (Types) + ">" shift, and go to state 363 State 325 - 53 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition ImplementationDefinitionDefinitions . + 85 Types: Types "," Type . - $default reduce using rule 53 (ImplementationDefinitionDefinitions) + $default reduce using rule 85 (Types) State 326 - 50 ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" . + 51 ImplementationDefinitionElement: "[" Attributes . "]" DerivedDefinition + 53 | "[" Attributes . "]" RuleDefinition + 200 Attributes: Attributes . "," Attribute - $default reduce using rule 50 (ImplementationDefinition) + "]" shift, and go to state 364 + "," shift, and go to state 113 State 327 - 68 AttributedVariable: "[" Attributes "]" Variable . + 50 ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionList "}" . - $default reduce using rule 68 (AttributedVariable) + $default reduce using rule 50 (ImplementationDefinition) State 328 - 149 LetExpression: "let" AttributedVariable "=" Term "in" . Term + 55 ImplementationDefinitionList: ImplementationDefinitionList ImplementationDefinitionElement . + + $default reduce using rule 55 (ImplementationDefinitionList) + + +State 329 + + 70 AttributedVariable: "[" Attributes "]" Variable . + + $default reduce using rule 70 (AttributedVariable) + + +State 330 + + 151 LetExpression: "let" AttributedVariable "=" Term "in" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -7113,7 +7141,7 @@ State 328 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 362 + Term go to state 365 Expression go to state 86 Range go to state 87 List go to state 88 @@ -7126,9 +7154,9 @@ State 328 ExistentialQuantifierExpression go to state 96 -State 329 +State 331 - 152 UniversalQuantifierExpression: "forall" AttributedVariable "in" Term "holds" . Term + 154 UniversalQuantifierExpression: "forall" AttributedVariable "in" Term "holds" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -7167,7 +7195,7 @@ State 329 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 363 + Term go to state 366 Expression go to state 86 Range go to state 87 List go to state 88 @@ -7180,9 +7208,9 @@ State 329 ExistentialQuantifierExpression go to state 96 -State 330 +State 332 - 151 ChooseExpression: "choose" AttributedVariable "in" Term "do" . Term + 153 ChooseExpression: "choose" AttributedVariable "in" Term "do" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -7221,7 +7249,7 @@ State 330 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 364 + Term go to state 367 Expression go to state 86 Range go to state 87 List go to state 88 @@ -7234,9 +7262,9 @@ State 330 ExistentialQuantifierExpression go to state 96 -State 331 +State 333 - 150 ConditionalExpression: "if" Term "then" Term "else" . Term + 152 ConditionalExpression: "if" Term "then" Term "else" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -7275,7 +7303,7 @@ State 331 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 365 + Term go to state 368 Expression go to state 86 Range go to state 87 List go to state 88 @@ -7288,9 +7316,9 @@ State 331 ExistentialQuantifierExpression go to state 96 -State 332 +State 334 - 153 ExistentialQuantifierExpression: "exists" AttributedVariable "in" Term "with" . Term + 155 ExistentialQuantifierExpression: "exists" AttributedVariable "in" Term "with" . Term "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -7329,7 +7357,7 @@ State 332 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 366 + Term go to state 369 Expression go to state 86 Range go to state 87 List go to state 88 @@ -7342,47 +7370,47 @@ State 332 ExistentialQuantifierExpression go to state 96 -State 333 +State 335 - 148 IndirectCallExpression: "(" "*" Term ")" Arguments . + 150 IndirectCallExpression: "(" "*" Term ")" Arguments . - $default reduce using rule 148 (IndirectCallExpression) + $default reduce using rule 150 (IndirectCallExpression) -State 334 +State 336 - 145 TwoOrMoreArguments: "(" Terms "," Term ")" . + 147 TwoOrMoreArguments: "(" Terms "," Term ")" . - $default reduce using rule 145 (TwoOrMoreArguments) + $default reduce using rule 147 (TwoOrMoreArguments) -State 335 +State 337 - 136 Range: "[" Term ".." Term "]" . + 138 Range: "[" Term ".." Term "]" . - $default reduce using rule 136 (Range) + $default reduce using rule 138 (Range) -State 336 +State 338 33 DerivedDefinition: "derived" Identifier MaybeParameters "->" Type "=" Term . - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -7405,51 +7433,51 @@ State 336 $default reduce using rule 33 (DerivedDefinition) -State 337 +State 339 - 59 Identifiers: Identifiers "," Identifier . + 61 Identifiers: Identifiers "," Identifier . - $default reduce using rule 59 (Identifiers) + $default reduce using rule 61 (Identifiers) -State 338 +State 340 - 190 SequenceRule: "seq" error "endseq" . + 192 SequenceRule: "seq" error "endseq" . - $default reduce using rule 190 (SequenceRule) + $default reduce using rule 192 (SequenceRule) -State 339 +State 341 - 188 SequenceRule: "seq" Rules "endseq" . + 190 SequenceRule: "seq" Rules "endseq" . - $default reduce using rule 188 (SequenceRule) + $default reduce using rule 190 (SequenceRule) -State 340 +State 342 - 167 Rules: Rules Rule . + 169 Rules: Rules Rule . - $default reduce using rule 167 (Rules) + $default reduce using rule 169 (Rules) -State 341 +State 343 - 186 BlockRule: "par" error "endpar" . + 188 BlockRule: "par" error "endpar" . - $default reduce using rule 186 (BlockRule) + $default reduce using rule 188 (BlockRule) -State 342 +State 344 - 184 BlockRule: "par" Rules "endpar" . + 186 BlockRule: "par" Rules "endpar" . - $default reduce using rule 184 (BlockRule) + $default reduce using rule 186 (BlockRule) -State 343 +State 345 - 179 LetRule: "let" AttributedVariable "=" . Term "in" Rule + 181 LetRule: "let" AttributedVariable "=" . Term "in" Rule "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -7488,7 +7516,7 @@ State 343 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 367 + Term go to state 370 Expression go to state 86 Range go to state 87 List go to state 88 @@ -7501,9 +7529,9 @@ State 343 ExistentialQuantifierExpression go to state 96 -State 344 +State 346 - 180 ForallRule: "forall" AttributedVariable "in" . Term "do" Rule + 182 ForallRule: "forall" AttributedVariable "in" . Term "do" Rule "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -7542,7 +7570,7 @@ State 344 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 368 + Term go to state 371 Expression go to state 86 Range go to state 87 List go to state 88 @@ -7555,9 +7583,9 @@ State 344 ExistentialQuantifierExpression go to state 96 -State 345 +State 347 - 181 ChooseRule: "choose" AttributedVariable "in" . Term "do" Rule + 183 ChooseRule: "choose" AttributedVariable "in" . Term "do" Rule "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -7596,7 +7624,7 @@ State 345 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 369 + Term go to state 372 Expression go to state 86 Range go to state 87 List go to state 88 @@ -7609,10 +7637,10 @@ State 345 ExistentialQuantifierExpression go to state 96 -State 346 +State 348 - 170 ConditionalRule: "if" Term "then" . Rule - 171 | "if" Term "then" . Rule "else" Rule + 172 ConditionalRule: "if" Term "then" . Rule + 173 | "if" Term "then" . Rule "else" Rule "this" shift, and go to state 25 "seq" shift, and go to state 226 @@ -7637,7 +7665,7 @@ State 346 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 370 + Rule go to state 373 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -7651,62 +7679,62 @@ State 346 CallRule go to state 252 -State 347 +State 349 - 172 CaseRule: "case" Term "of" . "{" CaseLabels "}" - 173 | "case" Term "of" . "{" error "}" + 174 CaseRule: "case" Term "of" . "{" CaseLabels "}" + 175 | "case" Term "of" . "{" error "}" - "{" shift, and go to state 371 + "{" shift, and go to state 374 -State 348 +State 350 - 185 BlockRule: "{" error "}" . + 187 BlockRule: "{" error "}" . - $default reduce using rule 185 (BlockRule) + $default reduce using rule 187 (BlockRule) -State 349 +State 351 - 183 BlockRule: "{" Rules "}" . + 185 BlockRule: "{" Rules "}" . - $default reduce using rule 183 (BlockRule) + $default reduce using rule 185 (BlockRule) -State 350 +State 352 - 189 SequenceRule: "{|" error "|}" . + 191 SequenceRule: "{|" error "|}" . - $default reduce using rule 189 (SequenceRule) + $default reduce using rule 191 (SequenceRule) -State 351 +State 353 - 187 SequenceRule: "{|" Rules "|}" . + 189 SequenceRule: "{|" Rules "|}" . - $default reduce using rule 187 (SequenceRule) + $default reduce using rule 189 (SequenceRule) -State 352 +State 354 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 191 UpdateRule: DirectCallExpression ":=" Term . + 120 Expression: 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 + 193 UpdateRule: DirectCallExpression ":=" Term . "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -7726,46 +7754,46 @@ State 352 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 191 (UpdateRule) + $default reduce using rule 193 (UpdateRule) -State 353 +State 355 - 155 RuleDefinition: "rule" Identifier MaybeParameters "->" Type "=" Rule . + 157 RuleDefinition: "rule" Identifier MaybeParameters "->" Type "=" Rule . - $default reduce using rule 155 (RuleDefinition) + $default reduce using rule 157 (RuleDefinition) -State 354 +State 356 18 MaybeDefined: "defined" . "{" Term "}" - "{" shift, and go to state 372 + "{" shift, and go to state 375 -State 355 +State 357 15 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined . MaybeInitially - "initially" shift, and go to state 373 + "initially" shift, and go to state 376 $default reduce using rule 17 (MaybeInitially) - MaybeInitially go to state 374 + MaybeInitially go to state 377 -State 356 +State 358 36 StructureDefinitionElement: "[" Attributes "]" . FunctionDefinition "function" shift, and go to state 8 - FunctionDefinition go to state 375 + FunctionDefinition go to state 378 -State 357 +State 359 - 55 Declaration: "derived" Identifier ":" . MaybeFunctionParameters "->" Type + 57 Declaration: "derived" Identifier ":" . MaybeFunctionParameters "->" Type "this" shift, and go to state 25 "in" shift, and go to state 26 @@ -7775,7 +7803,7 @@ State 357 $default reduce using rule 23 (MaybeFunctionParameters) FunctionParameters go to state 166 - MaybeFunctionParameters go to state 376 + MaybeFunctionParameters go to state 379 Identifier go to state 30 DotSeparatedIdentifiers go to state 31 IdentifierPath go to state 168 @@ -7786,9 +7814,9 @@ State 357 FixedSizedType go to state 44 -State 358 +State 360 - 56 Declaration: "rule" Identifier ":" . MaybeFunctionParameters "->" Type + 58 Declaration: "rule" Identifier ":" . MaybeFunctionParameters "->" Type "this" shift, and go to state 25 "in" shift, and go to state 26 @@ -7798,7 +7826,7 @@ State 358 $default reduce using rule 23 (MaybeFunctionParameters) FunctionParameters go to state 166 - MaybeFunctionParameters go to state 377 + MaybeFunctionParameters go to state 380 Identifier go to state 30 DotSeparatedIdentifiers go to state 31 IdentifierPath go to state 168 @@ -7809,7 +7837,7 @@ State 358 FixedSizedType go to state 44 -State 359 +State 361 41 FeatureDefinitionElement: "[" Attributes "]" . Declaration 43 | "[" Attributes "]" . DerivedDefinition @@ -7818,45 +7846,65 @@ State 359 "derived" shift, and go to state 260 "rule" shift, and go to state 261 - DerivedDefinition go to state 378 - Declaration go to state 379 - RuleDefinition go to state 380 + DerivedDefinition go to state 381 + Declaration go to state 382 + RuleDefinition go to state 383 -State 360 +State 362 - 49 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions . "}" + 49 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionList . "}" + 55 ImplementationDefinitionList: ImplementationDefinitionList . ImplementationDefinitionElement - "}" shift, and go to state 381 + "derived" shift, and go to state 5 + "rule" shift, and go to state 7 + "[" shift, and go to state 272 + "}" shift, and go to state 384 + DerivedDefinition go to state 273 + ImplementationDefinitionElement go to state 328 + RuleDefinition go to state 276 -State 361 - 81 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" . +State 363 - $default reduce using rule 81 (RelationType) + 83 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" . + $default reduce using rule 83 (RelationType) -State 362 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 149 LetExpression: "let" AttributedVariable "=" Term "in" Term . +State 364 + + 51 ImplementationDefinitionElement: "[" Attributes "]" . DerivedDefinition + 53 | "[" Attributes "]" . RuleDefinition + + "derived" shift, and go to state 5 + "rule" shift, and go to state 7 + + DerivedDefinition go to state 385 + RuleDefinition go to state 386 + + +State 365 + + 120 Expression: 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 + 151 LetExpression: "let" AttributedVariable "=" Term "in" Term . "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -7876,53 +7924,53 @@ State 362 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 149 (LetExpression) + $default reduce using rule 151 (LetExpression) -State 363 +State 366 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 152 UniversalQuantifierExpression: "forall" AttributedVariable "in" Term "holds" Term . - - $default reduce using rule 152 (UniversalQuantifierExpression) + 120 Expression: 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 UniversalQuantifierExpression: "forall" AttributedVariable "in" Term "holds" Term . + + $default reduce using rule 154 (UniversalQuantifierExpression) -State 364 +State 367 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 151 ChooseExpression: "choose" AttributedVariable "in" Term "do" Term . + 120 Expression: 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 + 153 ChooseExpression: "choose" AttributedVariable "in" Term "do" Term . "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -7942,29 +7990,29 @@ State 364 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 151 (ChooseExpression) + $default reduce using rule 153 (ChooseExpression) -State 365 +State 368 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 150 ConditionalExpression: "if" Term "then" Term "else" Term . + 120 Expression: 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 + 152 ConditionalExpression: "if" Term "then" Term "else" Term . "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -7984,55 +8032,55 @@ State 365 "<=" shift, and go to state 155 ">=" shift, and go to state 156 - $default reduce using rule 150 (ConditionalExpression) + $default reduce using rule 152 (ConditionalExpression) -State 366 +State 369 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 153 ExistentialQuantifierExpression: "exists" AttributedVariable "in" Term "with" Term . - - $default reduce using rule 153 (ExistentialQuantifierExpression) + 120 Expression: 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 ExistentialQuantifierExpression: "exists" AttributedVariable "in" Term "with" Term . + + $default reduce using rule 155 (ExistentialQuantifierExpression) -State 367 +State 370 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 179 LetRule: "let" AttributedVariable "=" Term . "in" Rule - - "in" shift, and go to state 382 + 120 Expression: 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 + 181 LetRule: "let" AttributedVariable "=" Term . "in" Rule + + "in" shift, and go to state 387 "and" shift, and go to state 139 "or" shift, and go to state 140 "xor" shift, and go to state 141 @@ -8052,28 +8100,28 @@ State 367 ">=" shift, and go to state 156 -State 368 +State 371 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 180 ForallRule: "forall" AttributedVariable "in" Term . "do" Rule - - "do" shift, and go to state 383 + 120 Expression: 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 + 182 ForallRule: "forall" AttributedVariable "in" Term . "do" Rule + + "do" shift, and go to state 388 "and" shift, and go to state 139 "or" shift, and go to state 140 "xor" shift, and go to state 141 @@ -8093,28 +8141,28 @@ State 368 ">=" shift, and go to state 156 -State 369 +State 372 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 181 ChooseRule: "choose" AttributedVariable "in" Term . "do" Rule - - "do" shift, and go to state 384 + 120 Expression: 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 + 183 ChooseRule: "choose" AttributedVariable "in" Term . "do" Rule + + "do" shift, and go to state 389 "and" shift, and go to state 139 "or" shift, and go to state 140 "xor" shift, and go to state 141 @@ -8134,29 +8182,29 @@ State 369 ">=" shift, and go to state 156 -State 370 +State 373 - 170 ConditionalRule: "if" Term "then" Rule . - 171 | "if" Term "then" Rule . "else" Rule + 172 ConditionalRule: "if" Term "then" Rule . + 173 | "if" Term "then" Rule . "else" Rule - "else" shift, and go to state 385 + "else" shift, and go to state 390 - $default reduce using rule 170 (ConditionalRule) + $default reduce using rule 172 (ConditionalRule) -State 371 +State 374 - 172 CaseRule: "case" Term "of" "{" . CaseLabels "}" - 173 | "case" Term "of" "{" . error "}" + 174 CaseRule: "case" Term "of" "{" . CaseLabels "}" + 175 | "case" Term "of" "{" . error "}" - error shift, and go to state 386 + error shift, and go to state 391 "this" shift, and go to state 25 "let" shift, and go to state 52 "in" shift, and go to state 26 "forall" shift, and go to state 53 "choose" shift, and go to state 54 "if" shift, and go to state 55 - "default" shift, and go to state 387 + "default" shift, and go to state 392 "exists" shift, and go to state 56 "undef" shift, and go to state 57 "false" shift, and go to state 58 @@ -8166,7 +8214,7 @@ State 371 "-" shift, and go to state 62 "(" shift, and go to state 110 "[" shift, and go to state 64 - "_" shift, and go to state 388 + "_" shift, and go to state 393 "@" shift, and go to state 65 "." shift, and go to state 28 "binary" shift, and go to state 66 @@ -8189,7 +8237,7 @@ State 371 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 389 + Term go to state 394 Expression go to state 86 Range go to state 87 List go to state 88 @@ -8200,11 +8248,11 @@ State 371 ChooseExpression go to state 94 UniversalQuantifierExpression go to state 95 ExistentialQuantifierExpression go to state 96 - CaseLabel go to state 390 - CaseLabels go to state 391 + CaseLabel go to state 395 + CaseLabels go to state 396 -State 372 +State 375 18 MaybeDefined: "defined" "{" . Term "}" @@ -8245,7 +8293,7 @@ State 372 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 392 + Term go to state 397 Expression go to state 86 Range go to state 87 List go to state 88 @@ -8258,72 +8306,86 @@ State 372 ExistentialQuantifierExpression go to state 96 -State 373 +State 376 16 MaybeInitially: "initially" . "{" MaybeInitializers "}" - "{" shift, and go to state 393 + "{" shift, and go to state 398 -State 374 +State 377 15 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially . $default reduce using rule 15 (FunctionDefinition) -State 375 +State 378 36 StructureDefinitionElement: "[" Attributes "]" FunctionDefinition . $default reduce using rule 36 (StructureDefinitionElement) -State 376 +State 379 - 55 Declaration: "derived" Identifier ":" MaybeFunctionParameters . "->" Type + 57 Declaration: "derived" Identifier ":" MaybeFunctionParameters . "->" Type - "->" shift, and go to state 394 + "->" shift, and go to state 399 -State 377 +State 380 - 56 Declaration: "rule" Identifier ":" MaybeFunctionParameters . "->" Type + 58 Declaration: "rule" Identifier ":" MaybeFunctionParameters . "->" Type - "->" shift, and go to state 395 + "->" shift, and go to state 400 -State 378 +State 381 43 FeatureDefinitionElement: "[" Attributes "]" DerivedDefinition . $default reduce using rule 43 (FeatureDefinitionElement) -State 379 +State 382 41 FeatureDefinitionElement: "[" Attributes "]" Declaration . $default reduce using rule 41 (FeatureDefinitionElement) -State 380 +State 383 45 FeatureDefinitionElement: "[" Attributes "]" RuleDefinition . $default reduce using rule 45 (FeatureDefinitionElement) -State 381 +State 384 - 49 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" . + 49 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionList "}" . $default reduce using rule 49 (ImplementationDefinition) -State 382 +State 385 - 179 LetRule: "let" AttributedVariable "=" Term "in" . Rule + 51 ImplementationDefinitionElement: "[" Attributes "]" DerivedDefinition . + + $default reduce using rule 51 (ImplementationDefinitionElement) + + +State 386 + + 53 ImplementationDefinitionElement: "[" Attributes "]" RuleDefinition . + + $default reduce using rule 53 (ImplementationDefinitionElement) + + +State 387 + + 181 LetRule: "let" AttributedVariable "=" Term "in" . Rule "this" shift, and go to state 25 "seq" shift, and go to state 226 @@ -8348,7 +8410,7 @@ State 382 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 396 + Rule go to state 401 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -8362,9 +8424,9 @@ State 382 CallRule go to state 252 -State 383 +State 388 - 180 ForallRule: "forall" AttributedVariable "in" Term "do" . Rule + 182 ForallRule: "forall" AttributedVariable "in" Term "do" . Rule "this" shift, and go to state 25 "seq" shift, and go to state 226 @@ -8389,7 +8451,7 @@ State 383 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 397 + Rule go to state 402 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -8403,9 +8465,9 @@ State 383 CallRule go to state 252 -State 384 +State 389 - 181 ChooseRule: "choose" AttributedVariable "in" Term "do" . Rule + 183 ChooseRule: "choose" AttributedVariable "in" Term "do" . Rule "this" shift, and go to state 25 "seq" shift, and go to state 226 @@ -8430,7 +8492,7 @@ State 384 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 398 + Rule go to state 403 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -8444,9 +8506,9 @@ State 384 CallRule go to state 252 -State 385 +State 390 - 171 ConditionalRule: "if" Term "then" Rule "else" . Rule + 173 ConditionalRule: "if" Term "then" Rule "else" . Rule "this" shift, and go to state 25 "seq" shift, and go to state 226 @@ -8471,7 +8533,7 @@ State 385 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 399 + Rule go to state 404 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -8485,47 +8547,47 @@ State 385 CallRule go to state 252 -State 386 +State 391 - 173 CaseRule: "case" Term "of" "{" error . "}" + 175 CaseRule: "case" Term "of" "{" error . "}" - "}" shift, and go to state 400 + "}" shift, and go to state 405 -State 387 +State 392 - 174 CaseLabel: "default" . ":" Rule + 176 CaseLabel: "default" . ":" Rule - ":" shift, and go to state 401 + ":" shift, and go to state 406 -State 388 +State 393 - 175 CaseLabel: "_" . ":" Rule + 177 CaseLabel: "_" . ":" Rule - ":" shift, and go to state 402 + ":" shift, and go to state 407 -State 389 +State 394 - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term - 176 CaseLabel: Term . ":" Rule + 120 Expression: 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 + 178 CaseLabel: Term . ":" Rule "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -8534,7 +8596,7 @@ State 389 "+" shift, and go to state 143 "-" shift, and go to state 144 "=" shift, and go to state 145 - ":" shift, and go to state 403 + ":" shift, and go to state 408 "<" shift, and go to state 146 ">" shift, and go to state 147 "*" shift, and go to state 148 @@ -8547,10 +8609,10 @@ State 389 ">=" shift, and go to state 156 -State 390 +State 395 - 177 CaseLabels: CaseLabel . CaseLabels - 178 | CaseLabel . + 179 CaseLabels: CaseLabel . CaseLabels + 180 | CaseLabel . "this" shift, and go to state 25 "let" shift, and go to state 52 @@ -8558,7 +8620,7 @@ State 390 "forall" shift, and go to state 53 "choose" shift, and go to state 54 "if" shift, and go to state 55 - "default" shift, and go to state 387 + "default" shift, and go to state 392 "exists" shift, and go to state 56 "undef" shift, and go to state 57 "false" shift, and go to state 58 @@ -8568,7 +8630,7 @@ State 390 "-" shift, and go to state 62 "(" shift, and go to state 110 "[" shift, and go to state 64 - "_" shift, and go to state 388 + "_" shift, and go to state 393 "@" shift, and go to state 65 "." shift, and go to state 28 "binary" shift, and go to state 66 @@ -8579,7 +8641,7 @@ State 390 "string" shift, and go to state 71 "identifier" shift, and go to state 29 - $default reduce using rule 178 (CaseLabels) + $default reduce using rule 180 (CaseLabels) Identifier go to state 30 DotSeparatedIdentifiers go to state 31 @@ -8593,7 +8655,7 @@ State 390 FloatingNumber go to state 82 RationalNumber go to state 83 Reference go to state 84 - Term go to state 389 + Term go to state 394 Expression go to state 86 Range go to state 87 List go to state 88 @@ -8604,37 +8666,37 @@ State 390 ChooseExpression go to state 94 UniversalQuantifierExpression go to state 95 ExistentialQuantifierExpression go to state 96 - CaseLabel go to state 390 - CaseLabels go to state 404 + CaseLabel go to state 395 + CaseLabels go to state 409 -State 391 +State 396 - 172 CaseRule: "case" Term "of" "{" CaseLabels . "}" + 174 CaseRule: "case" Term "of" "{" CaseLabels . "}" - "}" shift, and go to state 405 + "}" shift, and go to state 410 -State 392 +State 397 18 MaybeDefined: "defined" "{" Term . "}" - 118 Expression: Term . "+" Term - 119 | 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 . "or" Term - 131 | Term . "xor" Term - 132 | Term . "and" Term - 133 | Term . "=>" Term - 134 | Term . "implies" Term + 120 Expression: 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 "and" shift, and go to state 139 "or" shift, and go to state 140 @@ -8643,7 +8705,7 @@ State 392 "+" shift, and go to state 143 "-" shift, and go to state 144 "=" shift, and go to state 145 - "}" shift, and go to state 406 + "}" shift, and go to state 411 "<" shift, and go to state 146 ">" shift, and go to state 147 "*" shift, and go to state 148 @@ -8656,7 +8718,7 @@ State 392 ">=" shift, and go to state 156 -State 393 +State 398 16 MaybeInitially: "initially" "{" . MaybeInitializers "}" @@ -8689,7 +8751,7 @@ State 393 Initializer go to state 72 Initializers go to state 73 - MaybeInitializers go to state 407 + MaybeInitializers go to state 412 Identifier go to state 30 DotSeparatedIdentifiers go to state 31 IdentifierPath go to state 75 @@ -8716,9 +8778,9 @@ State 393 ExistentialQuantifierExpression go to state 96 -State 394 +State 399 - 55 Declaration: "derived" Identifier ":" MaybeFunctionParameters "->" . Type + 57 Declaration: "derived" Identifier ":" MaybeFunctionParameters "->" . Type "this" shift, and go to state 25 "in" shift, and go to state 26 @@ -8728,16 +8790,16 @@ State 394 Identifier go to state 30 DotSeparatedIdentifiers go to state 31 IdentifierPath go to state 168 - Type go to state 408 + Type go to state 413 BasicType go to state 41 ComposedType go to state 42 RelationType go to state 43 FixedSizedType go to state 44 -State 395 +State 400 - 56 Declaration: "rule" Identifier ":" MaybeFunctionParameters "->" . Type + 58 Declaration: "rule" Identifier ":" MaybeFunctionParameters "->" . Type "this" shift, and go to state 25 "in" shift, and go to state 26 @@ -8747,51 +8809,51 @@ State 395 Identifier go to state 30 DotSeparatedIdentifiers go to state 31 IdentifierPath go to state 168 - Type go to state 409 + Type go to state 414 BasicType go to state 41 ComposedType go to state 42 RelationType go to state 43 FixedSizedType go to state 44 -State 396 +State 401 - 179 LetRule: "let" AttributedVariable "=" Term "in" Rule . + 181 LetRule: "let" AttributedVariable "=" Term "in" Rule . - $default reduce using rule 179 (LetRule) + $default reduce using rule 181 (LetRule) -State 397 +State 402 - 180 ForallRule: "forall" AttributedVariable "in" Term "do" Rule . + 182 ForallRule: "forall" AttributedVariable "in" Term "do" Rule . - $default reduce using rule 180 (ForallRule) + $default reduce using rule 182 (ForallRule) -State 398 +State 403 - 181 ChooseRule: "choose" AttributedVariable "in" Term "do" Rule . + 183 ChooseRule: "choose" AttributedVariable "in" Term "do" Rule . - $default reduce using rule 181 (ChooseRule) + $default reduce using rule 183 (ChooseRule) -State 399 +State 404 - 171 ConditionalRule: "if" Term "then" Rule "else" Rule . + 173 ConditionalRule: "if" Term "then" Rule "else" Rule . - $default reduce using rule 171 (ConditionalRule) + $default reduce using rule 173 (ConditionalRule) -State 400 +State 405 - 173 CaseRule: "case" Term "of" "{" error "}" . + 175 CaseRule: "case" Term "of" "{" error "}" . - $default reduce using rule 173 (CaseRule) + $default reduce using rule 175 (CaseRule) -State 401 +State 406 - 174 CaseLabel: "default" ":" . Rule + 176 CaseLabel: "default" ":" . Rule "this" shift, and go to state 25 "seq" shift, and go to state 226 @@ -8816,7 +8878,7 @@ State 401 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 410 + Rule go to state 415 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -8830,9 +8892,9 @@ State 401 CallRule go to state 252 -State 402 +State 407 - 175 CaseLabel: "_" ":" . Rule + 177 CaseLabel: "_" ":" . Rule "this" shift, and go to state 25 "seq" shift, and go to state 226 @@ -8857,7 +8919,7 @@ State 402 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 411 + Rule go to state 416 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -8871,9 +8933,9 @@ State 402 CallRule go to state 252 -State 403 +State 408 - 176 CaseLabel: Term ":" . Rule + 178 CaseLabel: Term ":" . Rule "this" shift, and go to state 25 "seq" shift, and go to state 226 @@ -8898,7 +8960,7 @@ State 403 IdentifierPath go to state 75 DirectCallExpression go to state 239 IndirectCallExpression go to state 240 - Rule go to state 412 + Rule go to state 417 SkipRule go to state 242 ConditionalRule go to state 243 CaseRule go to state 244 @@ -8912,70 +8974,70 @@ State 403 CallRule go to state 252 -State 404 +State 409 - 177 CaseLabels: CaseLabel CaseLabels . + 179 CaseLabels: CaseLabel CaseLabels . - $default reduce using rule 177 (CaseLabels) + $default reduce using rule 179 (CaseLabels) -State 405 +State 410 - 172 CaseRule: "case" Term "of" "{" CaseLabels "}" . + 174 CaseRule: "case" Term "of" "{" CaseLabels "}" . - $default reduce using rule 172 (CaseRule) + $default reduce using rule 174 (CaseRule) -State 406 +State 411 18 MaybeDefined: "defined" "{" Term "}" . $default reduce using rule 18 (MaybeDefined) -State 407 +State 412 16 MaybeInitially: "initially" "{" MaybeInitializers . "}" - "}" shift, and go to state 413 + "}" shift, and go to state 418 -State 408 +State 413 - 55 Declaration: "derived" Identifier ":" MaybeFunctionParameters "->" Type . + 57 Declaration: "derived" Identifier ":" MaybeFunctionParameters "->" Type . - $default reduce using rule 55 (Declaration) + $default reduce using rule 57 (Declaration) -State 409 +State 414 - 56 Declaration: "rule" Identifier ":" MaybeFunctionParameters "->" Type . + 58 Declaration: "rule" Identifier ":" MaybeFunctionParameters "->" Type . - $default reduce using rule 56 (Declaration) + $default reduce using rule 58 (Declaration) -State 410 +State 415 - 174 CaseLabel: "default" ":" Rule . + 176 CaseLabel: "default" ":" Rule . - $default reduce using rule 174 (CaseLabel) + $default reduce using rule 176 (CaseLabel) -State 411 +State 416 - 175 CaseLabel: "_" ":" Rule . + 177 CaseLabel: "_" ":" Rule . - $default reduce using rule 175 (CaseLabel) + $default reduce using rule 177 (CaseLabel) -State 412 +State 417 - 176 CaseLabel: Term ":" Rule . + 178 CaseLabel: Term ":" Rule . - $default reduce using rule 176 (CaseLabel) + $default reduce using rule 178 (CaseLabel) -State 413 +State 418 16 MaybeInitially: "initially" "{" MaybeInitializers "}" . diff --git a/src/various/GrammarParser.tab.h b/src/various/GrammarParser.tab.h index 2bde571f1..f99f236a8 100644 --- a/src/various/GrammarParser.tab.h +++ b/src/various/GrammarParser.tab.h @@ -348,12 +348,12 @@ namespace libcasm_fe { // Definition // AttributedDefinition // FeatureDefinitionElement - // ImplementationDefinitionDefinition + // ImplementationDefinitionElement char dummy16[sizeof(Definition::Ptr)]; // Definitions // FeatureDefinitionList - // ImplementationDefinitionDefinitions + // ImplementationDefinitionList char dummy17[sizeof(Definitions::Ptr)]; // DerivedDefinition @@ -1371,7 +1371,7 @@ namespace libcasm_fe { enum { yyeof_ = 0, - yylast_ = 1959, ///< Last index in yytable_. + yylast_ = 2003, ///< Last index in yytable_. yynnts_ = 83, ///< Number of nonterminal symbols. yyfinal_ = 24, ///< Termination state number. yyterror_ = 1, @@ -1528,13 +1528,13 @@ namespace libcasm_fe { case 88: // Definition case 89: // AttributedDefinition case 106: // FeatureDefinitionElement - case 109: // ImplementationDefinitionDefinition + case 109: // ImplementationDefinitionElement value.copy< Definition::Ptr > (other.value); break; case 90: // Definitions case 107: // FeatureDefinitionList - case 110: // ImplementationDefinitionDefinitions + case 110: // ImplementationDefinitionList value.copy< Definitions::Ptr > (other.value); break; @@ -1808,13 +1808,13 @@ namespace libcasm_fe { case 88: // Definition case 89: // AttributedDefinition case 106: // FeatureDefinitionElement - case 109: // ImplementationDefinitionDefinition + case 109: // ImplementationDefinitionElement value.copy< Definition::Ptr > (v); break; case 90: // Definitions case 107: // FeatureDefinitionList - case 110: // ImplementationDefinitionDefinitions + case 110: // ImplementationDefinitionList value.copy< Definitions::Ptr > (v); break; @@ -2518,13 +2518,13 @@ namespace libcasm_fe { case 88: // Definition case 89: // AttributedDefinition case 106: // FeatureDefinitionElement - case 109: // ImplementationDefinitionDefinition + case 109: // ImplementationDefinitionElement value.template destroy< Definition::Ptr > (); break; case 90: // Definitions case 107: // FeatureDefinitionList - case 110: // ImplementationDefinitionDefinitions + case 110: // ImplementationDefinitionList value.template destroy< Definitions::Ptr > (); break; @@ -2804,13 +2804,13 @@ namespace libcasm_fe { case 88: // Definition case 89: // AttributedDefinition case 106: // FeatureDefinitionElement - case 109: // ImplementationDefinitionDefinition + case 109: // ImplementationDefinitionElement value.move< Definition::Ptr > (s.value); break; case 90: // Definitions case 107: // FeatureDefinitionList - case 110: // ImplementationDefinitionDefinitions + case 110: // ImplementationDefinitionList value.move< Definitions::Ptr > (s.value); break;