diff --git a/src/GrammarParser.y b/src/GrammarParser.y index 8e9c1712..e5514f06 100644 --- a/src/GrammarParser.y +++ b/src/GrammarParser.y @@ -134,7 +134,6 @@ END 0 "end of file" %type Variable TypedVariable AttributedVariable TypedAttributedVariable %type TypedVariables %type FunctionDefinition -%type FunctionDefinitions %type DerivedDefinition %type RuleDefinition %type EnumeratorDefinition @@ -148,6 +147,9 @@ END 0 "end of file" %type FeatureDefinition %type FeatureDeclarationOrDefinition %type FeatureDeclarationsAndDefinitions +%type ImplementationDefinition +%type ImplementationDefinitionDefinition +%type ImplementationDefinitionDefinitions %type DeclarationDefinition // literals @@ -369,6 +371,14 @@ Definition { $$ = $1; } +| FeatureDefinition + { + $$ = $1; + } +| ImplementationDefinition + { + $$ = $1; + } ; @@ -572,11 +582,10 @@ FeatureDeclarationOrDefinition FeatureDeclarationsAndDefinitions -: FeatureDeclarationsAndDefinitions COMMA FeatureDeclarationOrDefinition +: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition { - // TODO: FIXME: @ppaulweber: handle AST keyword tokens $2 auto definitions = $1; - definitions->add( $3 ); + definitions->add( $2 ); $$ = definitions; } | FeatureDeclarationOrDefinition @@ -588,6 +597,48 @@ FeatureDeclarationsAndDefinitions ; +ImplementationDefinition +: IMPLEMENTS IdentifierPath FOR Type EQUAL LCURPAREN ImplementationDefinitionDefinitions RCURPAREN + { + $$ = Ast::make< ImplementationDefinition >( @$, $2, $4, $7 ); + } +| IMPLEMENTS Type EQUAL LCURPAREN ImplementationDefinitionDefinitions RCURPAREN + { + const auto name = Ast::make< Identifier >( @$, "" ); + const auto path = asIdentifierPath( name ); + $$ = Ast::make< ImplementationDefinition >( @$, path, $2, $5 ); + } +; + + +ImplementationDefinitionDefinition +: DerivedDefinition + { + $$ = $1; + } +| RuleDefinition + { + $$ = $1; + } +; + + +ImplementationDefinitionDefinitions +: ImplementationDefinitionDefinitions ImplementationDefinitionDefinition + { + auto definitions = $1; + definitions->add( $2 ); + $$ = definitions; + } +| ImplementationDefinitionDefinition + { + auto definitions = Ast::make< Definitions >( @$ ); + definitions->add( $1 ); + $$ = definitions; + } +; + + DeclarationDefinition : DERIVED Identifier COLON MaybeFunctionParameters MAPS Type { diff --git a/src/GrammarToken.hpp b/src/GrammarToken.hpp index 8e43848d..0c6ff5be 100644 --- a/src/GrammarToken.hpp +++ b/src/GrammarToken.hpp @@ -55,6 +55,9 @@ INVARIANT "invariant" IMPORT "import" STRUCTURE "structure" FEATURE "feature" +IMPLEMENTS "implements" +FOR "for" +THIS "this" FUNCTION "function" DEFINED "defined" diff --git a/src/ast/Definition.cpp b/src/ast/Definition.cpp index b4afd948..28677c7d 100644 --- a/src/ast/Definition.cpp +++ b/src/ast/Definition.cpp @@ -730,6 +730,40 @@ void FeatureDefinition::accept( Visitor& visitor ) visitor.visit( *this ); } +// +// +// ImplementationDefinition +// + +ImplementationDefinition::ImplementationDefinition( + const IdentifierPath::Ptr& path, const Type::Ptr& type, const Definitions::Ptr& definitions ) +: Definition( Node::ID::IMPLEMENTATION_DEFINITION, *path->identifiers()->end() ) +, m_path( path ) +, m_type( type ) +, m_definitions( definitions ) +{ +} + +const IdentifierPath::Ptr& ImplementationDefinition::path( void ) const +{ + return m_path; +} + +const Type::Ptr& ImplementationDefinition::type( void ) const +{ + return m_type; +} + +const Definitions::Ptr& ImplementationDefinition::definitions( void ) const +{ + return m_definitions; +} + +void ImplementationDefinition::accept( Visitor& visitor ) +{ + visitor.visit( *this ); +} + // // // DeclarationDefinition diff --git a/src/ast/Definition.h b/src/ast/Definition.h index df3f903c..a5660c17 100644 --- a/src/ast/Definition.h +++ b/src/ast/Definition.h @@ -461,6 +461,30 @@ namespace libcasm_fe const Definitions::Ptr m_definitions; }; + class ImplementationDefinition final : public Definition + { + public: + using Ptr = std::shared_ptr< ImplementationDefinition >; + + ImplementationDefinition( + const IdentifierPath::Ptr& path, + const Type::Ptr& type, + const Definitions::Ptr& definitions ); + + const IdentifierPath::Ptr& path( void ) const; + + const Type::Ptr& type( void ) const; + + const Definitions::Ptr& definitions( void ) const; + + void accept( Visitor& visitor ) override final; + + private: + const IdentifierPath::Ptr m_path; + const Type::Ptr m_type; + const Definitions::Ptr m_definitions; + }; + class DeclarationDefinition final : public Definition { public: diff --git a/src/ast/EmptyVisitor.cpp b/src/ast/EmptyVisitor.cpp index 2a04c286..5b78d0b7 100644 --- a/src/ast/EmptyVisitor.cpp +++ b/src/ast/EmptyVisitor.cpp @@ -116,6 +116,10 @@ void EmptyVisitor::visit( FeatureDefinition& ) { } +void EmptyVisitor::visit( ImplementationDefinition& ) +{ +} + void EmptyVisitor::visit( DeclarationDefinition& ) { } diff --git a/src/ast/EmptyVisitor.h b/src/ast/EmptyVisitor.h index d20ea461..caaca368 100644 --- a/src/ast/EmptyVisitor.h +++ b/src/ast/EmptyVisitor.h @@ -71,6 +71,7 @@ namespace libcasm_fe void visit( ImportDefinition& node ) override; void visit( StructureDefinition& node ) override; void visit( FeatureDefinition& node ) override; + void visit( ImplementationDefinition& node ) override; void visit( DeclarationDefinition& node ) override; void visit( UndefLiteral& node ) override; diff --git a/src/ast/Node.cpp b/src/ast/Node.cpp index 2819d7e0..9348dcb1 100644 --- a/src/ast/Node.cpp +++ b/src/ast/Node.cpp @@ -135,6 +135,10 @@ std::string Node::description( void ) const { return "feature"; } + case ID::IMPLEMENTATION_DEFINITION: + { + return "implementation"; + } case ID::DECLARATION_DEFINITION: { return "declaration"; diff --git a/src/ast/Node.h b/src/ast/Node.h index 46707580..81889c89 100644 --- a/src/ast/Node.h +++ b/src/ast/Node.h @@ -83,6 +83,7 @@ namespace libcasm_fe IMPORT_DEFINITION, STRUCTURE_DEFINITION, FEATURE_DEFINITION, + IMPLEMENTATION_DEFINITION, DECLARATION_DEFINITION, // literals diff --git a/src/ast/RecursiveVisitor.cpp b/src/ast/RecursiveVisitor.cpp index 7166b629..eb202834 100644 --- a/src/ast/RecursiveVisitor.cpp +++ b/src/ast/RecursiveVisitor.cpp @@ -221,6 +221,13 @@ void RecursiveVisitor::visit( FeatureDefinition& node ) node.definitions()->accept( *this ); } +void RecursiveVisitor::visit( ImplementationDefinition& node ) +{ + node.identifier()->accept( *this ); + node.type()->accept( *this ); + node.definitions()->accept( *this ); +} + void RecursiveVisitor::visit( DeclarationDefinition& node ) { // TODO: FIXME: @ppaulweber: call token methods to accept this visitor diff --git a/src/ast/RecursiveVisitor.h b/src/ast/RecursiveVisitor.h index c3b26bcf..66fdab57 100644 --- a/src/ast/RecursiveVisitor.h +++ b/src/ast/RecursiveVisitor.h @@ -71,6 +71,7 @@ namespace libcasm_fe void visit( ImportDefinition& node ) override; void visit( StructureDefinition& node ) override; void visit( FeatureDefinition& node ) override; + void visit( ImplementationDefinition& node ) override; void visit( DeclarationDefinition& node ) override; void visit( UndefLiteral& node ) override; diff --git a/src/ast/Visitor.h b/src/ast/Visitor.h index 763cee55..7466a4ce 100644 --- a/src/ast/Visitor.h +++ b/src/ast/Visitor.h @@ -66,6 +66,7 @@ namespace libcasm_fe class ImportDefinition; class StructureDefinition; class FeatureDefinition; + class ImplementationDefinition; class DeclarationDefinition; class UndefLiteral; @@ -151,6 +152,7 @@ namespace libcasm_fe virtual void visit( ImportDefinition& node ) = 0; virtual void visit( StructureDefinition& node ) = 0; virtual void visit( FeatureDefinition& node ) = 0; + virtual void visit( ImplementationDefinition& node ) = 0; virtual void visit( DeclarationDefinition& node ) = 0; virtual void visit( UndefLiteral& node ) = 0; diff --git a/src/various/Grammar.org b/src/various/Grammar.org index f479dc73..ca00fe2c 100644 --- a/src/various/Grammar.org +++ b/src/various/Grammar.org @@ -57,6 +57,8 @@ Definition ::= InitDefinition | InvariantDefinition | ImportDefinition | StructureDefinition + | FeatureDefinition + | ImplementationDefinition #+end_src #+html: {{page>.:grammar:Definition&noheader&nofooter}} @@ -179,6 +181,76 @@ StructureDefinition ::= "structure" Identifier "=" "{" FunctionDefinition "}" #+html: {{page>.:grammar:StructureDefinition&noheader&nofooter}} +** FeatureDefinition + +#+begin_src +FeatureDefinition ::= "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" +#+end_src + +#+html: {{page>.:grammar:FeatureDefinition&noheader&nofooter}} + + +** FeatureDeclarationOrDefinition + +#+begin_src +FeatureDeclarationOrDefinition ::= DeclarationDefinition + | DerivedDefinition + | RuleDefinition +#+end_src + +#+html: {{page>.:grammar:FeatureDeclarationOrDefinition&noheader&nofooter}} + + +** FeatureDeclarationsAndDefinitions + +#+begin_src +FeatureDeclarationsAndDefinitions ::= FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition + | FeatureDeclarationOrDefinition +#+end_src + +#+html: {{page>.:grammar:FeatureDeclarationsAndDefinitions&noheader&nofooter}} + + +** ImplementationDefinition + +#+begin_src +ImplementationDefinition ::= "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" + | "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" +#+end_src + +#+html: {{page>.:grammar:ImplementationDefinition&noheader&nofooter}} + + +** ImplementationDefinitionDefinition + +#+begin_src +ImplementationDefinitionDefinition ::= DerivedDefinition + | RuleDefinition +#+end_src + +#+html: {{page>.:grammar:ImplementationDefinitionDefinition&noheader&nofooter}} + + +** ImplementationDefinitionDefinitions + +#+begin_src +ImplementationDefinitionDefinitions ::= ImplementationDefinitionDefinitions ImplementationDefinitionDefinition + | ImplementationDefinitionDefinition +#+end_src + +#+html: {{page>.:grammar:ImplementationDefinitionDefinitions&noheader&nofooter}} + + +** DeclarationDefinition + +#+begin_src +DeclarationDefinition ::= "derived" Identifier ":" MaybeFunctionParameters "->" Type + | "rule" Identifier ":" MaybeFunctionParameters "->" Type +#+end_src + +#+html: {{page>.:grammar:DeclarationDefinition&noheader&nofooter}} + + ** Rules #+begin_src diff --git a/src/various/GrammarLexer.cpp b/src/various/GrammarLexer.cpp index 5f7856d9..fa1d6137 100644 --- a/src/various/GrammarLexer.cpp +++ b/src/various/GrammarLexer.cpp @@ -338,8 +338,8 @@ int yyFlexLexer::yylex() (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 110 -#define YY_END_OF_BUFFER 111 +#define YY_NUM_RULES 113 +#define YY_END_OF_BUFFER 114 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -347,42 +347,43 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[309] = +static const flex_int16_t yy_accept[317] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 111, 109, 83, 84, 82, 81, 109, 100, 68, 70, - 52, 53, 66, 49, 63, 50, 72, 67, 4, 4, - 58, 64, 51, 65, 62, 85, 85, 54, 55, 69, - 60, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 56, 61, - 57, 86, 90, 89, 88, 90, 90, 90, 110, 92, - 94, 110, 110, 110, 98, 97, 98, 110, 110, 110, - 104, 102, 101, 102, 110, 110, 110, 83, 84, 82, - 81, 76, 73, 71, 95, 91, 4, 0, 4, 0, - - 0, 0, 59, 75, 77, 74, 78, 85, 85, 85, - 39, 85, 85, 85, 29, 85, 85, 85, 85, 85, - 85, 85, 85, 30, 85, 25, 85, 85, 85, 85, - 34, 45, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 79, 80, 87, 0, 0, 93, - 0, 0, 96, 99, 0, 0, 108, 107, 105, 106, - 103, 0, 0, 4, 5, 1, 3, 2, 85, 44, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 23, 85, 48, - 20, 85, 18, 85, 85, 85, 85, 85, 85, 85, - - 85, 46, 0, 0, 0, 0, 0, 1, 1, 3, - 0, 3, 2, 2, 6, 33, 85, 85, 85, 85, - 32, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 7, 85, 85, 85, 10, 22, 85, 31, - 43, 85, 85, 85, 38, 0, 5, 3, 85, 85, - 85, 85, 85, 85, 85, 85, 42, 85, 85, 85, - 36, 85, 85, 85, 85, 24, 85, 41, 11, 40, - 3, 3, 27, 85, 85, 85, 21, 19, 85, 37, - 85, 26, 85, 85, 13, 85, 85, 85, 35, 17, - 8, 85, 15, 85, 47, 85, 28, 85, 85, 16, - - 85, 85, 85, 12, 14, 85, 9, 0 + 114, 112, 86, 87, 85, 84, 112, 103, 71, 73, + 55, 56, 69, 52, 66, 53, 75, 70, 4, 4, + 61, 67, 54, 68, 65, 88, 88, 57, 58, 72, + 63, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 59, 64, + 60, 89, 93, 92, 91, 93, 93, 93, 113, 95, + 97, 113, 113, 113, 101, 100, 101, 113, 113, 113, + 107, 105, 104, 105, 113, 113, 113, 86, 87, 85, + 84, 79, 76, 74, 98, 94, 4, 0, 4, 0, + + 0, 0, 62, 78, 80, 77, 81, 88, 88, 88, + 42, 88, 88, 88, 32, 88, 88, 88, 88, 88, + 88, 88, 88, 33, 88, 28, 88, 88, 88, 88, + 37, 48, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 82, 83, 90, 0, 0, 96, + 0, 0, 99, 102, 0, 0, 111, 110, 108, 109, + 106, 0, 0, 4, 5, 1, 3, 2, 88, 47, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 17, 88, 88, 88, 88, 88, 88, 26, 88, 51, + 23, 88, 21, 88, 88, 88, 88, 88, 88, 88, + + 88, 88, 49, 0, 0, 0, 0, 0, 1, 1, + 3, 0, 3, 2, 2, 6, 36, 88, 88, 88, + 88, 35, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 7, 88, 88, 88, 10, 25, 88, + 34, 18, 46, 88, 88, 88, 41, 0, 5, 3, + 88, 88, 88, 88, 88, 88, 88, 88, 45, 88, + 88, 88, 39, 88, 88, 88, 88, 88, 27, 88, + 44, 11, 43, 3, 3, 30, 88, 88, 88, 24, + 22, 88, 40, 88, 29, 88, 88, 88, 13, 88, + 88, 88, 38, 20, 8, 88, 15, 88, 88, 50, + + 88, 31, 88, 88, 19, 88, 88, 88, 88, 88, + 12, 14, 88, 16, 9, 0 } ; static const YY_CHAR yy_ec[256] = @@ -428,85 +429,87 @@ static const YY_CHAR yy_meta[71] = 5, 5, 5, 1, 1, 1, 1, 1, 1, 1 } ; -static const flex_int16_t yy_base[316] = +static const flex_int16_t yy_base[324] = { 0, 0, 0, 70, 0, 140, 143, 146, 149, 153, 162, - 506, 507, 503, 501, 499, 497, 477, 507, 507, 507, - 507, 507, 507, 507, 507, 475, 482, 135, 216, 151, - 151, 474, 472, 472, 507, 0, 468, 507, 507, 507, - 0, 121, 103, 113, 125, 135, 440, 140, 136, 439, - 137, 450, 431, 137, 149, 145, 136, 436, 424, 422, - 507, 507, 507, 507, 507, 420, 419, 418, 507, 507, - 507, 417, 416, 415, 507, 507, 463, 413, 412, 411, - 507, 507, 507, 200, 410, 409, 408, 472, 470, 468, - 466, 507, 507, 507, 507, 507, 235, 208, 241, 182, - - 220, 0, 507, 507, 507, 507, 507, 0, 435, 425, - 0, 410, 413, 200, 0, 408, 160, 416, 413, 421, - 405, 408, 409, 0, 404, 214, 413, 398, 413, 396, - 0, 0, 397, 402, 396, 402, 393, 404, 388, 403, - 397, 396, 385, 386, 507, 507, 507, 375, 374, 507, - 373, 372, 507, 507, 371, 370, 507, 507, 507, 507, - 507, 369, 368, 257, 249, 262, 277, 424, 400, 0, - 387, 377, 200, 381, 384, 216, 376, 369, 368, 366, - 382, 380, 378, 232, 362, 378, 362, 0, 376, 0, - 0, 372, 0, 361, 355, 361, 368, 367, 358, 359, - - 361, 0, 341, 340, 339, 338, 285, 283, 290, 297, - 245, 301, 394, 393, 0, 0, 344, 341, 347, 338, - 0, 356, 352, 351, 336, 349, 333, 341, 332, 332, - 340, 331, 0, 330, 344, 334, 0, 0, 341, 0, - 0, 337, 335, 336, 0, 269, 293, 313, 335, 328, - 333, 332, 319, 319, 317, 315, 0, 315, 320, 321, - 0, 324, 309, 318, 307, 0, 306, 0, 0, 0, - 316, 319, 0, 300, 287, 286, 0, 0, 286, 0, - 282, 0, 271, 266, 0, 266, 247, 231, 0, 0, - 0, 226, 0, 231, 0, 195, 0, 190, 194, 0, - - 175, 180, 170, 0, 0, 152, 0, 507, 340, 345, - 350, 352, 357, 138, 360 + 514, 515, 511, 509, 507, 505, 485, 515, 515, 515, + 515, 515, 515, 515, 515, 483, 490, 135, 216, 151, + 151, 482, 480, 480, 515, 0, 476, 515, 515, 515, + 0, 121, 103, 113, 125, 135, 448, 140, 136, 447, + 137, 458, 439, 137, 149, 145, 136, 444, 432, 430, + 515, 515, 515, 515, 515, 428, 427, 426, 515, 515, + 515, 425, 424, 423, 515, 515, 471, 421, 420, 419, + 515, 515, 515, 200, 418, 417, 416, 480, 478, 476, + 474, 515, 515, 515, 515, 515, 235, 208, 241, 182, + + 220, 0, 515, 515, 515, 515, 515, 0, 443, 433, + 0, 418, 421, 200, 0, 416, 160, 424, 421, 429, + 413, 416, 417, 0, 412, 214, 421, 406, 421, 404, + 0, 0, 405, 410, 404, 410, 401, 198, 397, 412, + 406, 405, 394, 395, 515, 515, 515, 384, 383, 515, + 382, 381, 515, 515, 380, 379, 515, 515, 515, 515, + 515, 378, 377, 257, 249, 262, 277, 433, 409, 0, + 396, 386, 200, 390, 393, 216, 385, 378, 377, 375, + 391, 389, 387, 232, 371, 387, 371, 0, 385, 0, + 0, 381, 0, 370, 364, 370, 364, 376, 375, 366, + + 367, 369, 0, 349, 348, 347, 346, 285, 283, 290, + 297, 245, 301, 402, 401, 0, 0, 352, 349, 355, + 346, 0, 364, 360, 359, 344, 357, 341, 349, 340, + 340, 239, 340, 0, 339, 353, 343, 0, 0, 350, + 0, 0, 0, 346, 344, 345, 0, 270, 293, 313, + 344, 337, 342, 341, 328, 328, 326, 324, 0, 324, + 329, 330, 0, 326, 332, 317, 326, 315, 0, 314, + 0, 0, 0, 316, 319, 0, 313, 327, 326, 0, + 0, 327, 0, 323, 0, 313, 321, 307, 0, 317, + 286, 270, 0, 0, 0, 269, 0, 274, 272, 0, + + 271, 0, 251, 243, 0, 226, 189, 189, 171, 166, + 0, 0, 152, 0, 0, 515, 340, 345, 350, 352, + 357, 138, 360 } ; -static const flex_int16_t yy_def[316] = +static const flex_int16_t yy_def[324] = { 0, - 308, 1, 308, 3, 309, 309, 310, 310, 311, 311, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 312, 312, 308, 308, 308, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 313, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - - 308, 314, 308, 308, 308, 308, 308, 312, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 315, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - - 312, 312, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 315, 315, 312, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 312, 308, 308, 308, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - 308, 308, 312, 312, 312, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, - - 312, 312, 312, 312, 312, 312, 312, 0, 308, 308, - 308, 308, 308, 308, 308 + 316, 1, 316, 3, 317, 317, 318, 318, 319, 319, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 320, 320, 316, 316, 316, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 321, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + + 316, 322, 316, 316, 316, 316, 316, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 323, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + + 320, 320, 320, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 323, 323, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 316, 316, 316, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 316, 316, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, + 320, 320, 320, 320, 320, 0, 316, 316, 316, 316, + 316, 316, 316 } ; -static const flex_int16_t yy_nxt[578] = +static const flex_int16_t yy_nxt[586] = { 0, 12, 13, 14, 15, 16, 17, 18, 12, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, @@ -530,50 +533,51 @@ static const flex_int16_t yy_nxt[578] = 128, 135, 131, 142, 143, 124, 136, 118, 121, 129, 84, 125, 126, 132, 122, 137, 138, 140, 127, 84, - 166, 166, 141, 176, 307, 139, 158, 72, 73, 74, + 166, 166, 141, 176, 315, 139, 158, 72, 73, 74, 72, 73, 74, 78, 79, 80, 78, 79, 80, 177, - 85, 86, 87, 306, 305, 97, 165, 165, 165, 85, - 86, 87, 98, 304, 99, 99, 99, 158, 167, 167, - 167, 218, 303, 100, 97, 173, 302, 301, 219, 101, + 85, 86, 87, 314, 313, 97, 165, 165, 165, 85, + 86, 87, 98, 312, 99, 99, 99, 158, 167, 167, + 167, 219, 196, 100, 97, 173, 197, 311, 220, 101, 97, 102, 159, 164, 164, 164, 174, 98, 160, 99, - 99, 99, 185, 248, 248, 248, 97, 165, 165, 165, - 222, 208, 101, 223, 186, 164, 164, 164, 102, 207, - 209, 209, 231, 300, 299, 232, 210, 247, 247, 247, - 298, 297, 208, 207, 211, 212, 212, 212, 246, 208, - - 246, 209, 209, 247, 247, 247, 210, 296, 209, 209, - 210, 247, 247, 247, 211, 212, 212, 212, 211, 212, - 212, 212, 271, 295, 294, 271, 293, 292, 271, 291, - 290, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 99, 99, 185, 250, 250, 250, 97, 165, 165, 165, + 223, 209, 101, 224, 186, 164, 164, 164, 102, 208, + 210, 210, 232, 264, 310, 233, 211, 265, 249, 249, + 249, 309, 209, 208, 212, 213, 213, 213, 248, 209, + + 248, 210, 210, 249, 249, 249, 211, 308, 210, 210, + 211, 249, 249, 249, 212, 213, 213, 213, 212, 213, + 213, 213, 274, 307, 306, 274, 305, 304, 274, 303, + 302, 275, 275, 275, 275, 275, 275, 275, 275, 275, 70, 70, 70, 70, 70, 75, 75, 75, 75, 75, - 82, 82, 82, 82, 82, 108, 108, 157, 289, 157, - 157, 157, 214, 214, 288, 287, 286, 285, 284, 283, - 282, 281, 280, 279, 278, 277, 276, 275, 274, 273, - 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, - 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, + 82, 82, 82, 82, 82, 108, 108, 157, 301, 157, + 157, 157, 215, 215, 300, 299, 298, 297, 296, 295, + 294, 293, 292, 291, 290, 289, 288, 287, 286, 285, + 284, 283, 282, 281, 280, 279, 278, 277, 276, 273, + 272, 271, 270, 269, 268, 267, 266, 263, 262, 261, - 250, 249, 213, 213, 161, 154, 150, 147, 245, 244, + 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, + 214, 214, 161, 154, 150, 147, 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, - 233, 230, 229, 228, 227, 226, 225, 224, 221, 220, - 217, 216, 215, 213, 206, 161, 205, 154, 204, 150, - 203, 147, 202, 201, 200, 199, 198, 197, 196, 195, - 194, 193, 192, 191, 190, 189, 188, 187, 184, 183, - 182, 181, 180, 179, 178, 175, 172, 171, 170, 169, - 91, 90, 89, 88, 163, 162, 161, 156, 155, 154, - 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, - 134, 133, 130, 123, 109, 107, 106, 105, 94, 93, - - 92, 91, 90, 89, 88, 308, 11, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308 + 231, 230, 229, 228, 227, 226, 225, 222, 221, 218, + 217, 216, 214, 207, 161, 206, 154, 205, 150, 204, + 147, 203, 202, 201, 200, 199, 198, 195, 194, 193, + 192, 191, 190, 189, 188, 187, 184, 183, 182, 181, + 180, 179, 178, 175, 172, 171, 170, 169, 91, 90, + 89, 88, 163, 162, 161, 156, 155, 154, 153, 152, + 151, 150, 149, 148, 147, 146, 145, 144, 134, 133, + + 130, 123, 109, 107, 106, 105, 94, 93, 92, 91, + 90, 89, 88, 316, 11, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316 } ; -static const flex_int16_t yy_chk[578] = +static const flex_int16_t yy_chk[586] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -590,54 +594,55 @@ static const flex_int16_t yy_chk[578] = 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 5, 314, 5, 6, 43, 6, 7, 28, 7, 8, + 5, 322, 5, 6, 43, 6, 7, 28, 7, 8, 43, 8, 28, 9, 9, 9, 9, 44, 7, 9, 30, 8, 10, 10, 10, 10, 44, 30, 10, 30, 30, 30, 31, 42, 31, 45, 46, 45, 42, 46, 49, 54, 51, 57, 57, 48, 54, 45, 46, 49, 9, 48, 48, 51, 46, 54, 55, 56, 48, 10, - 100, 100, 56, 117, 306, 55, 84, 5, 5, 5, + 100, 100, 56, 117, 313, 55, 84, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 117, - 9, 9, 9, 303, 302, 29, 98, 98, 98, 10, - 10, 10, 29, 301, 29, 29, 29, 84, 101, 101, - 101, 173, 299, 29, 97, 114, 298, 296, 173, 29, + 9, 9, 9, 310, 309, 29, 98, 98, 98, 10, + 10, 10, 29, 308, 29, 29, 29, 84, 101, 101, + 101, 173, 138, 29, 97, 114, 138, 307, 173, 29, 99, 29, 84, 97, 97, 97, 114, 99, 84, 99, - 99, 99, 126, 211, 211, 211, 164, 165, 165, 165, + 99, 99, 126, 212, 212, 212, 164, 165, 165, 165, 176, 166, 29, 176, 126, 164, 164, 164, 29, 165, - 166, 166, 184, 294, 292, 184, 167, 246, 246, 246, - 288, 287, 208, 165, 167, 167, 167, 167, 207, 209, - - 207, 208, 208, 207, 207, 207, 210, 286, 209, 209, - 212, 247, 247, 247, 210, 210, 210, 210, 212, 212, - 212, 212, 248, 284, 283, 271, 281, 279, 272, 276, - 275, 248, 248, 248, 271, 271, 271, 272, 272, 272, - 309, 309, 309, 309, 309, 310, 310, 310, 310, 310, - 311, 311, 311, 311, 311, 312, 312, 313, 274, 313, - 313, 313, 315, 315, 267, 265, 264, 263, 262, 260, - 259, 258, 256, 255, 254, 253, 252, 251, 250, 249, - 244, 243, 242, 239, 236, 235, 234, 232, 231, 230, - 229, 228, 227, 226, 225, 224, 223, 222, 220, 219, - - 218, 217, 214, 213, 206, 205, 204, 203, 201, 200, - 199, 198, 197, 196, 195, 194, 192, 189, 187, 186, - 185, 183, 182, 181, 180, 179, 178, 177, 175, 174, - 172, 171, 169, 168, 163, 162, 156, 155, 152, 151, - 149, 148, 144, 143, 142, 141, 140, 139, 138, 137, - 136, 135, 134, 133, 130, 129, 128, 127, 125, 123, - 122, 121, 120, 119, 118, 116, 113, 112, 110, 109, - 91, 90, 89, 88, 87, 86, 85, 80, 79, 78, - 77, 74, 73, 72, 68, 67, 66, 60, 59, 58, - 53, 52, 50, 47, 37, 34, 33, 32, 27, 26, - - 17, 16, 15, 14, 13, 11, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308 + 166, 166, 184, 232, 306, 184, 167, 232, 248, 248, + 248, 304, 209, 165, 167, 167, 167, 167, 208, 210, + + 208, 209, 209, 208, 208, 208, 211, 303, 210, 210, + 213, 249, 249, 249, 211, 211, 211, 211, 213, 213, + 213, 213, 250, 301, 299, 274, 298, 296, 275, 292, + 291, 250, 250, 250, 274, 274, 274, 275, 275, 275, + 317, 317, 317, 317, 317, 318, 318, 318, 318, 318, + 319, 319, 319, 319, 319, 320, 320, 321, 290, 321, + 321, 321, 323, 323, 288, 287, 286, 284, 282, 279, + 278, 277, 270, 268, 267, 266, 265, 264, 262, 261, + 260, 258, 257, 256, 255, 254, 253, 252, 251, 246, + 245, 244, 240, 237, 236, 235, 233, 231, 230, 229, + + 228, 227, 226, 225, 224, 223, 221, 220, 219, 218, + 215, 214, 207, 206, 205, 204, 202, 201, 200, 199, + 198, 197, 196, 195, 194, 192, 189, 187, 186, 185, + 183, 182, 181, 180, 179, 178, 177, 175, 174, 172, + 171, 169, 168, 163, 162, 156, 155, 152, 151, 149, + 148, 144, 143, 142, 141, 140, 139, 137, 136, 135, + 134, 133, 130, 129, 128, 127, 125, 123, 122, 121, + 120, 119, 118, 116, 113, 112, 110, 109, 91, 90, + 89, 88, 87, 86, 85, 80, 79, 78, 77, 74, + 73, 72, 68, 67, 66, 60, 59, 58, 53, 52, + + 50, 47, 37, 34, 33, 32, 27, 26, 17, 16, + 15, 14, 13, 11, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316 } ; /* The intent behind this definition is that it'll catch @@ -719,11 +724,11 @@ using namespace libcasm_fe; token->setSpans( fetchSpansAndReset() ); \ return Parser::make_##TOKEN( token, m_loc ); -#line 722 "src/various/GrammarLexer.cpp" +#line 727 "src/various/GrammarLexer.cpp" #define YY_NO_INPUT 1 /* %option debug */ -#line 726 "src/various/GrammarLexer.cpp" +#line 731 "src/various/GrammarLexer.cpp" #define INITIAL 0 #define YY_IDENTIFIER 1 @@ -867,7 +872,7 @@ YY_DECL m_loc.step(); -#line 870 "src/various/GrammarLexer.cpp" +#line 875 "src/various/GrammarLexer.cpp" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -894,13 +899,13 @@ YY_DECL while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 309 ) + if ( yy_current_state >= 317 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 308 ); + while ( yy_current_state != 316 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -1072,357 +1077,372 @@ YY_RULE_SETUP case 16: YY_RULE_SETUP #line 190 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( FUNCTION ) } +{ YY_TOKEN_ACTION( IMPLEMENTS ) } YY_BREAK case 17: YY_RULE_SETUP #line 191 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( DEFINED ) } +{ YY_TOKEN_ACTION( FOR ) } YY_BREAK case 18: YY_RULE_SETUP #line 192 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( SEQ ) } +{ YY_TOKEN_ACTION( THIS ) } YY_BREAK case 19: YY_RULE_SETUP #line 193 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( ENDSEQ ) } +{ YY_TOKEN_ACTION( FUNCTION ) } YY_BREAK case 20: YY_RULE_SETUP #line 194 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( PAR ) } +{ YY_TOKEN_ACTION( DEFINED ) } YY_BREAK case 21: YY_RULE_SETUP #line 195 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( ENDPAR ) } +{ YY_TOKEN_ACTION( SEQ ) } YY_BREAK case 22: YY_RULE_SETUP #line 196 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( SKIP ) } +{ YY_TOKEN_ACTION( ENDSEQ ) } YY_BREAK case 23: YY_RULE_SETUP #line 197 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( LET ) } +{ YY_TOKEN_ACTION( PAR ) } YY_BREAK case 24: YY_RULE_SETUP #line 198 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( LOCAL ) } +{ YY_TOKEN_ACTION( ENDPAR ) } YY_BREAK case 25: YY_RULE_SETUP #line 199 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( IN ) } +{ YY_TOKEN_ACTION( SKIP ) } YY_BREAK case 26: YY_RULE_SETUP #line 200 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( FORALL ) } +{ YY_TOKEN_ACTION( LET ) } YY_BREAK case 27: YY_RULE_SETUP #line 201 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( CHOOSE ) } +{ YY_TOKEN_ACTION( LOCAL ) } YY_BREAK case 28: YY_RULE_SETUP #line 202 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( ITERATE ) } +{ YY_TOKEN_ACTION( IN ) } YY_BREAK case 29: YY_RULE_SETUP #line 203 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( DO ) } +{ YY_TOKEN_ACTION( FORALL ) } YY_BREAK case 30: YY_RULE_SETUP #line 204 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( IF ) } +{ YY_TOKEN_ACTION( CHOOSE ) } YY_BREAK case 31: YY_RULE_SETUP #line 205 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( THEN ) } +{ YY_TOKEN_ACTION( ITERATE ) } YY_BREAK case 32: YY_RULE_SETUP #line 206 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( ELSE ) } +{ YY_TOKEN_ACTION( DO ) } YY_BREAK case 33: YY_RULE_SETUP #line 207 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( CASE ) } +{ YY_TOKEN_ACTION( IF ) } YY_BREAK case 34: YY_RULE_SETUP #line 208 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( OF ) } +{ YY_TOKEN_ACTION( THEN ) } YY_BREAK case 35: YY_RULE_SETUP #line 209 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( DEFAULT ) } +{ YY_TOKEN_ACTION( ELSE ) } YY_BREAK case 36: YY_RULE_SETUP #line 210 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( HOLDS ) } +{ YY_TOKEN_ACTION( CASE ) } YY_BREAK case 37: YY_RULE_SETUP #line 211 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( EXISTS ) } +{ YY_TOKEN_ACTION( OF ) } YY_BREAK case 38: YY_RULE_SETUP #line 212 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( WITH ) } +{ YY_TOKEN_ACTION( DEFAULT ) } YY_BREAK case 39: YY_RULE_SETUP #line 213 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( AS ) } +{ YY_TOKEN_ACTION( HOLDS ) } YY_BREAK case 40: YY_RULE_SETUP #line 214 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( WHILE ) } +{ YY_TOKEN_ACTION( EXISTS ) } YY_BREAK case 41: YY_RULE_SETUP #line 215 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( UNDEF ) } +{ YY_TOKEN_ACTION( WITH ) } YY_BREAK case 42: YY_RULE_SETUP #line 216 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( FALSE ) } +{ YY_TOKEN_ACTION( AS ) } YY_BREAK case 43: YY_RULE_SETUP #line 217 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( TRUE ) } +{ YY_TOKEN_ACTION( WHILE ) } YY_BREAK case 44: YY_RULE_SETUP #line 218 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( AND ) } +{ YY_TOKEN_ACTION( UNDEF ) } YY_BREAK case 45: YY_RULE_SETUP #line 219 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( OR ) } +{ YY_TOKEN_ACTION( FALSE ) } YY_BREAK case 46: YY_RULE_SETUP #line 220 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( XOR ) } +{ YY_TOKEN_ACTION( TRUE ) } YY_BREAK case 47: YY_RULE_SETUP #line 221 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( IMPLIES ) } +{ YY_TOKEN_ACTION( AND ) } YY_BREAK case 48: YY_RULE_SETUP #line 222 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( NOT ) } +{ YY_TOKEN_ACTION( OR ) } YY_BREAK case 49: YY_RULE_SETUP #line 223 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( PLUS ) } +{ YY_TOKEN_ACTION( XOR ) } YY_BREAK case 50: YY_RULE_SETUP #line 224 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( MINUS ) } +{ YY_TOKEN_ACTION( IMPLIES ) } YY_BREAK case 51: YY_RULE_SETUP #line 225 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( EQUAL ) } +{ YY_TOKEN_ACTION( NOT ) } YY_BREAK case 52: YY_RULE_SETUP #line 226 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( LPAREN ) } +{ YY_TOKEN_ACTION( PLUS ) } YY_BREAK case 53: YY_RULE_SETUP #line 227 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( RPAREN ) } +{ YY_TOKEN_ACTION( MINUS ) } YY_BREAK case 54: YY_RULE_SETUP #line 228 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( LSQPAREN ) } +{ YY_TOKEN_ACTION( EQUAL ) } YY_BREAK case 55: YY_RULE_SETUP #line 229 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( RSQPAREN ) } +{ YY_TOKEN_ACTION( LPAREN ) } YY_BREAK case 56: YY_RULE_SETUP #line 230 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( LCURPAREN ) } +{ YY_TOKEN_ACTION( RPAREN ) } YY_BREAK case 57: YY_RULE_SETUP #line 231 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( RCURPAREN ) } +{ YY_TOKEN_ACTION( LSQPAREN ) } YY_BREAK case 58: YY_RULE_SETUP #line 232 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( COLON ) } +{ YY_TOKEN_ACTION( RSQPAREN ) } YY_BREAK case 59: YY_RULE_SETUP #line 233 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( DOUBLECOLON ) } +{ YY_TOKEN_ACTION( LCURPAREN ) } YY_BREAK case 60: YY_RULE_SETUP #line 234 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( UNDERLINE ) } +{ YY_TOKEN_ACTION( RCURPAREN ) } YY_BREAK case 61: YY_RULE_SETUP #line 235 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( VERTICAL_BAR ) } +{ YY_TOKEN_ACTION( COLON ) } YY_BREAK case 62: YY_RULE_SETUP #line 236 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( AT ) } +{ YY_TOKEN_ACTION( DOUBLECOLON ) } YY_BREAK case 63: YY_RULE_SETUP #line 237 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( COMMA ) } +{ YY_TOKEN_ACTION( UNDERLINE ) } YY_BREAK case 64: YY_RULE_SETUP #line 238 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( LESSER ) } +{ YY_TOKEN_ACTION( VERTICAL_BAR ) } YY_BREAK case 65: YY_RULE_SETUP #line 239 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( GREATER ) } +{ YY_TOKEN_ACTION( AT ) } YY_BREAK case 66: YY_RULE_SETUP #line 240 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( ASTERIX ) } +{ YY_TOKEN_ACTION( COMMA ) } YY_BREAK case 67: YY_RULE_SETUP #line 241 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( SLASH ) } +{ YY_TOKEN_ACTION( LESSER ) } YY_BREAK case 68: YY_RULE_SETUP #line 242 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( PERCENT ) } +{ YY_TOKEN_ACTION( GREATER ) } YY_BREAK case 69: YY_RULE_SETUP #line 243 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( CARET ) } +{ YY_TOKEN_ACTION( ASTERIX ) } YY_BREAK case 70: YY_RULE_SETUP #line 244 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( MARK ) } +{ YY_TOKEN_ACTION( SLASH ) } YY_BREAK case 71: YY_RULE_SETUP #line 245 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( DOTDOT ) } +{ YY_TOKEN_ACTION( PERCENT ) } YY_BREAK case 72: YY_RULE_SETUP #line 246 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( DOT ) } +{ YY_TOKEN_ACTION( CARET ) } YY_BREAK case 73: YY_RULE_SETUP #line 247 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( MAPS ) } +{ YY_TOKEN_ACTION( MARK ) } YY_BREAK case 74: YY_RULE_SETUP #line 248 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( ARROW ) } +{ YY_TOKEN_ACTION( DOTDOT ) } YY_BREAK case 75: YY_RULE_SETUP #line 249 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( UPDATE ) } +{ YY_TOKEN_ACTION( DOT ) } YY_BREAK case 76: YY_RULE_SETUP #line 250 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( NEQUAL ) } +{ YY_TOKEN_ACTION( MAPS ) } YY_BREAK case 77: YY_RULE_SETUP #line 251 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( LESSEQ ) } +{ YY_TOKEN_ACTION( ARROW ) } YY_BREAK case 78: YY_RULE_SETUP #line 252 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( GREATEREQ ) } +{ YY_TOKEN_ACTION( UPDATE ) } YY_BREAK case 79: YY_RULE_SETUP #line 253 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( SEQ_BRACKET ) } +{ YY_TOKEN_ACTION( NEQUAL ) } YY_BREAK case 80: YY_RULE_SETUP #line 254 "obj/src/GrammarLexer.l" -{ YY_TOKEN_ACTION( ENDSEQ_BRACKET ) } +{ YY_TOKEN_ACTION( LESSEQ ) } YY_BREAK case 81: YY_RULE_SETUP +#line 255 "obj/src/GrammarLexer.l" +{ YY_TOKEN_ACTION( GREATEREQ ) } + YY_BREAK +case 82: +YY_RULE_SETUP #line 256 "obj/src/GrammarLexer.l" +{ YY_TOKEN_ACTION( SEQ_BRACKET ) } + YY_BREAK +case 83: +YY_RULE_SETUP +#line 257 "obj/src/GrammarLexer.l" +{ YY_TOKEN_ACTION( ENDSEQ_BRACKET ) } + YY_BREAK +case 84: +YY_RULE_SETUP +#line 259 "obj/src/GrammarLexer.l" { // space const auto span = Ast::make< Span >( m_loc, Grammar::Span::SPACE, yyleng); m_spans->add(span); m_loc.step(); } YY_BREAK -case 82: +case 85: YY_RULE_SETUP -#line 262 "obj/src/GrammarLexer.l" +#line 265 "obj/src/GrammarLexer.l" { // carriage return m_loc.step(); } YY_BREAK -case 83: +case 86: YY_RULE_SETUP -#line 266 "obj/src/GrammarLexer.l" +#line 269 "obj/src/GrammarLexer.l" { // tabulator const auto span = Ast::make< Span >( m_loc, Grammar::Span::TABULATOR, yyleng ); m_spans->add(span); m_loc.step(); } YY_BREAK -case 84: -/* rule 84 can match eol */ +case 87: +/* rule 87 can match eol */ YY_RULE_SETUP -#line 272 "obj/src/GrammarLexer.l" +#line 275 "obj/src/GrammarLexer.l" { // newline m_loc.lines( yyleng ); const auto span = Ast::make< Span >( m_loc, Grammar::Span::NEWLINE, yyleng ); @@ -1430,9 +1450,9 @@ YY_RULE_SETUP m_loc.step(); } YY_BREAK -case 85: +case 88: YY_RULE_SETUP -#line 279 "obj/src/GrammarLexer.l" +#line 282 "obj/src/GrammarLexer.l" { // ASCII identifier characters START m_strbuf.clear(); @@ -1456,9 +1476,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 89: YY_RULE_SETUP -#line 302 "obj/src/GrammarLexer.l" +#line 305 "obj/src/GrammarLexer.l" { // UTF-8 identifier character START m_strbuf.clear(); @@ -1467,9 +1487,9 @@ YY_RULE_SETUP BEGIN( YY_IDENTIFIER ); } YY_BREAK -case 87: +case 90: YY_RULE_SETUP -#line 310 "obj/src/GrammarLexer.l" +#line 313 "obj/src/GrammarLexer.l" { // UTF-8 (byte length 2, 3, and 4) character m_loc.columns( -yyleng+1 ); @@ -1485,18 +1505,18 @@ YY_RULE_SETUP m_strbuf.append( yytext ); } YY_BREAK -case 88: +case 91: YY_RULE_SETUP -#line 325 "obj/src/GrammarLexer.l" +#line 328 "obj/src/GrammarLexer.l" { // ASCII characters m_strbuf.append( yytext ); } YY_BREAK -case 89: -/* rule 89 can match eol */ +case 92: +/* rule 92 can match eol */ YY_RULE_SETUP -#line 330 "obj/src/GrammarLexer.l" +#line 333 "obj/src/GrammarLexer.l" { const auto identifier = Ast::make< Identifier >( m_loc, m_strbuf ); identifier->setSpans( fetchSpansAndReset() ); @@ -1506,9 +1526,9 @@ YY_RULE_SETUP return token; } YY_BREAK -case 90: +case 93: YY_RULE_SETUP -#line 339 "obj/src/GrammarLexer.l" +#line 342 "obj/src/GrammarLexer.l" { // invalid identifier character detected, unput and return identifier token m_loc.columns( -yyleng ); @@ -1519,36 +1539,36 @@ YY_RULE_SETUP return Parser::make_IDENTIFIER( identifier, m_loc ); } YY_BREAK -case 91: +case 94: YY_RULE_SETUP -#line 349 "obj/src/GrammarLexer.l" +#line 352 "obj/src/GrammarLexer.l" { // single-line comments m_strbuf.clear(); m_strbuf.append( yytext ); BEGIN( YY_INLINE_COMMENT ); } YY_BREAK -case 92: +case 95: YY_RULE_SETUP -#line 355 "obj/src/GrammarLexer.l" +#line 358 "obj/src/GrammarLexer.l" { // restricted extended ASCII or UTF-8 (byte length 1) character m_strbuf.append( yytext ); } YY_BREAK -case 93: +case 96: YY_RULE_SETUP -#line 360 "obj/src/GrammarLexer.l" +#line 363 "obj/src/GrammarLexer.l" { // UTF-8 (byte length 2, 3, and 4) character m_loc.columns( -yyleng+1 ); m_strbuf.append( yytext ); } YY_BREAK -case 94: -/* rule 94 can match eol */ +case 97: +/* rule 97 can match eol */ YY_RULE_SETUP -#line 366 "obj/src/GrammarLexer.l" +#line 369 "obj/src/GrammarLexer.l" { m_loc.lines( yyleng ); m_strbuf.append( yytext ); @@ -1586,25 +1606,25 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(YY_INLINE_COMMENT): -#line 402 "obj/src/GrammarLexer.l" +#line 405 "obj/src/GrammarLexer.l" { const auto span = Ast::make< Span >( m_loc, Grammar::Span::INLINE_COMMENT, m_strbuf.length() ); m_spans->add(span); BEGIN( INITIAL ); } YY_BREAK -case 95: +case 98: YY_RULE_SETUP -#line 408 "obj/src/GrammarLexer.l" +#line 411 "obj/src/GrammarLexer.l" { // block comments m_strbuf.clear(); m_strbuf.append( yytext ); BEGIN( YY_BLOCK_COMMENT ); } YY_BREAK -case 96: +case 99: YY_RULE_SETUP -#line 414 "obj/src/GrammarLexer.l" +#line 417 "obj/src/GrammarLexer.l" { m_strbuf.append( yytext ); const auto span = Ast::make< Span >( m_loc, Grammar::Span::BLOCK_COMMENT, m_strbuf.length() ); @@ -1613,26 +1633,26 @@ YY_RULE_SETUP BEGIN( INITIAL ); } YY_BREAK -case 97: -/* rule 97 can match eol */ +case 100: +/* rule 100 can match eol */ YY_RULE_SETUP -#line 422 "obj/src/GrammarLexer.l" +#line 425 "obj/src/GrammarLexer.l" { m_strbuf.append( yytext ); m_loc.lines( yyleng ); } YY_BREAK -case 98: +case 101: YY_RULE_SETUP -#line 427 "obj/src/GrammarLexer.l" +#line 430 "obj/src/GrammarLexer.l" { // restricted extended ASCII or UTF-8 (byte length 1) character m_strbuf.append( yytext ); } YY_BREAK -case 99: +case 102: YY_RULE_SETUP -#line 432 "obj/src/GrammarLexer.l" +#line 435 "obj/src/GrammarLexer.l" { // UTF-8 (byte length 2, 3, and 4) character m_loc.columns( -yyleng+1 ); @@ -1640,24 +1660,24 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(YY_BLOCK_COMMENT): -#line 438 "obj/src/GrammarLexer.l" +#line 441 "obj/src/GrammarLexer.l" { m_log.error( {m_loc}, "multiline comment not terminated", Code::SyntaxErrorUnclosedComment ); BEGIN( INITIAL ); yyterminate(); } YY_BREAK -case 100: +case 103: YY_RULE_SETUP -#line 444 "obj/src/GrammarLexer.l" +#line 447 "obj/src/GrammarLexer.l" { // strings m_strbuf.clear(); BEGIN( YY_STRING ); } YY_BREAK -case 101: +case 104: YY_RULE_SETUP -#line 449 "obj/src/GrammarLexer.l" +#line 452 "obj/src/GrammarLexer.l" { BEGIN( INITIAL ); ValueLiteral::Ptr valueLiteral = nullptr; @@ -1674,82 +1694,82 @@ YY_RULE_SETUP return Parser::make_STRING( valueLiteral, m_loc ); } YY_BREAK -case 102: +case 105: YY_RULE_SETUP -#line 465 "obj/src/GrammarLexer.l" +#line 468 "obj/src/GrammarLexer.l" { // restricted extended ASCII or UTF-8 (byte length 1) character without '"' (0x22) m_strbuf.append( yytext ); } YY_BREAK -case 103: +case 106: YY_RULE_SETUP -#line 470 "obj/src/GrammarLexer.l" +#line 473 "obj/src/GrammarLexer.l" { // UTF-8 (byte length 2, 3, and 4) character m_loc.columns( -yyleng+1 ); m_strbuf.append( yytext ); } YY_BREAK -case 104: -/* rule 104 can match eol */ +case 107: +/* rule 107 can match eol */ YY_RULE_SETUP -#line 476 "obj/src/GrammarLexer.l" +#line 479 "obj/src/GrammarLexer.l" { m_loc.lines( yyleng ); } YY_BREAK -case 105: +case 108: YY_RULE_SETUP -#line 480 "obj/src/GrammarLexer.l" +#line 483 "obj/src/GrammarLexer.l" { m_strbuf.append( "\n" ); } YY_BREAK -case 106: +case 109: YY_RULE_SETUP -#line 484 "obj/src/GrammarLexer.l" +#line 487 "obj/src/GrammarLexer.l" { m_strbuf.append( "\t" ); } YY_BREAK -case 107: +case 110: YY_RULE_SETUP -#line 488 "obj/src/GrammarLexer.l" +#line 491 "obj/src/GrammarLexer.l" { m_strbuf.append( yytext + 1 ); } YY_BREAK -case 108: +case 111: YY_RULE_SETUP -#line 492 "obj/src/GrammarLexer.l" +#line 495 "obj/src/GrammarLexer.l" { m_log.error( {m_loc}, "unrecognized escape sequence", Code::SyntaxErrorUnrecognizedCharacter ); } YY_BREAK case YY_STATE_EOF(YY_STRING): -#line 496 "obj/src/GrammarLexer.l" +#line 499 "obj/src/GrammarLexer.l" { m_log.error( {m_loc}, "string not terminated", Code::SyntaxErrorUnclosedString ); BEGIN( INITIAL ); yyterminate(); } YY_BREAK -case 109: +case 112: YY_RULE_SETUP -#line 502 "obj/src/GrammarLexer.l" +#line 505 "obj/src/GrammarLexer.l" { m_log.error( {m_loc}, "unrecognized character '" + std::string( yytext ) + "'", Code::SyntaxErrorUnrecognizedCharacter ); m_loc.step(); } YY_BREAK -case 110: +case 113: YY_RULE_SETUP -#line 508 "obj/src/GrammarLexer.l" +#line 511 "obj/src/GrammarLexer.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 1752 "src/various/GrammarLexer.cpp" +#line 1772 "src/various/GrammarLexer.cpp" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(YY_IDENTIFIER): yyterminate(); @@ -2168,7 +2188,7 @@ int yyFlexLexer::yy_get_next_buffer() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 309 ) + if ( yy_current_state >= 317 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -2196,11 +2216,11 @@ int yyFlexLexer::yy_get_next_buffer() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 309 ) + if ( yy_current_state >= 317 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 308); + yy_is_jam = (yy_current_state == 316); return yy_is_jam ? 0 : yy_current_state; } @@ -2714,7 +2734,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 508 "obj/src/GrammarLexer.l" +#line 511 "obj/src/GrammarLexer.l" // diff --git a/src/various/GrammarParser.cpp b/src/various/GrammarParser.cpp index 4a9b6cf3..8d21d2b8 100644 --- a/src/various/GrammarParser.cpp +++ b/src/various/GrammarParser.cpp @@ -234,6 +234,9 @@ namespace libcasm_fe { case symbol_kind::S_IMPORT: // "import" case symbol_kind::S_STRUCTURE: // "structure" case symbol_kind::S_FEATURE: // "feature" + case symbol_kind::S_IMPLEMENTS: // "implements" + case symbol_kind::S_FOR: // "for" + case symbol_kind::S_THIS: // "this" case symbol_kind::S_FUNCTION: // "function" case symbol_kind::S_DEFINED: // "defined" case symbol_kind::S_SEQ: // "seq" @@ -362,16 +365,24 @@ namespace libcasm_fe { value.YY_MOVE_OR_COPY< ConditionalRule::Ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_DeclarationDefinition: // DeclarationDefinition + value.YY_MOVE_OR_COPY< DeclarationDefinition::Ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_MaybeDefined: // MaybeDefined value.YY_MOVE_OR_COPY< Defined::Ptr > (YY_MOVE (that.value)); break; case symbol_kind::S_AttributedDefinition: // AttributedDefinition case symbol_kind::S_Definition: // Definition + case symbol_kind::S_FeatureDeclarationOrDefinition: // FeatureDeclarationOrDefinition + case symbol_kind::S_ImplementationDefinitionDefinition: // ImplementationDefinitionDefinition value.YY_MOVE_OR_COPY< Definition::Ptr > (YY_MOVE (that.value)); break; case symbol_kind::S_Definitions: // Definitions + case symbol_kind::S_FeatureDeclarationsAndDefinitions: // FeatureDeclarationsAndDefinitions + case symbol_kind::S_ImplementationDefinitionDefinitions: // ImplementationDefinitionDefinitions value.YY_MOVE_OR_COPY< Definitions::Ptr > (YY_MOVE (that.value)); break; @@ -413,6 +424,10 @@ namespace libcasm_fe { value.YY_MOVE_OR_COPY< Expressions::Ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_FeatureDefinition: // FeatureDefinition + value.YY_MOVE_OR_COPY< FeatureDefinition::Ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_FixedSizedType: // FixedSizedType value.YY_MOVE_OR_COPY< FixedSizedType::Ptr > (YY_MOVE (that.value)); break; @@ -444,6 +459,10 @@ namespace libcasm_fe { value.YY_MOVE_OR_COPY< IdentifierPath::Ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_ImplementationDefinition: // ImplementationDefinition + value.YY_MOVE_OR_COPY< ImplementationDefinition::Ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_ImportDefinition: // ImportDefinition value.YY_MOVE_OR_COPY< ImportDefinition::Ptr > (YY_MOVE (that.value)); break; @@ -671,6 +690,9 @@ namespace libcasm_fe { case symbol_kind::S_IMPORT: // "import" case symbol_kind::S_STRUCTURE: // "structure" case symbol_kind::S_FEATURE: // "feature" + case symbol_kind::S_IMPLEMENTS: // "implements" + case symbol_kind::S_FOR: // "for" + case symbol_kind::S_THIS: // "this" case symbol_kind::S_FUNCTION: // "function" case symbol_kind::S_DEFINED: // "defined" case symbol_kind::S_SEQ: // "seq" @@ -799,16 +821,24 @@ namespace libcasm_fe { value.move< ConditionalRule::Ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_DeclarationDefinition: // DeclarationDefinition + value.move< DeclarationDefinition::Ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_MaybeDefined: // MaybeDefined value.move< Defined::Ptr > (YY_MOVE (that.value)); break; case symbol_kind::S_AttributedDefinition: // AttributedDefinition case symbol_kind::S_Definition: // Definition + case symbol_kind::S_FeatureDeclarationOrDefinition: // FeatureDeclarationOrDefinition + case symbol_kind::S_ImplementationDefinitionDefinition: // ImplementationDefinitionDefinition value.move< Definition::Ptr > (YY_MOVE (that.value)); break; case symbol_kind::S_Definitions: // Definitions + case symbol_kind::S_FeatureDeclarationsAndDefinitions: // FeatureDeclarationsAndDefinitions + case symbol_kind::S_ImplementationDefinitionDefinitions: // ImplementationDefinitionDefinitions value.move< Definitions::Ptr > (YY_MOVE (that.value)); break; @@ -850,6 +880,10 @@ namespace libcasm_fe { value.move< Expressions::Ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_FeatureDefinition: // FeatureDefinition + value.move< FeatureDefinition::Ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_FixedSizedType: // FixedSizedType value.move< FixedSizedType::Ptr > (YY_MOVE (that.value)); break; @@ -881,6 +915,10 @@ namespace libcasm_fe { value.move< IdentifierPath::Ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_ImplementationDefinition: // ImplementationDefinition + value.move< ImplementationDefinition::Ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_ImportDefinition: // ImportDefinition value.move< ImportDefinition::Ptr > (YY_MOVE (that.value)); break; @@ -1108,6 +1146,9 @@ namespace libcasm_fe { case symbol_kind::S_IMPORT: // "import" case symbol_kind::S_STRUCTURE: // "structure" case symbol_kind::S_FEATURE: // "feature" + case symbol_kind::S_IMPLEMENTS: // "implements" + case symbol_kind::S_FOR: // "for" + case symbol_kind::S_THIS: // "this" case symbol_kind::S_FUNCTION: // "function" case symbol_kind::S_DEFINED: // "defined" case symbol_kind::S_SEQ: // "seq" @@ -1236,16 +1277,24 @@ namespace libcasm_fe { value.copy< ConditionalRule::Ptr > (that.value); break; + case symbol_kind::S_DeclarationDefinition: // DeclarationDefinition + value.copy< DeclarationDefinition::Ptr > (that.value); + break; + case symbol_kind::S_MaybeDefined: // MaybeDefined value.copy< Defined::Ptr > (that.value); break; case symbol_kind::S_AttributedDefinition: // AttributedDefinition case symbol_kind::S_Definition: // Definition + case symbol_kind::S_FeatureDeclarationOrDefinition: // FeatureDeclarationOrDefinition + case symbol_kind::S_ImplementationDefinitionDefinition: // ImplementationDefinitionDefinition value.copy< Definition::Ptr > (that.value); break; case symbol_kind::S_Definitions: // Definitions + case symbol_kind::S_FeatureDeclarationsAndDefinitions: // FeatureDeclarationsAndDefinitions + case symbol_kind::S_ImplementationDefinitionDefinitions: // ImplementationDefinitionDefinitions value.copy< Definitions::Ptr > (that.value); break; @@ -1287,6 +1336,10 @@ namespace libcasm_fe { value.copy< Expressions::Ptr > (that.value); break; + case symbol_kind::S_FeatureDefinition: // FeatureDefinition + value.copy< FeatureDefinition::Ptr > (that.value); + break; + case symbol_kind::S_FixedSizedType: // FixedSizedType value.copy< FixedSizedType::Ptr > (that.value); break; @@ -1318,6 +1371,10 @@ namespace libcasm_fe { value.copy< IdentifierPath::Ptr > (that.value); break; + case symbol_kind::S_ImplementationDefinition: // ImplementationDefinition + value.copy< ImplementationDefinition::Ptr > (that.value); + break; + case symbol_kind::S_ImportDefinition: // ImportDefinition value.copy< ImportDefinition::Ptr > (that.value); break; @@ -1544,6 +1601,9 @@ namespace libcasm_fe { case symbol_kind::S_IMPORT: // "import" case symbol_kind::S_STRUCTURE: // "structure" case symbol_kind::S_FEATURE: // "feature" + case symbol_kind::S_IMPLEMENTS: // "implements" + case symbol_kind::S_FOR: // "for" + case symbol_kind::S_THIS: // "this" case symbol_kind::S_FUNCTION: // "function" case symbol_kind::S_DEFINED: // "defined" case symbol_kind::S_SEQ: // "seq" @@ -1672,16 +1732,24 @@ namespace libcasm_fe { value.move< ConditionalRule::Ptr > (that.value); break; + case symbol_kind::S_DeclarationDefinition: // DeclarationDefinition + value.move< DeclarationDefinition::Ptr > (that.value); + break; + case symbol_kind::S_MaybeDefined: // MaybeDefined value.move< Defined::Ptr > (that.value); break; case symbol_kind::S_AttributedDefinition: // AttributedDefinition case symbol_kind::S_Definition: // Definition + case symbol_kind::S_FeatureDeclarationOrDefinition: // FeatureDeclarationOrDefinition + case symbol_kind::S_ImplementationDefinitionDefinition: // ImplementationDefinitionDefinition value.move< Definition::Ptr > (that.value); break; case symbol_kind::S_Definitions: // Definitions + case symbol_kind::S_FeatureDeclarationsAndDefinitions: // FeatureDeclarationsAndDefinitions + case symbol_kind::S_ImplementationDefinitionDefinitions: // ImplementationDefinitionDefinitions value.move< Definitions::Ptr > (that.value); break; @@ -1723,6 +1791,10 @@ namespace libcasm_fe { value.move< Expressions::Ptr > (that.value); break; + case symbol_kind::S_FeatureDefinition: // FeatureDefinition + value.move< FeatureDefinition::Ptr > (that.value); + break; + case symbol_kind::S_FixedSizedType: // FixedSizedType value.move< FixedSizedType::Ptr > (that.value); break; @@ -1754,6 +1826,10 @@ namespace libcasm_fe { value.move< IdentifierPath::Ptr > (that.value); break; + case symbol_kind::S_ImplementationDefinition: // ImplementationDefinition + value.move< ImplementationDefinition::Ptr > (that.value); + break; + case symbol_kind::S_ImportDefinition: // ImportDefinition value.move< ImportDefinition::Ptr > (that.value); break; @@ -2225,6 +2301,9 @@ namespace libcasm_fe { case symbol_kind::S_IMPORT: // "import" case symbol_kind::S_STRUCTURE: // "structure" case symbol_kind::S_FEATURE: // "feature" + case symbol_kind::S_IMPLEMENTS: // "implements" + case symbol_kind::S_FOR: // "for" + case symbol_kind::S_THIS: // "this" case symbol_kind::S_FUNCTION: // "function" case symbol_kind::S_DEFINED: // "defined" case symbol_kind::S_SEQ: // "seq" @@ -2353,16 +2432,24 @@ namespace libcasm_fe { yylhs.value.emplace< ConditionalRule::Ptr > (); break; + case symbol_kind::S_DeclarationDefinition: // DeclarationDefinition + yylhs.value.emplace< DeclarationDefinition::Ptr > (); + break; + case symbol_kind::S_MaybeDefined: // MaybeDefined yylhs.value.emplace< Defined::Ptr > (); break; case symbol_kind::S_AttributedDefinition: // AttributedDefinition case symbol_kind::S_Definition: // Definition + case symbol_kind::S_FeatureDeclarationOrDefinition: // FeatureDeclarationOrDefinition + case symbol_kind::S_ImplementationDefinitionDefinition: // ImplementationDefinitionDefinition yylhs.value.emplace< Definition::Ptr > (); break; case symbol_kind::S_Definitions: // Definitions + case symbol_kind::S_FeatureDeclarationsAndDefinitions: // FeatureDeclarationsAndDefinitions + case symbol_kind::S_ImplementationDefinitionDefinitions: // ImplementationDefinitionDefinitions yylhs.value.emplace< Definitions::Ptr > (); break; @@ -2404,6 +2491,10 @@ namespace libcasm_fe { yylhs.value.emplace< Expressions::Ptr > (); break; + case symbol_kind::S_FeatureDefinition: // FeatureDefinition + yylhs.value.emplace< FeatureDefinition::Ptr > (); + break; + case symbol_kind::S_FixedSizedType: // FixedSizedType yylhs.value.emplace< FixedSizedType::Ptr > (); break; @@ -2435,6 +2526,10 @@ namespace libcasm_fe { yylhs.value.emplace< IdentifierPath::Ptr > (); break; + case symbol_kind::S_ImplementationDefinition: // ImplementationDefinition + yylhs.value.emplace< ImplementationDefinition::Ptr > (); + break; + case symbol_kind::S_ImportDefinition: // ImportDefinition yylhs.value.emplace< ImportDefinition::Ptr > (); break; @@ -2658,268 +2753,284 @@ namespace libcasm_fe { switch (yyn) { case 2: // Specification: Header Definitions -#line 424 "../../obj/src/GrammarParser.y" +#line 432 "../../obj/src/GrammarParser.y" { m_specification.setHeader( yystack_[1].value.as < HeaderDefinition::Ptr > () ); m_specification.setDefinitions( yystack_[0].value.as < Definitions::Ptr > () ); m_specification.setSpans( m_lexer.fetchSpansAndReset() ); } -#line 2668 "GrammarParser.cpp" +#line 2763 "GrammarParser.cpp" break; case 3: // Header: Attributes "CASM" -#line 434 "../../obj/src/GrammarParser.y" +#line 442 "../../obj/src/GrammarParser.y" { auto definition = Ast::make< HeaderDefinition >( yylhs.location, yystack_[0].value.as < Ast::Token::Ptr > () ); definition->setAttributes( yystack_[1].value.as < Attributes::Ptr > () ); yylhs.value.as < HeaderDefinition::Ptr > () = definition; } -#line 2678 "GrammarParser.cpp" +#line 2773 "GrammarParser.cpp" break; case 4: // Header: "CASM" -#line 440 "../../obj/src/GrammarParser.y" +#line 448 "../../obj/src/GrammarParser.y" { yylhs.value.as < HeaderDefinition::Ptr > () = Ast::make< HeaderDefinition >( yylhs.location, yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 2686 "GrammarParser.cpp" +#line 2781 "GrammarParser.cpp" break; case 5: // Definitions: Definitions AttributedDefinition -#line 448 "../../obj/src/GrammarParser.y" +#line 456 "../../obj/src/GrammarParser.y" { auto definitions = yystack_[1].value.as < Definitions::Ptr > (); definitions->add( yystack_[0].value.as < Definition::Ptr > () ); yylhs.value.as < Definitions::Ptr > () = definitions; } -#line 2696 "GrammarParser.cpp" +#line 2791 "GrammarParser.cpp" break; case 6: // Definitions: AttributedDefinition -#line 454 "../../obj/src/GrammarParser.y" +#line 462 "../../obj/src/GrammarParser.y" { auto definitions = Ast::make< Definitions >( yylhs.location ); definitions->add( yystack_[0].value.as < Definition::Ptr > () ); yylhs.value.as < Definitions::Ptr > () = definitions; } -#line 2706 "GrammarParser.cpp" +#line 2801 "GrammarParser.cpp" break; case 7: // AttributedDefinition: Attributes Definition -#line 464 "../../obj/src/GrammarParser.y" +#line 472 "../../obj/src/GrammarParser.y" { auto definition = yystack_[0].value.as < Definition::Ptr > (); definition->setAttributes( yystack_[1].value.as < Attributes::Ptr > () ); yylhs.value.as < Definition::Ptr > () = definition; } -#line 2716 "GrammarParser.cpp" +#line 2811 "GrammarParser.cpp" break; case 8: // AttributedDefinition: Definition -#line 470 "../../obj/src/GrammarParser.y" +#line 478 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < Definition::Ptr > (); } -#line 2724 "GrammarParser.cpp" +#line 2819 "GrammarParser.cpp" break; case 9: // AttributedDefinition: error -#line 474 "../../obj/src/GrammarParser.y" +#line 482 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = nullptr; } -#line 2732 "GrammarParser.cpp" +#line 2827 "GrammarParser.cpp" break; case 10: // Definition: InitDefinition -#line 482 "../../obj/src/GrammarParser.y" +#line 490 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < InitDefinition::Ptr > (); } -#line 2740 "GrammarParser.cpp" +#line 2835 "GrammarParser.cpp" break; case 11: // Definition: EnumerationDefinition -#line 486 "../../obj/src/GrammarParser.y" +#line 494 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < EnumerationDefinition::Ptr > (); } -#line 2748 "GrammarParser.cpp" +#line 2843 "GrammarParser.cpp" break; case 12: // Definition: DerivedDefinition -#line 490 "../../obj/src/GrammarParser.y" +#line 498 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < DerivedDefinition::Ptr > (); } -#line 2756 "GrammarParser.cpp" +#line 2851 "GrammarParser.cpp" break; case 13: // Definition: RuleDefinition -#line 494 "../../obj/src/GrammarParser.y" +#line 502 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < RuleDefinition::Ptr > (); } -#line 2764 "GrammarParser.cpp" +#line 2859 "GrammarParser.cpp" break; case 14: // Definition: FunctionDefinition -#line 498 "../../obj/src/GrammarParser.y" +#line 506 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < FunctionDefinition::Ptr > (); } -#line 2772 "GrammarParser.cpp" +#line 2867 "GrammarParser.cpp" break; case 15: // Definition: UsingDefinition -#line 502 "../../obj/src/GrammarParser.y" +#line 510 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < UsingDefinition::Ptr > (); } -#line 2780 "GrammarParser.cpp" +#line 2875 "GrammarParser.cpp" break; case 16: // Definition: UsingPathDefinition -#line 506 "../../obj/src/GrammarParser.y" +#line 514 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < UsingPathDefinition::Ptr > (); } -#line 2788 "GrammarParser.cpp" +#line 2883 "GrammarParser.cpp" break; case 17: // Definition: InvariantDefinition -#line 510 "../../obj/src/GrammarParser.y" +#line 518 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < InvariantDefinition::Ptr > (); } -#line 2796 "GrammarParser.cpp" +#line 2891 "GrammarParser.cpp" break; case 18: // Definition: ImportDefinition -#line 514 "../../obj/src/GrammarParser.y" +#line 522 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < ImportDefinition::Ptr > (); } -#line 2804 "GrammarParser.cpp" +#line 2899 "GrammarParser.cpp" break; case 19: // Definition: StructureDefinition -#line 518 "../../obj/src/GrammarParser.y" +#line 526 "../../obj/src/GrammarParser.y" { yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < StructureDefinition::Ptr > (); } -#line 2812 "GrammarParser.cpp" +#line 2907 "GrammarParser.cpp" break; - case 20: // InitDefinition: "init" IdentifierPath -#line 526 "../../obj/src/GrammarParser.y" + case 20: // Definition: FeatureDefinition +#line 530 "../../obj/src/GrammarParser.y" + { + yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < FeatureDefinition::Ptr > (); + } +#line 2915 "GrammarParser.cpp" + break; + + case 21: // Definition: ImplementationDefinition +#line 534 "../../obj/src/GrammarParser.y" + { + yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < ImplementationDefinition::Ptr > (); + } +#line 2923 "GrammarParser.cpp" + break; + + case 22: // InitDefinition: "init" IdentifierPath +#line 542 "../../obj/src/GrammarParser.y" { yylhs.value.as < InitDefinition::Ptr > () = Ast::make< InitDefinition >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < IdentifierPath::Ptr > () ); } -#line 2820 "GrammarParser.cpp" +#line 2931 "GrammarParser.cpp" break; - case 21: // InitDefinition: "init" "{" Initializers "}" -#line 530 "../../obj/src/GrammarParser.y" + case 23: // InitDefinition: "init" "{" Initializers "}" +#line 546 "../../obj/src/GrammarParser.y" { yylhs.value.as < InitDefinition::Ptr > () = Ast::make< InitDefinition >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Initializers::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 2828 "GrammarParser.cpp" +#line 2939 "GrammarParser.cpp" break; - case 22: // EnumerationDefinition: "enumeration" Identifier "=" "{" Enumerators "}" -#line 538 "../../obj/src/GrammarParser.y" + case 24: // EnumerationDefinition: "enumeration" Identifier "=" "{" Enumerators "}" +#line 554 "../../obj/src/GrammarParser.y" { yylhs.value.as < EnumerationDefinition::Ptr > () = Ast::make< EnumerationDefinition >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Identifier::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Enumerators::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 2836 "GrammarParser.cpp" +#line 2947 "GrammarParser.cpp" break; - case 23: // DerivedDefinition: "derived" Identifier "->" Type "=" Term -#line 546 "../../obj/src/GrammarParser.y" + case 25: // DerivedDefinition: "derived" Identifier "->" Type "=" Term +#line 562 "../../obj/src/GrammarParser.y" { const auto params = Ast::make< NodeList< VariableDefinition > >( yylhs.location ); yylhs.value.as < DerivedDefinition::Ptr > () = Ast::make< DerivedDefinition >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Identifier::Ptr > (), params, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 2845 "GrammarParser.cpp" +#line 2956 "GrammarParser.cpp" break; - case 24: // DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type "=" Term -#line 551 "../../obj/src/GrammarParser.y" + case 26: // DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type "=" Term +#line 567 "../../obj/src/GrammarParser.y" { yylhs.value.as < DerivedDefinition::Ptr > () = Ast::make< DerivedDefinition >( yylhs.location, yystack_[8].value.as < Ast::Token::Ptr > (), yystack_[7].value.as < Identifier::Ptr > (), yystack_[5].value.as < VariableDefinitions::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); yylhs.value.as < DerivedDefinition::Ptr > ()->setLeftBracketToken( yystack_[6].value.as < Ast::Token::Ptr > () ); yylhs.value.as < DerivedDefinition::Ptr > ()->setRightBracketToken( yystack_[4].value.as < Ast::Token::Ptr > () ); } -#line 2855 "GrammarParser.cpp" +#line 2966 "GrammarParser.cpp" break; - case 25: // DerivedDefinition: "derived" Identifier "(" error ")" "->" Type "=" Term -#line 557 "../../obj/src/GrammarParser.y" + case 27: // DerivedDefinition: "derived" Identifier "(" error ")" "->" Type "=" Term +#line 573 "../../obj/src/GrammarParser.y" { yylhs.value.as < DerivedDefinition::Ptr > () = nullptr; } -#line 2863 "GrammarParser.cpp" +#line 2974 "GrammarParser.cpp" break; - case 26: // RuleDefinition: "rule" Identifier "=" Rule -#line 565 "../../obj/src/GrammarParser.y" + case 28: // RuleDefinition: "rule" Identifier "=" Rule +#line 581 "../../obj/src/GrammarParser.y" { const auto params = Ast::make< NodeList< VariableDefinition > >( yylhs.location ); const auto vType = createVoidType( yylhs.location ); yylhs.value.as < RuleDefinition::Ptr > () = Ast::make< RuleDefinition >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Identifier::Ptr > (), params, Token::unresolved(), vType, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 2873 "GrammarParser.cpp" +#line 2984 "GrammarParser.cpp" break; - case 27: // RuleDefinition: "rule" Identifier "->" Type "=" Rule -#line 571 "../../obj/src/GrammarParser.y" + case 29: // RuleDefinition: "rule" Identifier "->" Type "=" Rule +#line 587 "../../obj/src/GrammarParser.y" { const auto params = Ast::make< NodeList< VariableDefinition > >( yylhs.location ); yylhs.value.as < RuleDefinition::Ptr > () = Ast::make< RuleDefinition >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Identifier::Ptr > (), params, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 2882 "GrammarParser.cpp" +#line 2993 "GrammarParser.cpp" break; - case 28: // RuleDefinition: "rule" Identifier "(" Parameters ")" "=" Rule -#line 576 "../../obj/src/GrammarParser.y" + case 30: // RuleDefinition: "rule" Identifier "(" Parameters ")" "=" Rule +#line 592 "../../obj/src/GrammarParser.y" { const auto vType = createVoidType( yylhs.location ); yylhs.value.as < RuleDefinition::Ptr > () = Ast::make< RuleDefinition >( yylhs.location, yystack_[6].value.as < Ast::Token::Ptr > (), yystack_[5].value.as < Identifier::Ptr > (), yystack_[3].value.as < VariableDefinitions::Ptr > (), Token::unresolved(), vType, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); yylhs.value.as < RuleDefinition::Ptr > ()->setLeftBracketToken( yystack_[4].value.as < Ast::Token::Ptr > () ); yylhs.value.as < RuleDefinition::Ptr > ()->setRightBracketToken( yystack_[2].value.as < Ast::Token::Ptr > () ); } -#line 2893 "GrammarParser.cpp" +#line 3004 "GrammarParser.cpp" break; - case 29: // RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type "=" Rule -#line 583 "../../obj/src/GrammarParser.y" + case 31: // RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type "=" Rule +#line 599 "../../obj/src/GrammarParser.y" { yylhs.value.as < RuleDefinition::Ptr > () = Ast::make< RuleDefinition >( yylhs.location, yystack_[8].value.as < Ast::Token::Ptr > (), yystack_[7].value.as < Identifier::Ptr > (), yystack_[5].value.as < VariableDefinitions::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); yylhs.value.as < RuleDefinition::Ptr > ()->setLeftBracketToken( yystack_[6].value.as < Ast::Token::Ptr > () ); yylhs.value.as < RuleDefinition::Ptr > ()->setRightBracketToken( yystack_[4].value.as < Ast::Token::Ptr > () ); } -#line 2903 "GrammarParser.cpp" +#line 3014 "GrammarParser.cpp" break; - case 30: // RuleDefinition: "rule" Identifier "(" error ")" "=" Rule -#line 589 "../../obj/src/GrammarParser.y" + case 32: // RuleDefinition: "rule" Identifier "(" error ")" "=" Rule +#line 605 "../../obj/src/GrammarParser.y" { yylhs.value.as < RuleDefinition::Ptr > () = nullptr; } -#line 2911 "GrammarParser.cpp" +#line 3022 "GrammarParser.cpp" break; - case 31: // RuleDefinition: "rule" Identifier "(" error ")" "->" Type "=" Rule -#line 593 "../../obj/src/GrammarParser.y" + case 33: // RuleDefinition: "rule" Identifier "(" error ")" "->" Type "=" Rule +#line 609 "../../obj/src/GrammarParser.y" { yylhs.value.as < RuleDefinition::Ptr > () = nullptr; } -#line 2919 "GrammarParser.cpp" +#line 3030 "GrammarParser.cpp" break; - case 32: // FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially -#line 601 "../../obj/src/GrammarParser.y" + case 34: // FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially +#line 617 "../../obj/src/GrammarParser.y" { yylhs.value.as < FunctionDefinition::Ptr > () = Ast::make< FunctionDefinition >( yylhs.location, yystack_[7].value.as < Ast::Token::Ptr > (), yystack_[6].value.as < Identifier::Ptr > (), yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Types::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Defined::Ptr > (), yystack_[0].value.as < Initially::Ptr > () ); @@ -2930,1169 +3041,1298 @@ namespace libcasm_fe { initializer->setFunction( yylhs.value.as < FunctionDefinition::Ptr > () ); } } -#line 2934 "GrammarParser.cpp" +#line 3045 "GrammarParser.cpp" break; - case 33: // EnumeratorDefinition: Identifier -#line 616 "../../obj/src/GrammarParser.y" + case 35: // EnumeratorDefinition: Identifier +#line 632 "../../obj/src/GrammarParser.y" { yylhs.value.as < EnumeratorDefinition::Ptr > () = Ast::make< EnumeratorDefinition >( yylhs.location, yystack_[0].value.as < Identifier::Ptr > () ); } -#line 2942 "GrammarParser.cpp" +#line 3053 "GrammarParser.cpp" break; - case 34: // EnumeratorDefinition: Attributes Identifier -#line 620 "../../obj/src/GrammarParser.y" + case 36: // EnumeratorDefinition: Attributes Identifier +#line 636 "../../obj/src/GrammarParser.y" { auto enumerator = Ast::make< EnumeratorDefinition >( yylhs.location, yystack_[0].value.as < Identifier::Ptr > () ); enumerator->setAttributes( yystack_[1].value.as < Attributes::Ptr > () ); yylhs.value.as < EnumeratorDefinition::Ptr > () = enumerator; } -#line 2952 "GrammarParser.cpp" +#line 3063 "GrammarParser.cpp" break; - case 35: // EnumeratorDefinition: error -#line 626 "../../obj/src/GrammarParser.y" + case 37: // EnumeratorDefinition: error +#line 642 "../../obj/src/GrammarParser.y" { yylhs.value.as < EnumeratorDefinition::Ptr > () = nullptr; } -#line 2960 "GrammarParser.cpp" +#line 3071 "GrammarParser.cpp" break; - case 36: // Enumerators: Enumerators "," EnumeratorDefinition -#line 634 "../../obj/src/GrammarParser.y" + case 38: // Enumerators: Enumerators "," EnumeratorDefinition +#line 650 "../../obj/src/GrammarParser.y" { auto enumerators = yystack_[2].value.as < Enumerators::Ptr > (); yystack_[0].value.as < EnumeratorDefinition::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); enumerators->add( yystack_[0].value.as < EnumeratorDefinition::Ptr > () ); yylhs.value.as < Enumerators::Ptr > () = enumerators; } -#line 2971 "GrammarParser.cpp" +#line 3082 "GrammarParser.cpp" break; - case 37: // Enumerators: EnumeratorDefinition -#line 641 "../../obj/src/GrammarParser.y" + case 39: // Enumerators: EnumeratorDefinition +#line 657 "../../obj/src/GrammarParser.y" { auto enumerators = Ast::make< Enumerators >( yylhs.location ); enumerators->add( yystack_[0].value.as < EnumeratorDefinition::Ptr > () ); yylhs.value.as < Enumerators::Ptr > () = enumerators; } -#line 2981 "GrammarParser.cpp" +#line 3092 "GrammarParser.cpp" break; - case 38: // UsingDefinition: "using" Identifier "=" Type -#line 651 "../../obj/src/GrammarParser.y" + case 40: // UsingDefinition: "using" Identifier "=" Type +#line 667 "../../obj/src/GrammarParser.y" { yylhs.value.as < UsingDefinition::Ptr > () = Ast::make< UsingDefinition >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Identifier::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); } -#line 2989 "GrammarParser.cpp" +#line 3100 "GrammarParser.cpp" break; - case 39: // UsingPathDefinition: "using" IdentifierPath -#line 659 "../../obj/src/GrammarParser.y" + case 41: // UsingPathDefinition: "using" IdentifierPath +#line 675 "../../obj/src/GrammarParser.y" { yylhs.value.as < UsingPathDefinition::Ptr > () = Ast::make< UsingPathDefinition >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < IdentifierPath::Ptr > () ); } -#line 2997 "GrammarParser.cpp" +#line 3108 "GrammarParser.cpp" break; - case 40: // UsingPathDefinition: "using" IdentifierPath "::" "*" -#line 663 "../../obj/src/GrammarParser.y" + case 42: // UsingPathDefinition: "using" IdentifierPath "::" "*" +#line 679 "../../obj/src/GrammarParser.y" { yylhs.value.as < UsingPathDefinition::Ptr > () = Ast::make< UsingPathDefinition >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < IdentifierPath::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3005 "GrammarParser.cpp" +#line 3116 "GrammarParser.cpp" break; - case 41: // InvariantDefinition: "invariant" Identifier "=" Term -#line 671 "../../obj/src/GrammarParser.y" + case 43: // InvariantDefinition: "invariant" Identifier "=" Term +#line 687 "../../obj/src/GrammarParser.y" { yylhs.value.as < InvariantDefinition::Ptr > () = Ast::make< InvariantDefinition >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Identifier::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 3013 "GrammarParser.cpp" +#line 3124 "GrammarParser.cpp" break; - case 42: // ImportDefinition: "import" IdentifierPath -#line 679 "../../obj/src/GrammarParser.y" + case 44: // ImportDefinition: "import" IdentifierPath +#line 695 "../../obj/src/GrammarParser.y" { yylhs.value.as < ImportDefinition::Ptr > () = Ast::make< ImportDefinition >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < IdentifierPath::Ptr > () ); } -#line 3021 "GrammarParser.cpp" +#line 3132 "GrammarParser.cpp" break; - case 43: // ImportDefinition: "import" IdentifierPath "as" Identifier -#line 683 "../../obj/src/GrammarParser.y" + case 45: // ImportDefinition: "import" IdentifierPath "as" Identifier +#line 699 "../../obj/src/GrammarParser.y" { yylhs.value.as < ImportDefinition::Ptr > () = Ast::make< ImportDefinition >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < IdentifierPath::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Identifier::Ptr > () ); } -#line 3029 "GrammarParser.cpp" +#line 3140 "GrammarParser.cpp" break; - case 44: // StructureDefinition: "structure" Identifier "=" "{" FunctionDefinition "}" -#line 691 "../../obj/src/GrammarParser.y" + case 46: // StructureDefinition: "structure" Identifier "=" "{" FunctionDefinition "}" +#line 707 "../../obj/src/GrammarParser.y" { // TODO: FIXME: @ppaulweber: handle AST keyword tokens $1, $3, $4, and $6 // $$ = Ast::make< StructureDefinition >( @$, $2, $5 ); } -#line 3038 "GrammarParser.cpp" +#line 3149 "GrammarParser.cpp" + break; + + case 47: // FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" +#line 716 "../../obj/src/GrammarParser.y" + { + // TODO: FIXME: @ppaulweber: handle AST keyword tokens $1, $3, $4, and $6 + yylhs.value.as < FeatureDefinition::Ptr > () = Ast::make< FeatureDefinition >( yylhs.location, yystack_[4].value.as < Identifier::Ptr > (), yystack_[1].value.as < Definitions::Ptr > () ); + } +#line 3158 "GrammarParser.cpp" + break; + + case 48: // FeatureDeclarationOrDefinition: DeclarationDefinition +#line 725 "../../obj/src/GrammarParser.y" + { + yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < DeclarationDefinition::Ptr > (); + } +#line 3166 "GrammarParser.cpp" + break; + + case 49: // FeatureDeclarationOrDefinition: DerivedDefinition +#line 729 "../../obj/src/GrammarParser.y" + { + yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < DerivedDefinition::Ptr > (); + } +#line 3174 "GrammarParser.cpp" + break; + + case 50: // FeatureDeclarationOrDefinition: RuleDefinition +#line 733 "../../obj/src/GrammarParser.y" + { + yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < RuleDefinition::Ptr > (); + } +#line 3182 "GrammarParser.cpp" + break; + + case 51: // FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition +#line 741 "../../obj/src/GrammarParser.y" + { + auto definitions = yystack_[1].value.as < Definitions::Ptr > (); + definitions->add( yystack_[0].value.as < Definition::Ptr > () ); + yylhs.value.as < Definitions::Ptr > () = definitions; + } +#line 3192 "GrammarParser.cpp" + break; + + case 52: // FeatureDeclarationsAndDefinitions: FeatureDeclarationOrDefinition +#line 747 "../../obj/src/GrammarParser.y" + { + auto definitions = Ast::make< Definitions >( yylhs.location ); + definitions->add( yystack_[0].value.as < Definition::Ptr > () ); + yylhs.value.as < Definitions::Ptr > () = definitions; + } +#line 3202 "GrammarParser.cpp" + break; + + case 53: // ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" +#line 757 "../../obj/src/GrammarParser.y" + { + yylhs.value.as < ImplementationDefinition::Ptr > () = Ast::make< ImplementationDefinition >( yylhs.location, yystack_[6].value.as < IdentifierPath::Ptr > (), yystack_[4].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Definitions::Ptr > () ); + } +#line 3210 "GrammarParser.cpp" + break; + + case 54: // ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" +#line 761 "../../obj/src/GrammarParser.y" + { + const auto name = Ast::make< Identifier >( yylhs.location, "" ); + const auto path = asIdentifierPath( name ); + yylhs.value.as < ImplementationDefinition::Ptr > () = Ast::make< ImplementationDefinition >( yylhs.location, path, yystack_[4].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Definitions::Ptr > () ); + } +#line 3220 "GrammarParser.cpp" + break; + + case 55: // ImplementationDefinitionDefinition: DerivedDefinition +#line 771 "../../obj/src/GrammarParser.y" + { + yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < DerivedDefinition::Ptr > (); + } +#line 3228 "GrammarParser.cpp" + break; + + case 56: // ImplementationDefinitionDefinition: RuleDefinition +#line 775 "../../obj/src/GrammarParser.y" + { + yylhs.value.as < Definition::Ptr > () = yystack_[0].value.as < RuleDefinition::Ptr > (); + } +#line 3236 "GrammarParser.cpp" + break; + + case 57: // ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions ImplementationDefinitionDefinition +#line 783 "../../obj/src/GrammarParser.y" + { + auto definitions = yystack_[1].value.as < Definitions::Ptr > (); + definitions->add( yystack_[0].value.as < Definition::Ptr > () ); + yylhs.value.as < Definitions::Ptr > () = definitions; + } +#line 3246 "GrammarParser.cpp" + break; + + case 58: // ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition +#line 789 "../../obj/src/GrammarParser.y" + { + auto definitions = Ast::make< Definitions >( yylhs.location ); + definitions->add( yystack_[0].value.as < Definition::Ptr > () ); + yylhs.value.as < Definitions::Ptr > () = definitions; + } +#line 3256 "GrammarParser.cpp" + break; + + case 59: // DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type +#line 799 "../../obj/src/GrammarParser.y" + { + // TODO: FIXME: @ppaulweber: handle AST keyword tokens $1, $3, and $5 + auto declaration = Ast::make< DeclarationDefinition >( yylhs.location, yystack_[4].value.as < Identifier::Ptr > (), yystack_[2].value.as < Types::Ptr > (), yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); + declaration->setKind( DeclarationDefinition::Kind::DERIVED ); + yylhs.value.as < DeclarationDefinition::Ptr > () = declaration; + } +#line 3267 "GrammarParser.cpp" + break; + + case 60: // DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters "->" Type +#line 806 "../../obj/src/GrammarParser.y" + { + // TODO: FIXME: @ppaulweber: handle AST keyword tokens $1, $3, and $5 + auto declaration = Ast::make< DeclarationDefinition >( yylhs.location, yystack_[4].value.as < Identifier::Ptr > (), yystack_[2].value.as < Types::Ptr > (), yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); + declaration->setKind( DeclarationDefinition::Kind::RULE ); + yylhs.value.as < DeclarationDefinition::Ptr > () = declaration; + } +#line 3278 "GrammarParser.cpp" break; - case 45: // Rules: Rules Rule -#line 764 "../../obj/src/GrammarParser.y" + case 61: // Rules: Rules Rule +#line 821 "../../obj/src/GrammarParser.y" { auto rules = yystack_[1].value.as < Rules::Ptr > (); rules->add( yystack_[0].value.as < Rule::Ptr > () ); yylhs.value.as < Rules::Ptr > () = rules; } -#line 3048 "GrammarParser.cpp" +#line 3288 "GrammarParser.cpp" break; - case 46: // Rules: Rule -#line 770 "../../obj/src/GrammarParser.y" + case 62: // Rules: Rule +#line 827 "../../obj/src/GrammarParser.y" { auto rules = Ast::make< Rules >( yylhs.location ); rules->add( yystack_[0].value.as < Rule::Ptr > () ); yylhs.value.as < Rules::Ptr > () = rules; } -#line 3058 "GrammarParser.cpp" +#line 3298 "GrammarParser.cpp" break; - case 47: // Rule: SkipRule -#line 780 "../../obj/src/GrammarParser.y" + case 63: // Rule: SkipRule +#line 837 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < SkipRule::Ptr > (); } -#line 3066 "GrammarParser.cpp" +#line 3306 "GrammarParser.cpp" break; - case 48: // Rule: ConditionalRule -#line 784 "../../obj/src/GrammarParser.y" + case 64: // Rule: ConditionalRule +#line 841 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < ConditionalRule::Ptr > (); } -#line 3074 "GrammarParser.cpp" +#line 3314 "GrammarParser.cpp" break; - case 49: // Rule: CaseRule -#line 788 "../../obj/src/GrammarParser.y" + case 65: // Rule: CaseRule +#line 845 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < CaseRule::Ptr > (); } -#line 3082 "GrammarParser.cpp" +#line 3322 "GrammarParser.cpp" break; - case 50: // Rule: LetRule -#line 792 "../../obj/src/GrammarParser.y" + case 66: // Rule: LetRule +#line 849 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < LetRule::Ptr > (); } -#line 3090 "GrammarParser.cpp" +#line 3330 "GrammarParser.cpp" break; - case 51: // Rule: LocalRule -#line 796 "../../obj/src/GrammarParser.y" + case 67: // Rule: LocalRule +#line 853 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < LocalRule::Ptr > (); } -#line 3098 "GrammarParser.cpp" +#line 3338 "GrammarParser.cpp" break; - case 52: // Rule: ForallRule -#line 800 "../../obj/src/GrammarParser.y" + case 68: // Rule: ForallRule +#line 857 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < ForallRule::Ptr > (); } -#line 3106 "GrammarParser.cpp" +#line 3346 "GrammarParser.cpp" break; - case 53: // Rule: ChooseRule -#line 804 "../../obj/src/GrammarParser.y" + case 69: // Rule: ChooseRule +#line 861 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < ChooseRule::Ptr > (); } -#line 3114 "GrammarParser.cpp" +#line 3354 "GrammarParser.cpp" break; - case 54: // Rule: IterateRule -#line 808 "../../obj/src/GrammarParser.y" + case 70: // Rule: IterateRule +#line 865 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < IterateRule::Ptr > (); } -#line 3122 "GrammarParser.cpp" +#line 3362 "GrammarParser.cpp" break; - case 55: // Rule: BlockRule -#line 812 "../../obj/src/GrammarParser.y" + case 71: // Rule: BlockRule +#line 869 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < BlockRule::Ptr > (); } -#line 3130 "GrammarParser.cpp" +#line 3370 "GrammarParser.cpp" break; - case 56: // Rule: SequenceRule -#line 816 "../../obj/src/GrammarParser.y" + case 72: // Rule: SequenceRule +#line 873 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < SequenceRule::Ptr > (); } -#line 3138 "GrammarParser.cpp" +#line 3378 "GrammarParser.cpp" break; - case 57: // Rule: UpdateRule -#line 820 "../../obj/src/GrammarParser.y" + case 73: // Rule: UpdateRule +#line 877 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < UpdateRule::Ptr > (); } -#line 3146 "GrammarParser.cpp" +#line 3386 "GrammarParser.cpp" break; - case 58: // Rule: CallRule -#line 824 "../../obj/src/GrammarParser.y" + case 74: // Rule: CallRule +#line 881 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < CallRule::Ptr > (); } -#line 3154 "GrammarParser.cpp" +#line 3394 "GrammarParser.cpp" break; - case 59: // Rule: WhileRule -#line 828 "../../obj/src/GrammarParser.y" + case 75: // Rule: WhileRule +#line 885 "../../obj/src/GrammarParser.y" { yylhs.value.as < Rule::Ptr > () = yystack_[0].value.as < WhileRule::Ptr > (); } -#line 3162 "GrammarParser.cpp" +#line 3402 "GrammarParser.cpp" break; - case 60: // SkipRule: "skip" -#line 836 "../../obj/src/GrammarParser.y" + case 76: // SkipRule: "skip" +#line 893 "../../obj/src/GrammarParser.y" { yylhs.value.as < SkipRule::Ptr > () = Ast::make< SkipRule >( yylhs.location, yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3170 "GrammarParser.cpp" +#line 3410 "GrammarParser.cpp" break; - case 61: // ConditionalRule: "if" Term "then" Rule -#line 844 "../../obj/src/GrammarParser.y" + case 77: // ConditionalRule: "if" Term "then" Rule +#line 901 "../../obj/src/GrammarParser.y" { yylhs.value.as < ConditionalRule::Ptr > () = Ast::make< ConditionalRule >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3178 "GrammarParser.cpp" +#line 3418 "GrammarParser.cpp" break; - case 62: // ConditionalRule: "if" Term "then" Rule "else" Rule -#line 848 "../../obj/src/GrammarParser.y" + case 78: // ConditionalRule: "if" Term "then" Rule "else" Rule +#line 905 "../../obj/src/GrammarParser.y" { yylhs.value.as < ConditionalRule::Ptr > () = Ast::make< ConditionalRule >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Expression::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Rule::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3186 "GrammarParser.cpp" +#line 3426 "GrammarParser.cpp" break; - case 63: // CaseRule: "case" Term "of" "{" CaseLabels "}" -#line 856 "../../obj/src/GrammarParser.y" + case 79: // CaseRule: "case" Term "of" "{" CaseLabels "}" +#line 913 "../../obj/src/GrammarParser.y" { yylhs.value.as < CaseRule::Ptr > () = Ast::make< CaseRule >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Expression::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Cases::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3194 "GrammarParser.cpp" +#line 3434 "GrammarParser.cpp" break; - case 64: // CaseRule: "case" Term "of" "{" error "}" -#line 860 "../../obj/src/GrammarParser.y" + case 80: // CaseRule: "case" Term "of" "{" error "}" +#line 917 "../../obj/src/GrammarParser.y" { yylhs.value.as < CaseRule::Ptr > () = nullptr; } -#line 3202 "GrammarParser.cpp" +#line 3442 "GrammarParser.cpp" break; - case 65: // CaseLabels: CaseLabels CaseLabel -#line 868 "../../obj/src/GrammarParser.y" + case 81: // CaseLabels: CaseLabels CaseLabel +#line 925 "../../obj/src/GrammarParser.y" { auto cases = yystack_[1].value.as < Cases::Ptr > (); cases->add( yystack_[0].value.as < Case::Ptr > () ); yylhs.value.as < Cases::Ptr > () = cases; } -#line 3212 "GrammarParser.cpp" +#line 3452 "GrammarParser.cpp" break; - case 66: // CaseLabels: CaseLabel -#line 874 "../../obj/src/GrammarParser.y" + case 82: // CaseLabels: CaseLabel +#line 931 "../../obj/src/GrammarParser.y" { auto cases = Ast::make< Cases >( yylhs.location ); cases->add( yystack_[0].value.as < Case::Ptr > () ); yylhs.value.as < Cases::Ptr > () = cases; } -#line 3222 "GrammarParser.cpp" +#line 3462 "GrammarParser.cpp" break; - case 67: // CaseLabel: "default" ":" Rule -#line 884 "../../obj/src/GrammarParser.y" + case 83: // CaseLabel: "default" ":" Rule +#line 941 "../../obj/src/GrammarParser.y" { yylhs.value.as < Case::Ptr > () = Ast::make< DefaultCase >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3230 "GrammarParser.cpp" +#line 3470 "GrammarParser.cpp" break; - case 68: // CaseLabel: "_" ":" Rule -#line 888 "../../obj/src/GrammarParser.y" + case 84: // CaseLabel: "_" ":" Rule +#line 945 "../../obj/src/GrammarParser.y" { yylhs.value.as < Case::Ptr > () = Ast::make< DefaultCase >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3238 "GrammarParser.cpp" +#line 3478 "GrammarParser.cpp" break; - case 69: // CaseLabel: Term ":" Rule -#line 892 "../../obj/src/GrammarParser.y" + case 85: // CaseLabel: Term ":" Rule +#line 949 "../../obj/src/GrammarParser.y" { yylhs.value.as < Case::Ptr > () = Ast::make< ExpressionCase >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3246 "GrammarParser.cpp" +#line 3486 "GrammarParser.cpp" break; - case 70: // LetRule: "let" VariableBindings "in" Rule -#line 900 "../../obj/src/GrammarParser.y" + case 86: // LetRule: "let" VariableBindings "in" Rule +#line 957 "../../obj/src/GrammarParser.y" { yylhs.value.as < LetRule::Ptr > () = Ast::make< LetRule >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < VariableBindings::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3254 "GrammarParser.cpp" +#line 3494 "GrammarParser.cpp" break; - case 71: // LocalRule: "local" LocalFunctionDefinitions "in" Rule -#line 908 "../../obj/src/GrammarParser.y" + case 87: // LocalRule: "local" LocalFunctionDefinitions "in" Rule +#line 965 "../../obj/src/GrammarParser.y" { yylhs.value.as < LocalRule::Ptr > () = Ast::make< LocalRule >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < FunctionDefinitions::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3262 "GrammarParser.cpp" +#line 3502 "GrammarParser.cpp" break; - case 72: // ForallRule: "forall" AttributedVariables "in" Term "do" Rule -#line 916 "../../obj/src/GrammarParser.y" + case 88: // ForallRule: "forall" AttributedVariables "in" Term "do" Rule +#line 973 "../../obj/src/GrammarParser.y" { yylhs.value.as < ForallRule::Ptr > () = Ast::make< ForallRule >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < VariableDefinitions::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3270 "GrammarParser.cpp" +#line 3510 "GrammarParser.cpp" break; - case 73: // ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" Rule -#line 920 "../../obj/src/GrammarParser.y" + case 89: // ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" Rule +#line 977 "../../obj/src/GrammarParser.y" { yylhs.value.as < ForallRule::Ptr > () = Ast::make< ForallRule >( yylhs.location, yystack_[7].value.as < Ast::Token::Ptr > (), yystack_[6].value.as < VariableDefinitions::Ptr > (), yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Expression::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3278 "GrammarParser.cpp" +#line 3518 "GrammarParser.cpp" break; - case 74: // ChooseRule: "choose" AttributedVariables "in" Term "do" Rule -#line 928 "../../obj/src/GrammarParser.y" + case 90: // ChooseRule: "choose" AttributedVariables "in" Term "do" Rule +#line 985 "../../obj/src/GrammarParser.y" { yylhs.value.as < ChooseRule::Ptr > () = Ast::make< ChooseRule >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < VariableDefinitions::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3286 "GrammarParser.cpp" +#line 3526 "GrammarParser.cpp" break; - case 75: // IterateRule: "iterate" Rule -#line 936 "../../obj/src/GrammarParser.y" + case 91: // IterateRule: "iterate" Rule +#line 993 "../../obj/src/GrammarParser.y" { yylhs.value.as < IterateRule::Ptr > () = Ast::make< IterateRule >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3294 "GrammarParser.cpp" +#line 3534 "GrammarParser.cpp" break; - case 76: // BlockRule: "{" Rules "}" -#line 944 "../../obj/src/GrammarParser.y" + case 92: // BlockRule: "{" Rules "}" +#line 1001 "../../obj/src/GrammarParser.y" { yylhs.value.as < BlockRule::Ptr > () = Ast::make< BlockRule >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Rules::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3302 "GrammarParser.cpp" +#line 3542 "GrammarParser.cpp" break; - case 77: // BlockRule: "par" Rules "endpar" -#line 948 "../../obj/src/GrammarParser.y" + case 93: // BlockRule: "par" Rules "endpar" +#line 1005 "../../obj/src/GrammarParser.y" { yylhs.value.as < BlockRule::Ptr > () = Ast::make< BlockRule >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Rules::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3310 "GrammarParser.cpp" +#line 3550 "GrammarParser.cpp" break; - case 78: // BlockRule: "{" error "}" -#line 952 "../../obj/src/GrammarParser.y" + case 94: // BlockRule: "{" error "}" +#line 1009 "../../obj/src/GrammarParser.y" { yylhs.value.as < BlockRule::Ptr > () = nullptr; yyerrok; } -#line 3319 "GrammarParser.cpp" +#line 3559 "GrammarParser.cpp" break; - case 79: // BlockRule: "par" error "endpar" -#line 957 "../../obj/src/GrammarParser.y" + case 95: // BlockRule: "par" error "endpar" +#line 1014 "../../obj/src/GrammarParser.y" { yylhs.value.as < BlockRule::Ptr > () = nullptr; yyerrok; } -#line 3328 "GrammarParser.cpp" +#line 3568 "GrammarParser.cpp" break; - case 80: // SequenceRule: "{|" Rules "|}" -#line 966 "../../obj/src/GrammarParser.y" + case 96: // SequenceRule: "{|" Rules "|}" +#line 1023 "../../obj/src/GrammarParser.y" { yylhs.value.as < SequenceRule::Ptr > () = Ast::make< SequenceRule >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Rules::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3336 "GrammarParser.cpp" +#line 3576 "GrammarParser.cpp" break; - case 81: // SequenceRule: "seq" Rules "endseq" -#line 970 "../../obj/src/GrammarParser.y" + case 97: // SequenceRule: "seq" Rules "endseq" +#line 1027 "../../obj/src/GrammarParser.y" { yylhs.value.as < SequenceRule::Ptr > () = Ast::make< SequenceRule >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Rules::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3344 "GrammarParser.cpp" +#line 3584 "GrammarParser.cpp" break; - case 82: // SequenceRule: "{|" error "|}" -#line 974 "../../obj/src/GrammarParser.y" + case 98: // SequenceRule: "{|" error "|}" +#line 1031 "../../obj/src/GrammarParser.y" { yylhs.value.as < SequenceRule::Ptr > () = nullptr; yyerrok; } -#line 3353 "GrammarParser.cpp" +#line 3593 "GrammarParser.cpp" break; - case 83: // SequenceRule: "seq" error "endseq" -#line 979 "../../obj/src/GrammarParser.y" + case 99: // SequenceRule: "seq" error "endseq" +#line 1036 "../../obj/src/GrammarParser.y" { yylhs.value.as < SequenceRule::Ptr > () = nullptr; yyerrok; } -#line 3362 "GrammarParser.cpp" +#line 3602 "GrammarParser.cpp" break; - case 84: // UpdateRule: DirectCallExpression ":=" Term -#line 988 "../../obj/src/GrammarParser.y" + case 100: // UpdateRule: DirectCallExpression ":=" Term +#line 1045 "../../obj/src/GrammarParser.y" { yylhs.value.as < UpdateRule::Ptr > () = Ast::make< UpdateRule >( yylhs.location, yystack_[2].value.as < DirectCallExpression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 3370 "GrammarParser.cpp" +#line 3610 "GrammarParser.cpp" break; - case 85: // CallRule: CallExpression -#line 996 "../../obj/src/GrammarParser.y" + case 101: // CallRule: CallExpression +#line 1053 "../../obj/src/GrammarParser.y" { yylhs.value.as < CallRule::Ptr > () = Ast::make< CallRule >( yylhs.location, yystack_[0].value.as < CallExpression::Ptr > () ); } -#line 3378 "GrammarParser.cpp" +#line 3618 "GrammarParser.cpp" break; - case 86: // WhileRule: "while" Term "do" Rule -#line 1004 "../../obj/src/GrammarParser.y" + case 102: // WhileRule: "while" Term "do" Rule +#line 1061 "../../obj/src/GrammarParser.y" { yylhs.value.as < WhileRule::Ptr > () = Ast::make< WhileRule >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Rule::Ptr > () ); } -#line 3386 "GrammarParser.cpp" +#line 3626 "GrammarParser.cpp" break; - case 87: // Terms: Terms "," Term -#line 1016 "../../obj/src/GrammarParser.y" + case 103: // Terms: Terms "," Term +#line 1073 "../../obj/src/GrammarParser.y" { auto expressions = yystack_[2].value.as < Expressions::Ptr > (); yystack_[0].value.as < Expression::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); expressions->add( yystack_[0].value.as < Expression::Ptr > () ); yylhs.value.as < Expressions::Ptr > () = expressions; } -#line 3397 "GrammarParser.cpp" +#line 3637 "GrammarParser.cpp" break; - case 88: // Terms: Term -#line 1023 "../../obj/src/GrammarParser.y" + case 104: // Terms: Term +#line 1080 "../../obj/src/GrammarParser.y" { const auto expressions = Ast::make< Expressions >( yylhs.location ); expressions->add( yystack_[0].value.as < Expression::Ptr > () ); yylhs.value.as < Expressions::Ptr > () = expressions; } -#line 3407 "GrammarParser.cpp" +#line 3647 "GrammarParser.cpp" break; - case 89: // Term: SimpleOrClaspedTerm -#line 1033 "../../obj/src/GrammarParser.y" + case 105: // Term: SimpleOrClaspedTerm +#line 1090 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < Expression::Ptr > (); } -#line 3415 "GrammarParser.cpp" +#line 3655 "GrammarParser.cpp" break; - case 90: // Term: TypeCastingExpression -#line 1037 "../../obj/src/GrammarParser.y" + case 106: // Term: TypeCastingExpression +#line 1094 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < TypeCastingExpression::Ptr > (); } -#line 3423 "GrammarParser.cpp" +#line 3663 "GrammarParser.cpp" break; - case 91: // Term: OperatorExpression -#line 1041 "../../obj/src/GrammarParser.y" + case 107: // Term: OperatorExpression +#line 1098 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < Expression::Ptr > (); } -#line 3431 "GrammarParser.cpp" +#line 3671 "GrammarParser.cpp" break; - case 92: // Term: LetExpression -#line 1045 "../../obj/src/GrammarParser.y" + case 108: // Term: LetExpression +#line 1102 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < LetExpression::Ptr > (); } -#line 3439 "GrammarParser.cpp" +#line 3679 "GrammarParser.cpp" break; - case 93: // Term: ConditionalExpression -#line 1049 "../../obj/src/GrammarParser.y" + case 109: // Term: ConditionalExpression +#line 1106 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < ConditionalExpression::Ptr > (); } -#line 3447 "GrammarParser.cpp" +#line 3687 "GrammarParser.cpp" break; - case 94: // Term: ChooseExpression -#line 1053 "../../obj/src/GrammarParser.y" + case 110: // Term: ChooseExpression +#line 1110 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < ChooseExpression::Ptr > (); } -#line 3455 "GrammarParser.cpp" +#line 3695 "GrammarParser.cpp" break; - case 95: // Term: UniversalQuantifierExpression -#line 1057 "../../obj/src/GrammarParser.y" + case 111: // Term: UniversalQuantifierExpression +#line 1114 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < UniversalQuantifierExpression::Ptr > (); } -#line 3463 "GrammarParser.cpp" +#line 3703 "GrammarParser.cpp" break; - case 96: // Term: ExistentialQuantifierExpression -#line 1061 "../../obj/src/GrammarParser.y" + case 112: // Term: ExistentialQuantifierExpression +#line 1118 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < ExistentialQuantifierExpression::Ptr > (); } -#line 3471 "GrammarParser.cpp" +#line 3711 "GrammarParser.cpp" break; - case 97: // Term: CardinalityExpression -#line 1065 "../../obj/src/GrammarParser.y" + case 113: // Term: CardinalityExpression +#line 1122 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < CardinalityExpression::Ptr > (); } -#line 3479 "GrammarParser.cpp" +#line 3719 "GrammarParser.cpp" break; - case 98: // SimpleOrClaspedTerm: "(" Term ")" -#line 1073 "../../obj/src/GrammarParser.y" + case 114: // SimpleOrClaspedTerm: "(" Term ")" +#line 1130 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< Ast::EmbracedExpression >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Expression::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3487 "GrammarParser.cpp" +#line 3727 "GrammarParser.cpp" break; - case 99: // SimpleOrClaspedTerm: "(" error ")" -#line 1077 "../../obj/src/GrammarParser.y" + case 115: // SimpleOrClaspedTerm: "(" error ")" +#line 1134 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = nullptr; } -#line 3495 "GrammarParser.cpp" +#line 3735 "GrammarParser.cpp" break; - case 100: // SimpleOrClaspedTerm: CallExpression -#line 1081 "../../obj/src/GrammarParser.y" + case 116: // SimpleOrClaspedTerm: CallExpression +#line 1138 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < CallExpression::Ptr > (); } -#line 3503 "GrammarParser.cpp" +#line 3743 "GrammarParser.cpp" break; - case 101: // SimpleOrClaspedTerm: LiteralCallExpression -#line 1085 "../../obj/src/GrammarParser.y" + case 117: // SimpleOrClaspedTerm: LiteralCallExpression +#line 1142 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < LiteralCallExpression::Ptr > (); } -#line 3511 "GrammarParser.cpp" +#line 3751 "GrammarParser.cpp" break; - case 102: // SimpleOrClaspedTerm: Literal -#line 1089 "../../obj/src/GrammarParser.y" + case 118: // SimpleOrClaspedTerm: Literal +#line 1146 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = yystack_[0].value.as < Literal::Ptr > (); } -#line 3519 "GrammarParser.cpp" +#line 3759 "GrammarParser.cpp" break; - case 103: // SimpleOrClaspedTerm: "+" SimpleOrClaspedTerm -#line 1093 "../../obj/src/GrammarParser.y" + case 119: // SimpleOrClaspedTerm: "+" SimpleOrClaspedTerm +#line 1150 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< UnaryExpression >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::ADD_INSTRUCTION ); } -#line 3527 "GrammarParser.cpp" +#line 3767 "GrammarParser.cpp" break; - case 104: // SimpleOrClaspedTerm: "-" SimpleOrClaspedTerm -#line 1097 "../../obj/src/GrammarParser.y" + case 120: // SimpleOrClaspedTerm: "-" SimpleOrClaspedTerm +#line 1154 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< UnaryExpression >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::INV_INSTRUCTION ); } -#line 3535 "GrammarParser.cpp" +#line 3775 "GrammarParser.cpp" break; - case 105: // OperatorExpression: Term "+" Term -#line 1109 "../../obj/src/GrammarParser.y" + case 121: // OperatorExpression: Term "+" Term +#line 1166 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::ADD_INSTRUCTION ); } -#line 3543 "GrammarParser.cpp" +#line 3783 "GrammarParser.cpp" break; - case 106: // OperatorExpression: Term "-" Term -#line 1113 "../../obj/src/GrammarParser.y" + case 122: // OperatorExpression: Term "-" Term +#line 1170 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::SUB_INSTRUCTION ); } -#line 3551 "GrammarParser.cpp" +#line 3791 "GrammarParser.cpp" break; - case 107: // OperatorExpression: Term "*" Term -#line 1117 "../../obj/src/GrammarParser.y" + case 123: // OperatorExpression: Term "*" Term +#line 1174 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::MUL_INSTRUCTION ); } -#line 3559 "GrammarParser.cpp" +#line 3799 "GrammarParser.cpp" break; - case 108: // OperatorExpression: Term "/" Term -#line 1121 "../../obj/src/GrammarParser.y" + case 124: // OperatorExpression: Term "/" Term +#line 1178 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::DIV_INSTRUCTION ); } -#line 3567 "GrammarParser.cpp" +#line 3807 "GrammarParser.cpp" break; - case 109: // OperatorExpression: Term "%" Term -#line 1125 "../../obj/src/GrammarParser.y" + case 125: // OperatorExpression: Term "%" Term +#line 1182 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::MOD_INSTRUCTION ); } -#line 3575 "GrammarParser.cpp" +#line 3815 "GrammarParser.cpp" break; - case 110: // OperatorExpression: Term "^" Term -#line 1129 "../../obj/src/GrammarParser.y" + case 126: // OperatorExpression: Term "^" Term +#line 1186 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::POW_INSTRUCTION ); } -#line 3583 "GrammarParser.cpp" +#line 3823 "GrammarParser.cpp" break; - case 111: // OperatorExpression: Term "!=" Term -#line 1133 "../../obj/src/GrammarParser.y" + case 127: // OperatorExpression: Term "!=" Term +#line 1190 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::NEQ_INSTRUCTION ); } -#line 3591 "GrammarParser.cpp" +#line 3831 "GrammarParser.cpp" break; - case 112: // OperatorExpression: Term "=" Term -#line 1137 "../../obj/src/GrammarParser.y" + case 128: // OperatorExpression: Term "=" Term +#line 1194 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::EQU_INSTRUCTION ); } -#line 3599 "GrammarParser.cpp" +#line 3839 "GrammarParser.cpp" break; - case 113: // OperatorExpression: Term "<" Term -#line 1141 "../../obj/src/GrammarParser.y" + case 129: // OperatorExpression: Term "<" Term +#line 1198 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::LTH_INSTRUCTION ); } -#line 3607 "GrammarParser.cpp" +#line 3847 "GrammarParser.cpp" break; - case 114: // OperatorExpression: Term ">" Term -#line 1145 "../../obj/src/GrammarParser.y" + case 130: // OperatorExpression: Term ">" Term +#line 1202 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::GTH_INSTRUCTION ); } -#line 3615 "GrammarParser.cpp" +#line 3855 "GrammarParser.cpp" break; - case 115: // OperatorExpression: Term "<=" Term -#line 1149 "../../obj/src/GrammarParser.y" + case 131: // OperatorExpression: Term "<=" Term +#line 1206 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::LEQ_INSTRUCTION ); } -#line 3623 "GrammarParser.cpp" +#line 3863 "GrammarParser.cpp" break; - case 116: // OperatorExpression: Term ">=" Term -#line 1153 "../../obj/src/GrammarParser.y" + case 132: // OperatorExpression: Term ">=" Term +#line 1210 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::GEQ_INSTRUCTION ); } -#line 3631 "GrammarParser.cpp" +#line 3871 "GrammarParser.cpp" break; - case 117: // OperatorExpression: Term "or" Term -#line 1157 "../../obj/src/GrammarParser.y" + case 133: // OperatorExpression: Term "or" Term +#line 1214 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::OR_INSTRUCTION ); } -#line 3639 "GrammarParser.cpp" +#line 3879 "GrammarParser.cpp" break; - case 118: // OperatorExpression: Term "xor" Term -#line 1161 "../../obj/src/GrammarParser.y" + case 134: // OperatorExpression: Term "xor" Term +#line 1218 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::XOR_INSTRUCTION ); } -#line 3647 "GrammarParser.cpp" +#line 3887 "GrammarParser.cpp" break; - case 119: // OperatorExpression: Term "and" Term -#line 1165 "../../obj/src/GrammarParser.y" + case 135: // OperatorExpression: Term "and" Term +#line 1222 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::AND_INSTRUCTION ); } -#line 3655 "GrammarParser.cpp" +#line 3895 "GrammarParser.cpp" break; - case 120: // OperatorExpression: Term "=>" Term -#line 1169 "../../obj/src/GrammarParser.y" + case 136: // OperatorExpression: Term "=>" Term +#line 1226 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::IMP_INSTRUCTION ); } -#line 3663 "GrammarParser.cpp" +#line 3903 "GrammarParser.cpp" break; - case 121: // OperatorExpression: Term "implies" Term -#line 1173 "../../obj/src/GrammarParser.y" + case 137: // OperatorExpression: Term "implies" Term +#line 1230 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< BinaryExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::IMP_INSTRUCTION ); } -#line 3671 "GrammarParser.cpp" +#line 3911 "GrammarParser.cpp" break; - case 122: // OperatorExpression: "not" Term -#line 1177 "../../obj/src/GrammarParser.y" + case 138: // OperatorExpression: "not" Term +#line 1234 "../../obj/src/GrammarParser.y" { yylhs.value.as < Expression::Ptr > () = Ast::make< UnaryExpression >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > (), libcasm_ir::Value::NOT_INSTRUCTION ); } -#line 3679 "GrammarParser.cpp" +#line 3919 "GrammarParser.cpp" break; - case 123: // CallExpression: DirectCallExpression -#line 1185 "../../obj/src/GrammarParser.y" + case 139: // CallExpression: DirectCallExpression +#line 1242 "../../obj/src/GrammarParser.y" { yylhs.value.as < CallExpression::Ptr > () = yystack_[0].value.as < DirectCallExpression::Ptr > (); } -#line 3687 "GrammarParser.cpp" +#line 3927 "GrammarParser.cpp" break; - case 124: // CallExpression: MethodCallExpression -#line 1189 "../../obj/src/GrammarParser.y" + case 140: // CallExpression: MethodCallExpression +#line 1246 "../../obj/src/GrammarParser.y" { yylhs.value.as < CallExpression::Ptr > () = yystack_[0].value.as < MethodCallExpression::Ptr > (); } -#line 3695 "GrammarParser.cpp" +#line 3935 "GrammarParser.cpp" break; - case 125: // CallExpression: IndirectCallExpression -#line 1193 "../../obj/src/GrammarParser.y" + case 141: // CallExpression: IndirectCallExpression +#line 1250 "../../obj/src/GrammarParser.y" { yylhs.value.as < CallExpression::Ptr > () = yystack_[0].value.as < IndirectCallExpression::Ptr > (); } -#line 3703 "GrammarParser.cpp" +#line 3943 "GrammarParser.cpp" break; - case 126: // DirectCallExpression: IdentifierPath -#line 1201 "../../obj/src/GrammarParser.y" + case 142: // DirectCallExpression: IdentifierPath +#line 1258 "../../obj/src/GrammarParser.y" { const auto arguments = Ast::make< Expressions >( yylhs.location ); yylhs.value.as < DirectCallExpression::Ptr > () = Ast::make< DirectCallExpression >( yylhs.location, yystack_[0].value.as < IdentifierPath::Ptr > (), arguments ); } -#line 3712 "GrammarParser.cpp" +#line 3952 "GrammarParser.cpp" break; - case 127: // DirectCallExpression: IdentifierPath "(" ")" -#line 1206 "../../obj/src/GrammarParser.y" + case 143: // DirectCallExpression: IdentifierPath "(" ")" +#line 1263 "../../obj/src/GrammarParser.y" { const auto arguments = Ast::make< Expressions >( yylhs.location ); yylhs.value.as < DirectCallExpression::Ptr > () = Ast::make< DirectCallExpression >( yylhs.location, yystack_[2].value.as < IdentifierPath::Ptr > (), arguments ); yylhs.value.as < DirectCallExpression::Ptr > ()->setLeftBracketToken( yystack_[1].value.as < Ast::Token::Ptr > () ); yylhs.value.as < DirectCallExpression::Ptr > ()->setRightBracketToken( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3723 "GrammarParser.cpp" +#line 3963 "GrammarParser.cpp" break; - case 128: // DirectCallExpression: IdentifierPath "(" Terms ")" -#line 1213 "../../obj/src/GrammarParser.y" + case 144: // DirectCallExpression: IdentifierPath "(" Terms ")" +#line 1270 "../../obj/src/GrammarParser.y" { yylhs.value.as < DirectCallExpression::Ptr > () = Ast::make< DirectCallExpression >( yylhs.location, yystack_[3].value.as < IdentifierPath::Ptr > (), yystack_[1].value.as < Expressions::Ptr > () ); yylhs.value.as < DirectCallExpression::Ptr > ()->setLeftBracketToken( yystack_[2].value.as < Ast::Token::Ptr > () ); yylhs.value.as < DirectCallExpression::Ptr > ()->setRightBracketToken( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3733 "GrammarParser.cpp" +#line 3973 "GrammarParser.cpp" break; - case 129: // DirectCallExpression: IdentifierPath "(" error ")" -#line 1219 "../../obj/src/GrammarParser.y" + case 145: // DirectCallExpression: IdentifierPath "(" error ")" +#line 1276 "../../obj/src/GrammarParser.y" { yylhs.value.as < DirectCallExpression::Ptr > () = nullptr; } -#line 3741 "GrammarParser.cpp" +#line 3981 "GrammarParser.cpp" break; - case 130: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier -#line 1227 "../../obj/src/GrammarParser.y" + case 146: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier +#line 1284 "../../obj/src/GrammarParser.y" { const auto arguments = Ast::make< Expressions >( yylhs.location ); yylhs.value.as < MethodCallExpression::Ptr > () = Ast::make< MethodCallExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Identifier::Ptr > (), arguments ); } -#line 3750 "GrammarParser.cpp" +#line 3990 "GrammarParser.cpp" break; - case 131: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" ")" -#line 1232 "../../obj/src/GrammarParser.y" + case 147: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" ")" +#line 1289 "../../obj/src/GrammarParser.y" { const auto arguments = Ast::make< Expressions >( yylhs.location ); yylhs.value.as < MethodCallExpression::Ptr > () = Ast::make< MethodCallExpression >( yylhs.location, yystack_[4].value.as < Expression::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Identifier::Ptr > (), arguments ); yylhs.value.as < MethodCallExpression::Ptr > ()->setLeftBracketToken( yystack_[1].value.as < Ast::Token::Ptr > () ); yylhs.value.as < MethodCallExpression::Ptr > ()->setRightBracketToken( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3761 "GrammarParser.cpp" +#line 4001 "GrammarParser.cpp" break; - case 132: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms ")" -#line 1239 "../../obj/src/GrammarParser.y" + case 148: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms ")" +#line 1296 "../../obj/src/GrammarParser.y" { yylhs.value.as < MethodCallExpression::Ptr > () = Ast::make< MethodCallExpression >( yylhs.location, yystack_[5].value.as < Expression::Ptr > (), yystack_[4].value.as < Ast::Token::Ptr > (), yystack_[3].value.as < Identifier::Ptr > (), yystack_[1].value.as < Expressions::Ptr > () ); yylhs.value.as < MethodCallExpression::Ptr > ()->setLeftBracketToken( yystack_[2].value.as < Ast::Token::Ptr > () ); yylhs.value.as < MethodCallExpression::Ptr > ()->setRightBracketToken( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3771 "GrammarParser.cpp" +#line 4011 "GrammarParser.cpp" break; - case 133: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error ")" -#line 1245 "../../obj/src/GrammarParser.y" + case 149: // MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error ")" +#line 1302 "../../obj/src/GrammarParser.y" { yylhs.value.as < MethodCallExpression::Ptr > () = nullptr; } -#line 3779 "GrammarParser.cpp" +#line 4019 "GrammarParser.cpp" break; - case 134: // LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral -#line 1253 "../../obj/src/GrammarParser.y" + case 150: // LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral +#line 1310 "../../obj/src/GrammarParser.y" { yylhs.value.as < LiteralCallExpression::Ptr > () = Ast::make< LiteralCallExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < ValueLiteral::Ptr > () ); } -#line 3787 "GrammarParser.cpp" +#line 4027 "GrammarParser.cpp" break; - case 135: // IndirectCallExpression: CallExpression "(" ")" -#line 1261 "../../obj/src/GrammarParser.y" + case 151: // IndirectCallExpression: CallExpression "(" ")" +#line 1318 "../../obj/src/GrammarParser.y" { const auto arguments = Ast::make< Expressions >( yylhs.location ); yylhs.value.as < IndirectCallExpression::Ptr > () = Ast::make< IndirectCallExpression >( yylhs.location, yystack_[2].value.as < CallExpression::Ptr > (), arguments ); yylhs.value.as < IndirectCallExpression::Ptr > ()->setLeftBracketToken( yystack_[1].value.as < Ast::Token::Ptr > () ); yylhs.value.as < IndirectCallExpression::Ptr > ()->setRightBracketToken( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3798 "GrammarParser.cpp" +#line 4038 "GrammarParser.cpp" break; - case 136: // IndirectCallExpression: CallExpression "(" Terms ")" -#line 1268 "../../obj/src/GrammarParser.y" + case 152: // IndirectCallExpression: CallExpression "(" Terms ")" +#line 1325 "../../obj/src/GrammarParser.y" { yylhs.value.as < IndirectCallExpression::Ptr > () = Ast::make< IndirectCallExpression >( yylhs.location, yystack_[3].value.as < CallExpression::Ptr > (), yystack_[1].value.as < Expressions::Ptr > () ); yylhs.value.as < IndirectCallExpression::Ptr > ()->setLeftBracketToken( yystack_[2].value.as < Ast::Token::Ptr > () ); yylhs.value.as < IndirectCallExpression::Ptr > ()->setRightBracketToken( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3808 "GrammarParser.cpp" +#line 4048 "GrammarParser.cpp" break; - case 137: // IndirectCallExpression: CallExpression "(" error ")" -#line 1274 "../../obj/src/GrammarParser.y" + case 153: // IndirectCallExpression: CallExpression "(" error ")" +#line 1331 "../../obj/src/GrammarParser.y" { yylhs.value.as < IndirectCallExpression::Ptr > () = nullptr; } -#line 3816 "GrammarParser.cpp" +#line 4056 "GrammarParser.cpp" break; - case 138: // TypeCastingExpression: SimpleOrClaspedTerm "as" Type -#line 1282 "../../obj/src/GrammarParser.y" + case 154: // TypeCastingExpression: SimpleOrClaspedTerm "as" Type +#line 1339 "../../obj/src/GrammarParser.y" { yylhs.value.as < TypeCastingExpression::Ptr > () = Ast::make< TypeCastingExpression >( yylhs.location, yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); } -#line 3824 "GrammarParser.cpp" +#line 4064 "GrammarParser.cpp" break; - case 139: // LetExpression: "let" VariableBindings "in" Term -#line 1290 "../../obj/src/GrammarParser.y" + case 155: // LetExpression: "let" VariableBindings "in" Term +#line 1347 "../../obj/src/GrammarParser.y" { yylhs.value.as < LetExpression::Ptr > () = Ast::make< LetExpression >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < VariableBindings::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 3832 "GrammarParser.cpp" +#line 4072 "GrammarParser.cpp" break; - case 140: // ConditionalExpression: "if" Term "then" Term "else" Term -#line 1298 "../../obj/src/GrammarParser.y" + case 156: // ConditionalExpression: "if" Term "then" Term "else" Term +#line 1355 "../../obj/src/GrammarParser.y" { yylhs.value.as < ConditionalExpression::Ptr > () = Ast::make< ConditionalExpression >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Expression::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 3840 "GrammarParser.cpp" +#line 4080 "GrammarParser.cpp" break; - case 141: // ChooseExpression: "choose" AttributedVariables "in" Term "do" Term -#line 1306 "../../obj/src/GrammarParser.y" + case 157: // ChooseExpression: "choose" AttributedVariables "in" Term "do" Term +#line 1363 "../../obj/src/GrammarParser.y" { yylhs.value.as < ChooseExpression::Ptr > () = Ast::make< ChooseExpression >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < VariableDefinitions::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 3848 "GrammarParser.cpp" +#line 4088 "GrammarParser.cpp" break; - case 142: // UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term -#line 1314 "../../obj/src/GrammarParser.y" + case 158: // UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term +#line 1371 "../../obj/src/GrammarParser.y" { yylhs.value.as < UniversalQuantifierExpression::Ptr > () = Ast::make< UniversalQuantifierExpression >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < VariableDefinitions::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 3856 "GrammarParser.cpp" +#line 4096 "GrammarParser.cpp" break; - case 143: // ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term -#line 1322 "../../obj/src/GrammarParser.y" + case 159: // ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term +#line 1379 "../../obj/src/GrammarParser.y" { yylhs.value.as < ExistentialQuantifierExpression::Ptr > () = Ast::make< ExistentialQuantifierExpression >( yylhs.location, yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < VariableDefinitions::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Expression::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 3864 "GrammarParser.cpp" +#line 4104 "GrammarParser.cpp" break; - case 144: // CardinalityExpression: "|" SimpleOrClaspedTerm "|" -#line 1330 "../../obj/src/GrammarParser.y" + case 160: // CardinalityExpression: "|" SimpleOrClaspedTerm "|" +#line 1387 "../../obj/src/GrammarParser.y" { yylhs.value.as < CardinalityExpression::Ptr > () = Ast::make< CardinalityExpression >( yylhs.location, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Expression::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 3872 "GrammarParser.cpp" +#line 4112 "GrammarParser.cpp" break; - case 145: // Literal: UndefinedLiteral -#line 1343 "../../obj/src/GrammarParser.y" + case 161: // Literal: UndefinedLiteral +#line 1400 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < UndefLiteral::Ptr > (); } -#line 3880 "GrammarParser.cpp" +#line 4120 "GrammarParser.cpp" break; - case 146: // Literal: BooleanLiteral -#line 1347 "../../obj/src/GrammarParser.y" + case 162: // Literal: BooleanLiteral +#line 1404 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 3888 "GrammarParser.cpp" +#line 4128 "GrammarParser.cpp" break; - case 147: // Literal: IntegerLiteral -#line 1351 "../../obj/src/GrammarParser.y" + case 163: // Literal: IntegerLiteral +#line 1408 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 3896 "GrammarParser.cpp" +#line 4136 "GrammarParser.cpp" break; - case 148: // Literal: RationalLiteral -#line 1355 "../../obj/src/GrammarParser.y" + case 164: // Literal: RationalLiteral +#line 1412 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 3904 "GrammarParser.cpp" +#line 4144 "GrammarParser.cpp" break; - case 149: // Literal: DecimalLiteral -#line 1359 "../../obj/src/GrammarParser.y" + case 165: // Literal: DecimalLiteral +#line 1416 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 3912 "GrammarParser.cpp" +#line 4152 "GrammarParser.cpp" break; - case 150: // Literal: BinaryLiteral -#line 1363 "../../obj/src/GrammarParser.y" + case 166: // Literal: BinaryLiteral +#line 1420 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 3920 "GrammarParser.cpp" +#line 4160 "GrammarParser.cpp" break; - case 151: // Literal: StringLiteral -#line 1367 "../../obj/src/GrammarParser.y" + case 167: // Literal: StringLiteral +#line 1424 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 3928 "GrammarParser.cpp" +#line 4168 "GrammarParser.cpp" break; - case 152: // Literal: ReferenceLiteral -#line 1371 "../../obj/src/GrammarParser.y" + case 168: // Literal: ReferenceLiteral +#line 1428 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ReferenceLiteral::Ptr > (); } -#line 3936 "GrammarParser.cpp" +#line 4176 "GrammarParser.cpp" break; - case 153: // Literal: ListLiteral -#line 1375 "../../obj/src/GrammarParser.y" + case 169: // Literal: ListLiteral +#line 1432 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < ListLiteral::Ptr > (); } -#line 3944 "GrammarParser.cpp" +#line 4184 "GrammarParser.cpp" break; - case 154: // Literal: RangeLiteral -#line 1379 "../../obj/src/GrammarParser.y" + case 170: // Literal: RangeLiteral +#line 1436 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < RangeLiteral::Ptr > (); } -#line 3952 "GrammarParser.cpp" +#line 4192 "GrammarParser.cpp" break; - case 155: // Literal: TupleLiteral -#line 1383 "../../obj/src/GrammarParser.y" + case 171: // Literal: TupleLiteral +#line 1440 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < TupleLiteral::Ptr > (); } -#line 3960 "GrammarParser.cpp" +#line 4200 "GrammarParser.cpp" break; - case 156: // Literal: RecordLiteral -#line 1387 "../../obj/src/GrammarParser.y" + case 172: // Literal: RecordLiteral +#line 1444 "../../obj/src/GrammarParser.y" { yylhs.value.as < Literal::Ptr > () = yystack_[0].value.as < RecordLiteral::Ptr > (); } -#line 3968 "GrammarParser.cpp" +#line 4208 "GrammarParser.cpp" break; - case 157: // UndefinedLiteral: "undef" -#line 1395 "../../obj/src/GrammarParser.y" + case 173: // UndefinedLiteral: "undef" +#line 1452 "../../obj/src/GrammarParser.y" { yylhs.value.as < UndefLiteral::Ptr > () = Ast::make< UndefLiteral >( yylhs.location ); yylhs.value.as < UndefLiteral::Ptr > ()->setSpans( yystack_[0].value.as < Ast::Token::Ptr > ()->spans() ); } -#line 3977 "GrammarParser.cpp" +#line 4217 "GrammarParser.cpp" break; - case 158: // BooleanLiteral: "true" -#line 1404 "../../obj/src/GrammarParser.y" + case 174: // BooleanLiteral: "true" +#line 1461 "../../obj/src/GrammarParser.y" { const auto value = libstdhl::Memory::get< libcasm_ir::BooleanConstant >( true ); yylhs.value.as < ValueLiteral::Ptr > () = Ast::make< ValueLiteral >( yylhs.location, value ); yylhs.value.as < ValueLiteral::Ptr > ()->setSpans( yystack_[0].value.as < Ast::Token::Ptr > ()->spans() ); } -#line 3987 "GrammarParser.cpp" +#line 4227 "GrammarParser.cpp" break; - case 159: // BooleanLiteral: "false" -#line 1410 "../../obj/src/GrammarParser.y" + case 175: // BooleanLiteral: "false" +#line 1467 "../../obj/src/GrammarParser.y" { const auto value = libstdhl::Memory::get< libcasm_ir::BooleanConstant >( false ); yylhs.value.as < ValueLiteral::Ptr > () = Ast::make< ValueLiteral >( yylhs.location, value ); yylhs.value.as < ValueLiteral::Ptr > ()->setSpans( yystack_[0].value.as < Ast::Token::Ptr > ()->spans() ); } -#line 3997 "GrammarParser.cpp" +#line 4237 "GrammarParser.cpp" break; - case 160: // IntegerLiteral: "integer" -#line 1420 "../../obj/src/GrammarParser.y" + case 176: // IntegerLiteral: "integer" +#line 1477 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4005 "GrammarParser.cpp" +#line 4245 "GrammarParser.cpp" break; - case 161: // RationalLiteral: "rational" -#line 1428 "../../obj/src/GrammarParser.y" + case 177: // RationalLiteral: "rational" +#line 1485 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4013 "GrammarParser.cpp" +#line 4253 "GrammarParser.cpp" break; - case 162: // DecimalLiteral: "decimal" -#line 1436 "../../obj/src/GrammarParser.y" + case 178: // DecimalLiteral: "decimal" +#line 1493 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4021 "GrammarParser.cpp" +#line 4261 "GrammarParser.cpp" break; - case 163: // BinaryLiteral: "binary" -#line 1444 "../../obj/src/GrammarParser.y" + case 179: // BinaryLiteral: "binary" +#line 1501 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4029 "GrammarParser.cpp" +#line 4269 "GrammarParser.cpp" break; - case 164: // BinaryLiteral: "hexadecimal" -#line 1448 "../../obj/src/GrammarParser.y" + case 180: // BinaryLiteral: "hexadecimal" +#line 1505 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4037 "GrammarParser.cpp" +#line 4277 "GrammarParser.cpp" break; - case 165: // StringLiteral: "string" -#line 1456 "../../obj/src/GrammarParser.y" + case 181: // StringLiteral: "string" +#line 1513 "../../obj/src/GrammarParser.y" { yylhs.value.as < ValueLiteral::Ptr > () = yystack_[0].value.as < ValueLiteral::Ptr > (); } -#line 4045 "GrammarParser.cpp" +#line 4285 "GrammarParser.cpp" break; - case 166: // ReferenceLiteral: "@" IdentifierPath -#line 1464 "../../obj/src/GrammarParser.y" + case 182: // ReferenceLiteral: "@" IdentifierPath +#line 1521 "../../obj/src/GrammarParser.y" { yylhs.value.as < ReferenceLiteral::Ptr > () = Ast::make< ReferenceLiteral >( yylhs.location, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < IdentifierPath::Ptr > () ); } -#line 4053 "GrammarParser.cpp" +#line 4293 "GrammarParser.cpp" break; - case 167: // ListLiteral: "[" "]" -#line 1472 "../../obj/src/GrammarParser.y" + case 183: // ListLiteral: "[" "]" +#line 1529 "../../obj/src/GrammarParser.y" { const auto expressions = Ast::make< Expressions >( yylhs.location ); yylhs.value.as < ListLiteral::Ptr > () = Ast::make< ListLiteral >( yylhs.location, expressions ); yylhs.value.as < ListLiteral::Ptr > ()->setLeftBracket( yystack_[1].value.as < Ast::Token::Ptr > () ); yylhs.value.as < ListLiteral::Ptr > ()->setRightBracket( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4064 "GrammarParser.cpp" +#line 4304 "GrammarParser.cpp" break; - case 168: // ListLiteral: "[" Terms "]" -#line 1479 "../../obj/src/GrammarParser.y" + case 184: // ListLiteral: "[" Terms "]" +#line 1536 "../../obj/src/GrammarParser.y" { yylhs.value.as < ListLiteral::Ptr > () = Ast::make< ListLiteral >( yylhs.location, yystack_[1].value.as < Expressions::Ptr > () ); yylhs.value.as < ListLiteral::Ptr > ()->setLeftBracket( yystack_[2].value.as < Ast::Token::Ptr > () ); yylhs.value.as < ListLiteral::Ptr > ()->setRightBracket( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4074 "GrammarParser.cpp" +#line 4314 "GrammarParser.cpp" break; - case 169: // ListLiteral: "[" error "]" -#line 1485 "../../obj/src/GrammarParser.y" + case 185: // ListLiteral: "[" error "]" +#line 1542 "../../obj/src/GrammarParser.y" { yylhs.value.as < ListLiteral::Ptr > () = nullptr; } -#line 4082 "GrammarParser.cpp" +#line 4322 "GrammarParser.cpp" break; - case 170: // RangeLiteral: "[" Term ".." Term "]" -#line 1493 "../../obj/src/GrammarParser.y" + case 186: // RangeLiteral: "[" Term ".." Term "]" +#line 1550 "../../obj/src/GrammarParser.y" { yylhs.value.as < RangeLiteral::Ptr > () = Ast::make< RangeLiteral >( yylhs.location, yystack_[3].value.as < Expression::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Expression::Ptr > () ); yylhs.value.as < RangeLiteral::Ptr > ()->setLeftBracket( yystack_[4].value.as < Ast::Token::Ptr > () ); yylhs.value.as < RangeLiteral::Ptr > ()->setRightBracket( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4092 "GrammarParser.cpp" +#line 4332 "GrammarParser.cpp" break; - case 171: // TupleLiteral: "(" Terms "," Term ")" -#line 1502 "../../obj/src/GrammarParser.y" + case 187: // TupleLiteral: "(" Terms "," Term ")" +#line 1559 "../../obj/src/GrammarParser.y" { const auto expressions = yystack_[3].value.as < Expressions::Ptr > (); yystack_[1].value.as < Expression::Ptr > ()->setDelimiterToken( yystack_[2].value.as < Ast::Token::Ptr > () ); @@ -4101,531 +4341,531 @@ namespace libcasm_fe { yylhs.value.as < TupleLiteral::Ptr > ()->setLeftBracket( yystack_[4].value.as < Ast::Token::Ptr > () ); yylhs.value.as < TupleLiteral::Ptr > ()->setRightBracket( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4105 "GrammarParser.cpp" +#line 4345 "GrammarParser.cpp" break; - case 172: // RecordLiteral: "(" Assignments ")" -#line 1513 "../../obj/src/GrammarParser.y" + case 188: // RecordLiteral: "(" Assignments ")" +#line 1570 "../../obj/src/GrammarParser.y" { yylhs.value.as < RecordLiteral::Ptr > () = Ast::make< RecordLiteral >( yylhs.location, yystack_[1].value.as < NamedExpressions::Ptr > () ); yylhs.value.as < RecordLiteral::Ptr > ()->setLeftBracket( yystack_[2].value.as < Ast::Token::Ptr > () ); yylhs.value.as < RecordLiteral::Ptr > ()->setRightBracket( yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4115 "GrammarParser.cpp" +#line 4355 "GrammarParser.cpp" break; - case 173: // Assignments: Assignments "," Assignment -#line 1522 "../../obj/src/GrammarParser.y" + case 189: // Assignments: Assignments "," Assignment +#line 1579 "../../obj/src/GrammarParser.y" { auto assignments = yystack_[2].value.as < NamedExpressions::Ptr > (); yystack_[0].value.as < NamedExpression::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); assignments->add( yystack_[0].value.as < NamedExpression::Ptr > () ); yylhs.value.as < NamedExpressions::Ptr > () = assignments; } -#line 4126 "GrammarParser.cpp" +#line 4366 "GrammarParser.cpp" break; - case 174: // Assignments: Assignment -#line 1529 "../../obj/src/GrammarParser.y" + case 190: // Assignments: Assignment +#line 1586 "../../obj/src/GrammarParser.y" { auto assignments = Ast::make< NamedExpressions >( yylhs.location ); assignments->add( yystack_[0].value.as < NamedExpression::Ptr > () ); yylhs.value.as < NamedExpressions::Ptr > () = assignments; } -#line 4136 "GrammarParser.cpp" +#line 4376 "GrammarParser.cpp" break; - case 175: // Assignment: Identifier ":" Term -#line 1538 "../../obj/src/GrammarParser.y" + case 191: // Assignment: Identifier ":" Term +#line 1595 "../../obj/src/GrammarParser.y" { yylhs.value.as < NamedExpression::Ptr > () = Ast::make< NamedExpression >( yylhs.location, yystack_[2].value.as < Identifier::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4144 "GrammarParser.cpp" +#line 4384 "GrammarParser.cpp" break; - case 176: // Types: Types "," Type -#line 1550 "../../obj/src/GrammarParser.y" + case 192: // Types: Types "," Type +#line 1607 "../../obj/src/GrammarParser.y" { auto types = yystack_[2].value.as < Types::Ptr > (); yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); types->add( yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); yylhs.value.as < Types::Ptr > () = types; } -#line 4155 "GrammarParser.cpp" +#line 4395 "GrammarParser.cpp" break; - case 177: // Types: Type -#line 1557 "../../obj/src/GrammarParser.y" + case 193: // Types: Type +#line 1614 "../../obj/src/GrammarParser.y" { auto types = Ast::make< Types >( yylhs.location ); types->add( yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); yylhs.value.as < Types::Ptr > () = types; } -#line 4165 "GrammarParser.cpp" +#line 4405 "GrammarParser.cpp" break; - case 178: // Type: BasicType -#line 1566 "../../obj/src/GrammarParser.y" + case 194: // Type: BasicType +#line 1623 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < BasicType::Ptr > (); } -#line 4173 "GrammarParser.cpp" +#line 4413 "GrammarParser.cpp" break; - case 179: // Type: TupleType -#line 1570 "../../obj/src/GrammarParser.y" + case 195: // Type: TupleType +#line 1627 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < TupleType::Ptr > (); } -#line 4181 "GrammarParser.cpp" +#line 4421 "GrammarParser.cpp" break; - case 180: // Type: RecordType -#line 1574 "../../obj/src/GrammarParser.y" + case 196: // Type: RecordType +#line 1631 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < RecordType::Ptr > (); } -#line 4189 "GrammarParser.cpp" +#line 4429 "GrammarParser.cpp" break; - case 181: // Type: TemplateType -#line 1578 "../../obj/src/GrammarParser.y" + case 197: // Type: TemplateType +#line 1635 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < TemplateType::Ptr > (); } -#line 4197 "GrammarParser.cpp" +#line 4437 "GrammarParser.cpp" break; - case 182: // Type: RelationType -#line 1582 "../../obj/src/GrammarParser.y" + case 198: // Type: RelationType +#line 1639 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < RelationType::Ptr > (); } -#line 4205 "GrammarParser.cpp" +#line 4445 "GrammarParser.cpp" break; - case 183: // Type: FixedSizedType -#line 1586 "../../obj/src/GrammarParser.y" + case 199: // Type: FixedSizedType +#line 1643 "../../obj/src/GrammarParser.y" { yylhs.value.as < libcasm_fe::Ast::Type::Ptr > () = yystack_[0].value.as < FixedSizedType::Ptr > (); } -#line 4213 "GrammarParser.cpp" +#line 4453 "GrammarParser.cpp" break; - case 184: // BasicType: IdentifierPath -#line 1594 "../../obj/src/GrammarParser.y" + case 200: // BasicType: IdentifierPath +#line 1651 "../../obj/src/GrammarParser.y" { yylhs.value.as < BasicType::Ptr > () = Ast::make< BasicType >( yylhs.location, yystack_[0].value.as < IdentifierPath::Ptr > () ); } -#line 4221 "GrammarParser.cpp" +#line 4461 "GrammarParser.cpp" break; - case 185: // TupleType: "(" Types "," Type ")" -#line 1602 "../../obj/src/GrammarParser.y" + case 201: // TupleType: "(" Types "," Type ")" +#line 1659 "../../obj/src/GrammarParser.y" { auto subTypes = yystack_[3].value.as < Types::Ptr > (); yystack_[1].value.as < libcasm_fe::Ast::Type::Ptr > ()->setDelimiterToken( yystack_[2].value.as < Ast::Token::Ptr > () ); subTypes->add( yystack_[1].value.as < libcasm_fe::Ast::Type::Ptr > () ); yylhs.value.as < TupleType::Ptr > () = Ast::make< TupleType >( yylhs.location, yystack_[4].value.as < Ast::Token::Ptr > (), subTypes, yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4232 "GrammarParser.cpp" +#line 4472 "GrammarParser.cpp" break; - case 186: // RecordType: "(" TypedVariables "," TypedVariable ")" -#line 1613 "../../obj/src/GrammarParser.y" + case 202: // RecordType: "(" TypedVariables "," TypedVariable ")" +#line 1670 "../../obj/src/GrammarParser.y" { auto namedSubTypes = yystack_[3].value.as < VariableDefinitions::Ptr > (); yystack_[1].value.as < VariableDefinition::Ptr > ()->setDelimiterToken( yystack_[2].value.as < Ast::Token::Ptr > () ); namedSubTypes->add( yystack_[1].value.as < VariableDefinition::Ptr > () ); yylhs.value.as < RecordType::Ptr > () = Ast::make< RecordType >( yylhs.location, yystack_[4].value.as < Ast::Token::Ptr > (), namedSubTypes, yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4243 "GrammarParser.cpp" +#line 4483 "GrammarParser.cpp" break; - case 187: // TemplateType: IdentifierPath "<" Types ">" -#line 1624 "../../obj/src/GrammarParser.y" + case 203: // TemplateType: IdentifierPath "<" Types ">" +#line 1681 "../../obj/src/GrammarParser.y" { yylhs.value.as < TemplateType::Ptr > () = Ast::make< TemplateType >( yylhs.location, yystack_[3].value.as < IdentifierPath::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Types::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4251 "GrammarParser.cpp" +#line 4491 "GrammarParser.cpp" break; - case 188: // RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" -#line 1632 "../../obj/src/GrammarParser.y" + case 204: // RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" +#line 1689 "../../obj/src/GrammarParser.y" { yylhs.value.as < RelationType::Ptr > () = Ast::make< RelationType >( yylhs.location, yystack_[5].value.as < IdentifierPath::Ptr > (), yystack_[4].value.as < Ast::Token::Ptr > (), yystack_[3].value.as < Types::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4259 "GrammarParser.cpp" +#line 4499 "GrammarParser.cpp" break; - case 189: // FixedSizedType: IdentifierPath "'" Term -#line 1640 "../../obj/src/GrammarParser.y" + case 205: // FixedSizedType: IdentifierPath "'" Term +#line 1697 "../../obj/src/GrammarParser.y" { yylhs.value.as < FixedSizedType::Ptr > () = Ast::make< FixedSizedType >( yylhs.location, yystack_[2].value.as < IdentifierPath::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4267 "GrammarParser.cpp" +#line 4507 "GrammarParser.cpp" break; - case 190: // FunctionParameters: FunctionParameters "*" Type -#line 1652 "../../obj/src/GrammarParser.y" + case 206: // FunctionParameters: FunctionParameters "*" Type +#line 1709 "../../obj/src/GrammarParser.y" { auto types = yystack_[2].value.as < Types::Ptr > (); yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); types->add( yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); yylhs.value.as < Types::Ptr > () = types; } -#line 4278 "GrammarParser.cpp" +#line 4518 "GrammarParser.cpp" break; - case 191: // FunctionParameters: Type -#line 1659 "../../obj/src/GrammarParser.y" + case 207: // FunctionParameters: Type +#line 1716 "../../obj/src/GrammarParser.y" { auto types = Ast::make< Types >( yylhs.location ); types->add( yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); yylhs.value.as < Types::Ptr > () = types; } -#line 4288 "GrammarParser.cpp" +#line 4528 "GrammarParser.cpp" break; - case 192: // MaybeFunctionParameters: FunctionParameters -#line 1669 "../../obj/src/GrammarParser.y" + case 208: // MaybeFunctionParameters: FunctionParameters +#line 1726 "../../obj/src/GrammarParser.y" { yylhs.value.as < Types::Ptr > () = yystack_[0].value.as < Types::Ptr > (); } -#line 4296 "GrammarParser.cpp" +#line 4536 "GrammarParser.cpp" break; - case 193: // MaybeFunctionParameters: %empty -#line 1673 "../../obj/src/GrammarParser.y" + case 209: // MaybeFunctionParameters: %empty +#line 1730 "../../obj/src/GrammarParser.y" { yylhs.value.as < Types::Ptr > () = Ast::make< Types >( yylhs.location ); } -#line 4304 "GrammarParser.cpp" +#line 4544 "GrammarParser.cpp" break; - case 194: // Parameters: Parameters "," TypedAttributedVariable -#line 1681 "../../obj/src/GrammarParser.y" + case 210: // Parameters: Parameters "," TypedAttributedVariable +#line 1738 "../../obj/src/GrammarParser.y" { auto parameters = yystack_[2].value.as < VariableDefinitions::Ptr > (); yystack_[0].value.as < VariableDefinition::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); parameters->add( yystack_[0].value.as < VariableDefinition::Ptr > () ); yylhs.value.as < VariableDefinitions::Ptr > () = parameters; } -#line 4315 "GrammarParser.cpp" +#line 4555 "GrammarParser.cpp" break; - case 195: // Parameters: TypedAttributedVariable -#line 1688 "../../obj/src/GrammarParser.y" + case 211: // Parameters: TypedAttributedVariable +#line 1745 "../../obj/src/GrammarParser.y" { auto parameters = Ast::make< NodeList< VariableDefinition > >( yylhs.location ); parameters->add( yystack_[0].value.as < VariableDefinition::Ptr > () ); yylhs.value.as < VariableDefinitions::Ptr > () = parameters; } -#line 4325 "GrammarParser.cpp" +#line 4565 "GrammarParser.cpp" break; - case 196: // MaybeDefined: "defined" "{" Term "}" -#line 1702 "../../obj/src/GrammarParser.y" + case 212: // MaybeDefined: "defined" "{" Term "}" +#line 1759 "../../obj/src/GrammarParser.y" { yylhs.value.as < Defined::Ptr > () = Ast::make< Defined >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Expression::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4333 "GrammarParser.cpp" +#line 4573 "GrammarParser.cpp" break; - case 197: // MaybeDefined: %empty -#line 1706 "../../obj/src/GrammarParser.y" + case 213: // MaybeDefined: %empty +#line 1763 "../../obj/src/GrammarParser.y" { yylhs.value.as < Defined::Ptr > () = Ast::make< Defined >( yylhs.location, Token::unresolved(), Token::unresolved(), Ast::make< UndefLiteral >( yylhs.location ), Token::unresolved() ); } -#line 4341 "GrammarParser.cpp" +#line 4581 "GrammarParser.cpp" break; - case 198: // MaybeInitially: "=" "{" Initializers "}" -#line 1714 "../../obj/src/GrammarParser.y" + case 214: // MaybeInitially: "=" "{" Initializers "}" +#line 1771 "../../obj/src/GrammarParser.y" { yylhs.value.as < Initially::Ptr > () = Ast::make< Initially >( yylhs.location, yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Initializers::Ptr > (), yystack_[0].value.as < Ast::Token::Ptr > () ); } -#line 4349 "GrammarParser.cpp" +#line 4589 "GrammarParser.cpp" break; - case 199: // MaybeInitially: %empty -#line 1718 "../../obj/src/GrammarParser.y" + case 215: // MaybeInitially: %empty +#line 1775 "../../obj/src/GrammarParser.y" { const auto initializers = Ast::make< Initializers >( yylhs.location ); yylhs.value.as < Initially::Ptr > () = Ast::make< Initially >( yylhs.location, Token::unresolved(), Token::unresolved(), initializers, Token::unresolved() ); } -#line 4358 "GrammarParser.cpp" +#line 4598 "GrammarParser.cpp" break; - case 200: // Initializers: Initializers "," Initializer -#line 1727 "../../obj/src/GrammarParser.y" + case 216: // Initializers: Initializers "," Initializer +#line 1784 "../../obj/src/GrammarParser.y" { auto initializers = yystack_[2].value.as < Initializers::Ptr > (); yystack_[0].value.as < Initializer::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); initializers->add( yystack_[0].value.as < Initializer::Ptr > () ); yylhs.value.as < Initializers::Ptr > () = initializers; } -#line 4369 "GrammarParser.cpp" +#line 4609 "GrammarParser.cpp" break; - case 201: // Initializers: Initializer -#line 1734 "../../obj/src/GrammarParser.y" + case 217: // Initializers: Initializer +#line 1791 "../../obj/src/GrammarParser.y" { auto initializers = Ast::make< Initializers >( yylhs.location ); initializers->add( yystack_[0].value.as < Initializer::Ptr > () ); yylhs.value.as < Initializers::Ptr > () = initializers; } -#line 4379 "GrammarParser.cpp" +#line 4619 "GrammarParser.cpp" break; - case 202: // Initializer: Term -#line 1744 "../../obj/src/GrammarParser.y" + case 218: // Initializer: Term +#line 1801 "../../obj/src/GrammarParser.y" { const auto arguments = Ast::make< Expressions >( yylhs.location ); yylhs.value.as < Initializer::Ptr > () = Ast::make< Initializer >( yylhs.location, Token::unresolved(), arguments, Token::unresolved(), Token::unresolved(), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4388 "GrammarParser.cpp" +#line 4628 "GrammarParser.cpp" break; - case 203: // Initializer: "(" Term ")" "->" Term -#line 1749 "../../obj/src/GrammarParser.y" + case 219: // Initializer: "(" Term ")" "->" Term +#line 1806 "../../obj/src/GrammarParser.y" { auto arguments = Ast::make< Expressions >( yylhs.location ); arguments->add( yystack_[3].value.as < Expression::Ptr > () ); yylhs.value.as < Initializer::Ptr > () = Ast::make< Initializer >( yylhs.location, yystack_[4].value.as < Ast::Token::Ptr > (), arguments, yystack_[2].value.as < Ast::Token::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4398 "GrammarParser.cpp" +#line 4638 "GrammarParser.cpp" break; - case 204: // Initializer: TupleLiteral "->" Term -#line 1755 "../../obj/src/GrammarParser.y" + case 220: // Initializer: TupleLiteral "->" Term +#line 1812 "../../obj/src/GrammarParser.y" { const auto arguments = yystack_[2].value.as < TupleLiteral::Ptr > ()->expressions(); const auto lbToken = yystack_[2].value.as < TupleLiteral::Ptr > ()->leftBracket(); const auto rbToken = yystack_[2].value.as < TupleLiteral::Ptr > ()->rightBracket(); yylhs.value.as < Initializer::Ptr > () = Ast::make< Initializer >( yylhs.location, lbToken, arguments, rbToken, yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4409 "GrammarParser.cpp" +#line 4649 "GrammarParser.cpp" break; - case 205: // Identifier: "identifier" -#line 1770 "../../obj/src/GrammarParser.y" + case 221: // Identifier: "identifier" +#line 1827 "../../obj/src/GrammarParser.y" { yylhs.value.as < Identifier::Ptr > () = yystack_[0].value.as < Identifier::Ptr > (); } -#line 4417 "GrammarParser.cpp" +#line 4657 "GrammarParser.cpp" break; - case 206: // Identifier: "in" -#line 1774 "../../obj/src/GrammarParser.y" + case 222: // Identifier: "in" +#line 1831 "../../obj/src/GrammarParser.y" { yylhs.value.as < Identifier::Ptr > () = Ast::make< Identifier >( yylhs.location, "in" ); yylhs.value.as < Identifier::Ptr > ()->setSpans( m_lexer.fetchSpansAndReset() ); } -#line 4426 "GrammarParser.cpp" +#line 4666 "GrammarParser.cpp" break; - case 207: // IdentifierPath: IdentifierPath "::" Identifier -#line 1783 "../../obj/src/GrammarParser.y" + case 223: // IdentifierPath: IdentifierPath "::" Identifier +#line 1840 "../../obj/src/GrammarParser.y" { auto path = yystack_[2].value.as < IdentifierPath::Ptr > (); yystack_[0].value.as < Identifier::Ptr > ()->setDoubleColon( yystack_[1].value.as < Ast::Token::Ptr > () ); path->addIdentifier( yystack_[0].value.as < Identifier::Ptr > () ); yylhs.value.as < IdentifierPath::Ptr > () = path; } -#line 4437 "GrammarParser.cpp" +#line 4677 "GrammarParser.cpp" break; - case 208: // IdentifierPath: Identifier -#line 1790 "../../obj/src/GrammarParser.y" + case 224: // IdentifierPath: Identifier +#line 1847 "../../obj/src/GrammarParser.y" { yylhs.value.as < IdentifierPath::Ptr > () = Ast::make< IdentifierPath >( yylhs.location, yystack_[0].value.as < Identifier::Ptr > () ); } -#line 4445 "GrammarParser.cpp" +#line 4685 "GrammarParser.cpp" break; - case 209: // Variable: TypedVariable -#line 1802 "../../obj/src/GrammarParser.y" + case 225: // Variable: TypedVariable +#line 1859 "../../obj/src/GrammarParser.y" { yylhs.value.as < VariableDefinition::Ptr > () = yystack_[0].value.as < VariableDefinition::Ptr > (); } -#line 4453 "GrammarParser.cpp" +#line 4693 "GrammarParser.cpp" break; - case 210: // Variable: Identifier -#line 1806 "../../obj/src/GrammarParser.y" + case 226: // Variable: Identifier +#line 1863 "../../obj/src/GrammarParser.y" { const auto unresolvedType = Ast::make< UnresolvedType >( yylhs.location ); yylhs.value.as < VariableDefinition::Ptr > () = Ast::make< VariableDefinition >( yylhs.location, yystack_[0].value.as < Identifier::Ptr > (), Token::unresolved(), unresolvedType ); } -#line 4462 "GrammarParser.cpp" +#line 4702 "GrammarParser.cpp" break; - case 211: // AttributedVariables: AttributedVariables "," AttributedVariable -#line 1815 "../../obj/src/GrammarParser.y" + case 227: // AttributedVariables: AttributedVariables "," AttributedVariable +#line 1872 "../../obj/src/GrammarParser.y" { auto variables = yystack_[2].value.as < VariableDefinitions::Ptr > (); yystack_[0].value.as < VariableDefinition::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); variables->add( yystack_[0].value.as < VariableDefinition::Ptr > () ); yylhs.value.as < VariableDefinitions::Ptr > () = variables; } -#line 4473 "GrammarParser.cpp" +#line 4713 "GrammarParser.cpp" break; - case 212: // AttributedVariables: AttributedVariable -#line 1822 "../../obj/src/GrammarParser.y" + case 228: // AttributedVariables: AttributedVariable +#line 1879 "../../obj/src/GrammarParser.y" { auto variables = Ast::make< VariableDefinitions >( yylhs.location ); variables->add( yystack_[0].value.as < VariableDefinition::Ptr > () ); yylhs.value.as < VariableDefinitions::Ptr > () = variables; } -#line 4483 "GrammarParser.cpp" +#line 4723 "GrammarParser.cpp" break; - case 213: // TypedVariables: TypedVariables "," TypedVariable -#line 1832 "../../obj/src/GrammarParser.y" + case 229: // TypedVariables: TypedVariables "," TypedVariable +#line 1889 "../../obj/src/GrammarParser.y" { auto typedVariables = yystack_[2].value.as < VariableDefinitions::Ptr > (); yystack_[0].value.as < VariableDefinition::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); typedVariables->add( yystack_[0].value.as < VariableDefinition::Ptr > () ); yylhs.value.as < VariableDefinitions::Ptr > () = typedVariables; } -#line 4494 "GrammarParser.cpp" +#line 4734 "GrammarParser.cpp" break; - case 214: // TypedVariables: TypedVariable -#line 1839 "../../obj/src/GrammarParser.y" + case 230: // TypedVariables: TypedVariable +#line 1896 "../../obj/src/GrammarParser.y" { auto typedVariables = Ast::make< VariableDefinitions >( yylhs.location ); typedVariables->add( yystack_[0].value.as < VariableDefinition::Ptr > () ); yylhs.value.as < VariableDefinitions::Ptr > () = typedVariables; } -#line 4504 "GrammarParser.cpp" +#line 4744 "GrammarParser.cpp" break; - case 215: // TypedVariable: Identifier ":" Type -#line 1849 "../../obj/src/GrammarParser.y" + case 231: // TypedVariable: Identifier ":" Type +#line 1906 "../../obj/src/GrammarParser.y" { auto variable = Ast::make< VariableDefinition >( yylhs.location, yystack_[2].value.as < Identifier::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < libcasm_fe::Ast::Type::Ptr > () ); yylhs.value.as < VariableDefinition::Ptr > () = variable; } -#line 4513 "GrammarParser.cpp" +#line 4753 "GrammarParser.cpp" break; - case 216: // AttributedVariable: Attributes Variable -#line 1858 "../../obj/src/GrammarParser.y" + case 232: // AttributedVariable: Attributes Variable +#line 1915 "../../obj/src/GrammarParser.y" { auto variable = yystack_[0].value.as < VariableDefinition::Ptr > (); variable->setAttributes( yystack_[1].value.as < Attributes::Ptr > () ); yylhs.value.as < VariableDefinition::Ptr > () = variable; } -#line 4523 "GrammarParser.cpp" +#line 4763 "GrammarParser.cpp" break; - case 217: // AttributedVariable: Variable -#line 1864 "../../obj/src/GrammarParser.y" + case 233: // AttributedVariable: Variable +#line 1921 "../../obj/src/GrammarParser.y" { yylhs.value.as < VariableDefinition::Ptr > () = yystack_[0].value.as < VariableDefinition::Ptr > (); } -#line 4531 "GrammarParser.cpp" +#line 4771 "GrammarParser.cpp" break; - case 218: // TypedAttributedVariable: Attributes TypedVariable -#line 1872 "../../obj/src/GrammarParser.y" + case 234: // TypedAttributedVariable: Attributes TypedVariable +#line 1929 "../../obj/src/GrammarParser.y" { auto variable = yystack_[0].value.as < VariableDefinition::Ptr > (); variable->setAttributes( yystack_[1].value.as < Attributes::Ptr > () ); yylhs.value.as < VariableDefinition::Ptr > () = variable; } -#line 4541 "GrammarParser.cpp" +#line 4781 "GrammarParser.cpp" break; - case 219: // TypedAttributedVariable: TypedVariable -#line 1878 "../../obj/src/GrammarParser.y" + case 235: // TypedAttributedVariable: TypedVariable +#line 1935 "../../obj/src/GrammarParser.y" { yylhs.value.as < VariableDefinition::Ptr > () = yystack_[0].value.as < VariableDefinition::Ptr > (); } -#line 4549 "GrammarParser.cpp" +#line 4789 "GrammarParser.cpp" break; - case 220: // VariableBindings: VariableBindings "," VariableBinding -#line 1890 "../../obj/src/GrammarParser.y" + case 236: // VariableBindings: VariableBindings "," VariableBinding +#line 1947 "../../obj/src/GrammarParser.y" { auto variableBindings = yystack_[2].value.as < VariableBindings::Ptr > (); yystack_[0].value.as < VariableBinding::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); variableBindings->add( yystack_[0].value.as < VariableBinding::Ptr > () ); yylhs.value.as < VariableBindings::Ptr > () = variableBindings; } -#line 4560 "GrammarParser.cpp" +#line 4800 "GrammarParser.cpp" break; - case 221: // VariableBindings: VariableBinding -#line 1897 "../../obj/src/GrammarParser.y" + case 237: // VariableBindings: VariableBinding +#line 1954 "../../obj/src/GrammarParser.y" { auto variableBindings = Ast::make< VariableBindings >( yylhs.location ); variableBindings->add( yystack_[0].value.as < VariableBinding::Ptr > () ); yylhs.value.as < VariableBindings::Ptr > () = variableBindings; } -#line 4570 "GrammarParser.cpp" +#line 4810 "GrammarParser.cpp" break; - case 222: // VariableBinding: AttributedVariable "=" Term -#line 1906 "../../obj/src/GrammarParser.y" + case 238: // VariableBinding: AttributedVariable "=" Term +#line 1963 "../../obj/src/GrammarParser.y" { yylhs.value.as < VariableBinding::Ptr > () = Ast::make< VariableBinding >( yylhs.location, yystack_[2].value.as < VariableDefinition::Ptr > (), yystack_[1].value.as < Ast::Token::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4578 "GrammarParser.cpp" +#line 4818 "GrammarParser.cpp" break; - case 223: // LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition -#line 1918 "../../obj/src/GrammarParser.y" + case 239: // LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition +#line 1975 "../../obj/src/GrammarParser.y" { auto definitions = yystack_[2].value.as < FunctionDefinitions::Ptr > (); yystack_[0].value.as < FunctionDefinition::Ptr > ()->setDelimiterToken( yystack_[1].value.as < Ast::Token::Ptr > () ); definitions->add( yystack_[0].value.as < FunctionDefinition::Ptr > () ); yylhs.value.as < FunctionDefinitions::Ptr > () = definitions; } -#line 4589 "GrammarParser.cpp" +#line 4829 "GrammarParser.cpp" break; - case 224: // LocalFunctionDefinitions: AttributedLocalFunctionDefinition -#line 1925 "../../obj/src/GrammarParser.y" + case 240: // LocalFunctionDefinitions: AttributedLocalFunctionDefinition +#line 1982 "../../obj/src/GrammarParser.y" { auto definitions = Ast::make< FunctionDefinitions >( yylhs.location ); definitions->add( yystack_[0].value.as < FunctionDefinition::Ptr > () ); yylhs.value.as < FunctionDefinitions::Ptr > () = definitions; } -#line 4599 "GrammarParser.cpp" +#line 4839 "GrammarParser.cpp" break; - case 225: // AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition -#line 1934 "../../obj/src/GrammarParser.y" + case 241: // AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition +#line 1991 "../../obj/src/GrammarParser.y" { auto definition = yystack_[0].value.as < FunctionDefinition::Ptr > (); definition->setAttributes( yystack_[1].value.as < Attributes::Ptr > () ); yylhs.value.as < FunctionDefinition::Ptr > () = definition; } -#line 4609 "GrammarParser.cpp" +#line 4849 "GrammarParser.cpp" break; - case 226: // AttributedLocalFunctionDefinition: LocalFunctionDefinition -#line 1940 "../../obj/src/GrammarParser.y" + case 242: // AttributedLocalFunctionDefinition: LocalFunctionDefinition +#line 1997 "../../obj/src/GrammarParser.y" { yylhs.value.as < FunctionDefinition::Ptr > () = yystack_[0].value.as < FunctionDefinition::Ptr > (); } -#line 4617 "GrammarParser.cpp" +#line 4857 "GrammarParser.cpp" break; - case 227: // AttributedLocalFunctionDefinition: error -#line 1944 "../../obj/src/GrammarParser.y" + case 243: // AttributedLocalFunctionDefinition: error +#line 2001 "../../obj/src/GrammarParser.y" { yylhs.value.as < FunctionDefinition::Ptr > () = nullptr; } -#line 4625 "GrammarParser.cpp" +#line 4865 "GrammarParser.cpp" break; - case 228: // LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially -#line 1951 "../../obj/src/GrammarParser.y" + case 244: // LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially +#line 2008 "../../obj/src/GrammarParser.y" { yylhs.value.as < FunctionDefinition::Ptr > () = Ast::make< FunctionDefinition >( yylhs.location, Token::unresolved(), yystack_[6].value.as < Identifier::Ptr > (), yystack_[5].value.as < Ast::Token::Ptr > (), yystack_[4].value.as < Types::Ptr > (), yystack_[3].value.as < Ast::Token::Ptr > (), yystack_[2].value.as < libcasm_fe::Ast::Type::Ptr > (), yystack_[1].value.as < Defined::Ptr > (), yystack_[0].value.as < Initially::Ptr > () ); yylhs.value.as < FunctionDefinition::Ptr > ()->setClassification( FunctionDefinition::Classification::LOCAL ); @@ -4637,77 +4877,77 @@ namespace libcasm_fe { initializer->setFunction( yylhs.value.as < FunctionDefinition::Ptr > () ); } } -#line 4641 "GrammarParser.cpp" +#line 4881 "GrammarParser.cpp" break; - case 229: // Attributes: Attributes Attribute -#line 1971 "../../obj/src/GrammarParser.y" + case 245: // Attributes: Attributes Attribute +#line 2028 "../../obj/src/GrammarParser.y" { auto attributes = yystack_[1].value.as < Attributes::Ptr > (); attributes->add( yystack_[0].value.as < Attribute::Ptr > () ); yylhs.value.as < Attributes::Ptr > () = attributes; } -#line 4651 "GrammarParser.cpp" +#line 4891 "GrammarParser.cpp" break; - case 230: // Attributes: Attribute -#line 1977 "../../obj/src/GrammarParser.y" + case 246: // Attributes: Attribute +#line 2034 "../../obj/src/GrammarParser.y" { auto attributes = Ast::make< Attributes >( yylhs.location ); attributes->add( yystack_[0].value.as < Attribute::Ptr > () ); yylhs.value.as < Attributes::Ptr > () = attributes; } -#line 4661 "GrammarParser.cpp" +#line 4901 "GrammarParser.cpp" break; - case 231: // Attribute: "[" BasicAttribute "]" -#line 1986 "../../obj/src/GrammarParser.y" + case 247: // Attribute: "[" BasicAttribute "]" +#line 2043 "../../obj/src/GrammarParser.y" { auto attribute = yystack_[1].value.as < BasicAttribute::Ptr > (); yystack_[1].value.as < BasicAttribute::Ptr > ()->setLeftBrace( yystack_[2].value.as < Ast::Token::Ptr > () ); yystack_[1].value.as < BasicAttribute::Ptr > ()->setRightBrace( yystack_[0].value.as < Ast::Token::Ptr > () ); yylhs.value.as < Attribute::Ptr > () = attribute; } -#line 4672 "GrammarParser.cpp" +#line 4912 "GrammarParser.cpp" break; - case 232: // Attribute: "[" ExpressionAttribute "]" -#line 1993 "../../obj/src/GrammarParser.y" + case 248: // Attribute: "[" ExpressionAttribute "]" +#line 2050 "../../obj/src/GrammarParser.y" { auto attribute = yystack_[1].value.as < ExpressionAttribute::Ptr > (); yystack_[1].value.as < ExpressionAttribute::Ptr > ()->setLeftBrace( yystack_[2].value.as < Ast::Token::Ptr > () ); yystack_[1].value.as < ExpressionAttribute::Ptr > ()->setRightBrace( yystack_[0].value.as < Ast::Token::Ptr > () ); yylhs.value.as < Attribute::Ptr > () = attribute; } -#line 4683 "GrammarParser.cpp" +#line 4923 "GrammarParser.cpp" break; - case 233: // Attribute: "[" error "]" -#line 2000 "../../obj/src/GrammarParser.y" + case 249: // Attribute: "[" error "]" +#line 2057 "../../obj/src/GrammarParser.y" { yylhs.value.as < Attribute::Ptr > () = nullptr; } -#line 4691 "GrammarParser.cpp" +#line 4931 "GrammarParser.cpp" break; - case 234: // BasicAttribute: Identifier -#line 2007 "../../obj/src/GrammarParser.y" + case 250: // BasicAttribute: Identifier +#line 2064 "../../obj/src/GrammarParser.y" { yylhs.value.as < BasicAttribute::Ptr > () = Ast::make< BasicAttribute >( yylhs.location, yystack_[0].value.as < Identifier::Ptr > () ); } -#line 4699 "GrammarParser.cpp" +#line 4939 "GrammarParser.cpp" break; - case 235: // ExpressionAttribute: Identifier Term -#line 2014 "../../obj/src/GrammarParser.y" + case 251: // ExpressionAttribute: Identifier Term +#line 2071 "../../obj/src/GrammarParser.y" { yylhs.value.as < ExpressionAttribute::Ptr > () = Ast::make< ExpressionAttribute >( yylhs.location, yystack_[1].value.as < Identifier::Ptr > (), yystack_[0].value.as < Expression::Ptr > () ); } -#line 4707 "GrammarParser.cpp" +#line 4947 "GrammarParser.cpp" break; -#line 4711 "GrammarParser.cpp" +#line 4951 "GrammarParser.cpp" default: break; @@ -5056,785 +5296,827 @@ namespace libcasm_fe { } - const short Parser::yypact_ninf_ = -298; + const short Parser::yypact_ninf_ = -377; - const short Parser::yytable_ninf_ = -192; + const short Parser::yytable_ninf_ = -208; const short Parser::yypact_[] = { - 24, -298, 16, 36, 268, 27, -298, 44, -298, -298, - 1755, 68, 69, -298, -298, -13, -3, -3, -3, -3, - -3, -3, -3, -3, 106, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, 143, -298, -298, - -298, -7, -7, -7, 1755, -7, -298, -298, -298, 1755, - 1834, 1834, 1275, 1015, 1834, -3, -298, -298, -298, -298, - -298, -298, 2550, 18, -298, -31, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, 167, -298, -298, 1820, 20, 52, 110, 0, 118, - 140, 119, 17, 166, 162, -298, -298, 182, -298, -298, - 191, 2, -298, -7, 3, -298, 7, 2087, 28, -298, - -298, -298, 193, 185, 2305, 138, -298, 198, 203, -298, - 149, 2340, -17, 20, 1755, 1755, 1755, 1755, 1755, 1755, - 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, 1755, - 1755, -2, -1, 1080, 1145, -3, 1275, 2550, -5, 158, - -298, 9, -2, 204, 1625, 10, -2, -2, 6, 1755, - -3, 207, -2, -2, 1755, 1755, -7, -298, 1755, -7, - 1755, 1755, 1755, -298, 1755, -298, -298, -3, 1755, -298, - -298, 1755, 1755, -298, 481, 2620, 2650, 2585, 219, 219, - 421, 186, 186, 195, 195, 195, -298, 2585, 421, 186, - 186, -2, -298, -298, -298, -298, -298, -298, -298, 123, - -298, 213, 215, -298, 139, 2550, 216, -298, 142, -298, - 2375, 1755, -298, 1820, 217, 145, 182, -298, -298, -7, - 222, 13, 671, 744, -298, -7, 15, -7, -7, 1625, - 1755, 1755, 1755, 815, 885, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -298, -298, -298, -298, 202, - 111, 208, 236, 150, 239, -298, -298, 2550, -298, 275, - -298, 227, 223, -298, 2550, 2550, -298, 2235, -298, 1925, - 2164, 2270, 2410, -298, 198, 2550, 2550, 2445, 237, -298, - 182, 238, -298, -2, 1755, 1210, -298, -298, -298, -298, - 226, 2550, -298, 231, 232, -7, -298, 1755, -298, -298, - 168, -298, -7, 287, 1345, -298, 286, 1415, 29, -298, - 251, 35, -298, -298, -7, 58, 63, -298, 2126, 2200, - 1966, 254, 1485, 233, 1555, 1755, -25, 107, 1625, 255, - -2, -2, 1755, 1755, 1755, 1755, -298, -298, -2, -3, - 101, 164, 241, -298, 262, -298, 153, 1755, -2, -2, - -298, 2550, -298, 13, -298, -298, -298, -298, -298, -298, - 1625, -2, 1625, 15, -298, 1755, 1755, 1625, 269, 1625, - -298, -298, -298, -298, 2550, 1625, -2, 1625, -2, -298, - -298, -298, 301, 2550, 2550, 2550, 2550, 274, 276, -2, - -298, -2, -298, -298, 2550, 277, 280, -298, -298, 261, - -298, -298, 1884, 2007, 304, 950, -298, -298, 288, -298, - 290, 281, 291, -298, -298, -298, 278, 1755, 1755, -2, - 1625, 1755, 1625, 1625, 292, 293, 295, 1690, -298, 2480, - 1625, 1625, 1755, 298, -298, -298, 2550, 2550, 301, -298, - 2048, -298, -298, -298, 1625, 1625, -298, -298, 1625, -298, - -298, 2515, 1820, 291, 1625, -298, -298, -298, -298, 170, - -298, -298, -298 + 32, -377, 26, 57, 539, 33, -377, -17, -377, -377, + 1954, 18, 42, -377, -377, 5, 9, 9, 9, 9, + 9, 9, 9, 9, -6, 9, 130, -377, -377, -377, + -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, + -377, 563, -377, -377, -377, -5, -5, -5, 1954, -5, + -377, -377, -377, 1954, 239, 239, 1474, 1214, 239, 9, + -377, -377, -377, -377, -377, -377, 2711, 61, -377, 58, + -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, + -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, + -377, -377, -377, -377, -377, 16, -377, -377, 2019, 86, + -7, 119, 120, 135, 156, 138, 46, 143, 172, -6, + 187, -377, -377, -377, -377, -377, -377, 0, 177, -377, + -377, 190, -377, -377, 200, 38, -377, -5, 53, -377, + 59, 2248, 64, -377, -377, -377, 199, 202, 2466, -22, + -377, 211, 215, -377, 94, 2501, 19, 86, 1954, 1954, + 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, + 1954, 1954, 1954, 1954, 1954, -6, 28, 1279, 1344, 9, + 1474, 2711, 201, 134, -377, 15, -6, 230, 1824, 17, + -6, -6, -4, 1954, 9, 231, 243, 237, -377, 190, + 92, 240, -377, 246, -6, -6, 1954, -6, -6, 1954, + 1954, -5, -377, 1954, -5, 1954, 1954, 1954, -377, 1954, + -377, -377, 9, 1954, -377, -377, 1954, 1954, -377, 353, + 707, 2776, 2746, 228, 228, 448, 176, 176, 236, 236, + 236, -377, 2746, 448, 176, 176, -377, -377, 254, 256, + -377, 101, 2711, 257, -377, 168, -377, 2536, 1954, -377, + 2019, 258, 169, 190, -377, -377, -5, 261, 22, 857, + 944, -377, -5, 25, -5, -5, 1824, 1954, 1954, 1954, + 1014, 1084, -377, -377, -377, -377, -377, -377, -377, -377, + -377, -377, -377, -377, -377, -377, 235, 115, 252, 262, + 171, 263, -377, -377, 2711, -377, 312, 116, -6, 9, + 255, 278, 227, 195, 264, 259, -377, -377, 265, -377, + 2711, 2711, -377, 2396, -377, 2086, 2325, 2431, 2571, -377, + 211, 2711, 2711, 2606, 1409, -377, -377, -377, -377, 266, + 2711, -377, 267, 268, -5, -377, 1954, -377, -377, 221, + -377, -5, 315, 1544, -377, 314, 1614, 65, -377, 284, + 89, -377, -377, -5, 95, 100, -377, 2287, 2361, 2127, + 279, 1684, 269, 1754, 1954, -19, 4, 1824, 287, 9, + 9, -377, -377, -377, 51, -377, 292, 293, -377, -377, + -377, 60, 294, -6, -377, -6, -6, -6, 1954, 1954, + 1954, 1954, -377, -377, 295, -377, 184, 1954, -6, -6, + -377, 2711, -377, 22, -377, -377, -377, -377, -377, -377, + 1824, -6, 1824, 25, -377, 1954, 1954, 1824, 296, 1824, + -377, -377, -377, -377, 2711, 1824, -6, 1824, -6, -377, + -377, 74, 117, -377, -377, -377, -377, -377, -377, 255, + -377, -377, 286, 336, 2711, 2711, 2711, 2711, -377, -377, + 2711, 303, 305, -377, -377, 285, -377, -377, 2045, 2168, + 325, 1149, -377, -377, 308, -377, 309, -6, -6, 67, + -377, 307, 310, 1954, 1954, -6, 1824, 1954, 1824, 1824, + 316, 311, 317, 1889, -377, 2641, 1824, 1824, 306, 318, + -377, 1954, 320, -377, 2711, 2711, 336, -377, 2209, -377, + -377, -377, 1824, 1824, -377, -377, 1824, -377, -377, -6, + -6, 2676, 2019, 310, 1824, -377, -377, -377, -377, -377, + -377, 222, -377, -377, -377 }; const unsigned char Parser::yydefact_[] = { - 0, 4, 0, 0, 0, 0, 230, 0, 206, 205, - 234, 0, 0, 1, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 6, 8, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 0, 3, 229, - 233, 0, 0, 0, 0, 0, 157, 159, 158, 0, - 0, 0, 0, 0, 0, 0, 163, 164, 160, 161, - 162, 165, 235, 89, 91, 100, 123, 124, 101, 125, - 90, 92, 93, 94, 95, 96, 97, 102, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 208, 126, 231, 232, 0, 20, 0, 0, 0, 208, - 39, 0, 42, 0, 0, 5, 7, 210, 217, 209, - 0, 0, 221, 0, 0, 212, 0, 0, 0, 122, - 103, 104, 0, 0, 88, 0, 174, 208, 0, 167, - 0, 88, 0, 166, 0, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 0, 246, 0, 222, 221, + 250, 0, 0, 1, 9, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 6, 8, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 0, 3, 245, 249, 0, 0, 0, 0, 0, + 173, 175, 174, 0, 0, 0, 0, 0, 0, 0, + 179, 180, 176, 177, 178, 181, 251, 105, 107, 116, + 139, 140, 117, 141, 106, 108, 109, 110, 111, 112, + 113, 118, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 224, 142, 247, 248, 0, 22, + 0, 0, 0, 224, 41, 0, 44, 0, 0, 0, + 0, 194, 195, 196, 197, 198, 199, 200, 0, 5, + 7, 226, 233, 225, 0, 0, 237, 0, 0, 228, + 0, 0, 0, 138, 119, 120, 0, 0, 104, 0, + 190, 224, 0, 183, 0, 104, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 202, 155, 0, - 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 193, 0, 0, 0, 0, 216, 0, 0, - 0, 0, 0, 99, 0, 98, 172, 0, 0, 169, - 168, 0, 0, 144, 119, 117, 118, 121, 105, 106, - 112, 113, 114, 107, 108, 109, 110, 120, 111, 115, - 116, 0, 138, 178, 179, 180, 181, 182, 183, 184, - 134, 130, 0, 135, 0, 88, 0, 127, 0, 207, - 88, 0, 21, 0, 0, 0, 0, 219, 195, 0, - 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 26, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, - 85, 123, 0, 0, 0, 38, 40, 41, 43, 0, - 191, 192, 0, 215, 222, 139, 220, 0, 211, 0, - 0, 0, 87, 173, 0, 175, 87, 0, 0, 177, - 208, 0, 214, 193, 0, 0, 137, 136, 129, 128, - 98, 204, 200, 0, 0, 0, 218, 0, 35, 37, - 0, 33, 0, 0, 0, 46, 0, 0, 0, 227, - 0, 0, 224, 226, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 171, 170, 0, 0, - 0, 177, 0, 189, 0, 131, 0, 0, 0, 0, - 194, 23, 22, 0, 34, 83, 81, 45, 79, 77, - 0, 193, 0, 0, 225, 0, 0, 0, 0, 0, - 78, 76, 82, 80, 84, 0, 0, 0, 0, 27, - 44, 190, 197, 142, 141, 140, 143, 176, 213, 0, - 187, 0, 133, 132, 203, 0, 0, 36, 70, 0, - 71, 223, 0, 0, 61, 0, 86, 30, 0, 28, - 0, 0, 199, 185, 186, 176, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, - 0, 0, 0, 0, 32, 188, 25, 24, 197, 72, - 0, 74, 62, 64, 0, 0, 63, 65, 0, 31, - 29, 0, 0, 199, 0, 67, 68, 69, 196, 0, - 228, 73, 198 + 0, 218, 171, 0, 217, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 193, 224, + 200, 0, 230, 0, 0, 209, 0, 209, 0, 0, + 0, 0, 232, 0, 0, 0, 0, 0, 115, 0, + 114, 188, 0, 0, 185, 184, 0, 0, 160, 135, + 133, 134, 137, 121, 122, 128, 129, 130, 123, 124, + 125, 126, 136, 127, 131, 132, 154, 150, 146, 0, + 151, 0, 104, 0, 143, 0, 223, 104, 0, 23, + 0, 0, 0, 0, 235, 211, 0, 0, 0, 0, + 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 28, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 0, 101, 139, 0, + 0, 0, 40, 42, 43, 45, 0, 0, 0, 0, + 0, 0, 0, 193, 208, 0, 205, 207, 0, 231, + 238, 155, 236, 0, 227, 0, 0, 0, 103, 189, + 0, 191, 103, 0, 0, 153, 152, 145, 144, 114, + 220, 216, 0, 0, 0, 234, 0, 37, 39, 0, + 35, 0, 0, 0, 62, 0, 0, 0, 243, 0, + 0, 240, 242, 0, 0, 0, 91, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 50, 52, 0, 48, 192, 229, 55, 56, + 58, 0, 0, 0, 203, 0, 0, 0, 0, 0, + 0, 0, 187, 186, 0, 147, 0, 0, 0, 0, + 210, 25, 24, 0, 36, 99, 97, 61, 95, 93, + 0, 209, 0, 0, 241, 0, 0, 0, 0, 0, + 94, 92, 98, 96, 100, 0, 0, 0, 0, 29, + 46, 0, 0, 47, 51, 201, 202, 54, 57, 0, + 192, 206, 0, 213, 158, 157, 156, 159, 149, 148, + 219, 0, 0, 38, 86, 0, 87, 239, 0, 0, + 77, 0, 102, 32, 0, 30, 0, 209, 209, 0, + 204, 0, 215, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, + 53, 0, 0, 34, 27, 26, 213, 88, 0, 90, + 78, 80, 0, 0, 79, 81, 0, 33, 31, 0, + 0, 0, 0, 215, 0, 83, 84, 85, 59, 60, + 212, 0, 244, 89, 214 }; const short Parser::yypgoto_[] = { - -298, -298, -298, -298, 317, 315, -298, -298, -298, -298, - 76, -15, -298, -298, -298, -298, -298, -298, -68, 209, - -298, -298, -298, -298, -88, -298, -298, -298, -298, -298, - -298, -298, -298, -298, -298, -49, -10, 5, -298, -151, - 190, -298, -298, -298, -298, -298, -298, -298, -298, -298, - -298, -298, -298, -298, 210, -298, -298, -298, -298, -298, - -298, -298, -92, -298, -298, 173, 60, 154, -298, -298, - -298, -298, -298, -298, -298, -297, 196, -94, -107, -105, - 135, 458, 53, 256, -40, -298, -153, -34, 55, 126, - 201, -298, -11, 40, 22, -4, -298, -298 + -377, -377, -377, -377, 341, 347, -377, -377, 7, 11, + 96, -13, -377, -377, -377, -377, -377, -377, -377, 20, + -377, -377, -376, -46, -377, -75, 445, -377, -377, -377, + -377, -84, -377, -377, -377, -377, -377, -377, -377, -377, + -377, -377, -49, 50, -30, -377, 220, 342, -377, -377, + -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, + -377, 234, -377, -377, -377, -377, -377, -377, -377, -97, + -377, -377, 189, 213, -21, -377, -377, -377, -377, -377, + -377, -377, -195, 233, -90, -104, -102, 173, 483, -15, + 297, -37, -377, -80, -23, 91, 165, 232, -377, 21, + 75, 13, 2, -377, -377 }; const short Parser::yydefgoto_[] = { - 0, 3, 4, 24, 25, 26, 27, 28, 29, 30, - 31, 319, 320, 32, 33, 34, 35, 36, 324, 325, - 256, 257, 258, 447, 448, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 123, 157, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 125, 126, 298, 280, 213, 214, - 215, 216, 217, 218, 281, 282, 235, 432, 454, 159, - 160, 90, 91, 108, 114, 301, 109, 115, 238, 111, - 112, 331, 332, 333, 113, 6, 11, 12 + 0, 3, 4, 26, 27, 28, 29, 30, 378, 379, + 33, 338, 339, 34, 35, 36, 37, 38, 39, 373, + 374, 40, 380, 381, 375, 343, 344, 273, 274, 275, + 483, 484, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 137, 171, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 139, 140, 187, 307, 111, 112, 113, 114, 115, + 116, 304, 305, 252, 472, 493, 173, 174, 94, 95, + 122, 128, 191, 123, 129, 255, 125, 126, 350, 351, + 352, 127, 6, 11, 12 }; const short Parser::yytable_[] = { - 62, 39, 158, 116, 130, 118, 362, 110, 237, 8, - 234, 272, 237, 270, 318, 8, 329, 7, 153, 8, - 8, 8, 5, 395, 175, 178, 37, 1, 8, 180, - 38, 8, 8, 39, 117, 8, 13, 8, 8, 119, - 94, 193, 124, 131, 2, 396, 37, 211, 164, 165, - 182, 380, 152, 170, 151, 120, 121, 382, 302, 132, - 2, 2, 176, 179, 2, 231, 2, 179, 95, 276, - 166, 9, 100, 155, 102, 2, 155, 9, 2, 58, - 385, 9, 9, 9, 419, 386, 316, 152, 179, 176, - 9, 270, 270, 9, 9, 383, 40, 9, 270, 9, - 9, 161, 270, 270, 224, 228, -2, 14, 133, 39, - 15, 16, 17, 18, 19, 20, 21, 22, 179, 23, - 92, 93, 162, 179, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 158, 110, 225, 225, 288, 230, 15, 16, 17, - 18, 19, 20, 21, 22, 397, 23, 2, 163, 277, - 153, 409, 237, 410, 284, 285, 167, 169, 287, 269, - 289, 290, 291, 270, 292, 327, 270, 398, 295, 155, - -100, 296, 297, 239, 303, 342, 344, 239, 186, 307, - 304, 270, 309, 270, 2, 314, 168, 270, 187, 191, - 347, 190, 191, 413, 219, 315, 408, 335, 336, 191, - 315, 110, 232, 191, 171, 219, 154, 172, 233, 219, - 219, 311, 372, 155, 482, 219, 219, -191, 373, 270, - 233, 270, 138, 139, -191, 39, 270, 173, 270, 174, - 338, 339, 340, 183, 270, 184, 270, 269, 269, 143, - 144, 145, 146, 188, 269, 189, 366, 241, 269, 269, - 279, 146, 305, 322, 219, 306, 308, 313, 334, 14, - 317, 152, 15, 16, 17, 18, 19, 20, 21, 22, - 345, 23, 143, 144, 145, 146, 346, 348, 23, 270, - 350, 270, 270, 351, 363, 225, 367, 358, 359, 270, - 270, 368, 369, 375, 378, 212, 381, 371, 390, 400, - 392, 411, 412, 270, 270, 431, 240, 270, 39, 2, - 274, 275, 425, 270, 433, 437, 434, 283, 438, 269, - 39, 439, 269, 443, 452, 394, 450, 239, 451, 453, - 455, 105, 403, 404, 405, 406, 463, 269, 464, 269, - 465, 472, 106, 269, 271, 349, 219, 414, 417, 467, - 293, 273, 220, 360, 473, 299, 480, 479, 312, 177, - 370, 328, 421, 255, 384, 422, 423, 286, 0, 0, - 158, 0, 0, 0, 0, 269, 0, 269, 0, 0, - 0, 0, 269, 0, 269, 322, 0, 0, 0, 0, - 269, 0, 269, 219, 219, 334, 0, 0, 0, 0, - 0, 219, 0, 0, 0, 449, 0, 0, 0, 0, - 0, 219, 219, 0, 0, 0, 0, 456, 457, 0, - 0, 460, 271, 271, 219, 0, 0, 449, 0, 271, - 0, 0, 471, 271, 271, 269, 0, 269, 269, 219, - 0, 219, 0, 0, 0, 269, 269, 361, 337, 0, - 10, 0, 219, 0, 219, 0, 0, 138, 139, 269, - 269, 0, 0, 269, 96, 97, 98, 99, 101, 269, - 103, 104, 141, 142, 143, 144, 145, 146, 0, 0, - 0, 0, 219, 0, 0, 149, 150, 0, 0, 107, - 107, 107, 0, 107, 401, 402, 0, 0, 0, 0, - 127, 0, 407, 0, 271, 0, 0, 271, 0, 0, - 0, 0, 415, 416, 0, 0, 0, 138, 139, 140, - 0, 0, 271, 377, 271, 0, 377, 0, 271, 0, - 0, 0, 141, 142, 143, 144, 145, 146, 0, 0, - 428, 377, 430, 377, 148, 149, 150, 399, 0, 0, - 0, 0, 0, 435, 0, 436, 0, 0, 0, 0, - 271, 107, 271, 0, 0, 0, 0, 271, 0, 271, - 0, 0, 0, 0, 0, 271, 0, 271, 0, 418, - 0, 420, 0, 458, 0, 0, 424, 0, 426, 0, - 0, 0, 0, 0, 427, 0, 429, 0, 0, 0, - 221, 0, 0, 229, 127, 0, 0, 0, 0, 236, - 0, 0, 0, 236, 0, 0, 229, 0, 278, 0, - 271, 0, 271, 271, 107, 0, 0, 107, 0, 0, - 271, 271, 0, 0, 0, 294, 0, 0, 0, 459, - 0, 461, 462, 0, 271, 271, 0, 0, 271, 469, - 470, 0, 0, 0, 271, 0, 0, 0, 0, 300, - 0, 0, 323, 475, 476, 0, 0, 477, 0, 0, - 0, 0, 0, 481, 0, 0, 242, 0, 243, 0, - 244, 245, 246, 8, 247, 248, 249, 236, 250, 321, - 0, 251, 0, 107, 330, 107, 107, 0, 252, 46, - 47, 48, 0, 0, 0, 0, 0, 50, 51, 0, - 52, 0, 53, 0, 253, 0, 0, 0, 0, 0, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 326, 0, 254, 0, 56, - 57, 58, 59, 60, 61, 9, 0, 0, 0, 242, - 0, 243, 0, 244, 245, 246, 8, 247, 248, 249, - 0, 250, 0, 236, 251, 0, 0, 0, 0, 0, - 374, 252, 46, 47, 48, 0, 0, 0, 0, 0, - 50, 51, 330, 52, 0, 53, 0, 253, 0, 0, - 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 341, 236, 0, 0, - 254, 0, 56, 57, 58, 59, 60, 61, 9, 0, - 242, 321, 243, 0, 244, 245, 246, 8, 247, 248, - 249, 330, 250, 0, 0, 251, 0, 0, 0, 0, - 0, 0, 252, 46, 47, 48, 0, 0, 0, 0, - 0, 50, 51, 0, 52, 0, 53, 0, 253, 0, - 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 343, 0, 0, 0, - 0, 254, 0, 56, 57, 58, 59, 60, 61, 9, - 242, 0, 243, 0, 244, 245, 246, 8, 247, 248, - 249, 0, 250, 0, 0, 251, 0, 0, 0, 0, - 0, 0, 252, 46, 47, 48, 0, 0, 0, 0, - 0, 50, 51, 0, 52, 0, 53, 0, 253, 0, - 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, - 0, 444, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 254, 0, 56, 57, 58, 59, 60, 61, 9, - 41, 0, 8, 42, 43, 0, 0, 44, 0, 0, - 0, 0, 445, 0, 45, 0, 0, 0, 46, 47, - 48, 0, 0, 0, 0, 49, 50, 51, 0, 52, - 0, 53, 0, 0, 0, 0, 0, 446, 54, 55, - 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 57, - 58, 59, 60, 61, 9, 41, 0, 8, 42, 43, - 0, 0, 44, 0, 0, 0, 0, 0, 0, 45, - 0, 0, 0, 46, 47, 48, 0, 0, 0, 0, - 49, 50, 51, 0, 52, 0, 53, 129, 0, 0, - 0, 0, 0, 54, 55, 0, 0, 0, 0, 0, - 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 57, 58, 59, 60, 61, 9, - 41, 0, 8, 42, 43, 0, 0, 44, 0, 0, - 0, 0, 0, 0, 45, 0, 0, 0, 46, 47, - 48, 0, 0, 0, 0, 49, 50, 51, 0, 52, - 223, 53, 0, 0, 0, 0, 0, 0, 54, 55, - 0, 0, 0, 0, 0, 0, 226, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 57, - 58, 59, 60, 61, 9, 41, 0, 8, 42, 43, - 0, 0, 44, 0, 0, 0, 0, 0, 0, 45, - 0, 0, 0, 46, 47, 48, 0, 0, 0, 0, - 49, 50, 51, 0, 52, 227, 53, 0, 0, 0, - 0, 0, 0, 54, 55, 0, 0, 0, 0, 0, - 0, 364, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 57, 58, 59, 60, 61, 9, - 41, 0, 8, 42, 43, 0, 0, 44, 0, 0, - 0, 0, 0, 0, 45, 0, 0, 0, 46, 47, - 48, 0, 0, 0, 0, 49, 50, 51, 0, 52, - 365, 53, 0, 0, 0, 0, 0, 0, 54, 55, - 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 57, - 58, 59, 60, 61, 9, 41, 0, 8, 42, 43, - 0, 0, 44, 0, 0, 0, 0, 0, 0, 45, - 0, 0, 0, 46, 47, 48, 0, 0, 0, 0, - 49, 50, 51, 0, 52, 0, 53, 0, 0, 0, - 0, 0, 0, 54, 55, 0, 0, 0, 0, 0, + 99, 172, 308, 110, 104, 438, 106, 43, 144, 117, + 130, 31, 132, 5, 194, 32, 251, 41, 289, 8, + 8, 8, 124, 337, 134, 135, 348, 7, 146, 192, + 8, 211, 425, 31, 8, 1, 42, 32, 44, 41, + 8, 212, 8, 43, 147, 175, 109, 8, 31, 2, + 8, 8, 32, 8, 426, 427, 369, 13, 370, 169, + 66, 98, 293, 200, 195, 16, 176, 18, 168, 2, + 196, 2, 16, 96, 18, 169, 2, 428, 203, 2, + 218, 9, 9, 9, 205, 184, 2, 2, 188, 207, + 410, 166, 9, 438, 190, 254, 9, 97, 131, 254, + 165, 201, 9, 133, 9, 169, 138, 145, 433, 9, + 167, 62, 9, 9, 412, 9, 204, 437, 241, 245, + 415, 369, 204, 370, 490, 416, 175, 204, 201, 43, + -2, 14, 467, 166, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 236, 169, 25, 176, 286, 215, + 190, 169, 413, 172, 326, 257, 195, 216, 204, 291, + 292, 190, 196, 204, 216, 190, 190, 167, 178, 179, + 177, 178, 179, 301, 303, 468, 335, 309, 124, 190, + 190, 314, 190, 190, 2, 346, 181, -116, 256, 183, + 180, 249, 256, 180, 185, 361, 363, 250, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 182, 455, 242, 242, 377, + 247, 328, 333, 186, 366, 152, 153, 354, 355, 286, + 286, 216, 334, 294, 334, 197, 286, 449, 193, 124, + 286, 286, 157, 158, 159, 160, 306, 216, 198, 310, + 311, 199, 208, 313, 254, 315, 316, 317, 43, 318, + 16, -207, 18, 321, 8, 209, 322, 323, -207, 213, + 214, 341, 488, 489, 248, 396, 353, 376, 402, 524, + 50, 51, 52, 190, 403, 250, 258, 296, 54, 55, + 383, 56, 384, 57, 157, 158, 159, 160, 330, 297, + 298, 59, 300, 299, 371, 160, 324, 166, 372, 325, + 327, 332, 336, 286, 367, 365, 286, 357, 358, 359, + 60, 61, 62, 63, 64, 65, 9, 364, 25, 382, + 385, 286, 386, 286, 405, 408, 420, 286, 387, 397, + 398, 399, 411, 43, 430, 435, 436, 256, 448, 422, + 439, 470, 461, 471, 473, 43, 474, 479, 475, 486, + 487, 492, 440, 491, 441, 442, 443, 119, 190, 502, + 190, 190, 190, 501, 242, 503, 512, 451, 452, 509, + 286, 371, 286, 190, 190, 372, 401, 286, 120, 286, + 453, 510, 368, 469, 434, 286, 190, 286, 287, 505, + 237, 319, 152, 153, 154, 464, 513, 466, 302, 522, + 521, 190, 290, 190, 424, 172, 341, 155, 156, 157, + 158, 159, 160, 331, 202, 400, 353, 347, 414, 162, + 163, 164, 0, 312, 457, 0, 0, 0, 444, 445, + 446, 447, 0, 0, 0, 0, 286, 450, 286, 286, + 0, 0, 190, 190, 496, 0, 286, 286, 0, 0, + 190, 0, 0, 0, 0, 458, 459, 0, 0, 0, + 0, 0, 286, 286, 0, 0, 286, 0, 0, 287, + 287, 0, 0, 0, 286, 10, 287, 0, 518, 519, + 287, 287, 0, 0, 190, 190, 0, 152, 153, 100, + 101, 102, 103, 105, 0, 107, 108, 0, 118, 0, + 0, 485, 155, 156, 157, 158, 159, 160, 0, 0, + 288, 0, 0, 494, 495, 163, 164, 498, 121, 121, + 121, 0, 121, 485, 0, 0, 0, 0, 0, 141, + 14, 511, 0, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 0, 0, 25, 0, 0, 0, 0, + 0, 0, 0, 287, 0, 0, 287, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 24, 0, 0, 25, + 0, 287, 0, 287, 0, 0, 0, 287, 0, 0, + 0, 0, 189, 2, 0, 0, 0, 0, 0, 0, + 0, 288, 288, 0, 0, 0, 0, 0, 288, 0, + 121, 0, 288, 288, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 272, 0, 0, 0, 0, 0, 0, + 287, 0, 287, 0, 0, 0, 0, 287, 0, 287, + 0, 0, 0, 0, 0, 287, 0, 287, 0, 238, + 0, 0, 246, 141, 0, 0, 0, 0, 253, 0, + 0, 0, 253, 0, 0, 246, 0, 295, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 121, 288, 0, 121, 288, 0, + 0, 0, 0, 0, 0, 320, 287, 0, 287, 287, + 0, 0, 0, 288, 0, 288, 287, 287, 0, 288, + 0, 356, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 287, 287, 0, 0, 287, 0, 0, 0, + 0, 0, 0, 0, 287, 0, 0, 0, 0, 253, + 0, 340, 0, 0, 0, 121, 349, 121, 121, 0, + 0, 148, 288, 150, 288, 0, 152, 153, 154, 288, + 0, 288, 0, 0, 0, 0, 0, 288, 0, 288, + 0, 155, 156, 157, 158, 159, 160, 0, 0, 0, + 0, 0, 253, 162, 163, 164, 0, 0, 407, 0, + 0, 407, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 407, 0, 407, 0, + 0, 0, 429, 0, 0, 0, 0, 253, 288, 0, + 288, 288, 0, 0, 404, 0, 0, 0, 288, 288, + 0, 0, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 0, 0, 0, 288, 288, 0, 0, 288, 0, + 0, 0, 431, 432, 0, 454, 288, 456, 342, 0, + 0, 0, 460, 0, 462, 0, 0, 0, 0, 0, + 463, 0, 465, 0, 0, 259, 0, 260, 0, 261, + 262, 263, 8, 264, 265, 266, 340, 267, 0, 0, + 268, 0, 0, 0, 0, 0, 349, 269, 50, 51, + 52, 0, 0, 0, 0, 0, 54, 55, 0, 56, + 0, 57, 0, 270, 0, 0, 0, 0, 0, 59, + 0, 497, 0, 499, 500, 0, 0, 0, 0, 0, + 0, 507, 508, 0, 0, 0, 271, 0, 60, 61, + 62, 63, 64, 65, 9, 345, 0, 515, 516, 0, + 0, 517, 0, 0, 0, 0, 0, 0, 0, 523, + 0, 0, 259, 0, 260, 0, 261, 262, 263, 8, + 264, 265, 266, 0, 267, 0, 0, 268, 0, 0, + 0, 0, 0, 0, 269, 50, 51, 52, 0, 0, + 0, 0, 0, 54, 55, 0, 56, 0, 57, 0, + 270, 0, 0, 0, 0, 0, 59, 0, 0, 0, + 0, 0, 0, 0, 0, 360, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 60, 61, 62, 63, 64, + 65, 9, 259, 0, 260, 0, 261, 262, 263, 8, + 264, 265, 266, 0, 267, 0, 0, 268, 0, 0, + 0, 0, 0, 0, 269, 50, 51, 52, 0, 0, + 0, 0, 0, 54, 55, 0, 56, 0, 57, 0, + 270, 0, 0, 0, 0, 0, 59, 0, 0, 0, + 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 60, 61, 62, 63, 64, + 65, 9, 259, 0, 260, 0, 261, 262, 263, 8, + 264, 265, 266, 0, 267, 0, 0, 268, 0, 0, + 0, 0, 0, 0, 269, 50, 51, 52, 0, 0, + 0, 0, 0, 54, 55, 0, 56, 0, 57, 0, + 270, 0, 0, 0, 0, 0, 59, 0, 0, 0, + 480, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 60, 61, 62, 63, 64, + 65, 9, 45, 0, 8, 46, 47, 0, 0, 48, + 0, 0, 0, 0, 481, 0, 49, 0, 0, 0, + 50, 51, 52, 0, 0, 0, 0, 53, 54, 55, + 0, 56, 0, 57, 0, 0, 0, 0, 0, 482, + 58, 59, 0, 0, 0, 142, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 60, 61, 62, 63, 64, 65, 9, 45, 0, 8, + 46, 47, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 49, 0, 0, 0, 50, 51, 52, 0, 0, + 0, 0, 53, 54, 55, 0, 56, 0, 57, 143, + 0, 0, 0, 0, 0, 58, 59, 0, 0, 0, + 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 60, 61, 62, 63, 64, + 65, 9, 45, 0, 8, 46, 47, 0, 0, 48, + 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, + 50, 51, 52, 0, 0, 0, 0, 53, 54, 55, + 0, 56, 240, 57, 0, 0, 0, 0, 0, 0, + 58, 59, 0, 0, 0, 243, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 60, 61, 62, 63, 64, 65, 9, 45, 0, 8, + 46, 47, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 49, 0, 0, 0, 50, 51, 52, 0, 0, + 0, 0, 53, 54, 55, 0, 56, 244, 57, 0, + 0, 0, 0, 0, 0, 58, 59, 0, 0, 0, + 394, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 60, 61, 62, 63, 64, + 65, 9, 45, 0, 8, 46, 47, 0, 0, 48, + 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, + 50, 51, 52, 0, 0, 0, 0, 53, 54, 55, + 0, 56, 395, 57, 0, 0, 0, 0, 0, 0, + 58, 59, 0, 0, 0, 136, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 60, 61, 62, 63, 64, 65, 9, 45, 0, 8, + 46, 47, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 49, 0, 0, 0, 50, 51, 52, 0, 0, + 0, 0, 53, 54, 55, 0, 56, 0, 57, 0, + 0, 0, 0, 0, 0, 58, 59, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 60, 61, 62, 63, 64, + 65, 9, 259, 406, 260, 0, 261, 262, 263, 8, + 264, 265, 266, 0, 267, 0, 0, 268, 0, 0, + 0, 0, 0, 0, 269, 50, 51, 52, 0, 0, + 0, 0, 0, 54, 55, 0, 56, 0, 57, 0, + 270, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 57, 58, 59, 60, 61, 9, - 242, 376, 243, 0, 244, 245, 246, 8, 247, 248, - 249, 0, 250, 0, 0, 251, 0, 0, 0, 0, - 0, 0, 252, 46, 47, 48, 0, 0, 0, 0, - 0, 50, 51, 0, 52, 0, 53, 0, 253, 0, - 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 60, 61, 62, 63, 64, + 65, 9, 259, 0, 260, 409, 261, 262, 263, 8, + 264, 265, 266, 0, 267, 0, 0, 268, 0, 0, + 0, 0, 0, 0, 269, 50, 51, 52, 0, 0, + 0, 0, 0, 54, 55, 0, 56, 0, 57, 0, + 270, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 254, 0, 56, 57, 58, 59, 60, 61, 9, - 242, 0, 243, 379, 244, 245, 246, 8, 247, 248, - 249, 0, 250, 0, 0, 251, 0, 0, 0, 0, - 0, 0, 252, 46, 47, 48, 0, 0, 0, 0, - 0, 50, 51, 0, 52, 0, 53, 0, 253, 0, - 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 60, 61, 62, 63, 64, + 65, 9, 259, 0, 260, 0, 261, 262, 263, 8, + 264, 265, 266, 0, 267, 0, 0, 268, 0, 0, + 0, 0, 0, 0, 269, 50, 51, 52, 0, 0, + 0, 0, 0, 54, 55, 0, 56, 0, 57, 0, + 270, 421, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 254, 0, 56, 57, 58, 59, 60, 61, 9, - 242, 0, 243, 0, 244, 245, 246, 8, 247, 248, - 249, 0, 250, 0, 0, 251, 0, 0, 0, 0, - 0, 0, 252, 46, 47, 48, 0, 0, 0, 0, - 0, 50, 51, 0, 52, 0, 53, 0, 253, 391, - 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 60, 61, 62, 63, 64, + 65, 9, 259, 0, 260, 0, 261, 262, 263, 8, + 264, 265, 266, 0, 267, 0, 0, 268, 0, 0, + 0, 0, 0, 0, 269, 50, 51, 52, 0, 0, + 0, 0, 0, 54, 55, 0, 56, 0, 57, 0, + 270, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 254, 0, 56, 57, 58, 59, 60, 61, 9, - 242, 0, 243, 0, 244, 245, 246, 8, 247, 248, - 249, 0, 250, 0, 0, 251, 0, 0, 0, 0, - 0, 0, 252, 46, 47, 48, 0, 0, 0, 0, - 0, 50, 51, 0, 52, 0, 53, 0, 253, 0, - 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 423, 60, 61, 62, 63, 64, + 65, 9, 259, 0, 260, 0, 261, 262, 263, 8, + 264, 265, 266, 0, 267, 0, 0, 268, 0, 0, + 0, 0, 0, 0, 269, 50, 51, 52, 0, 0, + 0, 0, 0, 54, 55, 0, 56, 0, 57, 0, + 270, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 254, 393, 56, 57, 58, 59, 60, 61, 9, - 242, 0, 243, 0, 244, 245, 246, 8, 247, 248, - 249, 0, 250, 0, 0, 251, 0, 0, 0, 0, - 0, 0, 252, 46, 47, 48, 0, 0, 0, 0, - 0, 50, 51, 0, 52, 0, 53, 0, 253, 0, - 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 60, 61, 62, 63, 64, + 65, 9, 45, 0, 8, 46, 47, 0, 0, 48, + 0, 0, 0, 0, 481, 0, 49, 0, 0, 0, + 50, 51, 52, 0, 0, 0, 0, 53, 54, 55, + 0, 56, 0, 57, 0, 0, 504, 0, 0, 482, + 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 254, 0, 56, 57, 58, 59, 60, 61, 9, - 41, 0, 8, 42, 43, 0, 0, 44, 0, 0, - 0, 0, 445, 0, 45, 0, 0, 0, 46, 47, - 48, 0, 0, 0, 0, 49, 50, 51, 0, 52, - 0, 53, 0, 0, 466, 0, 0, 446, 54, 55, + 60, 61, 62, 63, 64, 65, 9, 45, 0, 8, + 46, 47, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 49, 0, 0, 0, 50, 51, 52, 0, 0, + 0, 0, 53, 54, 55, 0, 56, 0, 57, 0, + 0, 0, 0, 0, 0, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 57, - 58, 59, 60, 61, 9, 41, 0, 8, 42, 43, - 0, 0, 44, 0, 0, 0, 0, 0, 0, 45, - 0, 0, 0, 46, 47, 48, 0, 0, 0, 0, - 49, 50, 51, 0, 52, 0, 53, 0, 0, 0, - 0, 0, 0, 54, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 60, 61, 62, 63, 64, + 65, 9, 45, 0, 8, 46, 47, 0, 0, 48, + 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, + 50, 51, 52, 0, 0, 0, 0, 53, 54, 55, + 0, 170, 0, 57, 476, 0, 0, 0, 0, 0, + 58, 59, 0, 477, 0, 0, 0, 0, 0, 148, + 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, + 60, 61, 62, 63, 64, 65, 9, 0, 0, 155, + 156, 157, 158, 159, 160, 389, 0, 0, 0, 161, + 0, 162, 163, 164, 0, 0, 0, 0, 0, 0, + 148, 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 57, 58, 59, 60, 61, 9, - 41, 0, 8, 42, 43, 0, 0, 44, 0, 0, - 0, 0, 0, 0, 45, 0, 8, 0, 46, 47, - 48, 0, 0, 0, 0, 49, 50, 51, 0, 156, - 0, 53, 46, 47, 48, 0, 0, 0, 54, 55, - 50, 51, 0, 52, 0, 53, 0, 0, 0, 0, - 0, 0, 0, 55, 0, 0, 0, 0, 56, 57, - 58, 59, 60, 61, 9, 0, 0, 0, 0, 0, - 440, 0, 56, 57, 58, 59, 60, 61, 9, 441, - 0, 0, 0, 0, 0, 134, 135, 136, 137, 0, - 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, - 146, 353, 0, 0, 0, 147, 0, 148, 149, 150, - 0, 0, 0, 0, 0, 0, 134, 135, 136, 137, - 0, 138, 139, 140, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, - 145, 146, 389, 0, 0, 0, 147, 0, 148, 149, - 150, 0, 0, 0, 0, 0, 0, 134, 135, 136, - 137, 0, 138, 139, 140, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 141, 142, 143, - 144, 145, 146, 442, 0, 0, 0, 147, 0, 148, - 149, 150, 0, 0, 0, 0, 0, 0, 134, 135, - 136, 137, 0, 138, 139, 140, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 141, 142, - 143, 144, 145, 146, 474, 0, 0, 0, 147, 0, - 148, 149, 150, 0, 0, 0, 0, 0, 0, 134, - 135, 136, 137, 0, 138, 139, 140, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, - 142, 143, 144, 145, 146, 181, 0, 0, 0, 147, - 0, 148, 149, 150, 0, 0, 0, 0, 134, 135, - 136, 137, 0, 138, 139, 140, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 141, 142, - 143, 144, 145, 146, 387, 0, 0, 0, 147, 0, - 148, 149, 150, 0, 0, 0, 0, 134, 135, 136, - 137, 0, 138, 139, 140, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 141, 142, 143, - 144, 145, 146, 354, 0, 0, 0, 147, 0, 148, - 149, 150, 0, 0, 0, 134, 135, 136, 137, 0, - 138, 139, 140, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, - 146, 388, 0, 0, 0, 147, 0, 148, 149, 150, - 0, 134, 135, 136, 137, 0, 138, 139, 140, 0, + 155, 156, 157, 158, 159, 160, 419, 0, 0, 0, + 161, 0, 162, 163, 164, 0, 0, 0, 0, 0, + 0, 148, 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 141, 142, 143, 144, 145, 146, 0, 352, 0, - 0, 147, 0, 148, 149, 150, 134, 135, 136, 137, - 0, 138, 139, 140, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, - 145, 146, 0, 0, 0, 355, 147, 0, 148, 149, - 150, 134, 135, 136, 137, 0, 138, 139, 140, 0, + 0, 155, 156, 157, 158, 159, 160, 478, 0, 0, + 0, 161, 0, 162, 163, 164, 0, 0, 0, 0, + 0, 0, 148, 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 141, 142, 143, 144, 145, 146, 0, 0, 0, - 0, 147, 0, 148, 149, 150, 134, 135, 136, 137, - 0, 138, 139, 140, 0, 185, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, - 145, 146, 0, 0, 0, 0, 147, 0, 148, 149, - 150, 134, 135, 136, 137, 0, 138, 139, 140, 0, + 0, 0, 155, 156, 157, 158, 159, 160, 514, 0, + 0, 0, 161, 0, 162, 163, 164, 0, 0, 0, + 0, 0, 0, 148, 149, 150, 151, 0, 152, 153, + 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 155, 156, 157, 158, 159, 160, 206, + 0, 0, 0, 161, 0, 162, 163, 164, 0, 0, + 0, 0, 148, 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 141, 142, 143, 144, 145, 146, 0, 192, 0, - 0, 147, 0, 148, 149, 150, 134, 135, 136, 137, - 0, 138, 139, 140, 0, 310, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, - 145, 146, 0, 0, 0, 0, 147, 0, 148, 149, - 150, 134, 135, 136, 137, 0, 138, 139, 140, 0, - 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 141, 142, 143, 144, 145, 146, 0, 0, 0, - 0, 147, 0, 148, 149, 150, 134, 135, 136, 137, - 0, 138, 139, 140, 0, 0, 0, 357, 0, 0, - 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, - 145, 146, 0, 0, 0, 0, 147, 0, 148, 149, - 150, 134, 135, 136, 137, 0, 138, 139, 140, 0, - 0, 0, 0, 0, 0, 468, 0, 0, 0, 0, - 0, 141, 142, 143, 144, 145, 146, 0, 0, 0, - 0, 147, 0, 148, 149, 150, 134, 135, 136, 137, - 0, 138, 139, 140, 0, 0, 0, 0, 0, 478, - 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, - 145, 146, 0, 0, 0, 0, 147, 0, 148, 149, - 150, 134, 135, 136, 137, 0, 138, 139, 140, 0, + 0, 0, 155, 156, 157, 158, 159, 160, 417, 0, + 0, 0, 161, 0, 162, 163, 164, 0, 0, 0, + 0, 148, 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 141, 142, 143, 144, 145, 146, 0, 0, 0, - 0, 147, 0, 148, 149, 150, 134, 135, 136, 0, - 0, 138, 139, 140, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, - 145, 146, 0, 0, 0, 0, 0, 0, 148, 149, - 150, 134, 0, 136, 0, 0, 138, 139, 140, 0, + 0, 155, 156, 157, 158, 159, 160, 390, 0, 0, + 0, 161, 0, 162, 163, 164, 0, 0, 0, 148, + 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, + 156, 157, 158, 159, 160, 418, 0, 0, 0, 161, + 0, 162, 163, 164, 0, 148, 149, 150, 151, 0, + 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 155, 156, 157, 158, 159, + 160, 0, 388, 0, 0, 161, 0, 162, 163, 164, + 148, 149, 150, 151, 0, 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 141, 142, 143, 144, 145, 146, 0, 0, 0, - 0, 134, 0, 148, 149, 150, 138, 139, 140, 0, + 155, 156, 157, 158, 159, 160, 0, 0, 0, 391, + 161, 0, 162, 163, 164, 148, 149, 150, 151, 0, + 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 155, 156, 157, 158, 159, + 160, 0, 0, 0, 0, 161, 0, 162, 163, 164, + 148, 149, 150, 151, 0, 152, 153, 154, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 141, 142, 143, 144, 145, 146, 0, 0, 0, - 0, 0, 0, 148, 149, 150 + 155, 156, 157, 158, 159, 160, 0, 0, 0, 0, + 161, 0, 162, 163, 164, 148, 149, 150, 151, 0, + 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 155, 156, 157, 158, 159, + 160, 0, 217, 0, 0, 161, 0, 162, 163, 164, + 148, 149, 150, 151, 0, 152, 153, 154, 0, 329, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 155, 156, 157, 158, 159, 160, 0, 0, 0, 0, + 161, 0, 162, 163, 164, 148, 149, 150, 151, 0, + 152, 153, 154, 0, 392, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 155, 156, 157, 158, 159, + 160, 0, 0, 0, 0, 161, 0, 162, 163, 164, + 148, 149, 150, 151, 0, 152, 153, 154, 0, 0, + 0, 393, 0, 0, 0, 0, 0, 0, 0, 0, + 155, 156, 157, 158, 159, 160, 0, 0, 0, 0, + 161, 0, 162, 163, 164, 148, 149, 150, 151, 0, + 152, 153, 154, 0, 0, 0, 0, 0, 0, 506, + 0, 0, 0, 0, 0, 155, 156, 157, 158, 159, + 160, 0, 0, 0, 0, 161, 0, 162, 163, 164, + 148, 149, 150, 151, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 520, 0, 0, 0, 0, 0, 0, + 155, 156, 157, 158, 159, 160, 0, 0, 0, 0, + 161, 0, 162, 163, 164, 148, 149, 150, 151, 0, + 152, 153, 154, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 155, 156, 157, 158, 159, + 160, 0, 0, 0, 0, 161, 0, 162, 163, 164, + 148, 149, 150, 0, 0, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 155, 156, 157, 158, 159, 160, 0, 0, 0, 0, + 148, 0, 162, 163, 164, 152, 153, 154, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 155, 156, 157, 158, 159, 160, 0, 0, 0, 0, + 0, 0, 162, 163, 164 }; const short Parser::yycheck_[] = { - 10, 5, 94, 43, 53, 45, 303, 41, 161, 22, - 1, 1, 165, 164, 1, 22, 1, 1, 49, 22, - 22, 22, 0, 48, 22, 22, 4, 3, 22, 22, - 3, 22, 22, 37, 44, 22, 0, 22, 22, 49, - 53, 58, 52, 53, 51, 70, 24, 49, 48, 49, - 22, 22, 69, 36, 36, 50, 51, 22, 211, 54, - 51, 51, 60, 60, 51, 70, 51, 60, 15, 63, - 70, 84, 19, 56, 21, 51, 56, 84, 51, 80, - 22, 84, 84, 84, 381, 22, 239, 69, 60, 60, - 84, 242, 243, 84, 84, 60, 52, 84, 249, 84, - 84, 49, 253, 254, 153, 154, 0, 1, 55, 113, - 4, 5, 6, 7, 8, 9, 10, 11, 60, 13, - 52, 52, 70, 60, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 233, 176, 153, 154, 179, 156, 4, 5, 6, - 7, 8, 9, 10, 11, 48, 13, 51, 48, 169, - 49, 60, 315, 62, 174, 175, 48, 48, 178, 164, - 180, 181, 182, 324, 184, 243, 327, 70, 188, 56, - 69, 191, 192, 161, 61, 253, 254, 165, 50, 50, - 67, 342, 50, 344, 51, 50, 56, 348, 60, 60, - 50, 52, 60, 50, 151, 60, 359, 247, 248, 60, - 60, 245, 54, 60, 48, 162, 49, 55, 60, 166, - 167, 231, 54, 56, 54, 172, 173, 63, 60, 380, - 60, 382, 46, 47, 70, 239, 387, 55, 389, 48, - 250, 251, 252, 50, 395, 60, 397, 242, 243, 63, - 64, 65, 66, 55, 249, 52, 305, 53, 253, 254, - 53, 66, 49, 241, 211, 50, 50, 50, 246, 1, - 48, 69, 4, 5, 6, 7, 8, 9, 10, 11, - 72, 13, 63, 64, 65, 66, 50, 48, 13, 440, - 63, 442, 443, 70, 304, 305, 70, 60, 60, 450, - 451, 70, 70, 16, 18, 151, 55, 317, 54, 54, - 77, 70, 50, 464, 465, 14, 162, 468, 322, 51, - 166, 167, 53, 474, 50, 48, 50, 173, 48, 324, - 334, 70, 327, 29, 53, 345, 48, 315, 48, 48, - 62, 24, 352, 353, 354, 355, 54, 342, 55, 344, - 55, 53, 37, 348, 164, 279, 303, 367, 373, 447, - 187, 165, 152, 303, 458, 211, 473, 472, 233, 113, - 315, 245, 383, 164, 334, 385, 386, 176, -1, -1, - 472, -1, -1, -1, -1, 380, -1, 382, -1, -1, - -1, -1, 387, -1, 389, 373, -1, -1, -1, -1, - 395, -1, 397, 350, 351, 383, -1, -1, -1, -1, - -1, 358, -1, -1, -1, 425, -1, -1, -1, -1, - -1, 368, 369, -1, -1, -1, -1, 437, 438, -1, - -1, 441, 242, 243, 381, -1, -1, 447, -1, 249, - -1, -1, 452, 253, 254, 440, -1, 442, 443, 396, - -1, 398, -1, -1, -1, 450, 451, 303, 249, -1, - 2, -1, 409, -1, 411, -1, -1, 46, 47, 464, - 465, -1, -1, 468, 16, 17, 18, 19, 20, 474, - 22, 23, 61, 62, 63, 64, 65, 66, -1, -1, - -1, -1, 439, -1, -1, 74, 75, -1, -1, 41, - 42, 43, -1, 45, 350, 351, -1, -1, -1, -1, - 52, -1, 358, -1, 324, -1, -1, 327, -1, -1, - -1, -1, 368, 369, -1, -1, -1, 46, 47, 48, - -1, -1, 342, 324, 344, -1, 327, -1, 348, -1, - -1, -1, 61, 62, 63, 64, 65, 66, -1, -1, - 396, 342, 398, 344, 73, 74, 75, 348, -1, -1, - -1, -1, -1, 409, -1, 411, -1, -1, -1, -1, - 380, 113, 382, -1, -1, -1, -1, 387, -1, 389, - -1, -1, -1, -1, -1, 395, -1, 397, -1, 380, - -1, 382, -1, 439, -1, -1, 387, -1, 389, -1, - -1, -1, -1, -1, 395, -1, 397, -1, -1, -1, - 152, -1, -1, 155, 156, -1, -1, -1, -1, 161, - -1, -1, -1, 165, -1, -1, 168, -1, 170, -1, - 440, -1, 442, 443, 176, -1, -1, 179, -1, -1, - 450, 451, -1, -1, -1, 187, -1, -1, -1, 440, - -1, 442, 443, -1, 464, 465, -1, -1, 468, 450, - 451, -1, -1, -1, 474, -1, -1, -1, -1, 211, - -1, -1, 1, 464, 465, -1, -1, 468, -1, -1, - -1, -1, -1, 474, -1, -1, 15, -1, 17, -1, - 19, 20, 21, 22, 23, 24, 25, 239, 27, 241, - -1, 30, -1, 245, 246, 247, 248, -1, 37, 38, - 39, 40, -1, -1, -1, -1, -1, 46, 47, -1, - 49, -1, 51, -1, 53, -1, -1, -1, -1, -1, - 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1, -1, 76, -1, 78, - 79, 80, 81, 82, 83, 84, -1, -1, -1, 15, - -1, 17, -1, 19, 20, 21, 22, 23, 24, 25, - -1, 27, -1, 315, 30, -1, -1, -1, -1, -1, - 322, 37, 38, 39, 40, -1, -1, -1, -1, -1, - 46, 47, 334, 49, -1, 51, -1, 53, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1, 359, -1, -1, - 76, -1, 78, 79, 80, 81, 82, 83, 84, -1, - 15, 373, 17, -1, 19, 20, 21, 22, 23, 24, - 25, 383, 27, -1, -1, 30, -1, -1, -1, -1, - -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, - -1, 46, 47, -1, 49, -1, 51, -1, 53, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 15, -1, 17, -1, 19, 20, 21, 22, 23, 24, - 25, -1, 27, -1, -1, 30, -1, -1, -1, -1, - -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, - -1, 46, 47, -1, 49, -1, 51, -1, 53, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, - -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 20, -1, 22, 23, 24, -1, -1, 27, -1, -1, - -1, -1, 32, -1, 34, -1, -1, -1, 38, 39, - 40, -1, -1, -1, -1, 45, 46, 47, -1, 49, - -1, 51, -1, -1, -1, -1, -1, 57, 58, 59, - -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 78, 79, - 80, 81, 82, 83, 84, 20, -1, 22, 23, 24, - -1, -1, 27, -1, -1, -1, -1, -1, -1, 34, - -1, -1, -1, 38, 39, 40, -1, -1, -1, -1, - 45, 46, 47, -1, 49, -1, 51, 52, -1, -1, - -1, -1, -1, 58, 59, -1, -1, -1, -1, -1, - -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 78, 79, 80, 81, 82, 83, 84, - 20, -1, 22, 23, 24, -1, -1, 27, -1, -1, - -1, -1, -1, -1, 34, -1, -1, -1, 38, 39, - 40, -1, -1, -1, -1, 45, 46, 47, -1, 49, - 50, 51, -1, -1, -1, -1, -1, -1, 58, 59, - -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 78, 79, - 80, 81, 82, 83, 84, 20, -1, 22, 23, 24, - -1, -1, 27, -1, -1, -1, -1, -1, -1, 34, - -1, -1, -1, 38, 39, 40, -1, -1, -1, -1, - 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, - -1, -1, -1, 58, 59, -1, -1, -1, -1, -1, - -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 78, 79, 80, 81, 82, 83, 84, - 20, -1, 22, 23, 24, -1, -1, 27, -1, -1, - -1, -1, -1, -1, 34, -1, -1, -1, 38, 39, - 40, -1, -1, -1, -1, 45, 46, 47, -1, 49, - 50, 51, -1, -1, -1, -1, -1, -1, 58, 59, - -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 78, 79, - 80, 81, 82, 83, 84, 20, -1, 22, 23, 24, - -1, -1, 27, -1, -1, -1, -1, -1, -1, 34, - -1, -1, -1, 38, 39, 40, -1, -1, -1, -1, - 45, 46, 47, -1, 49, -1, 51, -1, -1, -1, - -1, -1, -1, 58, 59, -1, -1, -1, -1, -1, + 15, 98, 197, 24, 19, 381, 21, 5, 57, 24, + 47, 4, 49, 0, 14, 4, 1, 4, 1, 25, + 25, 25, 45, 1, 54, 55, 1, 1, 58, 109, + 25, 53, 51, 26, 25, 3, 3, 26, 55, 26, + 25, 63, 25, 41, 59, 52, 52, 25, 41, 54, + 25, 25, 41, 25, 73, 51, 5, 0, 7, 59, + 10, 56, 66, 25, 64, 5, 73, 7, 52, 54, + 70, 54, 5, 55, 7, 59, 54, 73, 25, 54, + 61, 87, 87, 87, 25, 39, 54, 54, 109, 25, + 25, 72, 87, 469, 109, 175, 87, 55, 48, 179, + 39, 63, 87, 53, 87, 59, 56, 57, 57, 87, + 52, 83, 87, 87, 25, 87, 63, 57, 167, 168, + 25, 5, 63, 7, 57, 25, 52, 63, 63, 127, + 0, 1, 58, 72, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 165, 59, 16, 73, 178, 55, + 165, 59, 63, 250, 53, 176, 64, 63, 63, 180, + 181, 176, 70, 63, 63, 180, 181, 52, 51, 52, + 51, 51, 52, 194, 195, 58, 256, 198, 201, 194, + 195, 204, 197, 198, 54, 260, 51, 72, 175, 51, + 73, 57, 179, 73, 51, 270, 271, 63, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 59, 411, 167, 168, 299, + 170, 53, 53, 51, 53, 49, 50, 264, 265, 259, + 260, 63, 63, 183, 63, 58, 266, 53, 51, 262, + 270, 271, 66, 67, 68, 69, 196, 63, 58, 199, + 200, 51, 53, 203, 334, 205, 206, 207, 256, 209, + 5, 66, 7, 213, 25, 63, 216, 217, 73, 58, + 55, 258, 467, 468, 73, 324, 263, 298, 57, 57, + 41, 42, 43, 298, 63, 63, 56, 56, 49, 50, + 63, 52, 65, 54, 66, 67, 68, 69, 248, 56, + 63, 62, 56, 63, 297, 69, 52, 72, 297, 53, + 53, 53, 51, 343, 51, 53, 346, 267, 268, 269, + 81, 82, 83, 84, 85, 86, 87, 75, 16, 51, + 66, 361, 73, 363, 19, 21, 57, 367, 73, 73, + 73, 73, 58, 341, 57, 53, 53, 334, 53, 80, + 56, 65, 56, 17, 51, 353, 51, 32, 73, 51, + 51, 51, 383, 56, 385, 386, 387, 26, 383, 58, + 385, 386, 387, 57, 324, 58, 56, 398, 399, 73, + 410, 374, 412, 398, 399, 374, 336, 417, 41, 419, + 403, 73, 296, 439, 374, 425, 411, 427, 178, 483, + 166, 212, 49, 50, 51, 426, 496, 428, 195, 513, + 512, 426, 179, 428, 364, 512, 403, 64, 65, 66, + 67, 68, 69, 250, 127, 334, 413, 262, 353, 76, + 77, 78, -1, 201, 413, -1, -1, -1, 388, 389, + 390, 391, -1, -1, -1, -1, 476, 397, 478, 479, + -1, -1, 467, 468, 475, -1, 486, 487, -1, -1, + 475, -1, -1, -1, -1, 415, 416, -1, -1, -1, + -1, -1, 502, 503, -1, -1, 506, -1, -1, 259, + 260, -1, -1, -1, 514, 2, 266, -1, 509, 510, + 270, 271, -1, -1, 509, 510, -1, 49, 50, 16, + 17, 18, 19, 20, -1, 22, 23, -1, 25, -1, + -1, 461, 64, 65, 66, 67, 68, 69, -1, -1, + 178, -1, -1, 473, 474, 77, 78, 477, 45, 46, + 47, -1, 49, 483, -1, -1, -1, -1, -1, 56, + 1, 491, -1, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, -1, -1, 16, -1, -1, -1, -1, + -1, -1, -1, 343, -1, -1, 346, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, -1, -1, 16, + -1, 361, -1, 363, -1, -1, -1, 367, -1, -1, + -1, -1, 109, 54, -1, -1, -1, -1, -1, -1, + -1, 259, 260, -1, -1, -1, -1, -1, 266, -1, + 127, -1, 270, 271, -1, -1, -1, 54, -1, -1, + -1, -1, -1, 178, -1, -1, -1, -1, -1, -1, + 410, -1, 412, -1, -1, -1, -1, 417, -1, 419, + -1, -1, -1, -1, -1, 425, -1, 427, -1, 166, + -1, -1, 169, 170, -1, -1, -1, -1, 175, -1, + -1, -1, 179, -1, -1, 182, -1, 184, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 78, 79, 80, 81, 82, 83, 84, - 15, 16, 17, -1, 19, 20, 21, 22, 23, 24, - 25, -1, 27, -1, -1, 30, -1, -1, -1, -1, - -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, - -1, 46, 47, -1, 49, -1, 51, -1, 53, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 201, 343, -1, 204, 346, -1, + -1, -1, -1, -1, -1, 212, 476, -1, 478, 479, + -1, -1, -1, 361, -1, 363, 486, 487, -1, 367, + -1, 266, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 502, 503, -1, -1, 506, -1, -1, -1, + -1, -1, -1, -1, 514, -1, -1, -1, -1, 256, + -1, 258, -1, -1, -1, 262, 263, 264, 265, -1, + -1, 44, 410, 46, 412, -1, 49, 50, 51, 417, + -1, 419, -1, -1, -1, -1, -1, 425, -1, 427, + -1, 64, 65, 66, 67, 68, 69, -1, -1, -1, + -1, -1, 299, 76, 77, 78, -1, -1, 343, -1, + -1, 346, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 361, -1, 363, -1, + -1, -1, 367, -1, -1, -1, -1, 334, 476, -1, + 478, 479, -1, -1, 341, -1, -1, -1, 486, 487, + -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, + -1, -1, -1, -1, 502, 503, -1, -1, 506, -1, + -1, -1, 369, 370, -1, 410, 514, 412, 1, -1, + -1, -1, 417, -1, 419, -1, -1, -1, -1, -1, + 425, -1, 427, -1, -1, 18, -1, 20, -1, 22, + 23, 24, 25, 26, 27, 28, 403, 30, -1, -1, + 33, -1, -1, -1, -1, -1, 413, 40, 41, 42, + 43, -1, -1, -1, -1, -1, 49, 50, -1, 52, + -1, 54, -1, 56, -1, -1, -1, -1, -1, 62, + -1, 476, -1, 478, 479, -1, -1, -1, -1, -1, + -1, 486, 487, -1, -1, -1, 79, -1, 81, 82, + 83, 84, 85, 86, 87, 1, -1, 502, 503, -1, + -1, 506, -1, -1, -1, -1, -1, -1, -1, 514, + -1, -1, 18, -1, 20, -1, 22, 23, 24, 25, + 26, 27, 28, -1, 30, -1, -1, 33, -1, -1, + -1, -1, -1, -1, 40, 41, 42, 43, -1, -1, + -1, -1, -1, 49, 50, -1, 52, -1, 54, -1, + 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, + -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, + -1, -1, -1, 79, -1, 81, 82, 83, 84, 85, + 86, 87, 18, -1, 20, -1, 22, 23, 24, 25, + 26, 27, 28, -1, 30, -1, -1, 33, -1, -1, + -1, -1, -1, -1, 40, 41, 42, 43, -1, -1, + -1, -1, -1, 49, 50, -1, 52, -1, 54, -1, + 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, + -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, + -1, -1, -1, 79, -1, 81, 82, 83, 84, 85, + 86, 87, 18, -1, 20, -1, 22, 23, 24, 25, + 26, 27, 28, -1, 30, -1, -1, 33, -1, -1, + -1, -1, -1, -1, 40, 41, 42, 43, -1, -1, + -1, -1, -1, 49, 50, -1, 52, -1, 54, -1, + 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, + 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 79, -1, 81, 82, 83, 84, 85, + 86, 87, 23, -1, 25, 26, 27, -1, -1, 30, + -1, -1, -1, -1, 35, -1, 37, -1, -1, -1, + 41, 42, 43, -1, -1, -1, -1, 48, 49, 50, + -1, 52, -1, 54, -1, -1, -1, -1, -1, 60, + 61, 62, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, - 25, -1, 27, -1, -1, 30, -1, -1, -1, -1, - -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, - -1, 46, 47, -1, 49, -1, 51, -1, 53, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 81, 82, 83, 84, 85, 86, 87, 23, -1, 25, + 26, 27, -1, -1, 30, -1, -1, -1, -1, -1, + -1, 37, -1, -1, -1, 41, 42, 43, -1, -1, + -1, -1, 48, 49, 50, -1, 52, -1, 54, 55, + -1, -1, -1, -1, -1, 61, 62, -1, -1, -1, + 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 81, 82, 83, 84, 85, + 86, 87, 23, -1, 25, 26, 27, -1, -1, 30, + -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, + 41, 42, 43, -1, -1, -1, -1, 48, 49, 50, + -1, 52, 53, 54, -1, -1, -1, -1, -1, -1, + 61, 62, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 15, -1, 17, -1, 19, 20, 21, 22, 23, 24, - 25, -1, 27, -1, -1, 30, -1, -1, -1, -1, - -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, - -1, 46, 47, -1, 49, -1, 51, -1, 53, 54, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 81, 82, 83, 84, 85, 86, 87, 23, -1, 25, + 26, 27, -1, -1, 30, -1, -1, -1, -1, -1, + -1, 37, -1, -1, -1, 41, 42, 43, -1, -1, + -1, -1, 48, 49, 50, -1, 52, 53, 54, -1, + -1, -1, -1, -1, -1, 61, 62, -1, -1, -1, + 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 81, 82, 83, 84, 85, + 86, 87, 23, -1, 25, 26, 27, -1, -1, 30, + -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, + 41, 42, 43, -1, -1, -1, -1, 48, 49, 50, + -1, 52, 53, 54, -1, -1, -1, -1, -1, -1, + 61, 62, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 15, -1, 17, -1, 19, 20, 21, 22, 23, 24, - 25, -1, 27, -1, -1, 30, -1, -1, -1, -1, - -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, - -1, 46, 47, -1, 49, -1, 51, -1, 53, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + 81, 82, 83, 84, 85, 86, 87, 23, -1, 25, + 26, 27, -1, -1, 30, -1, -1, -1, -1, -1, + -1, 37, -1, -1, -1, 41, 42, 43, -1, -1, + -1, -1, 48, 49, 50, -1, 52, -1, 54, -1, + -1, -1, -1, -1, -1, 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 15, -1, 17, -1, 19, 20, 21, 22, 23, 24, - 25, -1, 27, -1, -1, 30, -1, -1, -1, -1, - -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, - -1, 46, 47, -1, 49, -1, 51, -1, 53, -1, - -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 81, 82, 83, 84, 85, + 86, 87, 18, 19, 20, -1, 22, 23, 24, 25, + 26, 27, 28, -1, 30, -1, -1, 33, -1, -1, + -1, -1, -1, -1, 40, 41, 42, 43, -1, -1, + -1, -1, -1, 49, 50, -1, 52, -1, 54, -1, + 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 76, -1, 78, 79, 80, 81, 82, 83, 84, - 20, -1, 22, 23, 24, -1, -1, 27, -1, -1, - -1, -1, 32, -1, 34, -1, -1, -1, 38, 39, - 40, -1, -1, -1, -1, 45, 46, 47, -1, 49, - -1, 51, -1, -1, 54, -1, -1, 57, 58, 59, + -1, -1, -1, 79, -1, 81, 82, 83, 84, 85, + 86, 87, 18, -1, 20, 21, 22, 23, 24, 25, + 26, 27, 28, -1, 30, -1, -1, 33, -1, -1, + -1, -1, -1, -1, 40, 41, 42, 43, -1, -1, + -1, -1, -1, 49, 50, -1, 52, -1, 54, -1, + 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 78, 79, - 80, 81, 82, 83, 84, 20, -1, 22, 23, 24, - -1, -1, 27, -1, -1, -1, -1, -1, -1, 34, - -1, -1, -1, 38, 39, 40, -1, -1, -1, -1, - 45, 46, 47, -1, 49, -1, 51, -1, -1, -1, - -1, -1, -1, 58, 59, -1, -1, -1, -1, -1, + -1, -1, -1, 79, -1, 81, 82, 83, 84, 85, + 86, 87, 18, -1, 20, -1, 22, 23, 24, 25, + 26, 27, 28, -1, 30, -1, -1, 33, -1, -1, + -1, -1, -1, -1, 40, 41, 42, 43, -1, -1, + -1, -1, -1, 49, 50, -1, 52, -1, 54, -1, + 56, 57, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 78, 79, 80, 81, 82, 83, 84, - 20, -1, 22, 23, 24, -1, -1, 27, -1, -1, - -1, -1, -1, -1, 34, -1, 22, -1, 38, 39, - 40, -1, -1, -1, -1, 45, 46, 47, -1, 49, - -1, 51, 38, 39, 40, -1, -1, -1, 58, 59, - 46, 47, -1, 49, -1, 51, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, 78, 79, - 80, 81, 82, 83, 84, -1, -1, -1, -1, -1, - 26, -1, 78, 79, 80, 81, 82, 83, 84, 35, - -1, -1, -1, -1, -1, 41, 42, 43, 44, -1, - 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 61, 62, 63, 64, 65, - 66, 26, -1, -1, -1, 71, -1, 73, 74, 75, - -1, -1, -1, -1, -1, -1, 41, 42, 43, 44, - -1, 46, 47, 48, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 61, 62, 63, 64, - 65, 66, 26, -1, -1, -1, 71, -1, 73, 74, - 75, -1, -1, -1, -1, -1, -1, 41, 42, 43, - 44, -1, 46, 47, 48, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, - 64, 65, 66, 26, -1, -1, -1, 71, -1, 73, - 74, 75, -1, -1, -1, -1, -1, -1, 41, 42, - 43, 44, -1, 46, 47, 48, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 61, 62, - 63, 64, 65, 66, 26, -1, -1, -1, 71, -1, - 73, 74, 75, -1, -1, -1, -1, -1, -1, 41, - 42, 43, 44, -1, 46, 47, 48, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, - 62, 63, 64, 65, 66, 28, -1, -1, -1, 71, - -1, 73, 74, 75, -1, -1, -1, -1, 41, 42, - 43, 44, -1, 46, 47, 48, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 61, 62, - 63, 64, 65, 66, 28, -1, -1, -1, 71, -1, - 73, 74, 75, -1, -1, -1, -1, 41, 42, 43, - 44, -1, 46, 47, 48, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, - 64, 65, 66, 29, -1, -1, -1, 71, -1, 73, - 74, 75, -1, -1, -1, 41, 42, 43, 44, -1, - 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 61, 62, 63, 64, 65, - 66, 31, -1, -1, -1, 71, -1, 73, 74, 75, - -1, 41, 42, 43, 44, -1, 46, 47, 48, -1, + -1, -1, -1, 79, -1, 81, 82, 83, 84, 85, + 86, 87, 18, -1, 20, -1, 22, 23, 24, 25, + 26, 27, 28, -1, 30, -1, -1, 33, -1, -1, + -1, -1, -1, -1, 40, 41, 42, 43, -1, -1, + -1, -1, -1, 49, 50, -1, 52, -1, 54, -1, + 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 61, 62, 63, 64, 65, 66, -1, 33, -1, - -1, 71, -1, 73, 74, 75, 41, 42, 43, 44, - -1, 46, 47, 48, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 61, 62, 63, 64, - 65, 66, -1, -1, -1, 35, 71, -1, 73, 74, - 75, 41, 42, 43, 44, -1, 46, 47, 48, -1, + -1, -1, -1, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 18, -1, 20, -1, 22, 23, 24, 25, + 26, 27, 28, -1, 30, -1, -1, 33, -1, -1, + -1, -1, -1, -1, 40, 41, 42, 43, -1, -1, + -1, -1, -1, 49, 50, -1, 52, -1, 54, -1, + 56, -1, -1, -1, -1, -1, 62, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 79, -1, 81, 82, 83, 84, 85, + 86, 87, 23, -1, 25, 26, 27, -1, -1, 30, + -1, -1, -1, -1, 35, -1, 37, -1, -1, -1, + 41, 42, 43, -1, -1, -1, -1, 48, 49, 50, + -1, 52, -1, 54, -1, -1, 57, -1, -1, 60, + 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 81, 82, 83, 84, 85, 86, 87, 23, -1, 25, + 26, 27, -1, -1, 30, -1, -1, -1, -1, -1, + -1, 37, -1, -1, -1, 41, 42, 43, -1, -1, + -1, -1, 48, 49, 50, -1, 52, -1, 54, -1, + -1, -1, -1, -1, -1, 61, 62, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 81, 82, 83, 84, 85, + 86, 87, 23, -1, 25, 26, 27, -1, -1, 30, + -1, -1, -1, -1, -1, -1, 37, -1, -1, -1, + 41, 42, 43, -1, -1, -1, -1, 48, 49, 50, + -1, 52, -1, 54, 29, -1, -1, -1, -1, -1, + 61, 62, -1, 38, -1, -1, -1, -1, -1, 44, + 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, + 81, 82, 83, 84, 85, 86, 87, -1, -1, 64, + 65, 66, 67, 68, 69, 29, -1, -1, -1, 74, + -1, 76, 77, 78, -1, -1, -1, -1, -1, -1, + 44, 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 61, 62, 63, 64, 65, 66, -1, -1, -1, - -1, 71, -1, 73, 74, 75, 41, 42, 43, 44, - -1, 46, 47, 48, -1, 50, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 61, 62, 63, 64, - 65, 66, -1, -1, -1, -1, 71, -1, 73, 74, - 75, 41, 42, 43, 44, -1, 46, 47, 48, -1, + 64, 65, 66, 67, 68, 69, 29, -1, -1, -1, + 74, -1, 76, 77, 78, -1, -1, -1, -1, -1, + -1, 44, 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 61, 62, 63, 64, 65, 66, -1, 68, -1, - -1, 71, -1, 73, 74, 75, 41, 42, 43, 44, - -1, 46, 47, 48, -1, 50, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 61, 62, 63, 64, - 65, 66, -1, -1, -1, -1, 71, -1, 73, 74, - 75, 41, 42, 43, 44, -1, 46, 47, 48, -1, - 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 61, 62, 63, 64, 65, 66, -1, -1, -1, - -1, 71, -1, 73, 74, 75, 41, 42, 43, 44, - -1, 46, 47, 48, -1, -1, -1, 52, -1, -1, - -1, -1, -1, -1, -1, -1, 61, 62, 63, 64, - 65, 66, -1, -1, -1, -1, 71, -1, 73, 74, - 75, 41, 42, 43, 44, -1, 46, 47, 48, -1, - -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, - -1, 61, 62, 63, 64, 65, 66, -1, -1, -1, - -1, 71, -1, 73, 74, 75, 41, 42, 43, 44, - -1, 46, 47, 48, -1, -1, -1, -1, -1, 54, - -1, -1, -1, -1, -1, -1, 61, 62, 63, 64, - 65, 66, -1, -1, -1, -1, 71, -1, 73, 74, - 75, 41, 42, 43, 44, -1, 46, 47, 48, -1, + -1, 64, 65, 66, 67, 68, 69, 29, -1, -1, + -1, 74, -1, 76, 77, 78, -1, -1, -1, -1, + -1, -1, 44, 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 61, 62, 63, 64, 65, 66, -1, -1, -1, - -1, 71, -1, 73, 74, 75, 41, 42, 43, -1, - -1, 46, 47, 48, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 61, 62, 63, 64, - 65, 66, -1, -1, -1, -1, -1, -1, 73, 74, - 75, 41, -1, 43, -1, -1, 46, 47, 48, -1, + -1, -1, 64, 65, 66, 67, 68, 69, 29, -1, + -1, -1, 74, -1, 76, 77, 78, -1, -1, -1, + -1, -1, -1, 44, 45, 46, 47, -1, 49, 50, + 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 64, 65, 66, 67, 68, 69, 31, + -1, -1, -1, 74, -1, 76, 77, 78, -1, -1, + -1, -1, 44, 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 61, 62, 63, 64, 65, 66, -1, -1, -1, - -1, 41, -1, 73, 74, 75, 46, 47, 48, -1, + -1, -1, 64, 65, 66, 67, 68, 69, 31, -1, + -1, -1, 74, -1, 76, 77, 78, -1, -1, -1, + -1, 44, 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 61, 62, 63, 64, 65, 66, -1, -1, -1, - -1, -1, -1, 73, 74, 75 + -1, 64, 65, 66, 67, 68, 69, 32, -1, -1, + -1, 74, -1, 76, 77, 78, -1, -1, -1, 44, + 45, 46, 47, -1, 49, 50, 51, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, + 65, 66, 67, 68, 69, 34, -1, -1, -1, 74, + -1, 76, 77, 78, -1, 44, 45, 46, 47, -1, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 64, 65, 66, 67, 68, + 69, -1, 36, -1, -1, 74, -1, 76, 77, 78, + 44, 45, 46, 47, -1, 49, 50, 51, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 64, 65, 66, 67, 68, 69, -1, -1, -1, 38, + 74, -1, 76, 77, 78, 44, 45, 46, 47, -1, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 64, 65, 66, 67, 68, + 69, -1, -1, -1, -1, 74, -1, 76, 77, 78, + 44, 45, 46, 47, -1, 49, 50, 51, -1, 53, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 64, 65, 66, 67, 68, 69, -1, -1, -1, -1, + 74, -1, 76, 77, 78, 44, 45, 46, 47, -1, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 64, 65, 66, 67, 68, + 69, -1, 71, -1, -1, 74, -1, 76, 77, 78, + 44, 45, 46, 47, -1, 49, 50, 51, -1, 53, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 64, 65, 66, 67, 68, 69, -1, -1, -1, -1, + 74, -1, 76, 77, 78, 44, 45, 46, 47, -1, + 49, 50, 51, -1, 53, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 64, 65, 66, 67, 68, + 69, -1, -1, -1, -1, 74, -1, 76, 77, 78, + 44, 45, 46, 47, -1, 49, 50, 51, -1, -1, + -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, + 64, 65, 66, 67, 68, 69, -1, -1, -1, -1, + 74, -1, 76, 77, 78, 44, 45, 46, 47, -1, + 49, 50, 51, -1, -1, -1, -1, -1, -1, 58, + -1, -1, -1, -1, -1, 64, 65, 66, 67, 68, + 69, -1, -1, -1, -1, 74, -1, 76, 77, 78, + 44, 45, 46, 47, -1, 49, 50, 51, -1, -1, + -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, + 64, 65, 66, 67, 68, 69, -1, -1, -1, -1, + 74, -1, 76, 77, 78, 44, 45, 46, 47, -1, + 49, 50, 51, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 64, 65, 66, 67, 68, + 69, -1, -1, -1, -1, 74, -1, 76, 77, 78, + 44, 45, 46, -1, -1, 49, 50, 51, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 64, 65, 66, 67, 68, 69, -1, -1, -1, -1, + 44, -1, 76, 77, 78, 49, 50, 51, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 64, 65, 66, 67, 68, 69, -1, -1, -1, -1, + -1, -1, 76, 77, 78 }; const unsigned char Parser::yystos_[] = { - 0, 3, 51, 91, 92, 184, 185, 1, 22, 84, - 171, 186, 187, 0, 1, 4, 5, 6, 7, 8, - 9, 10, 11, 13, 93, 94, 95, 96, 97, 98, - 99, 100, 103, 104, 105, 106, 107, 184, 3, 185, - 52, 20, 23, 24, 27, 34, 38, 39, 40, 45, - 46, 47, 49, 51, 58, 59, 78, 79, 80, 81, - 82, 83, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 171, 172, 52, 52, 53, 172, 171, 171, 171, 171, - 172, 171, 172, 171, 171, 94, 95, 171, 173, 176, - 177, 179, 180, 184, 174, 177, 174, 126, 174, 126, - 127, 127, 1, 125, 126, 154, 155, 171, 1, 52, - 125, 126, 127, 172, 41, 42, 43, 44, 46, 47, - 48, 61, 62, 63, 64, 65, 66, 71, 73, 74, - 75, 36, 69, 49, 49, 56, 49, 126, 152, 169, - 170, 49, 70, 48, 48, 49, 70, 48, 56, 48, - 36, 48, 55, 55, 48, 22, 60, 173, 22, 60, - 22, 28, 22, 50, 60, 50, 50, 60, 55, 52, - 52, 60, 68, 58, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 49, 157, 158, 159, 160, 161, 162, 163, 172, - 144, 171, 1, 50, 125, 126, 1, 50, 125, 171, - 126, 70, 54, 60, 1, 166, 171, 176, 178, 184, - 157, 53, 15, 17, 19, 20, 21, 23, 24, 25, - 27, 30, 37, 53, 76, 109, 110, 111, 112, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 127, - 129, 130, 1, 166, 157, 157, 63, 126, 171, 53, - 157, 164, 165, 157, 126, 126, 180, 126, 177, 126, - 126, 126, 126, 155, 171, 126, 126, 126, 156, 157, - 171, 175, 176, 61, 67, 49, 50, 50, 50, 50, - 50, 126, 170, 50, 50, 60, 176, 48, 1, 101, - 102, 171, 184, 1, 108, 109, 1, 108, 179, 1, - 171, 181, 182, 183, 184, 174, 174, 109, 126, 126, - 126, 1, 108, 1, 108, 72, 50, 50, 48, 100, - 63, 70, 33, 26, 29, 35, 50, 52, 60, 60, - 156, 157, 165, 126, 1, 50, 125, 70, 70, 70, - 178, 126, 54, 60, 171, 16, 16, 109, 18, 18, - 22, 55, 22, 60, 183, 22, 22, 28, 31, 26, - 54, 54, 77, 77, 126, 48, 70, 48, 70, 109, - 54, 157, 157, 126, 126, 126, 126, 157, 176, 60, - 62, 70, 50, 50, 126, 157, 157, 101, 109, 165, - 109, 182, 126, 126, 109, 53, 109, 109, 157, 109, - 157, 14, 167, 50, 50, 157, 157, 48, 48, 70, - 26, 35, 26, 29, 1, 32, 57, 113, 114, 126, - 48, 48, 53, 48, 168, 62, 126, 126, 157, 109, - 126, 109, 109, 54, 55, 55, 54, 114, 55, 109, - 109, 126, 53, 167, 26, 109, 109, 109, 54, 169, - 168, 109, 54 + 0, 3, 54, 94, 95, 194, 195, 1, 25, 87, + 181, 196, 197, 0, 1, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 16, 96, 97, 98, 99, + 100, 101, 102, 103, 106, 107, 108, 109, 110, 111, + 114, 194, 3, 195, 55, 23, 26, 27, 30, 37, + 41, 42, 43, 48, 49, 50, 52, 54, 61, 62, + 81, 82, 83, 84, 85, 86, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 181, 182, 55, 55, 56, 182, + 181, 181, 181, 181, 182, 181, 182, 181, 181, 52, + 167, 168, 169, 170, 171, 172, 173, 182, 181, 97, + 98, 181, 183, 186, 187, 189, 190, 194, 184, 187, + 184, 136, 184, 136, 137, 137, 1, 135, 136, 164, + 165, 181, 1, 55, 135, 136, 137, 182, 44, 45, + 46, 47, 49, 50, 51, 64, 65, 66, 67, 68, + 69, 74, 76, 77, 78, 39, 72, 52, 52, 59, + 52, 136, 162, 179, 180, 52, 73, 51, 51, 52, + 73, 51, 59, 51, 39, 51, 51, 166, 167, 181, + 182, 185, 186, 51, 14, 64, 70, 58, 58, 51, + 25, 63, 183, 25, 63, 25, 31, 25, 53, 63, + 53, 53, 63, 58, 55, 55, 63, 71, 61, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 167, 154, 181, 1, + 53, 135, 136, 1, 53, 135, 181, 136, 73, 57, + 63, 1, 176, 181, 186, 188, 194, 167, 56, 18, + 20, 22, 23, 24, 26, 27, 28, 30, 33, 40, + 56, 79, 119, 120, 121, 122, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 137, 139, 140, 1, + 176, 167, 167, 66, 136, 181, 56, 56, 63, 63, + 56, 167, 166, 167, 174, 175, 136, 167, 175, 167, + 136, 136, 190, 136, 187, 136, 136, 136, 136, 165, + 181, 136, 136, 136, 52, 53, 53, 53, 53, 53, + 136, 180, 53, 53, 63, 186, 51, 1, 104, 105, + 181, 194, 1, 118, 119, 1, 118, 189, 1, 181, + 191, 192, 193, 194, 184, 184, 119, 136, 136, 136, + 1, 118, 1, 118, 75, 53, 53, 51, 103, 5, + 7, 101, 102, 112, 113, 117, 167, 186, 101, 102, + 115, 116, 51, 63, 65, 66, 73, 73, 36, 29, + 32, 38, 53, 55, 1, 53, 135, 73, 73, 73, + 188, 136, 57, 63, 181, 19, 19, 119, 21, 21, + 25, 58, 25, 63, 193, 25, 25, 31, 34, 29, + 57, 57, 80, 80, 136, 51, 73, 51, 73, 119, + 57, 181, 181, 57, 112, 53, 53, 57, 115, 56, + 167, 167, 167, 167, 136, 136, 136, 136, 53, 53, + 136, 167, 167, 104, 119, 175, 119, 192, 136, 136, + 119, 56, 119, 119, 167, 119, 167, 58, 58, 116, + 65, 17, 177, 51, 51, 73, 29, 38, 29, 32, + 1, 35, 60, 123, 124, 136, 51, 51, 175, 175, + 57, 56, 51, 178, 136, 136, 167, 119, 136, 119, + 119, 57, 58, 58, 57, 124, 58, 119, 119, 73, + 73, 136, 56, 177, 29, 119, 119, 119, 167, 167, + 57, 179, 178, 119, 57 }; const unsigned char Parser::yyr1_[] = { - 0, 90, 91, 92, 92, 93, 93, 94, 94, 94, - 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 96, 96, 97, 98, 98, 98, 99, 99, 99, 99, - 99, 99, 100, 101, 101, 101, 102, 102, 103, 104, - 104, 105, 106, 106, 107, 108, 108, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 110, 111, 111, 112, 112, 113, 113, 114, 114, 114, - 115, 116, 117, 117, 118, 119, 120, 120, 120, 120, - 121, 121, 121, 121, 122, 123, 124, 125, 125, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, - 127, 127, 127, 127, 127, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 129, 129, 129, 130, 130, 130, 130, - 131, 131, 131, 131, 132, 133, 133, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 142, 143, 143, - 144, 145, 146, 147, 147, 148, 149, 150, 150, 150, - 151, 152, 153, 154, 154, 155, 156, 156, 157, 157, - 157, 157, 157, 157, 158, 159, 160, 161, 162, 163, - 164, 164, 165, 165, 166, 166, 167, 167, 168, 168, - 169, 169, 170, 170, 170, 171, 171, 172, 172, 173, - 173, 174, 174, 175, 175, 176, 177, 177, 178, 178, - 179, 179, 180, 181, 181, 182, 182, 182, 183, 184, - 184, 185, 185, 185, 186, 187 + 0, 93, 94, 95, 95, 96, 96, 97, 97, 97, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 99, 99, 100, 101, 101, 101, 102, 102, + 102, 102, 102, 102, 103, 104, 104, 104, 105, 105, + 106, 107, 107, 108, 109, 109, 110, 111, 112, 112, + 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, + 117, 118, 118, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 120, 121, 121, 122, + 122, 123, 123, 124, 124, 124, 125, 126, 127, 127, + 128, 129, 130, 130, 130, 130, 131, 131, 131, 131, + 132, 133, 134, 135, 135, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 137, 137, 137, 137, 137, 137, + 137, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 139, + 139, 139, 140, 140, 140, 140, 141, 141, 141, 141, + 142, 143, 143, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 152, 153, 153, 154, 155, 156, 157, + 157, 158, 159, 160, 160, 160, 161, 162, 163, 164, + 164, 165, 166, 166, 167, 167, 167, 167, 167, 167, + 168, 169, 170, 171, 172, 173, 174, 174, 175, 175, + 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, + 180, 181, 181, 182, 182, 183, 183, 184, 184, 185, + 185, 186, 187, 187, 188, 188, 189, 189, 190, 191, + 191, 192, 192, 192, 193, 194, 194, 195, 195, 195, + 196, 197 }; const signed char @@ -5842,28 +6124,30 @@ namespace libcasm_fe { { 0, 2, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 4, 6, 6, 9, 9, 4, 6, 7, 9, - 7, 9, 8, 1, 2, 1, 3, 1, 4, 2, - 4, 4, 2, 4, 6, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 6, 6, 6, 2, 1, 3, 3, 3, - 4, 4, 6, 8, 6, 2, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 1, 4, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, - 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 2, 1, 1, 1, 1, 3, 4, 4, - 3, 5, 6, 6, 3, 3, 4, 4, 3, 4, - 6, 6, 6, 6, 3, 1, 1, 1, 1, 1, + 1, 1, 2, 4, 6, 6, 9, 9, 4, 6, + 7, 9, 7, 9, 8, 1, 2, 1, 3, 1, + 4, 2, 4, 4, 2, 4, 6, 6, 1, 1, + 1, 2, 1, 8, 6, 1, 1, 2, 1, 6, + 6, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 4, 6, 6, + 6, 2, 1, 3, 3, 3, 4, 4, 6, 8, + 6, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 1, 4, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 3, 1, 1, 1, 2, + 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, + 1, 1, 1, 3, 4, 4, 3, 5, 6, 6, + 3, 3, 4, 4, 3, 4, 6, 6, 6, 6, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, - 5, 5, 3, 3, 1, 3, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 5, 5, 4, 6, 3, - 3, 1, 1, 0, 3, 1, 4, 0, 4, 0, - 3, 1, 1, 5, 3, 1, 1, 3, 1, 1, - 1, 3, 1, 3, 1, 3, 2, 1, 2, 1, - 3, 1, 3, 3, 1, 2, 1, 1, 7, 2, - 1, 3, 3, 3, 1, 2 + 1, 1, 2, 2, 3, 3, 5, 5, 3, 3, + 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 5, 5, 4, 6, 3, 3, 1, 1, 0, + 3, 1, 4, 0, 4, 0, 3, 1, 1, 5, + 3, 1, 1, 3, 1, 1, 1, 3, 1, 3, + 1, 3, 2, 1, 2, 1, 3, 1, 3, 3, + 1, 2, 1, 1, 7, 2, 1, 3, 3, 3, + 1, 2 }; @@ -5876,25 +6160,29 @@ namespace libcasm_fe { "\"end of file\"", "error", "\"invalid token\"", "\"CASM\"", "\"init\"", "\"derived\"", "\"enumeration\"", "\"rule\"", "\"using\"", "\"invariant\"", "\"import\"", "\"structure\"", "\"feature\"", - "\"function\"", "\"defined\"", "\"seq\"", "\"endseq\"", "\"par\"", - "\"endpar\"", "\"skip\"", "\"let\"", "\"local\"", "\"in\"", "\"forall\"", - "\"choose\"", "\"iterate\"", "\"do\"", "\"if\"", "\"then\"", "\"else\"", - "\"case\"", "\"of\"", "\"default\"", "\"holds\"", "\"exists\"", - "\"with\"", "\"as\"", "\"while\"", "\"undef\"", "\"false\"", "\"true\"", - "\"and\"", "\"or\"", "\"xor\"", "\"implies\"", "\"not\"", "\"+\"", - "\"-\"", "\"=\"", "\"(\"", "\")\"", "\"[\"", "\"]\"", "\"{\"", "\"}\"", - "\":\"", "\"::\"", "\"_\"", "\"|\"", "\"@\"", "\",\"", "\"<\"", "\">\"", - "\"*\"", "\"/\"", "\"%\"", "\"^\"", "\"'\"", "\"..\"", "\".\"", "\"->\"", - "\"=>\"", "\":=\"", "\"!=\"", "\"<=\"", "\">=\"", "\"{|\"", "\"|}\"", - "\"binary\"", "\"hexadecimal\"", "\"integer\"", "\"rational\"", - "\"decimal\"", "\"string\"", "\"identifier\"", "BASIC_TYPE", "CALL", - "UPLUS", "UMINUS", "CALL_WITHOUT_ARGS", "$accept", "Specification", - "Header", "Definitions", "AttributedDefinition", "Definition", - "InitDefinition", "EnumerationDefinition", "DerivedDefinition", - "RuleDefinition", "FunctionDefinition", "EnumeratorDefinition", - "Enumerators", "UsingDefinition", "UsingPathDefinition", - "InvariantDefinition", "ImportDefinition", "StructureDefinition", - "Rules", "Rule", "SkipRule", "ConditionalRule", "CaseRule", "CaseLabels", + "\"implements\"", "\"for\"", "\"this\"", "\"function\"", "\"defined\"", + "\"seq\"", "\"endseq\"", "\"par\"", "\"endpar\"", "\"skip\"", "\"let\"", + "\"local\"", "\"in\"", "\"forall\"", "\"choose\"", "\"iterate\"", + "\"do\"", "\"if\"", "\"then\"", "\"else\"", "\"case\"", "\"of\"", + "\"default\"", "\"holds\"", "\"exists\"", "\"with\"", "\"as\"", + "\"while\"", "\"undef\"", "\"false\"", "\"true\"", "\"and\"", "\"or\"", + "\"xor\"", "\"implies\"", "\"not\"", "\"+\"", "\"-\"", "\"=\"", "\"(\"", + "\")\"", "\"[\"", "\"]\"", "\"{\"", "\"}\"", "\":\"", "\"::\"", "\"_\"", + "\"|\"", "\"@\"", "\",\"", "\"<\"", "\">\"", "\"*\"", "\"/\"", "\"%\"", + "\"^\"", "\"'\"", "\"..\"", "\".\"", "\"->\"", "\"=>\"", "\":=\"", + "\"!=\"", "\"<=\"", "\">=\"", "\"{|\"", "\"|}\"", "\"binary\"", + "\"hexadecimal\"", "\"integer\"", "\"rational\"", "\"decimal\"", + "\"string\"", "\"identifier\"", "BASIC_TYPE", "CALL", "UPLUS", "UMINUS", + "CALL_WITHOUT_ARGS", "$accept", "Specification", "Header", "Definitions", + "AttributedDefinition", "Definition", "InitDefinition", + "EnumerationDefinition", "DerivedDefinition", "RuleDefinition", + "FunctionDefinition", "EnumeratorDefinition", "Enumerators", + "UsingDefinition", "UsingPathDefinition", "InvariantDefinition", + "ImportDefinition", "StructureDefinition", "FeatureDefinition", + "FeatureDeclarationOrDefinition", "FeatureDeclarationsAndDefinitions", + "ImplementationDefinition", "ImplementationDefinitionDefinition", + "ImplementationDefinitionDefinitions", "DeclarationDefinition", "Rules", + "Rule", "SkipRule", "ConditionalRule", "CaseRule", "CaseLabels", "CaseLabel", "LetRule", "LocalRule", "ForallRule", "ChooseRule", "IterateRule", "BlockRule", "SequenceRule", "UpdateRule", "CallRule", "WhileRule", "Terms", "Term", "SimpleOrClaspedTerm", @@ -5924,30 +6212,32 @@ namespace libcasm_fe { const short Parser::yyrline_[] = { - 0, 423, 423, 433, 439, 447, 453, 463, 469, 473, - 481, 485, 489, 493, 497, 501, 505, 509, 513, 517, - 525, 529, 537, 545, 550, 556, 564, 570, 575, 582, - 588, 592, 600, 615, 619, 625, 633, 640, 650, 658, - 662, 670, 678, 682, 690, 763, 769, 779, 783, 787, - 791, 795, 799, 803, 807, 811, 815, 819, 823, 827, - 835, 843, 847, 855, 859, 867, 873, 883, 887, 891, - 899, 907, 915, 919, 927, 935, 943, 947, 951, 956, - 965, 969, 973, 978, 987, 995, 1003, 1015, 1022, 1032, - 1036, 1040, 1044, 1048, 1052, 1056, 1060, 1064, 1072, 1076, - 1080, 1084, 1088, 1092, 1096, 1108, 1112, 1116, 1120, 1124, - 1128, 1132, 1136, 1140, 1144, 1148, 1152, 1156, 1160, 1164, - 1168, 1172, 1176, 1184, 1188, 1192, 1200, 1205, 1212, 1218, - 1226, 1231, 1238, 1244, 1252, 1260, 1267, 1273, 1281, 1289, - 1297, 1305, 1313, 1321, 1329, 1342, 1346, 1350, 1354, 1358, - 1362, 1366, 1370, 1374, 1378, 1382, 1386, 1394, 1403, 1409, - 1419, 1427, 1435, 1443, 1447, 1455, 1463, 1471, 1478, 1484, - 1492, 1501, 1512, 1521, 1528, 1537, 1549, 1556, 1565, 1569, - 1573, 1577, 1581, 1585, 1593, 1601, 1612, 1623, 1631, 1639, - 1651, 1658, 1668, 1672, 1680, 1687, 1701, 1705, 1713, 1717, - 1726, 1733, 1743, 1748, 1754, 1769, 1773, 1782, 1789, 1801, - 1805, 1814, 1821, 1831, 1838, 1848, 1857, 1863, 1871, 1877, - 1889, 1896, 1905, 1917, 1924, 1933, 1939, 1943, 1950, 1970, - 1976, 1985, 1992, 1999, 2006, 2013 + 0, 431, 431, 441, 447, 455, 461, 471, 477, 481, + 489, 493, 497, 501, 505, 509, 513, 517, 521, 525, + 529, 533, 541, 545, 553, 561, 566, 572, 580, 586, + 591, 598, 604, 608, 616, 631, 635, 641, 649, 656, + 666, 674, 678, 686, 694, 698, 706, 715, 724, 728, + 732, 740, 746, 756, 760, 770, 774, 782, 788, 798, + 805, 820, 826, 836, 840, 844, 848, 852, 856, 860, + 864, 868, 872, 876, 880, 884, 892, 900, 904, 912, + 916, 924, 930, 940, 944, 948, 956, 964, 972, 976, + 984, 992, 1000, 1004, 1008, 1013, 1022, 1026, 1030, 1035, + 1044, 1052, 1060, 1072, 1079, 1089, 1093, 1097, 1101, 1105, + 1109, 1113, 1117, 1121, 1129, 1133, 1137, 1141, 1145, 1149, + 1153, 1165, 1169, 1173, 1177, 1181, 1185, 1189, 1193, 1197, + 1201, 1205, 1209, 1213, 1217, 1221, 1225, 1229, 1233, 1241, + 1245, 1249, 1257, 1262, 1269, 1275, 1283, 1288, 1295, 1301, + 1309, 1317, 1324, 1330, 1338, 1346, 1354, 1362, 1370, 1378, + 1386, 1399, 1403, 1407, 1411, 1415, 1419, 1423, 1427, 1431, + 1435, 1439, 1443, 1451, 1460, 1466, 1476, 1484, 1492, 1500, + 1504, 1512, 1520, 1528, 1535, 1541, 1549, 1558, 1569, 1578, + 1585, 1594, 1606, 1613, 1622, 1626, 1630, 1634, 1638, 1642, + 1650, 1658, 1669, 1680, 1688, 1696, 1708, 1715, 1725, 1729, + 1737, 1744, 1758, 1762, 1770, 1774, 1783, 1790, 1800, 1805, + 1811, 1826, 1830, 1839, 1846, 1858, 1862, 1871, 1878, 1888, + 1895, 1905, 1914, 1920, 1928, 1934, 1946, 1953, 1962, 1974, + 1981, 1990, 1996, 2000, 2007, 2027, 2033, 2042, 2049, 2056, + 2063, 2070 }; void @@ -5980,9 +6270,9 @@ namespace libcasm_fe { #line 51 "../../obj/src/GrammarParser.y" } // libcasm_fe -#line 5984 "GrammarParser.cpp" +#line 6274 "GrammarParser.cpp" -#line 2019 "../../obj/src/GrammarParser.y" +#line 2076 "../../obj/src/GrammarParser.y" void Parser::error( const libstdhl::SourceLocation& location, const std::string& message ) diff --git a/src/various/GrammarParser.gv b/src/various/GrammarParser.gv index 26275788..08c42ca9 100644 --- a/src/various/GrammarParser.gv +++ b/src/various/GrammarParser.gv @@ -17,7 +17,7 @@ digraph "../../obj/src/GrammarParser.y" 1 [label="State 1\n\l 3 Header: \"CASM\" •\l"] 1 -> "1R3" [style=solid] "1R3" [label="R3", fillcolor=3, shape=diamond, style=filled] - 2 [label="State 2\n\l230 Attribute: \"[\" • BasicAttribute \"]\"\l231 | \"[\" • ExpressionAttribute \"]\"\l232 | \"[\" • error \"]\"\l"] + 2 [label="State 2\n\l246 Attribute: \"[\" • BasicAttribute \"]\"\l247 | \"[\" • ExpressionAttribute \"]\"\l248 | \"[\" • error \"]\"\l"] 2 -> 7 [style=dotted] 2 -> 8 [style=solid label="\"in\""] 2 -> 9 [style=solid label="\"identifier\""] @@ -36,7416 +36,7650 @@ digraph "../../obj/src/GrammarParser.y" 4 -> 20 [style=solid label="\"invariant\""] 4 -> 21 [style=solid label="\"import\""] 4 -> 22 [style=solid label="\"structure\""] - 4 -> 23 [style=solid label="\"function\""] + 4 -> 23 [style=solid label="\"feature\""] + 4 -> 24 [style=solid label="\"implements\""] + 4 -> 25 [style=solid label="\"function\""] 4 -> 2 [style=solid label="\"[\""] - 4 -> 24 [style=dashed label="Definitions"] - 4 -> 25 [style=dashed label="AttributedDefinition"] - 4 -> 26 [style=dashed label="Definition"] - 4 -> 27 [style=dashed label="InitDefinition"] - 4 -> 28 [style=dashed label="EnumerationDefinition"] - 4 -> 29 [style=dashed label="DerivedDefinition"] - 4 -> 30 [style=dashed label="RuleDefinition"] - 4 -> 31 [style=dashed label="FunctionDefinition"] - 4 -> 32 [style=dashed label="UsingDefinition"] - 4 -> 33 [style=dashed label="UsingPathDefinition"] - 4 -> 34 [style=dashed label="InvariantDefinition"] - 4 -> 35 [style=dashed label="ImportDefinition"] - 4 -> 36 [style=dashed label="StructureDefinition"] - 4 -> 37 [style=dashed label="Attributes"] + 4 -> 26 [style=dashed label="Definitions"] + 4 -> 27 [style=dashed label="AttributedDefinition"] + 4 -> 28 [style=dashed label="Definition"] + 4 -> 29 [style=dashed label="InitDefinition"] + 4 -> 30 [style=dashed label="EnumerationDefinition"] + 4 -> 31 [style=dashed label="DerivedDefinition"] + 4 -> 32 [style=dashed label="RuleDefinition"] + 4 -> 33 [style=dashed label="FunctionDefinition"] + 4 -> 34 [style=dashed label="UsingDefinition"] + 4 -> 35 [style=dashed label="UsingPathDefinition"] + 4 -> 36 [style=dashed label="InvariantDefinition"] + 4 -> 37 [style=dashed label="ImportDefinition"] + 4 -> 38 [style=dashed label="StructureDefinition"] + 4 -> 39 [style=dashed label="FeatureDefinition"] + 4 -> 40 [style=dashed label="ImplementationDefinition"] + 4 -> 41 [style=dashed label="Attributes"] 4 -> 6 [style=dashed label="Attribute"] - 5 [label="State 5\n\l 2 Header: Attributes • \"CASM\"\l228 Attributes: Attributes • Attribute\l"] - 5 -> 38 [style=solid label="\"CASM\""] + 5 [label="State 5\n\l 2 Header: Attributes • \"CASM\"\l244 Attributes: Attributes • Attribute\l"] + 5 -> 42 [style=solid label="\"CASM\""] 5 -> 2 [style=solid label="\"[\""] - 5 -> 39 [style=dashed label="Attribute"] - 6 [label="State 6\n\l229 Attributes: Attribute •\l"] - 6 -> "6R229" [style=solid] - "6R229" [label="R229", fillcolor=3, shape=diamond, style=filled] - 7 [label="State 7\n\l232 Attribute: \"[\" error • \"]\"\l"] - 7 -> 40 [style=solid label="\"]\""] - 8 [label="State 8\n\l205 Identifier: \"in\" •\l"] - 8 -> "8R205" [style=solid] - "8R205" [label="R205", fillcolor=3, shape=diamond, style=filled] - 9 [label="State 9\n\l204 Identifier: \"identifier\" •\l"] - 9 -> "9R204" [style=solid] - "9R204" [label="R204", fillcolor=3, shape=diamond, style=filled] - 10 [label="State 10\n\l233 BasicAttribute: Identifier •\l234 ExpressionAttribute: Identifier • Term\l"] - 10 -> 41 [style=solid label="\"let\""] + 5 -> 43 [style=dashed label="Attribute"] + 6 [label="State 6\n\l245 Attributes: Attribute •\l"] + 6 -> "6R245" [style=solid] + "6R245" [label="R245", fillcolor=3, shape=diamond, style=filled] + 7 [label="State 7\n\l248 Attribute: \"[\" error • \"]\"\l"] + 7 -> 44 [style=solid label="\"]\""] + 8 [label="State 8\n\l221 Identifier: \"in\" •\l"] + 8 -> "8R221" [style=solid] + "8R221" [label="R221", fillcolor=3, shape=diamond, style=filled] + 9 [label="State 9\n\l220 Identifier: \"identifier\" •\l"] + 9 -> "9R220" [style=solid] + "9R220" [label="R220", fillcolor=3, shape=diamond, style=filled] + 10 [label="State 10\n\l249 BasicAttribute: Identifier •\l250 ExpressionAttribute: Identifier • Term\l"] + 10 -> 45 [style=solid label="\"let\""] 10 -> 8 [style=solid label="\"in\""] - 10 -> 42 [style=solid label="\"forall\""] - 10 -> 43 [style=solid label="\"choose\""] - 10 -> 44 [style=solid label="\"if\""] - 10 -> 45 [style=solid label="\"exists\""] - 10 -> 46 [style=solid label="\"undef\""] - 10 -> 47 [style=solid label="\"false\""] - 10 -> 48 [style=solid label="\"true\""] - 10 -> 49 [style=solid label="\"not\""] - 10 -> 50 [style=solid label="\"+\""] - 10 -> 51 [style=solid label="\"-\""] - 10 -> 52 [style=solid label="\"(\""] - 10 -> 53 [style=solid label="\"[\""] - 10 -> 54 [style=solid label="\"|\""] - 10 -> 55 [style=solid label="\"@\""] - 10 -> 56 [style=solid label="\"binary\""] - 10 -> 57 [style=solid label="\"hexadecimal\""] - 10 -> 58 [style=solid label="\"integer\""] - 10 -> 59 [style=solid label="\"rational\""] - 10 -> 60 [style=solid label="\"decimal\""] - 10 -> 61 [style=solid label="\"string\""] + 10 -> 46 [style=solid label="\"forall\""] + 10 -> 47 [style=solid label="\"choose\""] + 10 -> 48 [style=solid label="\"if\""] + 10 -> 49 [style=solid label="\"exists\""] + 10 -> 50 [style=solid label="\"undef\""] + 10 -> 51 [style=solid label="\"false\""] + 10 -> 52 [style=solid label="\"true\""] + 10 -> 53 [style=solid label="\"not\""] + 10 -> 54 [style=solid label="\"+\""] + 10 -> 55 [style=solid label="\"-\""] + 10 -> 56 [style=solid label="\"(\""] + 10 -> 57 [style=solid label="\"[\""] + 10 -> 58 [style=solid label="\"|\""] + 10 -> 59 [style=solid label="\"@\""] + 10 -> 60 [style=solid label="\"binary\""] + 10 -> 61 [style=solid label="\"hexadecimal\""] + 10 -> 62 [style=solid label="\"integer\""] + 10 -> 63 [style=solid label="\"rational\""] + 10 -> 64 [style=solid label="\"decimal\""] + 10 -> 65 [style=solid label="\"string\""] 10 -> 9 [style=solid label="\"identifier\""] - 10 -> 62 [style=dashed label="Term"] - 10 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 10 -> 64 [style=dashed label="OperatorExpression"] - 10 -> 65 [style=dashed label="CallExpression"] - 10 -> 66 [style=dashed label="DirectCallExpression"] - 10 -> 67 [style=dashed label="MethodCallExpression"] - 10 -> 68 [style=dashed label="LiteralCallExpression"] - 10 -> 69 [style=dashed label="IndirectCallExpression"] - 10 -> 70 [style=dashed label="TypeCastingExpression"] - 10 -> 71 [style=dashed label="LetExpression"] - 10 -> 72 [style=dashed label="ConditionalExpression"] - 10 -> 73 [style=dashed label="ChooseExpression"] - 10 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 10 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 10 -> 76 [style=dashed label="CardinalityExpression"] - 10 -> 77 [style=dashed label="Literal"] - 10 -> 78 [style=dashed label="UndefinedLiteral"] - 10 -> 79 [style=dashed label="BooleanLiteral"] - 10 -> 80 [style=dashed label="IntegerLiteral"] - 10 -> 81 [style=dashed label="RationalLiteral"] - 10 -> 82 [style=dashed label="DecimalLiteral"] - 10 -> 83 [style=dashed label="BinaryLiteral"] - 10 -> 84 [style=dashed label="StringLiteral"] - 10 -> 85 [style=dashed label="ReferenceLiteral"] - 10 -> 86 [style=dashed label="ListLiteral"] - 10 -> 87 [style=dashed label="RangeLiteral"] - 10 -> 88 [style=dashed label="TupleLiteral"] - 10 -> 89 [style=dashed label="RecordLiteral"] - 10 -> 90 [style=dashed label="Identifier"] - 10 -> 91 [style=dashed label="IdentifierPath"] - 10 -> "10R233" [style=solid] - "10R233" [label="R233", fillcolor=3, shape=diamond, style=filled] - 11 [label="State 11\n\l230 Attribute: \"[\" BasicAttribute • \"]\"\l"] - 11 -> 92 [style=solid label="\"]\""] - 12 [label="State 12\n\l231 Attribute: \"[\" ExpressionAttribute • \"]\"\l"] - 12 -> 93 [style=solid label="\"]\""] + 10 -> 66 [style=dashed label="Term"] + 10 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 10 -> 68 [style=dashed label="OperatorExpression"] + 10 -> 69 [style=dashed label="CallExpression"] + 10 -> 70 [style=dashed label="DirectCallExpression"] + 10 -> 71 [style=dashed label="MethodCallExpression"] + 10 -> 72 [style=dashed label="LiteralCallExpression"] + 10 -> 73 [style=dashed label="IndirectCallExpression"] + 10 -> 74 [style=dashed label="TypeCastingExpression"] + 10 -> 75 [style=dashed label="LetExpression"] + 10 -> 76 [style=dashed label="ConditionalExpression"] + 10 -> 77 [style=dashed label="ChooseExpression"] + 10 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 10 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 10 -> 80 [style=dashed label="CardinalityExpression"] + 10 -> 81 [style=dashed label="Literal"] + 10 -> 82 [style=dashed label="UndefinedLiteral"] + 10 -> 83 [style=dashed label="BooleanLiteral"] + 10 -> 84 [style=dashed label="IntegerLiteral"] + 10 -> 85 [style=dashed label="RationalLiteral"] + 10 -> 86 [style=dashed label="DecimalLiteral"] + 10 -> 87 [style=dashed label="BinaryLiteral"] + 10 -> 88 [style=dashed label="StringLiteral"] + 10 -> 89 [style=dashed label="ReferenceLiteral"] + 10 -> 90 [style=dashed label="ListLiteral"] + 10 -> 91 [style=dashed label="RangeLiteral"] + 10 -> 92 [style=dashed label="TupleLiteral"] + 10 -> 93 [style=dashed label="RecordLiteral"] + 10 -> 94 [style=dashed label="Identifier"] + 10 -> 95 [style=dashed label="IdentifierPath"] + 10 -> "10R249" [style=solid] + "10R249" [label="R249", fillcolor=3, shape=diamond, style=filled] + 11 [label="State 11\n\l246 Attribute: \"[\" BasicAttribute • \"]\"\l"] + 11 -> 96 [style=solid label="\"]\""] + 12 [label="State 12\n\l247 Attribute: \"[\" ExpressionAttribute • \"]\"\l"] + 12 -> 97 [style=solid label="\"]\""] 13 [label="State 13\n\l 0 $accept: Specification \"end of file\" •\l"] 13 -> "13R0" [style=solid] "13R0" [label="Acc", fillcolor=1, shape=diamond, style=filled] 14 [label="State 14\n\l 8 AttributedDefinition: error •\l"] 14 -> "14R8" [style=solid] "14R8" [label="R8", fillcolor=3, shape=diamond, style=filled] - 15 [label="State 15\n\l 19 InitDefinition: \"init\" • IdentifierPath\l 20 | \"init\" • \"{\" Initializers \"}\"\l"] + 15 [label="State 15\n\l 21 InitDefinition: \"init\" • IdentifierPath\l 22 | \"init\" • \"{\" Initializers \"}\"\l"] 15 -> 8 [style=solid label="\"in\""] - 15 -> 94 [style=solid label="\"{\""] + 15 -> 98 [style=solid label="\"{\""] 15 -> 9 [style=solid label="\"identifier\""] - 15 -> 90 [style=dashed label="Identifier"] - 15 -> 95 [style=dashed label="IdentifierPath"] - 16 [label="State 16\n\l 22 DerivedDefinition: \"derived\" • Identifier \"->\" Type \"=\" Term\l 23 | \"derived\" • Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Term\l 24 | \"derived\" • Identifier \"(\" error \")\" \"->\" Type \"=\" Term\l"] + 15 -> 94 [style=dashed label="Identifier"] + 15 -> 99 [style=dashed label="IdentifierPath"] + 16 [label="State 16\n\l 24 DerivedDefinition: \"derived\" • Identifier \"->\" Type \"=\" Term\l 25 | \"derived\" • Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Term\l 26 | \"derived\" • Identifier \"(\" error \")\" \"->\" Type \"=\" Term\l"] 16 -> 8 [style=solid label="\"in\""] 16 -> 9 [style=solid label="\"identifier\""] - 16 -> 96 [style=dashed label="Identifier"] - 17 [label="State 17\n\l 21 EnumerationDefinition: \"enumeration\" • Identifier \"=\" \"{\" Enumerators \"}\"\l"] + 16 -> 100 [style=dashed label="Identifier"] + 17 [label="State 17\n\l 23 EnumerationDefinition: \"enumeration\" • Identifier \"=\" \"{\" Enumerators \"}\"\l"] 17 -> 8 [style=solid label="\"in\""] 17 -> 9 [style=solid label="\"identifier\""] - 17 -> 97 [style=dashed label="Identifier"] - 18 [label="State 18\n\l 25 RuleDefinition: \"rule\" • Identifier \"=\" Rule\l 26 | \"rule\" • Identifier \"->\" Type \"=\" Rule\l 27 | \"rule\" • Identifier \"(\" Parameters \")\" \"=\" Rule\l 28 | \"rule\" • Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Rule\l 29 | \"rule\" • Identifier \"(\" error \")\" \"=\" Rule\l 30 | \"rule\" • Identifier \"(\" error \")\" \"->\" Type \"=\" Rule\l"] + 17 -> 101 [style=dashed label="Identifier"] + 18 [label="State 18\n\l 27 RuleDefinition: \"rule\" • Identifier \"=\" Rule\l 28 | \"rule\" • Identifier \"->\" Type \"=\" Rule\l 29 | \"rule\" • Identifier \"(\" Parameters \")\" \"=\" Rule\l 30 | \"rule\" • Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Rule\l 31 | \"rule\" • Identifier \"(\" error \")\" \"=\" Rule\l 32 | \"rule\" • Identifier \"(\" error \")\" \"->\" Type \"=\" Rule\l"] 18 -> 8 [style=solid label="\"in\""] 18 -> 9 [style=solid label="\"identifier\""] - 18 -> 98 [style=dashed label="Identifier"] - 19 [label="State 19\n\l 37 UsingDefinition: \"using\" • Identifier \"=\" Type\l 38 UsingPathDefinition: \"using\" • IdentifierPath\l 39 | \"using\" • IdentifierPath \"::\" \"*\"\l"] + 18 -> 102 [style=dashed label="Identifier"] + 19 [label="State 19\n\l 39 UsingDefinition: \"using\" • Identifier \"=\" Type\l 40 UsingPathDefinition: \"using\" • IdentifierPath\l 41 | \"using\" • IdentifierPath \"::\" \"*\"\l"] 19 -> 8 [style=solid label="\"in\""] 19 -> 9 [style=solid label="\"identifier\""] - 19 -> 99 [style=dashed label="Identifier"] - 19 -> 100 [style=dashed label="IdentifierPath"] - 20 [label="State 20\n\l 40 InvariantDefinition: \"invariant\" • Identifier \"=\" Term\l"] + 19 -> 103 [style=dashed label="Identifier"] + 19 -> 104 [style=dashed label="IdentifierPath"] + 20 [label="State 20\n\l 42 InvariantDefinition: \"invariant\" • Identifier \"=\" Term\l"] 20 -> 8 [style=solid label="\"in\""] 20 -> 9 [style=solid label="\"identifier\""] - 20 -> 101 [style=dashed label="Identifier"] - 21 [label="State 21\n\l 41 ImportDefinition: \"import\" • IdentifierPath\l 42 | \"import\" • IdentifierPath \"as\" Identifier\l"] + 20 -> 105 [style=dashed label="Identifier"] + 21 [label="State 21\n\l 43 ImportDefinition: \"import\" • IdentifierPath\l 44 | \"import\" • IdentifierPath \"as\" Identifier\l"] 21 -> 8 [style=solid label="\"in\""] 21 -> 9 [style=solid label="\"identifier\""] - 21 -> 90 [style=dashed label="Identifier"] - 21 -> 102 [style=dashed label="IdentifierPath"] - 22 [label="State 22\n\l 43 StructureDefinition: \"structure\" • Identifier \"=\" \"{\" FunctionDefinition \"}\"\l"] + 21 -> 94 [style=dashed label="Identifier"] + 21 -> 106 [style=dashed label="IdentifierPath"] + 22 [label="State 22\n\l 45 StructureDefinition: \"structure\" • Identifier \"=\" \"{\" FunctionDefinition \"}\"\l"] 22 -> 8 [style=solid label="\"in\""] 22 -> 9 [style=solid label="\"identifier\""] - 22 -> 103 [style=dashed label="Identifier"] - 23 [label="State 23\n\l 31 FunctionDefinition: \"function\" • Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] + 22 -> 107 [style=dashed label="Identifier"] + 23 [label="State 23\n\l 46 FeatureDefinition: \"feature\" • Identifier \"=\" \"{\" FeatureDeclarationsAndDefinitions \"}\"\l"] 23 -> 8 [style=solid label="\"in\""] 23 -> 9 [style=solid label="\"identifier\""] - 23 -> 104 [style=dashed label="Identifier"] - 24 [label="State 24\n\l 1 Specification: Header Definitions •\l 4 Definitions: Definitions • AttributedDefinition\l"] - 24 -> 14 [style=dotted] - 24 -> 15 [style=solid label="\"init\""] - 24 -> 16 [style=solid label="\"derived\""] - 24 -> 17 [style=solid label="\"enumeration\""] - 24 -> 18 [style=solid label="\"rule\""] - 24 -> 19 [style=solid label="\"using\""] - 24 -> 20 [style=solid label="\"invariant\""] - 24 -> 21 [style=solid label="\"import\""] - 24 -> 22 [style=solid label="\"structure\""] - 24 -> 23 [style=solid label="\"function\""] - 24 -> 2 [style=solid label="\"[\""] - 24 -> 105 [style=dashed label="AttributedDefinition"] - 24 -> 26 [style=dashed label="Definition"] - 24 -> 27 [style=dashed label="InitDefinition"] - 24 -> 28 [style=dashed label="EnumerationDefinition"] - 24 -> 29 [style=dashed label="DerivedDefinition"] - 24 -> 30 [style=dashed label="RuleDefinition"] - 24 -> 31 [style=dashed label="FunctionDefinition"] - 24 -> 32 [style=dashed label="UsingDefinition"] - 24 -> 33 [style=dashed label="UsingPathDefinition"] - 24 -> 34 [style=dashed label="InvariantDefinition"] - 24 -> 35 [style=dashed label="ImportDefinition"] - 24 -> 36 [style=dashed label="StructureDefinition"] - 24 -> 37 [style=dashed label="Attributes"] - 24 -> 6 [style=dashed label="Attribute"] - 24 -> "24R1" [label="[\"end of file\"]", style=solid] - "24R1" [label="R1", fillcolor=3, shape=diamond, style=filled] - 25 [label="State 25\n\l 5 Definitions: AttributedDefinition •\l"] - 25 -> "25R5" [style=solid] - "25R5" [label="R5", fillcolor=3, shape=diamond, style=filled] - 26 [label="State 26\n\l 7 AttributedDefinition: Definition •\l"] - 26 -> "26R7" [style=solid] - "26R7" [label="R7", fillcolor=3, shape=diamond, style=filled] - 27 [label="State 27\n\l 9 Definition: InitDefinition •\l"] - 27 -> "27R9" [style=solid] - "27R9" [label="R9", fillcolor=3, shape=diamond, style=filled] - 28 [label="State 28\n\l 10 Definition: EnumerationDefinition •\l"] - 28 -> "28R10" [style=solid] - "28R10" [label="R10", fillcolor=3, shape=diamond, style=filled] - 29 [label="State 29\n\l 11 Definition: DerivedDefinition •\l"] - 29 -> "29R11" [style=solid] - "29R11" [label="R11", fillcolor=3, shape=diamond, style=filled] - 30 [label="State 30\n\l 12 Definition: RuleDefinition •\l"] - 30 -> "30R12" [style=solid] - "30R12" [label="R12", fillcolor=3, shape=diamond, style=filled] - 31 [label="State 31\n\l 13 Definition: FunctionDefinition •\l"] - 31 -> "31R13" [style=solid] - "31R13" [label="R13", fillcolor=3, shape=diamond, style=filled] - 32 [label="State 32\n\l 14 Definition: UsingDefinition •\l"] - 32 -> "32R14" [style=solid] - "32R14" [label="R14", fillcolor=3, shape=diamond, style=filled] - 33 [label="State 33\n\l 15 Definition: UsingPathDefinition •\l"] - 33 -> "33R15" [style=solid] - "33R15" [label="R15", fillcolor=3, shape=diamond, style=filled] - 34 [label="State 34\n\l 16 Definition: InvariantDefinition •\l"] - 34 -> "34R16" [style=solid] - "34R16" [label="R16", fillcolor=3, shape=diamond, style=filled] - 35 [label="State 35\n\l 17 Definition: ImportDefinition •\l"] - 35 -> "35R17" [style=solid] - "35R17" [label="R17", fillcolor=3, shape=diamond, style=filled] - 36 [label="State 36\n\l 18 Definition: StructureDefinition •\l"] - 36 -> "36R18" [style=solid] - "36R18" [label="R18", fillcolor=3, shape=diamond, style=filled] - 37 [label="State 37\n\l 6 AttributedDefinition: Attributes • Definition\l228 Attributes: Attributes • Attribute\l"] - 37 -> 15 [style=solid label="\"init\""] - 37 -> 16 [style=solid label="\"derived\""] - 37 -> 17 [style=solid label="\"enumeration\""] - 37 -> 18 [style=solid label="\"rule\""] - 37 -> 19 [style=solid label="\"using\""] - 37 -> 20 [style=solid label="\"invariant\""] - 37 -> 21 [style=solid label="\"import\""] - 37 -> 22 [style=solid label="\"structure\""] - 37 -> 23 [style=solid label="\"function\""] - 37 -> 2 [style=solid label="\"[\""] - 37 -> 106 [style=dashed label="Definition"] - 37 -> 27 [style=dashed label="InitDefinition"] - 37 -> 28 [style=dashed label="EnumerationDefinition"] - 37 -> 29 [style=dashed label="DerivedDefinition"] - 37 -> 30 [style=dashed label="RuleDefinition"] - 37 -> 31 [style=dashed label="FunctionDefinition"] - 37 -> 32 [style=dashed label="UsingDefinition"] - 37 -> 33 [style=dashed label="UsingPathDefinition"] - 37 -> 34 [style=dashed label="InvariantDefinition"] - 37 -> 35 [style=dashed label="ImportDefinition"] - 37 -> 36 [style=dashed label="StructureDefinition"] - 37 -> 39 [style=dashed label="Attribute"] - 38 [label="State 38\n\l 2 Header: Attributes \"CASM\" •\l"] - 38 -> "38R2" [style=solid] - "38R2" [label="R2", fillcolor=3, shape=diamond, style=filled] - 39 [label="State 39\n\l228 Attributes: Attributes Attribute •\l"] - 39 -> "39R228" [style=solid] - "39R228" [label="R228", fillcolor=3, shape=diamond, style=filled] - 40 [label="State 40\n\l232 Attribute: \"[\" error \"]\" •\l"] - 40 -> "40R232" [style=solid] - "40R232" [label="R232", fillcolor=3, shape=diamond, style=filled] - 41 [label="State 41\n\l138 LetExpression: \"let\" • VariableBindings \"in\" Term\l"] - 41 -> 8 [style=solid label="\"in\""] + 23 -> 108 [style=dashed label="Identifier"] + 24 [label="State 24\n\l 52 ImplementationDefinition: \"implements\" • IdentifierPath \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l 53 | \"implements\" • Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 24 -> 8 [style=solid label="\"in\""] + 24 -> 109 [style=solid label="\"(\""] + 24 -> 9 [style=solid label="\"identifier\""] + 24 -> 110 [style=dashed label="Type"] + 24 -> 111 [style=dashed label="BasicType"] + 24 -> 112 [style=dashed label="TupleType"] + 24 -> 113 [style=dashed label="RecordType"] + 24 -> 114 [style=dashed label="TemplateType"] + 24 -> 115 [style=dashed label="RelationType"] + 24 -> 116 [style=dashed label="FixedSizedType"] + 24 -> 94 [style=dashed label="Identifier"] + 24 -> 117 [style=dashed label="IdentifierPath"] + 25 [label="State 25\n\l 33 FunctionDefinition: \"function\" • Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] + 25 -> 8 [style=solid label="\"in\""] + 25 -> 9 [style=solid label="\"identifier\""] + 25 -> 118 [style=dashed label="Identifier"] + 26 [label="State 26\n\l 1 Specification: Header Definitions •\l 4 Definitions: Definitions • AttributedDefinition\l"] + 26 -> 14 [style=dotted] + 26 -> 15 [style=solid label="\"init\""] + 26 -> 16 [style=solid label="\"derived\""] + 26 -> 17 [style=solid label="\"enumeration\""] + 26 -> 18 [style=solid label="\"rule\""] + 26 -> 19 [style=solid label="\"using\""] + 26 -> 20 [style=solid label="\"invariant\""] + 26 -> 21 [style=solid label="\"import\""] + 26 -> 22 [style=solid label="\"structure\""] + 26 -> 23 [style=solid label="\"feature\""] + 26 -> 24 [style=solid label="\"implements\""] + 26 -> 25 [style=solid label="\"function\""] + 26 -> 2 [style=solid label="\"[\""] + 26 -> 119 [style=dashed label="AttributedDefinition"] + 26 -> 28 [style=dashed label="Definition"] + 26 -> 29 [style=dashed label="InitDefinition"] + 26 -> 30 [style=dashed label="EnumerationDefinition"] + 26 -> 31 [style=dashed label="DerivedDefinition"] + 26 -> 32 [style=dashed label="RuleDefinition"] + 26 -> 33 [style=dashed label="FunctionDefinition"] + 26 -> 34 [style=dashed label="UsingDefinition"] + 26 -> 35 [style=dashed label="UsingPathDefinition"] + 26 -> 36 [style=dashed label="InvariantDefinition"] + 26 -> 37 [style=dashed label="ImportDefinition"] + 26 -> 38 [style=dashed label="StructureDefinition"] + 26 -> 39 [style=dashed label="FeatureDefinition"] + 26 -> 40 [style=dashed label="ImplementationDefinition"] + 26 -> 41 [style=dashed label="Attributes"] + 26 -> 6 [style=dashed label="Attribute"] + 26 -> "26R1" [label="[\"end of file\"]", style=solid] + "26R1" [label="R1", fillcolor=3, shape=diamond, style=filled] + 27 [label="State 27\n\l 5 Definitions: AttributedDefinition •\l"] + 27 -> "27R5" [style=solid] + "27R5" [label="R5", fillcolor=3, shape=diamond, style=filled] + 28 [label="State 28\n\l 7 AttributedDefinition: Definition •\l"] + 28 -> "28R7" [style=solid] + "28R7" [label="R7", fillcolor=3, shape=diamond, style=filled] + 29 [label="State 29\n\l 9 Definition: InitDefinition •\l"] + 29 -> "29R9" [style=solid] + "29R9" [label="R9", fillcolor=3, shape=diamond, style=filled] + 30 [label="State 30\n\l 10 Definition: EnumerationDefinition •\l"] + 30 -> "30R10" [style=solid] + "30R10" [label="R10", fillcolor=3, shape=diamond, style=filled] + 31 [label="State 31\n\l 11 Definition: DerivedDefinition •\l"] + 31 -> "31R11" [style=solid] + "31R11" [label="R11", fillcolor=3, shape=diamond, style=filled] + 32 [label="State 32\n\l 12 Definition: RuleDefinition •\l"] + 32 -> "32R12" [style=solid] + "32R12" [label="R12", fillcolor=3, shape=diamond, style=filled] + 33 [label="State 33\n\l 13 Definition: FunctionDefinition •\l"] + 33 -> "33R13" [style=solid] + "33R13" [label="R13", fillcolor=3, shape=diamond, style=filled] + 34 [label="State 34\n\l 14 Definition: UsingDefinition •\l"] + 34 -> "34R14" [style=solid] + "34R14" [label="R14", fillcolor=3, shape=diamond, style=filled] + 35 [label="State 35\n\l 15 Definition: UsingPathDefinition •\l"] + 35 -> "35R15" [style=solid] + "35R15" [label="R15", fillcolor=3, shape=diamond, style=filled] + 36 [label="State 36\n\l 16 Definition: InvariantDefinition •\l"] + 36 -> "36R16" [style=solid] + "36R16" [label="R16", fillcolor=3, shape=diamond, style=filled] + 37 [label="State 37\n\l 17 Definition: ImportDefinition •\l"] + 37 -> "37R17" [style=solid] + "37R17" [label="R17", fillcolor=3, shape=diamond, style=filled] + 38 [label="State 38\n\l 18 Definition: StructureDefinition •\l"] + 38 -> "38R18" [style=solid] + "38R18" [label="R18", fillcolor=3, shape=diamond, style=filled] + 39 [label="State 39\n\l 19 Definition: FeatureDefinition •\l"] + 39 -> "39R19" [style=solid] + "39R19" [label="R19", fillcolor=3, shape=diamond, style=filled] + 40 [label="State 40\n\l 20 Definition: ImplementationDefinition •\l"] + 40 -> "40R20" [style=solid] + "40R20" [label="R20", fillcolor=3, shape=diamond, style=filled] + 41 [label="State 41\n\l 6 AttributedDefinition: Attributes • Definition\l244 Attributes: Attributes • Attribute\l"] + 41 -> 15 [style=solid label="\"init\""] + 41 -> 16 [style=solid label="\"derived\""] + 41 -> 17 [style=solid label="\"enumeration\""] + 41 -> 18 [style=solid label="\"rule\""] + 41 -> 19 [style=solid label="\"using\""] + 41 -> 20 [style=solid label="\"invariant\""] + 41 -> 21 [style=solid label="\"import\""] + 41 -> 22 [style=solid label="\"structure\""] + 41 -> 23 [style=solid label="\"feature\""] + 41 -> 24 [style=solid label="\"implements\""] + 41 -> 25 [style=solid label="\"function\""] 41 -> 2 [style=solid label="\"[\""] - 41 -> 9 [style=solid label="\"identifier\""] - 41 -> 107 [style=dashed label="Identifier"] - 41 -> 108 [style=dashed label="Variable"] - 41 -> 109 [style=dashed label="TypedVariable"] - 41 -> 110 [style=dashed label="AttributedVariable"] - 41 -> 111 [style=dashed label="VariableBindings"] - 41 -> 112 [style=dashed label="VariableBinding"] - 41 -> 113 [style=dashed label="Attributes"] - 41 -> 6 [style=dashed label="Attribute"] - 42 [label="State 42\n\l141 UniversalQuantifierExpression: \"forall\" • AttributedVariables \"in\" Term \"holds\" Term\l"] - 42 -> 8 [style=solid label="\"in\""] - 42 -> 2 [style=solid label="\"[\""] - 42 -> 9 [style=solid label="\"identifier\""] - 42 -> 107 [style=dashed label="Identifier"] - 42 -> 108 [style=dashed label="Variable"] - 42 -> 114 [style=dashed label="AttributedVariables"] - 42 -> 109 [style=dashed label="TypedVariable"] - 42 -> 115 [style=dashed label="AttributedVariable"] - 42 -> 113 [style=dashed label="Attributes"] - 42 -> 6 [style=dashed label="Attribute"] - 43 [label="State 43\n\l140 ChooseExpression: \"choose\" • AttributedVariables \"in\" Term \"do\" Term\l"] - 43 -> 8 [style=solid label="\"in\""] - 43 -> 2 [style=solid label="\"[\""] - 43 -> 9 [style=solid label="\"identifier\""] - 43 -> 107 [style=dashed label="Identifier"] - 43 -> 108 [style=dashed label="Variable"] - 43 -> 116 [style=dashed label="AttributedVariables"] - 43 -> 109 [style=dashed label="TypedVariable"] - 43 -> 115 [style=dashed label="AttributedVariable"] - 43 -> 113 [style=dashed label="Attributes"] - 43 -> 6 [style=dashed label="Attribute"] - 44 [label="State 44\n\l139 ConditionalExpression: \"if\" • Term \"then\" Term \"else\" Term\l"] - 44 -> 41 [style=solid label="\"let\""] - 44 -> 8 [style=solid label="\"in\""] - 44 -> 42 [style=solid label="\"forall\""] - 44 -> 43 [style=solid label="\"choose\""] - 44 -> 44 [style=solid label="\"if\""] - 44 -> 45 [style=solid label="\"exists\""] - 44 -> 46 [style=solid label="\"undef\""] - 44 -> 47 [style=solid label="\"false\""] - 44 -> 48 [style=solid label="\"true\""] - 44 -> 49 [style=solid label="\"not\""] - 44 -> 50 [style=solid label="\"+\""] - 44 -> 51 [style=solid label="\"-\""] - 44 -> 52 [style=solid label="\"(\""] - 44 -> 53 [style=solid label="\"[\""] - 44 -> 54 [style=solid label="\"|\""] - 44 -> 55 [style=solid label="\"@\""] - 44 -> 56 [style=solid label="\"binary\""] - 44 -> 57 [style=solid label="\"hexadecimal\""] - 44 -> 58 [style=solid label="\"integer\""] - 44 -> 59 [style=solid label="\"rational\""] - 44 -> 60 [style=solid label="\"decimal\""] - 44 -> 61 [style=solid label="\"string\""] - 44 -> 9 [style=solid label="\"identifier\""] - 44 -> 117 [style=dashed label="Term"] - 44 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 44 -> 64 [style=dashed label="OperatorExpression"] - 44 -> 65 [style=dashed label="CallExpression"] - 44 -> 66 [style=dashed label="DirectCallExpression"] - 44 -> 67 [style=dashed label="MethodCallExpression"] - 44 -> 68 [style=dashed label="LiteralCallExpression"] - 44 -> 69 [style=dashed label="IndirectCallExpression"] - 44 -> 70 [style=dashed label="TypeCastingExpression"] - 44 -> 71 [style=dashed label="LetExpression"] - 44 -> 72 [style=dashed label="ConditionalExpression"] - 44 -> 73 [style=dashed label="ChooseExpression"] - 44 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 44 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 44 -> 76 [style=dashed label="CardinalityExpression"] - 44 -> 77 [style=dashed label="Literal"] - 44 -> 78 [style=dashed label="UndefinedLiteral"] - 44 -> 79 [style=dashed label="BooleanLiteral"] - 44 -> 80 [style=dashed label="IntegerLiteral"] - 44 -> 81 [style=dashed label="RationalLiteral"] - 44 -> 82 [style=dashed label="DecimalLiteral"] - 44 -> 83 [style=dashed label="BinaryLiteral"] - 44 -> 84 [style=dashed label="StringLiteral"] - 44 -> 85 [style=dashed label="ReferenceLiteral"] - 44 -> 86 [style=dashed label="ListLiteral"] - 44 -> 87 [style=dashed label="RangeLiteral"] - 44 -> 88 [style=dashed label="TupleLiteral"] - 44 -> 89 [style=dashed label="RecordLiteral"] - 44 -> 90 [style=dashed label="Identifier"] - 44 -> 91 [style=dashed label="IdentifierPath"] - 45 [label="State 45\n\l142 ExistentialQuantifierExpression: \"exists\" • AttributedVariables \"in\" Term \"with\" Term\l"] + 41 -> 120 [style=dashed label="Definition"] + 41 -> 29 [style=dashed label="InitDefinition"] + 41 -> 30 [style=dashed label="EnumerationDefinition"] + 41 -> 31 [style=dashed label="DerivedDefinition"] + 41 -> 32 [style=dashed label="RuleDefinition"] + 41 -> 33 [style=dashed label="FunctionDefinition"] + 41 -> 34 [style=dashed label="UsingDefinition"] + 41 -> 35 [style=dashed label="UsingPathDefinition"] + 41 -> 36 [style=dashed label="InvariantDefinition"] + 41 -> 37 [style=dashed label="ImportDefinition"] + 41 -> 38 [style=dashed label="StructureDefinition"] + 41 -> 39 [style=dashed label="FeatureDefinition"] + 41 -> 40 [style=dashed label="ImplementationDefinition"] + 41 -> 43 [style=dashed label="Attribute"] + 42 [label="State 42\n\l 2 Header: Attributes \"CASM\" •\l"] + 42 -> "42R2" [style=solid] + "42R2" [label="R2", fillcolor=3, shape=diamond, style=filled] + 43 [label="State 43\n\l244 Attributes: Attributes Attribute •\l"] + 43 -> "43R244" [style=solid] + "43R244" [label="R244", fillcolor=3, shape=diamond, style=filled] + 44 [label="State 44\n\l248 Attribute: \"[\" error \"]\" •\l"] + 44 -> "44R248" [style=solid] + "44R248" [label="R248", fillcolor=3, shape=diamond, style=filled] + 45 [label="State 45\n\l154 LetExpression: \"let\" • VariableBindings \"in\" Term\l"] 45 -> 8 [style=solid label="\"in\""] 45 -> 2 [style=solid label="\"[\""] 45 -> 9 [style=solid label="\"identifier\""] - 45 -> 107 [style=dashed label="Identifier"] - 45 -> 108 [style=dashed label="Variable"] - 45 -> 118 [style=dashed label="AttributedVariables"] - 45 -> 109 [style=dashed label="TypedVariable"] - 45 -> 115 [style=dashed label="AttributedVariable"] - 45 -> 113 [style=dashed label="Attributes"] + 45 -> 121 [style=dashed label="Identifier"] + 45 -> 122 [style=dashed label="Variable"] + 45 -> 123 [style=dashed label="TypedVariable"] + 45 -> 124 [style=dashed label="AttributedVariable"] + 45 -> 125 [style=dashed label="VariableBindings"] + 45 -> 126 [style=dashed label="VariableBinding"] + 45 -> 127 [style=dashed label="Attributes"] 45 -> 6 [style=dashed label="Attribute"] - 46 [label="State 46\n\l156 UndefinedLiteral: \"undef\" •\l"] - 46 -> "46R156" [style=solid] - "46R156" [label="R156", fillcolor=3, shape=diamond, style=filled] - 47 [label="State 47\n\l158 BooleanLiteral: \"false\" •\l"] - 47 -> "47R158" [style=solid] - "47R158" [label="R158", fillcolor=3, shape=diamond, style=filled] - 48 [label="State 48\n\l157 BooleanLiteral: \"true\" •\l"] - 48 -> "48R157" [style=solid] - "48R157" [label="R157", fillcolor=3, shape=diamond, style=filled] - 49 [label="State 49\n\l121 OperatorExpression: \"not\" • Term\l"] - 49 -> 41 [style=solid label="\"let\""] + 46 [label="State 46\n\l157 UniversalQuantifierExpression: \"forall\" • AttributedVariables \"in\" Term \"holds\" Term\l"] + 46 -> 8 [style=solid label="\"in\""] + 46 -> 2 [style=solid label="\"[\""] + 46 -> 9 [style=solid label="\"identifier\""] + 46 -> 121 [style=dashed label="Identifier"] + 46 -> 122 [style=dashed label="Variable"] + 46 -> 128 [style=dashed label="AttributedVariables"] + 46 -> 123 [style=dashed label="TypedVariable"] + 46 -> 129 [style=dashed label="AttributedVariable"] + 46 -> 127 [style=dashed label="Attributes"] + 46 -> 6 [style=dashed label="Attribute"] + 47 [label="State 47\n\l156 ChooseExpression: \"choose\" • AttributedVariables \"in\" Term \"do\" Term\l"] + 47 -> 8 [style=solid label="\"in\""] + 47 -> 2 [style=solid label="\"[\""] + 47 -> 9 [style=solid label="\"identifier\""] + 47 -> 121 [style=dashed label="Identifier"] + 47 -> 122 [style=dashed label="Variable"] + 47 -> 130 [style=dashed label="AttributedVariables"] + 47 -> 123 [style=dashed label="TypedVariable"] + 47 -> 129 [style=dashed label="AttributedVariable"] + 47 -> 127 [style=dashed label="Attributes"] + 47 -> 6 [style=dashed label="Attribute"] + 48 [label="State 48\n\l155 ConditionalExpression: \"if\" • Term \"then\" Term \"else\" Term\l"] + 48 -> 45 [style=solid label="\"let\""] + 48 -> 8 [style=solid label="\"in\""] + 48 -> 46 [style=solid label="\"forall\""] + 48 -> 47 [style=solid label="\"choose\""] + 48 -> 48 [style=solid label="\"if\""] + 48 -> 49 [style=solid label="\"exists\""] + 48 -> 50 [style=solid label="\"undef\""] + 48 -> 51 [style=solid label="\"false\""] + 48 -> 52 [style=solid label="\"true\""] + 48 -> 53 [style=solid label="\"not\""] + 48 -> 54 [style=solid label="\"+\""] + 48 -> 55 [style=solid label="\"-\""] + 48 -> 56 [style=solid label="\"(\""] + 48 -> 57 [style=solid label="\"[\""] + 48 -> 58 [style=solid label="\"|\""] + 48 -> 59 [style=solid label="\"@\""] + 48 -> 60 [style=solid label="\"binary\""] + 48 -> 61 [style=solid label="\"hexadecimal\""] + 48 -> 62 [style=solid label="\"integer\""] + 48 -> 63 [style=solid label="\"rational\""] + 48 -> 64 [style=solid label="\"decimal\""] + 48 -> 65 [style=solid label="\"string\""] + 48 -> 9 [style=solid label="\"identifier\""] + 48 -> 131 [style=dashed label="Term"] + 48 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 48 -> 68 [style=dashed label="OperatorExpression"] + 48 -> 69 [style=dashed label="CallExpression"] + 48 -> 70 [style=dashed label="DirectCallExpression"] + 48 -> 71 [style=dashed label="MethodCallExpression"] + 48 -> 72 [style=dashed label="LiteralCallExpression"] + 48 -> 73 [style=dashed label="IndirectCallExpression"] + 48 -> 74 [style=dashed label="TypeCastingExpression"] + 48 -> 75 [style=dashed label="LetExpression"] + 48 -> 76 [style=dashed label="ConditionalExpression"] + 48 -> 77 [style=dashed label="ChooseExpression"] + 48 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 48 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 48 -> 80 [style=dashed label="CardinalityExpression"] + 48 -> 81 [style=dashed label="Literal"] + 48 -> 82 [style=dashed label="UndefinedLiteral"] + 48 -> 83 [style=dashed label="BooleanLiteral"] + 48 -> 84 [style=dashed label="IntegerLiteral"] + 48 -> 85 [style=dashed label="RationalLiteral"] + 48 -> 86 [style=dashed label="DecimalLiteral"] + 48 -> 87 [style=dashed label="BinaryLiteral"] + 48 -> 88 [style=dashed label="StringLiteral"] + 48 -> 89 [style=dashed label="ReferenceLiteral"] + 48 -> 90 [style=dashed label="ListLiteral"] + 48 -> 91 [style=dashed label="RangeLiteral"] + 48 -> 92 [style=dashed label="TupleLiteral"] + 48 -> 93 [style=dashed label="RecordLiteral"] + 48 -> 94 [style=dashed label="Identifier"] + 48 -> 95 [style=dashed label="IdentifierPath"] + 49 [label="State 49\n\l158 ExistentialQuantifierExpression: \"exists\" • AttributedVariables \"in\" Term \"with\" Term\l"] 49 -> 8 [style=solid label="\"in\""] - 49 -> 42 [style=solid label="\"forall\""] - 49 -> 43 [style=solid label="\"choose\""] - 49 -> 44 [style=solid label="\"if\""] - 49 -> 45 [style=solid label="\"exists\""] - 49 -> 46 [style=solid label="\"undef\""] - 49 -> 47 [style=solid label="\"false\""] - 49 -> 48 [style=solid label="\"true\""] - 49 -> 49 [style=solid label="\"not\""] - 49 -> 50 [style=solid label="\"+\""] - 49 -> 51 [style=solid label="\"-\""] - 49 -> 52 [style=solid label="\"(\""] - 49 -> 53 [style=solid label="\"[\""] - 49 -> 54 [style=solid label="\"|\""] - 49 -> 55 [style=solid label="\"@\""] - 49 -> 56 [style=solid label="\"binary\""] - 49 -> 57 [style=solid label="\"hexadecimal\""] - 49 -> 58 [style=solid label="\"integer\""] - 49 -> 59 [style=solid label="\"rational\""] - 49 -> 60 [style=solid label="\"decimal\""] - 49 -> 61 [style=solid label="\"string\""] + 49 -> 2 [style=solid label="\"[\""] 49 -> 9 [style=solid label="\"identifier\""] - 49 -> 119 [style=dashed label="Term"] - 49 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 49 -> 64 [style=dashed label="OperatorExpression"] - 49 -> 65 [style=dashed label="CallExpression"] - 49 -> 66 [style=dashed label="DirectCallExpression"] - 49 -> 67 [style=dashed label="MethodCallExpression"] - 49 -> 68 [style=dashed label="LiteralCallExpression"] - 49 -> 69 [style=dashed label="IndirectCallExpression"] - 49 -> 70 [style=dashed label="TypeCastingExpression"] - 49 -> 71 [style=dashed label="LetExpression"] - 49 -> 72 [style=dashed label="ConditionalExpression"] - 49 -> 73 [style=dashed label="ChooseExpression"] - 49 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 49 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 49 -> 76 [style=dashed label="CardinalityExpression"] - 49 -> 77 [style=dashed label="Literal"] - 49 -> 78 [style=dashed label="UndefinedLiteral"] - 49 -> 79 [style=dashed label="BooleanLiteral"] - 49 -> 80 [style=dashed label="IntegerLiteral"] - 49 -> 81 [style=dashed label="RationalLiteral"] - 49 -> 82 [style=dashed label="DecimalLiteral"] - 49 -> 83 [style=dashed label="BinaryLiteral"] - 49 -> 84 [style=dashed label="StringLiteral"] - 49 -> 85 [style=dashed label="ReferenceLiteral"] - 49 -> 86 [style=dashed label="ListLiteral"] - 49 -> 87 [style=dashed label="RangeLiteral"] - 49 -> 88 [style=dashed label="TupleLiteral"] - 49 -> 89 [style=dashed label="RecordLiteral"] - 49 -> 90 [style=dashed label="Identifier"] - 49 -> 91 [style=dashed label="IdentifierPath"] - 50 [label="State 50\n\l102 SimpleOrClaspedTerm: \"+\" • SimpleOrClaspedTerm\l"] - 50 -> 8 [style=solid label="\"in\""] - 50 -> 46 [style=solid label="\"undef\""] - 50 -> 47 [style=solid label="\"false\""] - 50 -> 48 [style=solid label="\"true\""] - 50 -> 50 [style=solid label="\"+\""] - 50 -> 51 [style=solid label="\"-\""] - 50 -> 52 [style=solid label="\"(\""] - 50 -> 53 [style=solid label="\"[\""] - 50 -> 55 [style=solid label="\"@\""] - 50 -> 56 [style=solid label="\"binary\""] - 50 -> 57 [style=solid label="\"hexadecimal\""] - 50 -> 58 [style=solid label="\"integer\""] - 50 -> 59 [style=solid label="\"rational\""] - 50 -> 60 [style=solid label="\"decimal\""] - 50 -> 61 [style=solid label="\"string\""] - 50 -> 9 [style=solid label="\"identifier\""] - 50 -> 120 [style=dashed label="SimpleOrClaspedTerm"] - 50 -> 65 [style=dashed label="CallExpression"] - 50 -> 66 [style=dashed label="DirectCallExpression"] - 50 -> 67 [style=dashed label="MethodCallExpression"] - 50 -> 68 [style=dashed label="LiteralCallExpression"] - 50 -> 69 [style=dashed label="IndirectCallExpression"] - 50 -> 77 [style=dashed label="Literal"] - 50 -> 78 [style=dashed label="UndefinedLiteral"] - 50 -> 79 [style=dashed label="BooleanLiteral"] - 50 -> 80 [style=dashed label="IntegerLiteral"] - 50 -> 81 [style=dashed label="RationalLiteral"] - 50 -> 82 [style=dashed label="DecimalLiteral"] - 50 -> 83 [style=dashed label="BinaryLiteral"] - 50 -> 84 [style=dashed label="StringLiteral"] - 50 -> 85 [style=dashed label="ReferenceLiteral"] - 50 -> 86 [style=dashed label="ListLiteral"] - 50 -> 87 [style=dashed label="RangeLiteral"] - 50 -> 88 [style=dashed label="TupleLiteral"] - 50 -> 89 [style=dashed label="RecordLiteral"] - 50 -> 90 [style=dashed label="Identifier"] - 50 -> 91 [style=dashed label="IdentifierPath"] - 51 [label="State 51\n\l103 SimpleOrClaspedTerm: \"-\" • SimpleOrClaspedTerm\l"] - 51 -> 8 [style=solid label="\"in\""] - 51 -> 46 [style=solid label="\"undef\""] - 51 -> 47 [style=solid label="\"false\""] - 51 -> 48 [style=solid label="\"true\""] - 51 -> 50 [style=solid label="\"+\""] - 51 -> 51 [style=solid label="\"-\""] - 51 -> 52 [style=solid label="\"(\""] - 51 -> 53 [style=solid label="\"[\""] - 51 -> 55 [style=solid label="\"@\""] - 51 -> 56 [style=solid label="\"binary\""] - 51 -> 57 [style=solid label="\"hexadecimal\""] - 51 -> 58 [style=solid label="\"integer\""] - 51 -> 59 [style=solid label="\"rational\""] - 51 -> 60 [style=solid label="\"decimal\""] - 51 -> 61 [style=solid label="\"string\""] - 51 -> 9 [style=solid label="\"identifier\""] - 51 -> 121 [style=dashed label="SimpleOrClaspedTerm"] - 51 -> 65 [style=dashed label="CallExpression"] - 51 -> 66 [style=dashed label="DirectCallExpression"] - 51 -> 67 [style=dashed label="MethodCallExpression"] - 51 -> 68 [style=dashed label="LiteralCallExpression"] - 51 -> 69 [style=dashed label="IndirectCallExpression"] - 51 -> 77 [style=dashed label="Literal"] - 51 -> 78 [style=dashed label="UndefinedLiteral"] - 51 -> 79 [style=dashed label="BooleanLiteral"] - 51 -> 80 [style=dashed label="IntegerLiteral"] - 51 -> 81 [style=dashed label="RationalLiteral"] - 51 -> 82 [style=dashed label="DecimalLiteral"] - 51 -> 83 [style=dashed label="BinaryLiteral"] - 51 -> 84 [style=dashed label="StringLiteral"] - 51 -> 85 [style=dashed label="ReferenceLiteral"] - 51 -> 86 [style=dashed label="ListLiteral"] - 51 -> 87 [style=dashed label="RangeLiteral"] - 51 -> 88 [style=dashed label="TupleLiteral"] - 51 -> 89 [style=dashed label="RecordLiteral"] - 51 -> 90 [style=dashed label="Identifier"] - 51 -> 91 [style=dashed label="IdentifierPath"] - 52 [label="State 52\n\l 97 SimpleOrClaspedTerm: \"(\" • Term \")\"\l 98 | \"(\" • error \")\"\l170 TupleLiteral: \"(\" • Terms \",\" Term \")\"\l171 RecordLiteral: \"(\" • Assignments \")\"\l"] - 52 -> 122 [style=dotted] - 52 -> 41 [style=solid label="\"let\""] - 52 -> 8 [style=solid label="\"in\""] - 52 -> 42 [style=solid label="\"forall\""] - 52 -> 43 [style=solid label="\"choose\""] - 52 -> 44 [style=solid label="\"if\""] - 52 -> 45 [style=solid label="\"exists\""] - 52 -> 46 [style=solid label="\"undef\""] - 52 -> 47 [style=solid label="\"false\""] - 52 -> 48 [style=solid label="\"true\""] - 52 -> 49 [style=solid label="\"not\""] - 52 -> 50 [style=solid label="\"+\""] - 52 -> 51 [style=solid label="\"-\""] - 52 -> 52 [style=solid label="\"(\""] - 52 -> 53 [style=solid label="\"[\""] - 52 -> 54 [style=solid label="\"|\""] - 52 -> 55 [style=solid label="\"@\""] - 52 -> 56 [style=solid label="\"binary\""] - 52 -> 57 [style=solid label="\"hexadecimal\""] - 52 -> 58 [style=solid label="\"integer\""] - 52 -> 59 [style=solid label="\"rational\""] - 52 -> 60 [style=solid label="\"decimal\""] - 52 -> 61 [style=solid label="\"string\""] - 52 -> 9 [style=solid label="\"identifier\""] - 52 -> 123 [style=dashed label="Terms"] - 52 -> 124 [style=dashed label="Term"] - 52 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 52 -> 64 [style=dashed label="OperatorExpression"] - 52 -> 65 [style=dashed label="CallExpression"] - 52 -> 66 [style=dashed label="DirectCallExpression"] - 52 -> 67 [style=dashed label="MethodCallExpression"] - 52 -> 68 [style=dashed label="LiteralCallExpression"] - 52 -> 69 [style=dashed label="IndirectCallExpression"] - 52 -> 70 [style=dashed label="TypeCastingExpression"] - 52 -> 71 [style=dashed label="LetExpression"] - 52 -> 72 [style=dashed label="ConditionalExpression"] - 52 -> 73 [style=dashed label="ChooseExpression"] - 52 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 52 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 52 -> 76 [style=dashed label="CardinalityExpression"] - 52 -> 77 [style=dashed label="Literal"] - 52 -> 78 [style=dashed label="UndefinedLiteral"] - 52 -> 79 [style=dashed label="BooleanLiteral"] - 52 -> 80 [style=dashed label="IntegerLiteral"] - 52 -> 81 [style=dashed label="RationalLiteral"] - 52 -> 82 [style=dashed label="DecimalLiteral"] - 52 -> 83 [style=dashed label="BinaryLiteral"] - 52 -> 84 [style=dashed label="StringLiteral"] - 52 -> 85 [style=dashed label="ReferenceLiteral"] - 52 -> 86 [style=dashed label="ListLiteral"] - 52 -> 87 [style=dashed label="RangeLiteral"] - 52 -> 88 [style=dashed label="TupleLiteral"] - 52 -> 89 [style=dashed label="RecordLiteral"] - 52 -> 125 [style=dashed label="Assignments"] - 52 -> 126 [style=dashed label="Assignment"] - 52 -> 127 [style=dashed label="Identifier"] - 52 -> 91 [style=dashed label="IdentifierPath"] - 53 [label="State 53\n\l166 ListLiteral: \"[\" • \"]\"\l167 | \"[\" • Terms \"]\"\l168 | \"[\" • error \"]\"\l169 RangeLiteral: \"[\" • Term \"..\" Term \"]\"\l"] - 53 -> 128 [style=dotted] - 53 -> 41 [style=solid label="\"let\""] + 49 -> 121 [style=dashed label="Identifier"] + 49 -> 122 [style=dashed label="Variable"] + 49 -> 132 [style=dashed label="AttributedVariables"] + 49 -> 123 [style=dashed label="TypedVariable"] + 49 -> 129 [style=dashed label="AttributedVariable"] + 49 -> 127 [style=dashed label="Attributes"] + 49 -> 6 [style=dashed label="Attribute"] + 50 [label="State 50\n\l172 UndefinedLiteral: \"undef\" •\l"] + 50 -> "50R172" [style=solid] + "50R172" [label="R172", fillcolor=3, shape=diamond, style=filled] + 51 [label="State 51\n\l174 BooleanLiteral: \"false\" •\l"] + 51 -> "51R174" [style=solid] + "51R174" [label="R174", fillcolor=3, shape=diamond, style=filled] + 52 [label="State 52\n\l173 BooleanLiteral: \"true\" •\l"] + 52 -> "52R173" [style=solid] + "52R173" [label="R173", fillcolor=3, shape=diamond, style=filled] + 53 [label="State 53\n\l137 OperatorExpression: \"not\" • Term\l"] + 53 -> 45 [style=solid label="\"let\""] 53 -> 8 [style=solid label="\"in\""] - 53 -> 42 [style=solid label="\"forall\""] - 53 -> 43 [style=solid label="\"choose\""] - 53 -> 44 [style=solid label="\"if\""] - 53 -> 45 [style=solid label="\"exists\""] - 53 -> 46 [style=solid label="\"undef\""] - 53 -> 47 [style=solid label="\"false\""] - 53 -> 48 [style=solid label="\"true\""] - 53 -> 49 [style=solid label="\"not\""] - 53 -> 50 [style=solid label="\"+\""] - 53 -> 51 [style=solid label="\"-\""] - 53 -> 52 [style=solid label="\"(\""] - 53 -> 53 [style=solid label="\"[\""] - 53 -> 129 [style=solid label="\"]\""] - 53 -> 54 [style=solid label="\"|\""] - 53 -> 55 [style=solid label="\"@\""] - 53 -> 56 [style=solid label="\"binary\""] - 53 -> 57 [style=solid label="\"hexadecimal\""] - 53 -> 58 [style=solid label="\"integer\""] - 53 -> 59 [style=solid label="\"rational\""] - 53 -> 60 [style=solid label="\"decimal\""] - 53 -> 61 [style=solid label="\"string\""] + 53 -> 46 [style=solid label="\"forall\""] + 53 -> 47 [style=solid label="\"choose\""] + 53 -> 48 [style=solid label="\"if\""] + 53 -> 49 [style=solid label="\"exists\""] + 53 -> 50 [style=solid label="\"undef\""] + 53 -> 51 [style=solid label="\"false\""] + 53 -> 52 [style=solid label="\"true\""] + 53 -> 53 [style=solid label="\"not\""] + 53 -> 54 [style=solid label="\"+\""] + 53 -> 55 [style=solid label="\"-\""] + 53 -> 56 [style=solid label="\"(\""] + 53 -> 57 [style=solid label="\"[\""] + 53 -> 58 [style=solid label="\"|\""] + 53 -> 59 [style=solid label="\"@\""] + 53 -> 60 [style=solid label="\"binary\""] + 53 -> 61 [style=solid label="\"hexadecimal\""] + 53 -> 62 [style=solid label="\"integer\""] + 53 -> 63 [style=solid label="\"rational\""] + 53 -> 64 [style=solid label="\"decimal\""] + 53 -> 65 [style=solid label="\"string\""] 53 -> 9 [style=solid label="\"identifier\""] - 53 -> 130 [style=dashed label="Terms"] - 53 -> 131 [style=dashed label="Term"] - 53 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 53 -> 64 [style=dashed label="OperatorExpression"] - 53 -> 65 [style=dashed label="CallExpression"] - 53 -> 66 [style=dashed label="DirectCallExpression"] - 53 -> 67 [style=dashed label="MethodCallExpression"] - 53 -> 68 [style=dashed label="LiteralCallExpression"] - 53 -> 69 [style=dashed label="IndirectCallExpression"] - 53 -> 70 [style=dashed label="TypeCastingExpression"] - 53 -> 71 [style=dashed label="LetExpression"] - 53 -> 72 [style=dashed label="ConditionalExpression"] - 53 -> 73 [style=dashed label="ChooseExpression"] - 53 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 53 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 53 -> 76 [style=dashed label="CardinalityExpression"] - 53 -> 77 [style=dashed label="Literal"] - 53 -> 78 [style=dashed label="UndefinedLiteral"] - 53 -> 79 [style=dashed label="BooleanLiteral"] - 53 -> 80 [style=dashed label="IntegerLiteral"] - 53 -> 81 [style=dashed label="RationalLiteral"] - 53 -> 82 [style=dashed label="DecimalLiteral"] - 53 -> 83 [style=dashed label="BinaryLiteral"] - 53 -> 84 [style=dashed label="StringLiteral"] - 53 -> 85 [style=dashed label="ReferenceLiteral"] - 53 -> 86 [style=dashed label="ListLiteral"] - 53 -> 87 [style=dashed label="RangeLiteral"] - 53 -> 88 [style=dashed label="TupleLiteral"] - 53 -> 89 [style=dashed label="RecordLiteral"] - 53 -> 90 [style=dashed label="Identifier"] - 53 -> 91 [style=dashed label="IdentifierPath"] - 54 [label="State 54\n\l143 CardinalityExpression: \"|\" • SimpleOrClaspedTerm \"|\"\l"] + 53 -> 133 [style=dashed label="Term"] + 53 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 53 -> 68 [style=dashed label="OperatorExpression"] + 53 -> 69 [style=dashed label="CallExpression"] + 53 -> 70 [style=dashed label="DirectCallExpression"] + 53 -> 71 [style=dashed label="MethodCallExpression"] + 53 -> 72 [style=dashed label="LiteralCallExpression"] + 53 -> 73 [style=dashed label="IndirectCallExpression"] + 53 -> 74 [style=dashed label="TypeCastingExpression"] + 53 -> 75 [style=dashed label="LetExpression"] + 53 -> 76 [style=dashed label="ConditionalExpression"] + 53 -> 77 [style=dashed label="ChooseExpression"] + 53 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 53 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 53 -> 80 [style=dashed label="CardinalityExpression"] + 53 -> 81 [style=dashed label="Literal"] + 53 -> 82 [style=dashed label="UndefinedLiteral"] + 53 -> 83 [style=dashed label="BooleanLiteral"] + 53 -> 84 [style=dashed label="IntegerLiteral"] + 53 -> 85 [style=dashed label="RationalLiteral"] + 53 -> 86 [style=dashed label="DecimalLiteral"] + 53 -> 87 [style=dashed label="BinaryLiteral"] + 53 -> 88 [style=dashed label="StringLiteral"] + 53 -> 89 [style=dashed label="ReferenceLiteral"] + 53 -> 90 [style=dashed label="ListLiteral"] + 53 -> 91 [style=dashed label="RangeLiteral"] + 53 -> 92 [style=dashed label="TupleLiteral"] + 53 -> 93 [style=dashed label="RecordLiteral"] + 53 -> 94 [style=dashed label="Identifier"] + 53 -> 95 [style=dashed label="IdentifierPath"] + 54 [label="State 54\n\l118 SimpleOrClaspedTerm: \"+\" • SimpleOrClaspedTerm\l"] 54 -> 8 [style=solid label="\"in\""] - 54 -> 46 [style=solid label="\"undef\""] - 54 -> 47 [style=solid label="\"false\""] - 54 -> 48 [style=solid label="\"true\""] - 54 -> 50 [style=solid label="\"+\""] - 54 -> 51 [style=solid label="\"-\""] - 54 -> 52 [style=solid label="\"(\""] - 54 -> 53 [style=solid label="\"[\""] - 54 -> 55 [style=solid label="\"@\""] - 54 -> 56 [style=solid label="\"binary\""] - 54 -> 57 [style=solid label="\"hexadecimal\""] - 54 -> 58 [style=solid label="\"integer\""] - 54 -> 59 [style=solid label="\"rational\""] - 54 -> 60 [style=solid label="\"decimal\""] - 54 -> 61 [style=solid label="\"string\""] + 54 -> 50 [style=solid label="\"undef\""] + 54 -> 51 [style=solid label="\"false\""] + 54 -> 52 [style=solid label="\"true\""] + 54 -> 54 [style=solid label="\"+\""] + 54 -> 55 [style=solid label="\"-\""] + 54 -> 56 [style=solid label="\"(\""] + 54 -> 57 [style=solid label="\"[\""] + 54 -> 59 [style=solid label="\"@\""] + 54 -> 60 [style=solid label="\"binary\""] + 54 -> 61 [style=solid label="\"hexadecimal\""] + 54 -> 62 [style=solid label="\"integer\""] + 54 -> 63 [style=solid label="\"rational\""] + 54 -> 64 [style=solid label="\"decimal\""] + 54 -> 65 [style=solid label="\"string\""] 54 -> 9 [style=solid label="\"identifier\""] - 54 -> 132 [style=dashed label="SimpleOrClaspedTerm"] - 54 -> 65 [style=dashed label="CallExpression"] - 54 -> 66 [style=dashed label="DirectCallExpression"] - 54 -> 67 [style=dashed label="MethodCallExpression"] - 54 -> 68 [style=dashed label="LiteralCallExpression"] - 54 -> 69 [style=dashed label="IndirectCallExpression"] - 54 -> 77 [style=dashed label="Literal"] - 54 -> 78 [style=dashed label="UndefinedLiteral"] - 54 -> 79 [style=dashed label="BooleanLiteral"] - 54 -> 80 [style=dashed label="IntegerLiteral"] - 54 -> 81 [style=dashed label="RationalLiteral"] - 54 -> 82 [style=dashed label="DecimalLiteral"] - 54 -> 83 [style=dashed label="BinaryLiteral"] - 54 -> 84 [style=dashed label="StringLiteral"] - 54 -> 85 [style=dashed label="ReferenceLiteral"] - 54 -> 86 [style=dashed label="ListLiteral"] - 54 -> 87 [style=dashed label="RangeLiteral"] - 54 -> 88 [style=dashed label="TupleLiteral"] - 54 -> 89 [style=dashed label="RecordLiteral"] - 54 -> 90 [style=dashed label="Identifier"] - 54 -> 91 [style=dashed label="IdentifierPath"] - 55 [label="State 55\n\l165 ReferenceLiteral: \"@\" • IdentifierPath\l"] + 54 -> 134 [style=dashed label="SimpleOrClaspedTerm"] + 54 -> 69 [style=dashed label="CallExpression"] + 54 -> 70 [style=dashed label="DirectCallExpression"] + 54 -> 71 [style=dashed label="MethodCallExpression"] + 54 -> 72 [style=dashed label="LiteralCallExpression"] + 54 -> 73 [style=dashed label="IndirectCallExpression"] + 54 -> 81 [style=dashed label="Literal"] + 54 -> 82 [style=dashed label="UndefinedLiteral"] + 54 -> 83 [style=dashed label="BooleanLiteral"] + 54 -> 84 [style=dashed label="IntegerLiteral"] + 54 -> 85 [style=dashed label="RationalLiteral"] + 54 -> 86 [style=dashed label="DecimalLiteral"] + 54 -> 87 [style=dashed label="BinaryLiteral"] + 54 -> 88 [style=dashed label="StringLiteral"] + 54 -> 89 [style=dashed label="ReferenceLiteral"] + 54 -> 90 [style=dashed label="ListLiteral"] + 54 -> 91 [style=dashed label="RangeLiteral"] + 54 -> 92 [style=dashed label="TupleLiteral"] + 54 -> 93 [style=dashed label="RecordLiteral"] + 54 -> 94 [style=dashed label="Identifier"] + 54 -> 95 [style=dashed label="IdentifierPath"] + 55 [label="State 55\n\l119 SimpleOrClaspedTerm: \"-\" • SimpleOrClaspedTerm\l"] 55 -> 8 [style=solid label="\"in\""] + 55 -> 50 [style=solid label="\"undef\""] + 55 -> 51 [style=solid label="\"false\""] + 55 -> 52 [style=solid label="\"true\""] + 55 -> 54 [style=solid label="\"+\""] + 55 -> 55 [style=solid label="\"-\""] + 55 -> 56 [style=solid label="\"(\""] + 55 -> 57 [style=solid label="\"[\""] + 55 -> 59 [style=solid label="\"@\""] + 55 -> 60 [style=solid label="\"binary\""] + 55 -> 61 [style=solid label="\"hexadecimal\""] + 55 -> 62 [style=solid label="\"integer\""] + 55 -> 63 [style=solid label="\"rational\""] + 55 -> 64 [style=solid label="\"decimal\""] + 55 -> 65 [style=solid label="\"string\""] 55 -> 9 [style=solid label="\"identifier\""] - 55 -> 90 [style=dashed label="Identifier"] - 55 -> 133 [style=dashed label="IdentifierPath"] - 56 [label="State 56\n\l162 BinaryLiteral: \"binary\" •\l"] - 56 -> "56R162" [style=solid] - "56R162" [label="R162", fillcolor=3, shape=diamond, style=filled] - 57 [label="State 57\n\l163 BinaryLiteral: \"hexadecimal\" •\l"] - 57 -> "57R163" [style=solid] - "57R163" [label="R163", fillcolor=3, shape=diamond, style=filled] - 58 [label="State 58\n\l159 IntegerLiteral: \"integer\" •\l"] - 58 -> "58R159" [style=solid] - "58R159" [label="R159", fillcolor=3, shape=diamond, style=filled] - 59 [label="State 59\n\l160 RationalLiteral: \"rational\" •\l"] - 59 -> "59R160" [style=solid] - "59R160" [label="R160", fillcolor=3, shape=diamond, style=filled] - 60 [label="State 60\n\l161 DecimalLiteral: \"decimal\" •\l"] - 60 -> "60R161" [style=solid] - "60R161" [label="R161", fillcolor=3, shape=diamond, style=filled] - 61 [label="State 61\n\l164 StringLiteral: \"string\" •\l"] - 61 -> "61R164" [style=solid] - "61R164" [label="R164", fillcolor=3, shape=diamond, style=filled] - 62 [label="State 62\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l234 ExpressionAttribute: Identifier Term •\l"] - 62 -> 134 [style=solid label="\"and\""] - 62 -> 135 [style=solid label="\"or\""] - 62 -> 136 [style=solid label="\"xor\""] - 62 -> 137 [style=solid label="\"implies\""] - 62 -> 138 [style=solid label="\"+\""] - 62 -> 139 [style=solid label="\"-\""] - 62 -> 140 [style=solid label="\"=\""] - 62 -> 141 [style=solid label="\"<\""] - 62 -> 142 [style=solid label="\">\""] - 62 -> 143 [style=solid label="\"*\""] - 62 -> 144 [style=solid label="\"/\""] - 62 -> 145 [style=solid label="\"%\""] - 62 -> 146 [style=solid label="\"^\""] - 62 -> 147 [style=solid label="\"=>\""] - 62 -> 148 [style=solid label="\"!=\""] - 62 -> 149 [style=solid label="\"<=\""] - 62 -> 150 [style=solid label="\">=\""] - 62 -> "62R234" [style=solid] - "62R234" [label="R234", fillcolor=3, shape=diamond, style=filled] - 63 [label="State 63\n\l 88 Term: SimpleOrClaspedTerm •\l129 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l130 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l131 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l132 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l133 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l137 TypeCastingExpression: SimpleOrClaspedTerm • \"as\" Type\l"] - 63 -> 151 [style=solid label="\"as\""] - 63 -> 152 [style=solid label="\".\""] - 63 -> "63R88" [style=solid] - "63R88" [label="R88", fillcolor=3, shape=diamond, style=filled] - 64 [label="State 64\n\l 90 Term: OperatorExpression •\l"] - 64 -> "64R90" [style=solid] - "64R90" [label="R90", fillcolor=3, shape=diamond, style=filled] - 65 [label="State 65\n\l 99 SimpleOrClaspedTerm: CallExpression •\l134 IndirectCallExpression: CallExpression • \"(\" \")\"\l135 | CallExpression • \"(\" Terms \")\"\l136 | CallExpression • \"(\" error \")\"\l"] - 65 -> 153 [style=solid label="\"(\""] - 65 -> "65R99" [style=solid] - "65R99" [label="R99", fillcolor=3, shape=diamond, style=filled] - 66 [label="State 66\n\l122 CallExpression: DirectCallExpression •\l"] - 66 -> "66R122" [style=solid] - "66R122" [label="R122", fillcolor=3, shape=diamond, style=filled] - 67 [label="State 67\n\l123 CallExpression: MethodCallExpression •\l"] - 67 -> "67R123" [style=solid] - "67R123" [label="R123", fillcolor=3, shape=diamond, style=filled] - 68 [label="State 68\n\l100 SimpleOrClaspedTerm: LiteralCallExpression •\l"] - 68 -> "68R100" [style=solid] - "68R100" [label="R100", fillcolor=3, shape=diamond, style=filled] - 69 [label="State 69\n\l124 CallExpression: IndirectCallExpression •\l"] - 69 -> "69R124" [style=solid] - "69R124" [label="R124", fillcolor=3, shape=diamond, style=filled] - 70 [label="State 70\n\l 89 Term: TypeCastingExpression •\l"] - 70 -> "70R89" [style=solid] - "70R89" [label="R89", fillcolor=3, shape=diamond, style=filled] - 71 [label="State 71\n\l 91 Term: LetExpression •\l"] - 71 -> "71R91" [style=solid] - "71R91" [label="R91", fillcolor=3, shape=diamond, style=filled] - 72 [label="State 72\n\l 92 Term: ConditionalExpression •\l"] - 72 -> "72R92" [style=solid] - "72R92" [label="R92", fillcolor=3, shape=diamond, style=filled] - 73 [label="State 73\n\l 93 Term: ChooseExpression •\l"] - 73 -> "73R93" [style=solid] - "73R93" [label="R93", fillcolor=3, shape=diamond, style=filled] - 74 [label="State 74\n\l 94 Term: UniversalQuantifierExpression •\l"] - 74 -> "74R94" [style=solid] - "74R94" [label="R94", fillcolor=3, shape=diamond, style=filled] - 75 [label="State 75\n\l 95 Term: ExistentialQuantifierExpression •\l"] - 75 -> "75R95" [style=solid] - "75R95" [label="R95", fillcolor=3, shape=diamond, style=filled] - 76 [label="State 76\n\l 96 Term: CardinalityExpression •\l"] - 76 -> "76R96" [style=solid] - "76R96" [label="R96", fillcolor=3, shape=diamond, style=filled] - 77 [label="State 77\n\l101 SimpleOrClaspedTerm: Literal •\l"] - 77 -> "77R101" [style=solid] - "77R101" [label="R101", fillcolor=3, shape=diamond, style=filled] - 78 [label="State 78\n\l144 Literal: UndefinedLiteral •\l"] - 78 -> "78R144" [style=solid] - "78R144" [label="R144", fillcolor=3, shape=diamond, style=filled] - 79 [label="State 79\n\l145 Literal: BooleanLiteral •\l"] - 79 -> "79R145" [style=solid] - "79R145" [label="R145", fillcolor=3, shape=diamond, style=filled] - 80 [label="State 80\n\l146 Literal: IntegerLiteral •\l"] - 80 -> "80R146" [style=solid] - "80R146" [label="R146", fillcolor=3, shape=diamond, style=filled] - 81 [label="State 81\n\l147 Literal: RationalLiteral •\l"] - 81 -> "81R147" [style=solid] - "81R147" [label="R147", fillcolor=3, shape=diamond, style=filled] - 82 [label="State 82\n\l148 Literal: DecimalLiteral •\l"] - 82 -> "82R148" [style=solid] - "82R148" [label="R148", fillcolor=3, shape=diamond, style=filled] - 83 [label="State 83\n\l149 Literal: BinaryLiteral •\l"] - 83 -> "83R149" [style=solid] - "83R149" [label="R149", fillcolor=3, shape=diamond, style=filled] - 84 [label="State 84\n\l150 Literal: StringLiteral •\l"] - 84 -> "84R150" [style=solid] - "84R150" [label="R150", fillcolor=3, shape=diamond, style=filled] - 85 [label="State 85\n\l151 Literal: ReferenceLiteral •\l"] - 85 -> "85R151" [style=solid] - "85R151" [label="R151", fillcolor=3, shape=diamond, style=filled] - 86 [label="State 86\n\l152 Literal: ListLiteral •\l"] - 86 -> "86R152" [style=solid] - "86R152" [label="R152", fillcolor=3, shape=diamond, style=filled] - 87 [label="State 87\n\l153 Literal: RangeLiteral •\l"] - 87 -> "87R153" [style=solid] - "87R153" [label="R153", fillcolor=3, shape=diamond, style=filled] - 88 [label="State 88\n\l154 Literal: TupleLiteral •\l"] - 88 -> "88R154" [style=solid] - "88R154" [label="R154", fillcolor=3, shape=diamond, style=filled] - 89 [label="State 89\n\l155 Literal: RecordLiteral •\l"] - 89 -> "89R155" [style=solid] - "89R155" [label="R155", fillcolor=3, shape=diamond, style=filled] - 90 [label="State 90\n\l207 IdentifierPath: Identifier •\l"] - 90 -> "90R207" [style=solid] - "90R207" [label="R207", fillcolor=3, shape=diamond, style=filled] - 91 [label="State 91\n\l125 DirectCallExpression: IdentifierPath •\l126 | IdentifierPath • \"(\" \")\"\l127 | IdentifierPath • \"(\" Terms \")\"\l128 | IdentifierPath • \"(\" error \")\"\l206 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] - 91 -> 154 [style=solid label="\"(\""] - 91 -> 155 [style=solid label="\"::\""] - 91 -> "91R125" [style=solid] - "91R125" [label="R125", fillcolor=3, shape=diamond, style=filled] - 92 [label="State 92\n\l230 Attribute: \"[\" BasicAttribute \"]\" •\l"] - 92 -> "92R230" [style=solid] - "92R230" [label="R230", fillcolor=3, shape=diamond, style=filled] - 93 [label="State 93\n\l231 Attribute: \"[\" ExpressionAttribute \"]\" •\l"] - 93 -> "93R231" [style=solid] - "93R231" [label="R231", fillcolor=3, shape=diamond, style=filled] - 94 [label="State 94\n\l 20 InitDefinition: \"init\" \"{\" • Initializers \"}\"\l"] - 94 -> 41 [style=solid label="\"let\""] - 94 -> 8 [style=solid label="\"in\""] - 94 -> 42 [style=solid label="\"forall\""] - 94 -> 43 [style=solid label="\"choose\""] - 94 -> 44 [style=solid label="\"if\""] - 94 -> 45 [style=solid label="\"exists\""] - 94 -> 46 [style=solid label="\"undef\""] - 94 -> 47 [style=solid label="\"false\""] - 94 -> 48 [style=solid label="\"true\""] - 94 -> 49 [style=solid label="\"not\""] - 94 -> 50 [style=solid label="\"+\""] - 94 -> 51 [style=solid label="\"-\""] - 94 -> 156 [style=solid label="\"(\""] - 94 -> 53 [style=solid label="\"[\""] - 94 -> 54 [style=solid label="\"|\""] - 94 -> 55 [style=solid label="\"@\""] - 94 -> 56 [style=solid label="\"binary\""] - 94 -> 57 [style=solid label="\"hexadecimal\""] - 94 -> 58 [style=solid label="\"integer\""] - 94 -> 59 [style=solid label="\"rational\""] - 94 -> 60 [style=solid label="\"decimal\""] - 94 -> 61 [style=solid label="\"string\""] - 94 -> 9 [style=solid label="\"identifier\""] - 94 -> 157 [style=dashed label="Term"] - 94 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 94 -> 64 [style=dashed label="OperatorExpression"] - 94 -> 65 [style=dashed label="CallExpression"] - 94 -> 66 [style=dashed label="DirectCallExpression"] - 94 -> 67 [style=dashed label="MethodCallExpression"] - 94 -> 68 [style=dashed label="LiteralCallExpression"] - 94 -> 69 [style=dashed label="IndirectCallExpression"] - 94 -> 70 [style=dashed label="TypeCastingExpression"] - 94 -> 71 [style=dashed label="LetExpression"] - 94 -> 72 [style=dashed label="ConditionalExpression"] - 94 -> 73 [style=dashed label="ChooseExpression"] - 94 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 94 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 94 -> 76 [style=dashed label="CardinalityExpression"] - 94 -> 77 [style=dashed label="Literal"] - 94 -> 78 [style=dashed label="UndefinedLiteral"] - 94 -> 79 [style=dashed label="BooleanLiteral"] - 94 -> 80 [style=dashed label="IntegerLiteral"] - 94 -> 81 [style=dashed label="RationalLiteral"] - 94 -> 82 [style=dashed label="DecimalLiteral"] - 94 -> 83 [style=dashed label="BinaryLiteral"] - 94 -> 84 [style=dashed label="StringLiteral"] - 94 -> 85 [style=dashed label="ReferenceLiteral"] - 94 -> 86 [style=dashed label="ListLiteral"] - 94 -> 87 [style=dashed label="RangeLiteral"] - 94 -> 158 [style=dashed label="TupleLiteral"] - 94 -> 89 [style=dashed label="RecordLiteral"] - 94 -> 159 [style=dashed label="Initializers"] - 94 -> 160 [style=dashed label="Initializer"] - 94 -> 90 [style=dashed label="Identifier"] - 94 -> 91 [style=dashed label="IdentifierPath"] - 95 [label="State 95\n\l 19 InitDefinition: \"init\" IdentifierPath •\l206 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] - 95 -> 155 [style=solid label="\"::\""] - 95 -> "95R19" [style=solid] - "95R19" [label="R19", fillcolor=3, shape=diamond, style=filled] - 96 [label="State 96\n\l 22 DerivedDefinition: \"derived\" Identifier • \"->\" Type \"=\" Term\l 23 | \"derived\" Identifier • \"(\" Parameters \")\" \"->\" Type \"=\" Term\l 24 | \"derived\" Identifier • \"(\" error \")\" \"->\" Type \"=\" Term\l"] - 96 -> 161 [style=solid label="\"(\""] - 96 -> 162 [style=solid label="\"->\""] - 97 [label="State 97\n\l 21 EnumerationDefinition: \"enumeration\" Identifier • \"=\" \"{\" Enumerators \"}\"\l"] - 97 -> 163 [style=solid label="\"=\""] - 98 [label="State 98\n\l 25 RuleDefinition: \"rule\" Identifier • \"=\" Rule\l 26 | \"rule\" Identifier • \"->\" Type \"=\" Rule\l 27 | \"rule\" Identifier • \"(\" Parameters \")\" \"=\" Rule\l 28 | \"rule\" Identifier • \"(\" Parameters \")\" \"->\" Type \"=\" Rule\l 29 | \"rule\" Identifier • \"(\" error \")\" \"=\" Rule\l 30 | \"rule\" Identifier • \"(\" error \")\" \"->\" Type \"=\" Rule\l"] - 98 -> 164 [style=solid label="\"=\""] - 98 -> 165 [style=solid label="\"(\""] - 98 -> 166 [style=solid label="\"->\""] - 99 [label="State 99\n\l 37 UsingDefinition: \"using\" Identifier • \"=\" Type\l207 IdentifierPath: Identifier •\l"] - 99 -> 167 [style=solid label="\"=\""] - 99 -> "99R207" [style=solid] - "99R207" [label="R207", fillcolor=3, shape=diamond, style=filled] - 100 [label="State 100\n\l 38 UsingPathDefinition: \"using\" IdentifierPath •\l 39 | \"using\" IdentifierPath • \"::\" \"*\"\l206 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] - 100 -> 168 [style=solid label="\"::\""] - 100 -> "100R38" [style=solid] - "100R38" [label="R38", fillcolor=3, shape=diamond, style=filled] - 101 [label="State 101\n\l 40 InvariantDefinition: \"invariant\" Identifier • \"=\" Term\l"] - 101 -> 169 [style=solid label="\"=\""] - 102 [label="State 102\n\l 41 ImportDefinition: \"import\" IdentifierPath •\l 42 | \"import\" IdentifierPath • \"as\" Identifier\l206 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] - 102 -> 170 [style=solid label="\"as\""] - 102 -> 155 [style=solid label="\"::\""] - 102 -> "102R41" [style=solid] - "102R41" [label="R41", fillcolor=3, shape=diamond, style=filled] - 103 [label="State 103\n\l 43 StructureDefinition: \"structure\" Identifier • \"=\" \"{\" FunctionDefinition \"}\"\l"] - 103 -> 171 [style=solid label="\"=\""] - 104 [label="State 104\n\l 31 FunctionDefinition: \"function\" Identifier • \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] - 104 -> 172 [style=solid label="\":\""] - 105 [label="State 105\n\l 4 Definitions: Definitions AttributedDefinition •\l"] - 105 -> "105R4" [style=solid] - "105R4" [label="R4", fillcolor=3, shape=diamond, style=filled] - 106 [label="State 106\n\l 6 AttributedDefinition: Attributes Definition •\l"] - 106 -> "106R6" [style=solid] - "106R6" [label="R6", fillcolor=3, shape=diamond, style=filled] - 107 [label="State 107\n\l209 Variable: Identifier •\l214 TypedVariable: Identifier • \":\" Type\l"] - 107 -> 173 [style=solid label="\":\""] - 107 -> "107R209" [style=solid] - "107R209" [label="R209", fillcolor=3, shape=diamond, style=filled] - 108 [label="State 108\n\l216 AttributedVariable: Variable •\l"] - 108 -> "108R216" [style=solid] - "108R216" [label="R216", fillcolor=3, shape=diamond, style=filled] - 109 [label="State 109\n\l208 Variable: TypedVariable •\l"] - 109 -> "109R208" [style=solid] - "109R208" [label="R208", fillcolor=3, shape=diamond, style=filled] - 110 [label="State 110\n\l221 VariableBinding: AttributedVariable • \"=\" Term\l"] - 110 -> 174 [style=solid label="\"=\""] - 111 [label="State 111\n\l138 LetExpression: \"let\" VariableBindings • \"in\" Term\l219 VariableBindings: VariableBindings • \",\" VariableBinding\l"] - 111 -> 175 [style=solid label="\"in\""] - 111 -> 176 [style=solid label="\",\""] - 112 [label="State 112\n\l220 VariableBindings: VariableBinding •\l"] - 112 -> "112R220" [style=solid] - "112R220" [label="R220", fillcolor=3, shape=diamond, style=filled] - 113 [label="State 113\n\l215 AttributedVariable: Attributes • Variable\l228 Attributes: Attributes • Attribute\l"] - 113 -> 8 [style=solid label="\"in\""] - 113 -> 2 [style=solid label="\"[\""] - 113 -> 9 [style=solid label="\"identifier\""] - 113 -> 107 [style=dashed label="Identifier"] - 113 -> 177 [style=dashed label="Variable"] - 113 -> 109 [style=dashed label="TypedVariable"] - 113 -> 39 [style=dashed label="Attribute"] - 114 [label="State 114\n\l141 UniversalQuantifierExpression: \"forall\" AttributedVariables • \"in\" Term \"holds\" Term\l210 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] - 114 -> 178 [style=solid label="\"in\""] - 114 -> 179 [style=solid label="\",\""] - 115 [label="State 115\n\l211 AttributedVariables: AttributedVariable •\l"] - 115 -> "115R211" [style=solid] - "115R211" [label="R211", fillcolor=3, shape=diamond, style=filled] - 116 [label="State 116\n\l140 ChooseExpression: \"choose\" AttributedVariables • \"in\" Term \"do\" Term\l210 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] - 116 -> 180 [style=solid label="\"in\""] - 116 -> 179 [style=solid label="\",\""] - 117 [label="State 117\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l139 ConditionalExpression: \"if\" Term • \"then\" Term \"else\" Term\l"] - 117 -> 181 [style=solid label="\"then\""] - 117 -> 134 [style=solid label="\"and\""] - 117 -> 135 [style=solid label="\"or\""] - 117 -> 136 [style=solid label="\"xor\""] - 117 -> 137 [style=solid label="\"implies\""] - 117 -> 138 [style=solid label="\"+\""] - 117 -> 139 [style=solid label="\"-\""] - 117 -> 140 [style=solid label="\"=\""] - 117 -> 141 [style=solid label="\"<\""] - 117 -> 142 [style=solid label="\">\""] - 117 -> 143 [style=solid label="\"*\""] - 117 -> 144 [style=solid label="\"/\""] - 117 -> 145 [style=solid label="\"%\""] - 117 -> 146 [style=solid label="\"^\""] - 117 -> 147 [style=solid label="\"=>\""] - 117 -> 148 [style=solid label="\"!=\""] - 117 -> 149 [style=solid label="\"<=\""] - 117 -> 150 [style=solid label="\">=\""] - 118 [label="State 118\n\l142 ExistentialQuantifierExpression: \"exists\" AttributedVariables • \"in\" Term \"with\" Term\l210 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] - 118 -> 182 [style=solid label="\"in\""] - 118 -> 179 [style=solid label="\",\""] - 119 [label="State 119\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l121 | \"not\" Term •\l"] - 119 -> "119R121" [style=solid] - "119R121" [label="R121", fillcolor=3, shape=diamond, style=filled] - 120 [label="State 120\n\l102 SimpleOrClaspedTerm: \"+\" SimpleOrClaspedTerm •\l129 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l130 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l131 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l132 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l133 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] - 120 -> "120R102" [style=solid] - "120R102" [label="R102", fillcolor=3, shape=diamond, style=filled] - 121 [label="State 121\n\l103 SimpleOrClaspedTerm: \"-\" SimpleOrClaspedTerm •\l129 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l130 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l131 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l132 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l133 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] - 121 -> "121R103" [style=solid] - "121R103" [label="R103", fillcolor=3, shape=diamond, style=filled] - 122 [label="State 122\n\l 98 SimpleOrClaspedTerm: \"(\" error • \")\"\l"] - 122 -> 183 [style=solid label="\")\""] - 123 [label="State 123\n\l 86 Terms: Terms • \",\" Term\l170 TupleLiteral: \"(\" Terms • \",\" Term \")\"\l"] - 123 -> 184 [style=solid label="\",\""] - 124 [label="State 124\n\l 87 Terms: Term •\l 97 SimpleOrClaspedTerm: \"(\" Term • \")\"\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 124 -> 134 [style=solid label="\"and\""] - 124 -> 135 [style=solid label="\"or\""] - 124 -> 136 [style=solid label="\"xor\""] - 124 -> 137 [style=solid label="\"implies\""] - 124 -> 138 [style=solid label="\"+\""] - 124 -> 139 [style=solid label="\"-\""] - 124 -> 140 [style=solid label="\"=\""] - 124 -> 185 [style=solid label="\")\""] - 124 -> 141 [style=solid label="\"<\""] - 124 -> 142 [style=solid label="\">\""] - 124 -> 143 [style=solid label="\"*\""] - 124 -> 144 [style=solid label="\"/\""] - 124 -> 145 [style=solid label="\"%\""] - 124 -> 146 [style=solid label="\"^\""] - 124 -> 147 [style=solid label="\"=>\""] - 124 -> 148 [style=solid label="\"!=\""] - 124 -> 149 [style=solid label="\"<=\""] - 124 -> 150 [style=solid label="\">=\""] - 124 -> "124R87" [style=solid] - "124R87" [label="R87", fillcolor=3, shape=diamond, style=filled] - 125 [label="State 125\n\l171 RecordLiteral: \"(\" Assignments • \")\"\l172 Assignments: Assignments • \",\" Assignment\l"] - 125 -> 186 [style=solid label="\")\""] - 125 -> 187 [style=solid label="\",\""] - 126 [label="State 126\n\l173 Assignments: Assignment •\l"] - 126 -> "126R173" [style=solid] - "126R173" [label="R173", fillcolor=3, shape=diamond, style=filled] - 127 [label="State 127\n\l174 Assignment: Identifier • \":\" Term\l207 IdentifierPath: Identifier •\l"] - 127 -> 188 [style=solid label="\":\""] - 127 -> "127R207" [style=solid] - "127R207" [label="R207", fillcolor=3, shape=diamond, style=filled] - 128 [label="State 128\n\l168 ListLiteral: \"[\" error • \"]\"\l"] - 128 -> 189 [style=solid label="\"]\""] - 129 [label="State 129\n\l166 ListLiteral: \"[\" \"]\" •\l"] - 129 -> "129R166" [style=solid] - "129R166" [label="R166", fillcolor=3, shape=diamond, style=filled] - 130 [label="State 130\n\l 86 Terms: Terms • \",\" Term\l167 ListLiteral: \"[\" Terms • \"]\"\l"] - 130 -> 190 [style=solid label="\"]\""] - 130 -> 191 [style=solid label="\",\""] - 131 [label="State 131\n\l 87 Terms: Term •\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l169 RangeLiteral: \"[\" Term • \"..\" Term \"]\"\l"] - 131 -> 134 [style=solid label="\"and\""] - 131 -> 135 [style=solid label="\"or\""] - 131 -> 136 [style=solid label="\"xor\""] - 131 -> 137 [style=solid label="\"implies\""] - 131 -> 138 [style=solid label="\"+\""] - 131 -> 139 [style=solid label="\"-\""] - 131 -> 140 [style=solid label="\"=\""] - 131 -> 141 [style=solid label="\"<\""] - 131 -> 142 [style=solid label="\">\""] - 131 -> 143 [style=solid label="\"*\""] - 131 -> 144 [style=solid label="\"/\""] - 131 -> 145 [style=solid label="\"%\""] - 131 -> 146 [style=solid label="\"^\""] - 131 -> 192 [style=solid label="\"..\""] - 131 -> 147 [style=solid label="\"=>\""] - 131 -> 148 [style=solid label="\"!=\""] - 131 -> 149 [style=solid label="\"<=\""] - 131 -> 150 [style=solid label="\">=\""] - 131 -> "131R87" [style=solid] - "131R87" [label="R87", fillcolor=3, shape=diamond, style=filled] - 132 [label="State 132\n\l129 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l130 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l131 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l132 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l133 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l143 CardinalityExpression: \"|\" SimpleOrClaspedTerm • \"|\"\l"] - 132 -> 193 [style=solid label="\"|\""] - 132 -> 152 [style=solid label="\".\""] - 133 [label="State 133\n\l165 ReferenceLiteral: \"@\" IdentifierPath •\l206 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] - 133 -> 155 [style=solid label="\"::\""] - 133 -> "133R165" [style=solid] - "133R165" [label="R165", fillcolor=3, shape=diamond, style=filled] - 134 [label="State 134\n\l118 OperatorExpression: Term \"and\" • Term\l"] - 134 -> 41 [style=solid label="\"let\""] - 134 -> 8 [style=solid label="\"in\""] - 134 -> 42 [style=solid label="\"forall\""] - 134 -> 43 [style=solid label="\"choose\""] - 134 -> 44 [style=solid label="\"if\""] - 134 -> 45 [style=solid label="\"exists\""] - 134 -> 46 [style=solid label="\"undef\""] - 134 -> 47 [style=solid label="\"false\""] - 134 -> 48 [style=solid label="\"true\""] - 134 -> 49 [style=solid label="\"not\""] - 134 -> 50 [style=solid label="\"+\""] - 134 -> 51 [style=solid label="\"-\""] - 134 -> 52 [style=solid label="\"(\""] - 134 -> 53 [style=solid label="\"[\""] - 134 -> 54 [style=solid label="\"|\""] - 134 -> 55 [style=solid label="\"@\""] - 134 -> 56 [style=solid label="\"binary\""] - 134 -> 57 [style=solid label="\"hexadecimal\""] - 134 -> 58 [style=solid label="\"integer\""] - 134 -> 59 [style=solid label="\"rational\""] - 134 -> 60 [style=solid label="\"decimal\""] - 134 -> 61 [style=solid label="\"string\""] - 134 -> 9 [style=solid label="\"identifier\""] - 134 -> 194 [style=dashed label="Term"] - 134 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 134 -> 64 [style=dashed label="OperatorExpression"] - 134 -> 65 [style=dashed label="CallExpression"] - 134 -> 66 [style=dashed label="DirectCallExpression"] - 134 -> 67 [style=dashed label="MethodCallExpression"] - 134 -> 68 [style=dashed label="LiteralCallExpression"] - 134 -> 69 [style=dashed label="IndirectCallExpression"] - 134 -> 70 [style=dashed label="TypeCastingExpression"] - 134 -> 71 [style=dashed label="LetExpression"] - 134 -> 72 [style=dashed label="ConditionalExpression"] - 134 -> 73 [style=dashed label="ChooseExpression"] - 134 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 134 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 134 -> 76 [style=dashed label="CardinalityExpression"] - 134 -> 77 [style=dashed label="Literal"] - 134 -> 78 [style=dashed label="UndefinedLiteral"] - 134 -> 79 [style=dashed label="BooleanLiteral"] - 134 -> 80 [style=dashed label="IntegerLiteral"] - 134 -> 81 [style=dashed label="RationalLiteral"] - 134 -> 82 [style=dashed label="DecimalLiteral"] - 134 -> 83 [style=dashed label="BinaryLiteral"] - 134 -> 84 [style=dashed label="StringLiteral"] - 134 -> 85 [style=dashed label="ReferenceLiteral"] - 134 -> 86 [style=dashed label="ListLiteral"] - 134 -> 87 [style=dashed label="RangeLiteral"] - 134 -> 88 [style=dashed label="TupleLiteral"] - 134 -> 89 [style=dashed label="RecordLiteral"] - 134 -> 90 [style=dashed label="Identifier"] - 134 -> 91 [style=dashed label="IdentifierPath"] - 135 [label="State 135\n\l116 OperatorExpression: Term \"or\" • Term\l"] - 135 -> 41 [style=solid label="\"let\""] - 135 -> 8 [style=solid label="\"in\""] - 135 -> 42 [style=solid label="\"forall\""] - 135 -> 43 [style=solid label="\"choose\""] - 135 -> 44 [style=solid label="\"if\""] - 135 -> 45 [style=solid label="\"exists\""] - 135 -> 46 [style=solid label="\"undef\""] - 135 -> 47 [style=solid label="\"false\""] - 135 -> 48 [style=solid label="\"true\""] - 135 -> 49 [style=solid label="\"not\""] - 135 -> 50 [style=solid label="\"+\""] - 135 -> 51 [style=solid label="\"-\""] - 135 -> 52 [style=solid label="\"(\""] - 135 -> 53 [style=solid label="\"[\""] - 135 -> 54 [style=solid label="\"|\""] - 135 -> 55 [style=solid label="\"@\""] - 135 -> 56 [style=solid label="\"binary\""] - 135 -> 57 [style=solid label="\"hexadecimal\""] - 135 -> 58 [style=solid label="\"integer\""] - 135 -> 59 [style=solid label="\"rational\""] - 135 -> 60 [style=solid label="\"decimal\""] - 135 -> 61 [style=solid label="\"string\""] - 135 -> 9 [style=solid label="\"identifier\""] - 135 -> 195 [style=dashed label="Term"] - 135 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 135 -> 64 [style=dashed label="OperatorExpression"] - 135 -> 65 [style=dashed label="CallExpression"] - 135 -> 66 [style=dashed label="DirectCallExpression"] - 135 -> 67 [style=dashed label="MethodCallExpression"] - 135 -> 68 [style=dashed label="LiteralCallExpression"] - 135 -> 69 [style=dashed label="IndirectCallExpression"] - 135 -> 70 [style=dashed label="TypeCastingExpression"] - 135 -> 71 [style=dashed label="LetExpression"] - 135 -> 72 [style=dashed label="ConditionalExpression"] - 135 -> 73 [style=dashed label="ChooseExpression"] - 135 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 135 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 135 -> 76 [style=dashed label="CardinalityExpression"] - 135 -> 77 [style=dashed label="Literal"] - 135 -> 78 [style=dashed label="UndefinedLiteral"] - 135 -> 79 [style=dashed label="BooleanLiteral"] - 135 -> 80 [style=dashed label="IntegerLiteral"] - 135 -> 81 [style=dashed label="RationalLiteral"] - 135 -> 82 [style=dashed label="DecimalLiteral"] - 135 -> 83 [style=dashed label="BinaryLiteral"] - 135 -> 84 [style=dashed label="StringLiteral"] - 135 -> 85 [style=dashed label="ReferenceLiteral"] - 135 -> 86 [style=dashed label="ListLiteral"] - 135 -> 87 [style=dashed label="RangeLiteral"] - 135 -> 88 [style=dashed label="TupleLiteral"] - 135 -> 89 [style=dashed label="RecordLiteral"] - 135 -> 90 [style=dashed label="Identifier"] - 135 -> 91 [style=dashed label="IdentifierPath"] - 136 [label="State 136\n\l117 OperatorExpression: Term \"xor\" • Term\l"] - 136 -> 41 [style=solid label="\"let\""] - 136 -> 8 [style=solid label="\"in\""] - 136 -> 42 [style=solid label="\"forall\""] - 136 -> 43 [style=solid label="\"choose\""] - 136 -> 44 [style=solid label="\"if\""] - 136 -> 45 [style=solid label="\"exists\""] - 136 -> 46 [style=solid label="\"undef\""] - 136 -> 47 [style=solid label="\"false\""] - 136 -> 48 [style=solid label="\"true\""] - 136 -> 49 [style=solid label="\"not\""] - 136 -> 50 [style=solid label="\"+\""] - 136 -> 51 [style=solid label="\"-\""] - 136 -> 52 [style=solid label="\"(\""] - 136 -> 53 [style=solid label="\"[\""] - 136 -> 54 [style=solid label="\"|\""] - 136 -> 55 [style=solid label="\"@\""] - 136 -> 56 [style=solid label="\"binary\""] - 136 -> 57 [style=solid label="\"hexadecimal\""] - 136 -> 58 [style=solid label="\"integer\""] - 136 -> 59 [style=solid label="\"rational\""] - 136 -> 60 [style=solid label="\"decimal\""] - 136 -> 61 [style=solid label="\"string\""] - 136 -> 9 [style=solid label="\"identifier\""] - 136 -> 196 [style=dashed label="Term"] - 136 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 136 -> 64 [style=dashed label="OperatorExpression"] - 136 -> 65 [style=dashed label="CallExpression"] - 136 -> 66 [style=dashed label="DirectCallExpression"] - 136 -> 67 [style=dashed label="MethodCallExpression"] - 136 -> 68 [style=dashed label="LiteralCallExpression"] - 136 -> 69 [style=dashed label="IndirectCallExpression"] - 136 -> 70 [style=dashed label="TypeCastingExpression"] - 136 -> 71 [style=dashed label="LetExpression"] - 136 -> 72 [style=dashed label="ConditionalExpression"] - 136 -> 73 [style=dashed label="ChooseExpression"] - 136 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 136 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 136 -> 76 [style=dashed label="CardinalityExpression"] - 136 -> 77 [style=dashed label="Literal"] - 136 -> 78 [style=dashed label="UndefinedLiteral"] - 136 -> 79 [style=dashed label="BooleanLiteral"] - 136 -> 80 [style=dashed label="IntegerLiteral"] - 136 -> 81 [style=dashed label="RationalLiteral"] - 136 -> 82 [style=dashed label="DecimalLiteral"] - 136 -> 83 [style=dashed label="BinaryLiteral"] - 136 -> 84 [style=dashed label="StringLiteral"] - 136 -> 85 [style=dashed label="ReferenceLiteral"] - 136 -> 86 [style=dashed label="ListLiteral"] - 136 -> 87 [style=dashed label="RangeLiteral"] - 136 -> 88 [style=dashed label="TupleLiteral"] - 136 -> 89 [style=dashed label="RecordLiteral"] - 136 -> 90 [style=dashed label="Identifier"] - 136 -> 91 [style=dashed label="IdentifierPath"] - 137 [label="State 137\n\l120 OperatorExpression: Term \"implies\" • Term\l"] - 137 -> 41 [style=solid label="\"let\""] - 137 -> 8 [style=solid label="\"in\""] - 137 -> 42 [style=solid label="\"forall\""] - 137 -> 43 [style=solid label="\"choose\""] - 137 -> 44 [style=solid label="\"if\""] - 137 -> 45 [style=solid label="\"exists\""] - 137 -> 46 [style=solid label="\"undef\""] - 137 -> 47 [style=solid label="\"false\""] - 137 -> 48 [style=solid label="\"true\""] - 137 -> 49 [style=solid label="\"not\""] - 137 -> 50 [style=solid label="\"+\""] - 137 -> 51 [style=solid label="\"-\""] - 137 -> 52 [style=solid label="\"(\""] - 137 -> 53 [style=solid label="\"[\""] - 137 -> 54 [style=solid label="\"|\""] - 137 -> 55 [style=solid label="\"@\""] - 137 -> 56 [style=solid label="\"binary\""] - 137 -> 57 [style=solid label="\"hexadecimal\""] - 137 -> 58 [style=solid label="\"integer\""] - 137 -> 59 [style=solid label="\"rational\""] - 137 -> 60 [style=solid label="\"decimal\""] - 137 -> 61 [style=solid label="\"string\""] - 137 -> 9 [style=solid label="\"identifier\""] - 137 -> 197 [style=dashed label="Term"] - 137 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 137 -> 64 [style=dashed label="OperatorExpression"] - 137 -> 65 [style=dashed label="CallExpression"] - 137 -> 66 [style=dashed label="DirectCallExpression"] - 137 -> 67 [style=dashed label="MethodCallExpression"] - 137 -> 68 [style=dashed label="LiteralCallExpression"] - 137 -> 69 [style=dashed label="IndirectCallExpression"] - 137 -> 70 [style=dashed label="TypeCastingExpression"] - 137 -> 71 [style=dashed label="LetExpression"] - 137 -> 72 [style=dashed label="ConditionalExpression"] - 137 -> 73 [style=dashed label="ChooseExpression"] - 137 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 137 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 137 -> 76 [style=dashed label="CardinalityExpression"] - 137 -> 77 [style=dashed label="Literal"] - 137 -> 78 [style=dashed label="UndefinedLiteral"] - 137 -> 79 [style=dashed label="BooleanLiteral"] - 137 -> 80 [style=dashed label="IntegerLiteral"] - 137 -> 81 [style=dashed label="RationalLiteral"] - 137 -> 82 [style=dashed label="DecimalLiteral"] - 137 -> 83 [style=dashed label="BinaryLiteral"] - 137 -> 84 [style=dashed label="StringLiteral"] - 137 -> 85 [style=dashed label="ReferenceLiteral"] - 137 -> 86 [style=dashed label="ListLiteral"] - 137 -> 87 [style=dashed label="RangeLiteral"] - 137 -> 88 [style=dashed label="TupleLiteral"] - 137 -> 89 [style=dashed label="RecordLiteral"] - 137 -> 90 [style=dashed label="Identifier"] - 137 -> 91 [style=dashed label="IdentifierPath"] - 138 [label="State 138\n\l104 OperatorExpression: Term \"+\" • Term\l"] - 138 -> 41 [style=solid label="\"let\""] - 138 -> 8 [style=solid label="\"in\""] - 138 -> 42 [style=solid label="\"forall\""] - 138 -> 43 [style=solid label="\"choose\""] - 138 -> 44 [style=solid label="\"if\""] - 138 -> 45 [style=solid label="\"exists\""] - 138 -> 46 [style=solid label="\"undef\""] - 138 -> 47 [style=solid label="\"false\""] - 138 -> 48 [style=solid label="\"true\""] - 138 -> 49 [style=solid label="\"not\""] - 138 -> 50 [style=solid label="\"+\""] - 138 -> 51 [style=solid label="\"-\""] - 138 -> 52 [style=solid label="\"(\""] - 138 -> 53 [style=solid label="\"[\""] - 138 -> 54 [style=solid label="\"|\""] - 138 -> 55 [style=solid label="\"@\""] - 138 -> 56 [style=solid label="\"binary\""] - 138 -> 57 [style=solid label="\"hexadecimal\""] - 138 -> 58 [style=solid label="\"integer\""] - 138 -> 59 [style=solid label="\"rational\""] - 138 -> 60 [style=solid label="\"decimal\""] - 138 -> 61 [style=solid label="\"string\""] - 138 -> 9 [style=solid label="\"identifier\""] - 138 -> 198 [style=dashed label="Term"] - 138 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 138 -> 64 [style=dashed label="OperatorExpression"] - 138 -> 65 [style=dashed label="CallExpression"] - 138 -> 66 [style=dashed label="DirectCallExpression"] - 138 -> 67 [style=dashed label="MethodCallExpression"] - 138 -> 68 [style=dashed label="LiteralCallExpression"] - 138 -> 69 [style=dashed label="IndirectCallExpression"] - 138 -> 70 [style=dashed label="TypeCastingExpression"] - 138 -> 71 [style=dashed label="LetExpression"] - 138 -> 72 [style=dashed label="ConditionalExpression"] - 138 -> 73 [style=dashed label="ChooseExpression"] - 138 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 138 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 138 -> 76 [style=dashed label="CardinalityExpression"] - 138 -> 77 [style=dashed label="Literal"] - 138 -> 78 [style=dashed label="UndefinedLiteral"] - 138 -> 79 [style=dashed label="BooleanLiteral"] - 138 -> 80 [style=dashed label="IntegerLiteral"] - 138 -> 81 [style=dashed label="RationalLiteral"] - 138 -> 82 [style=dashed label="DecimalLiteral"] - 138 -> 83 [style=dashed label="BinaryLiteral"] - 138 -> 84 [style=dashed label="StringLiteral"] - 138 -> 85 [style=dashed label="ReferenceLiteral"] - 138 -> 86 [style=dashed label="ListLiteral"] - 138 -> 87 [style=dashed label="RangeLiteral"] - 138 -> 88 [style=dashed label="TupleLiteral"] - 138 -> 89 [style=dashed label="RecordLiteral"] - 138 -> 90 [style=dashed label="Identifier"] - 138 -> 91 [style=dashed label="IdentifierPath"] - 139 [label="State 139\n\l105 OperatorExpression: Term \"-\" • Term\l"] - 139 -> 41 [style=solid label="\"let\""] - 139 -> 8 [style=solid label="\"in\""] - 139 -> 42 [style=solid label="\"forall\""] - 139 -> 43 [style=solid label="\"choose\""] - 139 -> 44 [style=solid label="\"if\""] - 139 -> 45 [style=solid label="\"exists\""] - 139 -> 46 [style=solid label="\"undef\""] - 139 -> 47 [style=solid label="\"false\""] - 139 -> 48 [style=solid label="\"true\""] - 139 -> 49 [style=solid label="\"not\""] - 139 -> 50 [style=solid label="\"+\""] - 139 -> 51 [style=solid label="\"-\""] - 139 -> 52 [style=solid label="\"(\""] - 139 -> 53 [style=solid label="\"[\""] - 139 -> 54 [style=solid label="\"|\""] - 139 -> 55 [style=solid label="\"@\""] - 139 -> 56 [style=solid label="\"binary\""] - 139 -> 57 [style=solid label="\"hexadecimal\""] - 139 -> 58 [style=solid label="\"integer\""] - 139 -> 59 [style=solid label="\"rational\""] - 139 -> 60 [style=solid label="\"decimal\""] - 139 -> 61 [style=solid label="\"string\""] - 139 -> 9 [style=solid label="\"identifier\""] - 139 -> 199 [style=dashed label="Term"] - 139 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 139 -> 64 [style=dashed label="OperatorExpression"] - 139 -> 65 [style=dashed label="CallExpression"] - 139 -> 66 [style=dashed label="DirectCallExpression"] - 139 -> 67 [style=dashed label="MethodCallExpression"] - 139 -> 68 [style=dashed label="LiteralCallExpression"] - 139 -> 69 [style=dashed label="IndirectCallExpression"] - 139 -> 70 [style=dashed label="TypeCastingExpression"] - 139 -> 71 [style=dashed label="LetExpression"] - 139 -> 72 [style=dashed label="ConditionalExpression"] - 139 -> 73 [style=dashed label="ChooseExpression"] - 139 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 139 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 139 -> 76 [style=dashed label="CardinalityExpression"] - 139 -> 77 [style=dashed label="Literal"] - 139 -> 78 [style=dashed label="UndefinedLiteral"] - 139 -> 79 [style=dashed label="BooleanLiteral"] - 139 -> 80 [style=dashed label="IntegerLiteral"] - 139 -> 81 [style=dashed label="RationalLiteral"] - 139 -> 82 [style=dashed label="DecimalLiteral"] - 139 -> 83 [style=dashed label="BinaryLiteral"] - 139 -> 84 [style=dashed label="StringLiteral"] - 139 -> 85 [style=dashed label="ReferenceLiteral"] - 139 -> 86 [style=dashed label="ListLiteral"] - 139 -> 87 [style=dashed label="RangeLiteral"] - 139 -> 88 [style=dashed label="TupleLiteral"] - 139 -> 89 [style=dashed label="RecordLiteral"] - 139 -> 90 [style=dashed label="Identifier"] - 139 -> 91 [style=dashed label="IdentifierPath"] - 140 [label="State 140\n\l111 OperatorExpression: Term \"=\" • Term\l"] - 140 -> 41 [style=solid label="\"let\""] - 140 -> 8 [style=solid label="\"in\""] - 140 -> 42 [style=solid label="\"forall\""] - 140 -> 43 [style=solid label="\"choose\""] - 140 -> 44 [style=solid label="\"if\""] - 140 -> 45 [style=solid label="\"exists\""] - 140 -> 46 [style=solid label="\"undef\""] - 140 -> 47 [style=solid label="\"false\""] - 140 -> 48 [style=solid label="\"true\""] - 140 -> 49 [style=solid label="\"not\""] - 140 -> 50 [style=solid label="\"+\""] - 140 -> 51 [style=solid label="\"-\""] - 140 -> 52 [style=solid label="\"(\""] - 140 -> 53 [style=solid label="\"[\""] - 140 -> 54 [style=solid label="\"|\""] - 140 -> 55 [style=solid label="\"@\""] - 140 -> 56 [style=solid label="\"binary\""] - 140 -> 57 [style=solid label="\"hexadecimal\""] - 140 -> 58 [style=solid label="\"integer\""] - 140 -> 59 [style=solid label="\"rational\""] - 140 -> 60 [style=solid label="\"decimal\""] - 140 -> 61 [style=solid label="\"string\""] - 140 -> 9 [style=solid label="\"identifier\""] - 140 -> 200 [style=dashed label="Term"] - 140 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 140 -> 64 [style=dashed label="OperatorExpression"] - 140 -> 65 [style=dashed label="CallExpression"] - 140 -> 66 [style=dashed label="DirectCallExpression"] - 140 -> 67 [style=dashed label="MethodCallExpression"] - 140 -> 68 [style=dashed label="LiteralCallExpression"] - 140 -> 69 [style=dashed label="IndirectCallExpression"] - 140 -> 70 [style=dashed label="TypeCastingExpression"] - 140 -> 71 [style=dashed label="LetExpression"] - 140 -> 72 [style=dashed label="ConditionalExpression"] - 140 -> 73 [style=dashed label="ChooseExpression"] - 140 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 140 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 140 -> 76 [style=dashed label="CardinalityExpression"] - 140 -> 77 [style=dashed label="Literal"] - 140 -> 78 [style=dashed label="UndefinedLiteral"] - 140 -> 79 [style=dashed label="BooleanLiteral"] - 140 -> 80 [style=dashed label="IntegerLiteral"] - 140 -> 81 [style=dashed label="RationalLiteral"] - 140 -> 82 [style=dashed label="DecimalLiteral"] - 140 -> 83 [style=dashed label="BinaryLiteral"] - 140 -> 84 [style=dashed label="StringLiteral"] - 140 -> 85 [style=dashed label="ReferenceLiteral"] - 140 -> 86 [style=dashed label="ListLiteral"] - 140 -> 87 [style=dashed label="RangeLiteral"] - 140 -> 88 [style=dashed label="TupleLiteral"] - 140 -> 89 [style=dashed label="RecordLiteral"] - 140 -> 90 [style=dashed label="Identifier"] - 140 -> 91 [style=dashed label="IdentifierPath"] - 141 [label="State 141\n\l112 OperatorExpression: Term \"<\" • Term\l"] - 141 -> 41 [style=solid label="\"let\""] - 141 -> 8 [style=solid label="\"in\""] - 141 -> 42 [style=solid label="\"forall\""] - 141 -> 43 [style=solid label="\"choose\""] - 141 -> 44 [style=solid label="\"if\""] - 141 -> 45 [style=solid label="\"exists\""] - 141 -> 46 [style=solid label="\"undef\""] - 141 -> 47 [style=solid label="\"false\""] - 141 -> 48 [style=solid label="\"true\""] - 141 -> 49 [style=solid label="\"not\""] - 141 -> 50 [style=solid label="\"+\""] - 141 -> 51 [style=solid label="\"-\""] - 141 -> 52 [style=solid label="\"(\""] - 141 -> 53 [style=solid label="\"[\""] - 141 -> 54 [style=solid label="\"|\""] - 141 -> 55 [style=solid label="\"@\""] - 141 -> 56 [style=solid label="\"binary\""] - 141 -> 57 [style=solid label="\"hexadecimal\""] - 141 -> 58 [style=solid label="\"integer\""] - 141 -> 59 [style=solid label="\"rational\""] - 141 -> 60 [style=solid label="\"decimal\""] - 141 -> 61 [style=solid label="\"string\""] - 141 -> 9 [style=solid label="\"identifier\""] - 141 -> 201 [style=dashed label="Term"] - 141 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 141 -> 64 [style=dashed label="OperatorExpression"] - 141 -> 65 [style=dashed label="CallExpression"] - 141 -> 66 [style=dashed label="DirectCallExpression"] - 141 -> 67 [style=dashed label="MethodCallExpression"] - 141 -> 68 [style=dashed label="LiteralCallExpression"] - 141 -> 69 [style=dashed label="IndirectCallExpression"] - 141 -> 70 [style=dashed label="TypeCastingExpression"] - 141 -> 71 [style=dashed label="LetExpression"] - 141 -> 72 [style=dashed label="ConditionalExpression"] - 141 -> 73 [style=dashed label="ChooseExpression"] - 141 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 141 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 141 -> 76 [style=dashed label="CardinalityExpression"] - 141 -> 77 [style=dashed label="Literal"] - 141 -> 78 [style=dashed label="UndefinedLiteral"] - 141 -> 79 [style=dashed label="BooleanLiteral"] - 141 -> 80 [style=dashed label="IntegerLiteral"] - 141 -> 81 [style=dashed label="RationalLiteral"] - 141 -> 82 [style=dashed label="DecimalLiteral"] - 141 -> 83 [style=dashed label="BinaryLiteral"] - 141 -> 84 [style=dashed label="StringLiteral"] - 141 -> 85 [style=dashed label="ReferenceLiteral"] - 141 -> 86 [style=dashed label="ListLiteral"] - 141 -> 87 [style=dashed label="RangeLiteral"] - 141 -> 88 [style=dashed label="TupleLiteral"] - 141 -> 89 [style=dashed label="RecordLiteral"] - 141 -> 90 [style=dashed label="Identifier"] - 141 -> 91 [style=dashed label="IdentifierPath"] - 142 [label="State 142\n\l113 OperatorExpression: Term \">\" • Term\l"] - 142 -> 41 [style=solid label="\"let\""] - 142 -> 8 [style=solid label="\"in\""] - 142 -> 42 [style=solid label="\"forall\""] - 142 -> 43 [style=solid label="\"choose\""] - 142 -> 44 [style=solid label="\"if\""] - 142 -> 45 [style=solid label="\"exists\""] - 142 -> 46 [style=solid label="\"undef\""] - 142 -> 47 [style=solid label="\"false\""] - 142 -> 48 [style=solid label="\"true\""] - 142 -> 49 [style=solid label="\"not\""] - 142 -> 50 [style=solid label="\"+\""] - 142 -> 51 [style=solid label="\"-\""] - 142 -> 52 [style=solid label="\"(\""] - 142 -> 53 [style=solid label="\"[\""] - 142 -> 54 [style=solid label="\"|\""] - 142 -> 55 [style=solid label="\"@\""] - 142 -> 56 [style=solid label="\"binary\""] - 142 -> 57 [style=solid label="\"hexadecimal\""] - 142 -> 58 [style=solid label="\"integer\""] - 142 -> 59 [style=solid label="\"rational\""] - 142 -> 60 [style=solid label="\"decimal\""] - 142 -> 61 [style=solid label="\"string\""] - 142 -> 9 [style=solid label="\"identifier\""] - 142 -> 202 [style=dashed label="Term"] - 142 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 142 -> 64 [style=dashed label="OperatorExpression"] - 142 -> 65 [style=dashed label="CallExpression"] - 142 -> 66 [style=dashed label="DirectCallExpression"] - 142 -> 67 [style=dashed label="MethodCallExpression"] - 142 -> 68 [style=dashed label="LiteralCallExpression"] - 142 -> 69 [style=dashed label="IndirectCallExpression"] - 142 -> 70 [style=dashed label="TypeCastingExpression"] - 142 -> 71 [style=dashed label="LetExpression"] - 142 -> 72 [style=dashed label="ConditionalExpression"] - 142 -> 73 [style=dashed label="ChooseExpression"] - 142 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 142 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 142 -> 76 [style=dashed label="CardinalityExpression"] - 142 -> 77 [style=dashed label="Literal"] - 142 -> 78 [style=dashed label="UndefinedLiteral"] - 142 -> 79 [style=dashed label="BooleanLiteral"] - 142 -> 80 [style=dashed label="IntegerLiteral"] - 142 -> 81 [style=dashed label="RationalLiteral"] - 142 -> 82 [style=dashed label="DecimalLiteral"] - 142 -> 83 [style=dashed label="BinaryLiteral"] - 142 -> 84 [style=dashed label="StringLiteral"] - 142 -> 85 [style=dashed label="ReferenceLiteral"] - 142 -> 86 [style=dashed label="ListLiteral"] - 142 -> 87 [style=dashed label="RangeLiteral"] - 142 -> 88 [style=dashed label="TupleLiteral"] - 142 -> 89 [style=dashed label="RecordLiteral"] - 142 -> 90 [style=dashed label="Identifier"] - 142 -> 91 [style=dashed label="IdentifierPath"] - 143 [label="State 143\n\l106 OperatorExpression: Term \"*\" • Term\l"] - 143 -> 41 [style=solid label="\"let\""] - 143 -> 8 [style=solid label="\"in\""] - 143 -> 42 [style=solid label="\"forall\""] - 143 -> 43 [style=solid label="\"choose\""] - 143 -> 44 [style=solid label="\"if\""] - 143 -> 45 [style=solid label="\"exists\""] - 143 -> 46 [style=solid label="\"undef\""] - 143 -> 47 [style=solid label="\"false\""] - 143 -> 48 [style=solid label="\"true\""] - 143 -> 49 [style=solid label="\"not\""] - 143 -> 50 [style=solid label="\"+\""] - 143 -> 51 [style=solid label="\"-\""] - 143 -> 52 [style=solid label="\"(\""] - 143 -> 53 [style=solid label="\"[\""] - 143 -> 54 [style=solid label="\"|\""] - 143 -> 55 [style=solid label="\"@\""] - 143 -> 56 [style=solid label="\"binary\""] - 143 -> 57 [style=solid label="\"hexadecimal\""] - 143 -> 58 [style=solid label="\"integer\""] - 143 -> 59 [style=solid label="\"rational\""] - 143 -> 60 [style=solid label="\"decimal\""] - 143 -> 61 [style=solid label="\"string\""] - 143 -> 9 [style=solid label="\"identifier\""] - 143 -> 203 [style=dashed label="Term"] - 143 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 143 -> 64 [style=dashed label="OperatorExpression"] - 143 -> 65 [style=dashed label="CallExpression"] - 143 -> 66 [style=dashed label="DirectCallExpression"] - 143 -> 67 [style=dashed label="MethodCallExpression"] - 143 -> 68 [style=dashed label="LiteralCallExpression"] - 143 -> 69 [style=dashed label="IndirectCallExpression"] - 143 -> 70 [style=dashed label="TypeCastingExpression"] - 143 -> 71 [style=dashed label="LetExpression"] - 143 -> 72 [style=dashed label="ConditionalExpression"] - 143 -> 73 [style=dashed label="ChooseExpression"] - 143 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 143 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 143 -> 76 [style=dashed label="CardinalityExpression"] - 143 -> 77 [style=dashed label="Literal"] - 143 -> 78 [style=dashed label="UndefinedLiteral"] - 143 -> 79 [style=dashed label="BooleanLiteral"] - 143 -> 80 [style=dashed label="IntegerLiteral"] - 143 -> 81 [style=dashed label="RationalLiteral"] - 143 -> 82 [style=dashed label="DecimalLiteral"] - 143 -> 83 [style=dashed label="BinaryLiteral"] - 143 -> 84 [style=dashed label="StringLiteral"] - 143 -> 85 [style=dashed label="ReferenceLiteral"] - 143 -> 86 [style=dashed label="ListLiteral"] - 143 -> 87 [style=dashed label="RangeLiteral"] - 143 -> 88 [style=dashed label="TupleLiteral"] - 143 -> 89 [style=dashed label="RecordLiteral"] - 143 -> 90 [style=dashed label="Identifier"] - 143 -> 91 [style=dashed label="IdentifierPath"] - 144 [label="State 144\n\l107 OperatorExpression: Term \"/\" • Term\l"] - 144 -> 41 [style=solid label="\"let\""] - 144 -> 8 [style=solid label="\"in\""] - 144 -> 42 [style=solid label="\"forall\""] - 144 -> 43 [style=solid label="\"choose\""] - 144 -> 44 [style=solid label="\"if\""] - 144 -> 45 [style=solid label="\"exists\""] - 144 -> 46 [style=solid label="\"undef\""] - 144 -> 47 [style=solid label="\"false\""] - 144 -> 48 [style=solid label="\"true\""] - 144 -> 49 [style=solid label="\"not\""] - 144 -> 50 [style=solid label="\"+\""] - 144 -> 51 [style=solid label="\"-\""] - 144 -> 52 [style=solid label="\"(\""] - 144 -> 53 [style=solid label="\"[\""] - 144 -> 54 [style=solid label="\"|\""] - 144 -> 55 [style=solid label="\"@\""] - 144 -> 56 [style=solid label="\"binary\""] - 144 -> 57 [style=solid label="\"hexadecimal\""] - 144 -> 58 [style=solid label="\"integer\""] - 144 -> 59 [style=solid label="\"rational\""] - 144 -> 60 [style=solid label="\"decimal\""] - 144 -> 61 [style=solid label="\"string\""] - 144 -> 9 [style=solid label="\"identifier\""] - 144 -> 204 [style=dashed label="Term"] - 144 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 144 -> 64 [style=dashed label="OperatorExpression"] - 144 -> 65 [style=dashed label="CallExpression"] - 144 -> 66 [style=dashed label="DirectCallExpression"] - 144 -> 67 [style=dashed label="MethodCallExpression"] - 144 -> 68 [style=dashed label="LiteralCallExpression"] - 144 -> 69 [style=dashed label="IndirectCallExpression"] - 144 -> 70 [style=dashed label="TypeCastingExpression"] - 144 -> 71 [style=dashed label="LetExpression"] - 144 -> 72 [style=dashed label="ConditionalExpression"] - 144 -> 73 [style=dashed label="ChooseExpression"] - 144 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 144 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 144 -> 76 [style=dashed label="CardinalityExpression"] - 144 -> 77 [style=dashed label="Literal"] - 144 -> 78 [style=dashed label="UndefinedLiteral"] - 144 -> 79 [style=dashed label="BooleanLiteral"] - 144 -> 80 [style=dashed label="IntegerLiteral"] - 144 -> 81 [style=dashed label="RationalLiteral"] - 144 -> 82 [style=dashed label="DecimalLiteral"] - 144 -> 83 [style=dashed label="BinaryLiteral"] - 144 -> 84 [style=dashed label="StringLiteral"] - 144 -> 85 [style=dashed label="ReferenceLiteral"] - 144 -> 86 [style=dashed label="ListLiteral"] - 144 -> 87 [style=dashed label="RangeLiteral"] - 144 -> 88 [style=dashed label="TupleLiteral"] - 144 -> 89 [style=dashed label="RecordLiteral"] - 144 -> 90 [style=dashed label="Identifier"] - 144 -> 91 [style=dashed label="IdentifierPath"] - 145 [label="State 145\n\l108 OperatorExpression: Term \"%\" • Term\l"] - 145 -> 41 [style=solid label="\"let\""] - 145 -> 8 [style=solid label="\"in\""] - 145 -> 42 [style=solid label="\"forall\""] - 145 -> 43 [style=solid label="\"choose\""] - 145 -> 44 [style=solid label="\"if\""] - 145 -> 45 [style=solid label="\"exists\""] - 145 -> 46 [style=solid label="\"undef\""] - 145 -> 47 [style=solid label="\"false\""] - 145 -> 48 [style=solid label="\"true\""] - 145 -> 49 [style=solid label="\"not\""] - 145 -> 50 [style=solid label="\"+\""] - 145 -> 51 [style=solid label="\"-\""] - 145 -> 52 [style=solid label="\"(\""] - 145 -> 53 [style=solid label="\"[\""] - 145 -> 54 [style=solid label="\"|\""] - 145 -> 55 [style=solid label="\"@\""] - 145 -> 56 [style=solid label="\"binary\""] - 145 -> 57 [style=solid label="\"hexadecimal\""] - 145 -> 58 [style=solid label="\"integer\""] - 145 -> 59 [style=solid label="\"rational\""] - 145 -> 60 [style=solid label="\"decimal\""] - 145 -> 61 [style=solid label="\"string\""] - 145 -> 9 [style=solid label="\"identifier\""] - 145 -> 205 [style=dashed label="Term"] - 145 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 145 -> 64 [style=dashed label="OperatorExpression"] - 145 -> 65 [style=dashed label="CallExpression"] - 145 -> 66 [style=dashed label="DirectCallExpression"] - 145 -> 67 [style=dashed label="MethodCallExpression"] - 145 -> 68 [style=dashed label="LiteralCallExpression"] - 145 -> 69 [style=dashed label="IndirectCallExpression"] - 145 -> 70 [style=dashed label="TypeCastingExpression"] - 145 -> 71 [style=dashed label="LetExpression"] - 145 -> 72 [style=dashed label="ConditionalExpression"] - 145 -> 73 [style=dashed label="ChooseExpression"] - 145 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 145 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 145 -> 76 [style=dashed label="CardinalityExpression"] - 145 -> 77 [style=dashed label="Literal"] - 145 -> 78 [style=dashed label="UndefinedLiteral"] - 145 -> 79 [style=dashed label="BooleanLiteral"] - 145 -> 80 [style=dashed label="IntegerLiteral"] - 145 -> 81 [style=dashed label="RationalLiteral"] - 145 -> 82 [style=dashed label="DecimalLiteral"] - 145 -> 83 [style=dashed label="BinaryLiteral"] - 145 -> 84 [style=dashed label="StringLiteral"] - 145 -> 85 [style=dashed label="ReferenceLiteral"] - 145 -> 86 [style=dashed label="ListLiteral"] - 145 -> 87 [style=dashed label="RangeLiteral"] - 145 -> 88 [style=dashed label="TupleLiteral"] - 145 -> 89 [style=dashed label="RecordLiteral"] - 145 -> 90 [style=dashed label="Identifier"] - 145 -> 91 [style=dashed label="IdentifierPath"] - 146 [label="State 146\n\l109 OperatorExpression: Term \"^\" • Term\l"] - 146 -> 41 [style=solid label="\"let\""] - 146 -> 8 [style=solid label="\"in\""] - 146 -> 42 [style=solid label="\"forall\""] - 146 -> 43 [style=solid label="\"choose\""] - 146 -> 44 [style=solid label="\"if\""] - 146 -> 45 [style=solid label="\"exists\""] - 146 -> 46 [style=solid label="\"undef\""] - 146 -> 47 [style=solid label="\"false\""] - 146 -> 48 [style=solid label="\"true\""] - 146 -> 49 [style=solid label="\"not\""] - 146 -> 50 [style=solid label="\"+\""] - 146 -> 51 [style=solid label="\"-\""] - 146 -> 52 [style=solid label="\"(\""] - 146 -> 53 [style=solid label="\"[\""] - 146 -> 54 [style=solid label="\"|\""] - 146 -> 55 [style=solid label="\"@\""] - 146 -> 56 [style=solid label="\"binary\""] - 146 -> 57 [style=solid label="\"hexadecimal\""] - 146 -> 58 [style=solid label="\"integer\""] - 146 -> 59 [style=solid label="\"rational\""] - 146 -> 60 [style=solid label="\"decimal\""] - 146 -> 61 [style=solid label="\"string\""] - 146 -> 9 [style=solid label="\"identifier\""] - 146 -> 206 [style=dashed label="Term"] - 146 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 146 -> 64 [style=dashed label="OperatorExpression"] - 146 -> 65 [style=dashed label="CallExpression"] - 146 -> 66 [style=dashed label="DirectCallExpression"] - 146 -> 67 [style=dashed label="MethodCallExpression"] - 146 -> 68 [style=dashed label="LiteralCallExpression"] - 146 -> 69 [style=dashed label="IndirectCallExpression"] - 146 -> 70 [style=dashed label="TypeCastingExpression"] - 146 -> 71 [style=dashed label="LetExpression"] - 146 -> 72 [style=dashed label="ConditionalExpression"] - 146 -> 73 [style=dashed label="ChooseExpression"] - 146 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 146 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 146 -> 76 [style=dashed label="CardinalityExpression"] - 146 -> 77 [style=dashed label="Literal"] - 146 -> 78 [style=dashed label="UndefinedLiteral"] - 146 -> 79 [style=dashed label="BooleanLiteral"] - 146 -> 80 [style=dashed label="IntegerLiteral"] - 146 -> 81 [style=dashed label="RationalLiteral"] - 146 -> 82 [style=dashed label="DecimalLiteral"] - 146 -> 83 [style=dashed label="BinaryLiteral"] - 146 -> 84 [style=dashed label="StringLiteral"] - 146 -> 85 [style=dashed label="ReferenceLiteral"] - 146 -> 86 [style=dashed label="ListLiteral"] - 146 -> 87 [style=dashed label="RangeLiteral"] - 146 -> 88 [style=dashed label="TupleLiteral"] - 146 -> 89 [style=dashed label="RecordLiteral"] - 146 -> 90 [style=dashed label="Identifier"] - 146 -> 91 [style=dashed label="IdentifierPath"] - 147 [label="State 147\n\l119 OperatorExpression: Term \"=>\" • Term\l"] - 147 -> 41 [style=solid label="\"let\""] - 147 -> 8 [style=solid label="\"in\""] - 147 -> 42 [style=solid label="\"forall\""] - 147 -> 43 [style=solid label="\"choose\""] - 147 -> 44 [style=solid label="\"if\""] - 147 -> 45 [style=solid label="\"exists\""] - 147 -> 46 [style=solid label="\"undef\""] - 147 -> 47 [style=solid label="\"false\""] - 147 -> 48 [style=solid label="\"true\""] - 147 -> 49 [style=solid label="\"not\""] - 147 -> 50 [style=solid label="\"+\""] - 147 -> 51 [style=solid label="\"-\""] - 147 -> 52 [style=solid label="\"(\""] - 147 -> 53 [style=solid label="\"[\""] - 147 -> 54 [style=solid label="\"|\""] - 147 -> 55 [style=solid label="\"@\""] - 147 -> 56 [style=solid label="\"binary\""] - 147 -> 57 [style=solid label="\"hexadecimal\""] - 147 -> 58 [style=solid label="\"integer\""] - 147 -> 59 [style=solid label="\"rational\""] - 147 -> 60 [style=solid label="\"decimal\""] - 147 -> 61 [style=solid label="\"string\""] - 147 -> 9 [style=solid label="\"identifier\""] - 147 -> 207 [style=dashed label="Term"] - 147 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 147 -> 64 [style=dashed label="OperatorExpression"] - 147 -> 65 [style=dashed label="CallExpression"] - 147 -> 66 [style=dashed label="DirectCallExpression"] - 147 -> 67 [style=dashed label="MethodCallExpression"] - 147 -> 68 [style=dashed label="LiteralCallExpression"] - 147 -> 69 [style=dashed label="IndirectCallExpression"] - 147 -> 70 [style=dashed label="TypeCastingExpression"] - 147 -> 71 [style=dashed label="LetExpression"] - 147 -> 72 [style=dashed label="ConditionalExpression"] - 147 -> 73 [style=dashed label="ChooseExpression"] - 147 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 147 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 147 -> 76 [style=dashed label="CardinalityExpression"] - 147 -> 77 [style=dashed label="Literal"] - 147 -> 78 [style=dashed label="UndefinedLiteral"] - 147 -> 79 [style=dashed label="BooleanLiteral"] - 147 -> 80 [style=dashed label="IntegerLiteral"] - 147 -> 81 [style=dashed label="RationalLiteral"] - 147 -> 82 [style=dashed label="DecimalLiteral"] - 147 -> 83 [style=dashed label="BinaryLiteral"] - 147 -> 84 [style=dashed label="StringLiteral"] - 147 -> 85 [style=dashed label="ReferenceLiteral"] - 147 -> 86 [style=dashed label="ListLiteral"] - 147 -> 87 [style=dashed label="RangeLiteral"] - 147 -> 88 [style=dashed label="TupleLiteral"] - 147 -> 89 [style=dashed label="RecordLiteral"] - 147 -> 90 [style=dashed label="Identifier"] - 147 -> 91 [style=dashed label="IdentifierPath"] - 148 [label="State 148\n\l110 OperatorExpression: Term \"!=\" • Term\l"] - 148 -> 41 [style=solid label="\"let\""] + 55 -> 135 [style=dashed label="SimpleOrClaspedTerm"] + 55 -> 69 [style=dashed label="CallExpression"] + 55 -> 70 [style=dashed label="DirectCallExpression"] + 55 -> 71 [style=dashed label="MethodCallExpression"] + 55 -> 72 [style=dashed label="LiteralCallExpression"] + 55 -> 73 [style=dashed label="IndirectCallExpression"] + 55 -> 81 [style=dashed label="Literal"] + 55 -> 82 [style=dashed label="UndefinedLiteral"] + 55 -> 83 [style=dashed label="BooleanLiteral"] + 55 -> 84 [style=dashed label="IntegerLiteral"] + 55 -> 85 [style=dashed label="RationalLiteral"] + 55 -> 86 [style=dashed label="DecimalLiteral"] + 55 -> 87 [style=dashed label="BinaryLiteral"] + 55 -> 88 [style=dashed label="StringLiteral"] + 55 -> 89 [style=dashed label="ReferenceLiteral"] + 55 -> 90 [style=dashed label="ListLiteral"] + 55 -> 91 [style=dashed label="RangeLiteral"] + 55 -> 92 [style=dashed label="TupleLiteral"] + 55 -> 93 [style=dashed label="RecordLiteral"] + 55 -> 94 [style=dashed label="Identifier"] + 55 -> 95 [style=dashed label="IdentifierPath"] + 56 [label="State 56\n\l113 SimpleOrClaspedTerm: \"(\" • Term \")\"\l114 | \"(\" • error \")\"\l186 TupleLiteral: \"(\" • Terms \",\" Term \")\"\l187 RecordLiteral: \"(\" • Assignments \")\"\l"] + 56 -> 136 [style=dotted] + 56 -> 45 [style=solid label="\"let\""] + 56 -> 8 [style=solid label="\"in\""] + 56 -> 46 [style=solid label="\"forall\""] + 56 -> 47 [style=solid label="\"choose\""] + 56 -> 48 [style=solid label="\"if\""] + 56 -> 49 [style=solid label="\"exists\""] + 56 -> 50 [style=solid label="\"undef\""] + 56 -> 51 [style=solid label="\"false\""] + 56 -> 52 [style=solid label="\"true\""] + 56 -> 53 [style=solid label="\"not\""] + 56 -> 54 [style=solid label="\"+\""] + 56 -> 55 [style=solid label="\"-\""] + 56 -> 56 [style=solid label="\"(\""] + 56 -> 57 [style=solid label="\"[\""] + 56 -> 58 [style=solid label="\"|\""] + 56 -> 59 [style=solid label="\"@\""] + 56 -> 60 [style=solid label="\"binary\""] + 56 -> 61 [style=solid label="\"hexadecimal\""] + 56 -> 62 [style=solid label="\"integer\""] + 56 -> 63 [style=solid label="\"rational\""] + 56 -> 64 [style=solid label="\"decimal\""] + 56 -> 65 [style=solid label="\"string\""] + 56 -> 9 [style=solid label="\"identifier\""] + 56 -> 137 [style=dashed label="Terms"] + 56 -> 138 [style=dashed label="Term"] + 56 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 56 -> 68 [style=dashed label="OperatorExpression"] + 56 -> 69 [style=dashed label="CallExpression"] + 56 -> 70 [style=dashed label="DirectCallExpression"] + 56 -> 71 [style=dashed label="MethodCallExpression"] + 56 -> 72 [style=dashed label="LiteralCallExpression"] + 56 -> 73 [style=dashed label="IndirectCallExpression"] + 56 -> 74 [style=dashed label="TypeCastingExpression"] + 56 -> 75 [style=dashed label="LetExpression"] + 56 -> 76 [style=dashed label="ConditionalExpression"] + 56 -> 77 [style=dashed label="ChooseExpression"] + 56 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 56 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 56 -> 80 [style=dashed label="CardinalityExpression"] + 56 -> 81 [style=dashed label="Literal"] + 56 -> 82 [style=dashed label="UndefinedLiteral"] + 56 -> 83 [style=dashed label="BooleanLiteral"] + 56 -> 84 [style=dashed label="IntegerLiteral"] + 56 -> 85 [style=dashed label="RationalLiteral"] + 56 -> 86 [style=dashed label="DecimalLiteral"] + 56 -> 87 [style=dashed label="BinaryLiteral"] + 56 -> 88 [style=dashed label="StringLiteral"] + 56 -> 89 [style=dashed label="ReferenceLiteral"] + 56 -> 90 [style=dashed label="ListLiteral"] + 56 -> 91 [style=dashed label="RangeLiteral"] + 56 -> 92 [style=dashed label="TupleLiteral"] + 56 -> 93 [style=dashed label="RecordLiteral"] + 56 -> 139 [style=dashed label="Assignments"] + 56 -> 140 [style=dashed label="Assignment"] + 56 -> 141 [style=dashed label="Identifier"] + 56 -> 95 [style=dashed label="IdentifierPath"] + 57 [label="State 57\n\l182 ListLiteral: \"[\" • \"]\"\l183 | \"[\" • Terms \"]\"\l184 | \"[\" • error \"]\"\l185 RangeLiteral: \"[\" • Term \"..\" Term \"]\"\l"] + 57 -> 142 [style=dotted] + 57 -> 45 [style=solid label="\"let\""] + 57 -> 8 [style=solid label="\"in\""] + 57 -> 46 [style=solid label="\"forall\""] + 57 -> 47 [style=solid label="\"choose\""] + 57 -> 48 [style=solid label="\"if\""] + 57 -> 49 [style=solid label="\"exists\""] + 57 -> 50 [style=solid label="\"undef\""] + 57 -> 51 [style=solid label="\"false\""] + 57 -> 52 [style=solid label="\"true\""] + 57 -> 53 [style=solid label="\"not\""] + 57 -> 54 [style=solid label="\"+\""] + 57 -> 55 [style=solid label="\"-\""] + 57 -> 56 [style=solid label="\"(\""] + 57 -> 57 [style=solid label="\"[\""] + 57 -> 143 [style=solid label="\"]\""] + 57 -> 58 [style=solid label="\"|\""] + 57 -> 59 [style=solid label="\"@\""] + 57 -> 60 [style=solid label="\"binary\""] + 57 -> 61 [style=solid label="\"hexadecimal\""] + 57 -> 62 [style=solid label="\"integer\""] + 57 -> 63 [style=solid label="\"rational\""] + 57 -> 64 [style=solid label="\"decimal\""] + 57 -> 65 [style=solid label="\"string\""] + 57 -> 9 [style=solid label="\"identifier\""] + 57 -> 144 [style=dashed label="Terms"] + 57 -> 145 [style=dashed label="Term"] + 57 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 57 -> 68 [style=dashed label="OperatorExpression"] + 57 -> 69 [style=dashed label="CallExpression"] + 57 -> 70 [style=dashed label="DirectCallExpression"] + 57 -> 71 [style=dashed label="MethodCallExpression"] + 57 -> 72 [style=dashed label="LiteralCallExpression"] + 57 -> 73 [style=dashed label="IndirectCallExpression"] + 57 -> 74 [style=dashed label="TypeCastingExpression"] + 57 -> 75 [style=dashed label="LetExpression"] + 57 -> 76 [style=dashed label="ConditionalExpression"] + 57 -> 77 [style=dashed label="ChooseExpression"] + 57 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 57 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 57 -> 80 [style=dashed label="CardinalityExpression"] + 57 -> 81 [style=dashed label="Literal"] + 57 -> 82 [style=dashed label="UndefinedLiteral"] + 57 -> 83 [style=dashed label="BooleanLiteral"] + 57 -> 84 [style=dashed label="IntegerLiteral"] + 57 -> 85 [style=dashed label="RationalLiteral"] + 57 -> 86 [style=dashed label="DecimalLiteral"] + 57 -> 87 [style=dashed label="BinaryLiteral"] + 57 -> 88 [style=dashed label="StringLiteral"] + 57 -> 89 [style=dashed label="ReferenceLiteral"] + 57 -> 90 [style=dashed label="ListLiteral"] + 57 -> 91 [style=dashed label="RangeLiteral"] + 57 -> 92 [style=dashed label="TupleLiteral"] + 57 -> 93 [style=dashed label="RecordLiteral"] + 57 -> 94 [style=dashed label="Identifier"] + 57 -> 95 [style=dashed label="IdentifierPath"] + 58 [label="State 58\n\l159 CardinalityExpression: \"|\" • SimpleOrClaspedTerm \"|\"\l"] + 58 -> 8 [style=solid label="\"in\""] + 58 -> 50 [style=solid label="\"undef\""] + 58 -> 51 [style=solid label="\"false\""] + 58 -> 52 [style=solid label="\"true\""] + 58 -> 54 [style=solid label="\"+\""] + 58 -> 55 [style=solid label="\"-\""] + 58 -> 56 [style=solid label="\"(\""] + 58 -> 57 [style=solid label="\"[\""] + 58 -> 59 [style=solid label="\"@\""] + 58 -> 60 [style=solid label="\"binary\""] + 58 -> 61 [style=solid label="\"hexadecimal\""] + 58 -> 62 [style=solid label="\"integer\""] + 58 -> 63 [style=solid label="\"rational\""] + 58 -> 64 [style=solid label="\"decimal\""] + 58 -> 65 [style=solid label="\"string\""] + 58 -> 9 [style=solid label="\"identifier\""] + 58 -> 146 [style=dashed label="SimpleOrClaspedTerm"] + 58 -> 69 [style=dashed label="CallExpression"] + 58 -> 70 [style=dashed label="DirectCallExpression"] + 58 -> 71 [style=dashed label="MethodCallExpression"] + 58 -> 72 [style=dashed label="LiteralCallExpression"] + 58 -> 73 [style=dashed label="IndirectCallExpression"] + 58 -> 81 [style=dashed label="Literal"] + 58 -> 82 [style=dashed label="UndefinedLiteral"] + 58 -> 83 [style=dashed label="BooleanLiteral"] + 58 -> 84 [style=dashed label="IntegerLiteral"] + 58 -> 85 [style=dashed label="RationalLiteral"] + 58 -> 86 [style=dashed label="DecimalLiteral"] + 58 -> 87 [style=dashed label="BinaryLiteral"] + 58 -> 88 [style=dashed label="StringLiteral"] + 58 -> 89 [style=dashed label="ReferenceLiteral"] + 58 -> 90 [style=dashed label="ListLiteral"] + 58 -> 91 [style=dashed label="RangeLiteral"] + 58 -> 92 [style=dashed label="TupleLiteral"] + 58 -> 93 [style=dashed label="RecordLiteral"] + 58 -> 94 [style=dashed label="Identifier"] + 58 -> 95 [style=dashed label="IdentifierPath"] + 59 [label="State 59\n\l181 ReferenceLiteral: \"@\" • IdentifierPath\l"] + 59 -> 8 [style=solid label="\"in\""] + 59 -> 9 [style=solid label="\"identifier\""] + 59 -> 94 [style=dashed label="Identifier"] + 59 -> 147 [style=dashed label="IdentifierPath"] + 60 [label="State 60\n\l178 BinaryLiteral: \"binary\" •\l"] + 60 -> "60R178" [style=solid] + "60R178" [label="R178", fillcolor=3, shape=diamond, style=filled] + 61 [label="State 61\n\l179 BinaryLiteral: \"hexadecimal\" •\l"] + 61 -> "61R179" [style=solid] + "61R179" [label="R179", fillcolor=3, shape=diamond, style=filled] + 62 [label="State 62\n\l175 IntegerLiteral: \"integer\" •\l"] + 62 -> "62R175" [style=solid] + "62R175" [label="R175", fillcolor=3, shape=diamond, style=filled] + 63 [label="State 63\n\l176 RationalLiteral: \"rational\" •\l"] + 63 -> "63R176" [style=solid] + "63R176" [label="R176", fillcolor=3, shape=diamond, style=filled] + 64 [label="State 64\n\l177 DecimalLiteral: \"decimal\" •\l"] + 64 -> "64R177" [style=solid] + "64R177" [label="R177", fillcolor=3, shape=diamond, style=filled] + 65 [label="State 65\n\l180 StringLiteral: \"string\" •\l"] + 65 -> "65R180" [style=solid] + "65R180" [label="R180", fillcolor=3, shape=diamond, style=filled] + 66 [label="State 66\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l250 ExpressionAttribute: Identifier Term •\l"] + 66 -> 148 [style=solid label="\"and\""] + 66 -> 149 [style=solid label="\"or\""] + 66 -> 150 [style=solid label="\"xor\""] + 66 -> 151 [style=solid label="\"implies\""] + 66 -> 152 [style=solid label="\"+\""] + 66 -> 153 [style=solid label="\"-\""] + 66 -> 154 [style=solid label="\"=\""] + 66 -> 155 [style=solid label="\"<\""] + 66 -> 156 [style=solid label="\">\""] + 66 -> 157 [style=solid label="\"*\""] + 66 -> 158 [style=solid label="\"/\""] + 66 -> 159 [style=solid label="\"%\""] + 66 -> 160 [style=solid label="\"^\""] + 66 -> 161 [style=solid label="\"=>\""] + 66 -> 162 [style=solid label="\"!=\""] + 66 -> 163 [style=solid label="\"<=\""] + 66 -> 164 [style=solid label="\">=\""] + 66 -> "66R250" [style=solid] + "66R250" [label="R250", fillcolor=3, shape=diamond, style=filled] + 67 [label="State 67\n\l104 Term: SimpleOrClaspedTerm •\l145 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l146 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l147 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l149 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l153 TypeCastingExpression: SimpleOrClaspedTerm • \"as\" Type\l"] + 67 -> 165 [style=solid label="\"as\""] + 67 -> 166 [style=solid label="\".\""] + 67 -> "67R104" [style=solid] + "67R104" [label="R104", fillcolor=3, shape=diamond, style=filled] + 68 [label="State 68\n\l106 Term: OperatorExpression •\l"] + 68 -> "68R106" [style=solid] + "68R106" [label="R106", fillcolor=3, shape=diamond, style=filled] + 69 [label="State 69\n\l115 SimpleOrClaspedTerm: CallExpression •\l150 IndirectCallExpression: CallExpression • \"(\" \")\"\l151 | CallExpression • \"(\" Terms \")\"\l152 | CallExpression • \"(\" error \")\"\l"] + 69 -> 167 [style=solid label="\"(\""] + 69 -> "69R115" [style=solid] + "69R115" [label="R115", fillcolor=3, shape=diamond, style=filled] + 70 [label="State 70\n\l138 CallExpression: DirectCallExpression •\l"] + 70 -> "70R138" [style=solid] + "70R138" [label="R138", fillcolor=3, shape=diamond, style=filled] + 71 [label="State 71\n\l139 CallExpression: MethodCallExpression •\l"] + 71 -> "71R139" [style=solid] + "71R139" [label="R139", fillcolor=3, shape=diamond, style=filled] + 72 [label="State 72\n\l116 SimpleOrClaspedTerm: LiteralCallExpression •\l"] + 72 -> "72R116" [style=solid] + "72R116" [label="R116", fillcolor=3, shape=diamond, style=filled] + 73 [label="State 73\n\l140 CallExpression: IndirectCallExpression •\l"] + 73 -> "73R140" [style=solid] + "73R140" [label="R140", fillcolor=3, shape=diamond, style=filled] + 74 [label="State 74\n\l105 Term: TypeCastingExpression •\l"] + 74 -> "74R105" [style=solid] + "74R105" [label="R105", fillcolor=3, shape=diamond, style=filled] + 75 [label="State 75\n\l107 Term: LetExpression •\l"] + 75 -> "75R107" [style=solid] + "75R107" [label="R107", fillcolor=3, shape=diamond, style=filled] + 76 [label="State 76\n\l108 Term: ConditionalExpression •\l"] + 76 -> "76R108" [style=solid] + "76R108" [label="R108", fillcolor=3, shape=diamond, style=filled] + 77 [label="State 77\n\l109 Term: ChooseExpression •\l"] + 77 -> "77R109" [style=solid] + "77R109" [label="R109", fillcolor=3, shape=diamond, style=filled] + 78 [label="State 78\n\l110 Term: UniversalQuantifierExpression •\l"] + 78 -> "78R110" [style=solid] + "78R110" [label="R110", fillcolor=3, shape=diamond, style=filled] + 79 [label="State 79\n\l111 Term: ExistentialQuantifierExpression •\l"] + 79 -> "79R111" [style=solid] + "79R111" [label="R111", fillcolor=3, shape=diamond, style=filled] + 80 [label="State 80\n\l112 Term: CardinalityExpression •\l"] + 80 -> "80R112" [style=solid] + "80R112" [label="R112", fillcolor=3, shape=diamond, style=filled] + 81 [label="State 81\n\l117 SimpleOrClaspedTerm: Literal •\l"] + 81 -> "81R117" [style=solid] + "81R117" [label="R117", fillcolor=3, shape=diamond, style=filled] + 82 [label="State 82\n\l160 Literal: UndefinedLiteral •\l"] + 82 -> "82R160" [style=solid] + "82R160" [label="R160", fillcolor=3, shape=diamond, style=filled] + 83 [label="State 83\n\l161 Literal: BooleanLiteral •\l"] + 83 -> "83R161" [style=solid] + "83R161" [label="R161", fillcolor=3, shape=diamond, style=filled] + 84 [label="State 84\n\l162 Literal: IntegerLiteral •\l"] + 84 -> "84R162" [style=solid] + "84R162" [label="R162", fillcolor=3, shape=diamond, style=filled] + 85 [label="State 85\n\l163 Literal: RationalLiteral •\l"] + 85 -> "85R163" [style=solid] + "85R163" [label="R163", fillcolor=3, shape=diamond, style=filled] + 86 [label="State 86\n\l164 Literal: DecimalLiteral •\l"] + 86 -> "86R164" [style=solid] + "86R164" [label="R164", fillcolor=3, shape=diamond, style=filled] + 87 [label="State 87\n\l165 Literal: BinaryLiteral •\l"] + 87 -> "87R165" [style=solid] + "87R165" [label="R165", fillcolor=3, shape=diamond, style=filled] + 88 [label="State 88\n\l166 Literal: StringLiteral •\l"] + 88 -> "88R166" [style=solid] + "88R166" [label="R166", fillcolor=3, shape=diamond, style=filled] + 89 [label="State 89\n\l167 Literal: ReferenceLiteral •\l"] + 89 -> "89R167" [style=solid] + "89R167" [label="R167", fillcolor=3, shape=diamond, style=filled] + 90 [label="State 90\n\l168 Literal: ListLiteral •\l"] + 90 -> "90R168" [style=solid] + "90R168" [label="R168", fillcolor=3, shape=diamond, style=filled] + 91 [label="State 91\n\l169 Literal: RangeLiteral •\l"] + 91 -> "91R169" [style=solid] + "91R169" [label="R169", fillcolor=3, shape=diamond, style=filled] + 92 [label="State 92\n\l170 Literal: TupleLiteral •\l"] + 92 -> "92R170" [style=solid] + "92R170" [label="R170", fillcolor=3, shape=diamond, style=filled] + 93 [label="State 93\n\l171 Literal: RecordLiteral •\l"] + 93 -> "93R171" [style=solid] + "93R171" [label="R171", fillcolor=3, shape=diamond, style=filled] + 94 [label="State 94\n\l223 IdentifierPath: Identifier •\l"] + 94 -> "94R223" [style=solid] + "94R223" [label="R223", fillcolor=3, shape=diamond, style=filled] + 95 [label="State 95\n\l141 DirectCallExpression: IdentifierPath •\l142 | IdentifierPath • \"(\" \")\"\l143 | IdentifierPath • \"(\" Terms \")\"\l144 | IdentifierPath • \"(\" error \")\"\l222 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 95 -> 168 [style=solid label="\"(\""] + 95 -> 169 [style=solid label="\"::\""] + 95 -> "95R141" [style=solid] + "95R141" [label="R141", fillcolor=3, shape=diamond, style=filled] + 96 [label="State 96\n\l246 Attribute: \"[\" BasicAttribute \"]\" •\l"] + 96 -> "96R246" [style=solid] + "96R246" [label="R246", fillcolor=3, shape=diamond, style=filled] + 97 [label="State 97\n\l247 Attribute: \"[\" ExpressionAttribute \"]\" •\l"] + 97 -> "97R247" [style=solid] + "97R247" [label="R247", fillcolor=3, shape=diamond, style=filled] + 98 [label="State 98\n\l 22 InitDefinition: \"init\" \"{\" • Initializers \"}\"\l"] + 98 -> 45 [style=solid label="\"let\""] + 98 -> 8 [style=solid label="\"in\""] + 98 -> 46 [style=solid label="\"forall\""] + 98 -> 47 [style=solid label="\"choose\""] + 98 -> 48 [style=solid label="\"if\""] + 98 -> 49 [style=solid label="\"exists\""] + 98 -> 50 [style=solid label="\"undef\""] + 98 -> 51 [style=solid label="\"false\""] + 98 -> 52 [style=solid label="\"true\""] + 98 -> 53 [style=solid label="\"not\""] + 98 -> 54 [style=solid label="\"+\""] + 98 -> 55 [style=solid label="\"-\""] + 98 -> 170 [style=solid label="\"(\""] + 98 -> 57 [style=solid label="\"[\""] + 98 -> 58 [style=solid label="\"|\""] + 98 -> 59 [style=solid label="\"@\""] + 98 -> 60 [style=solid label="\"binary\""] + 98 -> 61 [style=solid label="\"hexadecimal\""] + 98 -> 62 [style=solid label="\"integer\""] + 98 -> 63 [style=solid label="\"rational\""] + 98 -> 64 [style=solid label="\"decimal\""] + 98 -> 65 [style=solid label="\"string\""] + 98 -> 9 [style=solid label="\"identifier\""] + 98 -> 171 [style=dashed label="Term"] + 98 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 98 -> 68 [style=dashed label="OperatorExpression"] + 98 -> 69 [style=dashed label="CallExpression"] + 98 -> 70 [style=dashed label="DirectCallExpression"] + 98 -> 71 [style=dashed label="MethodCallExpression"] + 98 -> 72 [style=dashed label="LiteralCallExpression"] + 98 -> 73 [style=dashed label="IndirectCallExpression"] + 98 -> 74 [style=dashed label="TypeCastingExpression"] + 98 -> 75 [style=dashed label="LetExpression"] + 98 -> 76 [style=dashed label="ConditionalExpression"] + 98 -> 77 [style=dashed label="ChooseExpression"] + 98 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 98 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 98 -> 80 [style=dashed label="CardinalityExpression"] + 98 -> 81 [style=dashed label="Literal"] + 98 -> 82 [style=dashed label="UndefinedLiteral"] + 98 -> 83 [style=dashed label="BooleanLiteral"] + 98 -> 84 [style=dashed label="IntegerLiteral"] + 98 -> 85 [style=dashed label="RationalLiteral"] + 98 -> 86 [style=dashed label="DecimalLiteral"] + 98 -> 87 [style=dashed label="BinaryLiteral"] + 98 -> 88 [style=dashed label="StringLiteral"] + 98 -> 89 [style=dashed label="ReferenceLiteral"] + 98 -> 90 [style=dashed label="ListLiteral"] + 98 -> 91 [style=dashed label="RangeLiteral"] + 98 -> 172 [style=dashed label="TupleLiteral"] + 98 -> 93 [style=dashed label="RecordLiteral"] + 98 -> 173 [style=dashed label="Initializers"] + 98 -> 174 [style=dashed label="Initializer"] + 98 -> 94 [style=dashed label="Identifier"] + 98 -> 95 [style=dashed label="IdentifierPath"] + 99 [label="State 99\n\l 21 InitDefinition: \"init\" IdentifierPath •\l222 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 99 -> 169 [style=solid label="\"::\""] + 99 -> "99R21" [style=solid] + "99R21" [label="R21", fillcolor=3, shape=diamond, style=filled] + 100 [label="State 100\n\l 24 DerivedDefinition: \"derived\" Identifier • \"->\" Type \"=\" Term\l 25 | \"derived\" Identifier • \"(\" Parameters \")\" \"->\" Type \"=\" Term\l 26 | \"derived\" Identifier • \"(\" error \")\" \"->\" Type \"=\" Term\l"] + 100 -> 175 [style=solid label="\"(\""] + 100 -> 176 [style=solid label="\"->\""] + 101 [label="State 101\n\l 23 EnumerationDefinition: \"enumeration\" Identifier • \"=\" \"{\" Enumerators \"}\"\l"] + 101 -> 177 [style=solid label="\"=\""] + 102 [label="State 102\n\l 27 RuleDefinition: \"rule\" Identifier • \"=\" Rule\l 28 | \"rule\" Identifier • \"->\" Type \"=\" Rule\l 29 | \"rule\" Identifier • \"(\" Parameters \")\" \"=\" Rule\l 30 | \"rule\" Identifier • \"(\" Parameters \")\" \"->\" Type \"=\" Rule\l 31 | \"rule\" Identifier • \"(\" error \")\" \"=\" Rule\l 32 | \"rule\" Identifier • \"(\" error \")\" \"->\" Type \"=\" Rule\l"] + 102 -> 178 [style=solid label="\"=\""] + 102 -> 179 [style=solid label="\"(\""] + 102 -> 180 [style=solid label="\"->\""] + 103 [label="State 103\n\l 39 UsingDefinition: \"using\" Identifier • \"=\" Type\l223 IdentifierPath: Identifier •\l"] + 103 -> 181 [style=solid label="\"=\""] + 103 -> "103R223" [style=solid] + "103R223" [label="R223", fillcolor=3, shape=diamond, style=filled] + 104 [label="State 104\n\l 40 UsingPathDefinition: \"using\" IdentifierPath •\l 41 | \"using\" IdentifierPath • \"::\" \"*\"\l222 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 104 -> 182 [style=solid label="\"::\""] + 104 -> "104R40" [style=solid] + "104R40" [label="R40", fillcolor=3, shape=diamond, style=filled] + 105 [label="State 105\n\l 42 InvariantDefinition: \"invariant\" Identifier • \"=\" Term\l"] + 105 -> 183 [style=solid label="\"=\""] + 106 [label="State 106\n\l 43 ImportDefinition: \"import\" IdentifierPath •\l 44 | \"import\" IdentifierPath • \"as\" Identifier\l222 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 106 -> 184 [style=solid label="\"as\""] + 106 -> 169 [style=solid label="\"::\""] + 106 -> "106R43" [style=solid] + "106R43" [label="R43", fillcolor=3, shape=diamond, style=filled] + 107 [label="State 107\n\l 45 StructureDefinition: \"structure\" Identifier • \"=\" \"{\" FunctionDefinition \"}\"\l"] + 107 -> 185 [style=solid label="\"=\""] + 108 [label="State 108\n\l 46 FeatureDefinition: \"feature\" Identifier • \"=\" \"{\" FeatureDeclarationsAndDefinitions \"}\"\l"] + 108 -> 186 [style=solid label="\"=\""] + 109 [label="State 109\n\l200 TupleType: \"(\" • Types \",\" Type \")\"\l201 RecordType: \"(\" • TypedVariables \",\" TypedVariable \")\"\l"] + 109 -> 8 [style=solid label="\"in\""] + 109 -> 109 [style=solid label="\"(\""] + 109 -> 9 [style=solid label="\"identifier\""] + 109 -> 187 [style=dashed label="Types"] + 109 -> 188 [style=dashed label="Type"] + 109 -> 111 [style=dashed label="BasicType"] + 109 -> 112 [style=dashed label="TupleType"] + 109 -> 113 [style=dashed label="RecordType"] + 109 -> 114 [style=dashed label="TemplateType"] + 109 -> 115 [style=dashed label="RelationType"] + 109 -> 116 [style=dashed label="FixedSizedType"] + 109 -> 189 [style=dashed label="Identifier"] + 109 -> 190 [style=dashed label="IdentifierPath"] + 109 -> 191 [style=dashed label="TypedVariables"] + 109 -> 192 [style=dashed label="TypedVariable"] + 110 [label="State 110\n\l 53 ImplementationDefinition: \"implements\" Type • \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 110 -> 193 [style=solid label="\"=\""] + 111 [label="State 111\n\l193 Type: BasicType •\l"] + 111 -> "111R193" [style=solid] + "111R193" [label="R193", fillcolor=3, shape=diamond, style=filled] + 112 [label="State 112\n\l194 Type: TupleType •\l"] + 112 -> "112R194" [style=solid] + "112R194" [label="R194", fillcolor=3, shape=diamond, style=filled] + 113 [label="State 113\n\l195 Type: RecordType •\l"] + 113 -> "113R195" [style=solid] + "113R195" [label="R195", fillcolor=3, shape=diamond, style=filled] + 114 [label="State 114\n\l196 Type: TemplateType •\l"] + 114 -> "114R196" [style=solid] + "114R196" [label="R196", fillcolor=3, shape=diamond, style=filled] + 115 [label="State 115\n\l197 Type: RelationType •\l"] + 115 -> "115R197" [style=solid] + "115R197" [label="R197", fillcolor=3, shape=diamond, style=filled] + 116 [label="State 116\n\l198 Type: FixedSizedType •\l"] + 116 -> "116R198" [style=solid] + "116R198" [label="R198", fillcolor=3, shape=diamond, style=filled] + 117 [label="State 117\n\l 52 ImplementationDefinition: \"implements\" IdentifierPath • \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l199 BasicType: IdentifierPath •\l202 TemplateType: IdentifierPath • \"<\" Types \">\"\l203 RelationType: IdentifierPath • \"<\" MaybeFunctionParameters \"->\" Type \">\"\l204 FixedSizedType: IdentifierPath • \"'\" Term\l222 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 117 -> 194 [style=solid label="\"for\""] + 117 -> 169 [style=solid label="\"::\""] + 117 -> 195 [style=solid label="\"<\""] + 117 -> 196 [style=solid label="\"'\""] + 117 -> "117R199" [style=solid] + "117R199" [label="R199", fillcolor=3, shape=diamond, style=filled] + 118 [label="State 118\n\l 33 FunctionDefinition: \"function\" Identifier • \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] + 118 -> 197 [style=solid label="\":\""] + 119 [label="State 119\n\l 4 Definitions: Definitions AttributedDefinition •\l"] + 119 -> "119R4" [style=solid] + "119R4" [label="R4", fillcolor=3, shape=diamond, style=filled] + 120 [label="State 120\n\l 6 AttributedDefinition: Attributes Definition •\l"] + 120 -> "120R6" [style=solid] + "120R6" [label="R6", fillcolor=3, shape=diamond, style=filled] + 121 [label="State 121\n\l225 Variable: Identifier •\l230 TypedVariable: Identifier • \":\" Type\l"] + 121 -> 198 [style=solid label="\":\""] + 121 -> "121R225" [style=solid] + "121R225" [label="R225", fillcolor=3, shape=diamond, style=filled] + 122 [label="State 122\n\l232 AttributedVariable: Variable •\l"] + 122 -> "122R232" [style=solid] + "122R232" [label="R232", fillcolor=3, shape=diamond, style=filled] + 123 [label="State 123\n\l224 Variable: TypedVariable •\l"] + 123 -> "123R224" [style=solid] + "123R224" [label="R224", fillcolor=3, shape=diamond, style=filled] + 124 [label="State 124\n\l237 VariableBinding: AttributedVariable • \"=\" Term\l"] + 124 -> 199 [style=solid label="\"=\""] + 125 [label="State 125\n\l154 LetExpression: \"let\" VariableBindings • \"in\" Term\l235 VariableBindings: VariableBindings • \",\" VariableBinding\l"] + 125 -> 200 [style=solid label="\"in\""] + 125 -> 201 [style=solid label="\",\""] + 126 [label="State 126\n\l236 VariableBindings: VariableBinding •\l"] + 126 -> "126R236" [style=solid] + "126R236" [label="R236", fillcolor=3, shape=diamond, style=filled] + 127 [label="State 127\n\l231 AttributedVariable: Attributes • Variable\l244 Attributes: Attributes • Attribute\l"] + 127 -> 8 [style=solid label="\"in\""] + 127 -> 2 [style=solid label="\"[\""] + 127 -> 9 [style=solid label="\"identifier\""] + 127 -> 121 [style=dashed label="Identifier"] + 127 -> 202 [style=dashed label="Variable"] + 127 -> 123 [style=dashed label="TypedVariable"] + 127 -> 43 [style=dashed label="Attribute"] + 128 [label="State 128\n\l157 UniversalQuantifierExpression: \"forall\" AttributedVariables • \"in\" Term \"holds\" Term\l226 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] + 128 -> 203 [style=solid label="\"in\""] + 128 -> 204 [style=solid label="\",\""] + 129 [label="State 129\n\l227 AttributedVariables: AttributedVariable •\l"] + 129 -> "129R227" [style=solid] + "129R227" [label="R227", fillcolor=3, shape=diamond, style=filled] + 130 [label="State 130\n\l156 ChooseExpression: \"choose\" AttributedVariables • \"in\" Term \"do\" Term\l226 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] + 130 -> 205 [style=solid label="\"in\""] + 130 -> 204 [style=solid label="\",\""] + 131 [label="State 131\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l155 ConditionalExpression: \"if\" Term • \"then\" Term \"else\" Term\l"] + 131 -> 206 [style=solid label="\"then\""] + 131 -> 148 [style=solid label="\"and\""] + 131 -> 149 [style=solid label="\"or\""] + 131 -> 150 [style=solid label="\"xor\""] + 131 -> 151 [style=solid label="\"implies\""] + 131 -> 152 [style=solid label="\"+\""] + 131 -> 153 [style=solid label="\"-\""] + 131 -> 154 [style=solid label="\"=\""] + 131 -> 155 [style=solid label="\"<\""] + 131 -> 156 [style=solid label="\">\""] + 131 -> 157 [style=solid label="\"*\""] + 131 -> 158 [style=solid label="\"/\""] + 131 -> 159 [style=solid label="\"%\""] + 131 -> 160 [style=solid label="\"^\""] + 131 -> 161 [style=solid label="\"=>\""] + 131 -> 162 [style=solid label="\"!=\""] + 131 -> 163 [style=solid label="\"<=\""] + 131 -> 164 [style=solid label="\">=\""] + 132 [label="State 132\n\l158 ExistentialQuantifierExpression: \"exists\" AttributedVariables • \"in\" Term \"with\" Term\l226 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] + 132 -> 207 [style=solid label="\"in\""] + 132 -> 204 [style=solid label="\",\""] + 133 [label="State 133\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l137 | \"not\" Term •\l"] + 133 -> "133R137" [style=solid] + "133R137" [label="R137", fillcolor=3, shape=diamond, style=filled] + 134 [label="State 134\n\l118 SimpleOrClaspedTerm: \"+\" SimpleOrClaspedTerm •\l145 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l146 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l147 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l149 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] + 134 -> "134R118" [style=solid] + "134R118" [label="R118", fillcolor=3, shape=diamond, style=filled] + 135 [label="State 135\n\l119 SimpleOrClaspedTerm: \"-\" SimpleOrClaspedTerm •\l145 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l146 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l147 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l149 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] + 135 -> "135R119" [style=solid] + "135R119" [label="R119", fillcolor=3, shape=diamond, style=filled] + 136 [label="State 136\n\l114 SimpleOrClaspedTerm: \"(\" error • \")\"\l"] + 136 -> 208 [style=solid label="\")\""] + 137 [label="State 137\n\l102 Terms: Terms • \",\" Term\l186 TupleLiteral: \"(\" Terms • \",\" Term \")\"\l"] + 137 -> 209 [style=solid label="\",\""] + 138 [label="State 138\n\l103 Terms: Term •\l113 SimpleOrClaspedTerm: \"(\" Term • \")\"\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 138 -> 148 [style=solid label="\"and\""] + 138 -> 149 [style=solid label="\"or\""] + 138 -> 150 [style=solid label="\"xor\""] + 138 -> 151 [style=solid label="\"implies\""] + 138 -> 152 [style=solid label="\"+\""] + 138 -> 153 [style=solid label="\"-\""] + 138 -> 154 [style=solid label="\"=\""] + 138 -> 210 [style=solid label="\")\""] + 138 -> 155 [style=solid label="\"<\""] + 138 -> 156 [style=solid label="\">\""] + 138 -> 157 [style=solid label="\"*\""] + 138 -> 158 [style=solid label="\"/\""] + 138 -> 159 [style=solid label="\"%\""] + 138 -> 160 [style=solid label="\"^\""] + 138 -> 161 [style=solid label="\"=>\""] + 138 -> 162 [style=solid label="\"!=\""] + 138 -> 163 [style=solid label="\"<=\""] + 138 -> 164 [style=solid label="\">=\""] + 138 -> "138R103" [style=solid] + "138R103" [label="R103", fillcolor=3, shape=diamond, style=filled] + 139 [label="State 139\n\l187 RecordLiteral: \"(\" Assignments • \")\"\l188 Assignments: Assignments • \",\" Assignment\l"] + 139 -> 211 [style=solid label="\")\""] + 139 -> 212 [style=solid label="\",\""] + 140 [label="State 140\n\l189 Assignments: Assignment •\l"] + 140 -> "140R189" [style=solid] + "140R189" [label="R189", fillcolor=3, shape=diamond, style=filled] + 141 [label="State 141\n\l190 Assignment: Identifier • \":\" Term\l223 IdentifierPath: Identifier •\l"] + 141 -> 213 [style=solid label="\":\""] + 141 -> "141R223" [style=solid] + "141R223" [label="R223", fillcolor=3, shape=diamond, style=filled] + 142 [label="State 142\n\l184 ListLiteral: \"[\" error • \"]\"\l"] + 142 -> 214 [style=solid label="\"]\""] + 143 [label="State 143\n\l182 ListLiteral: \"[\" \"]\" •\l"] + 143 -> "143R182" [style=solid] + "143R182" [label="R182", fillcolor=3, shape=diamond, style=filled] + 144 [label="State 144\n\l102 Terms: Terms • \",\" Term\l183 ListLiteral: \"[\" Terms • \"]\"\l"] + 144 -> 215 [style=solid label="\"]\""] + 144 -> 216 [style=solid label="\",\""] + 145 [label="State 145\n\l103 Terms: Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l185 RangeLiteral: \"[\" Term • \"..\" Term \"]\"\l"] + 145 -> 148 [style=solid label="\"and\""] + 145 -> 149 [style=solid label="\"or\""] + 145 -> 150 [style=solid label="\"xor\""] + 145 -> 151 [style=solid label="\"implies\""] + 145 -> 152 [style=solid label="\"+\""] + 145 -> 153 [style=solid label="\"-\""] + 145 -> 154 [style=solid label="\"=\""] + 145 -> 155 [style=solid label="\"<\""] + 145 -> 156 [style=solid label="\">\""] + 145 -> 157 [style=solid label="\"*\""] + 145 -> 158 [style=solid label="\"/\""] + 145 -> 159 [style=solid label="\"%\""] + 145 -> 160 [style=solid label="\"^\""] + 145 -> 217 [style=solid label="\"..\""] + 145 -> 161 [style=solid label="\"=>\""] + 145 -> 162 [style=solid label="\"!=\""] + 145 -> 163 [style=solid label="\"<=\""] + 145 -> 164 [style=solid label="\">=\""] + 145 -> "145R103" [style=solid] + "145R103" [label="R103", fillcolor=3, shape=diamond, style=filled] + 146 [label="State 146\n\l145 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l146 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l147 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l149 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l159 CardinalityExpression: \"|\" SimpleOrClaspedTerm • \"|\"\l"] + 146 -> 218 [style=solid label="\"|\""] + 146 -> 166 [style=solid label="\".\""] + 147 [label="State 147\n\l181 ReferenceLiteral: \"@\" IdentifierPath •\l222 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 147 -> 169 [style=solid label="\"::\""] + 147 -> "147R181" [style=solid] + "147R181" [label="R181", fillcolor=3, shape=diamond, style=filled] + 148 [label="State 148\n\l134 OperatorExpression: Term \"and\" • Term\l"] + 148 -> 45 [style=solid label="\"let\""] 148 -> 8 [style=solid label="\"in\""] - 148 -> 42 [style=solid label="\"forall\""] - 148 -> 43 [style=solid label="\"choose\""] - 148 -> 44 [style=solid label="\"if\""] - 148 -> 45 [style=solid label="\"exists\""] - 148 -> 46 [style=solid label="\"undef\""] - 148 -> 47 [style=solid label="\"false\""] - 148 -> 48 [style=solid label="\"true\""] - 148 -> 49 [style=solid label="\"not\""] - 148 -> 50 [style=solid label="\"+\""] - 148 -> 51 [style=solid label="\"-\""] - 148 -> 52 [style=solid label="\"(\""] - 148 -> 53 [style=solid label="\"[\""] - 148 -> 54 [style=solid label="\"|\""] - 148 -> 55 [style=solid label="\"@\""] - 148 -> 56 [style=solid label="\"binary\""] - 148 -> 57 [style=solid label="\"hexadecimal\""] - 148 -> 58 [style=solid label="\"integer\""] - 148 -> 59 [style=solid label="\"rational\""] - 148 -> 60 [style=solid label="\"decimal\""] - 148 -> 61 [style=solid label="\"string\""] + 148 -> 46 [style=solid label="\"forall\""] + 148 -> 47 [style=solid label="\"choose\""] + 148 -> 48 [style=solid label="\"if\""] + 148 -> 49 [style=solid label="\"exists\""] + 148 -> 50 [style=solid label="\"undef\""] + 148 -> 51 [style=solid label="\"false\""] + 148 -> 52 [style=solid label="\"true\""] + 148 -> 53 [style=solid label="\"not\""] + 148 -> 54 [style=solid label="\"+\""] + 148 -> 55 [style=solid label="\"-\""] + 148 -> 56 [style=solid label="\"(\""] + 148 -> 57 [style=solid label="\"[\""] + 148 -> 58 [style=solid label="\"|\""] + 148 -> 59 [style=solid label="\"@\""] + 148 -> 60 [style=solid label="\"binary\""] + 148 -> 61 [style=solid label="\"hexadecimal\""] + 148 -> 62 [style=solid label="\"integer\""] + 148 -> 63 [style=solid label="\"rational\""] + 148 -> 64 [style=solid label="\"decimal\""] + 148 -> 65 [style=solid label="\"string\""] 148 -> 9 [style=solid label="\"identifier\""] - 148 -> 208 [style=dashed label="Term"] - 148 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 148 -> 64 [style=dashed label="OperatorExpression"] - 148 -> 65 [style=dashed label="CallExpression"] - 148 -> 66 [style=dashed label="DirectCallExpression"] - 148 -> 67 [style=dashed label="MethodCallExpression"] - 148 -> 68 [style=dashed label="LiteralCallExpression"] - 148 -> 69 [style=dashed label="IndirectCallExpression"] - 148 -> 70 [style=dashed label="TypeCastingExpression"] - 148 -> 71 [style=dashed label="LetExpression"] - 148 -> 72 [style=dashed label="ConditionalExpression"] - 148 -> 73 [style=dashed label="ChooseExpression"] - 148 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 148 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 148 -> 76 [style=dashed label="CardinalityExpression"] - 148 -> 77 [style=dashed label="Literal"] - 148 -> 78 [style=dashed label="UndefinedLiteral"] - 148 -> 79 [style=dashed label="BooleanLiteral"] - 148 -> 80 [style=dashed label="IntegerLiteral"] - 148 -> 81 [style=dashed label="RationalLiteral"] - 148 -> 82 [style=dashed label="DecimalLiteral"] - 148 -> 83 [style=dashed label="BinaryLiteral"] - 148 -> 84 [style=dashed label="StringLiteral"] - 148 -> 85 [style=dashed label="ReferenceLiteral"] - 148 -> 86 [style=dashed label="ListLiteral"] - 148 -> 87 [style=dashed label="RangeLiteral"] - 148 -> 88 [style=dashed label="TupleLiteral"] - 148 -> 89 [style=dashed label="RecordLiteral"] - 148 -> 90 [style=dashed label="Identifier"] - 148 -> 91 [style=dashed label="IdentifierPath"] - 149 [label="State 149\n\l114 OperatorExpression: Term \"<=\" • Term\l"] - 149 -> 41 [style=solid label="\"let\""] + 148 -> 219 [style=dashed label="Term"] + 148 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 148 -> 68 [style=dashed label="OperatorExpression"] + 148 -> 69 [style=dashed label="CallExpression"] + 148 -> 70 [style=dashed label="DirectCallExpression"] + 148 -> 71 [style=dashed label="MethodCallExpression"] + 148 -> 72 [style=dashed label="LiteralCallExpression"] + 148 -> 73 [style=dashed label="IndirectCallExpression"] + 148 -> 74 [style=dashed label="TypeCastingExpression"] + 148 -> 75 [style=dashed label="LetExpression"] + 148 -> 76 [style=dashed label="ConditionalExpression"] + 148 -> 77 [style=dashed label="ChooseExpression"] + 148 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 148 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 148 -> 80 [style=dashed label="CardinalityExpression"] + 148 -> 81 [style=dashed label="Literal"] + 148 -> 82 [style=dashed label="UndefinedLiteral"] + 148 -> 83 [style=dashed label="BooleanLiteral"] + 148 -> 84 [style=dashed label="IntegerLiteral"] + 148 -> 85 [style=dashed label="RationalLiteral"] + 148 -> 86 [style=dashed label="DecimalLiteral"] + 148 -> 87 [style=dashed label="BinaryLiteral"] + 148 -> 88 [style=dashed label="StringLiteral"] + 148 -> 89 [style=dashed label="ReferenceLiteral"] + 148 -> 90 [style=dashed label="ListLiteral"] + 148 -> 91 [style=dashed label="RangeLiteral"] + 148 -> 92 [style=dashed label="TupleLiteral"] + 148 -> 93 [style=dashed label="RecordLiteral"] + 148 -> 94 [style=dashed label="Identifier"] + 148 -> 95 [style=dashed label="IdentifierPath"] + 149 [label="State 149\n\l132 OperatorExpression: Term \"or\" • Term\l"] + 149 -> 45 [style=solid label="\"let\""] 149 -> 8 [style=solid label="\"in\""] - 149 -> 42 [style=solid label="\"forall\""] - 149 -> 43 [style=solid label="\"choose\""] - 149 -> 44 [style=solid label="\"if\""] - 149 -> 45 [style=solid label="\"exists\""] - 149 -> 46 [style=solid label="\"undef\""] - 149 -> 47 [style=solid label="\"false\""] - 149 -> 48 [style=solid label="\"true\""] - 149 -> 49 [style=solid label="\"not\""] - 149 -> 50 [style=solid label="\"+\""] - 149 -> 51 [style=solid label="\"-\""] - 149 -> 52 [style=solid label="\"(\""] - 149 -> 53 [style=solid label="\"[\""] - 149 -> 54 [style=solid label="\"|\""] - 149 -> 55 [style=solid label="\"@\""] - 149 -> 56 [style=solid label="\"binary\""] - 149 -> 57 [style=solid label="\"hexadecimal\""] - 149 -> 58 [style=solid label="\"integer\""] - 149 -> 59 [style=solid label="\"rational\""] - 149 -> 60 [style=solid label="\"decimal\""] - 149 -> 61 [style=solid label="\"string\""] + 149 -> 46 [style=solid label="\"forall\""] + 149 -> 47 [style=solid label="\"choose\""] + 149 -> 48 [style=solid label="\"if\""] + 149 -> 49 [style=solid label="\"exists\""] + 149 -> 50 [style=solid label="\"undef\""] + 149 -> 51 [style=solid label="\"false\""] + 149 -> 52 [style=solid label="\"true\""] + 149 -> 53 [style=solid label="\"not\""] + 149 -> 54 [style=solid label="\"+\""] + 149 -> 55 [style=solid label="\"-\""] + 149 -> 56 [style=solid label="\"(\""] + 149 -> 57 [style=solid label="\"[\""] + 149 -> 58 [style=solid label="\"|\""] + 149 -> 59 [style=solid label="\"@\""] + 149 -> 60 [style=solid label="\"binary\""] + 149 -> 61 [style=solid label="\"hexadecimal\""] + 149 -> 62 [style=solid label="\"integer\""] + 149 -> 63 [style=solid label="\"rational\""] + 149 -> 64 [style=solid label="\"decimal\""] + 149 -> 65 [style=solid label="\"string\""] 149 -> 9 [style=solid label="\"identifier\""] - 149 -> 209 [style=dashed label="Term"] - 149 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 149 -> 64 [style=dashed label="OperatorExpression"] - 149 -> 65 [style=dashed label="CallExpression"] - 149 -> 66 [style=dashed label="DirectCallExpression"] - 149 -> 67 [style=dashed label="MethodCallExpression"] - 149 -> 68 [style=dashed label="LiteralCallExpression"] - 149 -> 69 [style=dashed label="IndirectCallExpression"] - 149 -> 70 [style=dashed label="TypeCastingExpression"] - 149 -> 71 [style=dashed label="LetExpression"] - 149 -> 72 [style=dashed label="ConditionalExpression"] - 149 -> 73 [style=dashed label="ChooseExpression"] - 149 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 149 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 149 -> 76 [style=dashed label="CardinalityExpression"] - 149 -> 77 [style=dashed label="Literal"] - 149 -> 78 [style=dashed label="UndefinedLiteral"] - 149 -> 79 [style=dashed label="BooleanLiteral"] - 149 -> 80 [style=dashed label="IntegerLiteral"] - 149 -> 81 [style=dashed label="RationalLiteral"] - 149 -> 82 [style=dashed label="DecimalLiteral"] - 149 -> 83 [style=dashed label="BinaryLiteral"] - 149 -> 84 [style=dashed label="StringLiteral"] - 149 -> 85 [style=dashed label="ReferenceLiteral"] - 149 -> 86 [style=dashed label="ListLiteral"] - 149 -> 87 [style=dashed label="RangeLiteral"] - 149 -> 88 [style=dashed label="TupleLiteral"] - 149 -> 89 [style=dashed label="RecordLiteral"] - 149 -> 90 [style=dashed label="Identifier"] - 149 -> 91 [style=dashed label="IdentifierPath"] - 150 [label="State 150\n\l115 OperatorExpression: Term \">=\" • Term\l"] - 150 -> 41 [style=solid label="\"let\""] + 149 -> 220 [style=dashed label="Term"] + 149 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 149 -> 68 [style=dashed label="OperatorExpression"] + 149 -> 69 [style=dashed label="CallExpression"] + 149 -> 70 [style=dashed label="DirectCallExpression"] + 149 -> 71 [style=dashed label="MethodCallExpression"] + 149 -> 72 [style=dashed label="LiteralCallExpression"] + 149 -> 73 [style=dashed label="IndirectCallExpression"] + 149 -> 74 [style=dashed label="TypeCastingExpression"] + 149 -> 75 [style=dashed label="LetExpression"] + 149 -> 76 [style=dashed label="ConditionalExpression"] + 149 -> 77 [style=dashed label="ChooseExpression"] + 149 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 149 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 149 -> 80 [style=dashed label="CardinalityExpression"] + 149 -> 81 [style=dashed label="Literal"] + 149 -> 82 [style=dashed label="UndefinedLiteral"] + 149 -> 83 [style=dashed label="BooleanLiteral"] + 149 -> 84 [style=dashed label="IntegerLiteral"] + 149 -> 85 [style=dashed label="RationalLiteral"] + 149 -> 86 [style=dashed label="DecimalLiteral"] + 149 -> 87 [style=dashed label="BinaryLiteral"] + 149 -> 88 [style=dashed label="StringLiteral"] + 149 -> 89 [style=dashed label="ReferenceLiteral"] + 149 -> 90 [style=dashed label="ListLiteral"] + 149 -> 91 [style=dashed label="RangeLiteral"] + 149 -> 92 [style=dashed label="TupleLiteral"] + 149 -> 93 [style=dashed label="RecordLiteral"] + 149 -> 94 [style=dashed label="Identifier"] + 149 -> 95 [style=dashed label="IdentifierPath"] + 150 [label="State 150\n\l133 OperatorExpression: Term \"xor\" • Term\l"] + 150 -> 45 [style=solid label="\"let\""] 150 -> 8 [style=solid label="\"in\""] - 150 -> 42 [style=solid label="\"forall\""] - 150 -> 43 [style=solid label="\"choose\""] - 150 -> 44 [style=solid label="\"if\""] - 150 -> 45 [style=solid label="\"exists\""] - 150 -> 46 [style=solid label="\"undef\""] - 150 -> 47 [style=solid label="\"false\""] - 150 -> 48 [style=solid label="\"true\""] - 150 -> 49 [style=solid label="\"not\""] - 150 -> 50 [style=solid label="\"+\""] - 150 -> 51 [style=solid label="\"-\""] - 150 -> 52 [style=solid label="\"(\""] - 150 -> 53 [style=solid label="\"[\""] - 150 -> 54 [style=solid label="\"|\""] - 150 -> 55 [style=solid label="\"@\""] - 150 -> 56 [style=solid label="\"binary\""] - 150 -> 57 [style=solid label="\"hexadecimal\""] - 150 -> 58 [style=solid label="\"integer\""] - 150 -> 59 [style=solid label="\"rational\""] - 150 -> 60 [style=solid label="\"decimal\""] - 150 -> 61 [style=solid label="\"string\""] + 150 -> 46 [style=solid label="\"forall\""] + 150 -> 47 [style=solid label="\"choose\""] + 150 -> 48 [style=solid label="\"if\""] + 150 -> 49 [style=solid label="\"exists\""] + 150 -> 50 [style=solid label="\"undef\""] + 150 -> 51 [style=solid label="\"false\""] + 150 -> 52 [style=solid label="\"true\""] + 150 -> 53 [style=solid label="\"not\""] + 150 -> 54 [style=solid label="\"+\""] + 150 -> 55 [style=solid label="\"-\""] + 150 -> 56 [style=solid label="\"(\""] + 150 -> 57 [style=solid label="\"[\""] + 150 -> 58 [style=solid label="\"|\""] + 150 -> 59 [style=solid label="\"@\""] + 150 -> 60 [style=solid label="\"binary\""] + 150 -> 61 [style=solid label="\"hexadecimal\""] + 150 -> 62 [style=solid label="\"integer\""] + 150 -> 63 [style=solid label="\"rational\""] + 150 -> 64 [style=solid label="\"decimal\""] + 150 -> 65 [style=solid label="\"string\""] 150 -> 9 [style=solid label="\"identifier\""] - 150 -> 210 [style=dashed label="Term"] - 150 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 150 -> 64 [style=dashed label="OperatorExpression"] - 150 -> 65 [style=dashed label="CallExpression"] - 150 -> 66 [style=dashed label="DirectCallExpression"] - 150 -> 67 [style=dashed label="MethodCallExpression"] - 150 -> 68 [style=dashed label="LiteralCallExpression"] - 150 -> 69 [style=dashed label="IndirectCallExpression"] - 150 -> 70 [style=dashed label="TypeCastingExpression"] - 150 -> 71 [style=dashed label="LetExpression"] - 150 -> 72 [style=dashed label="ConditionalExpression"] - 150 -> 73 [style=dashed label="ChooseExpression"] - 150 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 150 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 150 -> 76 [style=dashed label="CardinalityExpression"] - 150 -> 77 [style=dashed label="Literal"] - 150 -> 78 [style=dashed label="UndefinedLiteral"] - 150 -> 79 [style=dashed label="BooleanLiteral"] - 150 -> 80 [style=dashed label="IntegerLiteral"] - 150 -> 81 [style=dashed label="RationalLiteral"] - 150 -> 82 [style=dashed label="DecimalLiteral"] - 150 -> 83 [style=dashed label="BinaryLiteral"] - 150 -> 84 [style=dashed label="StringLiteral"] - 150 -> 85 [style=dashed label="ReferenceLiteral"] - 150 -> 86 [style=dashed label="ListLiteral"] - 150 -> 87 [style=dashed label="RangeLiteral"] - 150 -> 88 [style=dashed label="TupleLiteral"] - 150 -> 89 [style=dashed label="RecordLiteral"] - 150 -> 90 [style=dashed label="Identifier"] - 150 -> 91 [style=dashed label="IdentifierPath"] - 151 [label="State 151\n\l137 TypeCastingExpression: SimpleOrClaspedTerm \"as\" • Type\l"] + 150 -> 221 [style=dashed label="Term"] + 150 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 150 -> 68 [style=dashed label="OperatorExpression"] + 150 -> 69 [style=dashed label="CallExpression"] + 150 -> 70 [style=dashed label="DirectCallExpression"] + 150 -> 71 [style=dashed label="MethodCallExpression"] + 150 -> 72 [style=dashed label="LiteralCallExpression"] + 150 -> 73 [style=dashed label="IndirectCallExpression"] + 150 -> 74 [style=dashed label="TypeCastingExpression"] + 150 -> 75 [style=dashed label="LetExpression"] + 150 -> 76 [style=dashed label="ConditionalExpression"] + 150 -> 77 [style=dashed label="ChooseExpression"] + 150 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 150 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 150 -> 80 [style=dashed label="CardinalityExpression"] + 150 -> 81 [style=dashed label="Literal"] + 150 -> 82 [style=dashed label="UndefinedLiteral"] + 150 -> 83 [style=dashed label="BooleanLiteral"] + 150 -> 84 [style=dashed label="IntegerLiteral"] + 150 -> 85 [style=dashed label="RationalLiteral"] + 150 -> 86 [style=dashed label="DecimalLiteral"] + 150 -> 87 [style=dashed label="BinaryLiteral"] + 150 -> 88 [style=dashed label="StringLiteral"] + 150 -> 89 [style=dashed label="ReferenceLiteral"] + 150 -> 90 [style=dashed label="ListLiteral"] + 150 -> 91 [style=dashed label="RangeLiteral"] + 150 -> 92 [style=dashed label="TupleLiteral"] + 150 -> 93 [style=dashed label="RecordLiteral"] + 150 -> 94 [style=dashed label="Identifier"] + 150 -> 95 [style=dashed label="IdentifierPath"] + 151 [label="State 151\n\l136 OperatorExpression: Term \"implies\" • Term\l"] + 151 -> 45 [style=solid label="\"let\""] 151 -> 8 [style=solid label="\"in\""] - 151 -> 211 [style=solid label="\"(\""] + 151 -> 46 [style=solid label="\"forall\""] + 151 -> 47 [style=solid label="\"choose\""] + 151 -> 48 [style=solid label="\"if\""] + 151 -> 49 [style=solid label="\"exists\""] + 151 -> 50 [style=solid label="\"undef\""] + 151 -> 51 [style=solid label="\"false\""] + 151 -> 52 [style=solid label="\"true\""] + 151 -> 53 [style=solid label="\"not\""] + 151 -> 54 [style=solid label="\"+\""] + 151 -> 55 [style=solid label="\"-\""] + 151 -> 56 [style=solid label="\"(\""] + 151 -> 57 [style=solid label="\"[\""] + 151 -> 58 [style=solid label="\"|\""] + 151 -> 59 [style=solid label="\"@\""] + 151 -> 60 [style=solid label="\"binary\""] + 151 -> 61 [style=solid label="\"hexadecimal\""] + 151 -> 62 [style=solid label="\"integer\""] + 151 -> 63 [style=solid label="\"rational\""] + 151 -> 64 [style=solid label="\"decimal\""] + 151 -> 65 [style=solid label="\"string\""] 151 -> 9 [style=solid label="\"identifier\""] - 151 -> 212 [style=dashed label="Type"] - 151 -> 213 [style=dashed label="BasicType"] - 151 -> 214 [style=dashed label="TupleType"] - 151 -> 215 [style=dashed label="RecordType"] - 151 -> 216 [style=dashed label="TemplateType"] - 151 -> 217 [style=dashed label="RelationType"] - 151 -> 218 [style=dashed label="FixedSizedType"] - 151 -> 90 [style=dashed label="Identifier"] - 151 -> 219 [style=dashed label="IdentifierPath"] - 152 [label="State 152\n\l129 MethodCallExpression: SimpleOrClaspedTerm \".\" • Identifier\l130 | SimpleOrClaspedTerm \".\" • Identifier \"(\" \")\"\l131 | SimpleOrClaspedTerm \".\" • Identifier \"(\" Terms \")\"\l132 | SimpleOrClaspedTerm \".\" • Identifier \"(\" error \")\"\l133 LiteralCallExpression: SimpleOrClaspedTerm \".\" • IntegerLiteral\l"] + 151 -> 222 [style=dashed label="Term"] + 151 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 151 -> 68 [style=dashed label="OperatorExpression"] + 151 -> 69 [style=dashed label="CallExpression"] + 151 -> 70 [style=dashed label="DirectCallExpression"] + 151 -> 71 [style=dashed label="MethodCallExpression"] + 151 -> 72 [style=dashed label="LiteralCallExpression"] + 151 -> 73 [style=dashed label="IndirectCallExpression"] + 151 -> 74 [style=dashed label="TypeCastingExpression"] + 151 -> 75 [style=dashed label="LetExpression"] + 151 -> 76 [style=dashed label="ConditionalExpression"] + 151 -> 77 [style=dashed label="ChooseExpression"] + 151 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 151 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 151 -> 80 [style=dashed label="CardinalityExpression"] + 151 -> 81 [style=dashed label="Literal"] + 151 -> 82 [style=dashed label="UndefinedLiteral"] + 151 -> 83 [style=dashed label="BooleanLiteral"] + 151 -> 84 [style=dashed label="IntegerLiteral"] + 151 -> 85 [style=dashed label="RationalLiteral"] + 151 -> 86 [style=dashed label="DecimalLiteral"] + 151 -> 87 [style=dashed label="BinaryLiteral"] + 151 -> 88 [style=dashed label="StringLiteral"] + 151 -> 89 [style=dashed label="ReferenceLiteral"] + 151 -> 90 [style=dashed label="ListLiteral"] + 151 -> 91 [style=dashed label="RangeLiteral"] + 151 -> 92 [style=dashed label="TupleLiteral"] + 151 -> 93 [style=dashed label="RecordLiteral"] + 151 -> 94 [style=dashed label="Identifier"] + 151 -> 95 [style=dashed label="IdentifierPath"] + 152 [label="State 152\n\l120 OperatorExpression: Term \"+\" • Term\l"] + 152 -> 45 [style=solid label="\"let\""] 152 -> 8 [style=solid label="\"in\""] - 152 -> 58 [style=solid label="\"integer\""] + 152 -> 46 [style=solid label="\"forall\""] + 152 -> 47 [style=solid label="\"choose\""] + 152 -> 48 [style=solid label="\"if\""] + 152 -> 49 [style=solid label="\"exists\""] + 152 -> 50 [style=solid label="\"undef\""] + 152 -> 51 [style=solid label="\"false\""] + 152 -> 52 [style=solid label="\"true\""] + 152 -> 53 [style=solid label="\"not\""] + 152 -> 54 [style=solid label="\"+\""] + 152 -> 55 [style=solid label="\"-\""] + 152 -> 56 [style=solid label="\"(\""] + 152 -> 57 [style=solid label="\"[\""] + 152 -> 58 [style=solid label="\"|\""] + 152 -> 59 [style=solid label="\"@\""] + 152 -> 60 [style=solid label="\"binary\""] + 152 -> 61 [style=solid label="\"hexadecimal\""] + 152 -> 62 [style=solid label="\"integer\""] + 152 -> 63 [style=solid label="\"rational\""] + 152 -> 64 [style=solid label="\"decimal\""] + 152 -> 65 [style=solid label="\"string\""] 152 -> 9 [style=solid label="\"identifier\""] - 152 -> 220 [style=dashed label="IntegerLiteral"] - 152 -> 221 [style=dashed label="Identifier"] - 153 [label="State 153\n\l134 IndirectCallExpression: CallExpression \"(\" • \")\"\l135 | CallExpression \"(\" • Terms \")\"\l136 | CallExpression \"(\" • error \")\"\l"] - 153 -> 222 [style=dotted] - 153 -> 41 [style=solid label="\"let\""] + 152 -> 223 [style=dashed label="Term"] + 152 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 152 -> 68 [style=dashed label="OperatorExpression"] + 152 -> 69 [style=dashed label="CallExpression"] + 152 -> 70 [style=dashed label="DirectCallExpression"] + 152 -> 71 [style=dashed label="MethodCallExpression"] + 152 -> 72 [style=dashed label="LiteralCallExpression"] + 152 -> 73 [style=dashed label="IndirectCallExpression"] + 152 -> 74 [style=dashed label="TypeCastingExpression"] + 152 -> 75 [style=dashed label="LetExpression"] + 152 -> 76 [style=dashed label="ConditionalExpression"] + 152 -> 77 [style=dashed label="ChooseExpression"] + 152 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 152 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 152 -> 80 [style=dashed label="CardinalityExpression"] + 152 -> 81 [style=dashed label="Literal"] + 152 -> 82 [style=dashed label="UndefinedLiteral"] + 152 -> 83 [style=dashed label="BooleanLiteral"] + 152 -> 84 [style=dashed label="IntegerLiteral"] + 152 -> 85 [style=dashed label="RationalLiteral"] + 152 -> 86 [style=dashed label="DecimalLiteral"] + 152 -> 87 [style=dashed label="BinaryLiteral"] + 152 -> 88 [style=dashed label="StringLiteral"] + 152 -> 89 [style=dashed label="ReferenceLiteral"] + 152 -> 90 [style=dashed label="ListLiteral"] + 152 -> 91 [style=dashed label="RangeLiteral"] + 152 -> 92 [style=dashed label="TupleLiteral"] + 152 -> 93 [style=dashed label="RecordLiteral"] + 152 -> 94 [style=dashed label="Identifier"] + 152 -> 95 [style=dashed label="IdentifierPath"] + 153 [label="State 153\n\l121 OperatorExpression: Term \"-\" • Term\l"] + 153 -> 45 [style=solid label="\"let\""] 153 -> 8 [style=solid label="\"in\""] - 153 -> 42 [style=solid label="\"forall\""] - 153 -> 43 [style=solid label="\"choose\""] - 153 -> 44 [style=solid label="\"if\""] - 153 -> 45 [style=solid label="\"exists\""] - 153 -> 46 [style=solid label="\"undef\""] - 153 -> 47 [style=solid label="\"false\""] - 153 -> 48 [style=solid label="\"true\""] - 153 -> 49 [style=solid label="\"not\""] - 153 -> 50 [style=solid label="\"+\""] - 153 -> 51 [style=solid label="\"-\""] - 153 -> 52 [style=solid label="\"(\""] - 153 -> 223 [style=solid label="\")\""] - 153 -> 53 [style=solid label="\"[\""] - 153 -> 54 [style=solid label="\"|\""] - 153 -> 55 [style=solid label="\"@\""] - 153 -> 56 [style=solid label="\"binary\""] - 153 -> 57 [style=solid label="\"hexadecimal\""] - 153 -> 58 [style=solid label="\"integer\""] - 153 -> 59 [style=solid label="\"rational\""] - 153 -> 60 [style=solid label="\"decimal\""] - 153 -> 61 [style=solid label="\"string\""] + 153 -> 46 [style=solid label="\"forall\""] + 153 -> 47 [style=solid label="\"choose\""] + 153 -> 48 [style=solid label="\"if\""] + 153 -> 49 [style=solid label="\"exists\""] + 153 -> 50 [style=solid label="\"undef\""] + 153 -> 51 [style=solid label="\"false\""] + 153 -> 52 [style=solid label="\"true\""] + 153 -> 53 [style=solid label="\"not\""] + 153 -> 54 [style=solid label="\"+\""] + 153 -> 55 [style=solid label="\"-\""] + 153 -> 56 [style=solid label="\"(\""] + 153 -> 57 [style=solid label="\"[\""] + 153 -> 58 [style=solid label="\"|\""] + 153 -> 59 [style=solid label="\"@\""] + 153 -> 60 [style=solid label="\"binary\""] + 153 -> 61 [style=solid label="\"hexadecimal\""] + 153 -> 62 [style=solid label="\"integer\""] + 153 -> 63 [style=solid label="\"rational\""] + 153 -> 64 [style=solid label="\"decimal\""] + 153 -> 65 [style=solid label="\"string\""] 153 -> 9 [style=solid label="\"identifier\""] - 153 -> 224 [style=dashed label="Terms"] - 153 -> 225 [style=dashed label="Term"] - 153 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 153 -> 64 [style=dashed label="OperatorExpression"] - 153 -> 65 [style=dashed label="CallExpression"] - 153 -> 66 [style=dashed label="DirectCallExpression"] - 153 -> 67 [style=dashed label="MethodCallExpression"] - 153 -> 68 [style=dashed label="LiteralCallExpression"] - 153 -> 69 [style=dashed label="IndirectCallExpression"] - 153 -> 70 [style=dashed label="TypeCastingExpression"] - 153 -> 71 [style=dashed label="LetExpression"] - 153 -> 72 [style=dashed label="ConditionalExpression"] - 153 -> 73 [style=dashed label="ChooseExpression"] - 153 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 153 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 153 -> 76 [style=dashed label="CardinalityExpression"] - 153 -> 77 [style=dashed label="Literal"] - 153 -> 78 [style=dashed label="UndefinedLiteral"] - 153 -> 79 [style=dashed label="BooleanLiteral"] - 153 -> 80 [style=dashed label="IntegerLiteral"] - 153 -> 81 [style=dashed label="RationalLiteral"] - 153 -> 82 [style=dashed label="DecimalLiteral"] - 153 -> 83 [style=dashed label="BinaryLiteral"] - 153 -> 84 [style=dashed label="StringLiteral"] - 153 -> 85 [style=dashed label="ReferenceLiteral"] - 153 -> 86 [style=dashed label="ListLiteral"] - 153 -> 87 [style=dashed label="RangeLiteral"] - 153 -> 88 [style=dashed label="TupleLiteral"] - 153 -> 89 [style=dashed label="RecordLiteral"] - 153 -> 90 [style=dashed label="Identifier"] - 153 -> 91 [style=dashed label="IdentifierPath"] - 154 [label="State 154\n\l126 DirectCallExpression: IdentifierPath \"(\" • \")\"\l127 | IdentifierPath \"(\" • Terms \")\"\l128 | IdentifierPath \"(\" • error \")\"\l"] - 154 -> 226 [style=dotted] - 154 -> 41 [style=solid label="\"let\""] + 153 -> 224 [style=dashed label="Term"] + 153 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 153 -> 68 [style=dashed label="OperatorExpression"] + 153 -> 69 [style=dashed label="CallExpression"] + 153 -> 70 [style=dashed label="DirectCallExpression"] + 153 -> 71 [style=dashed label="MethodCallExpression"] + 153 -> 72 [style=dashed label="LiteralCallExpression"] + 153 -> 73 [style=dashed label="IndirectCallExpression"] + 153 -> 74 [style=dashed label="TypeCastingExpression"] + 153 -> 75 [style=dashed label="LetExpression"] + 153 -> 76 [style=dashed label="ConditionalExpression"] + 153 -> 77 [style=dashed label="ChooseExpression"] + 153 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 153 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 153 -> 80 [style=dashed label="CardinalityExpression"] + 153 -> 81 [style=dashed label="Literal"] + 153 -> 82 [style=dashed label="UndefinedLiteral"] + 153 -> 83 [style=dashed label="BooleanLiteral"] + 153 -> 84 [style=dashed label="IntegerLiteral"] + 153 -> 85 [style=dashed label="RationalLiteral"] + 153 -> 86 [style=dashed label="DecimalLiteral"] + 153 -> 87 [style=dashed label="BinaryLiteral"] + 153 -> 88 [style=dashed label="StringLiteral"] + 153 -> 89 [style=dashed label="ReferenceLiteral"] + 153 -> 90 [style=dashed label="ListLiteral"] + 153 -> 91 [style=dashed label="RangeLiteral"] + 153 -> 92 [style=dashed label="TupleLiteral"] + 153 -> 93 [style=dashed label="RecordLiteral"] + 153 -> 94 [style=dashed label="Identifier"] + 153 -> 95 [style=dashed label="IdentifierPath"] + 154 [label="State 154\n\l127 OperatorExpression: Term \"=\" • Term\l"] + 154 -> 45 [style=solid label="\"let\""] 154 -> 8 [style=solid label="\"in\""] - 154 -> 42 [style=solid label="\"forall\""] - 154 -> 43 [style=solid label="\"choose\""] - 154 -> 44 [style=solid label="\"if\""] - 154 -> 45 [style=solid label="\"exists\""] - 154 -> 46 [style=solid label="\"undef\""] - 154 -> 47 [style=solid label="\"false\""] - 154 -> 48 [style=solid label="\"true\""] - 154 -> 49 [style=solid label="\"not\""] - 154 -> 50 [style=solid label="\"+\""] - 154 -> 51 [style=solid label="\"-\""] - 154 -> 52 [style=solid label="\"(\""] - 154 -> 227 [style=solid label="\")\""] - 154 -> 53 [style=solid label="\"[\""] - 154 -> 54 [style=solid label="\"|\""] - 154 -> 55 [style=solid label="\"@\""] - 154 -> 56 [style=solid label="\"binary\""] - 154 -> 57 [style=solid label="\"hexadecimal\""] - 154 -> 58 [style=solid label="\"integer\""] - 154 -> 59 [style=solid label="\"rational\""] - 154 -> 60 [style=solid label="\"decimal\""] - 154 -> 61 [style=solid label="\"string\""] + 154 -> 46 [style=solid label="\"forall\""] + 154 -> 47 [style=solid label="\"choose\""] + 154 -> 48 [style=solid label="\"if\""] + 154 -> 49 [style=solid label="\"exists\""] + 154 -> 50 [style=solid label="\"undef\""] + 154 -> 51 [style=solid label="\"false\""] + 154 -> 52 [style=solid label="\"true\""] + 154 -> 53 [style=solid label="\"not\""] + 154 -> 54 [style=solid label="\"+\""] + 154 -> 55 [style=solid label="\"-\""] + 154 -> 56 [style=solid label="\"(\""] + 154 -> 57 [style=solid label="\"[\""] + 154 -> 58 [style=solid label="\"|\""] + 154 -> 59 [style=solid label="\"@\""] + 154 -> 60 [style=solid label="\"binary\""] + 154 -> 61 [style=solid label="\"hexadecimal\""] + 154 -> 62 [style=solid label="\"integer\""] + 154 -> 63 [style=solid label="\"rational\""] + 154 -> 64 [style=solid label="\"decimal\""] + 154 -> 65 [style=solid label="\"string\""] 154 -> 9 [style=solid label="\"identifier\""] - 154 -> 228 [style=dashed label="Terms"] 154 -> 225 [style=dashed label="Term"] - 154 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 154 -> 64 [style=dashed label="OperatorExpression"] - 154 -> 65 [style=dashed label="CallExpression"] - 154 -> 66 [style=dashed label="DirectCallExpression"] - 154 -> 67 [style=dashed label="MethodCallExpression"] - 154 -> 68 [style=dashed label="LiteralCallExpression"] - 154 -> 69 [style=dashed label="IndirectCallExpression"] - 154 -> 70 [style=dashed label="TypeCastingExpression"] - 154 -> 71 [style=dashed label="LetExpression"] - 154 -> 72 [style=dashed label="ConditionalExpression"] - 154 -> 73 [style=dashed label="ChooseExpression"] - 154 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 154 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 154 -> 76 [style=dashed label="CardinalityExpression"] - 154 -> 77 [style=dashed label="Literal"] - 154 -> 78 [style=dashed label="UndefinedLiteral"] - 154 -> 79 [style=dashed label="BooleanLiteral"] - 154 -> 80 [style=dashed label="IntegerLiteral"] - 154 -> 81 [style=dashed label="RationalLiteral"] - 154 -> 82 [style=dashed label="DecimalLiteral"] - 154 -> 83 [style=dashed label="BinaryLiteral"] - 154 -> 84 [style=dashed label="StringLiteral"] - 154 -> 85 [style=dashed label="ReferenceLiteral"] - 154 -> 86 [style=dashed label="ListLiteral"] - 154 -> 87 [style=dashed label="RangeLiteral"] - 154 -> 88 [style=dashed label="TupleLiteral"] - 154 -> 89 [style=dashed label="RecordLiteral"] - 154 -> 90 [style=dashed label="Identifier"] - 154 -> 91 [style=dashed label="IdentifierPath"] - 155 [label="State 155\n\l206 IdentifierPath: IdentifierPath \"::\" • Identifier\l"] + 154 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 154 -> 68 [style=dashed label="OperatorExpression"] + 154 -> 69 [style=dashed label="CallExpression"] + 154 -> 70 [style=dashed label="DirectCallExpression"] + 154 -> 71 [style=dashed label="MethodCallExpression"] + 154 -> 72 [style=dashed label="LiteralCallExpression"] + 154 -> 73 [style=dashed label="IndirectCallExpression"] + 154 -> 74 [style=dashed label="TypeCastingExpression"] + 154 -> 75 [style=dashed label="LetExpression"] + 154 -> 76 [style=dashed label="ConditionalExpression"] + 154 -> 77 [style=dashed label="ChooseExpression"] + 154 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 154 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 154 -> 80 [style=dashed label="CardinalityExpression"] + 154 -> 81 [style=dashed label="Literal"] + 154 -> 82 [style=dashed label="UndefinedLiteral"] + 154 -> 83 [style=dashed label="BooleanLiteral"] + 154 -> 84 [style=dashed label="IntegerLiteral"] + 154 -> 85 [style=dashed label="RationalLiteral"] + 154 -> 86 [style=dashed label="DecimalLiteral"] + 154 -> 87 [style=dashed label="BinaryLiteral"] + 154 -> 88 [style=dashed label="StringLiteral"] + 154 -> 89 [style=dashed label="ReferenceLiteral"] + 154 -> 90 [style=dashed label="ListLiteral"] + 154 -> 91 [style=dashed label="RangeLiteral"] + 154 -> 92 [style=dashed label="TupleLiteral"] + 154 -> 93 [style=dashed label="RecordLiteral"] + 154 -> 94 [style=dashed label="Identifier"] + 154 -> 95 [style=dashed label="IdentifierPath"] + 155 [label="State 155\n\l128 OperatorExpression: Term \"<\" • Term\l"] + 155 -> 45 [style=solid label="\"let\""] 155 -> 8 [style=solid label="\"in\""] + 155 -> 46 [style=solid label="\"forall\""] + 155 -> 47 [style=solid label="\"choose\""] + 155 -> 48 [style=solid label="\"if\""] + 155 -> 49 [style=solid label="\"exists\""] + 155 -> 50 [style=solid label="\"undef\""] + 155 -> 51 [style=solid label="\"false\""] + 155 -> 52 [style=solid label="\"true\""] + 155 -> 53 [style=solid label="\"not\""] + 155 -> 54 [style=solid label="\"+\""] + 155 -> 55 [style=solid label="\"-\""] + 155 -> 56 [style=solid label="\"(\""] + 155 -> 57 [style=solid label="\"[\""] + 155 -> 58 [style=solid label="\"|\""] + 155 -> 59 [style=solid label="\"@\""] + 155 -> 60 [style=solid label="\"binary\""] + 155 -> 61 [style=solid label="\"hexadecimal\""] + 155 -> 62 [style=solid label="\"integer\""] + 155 -> 63 [style=solid label="\"rational\""] + 155 -> 64 [style=solid label="\"decimal\""] + 155 -> 65 [style=solid label="\"string\""] 155 -> 9 [style=solid label="\"identifier\""] - 155 -> 229 [style=dashed label="Identifier"] - 156 [label="State 156\n\l 97 SimpleOrClaspedTerm: \"(\" • Term \")\"\l 98 | \"(\" • error \")\"\l170 TupleLiteral: \"(\" • Terms \",\" Term \")\"\l171 RecordLiteral: \"(\" • Assignments \")\"\l202 Initializer: \"(\" • Term \")\" \"->\" Term\l"] - 156 -> 122 [style=dotted] - 156 -> 41 [style=solid label="\"let\""] + 155 -> 226 [style=dashed label="Term"] + 155 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 155 -> 68 [style=dashed label="OperatorExpression"] + 155 -> 69 [style=dashed label="CallExpression"] + 155 -> 70 [style=dashed label="DirectCallExpression"] + 155 -> 71 [style=dashed label="MethodCallExpression"] + 155 -> 72 [style=dashed label="LiteralCallExpression"] + 155 -> 73 [style=dashed label="IndirectCallExpression"] + 155 -> 74 [style=dashed label="TypeCastingExpression"] + 155 -> 75 [style=dashed label="LetExpression"] + 155 -> 76 [style=dashed label="ConditionalExpression"] + 155 -> 77 [style=dashed label="ChooseExpression"] + 155 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 155 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 155 -> 80 [style=dashed label="CardinalityExpression"] + 155 -> 81 [style=dashed label="Literal"] + 155 -> 82 [style=dashed label="UndefinedLiteral"] + 155 -> 83 [style=dashed label="BooleanLiteral"] + 155 -> 84 [style=dashed label="IntegerLiteral"] + 155 -> 85 [style=dashed label="RationalLiteral"] + 155 -> 86 [style=dashed label="DecimalLiteral"] + 155 -> 87 [style=dashed label="BinaryLiteral"] + 155 -> 88 [style=dashed label="StringLiteral"] + 155 -> 89 [style=dashed label="ReferenceLiteral"] + 155 -> 90 [style=dashed label="ListLiteral"] + 155 -> 91 [style=dashed label="RangeLiteral"] + 155 -> 92 [style=dashed label="TupleLiteral"] + 155 -> 93 [style=dashed label="RecordLiteral"] + 155 -> 94 [style=dashed label="Identifier"] + 155 -> 95 [style=dashed label="IdentifierPath"] + 156 [label="State 156\n\l129 OperatorExpression: Term \">\" • Term\l"] + 156 -> 45 [style=solid label="\"let\""] 156 -> 8 [style=solid label="\"in\""] - 156 -> 42 [style=solid label="\"forall\""] - 156 -> 43 [style=solid label="\"choose\""] - 156 -> 44 [style=solid label="\"if\""] - 156 -> 45 [style=solid label="\"exists\""] - 156 -> 46 [style=solid label="\"undef\""] - 156 -> 47 [style=solid label="\"false\""] - 156 -> 48 [style=solid label="\"true\""] - 156 -> 49 [style=solid label="\"not\""] - 156 -> 50 [style=solid label="\"+\""] - 156 -> 51 [style=solid label="\"-\""] - 156 -> 52 [style=solid label="\"(\""] - 156 -> 53 [style=solid label="\"[\""] - 156 -> 54 [style=solid label="\"|\""] - 156 -> 55 [style=solid label="\"@\""] - 156 -> 56 [style=solid label="\"binary\""] - 156 -> 57 [style=solid label="\"hexadecimal\""] - 156 -> 58 [style=solid label="\"integer\""] - 156 -> 59 [style=solid label="\"rational\""] - 156 -> 60 [style=solid label="\"decimal\""] - 156 -> 61 [style=solid label="\"string\""] + 156 -> 46 [style=solid label="\"forall\""] + 156 -> 47 [style=solid label="\"choose\""] + 156 -> 48 [style=solid label="\"if\""] + 156 -> 49 [style=solid label="\"exists\""] + 156 -> 50 [style=solid label="\"undef\""] + 156 -> 51 [style=solid label="\"false\""] + 156 -> 52 [style=solid label="\"true\""] + 156 -> 53 [style=solid label="\"not\""] + 156 -> 54 [style=solid label="\"+\""] + 156 -> 55 [style=solid label="\"-\""] + 156 -> 56 [style=solid label="\"(\""] + 156 -> 57 [style=solid label="\"[\""] + 156 -> 58 [style=solid label="\"|\""] + 156 -> 59 [style=solid label="\"@\""] + 156 -> 60 [style=solid label="\"binary\""] + 156 -> 61 [style=solid label="\"hexadecimal\""] + 156 -> 62 [style=solid label="\"integer\""] + 156 -> 63 [style=solid label="\"rational\""] + 156 -> 64 [style=solid label="\"decimal\""] + 156 -> 65 [style=solid label="\"string\""] 156 -> 9 [style=solid label="\"identifier\""] - 156 -> 123 [style=dashed label="Terms"] - 156 -> 230 [style=dashed label="Term"] - 156 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 156 -> 64 [style=dashed label="OperatorExpression"] - 156 -> 65 [style=dashed label="CallExpression"] - 156 -> 66 [style=dashed label="DirectCallExpression"] - 156 -> 67 [style=dashed label="MethodCallExpression"] - 156 -> 68 [style=dashed label="LiteralCallExpression"] - 156 -> 69 [style=dashed label="IndirectCallExpression"] - 156 -> 70 [style=dashed label="TypeCastingExpression"] - 156 -> 71 [style=dashed label="LetExpression"] - 156 -> 72 [style=dashed label="ConditionalExpression"] - 156 -> 73 [style=dashed label="ChooseExpression"] - 156 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 156 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 156 -> 76 [style=dashed label="CardinalityExpression"] - 156 -> 77 [style=dashed label="Literal"] - 156 -> 78 [style=dashed label="UndefinedLiteral"] - 156 -> 79 [style=dashed label="BooleanLiteral"] - 156 -> 80 [style=dashed label="IntegerLiteral"] - 156 -> 81 [style=dashed label="RationalLiteral"] - 156 -> 82 [style=dashed label="DecimalLiteral"] - 156 -> 83 [style=dashed label="BinaryLiteral"] - 156 -> 84 [style=dashed label="StringLiteral"] - 156 -> 85 [style=dashed label="ReferenceLiteral"] - 156 -> 86 [style=dashed label="ListLiteral"] - 156 -> 87 [style=dashed label="RangeLiteral"] - 156 -> 88 [style=dashed label="TupleLiteral"] - 156 -> 89 [style=dashed label="RecordLiteral"] - 156 -> 125 [style=dashed label="Assignments"] - 156 -> 126 [style=dashed label="Assignment"] - 156 -> 127 [style=dashed label="Identifier"] - 156 -> 91 [style=dashed label="IdentifierPath"] - 157 [label="State 157\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l201 Initializer: Term •\l"] - 157 -> 134 [style=solid label="\"and\""] - 157 -> 135 [style=solid label="\"or\""] - 157 -> 136 [style=solid label="\"xor\""] - 157 -> 137 [style=solid label="\"implies\""] - 157 -> 138 [style=solid label="\"+\""] - 157 -> 139 [style=solid label="\"-\""] - 157 -> 140 [style=solid label="\"=\""] - 157 -> 141 [style=solid label="\"<\""] - 157 -> 142 [style=solid label="\">\""] - 157 -> 143 [style=solid label="\"*\""] - 157 -> 144 [style=solid label="\"/\""] - 157 -> 145 [style=solid label="\"%\""] - 157 -> 146 [style=solid label="\"^\""] - 157 -> 147 [style=solid label="\"=>\""] - 157 -> 148 [style=solid label="\"!=\""] - 157 -> 149 [style=solid label="\"<=\""] - 157 -> 150 [style=solid label="\">=\""] - 157 -> "157R201" [style=solid] - "157R201" [label="R201", fillcolor=3, shape=diamond, style=filled] - 158 [label="State 158\n\l154 Literal: TupleLiteral •\l203 Initializer: TupleLiteral • \"->\" Term\l"] - 158 -> 231 [style=solid label="\"->\""] - 158 -> "158R154" [style=solid] - "158R154" [label="R154", fillcolor=3, shape=diamond, style=filled] - 159 [label="State 159\n\l 20 InitDefinition: \"init\" \"{\" Initializers • \"}\"\l199 Initializers: Initializers • \",\" Initializer\l"] - 159 -> 232 [style=solid label="\"}\""] - 159 -> 233 [style=solid label="\",\""] - 160 [label="State 160\n\l200 Initializers: Initializer •\l"] - 160 -> "160R200" [style=solid] - "160R200" [label="R200", fillcolor=3, shape=diamond, style=filled] - 161 [label="State 161\n\l 23 DerivedDefinition: \"derived\" Identifier \"(\" • Parameters \")\" \"->\" Type \"=\" Term\l 24 | \"derived\" Identifier \"(\" • error \")\" \"->\" Type \"=\" Term\l"] - 161 -> 234 [style=dotted] + 156 -> 227 [style=dashed label="Term"] + 156 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 156 -> 68 [style=dashed label="OperatorExpression"] + 156 -> 69 [style=dashed label="CallExpression"] + 156 -> 70 [style=dashed label="DirectCallExpression"] + 156 -> 71 [style=dashed label="MethodCallExpression"] + 156 -> 72 [style=dashed label="LiteralCallExpression"] + 156 -> 73 [style=dashed label="IndirectCallExpression"] + 156 -> 74 [style=dashed label="TypeCastingExpression"] + 156 -> 75 [style=dashed label="LetExpression"] + 156 -> 76 [style=dashed label="ConditionalExpression"] + 156 -> 77 [style=dashed label="ChooseExpression"] + 156 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 156 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 156 -> 80 [style=dashed label="CardinalityExpression"] + 156 -> 81 [style=dashed label="Literal"] + 156 -> 82 [style=dashed label="UndefinedLiteral"] + 156 -> 83 [style=dashed label="BooleanLiteral"] + 156 -> 84 [style=dashed label="IntegerLiteral"] + 156 -> 85 [style=dashed label="RationalLiteral"] + 156 -> 86 [style=dashed label="DecimalLiteral"] + 156 -> 87 [style=dashed label="BinaryLiteral"] + 156 -> 88 [style=dashed label="StringLiteral"] + 156 -> 89 [style=dashed label="ReferenceLiteral"] + 156 -> 90 [style=dashed label="ListLiteral"] + 156 -> 91 [style=dashed label="RangeLiteral"] + 156 -> 92 [style=dashed label="TupleLiteral"] + 156 -> 93 [style=dashed label="RecordLiteral"] + 156 -> 94 [style=dashed label="Identifier"] + 156 -> 95 [style=dashed label="IdentifierPath"] + 157 [label="State 157\n\l122 OperatorExpression: Term \"*\" • Term\l"] + 157 -> 45 [style=solid label="\"let\""] + 157 -> 8 [style=solid label="\"in\""] + 157 -> 46 [style=solid label="\"forall\""] + 157 -> 47 [style=solid label="\"choose\""] + 157 -> 48 [style=solid label="\"if\""] + 157 -> 49 [style=solid label="\"exists\""] + 157 -> 50 [style=solid label="\"undef\""] + 157 -> 51 [style=solid label="\"false\""] + 157 -> 52 [style=solid label="\"true\""] + 157 -> 53 [style=solid label="\"not\""] + 157 -> 54 [style=solid label="\"+\""] + 157 -> 55 [style=solid label="\"-\""] + 157 -> 56 [style=solid label="\"(\""] + 157 -> 57 [style=solid label="\"[\""] + 157 -> 58 [style=solid label="\"|\""] + 157 -> 59 [style=solid label="\"@\""] + 157 -> 60 [style=solid label="\"binary\""] + 157 -> 61 [style=solid label="\"hexadecimal\""] + 157 -> 62 [style=solid label="\"integer\""] + 157 -> 63 [style=solid label="\"rational\""] + 157 -> 64 [style=solid label="\"decimal\""] + 157 -> 65 [style=solid label="\"string\""] + 157 -> 9 [style=solid label="\"identifier\""] + 157 -> 228 [style=dashed label="Term"] + 157 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 157 -> 68 [style=dashed label="OperatorExpression"] + 157 -> 69 [style=dashed label="CallExpression"] + 157 -> 70 [style=dashed label="DirectCallExpression"] + 157 -> 71 [style=dashed label="MethodCallExpression"] + 157 -> 72 [style=dashed label="LiteralCallExpression"] + 157 -> 73 [style=dashed label="IndirectCallExpression"] + 157 -> 74 [style=dashed label="TypeCastingExpression"] + 157 -> 75 [style=dashed label="LetExpression"] + 157 -> 76 [style=dashed label="ConditionalExpression"] + 157 -> 77 [style=dashed label="ChooseExpression"] + 157 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 157 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 157 -> 80 [style=dashed label="CardinalityExpression"] + 157 -> 81 [style=dashed label="Literal"] + 157 -> 82 [style=dashed label="UndefinedLiteral"] + 157 -> 83 [style=dashed label="BooleanLiteral"] + 157 -> 84 [style=dashed label="IntegerLiteral"] + 157 -> 85 [style=dashed label="RationalLiteral"] + 157 -> 86 [style=dashed label="DecimalLiteral"] + 157 -> 87 [style=dashed label="BinaryLiteral"] + 157 -> 88 [style=dashed label="StringLiteral"] + 157 -> 89 [style=dashed label="ReferenceLiteral"] + 157 -> 90 [style=dashed label="ListLiteral"] + 157 -> 91 [style=dashed label="RangeLiteral"] + 157 -> 92 [style=dashed label="TupleLiteral"] + 157 -> 93 [style=dashed label="RecordLiteral"] + 157 -> 94 [style=dashed label="Identifier"] + 157 -> 95 [style=dashed label="IdentifierPath"] + 158 [label="State 158\n\l123 OperatorExpression: Term \"/\" • Term\l"] + 158 -> 45 [style=solid label="\"let\""] + 158 -> 8 [style=solid label="\"in\""] + 158 -> 46 [style=solid label="\"forall\""] + 158 -> 47 [style=solid label="\"choose\""] + 158 -> 48 [style=solid label="\"if\""] + 158 -> 49 [style=solid label="\"exists\""] + 158 -> 50 [style=solid label="\"undef\""] + 158 -> 51 [style=solid label="\"false\""] + 158 -> 52 [style=solid label="\"true\""] + 158 -> 53 [style=solid label="\"not\""] + 158 -> 54 [style=solid label="\"+\""] + 158 -> 55 [style=solid label="\"-\""] + 158 -> 56 [style=solid label="\"(\""] + 158 -> 57 [style=solid label="\"[\""] + 158 -> 58 [style=solid label="\"|\""] + 158 -> 59 [style=solid label="\"@\""] + 158 -> 60 [style=solid label="\"binary\""] + 158 -> 61 [style=solid label="\"hexadecimal\""] + 158 -> 62 [style=solid label="\"integer\""] + 158 -> 63 [style=solid label="\"rational\""] + 158 -> 64 [style=solid label="\"decimal\""] + 158 -> 65 [style=solid label="\"string\""] + 158 -> 9 [style=solid label="\"identifier\""] + 158 -> 229 [style=dashed label="Term"] + 158 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 158 -> 68 [style=dashed label="OperatorExpression"] + 158 -> 69 [style=dashed label="CallExpression"] + 158 -> 70 [style=dashed label="DirectCallExpression"] + 158 -> 71 [style=dashed label="MethodCallExpression"] + 158 -> 72 [style=dashed label="LiteralCallExpression"] + 158 -> 73 [style=dashed label="IndirectCallExpression"] + 158 -> 74 [style=dashed label="TypeCastingExpression"] + 158 -> 75 [style=dashed label="LetExpression"] + 158 -> 76 [style=dashed label="ConditionalExpression"] + 158 -> 77 [style=dashed label="ChooseExpression"] + 158 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 158 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 158 -> 80 [style=dashed label="CardinalityExpression"] + 158 -> 81 [style=dashed label="Literal"] + 158 -> 82 [style=dashed label="UndefinedLiteral"] + 158 -> 83 [style=dashed label="BooleanLiteral"] + 158 -> 84 [style=dashed label="IntegerLiteral"] + 158 -> 85 [style=dashed label="RationalLiteral"] + 158 -> 86 [style=dashed label="DecimalLiteral"] + 158 -> 87 [style=dashed label="BinaryLiteral"] + 158 -> 88 [style=dashed label="StringLiteral"] + 158 -> 89 [style=dashed label="ReferenceLiteral"] + 158 -> 90 [style=dashed label="ListLiteral"] + 158 -> 91 [style=dashed label="RangeLiteral"] + 158 -> 92 [style=dashed label="TupleLiteral"] + 158 -> 93 [style=dashed label="RecordLiteral"] + 158 -> 94 [style=dashed label="Identifier"] + 158 -> 95 [style=dashed label="IdentifierPath"] + 159 [label="State 159\n\l124 OperatorExpression: Term \"%\" • Term\l"] + 159 -> 45 [style=solid label="\"let\""] + 159 -> 8 [style=solid label="\"in\""] + 159 -> 46 [style=solid label="\"forall\""] + 159 -> 47 [style=solid label="\"choose\""] + 159 -> 48 [style=solid label="\"if\""] + 159 -> 49 [style=solid label="\"exists\""] + 159 -> 50 [style=solid label="\"undef\""] + 159 -> 51 [style=solid label="\"false\""] + 159 -> 52 [style=solid label="\"true\""] + 159 -> 53 [style=solid label="\"not\""] + 159 -> 54 [style=solid label="\"+\""] + 159 -> 55 [style=solid label="\"-\""] + 159 -> 56 [style=solid label="\"(\""] + 159 -> 57 [style=solid label="\"[\""] + 159 -> 58 [style=solid label="\"|\""] + 159 -> 59 [style=solid label="\"@\""] + 159 -> 60 [style=solid label="\"binary\""] + 159 -> 61 [style=solid label="\"hexadecimal\""] + 159 -> 62 [style=solid label="\"integer\""] + 159 -> 63 [style=solid label="\"rational\""] + 159 -> 64 [style=solid label="\"decimal\""] + 159 -> 65 [style=solid label="\"string\""] + 159 -> 9 [style=solid label="\"identifier\""] + 159 -> 230 [style=dashed label="Term"] + 159 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 159 -> 68 [style=dashed label="OperatorExpression"] + 159 -> 69 [style=dashed label="CallExpression"] + 159 -> 70 [style=dashed label="DirectCallExpression"] + 159 -> 71 [style=dashed label="MethodCallExpression"] + 159 -> 72 [style=dashed label="LiteralCallExpression"] + 159 -> 73 [style=dashed label="IndirectCallExpression"] + 159 -> 74 [style=dashed label="TypeCastingExpression"] + 159 -> 75 [style=dashed label="LetExpression"] + 159 -> 76 [style=dashed label="ConditionalExpression"] + 159 -> 77 [style=dashed label="ChooseExpression"] + 159 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 159 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 159 -> 80 [style=dashed label="CardinalityExpression"] + 159 -> 81 [style=dashed label="Literal"] + 159 -> 82 [style=dashed label="UndefinedLiteral"] + 159 -> 83 [style=dashed label="BooleanLiteral"] + 159 -> 84 [style=dashed label="IntegerLiteral"] + 159 -> 85 [style=dashed label="RationalLiteral"] + 159 -> 86 [style=dashed label="DecimalLiteral"] + 159 -> 87 [style=dashed label="BinaryLiteral"] + 159 -> 88 [style=dashed label="StringLiteral"] + 159 -> 89 [style=dashed label="ReferenceLiteral"] + 159 -> 90 [style=dashed label="ListLiteral"] + 159 -> 91 [style=dashed label="RangeLiteral"] + 159 -> 92 [style=dashed label="TupleLiteral"] + 159 -> 93 [style=dashed label="RecordLiteral"] + 159 -> 94 [style=dashed label="Identifier"] + 159 -> 95 [style=dashed label="IdentifierPath"] + 160 [label="State 160\n\l125 OperatorExpression: Term \"^\" • Term\l"] + 160 -> 45 [style=solid label="\"let\""] + 160 -> 8 [style=solid label="\"in\""] + 160 -> 46 [style=solid label="\"forall\""] + 160 -> 47 [style=solid label="\"choose\""] + 160 -> 48 [style=solid label="\"if\""] + 160 -> 49 [style=solid label="\"exists\""] + 160 -> 50 [style=solid label="\"undef\""] + 160 -> 51 [style=solid label="\"false\""] + 160 -> 52 [style=solid label="\"true\""] + 160 -> 53 [style=solid label="\"not\""] + 160 -> 54 [style=solid label="\"+\""] + 160 -> 55 [style=solid label="\"-\""] + 160 -> 56 [style=solid label="\"(\""] + 160 -> 57 [style=solid label="\"[\""] + 160 -> 58 [style=solid label="\"|\""] + 160 -> 59 [style=solid label="\"@\""] + 160 -> 60 [style=solid label="\"binary\""] + 160 -> 61 [style=solid label="\"hexadecimal\""] + 160 -> 62 [style=solid label="\"integer\""] + 160 -> 63 [style=solid label="\"rational\""] + 160 -> 64 [style=solid label="\"decimal\""] + 160 -> 65 [style=solid label="\"string\""] + 160 -> 9 [style=solid label="\"identifier\""] + 160 -> 231 [style=dashed label="Term"] + 160 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 160 -> 68 [style=dashed label="OperatorExpression"] + 160 -> 69 [style=dashed label="CallExpression"] + 160 -> 70 [style=dashed label="DirectCallExpression"] + 160 -> 71 [style=dashed label="MethodCallExpression"] + 160 -> 72 [style=dashed label="LiteralCallExpression"] + 160 -> 73 [style=dashed label="IndirectCallExpression"] + 160 -> 74 [style=dashed label="TypeCastingExpression"] + 160 -> 75 [style=dashed label="LetExpression"] + 160 -> 76 [style=dashed label="ConditionalExpression"] + 160 -> 77 [style=dashed label="ChooseExpression"] + 160 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 160 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 160 -> 80 [style=dashed label="CardinalityExpression"] + 160 -> 81 [style=dashed label="Literal"] + 160 -> 82 [style=dashed label="UndefinedLiteral"] + 160 -> 83 [style=dashed label="BooleanLiteral"] + 160 -> 84 [style=dashed label="IntegerLiteral"] + 160 -> 85 [style=dashed label="RationalLiteral"] + 160 -> 86 [style=dashed label="DecimalLiteral"] + 160 -> 87 [style=dashed label="BinaryLiteral"] + 160 -> 88 [style=dashed label="StringLiteral"] + 160 -> 89 [style=dashed label="ReferenceLiteral"] + 160 -> 90 [style=dashed label="ListLiteral"] + 160 -> 91 [style=dashed label="RangeLiteral"] + 160 -> 92 [style=dashed label="TupleLiteral"] + 160 -> 93 [style=dashed label="RecordLiteral"] + 160 -> 94 [style=dashed label="Identifier"] + 160 -> 95 [style=dashed label="IdentifierPath"] + 161 [label="State 161\n\l135 OperatorExpression: Term \"=>\" • Term\l"] + 161 -> 45 [style=solid label="\"let\""] 161 -> 8 [style=solid label="\"in\""] - 161 -> 2 [style=solid label="\"[\""] + 161 -> 46 [style=solid label="\"forall\""] + 161 -> 47 [style=solid label="\"choose\""] + 161 -> 48 [style=solid label="\"if\""] + 161 -> 49 [style=solid label="\"exists\""] + 161 -> 50 [style=solid label="\"undef\""] + 161 -> 51 [style=solid label="\"false\""] + 161 -> 52 [style=solid label="\"true\""] + 161 -> 53 [style=solid label="\"not\""] + 161 -> 54 [style=solid label="\"+\""] + 161 -> 55 [style=solid label="\"-\""] + 161 -> 56 [style=solid label="\"(\""] + 161 -> 57 [style=solid label="\"[\""] + 161 -> 58 [style=solid label="\"|\""] + 161 -> 59 [style=solid label="\"@\""] + 161 -> 60 [style=solid label="\"binary\""] + 161 -> 61 [style=solid label="\"hexadecimal\""] + 161 -> 62 [style=solid label="\"integer\""] + 161 -> 63 [style=solid label="\"rational\""] + 161 -> 64 [style=solid label="\"decimal\""] + 161 -> 65 [style=solid label="\"string\""] 161 -> 9 [style=solid label="\"identifier\""] - 161 -> 235 [style=dashed label="Parameters"] - 161 -> 236 [style=dashed label="Identifier"] - 161 -> 237 [style=dashed label="TypedVariable"] - 161 -> 238 [style=dashed label="TypedAttributedVariable"] - 161 -> 239 [style=dashed label="Attributes"] - 161 -> 6 [style=dashed label="Attribute"] - 162 [label="State 162\n\l 22 DerivedDefinition: \"derived\" Identifier \"->\" • Type \"=\" Term\l"] + 161 -> 232 [style=dashed label="Term"] + 161 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 161 -> 68 [style=dashed label="OperatorExpression"] + 161 -> 69 [style=dashed label="CallExpression"] + 161 -> 70 [style=dashed label="DirectCallExpression"] + 161 -> 71 [style=dashed label="MethodCallExpression"] + 161 -> 72 [style=dashed label="LiteralCallExpression"] + 161 -> 73 [style=dashed label="IndirectCallExpression"] + 161 -> 74 [style=dashed label="TypeCastingExpression"] + 161 -> 75 [style=dashed label="LetExpression"] + 161 -> 76 [style=dashed label="ConditionalExpression"] + 161 -> 77 [style=dashed label="ChooseExpression"] + 161 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 161 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 161 -> 80 [style=dashed label="CardinalityExpression"] + 161 -> 81 [style=dashed label="Literal"] + 161 -> 82 [style=dashed label="UndefinedLiteral"] + 161 -> 83 [style=dashed label="BooleanLiteral"] + 161 -> 84 [style=dashed label="IntegerLiteral"] + 161 -> 85 [style=dashed label="RationalLiteral"] + 161 -> 86 [style=dashed label="DecimalLiteral"] + 161 -> 87 [style=dashed label="BinaryLiteral"] + 161 -> 88 [style=dashed label="StringLiteral"] + 161 -> 89 [style=dashed label="ReferenceLiteral"] + 161 -> 90 [style=dashed label="ListLiteral"] + 161 -> 91 [style=dashed label="RangeLiteral"] + 161 -> 92 [style=dashed label="TupleLiteral"] + 161 -> 93 [style=dashed label="RecordLiteral"] + 161 -> 94 [style=dashed label="Identifier"] + 161 -> 95 [style=dashed label="IdentifierPath"] + 162 [label="State 162\n\l126 OperatorExpression: Term \"!=\" • Term\l"] + 162 -> 45 [style=solid label="\"let\""] 162 -> 8 [style=solid label="\"in\""] - 162 -> 211 [style=solid label="\"(\""] + 162 -> 46 [style=solid label="\"forall\""] + 162 -> 47 [style=solid label="\"choose\""] + 162 -> 48 [style=solid label="\"if\""] + 162 -> 49 [style=solid label="\"exists\""] + 162 -> 50 [style=solid label="\"undef\""] + 162 -> 51 [style=solid label="\"false\""] + 162 -> 52 [style=solid label="\"true\""] + 162 -> 53 [style=solid label="\"not\""] + 162 -> 54 [style=solid label="\"+\""] + 162 -> 55 [style=solid label="\"-\""] + 162 -> 56 [style=solid label="\"(\""] + 162 -> 57 [style=solid label="\"[\""] + 162 -> 58 [style=solid label="\"|\""] + 162 -> 59 [style=solid label="\"@\""] + 162 -> 60 [style=solid label="\"binary\""] + 162 -> 61 [style=solid label="\"hexadecimal\""] + 162 -> 62 [style=solid label="\"integer\""] + 162 -> 63 [style=solid label="\"rational\""] + 162 -> 64 [style=solid label="\"decimal\""] + 162 -> 65 [style=solid label="\"string\""] 162 -> 9 [style=solid label="\"identifier\""] - 162 -> 240 [style=dashed label="Type"] - 162 -> 213 [style=dashed label="BasicType"] - 162 -> 214 [style=dashed label="TupleType"] - 162 -> 215 [style=dashed label="RecordType"] - 162 -> 216 [style=dashed label="TemplateType"] - 162 -> 217 [style=dashed label="RelationType"] - 162 -> 218 [style=dashed label="FixedSizedType"] - 162 -> 90 [style=dashed label="Identifier"] - 162 -> 219 [style=dashed label="IdentifierPath"] - 163 [label="State 163\n\l 21 EnumerationDefinition: \"enumeration\" Identifier \"=\" • \"{\" Enumerators \"}\"\l"] - 163 -> 241 [style=solid label="\"{\""] - 164 [label="State 164\n\l 25 RuleDefinition: \"rule\" Identifier \"=\" • Rule\l"] - 164 -> 242 [style=solid label="\"seq\""] - 164 -> 243 [style=solid label="\"par\""] - 164 -> 244 [style=solid label="\"skip\""] - 164 -> 245 [style=solid label="\"let\""] - 164 -> 246 [style=solid label="\"local\""] + 162 -> 233 [style=dashed label="Term"] + 162 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 162 -> 68 [style=dashed label="OperatorExpression"] + 162 -> 69 [style=dashed label="CallExpression"] + 162 -> 70 [style=dashed label="DirectCallExpression"] + 162 -> 71 [style=dashed label="MethodCallExpression"] + 162 -> 72 [style=dashed label="LiteralCallExpression"] + 162 -> 73 [style=dashed label="IndirectCallExpression"] + 162 -> 74 [style=dashed label="TypeCastingExpression"] + 162 -> 75 [style=dashed label="LetExpression"] + 162 -> 76 [style=dashed label="ConditionalExpression"] + 162 -> 77 [style=dashed label="ChooseExpression"] + 162 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 162 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 162 -> 80 [style=dashed label="CardinalityExpression"] + 162 -> 81 [style=dashed label="Literal"] + 162 -> 82 [style=dashed label="UndefinedLiteral"] + 162 -> 83 [style=dashed label="BooleanLiteral"] + 162 -> 84 [style=dashed label="IntegerLiteral"] + 162 -> 85 [style=dashed label="RationalLiteral"] + 162 -> 86 [style=dashed label="DecimalLiteral"] + 162 -> 87 [style=dashed label="BinaryLiteral"] + 162 -> 88 [style=dashed label="StringLiteral"] + 162 -> 89 [style=dashed label="ReferenceLiteral"] + 162 -> 90 [style=dashed label="ListLiteral"] + 162 -> 91 [style=dashed label="RangeLiteral"] + 162 -> 92 [style=dashed label="TupleLiteral"] + 162 -> 93 [style=dashed label="RecordLiteral"] + 162 -> 94 [style=dashed label="Identifier"] + 162 -> 95 [style=dashed label="IdentifierPath"] + 163 [label="State 163\n\l130 OperatorExpression: Term \"<=\" • Term\l"] + 163 -> 45 [style=solid label="\"let\""] + 163 -> 8 [style=solid label="\"in\""] + 163 -> 46 [style=solid label="\"forall\""] + 163 -> 47 [style=solid label="\"choose\""] + 163 -> 48 [style=solid label="\"if\""] + 163 -> 49 [style=solid label="\"exists\""] + 163 -> 50 [style=solid label="\"undef\""] + 163 -> 51 [style=solid label="\"false\""] + 163 -> 52 [style=solid label="\"true\""] + 163 -> 53 [style=solid label="\"not\""] + 163 -> 54 [style=solid label="\"+\""] + 163 -> 55 [style=solid label="\"-\""] + 163 -> 56 [style=solid label="\"(\""] + 163 -> 57 [style=solid label="\"[\""] + 163 -> 58 [style=solid label="\"|\""] + 163 -> 59 [style=solid label="\"@\""] + 163 -> 60 [style=solid label="\"binary\""] + 163 -> 61 [style=solid label="\"hexadecimal\""] + 163 -> 62 [style=solid label="\"integer\""] + 163 -> 63 [style=solid label="\"rational\""] + 163 -> 64 [style=solid label="\"decimal\""] + 163 -> 65 [style=solid label="\"string\""] + 163 -> 9 [style=solid label="\"identifier\""] + 163 -> 234 [style=dashed label="Term"] + 163 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 163 -> 68 [style=dashed label="OperatorExpression"] + 163 -> 69 [style=dashed label="CallExpression"] + 163 -> 70 [style=dashed label="DirectCallExpression"] + 163 -> 71 [style=dashed label="MethodCallExpression"] + 163 -> 72 [style=dashed label="LiteralCallExpression"] + 163 -> 73 [style=dashed label="IndirectCallExpression"] + 163 -> 74 [style=dashed label="TypeCastingExpression"] + 163 -> 75 [style=dashed label="LetExpression"] + 163 -> 76 [style=dashed label="ConditionalExpression"] + 163 -> 77 [style=dashed label="ChooseExpression"] + 163 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 163 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 163 -> 80 [style=dashed label="CardinalityExpression"] + 163 -> 81 [style=dashed label="Literal"] + 163 -> 82 [style=dashed label="UndefinedLiteral"] + 163 -> 83 [style=dashed label="BooleanLiteral"] + 163 -> 84 [style=dashed label="IntegerLiteral"] + 163 -> 85 [style=dashed label="RationalLiteral"] + 163 -> 86 [style=dashed label="DecimalLiteral"] + 163 -> 87 [style=dashed label="BinaryLiteral"] + 163 -> 88 [style=dashed label="StringLiteral"] + 163 -> 89 [style=dashed label="ReferenceLiteral"] + 163 -> 90 [style=dashed label="ListLiteral"] + 163 -> 91 [style=dashed label="RangeLiteral"] + 163 -> 92 [style=dashed label="TupleLiteral"] + 163 -> 93 [style=dashed label="RecordLiteral"] + 163 -> 94 [style=dashed label="Identifier"] + 163 -> 95 [style=dashed label="IdentifierPath"] + 164 [label="State 164\n\l131 OperatorExpression: Term \">=\" • Term\l"] + 164 -> 45 [style=solid label="\"let\""] 164 -> 8 [style=solid label="\"in\""] - 164 -> 247 [style=solid label="\"forall\""] - 164 -> 248 [style=solid label="\"choose\""] - 164 -> 249 [style=solid label="\"iterate\""] - 164 -> 250 [style=solid label="\"if\""] - 164 -> 251 [style=solid label="\"case\""] - 164 -> 252 [style=solid label="\"while\""] - 164 -> 46 [style=solid label="\"undef\""] - 164 -> 47 [style=solid label="\"false\""] - 164 -> 48 [style=solid label="\"true\""] - 164 -> 50 [style=solid label="\"+\""] - 164 -> 51 [style=solid label="\"-\""] - 164 -> 52 [style=solid label="\"(\""] - 164 -> 53 [style=solid label="\"[\""] - 164 -> 253 [style=solid label="\"{\""] - 164 -> 55 [style=solid label="\"@\""] - 164 -> 254 [style=solid label="\"{|\""] - 164 -> 56 [style=solid label="\"binary\""] - 164 -> 57 [style=solid label="\"hexadecimal\""] - 164 -> 58 [style=solid label="\"integer\""] - 164 -> 59 [style=solid label="\"rational\""] - 164 -> 60 [style=solid label="\"decimal\""] - 164 -> 61 [style=solid label="\"string\""] + 164 -> 46 [style=solid label="\"forall\""] + 164 -> 47 [style=solid label="\"choose\""] + 164 -> 48 [style=solid label="\"if\""] + 164 -> 49 [style=solid label="\"exists\""] + 164 -> 50 [style=solid label="\"undef\""] + 164 -> 51 [style=solid label="\"false\""] + 164 -> 52 [style=solid label="\"true\""] + 164 -> 53 [style=solid label="\"not\""] + 164 -> 54 [style=solid label="\"+\""] + 164 -> 55 [style=solid label="\"-\""] + 164 -> 56 [style=solid label="\"(\""] + 164 -> 57 [style=solid label="\"[\""] + 164 -> 58 [style=solid label="\"|\""] + 164 -> 59 [style=solid label="\"@\""] + 164 -> 60 [style=solid label="\"binary\""] + 164 -> 61 [style=solid label="\"hexadecimal\""] + 164 -> 62 [style=solid label="\"integer\""] + 164 -> 63 [style=solid label="\"rational\""] + 164 -> 64 [style=solid label="\"decimal\""] + 164 -> 65 [style=solid label="\"string\""] 164 -> 9 [style=solid label="\"identifier\""] - 164 -> 255 [style=dashed label="Rule"] - 164 -> 256 [style=dashed label="SkipRule"] - 164 -> 257 [style=dashed label="ConditionalRule"] - 164 -> 258 [style=dashed label="CaseRule"] - 164 -> 259 [style=dashed label="LetRule"] - 164 -> 260 [style=dashed label="LocalRule"] - 164 -> 261 [style=dashed label="ForallRule"] - 164 -> 262 [style=dashed label="ChooseRule"] - 164 -> 263 [style=dashed label="IterateRule"] - 164 -> 264 [style=dashed label="BlockRule"] - 164 -> 265 [style=dashed label="SequenceRule"] - 164 -> 266 [style=dashed label="UpdateRule"] - 164 -> 267 [style=dashed label="CallRule"] - 164 -> 268 [style=dashed label="WhileRule"] - 164 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 164 -> 270 [style=dashed label="CallExpression"] - 164 -> 271 [style=dashed label="DirectCallExpression"] - 164 -> 67 [style=dashed label="MethodCallExpression"] - 164 -> 68 [style=dashed label="LiteralCallExpression"] - 164 -> 69 [style=dashed label="IndirectCallExpression"] - 164 -> 77 [style=dashed label="Literal"] - 164 -> 78 [style=dashed label="UndefinedLiteral"] - 164 -> 79 [style=dashed label="BooleanLiteral"] - 164 -> 80 [style=dashed label="IntegerLiteral"] - 164 -> 81 [style=dashed label="RationalLiteral"] - 164 -> 82 [style=dashed label="DecimalLiteral"] - 164 -> 83 [style=dashed label="BinaryLiteral"] - 164 -> 84 [style=dashed label="StringLiteral"] - 164 -> 85 [style=dashed label="ReferenceLiteral"] - 164 -> 86 [style=dashed label="ListLiteral"] - 164 -> 87 [style=dashed label="RangeLiteral"] - 164 -> 88 [style=dashed label="TupleLiteral"] - 164 -> 89 [style=dashed label="RecordLiteral"] - 164 -> 90 [style=dashed label="Identifier"] - 164 -> 91 [style=dashed label="IdentifierPath"] - 165 [label="State 165\n\l 27 RuleDefinition: \"rule\" Identifier \"(\" • Parameters \")\" \"=\" Rule\l 28 | \"rule\" Identifier \"(\" • Parameters \")\" \"->\" Type \"=\" Rule\l 29 | \"rule\" Identifier \"(\" • error \")\" \"=\" Rule\l 30 | \"rule\" Identifier \"(\" • error \")\" \"->\" Type \"=\" Rule\l"] - 165 -> 272 [style=dotted] + 164 -> 235 [style=dashed label="Term"] + 164 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 164 -> 68 [style=dashed label="OperatorExpression"] + 164 -> 69 [style=dashed label="CallExpression"] + 164 -> 70 [style=dashed label="DirectCallExpression"] + 164 -> 71 [style=dashed label="MethodCallExpression"] + 164 -> 72 [style=dashed label="LiteralCallExpression"] + 164 -> 73 [style=dashed label="IndirectCallExpression"] + 164 -> 74 [style=dashed label="TypeCastingExpression"] + 164 -> 75 [style=dashed label="LetExpression"] + 164 -> 76 [style=dashed label="ConditionalExpression"] + 164 -> 77 [style=dashed label="ChooseExpression"] + 164 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 164 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 164 -> 80 [style=dashed label="CardinalityExpression"] + 164 -> 81 [style=dashed label="Literal"] + 164 -> 82 [style=dashed label="UndefinedLiteral"] + 164 -> 83 [style=dashed label="BooleanLiteral"] + 164 -> 84 [style=dashed label="IntegerLiteral"] + 164 -> 85 [style=dashed label="RationalLiteral"] + 164 -> 86 [style=dashed label="DecimalLiteral"] + 164 -> 87 [style=dashed label="BinaryLiteral"] + 164 -> 88 [style=dashed label="StringLiteral"] + 164 -> 89 [style=dashed label="ReferenceLiteral"] + 164 -> 90 [style=dashed label="ListLiteral"] + 164 -> 91 [style=dashed label="RangeLiteral"] + 164 -> 92 [style=dashed label="TupleLiteral"] + 164 -> 93 [style=dashed label="RecordLiteral"] + 164 -> 94 [style=dashed label="Identifier"] + 164 -> 95 [style=dashed label="IdentifierPath"] + 165 [label="State 165\n\l153 TypeCastingExpression: SimpleOrClaspedTerm \"as\" • Type\l"] 165 -> 8 [style=solid label="\"in\""] - 165 -> 2 [style=solid label="\"[\""] + 165 -> 109 [style=solid label="\"(\""] 165 -> 9 [style=solid label="\"identifier\""] - 165 -> 273 [style=dashed label="Parameters"] - 165 -> 236 [style=dashed label="Identifier"] - 165 -> 237 [style=dashed label="TypedVariable"] - 165 -> 238 [style=dashed label="TypedAttributedVariable"] - 165 -> 239 [style=dashed label="Attributes"] - 165 -> 6 [style=dashed label="Attribute"] - 166 [label="State 166\n\l 26 RuleDefinition: \"rule\" Identifier \"->\" • Type \"=\" Rule\l"] + 165 -> 236 [style=dashed label="Type"] + 165 -> 111 [style=dashed label="BasicType"] + 165 -> 112 [style=dashed label="TupleType"] + 165 -> 113 [style=dashed label="RecordType"] + 165 -> 114 [style=dashed label="TemplateType"] + 165 -> 115 [style=dashed label="RelationType"] + 165 -> 116 [style=dashed label="FixedSizedType"] + 165 -> 94 [style=dashed label="Identifier"] + 165 -> 190 [style=dashed label="IdentifierPath"] + 166 [label="State 166\n\l145 MethodCallExpression: SimpleOrClaspedTerm \".\" • Identifier\l146 | SimpleOrClaspedTerm \".\" • Identifier \"(\" \")\"\l147 | SimpleOrClaspedTerm \".\" • Identifier \"(\" Terms \")\"\l148 | SimpleOrClaspedTerm \".\" • Identifier \"(\" error \")\"\l149 LiteralCallExpression: SimpleOrClaspedTerm \".\" • IntegerLiteral\l"] 166 -> 8 [style=solid label="\"in\""] - 166 -> 211 [style=solid label="\"(\""] + 166 -> 62 [style=solid label="\"integer\""] 166 -> 9 [style=solid label="\"identifier\""] - 166 -> 274 [style=dashed label="Type"] - 166 -> 213 [style=dashed label="BasicType"] - 166 -> 214 [style=dashed label="TupleType"] - 166 -> 215 [style=dashed label="RecordType"] - 166 -> 216 [style=dashed label="TemplateType"] - 166 -> 217 [style=dashed label="RelationType"] - 166 -> 218 [style=dashed label="FixedSizedType"] - 166 -> 90 [style=dashed label="Identifier"] - 166 -> 219 [style=dashed label="IdentifierPath"] - 167 [label="State 167\n\l 37 UsingDefinition: \"using\" Identifier \"=\" • Type\l"] + 166 -> 237 [style=dashed label="IntegerLiteral"] + 166 -> 238 [style=dashed label="Identifier"] + 167 [label="State 167\n\l150 IndirectCallExpression: CallExpression \"(\" • \")\"\l151 | CallExpression \"(\" • Terms \")\"\l152 | CallExpression \"(\" • error \")\"\l"] + 167 -> 239 [style=dotted] + 167 -> 45 [style=solid label="\"let\""] 167 -> 8 [style=solid label="\"in\""] - 167 -> 211 [style=solid label="\"(\""] + 167 -> 46 [style=solid label="\"forall\""] + 167 -> 47 [style=solid label="\"choose\""] + 167 -> 48 [style=solid label="\"if\""] + 167 -> 49 [style=solid label="\"exists\""] + 167 -> 50 [style=solid label="\"undef\""] + 167 -> 51 [style=solid label="\"false\""] + 167 -> 52 [style=solid label="\"true\""] + 167 -> 53 [style=solid label="\"not\""] + 167 -> 54 [style=solid label="\"+\""] + 167 -> 55 [style=solid label="\"-\""] + 167 -> 56 [style=solid label="\"(\""] + 167 -> 240 [style=solid label="\")\""] + 167 -> 57 [style=solid label="\"[\""] + 167 -> 58 [style=solid label="\"|\""] + 167 -> 59 [style=solid label="\"@\""] + 167 -> 60 [style=solid label="\"binary\""] + 167 -> 61 [style=solid label="\"hexadecimal\""] + 167 -> 62 [style=solid label="\"integer\""] + 167 -> 63 [style=solid label="\"rational\""] + 167 -> 64 [style=solid label="\"decimal\""] + 167 -> 65 [style=solid label="\"string\""] 167 -> 9 [style=solid label="\"identifier\""] - 167 -> 275 [style=dashed label="Type"] - 167 -> 213 [style=dashed label="BasicType"] - 167 -> 214 [style=dashed label="TupleType"] - 167 -> 215 [style=dashed label="RecordType"] - 167 -> 216 [style=dashed label="TemplateType"] - 167 -> 217 [style=dashed label="RelationType"] - 167 -> 218 [style=dashed label="FixedSizedType"] - 167 -> 90 [style=dashed label="Identifier"] - 167 -> 219 [style=dashed label="IdentifierPath"] - 168 [label="State 168\n\l 39 UsingPathDefinition: \"using\" IdentifierPath \"::\" • \"*\"\l206 IdentifierPath: IdentifierPath \"::\" • Identifier\l"] + 167 -> 241 [style=dashed label="Terms"] + 167 -> 242 [style=dashed label="Term"] + 167 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 167 -> 68 [style=dashed label="OperatorExpression"] + 167 -> 69 [style=dashed label="CallExpression"] + 167 -> 70 [style=dashed label="DirectCallExpression"] + 167 -> 71 [style=dashed label="MethodCallExpression"] + 167 -> 72 [style=dashed label="LiteralCallExpression"] + 167 -> 73 [style=dashed label="IndirectCallExpression"] + 167 -> 74 [style=dashed label="TypeCastingExpression"] + 167 -> 75 [style=dashed label="LetExpression"] + 167 -> 76 [style=dashed label="ConditionalExpression"] + 167 -> 77 [style=dashed label="ChooseExpression"] + 167 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 167 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 167 -> 80 [style=dashed label="CardinalityExpression"] + 167 -> 81 [style=dashed label="Literal"] + 167 -> 82 [style=dashed label="UndefinedLiteral"] + 167 -> 83 [style=dashed label="BooleanLiteral"] + 167 -> 84 [style=dashed label="IntegerLiteral"] + 167 -> 85 [style=dashed label="RationalLiteral"] + 167 -> 86 [style=dashed label="DecimalLiteral"] + 167 -> 87 [style=dashed label="BinaryLiteral"] + 167 -> 88 [style=dashed label="StringLiteral"] + 167 -> 89 [style=dashed label="ReferenceLiteral"] + 167 -> 90 [style=dashed label="ListLiteral"] + 167 -> 91 [style=dashed label="RangeLiteral"] + 167 -> 92 [style=dashed label="TupleLiteral"] + 167 -> 93 [style=dashed label="RecordLiteral"] + 167 -> 94 [style=dashed label="Identifier"] + 167 -> 95 [style=dashed label="IdentifierPath"] + 168 [label="State 168\n\l142 DirectCallExpression: IdentifierPath \"(\" • \")\"\l143 | IdentifierPath \"(\" • Terms \")\"\l144 | IdentifierPath \"(\" • error \")\"\l"] + 168 -> 243 [style=dotted] + 168 -> 45 [style=solid label="\"let\""] 168 -> 8 [style=solid label="\"in\""] - 168 -> 276 [style=solid label="\"*\""] + 168 -> 46 [style=solid label="\"forall\""] + 168 -> 47 [style=solid label="\"choose\""] + 168 -> 48 [style=solid label="\"if\""] + 168 -> 49 [style=solid label="\"exists\""] + 168 -> 50 [style=solid label="\"undef\""] + 168 -> 51 [style=solid label="\"false\""] + 168 -> 52 [style=solid label="\"true\""] + 168 -> 53 [style=solid label="\"not\""] + 168 -> 54 [style=solid label="\"+\""] + 168 -> 55 [style=solid label="\"-\""] + 168 -> 56 [style=solid label="\"(\""] + 168 -> 244 [style=solid label="\")\""] + 168 -> 57 [style=solid label="\"[\""] + 168 -> 58 [style=solid label="\"|\""] + 168 -> 59 [style=solid label="\"@\""] + 168 -> 60 [style=solid label="\"binary\""] + 168 -> 61 [style=solid label="\"hexadecimal\""] + 168 -> 62 [style=solid label="\"integer\""] + 168 -> 63 [style=solid label="\"rational\""] + 168 -> 64 [style=solid label="\"decimal\""] + 168 -> 65 [style=solid label="\"string\""] 168 -> 9 [style=solid label="\"identifier\""] - 168 -> 229 [style=dashed label="Identifier"] - 169 [label="State 169\n\l 40 InvariantDefinition: \"invariant\" Identifier \"=\" • Term\l"] - 169 -> 41 [style=solid label="\"let\""] + 168 -> 245 [style=dashed label="Terms"] + 168 -> 242 [style=dashed label="Term"] + 168 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 168 -> 68 [style=dashed label="OperatorExpression"] + 168 -> 69 [style=dashed label="CallExpression"] + 168 -> 70 [style=dashed label="DirectCallExpression"] + 168 -> 71 [style=dashed label="MethodCallExpression"] + 168 -> 72 [style=dashed label="LiteralCallExpression"] + 168 -> 73 [style=dashed label="IndirectCallExpression"] + 168 -> 74 [style=dashed label="TypeCastingExpression"] + 168 -> 75 [style=dashed label="LetExpression"] + 168 -> 76 [style=dashed label="ConditionalExpression"] + 168 -> 77 [style=dashed label="ChooseExpression"] + 168 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 168 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 168 -> 80 [style=dashed label="CardinalityExpression"] + 168 -> 81 [style=dashed label="Literal"] + 168 -> 82 [style=dashed label="UndefinedLiteral"] + 168 -> 83 [style=dashed label="BooleanLiteral"] + 168 -> 84 [style=dashed label="IntegerLiteral"] + 168 -> 85 [style=dashed label="RationalLiteral"] + 168 -> 86 [style=dashed label="DecimalLiteral"] + 168 -> 87 [style=dashed label="BinaryLiteral"] + 168 -> 88 [style=dashed label="StringLiteral"] + 168 -> 89 [style=dashed label="ReferenceLiteral"] + 168 -> 90 [style=dashed label="ListLiteral"] + 168 -> 91 [style=dashed label="RangeLiteral"] + 168 -> 92 [style=dashed label="TupleLiteral"] + 168 -> 93 [style=dashed label="RecordLiteral"] + 168 -> 94 [style=dashed label="Identifier"] + 168 -> 95 [style=dashed label="IdentifierPath"] + 169 [label="State 169\n\l222 IdentifierPath: IdentifierPath \"::\" • Identifier\l"] 169 -> 8 [style=solid label="\"in\""] - 169 -> 42 [style=solid label="\"forall\""] - 169 -> 43 [style=solid label="\"choose\""] - 169 -> 44 [style=solid label="\"if\""] - 169 -> 45 [style=solid label="\"exists\""] - 169 -> 46 [style=solid label="\"undef\""] - 169 -> 47 [style=solid label="\"false\""] - 169 -> 48 [style=solid label="\"true\""] - 169 -> 49 [style=solid label="\"not\""] - 169 -> 50 [style=solid label="\"+\""] - 169 -> 51 [style=solid label="\"-\""] - 169 -> 52 [style=solid label="\"(\""] - 169 -> 53 [style=solid label="\"[\""] - 169 -> 54 [style=solid label="\"|\""] - 169 -> 55 [style=solid label="\"@\""] - 169 -> 56 [style=solid label="\"binary\""] - 169 -> 57 [style=solid label="\"hexadecimal\""] - 169 -> 58 [style=solid label="\"integer\""] - 169 -> 59 [style=solid label="\"rational\""] - 169 -> 60 [style=solid label="\"decimal\""] - 169 -> 61 [style=solid label="\"string\""] 169 -> 9 [style=solid label="\"identifier\""] - 169 -> 277 [style=dashed label="Term"] - 169 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 169 -> 64 [style=dashed label="OperatorExpression"] - 169 -> 65 [style=dashed label="CallExpression"] - 169 -> 66 [style=dashed label="DirectCallExpression"] - 169 -> 67 [style=dashed label="MethodCallExpression"] - 169 -> 68 [style=dashed label="LiteralCallExpression"] - 169 -> 69 [style=dashed label="IndirectCallExpression"] - 169 -> 70 [style=dashed label="TypeCastingExpression"] - 169 -> 71 [style=dashed label="LetExpression"] - 169 -> 72 [style=dashed label="ConditionalExpression"] - 169 -> 73 [style=dashed label="ChooseExpression"] - 169 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 169 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 169 -> 76 [style=dashed label="CardinalityExpression"] - 169 -> 77 [style=dashed label="Literal"] - 169 -> 78 [style=dashed label="UndefinedLiteral"] - 169 -> 79 [style=dashed label="BooleanLiteral"] - 169 -> 80 [style=dashed label="IntegerLiteral"] - 169 -> 81 [style=dashed label="RationalLiteral"] - 169 -> 82 [style=dashed label="DecimalLiteral"] - 169 -> 83 [style=dashed label="BinaryLiteral"] - 169 -> 84 [style=dashed label="StringLiteral"] - 169 -> 85 [style=dashed label="ReferenceLiteral"] - 169 -> 86 [style=dashed label="ListLiteral"] - 169 -> 87 [style=dashed label="RangeLiteral"] - 169 -> 88 [style=dashed label="TupleLiteral"] - 169 -> 89 [style=dashed label="RecordLiteral"] - 169 -> 90 [style=dashed label="Identifier"] - 169 -> 91 [style=dashed label="IdentifierPath"] - 170 [label="State 170\n\l 42 ImportDefinition: \"import\" IdentifierPath \"as\" • Identifier\l"] + 169 -> 246 [style=dashed label="Identifier"] + 170 [label="State 170\n\l113 SimpleOrClaspedTerm: \"(\" • Term \")\"\l114 | \"(\" • error \")\"\l186 TupleLiteral: \"(\" • Terms \",\" Term \")\"\l187 RecordLiteral: \"(\" • Assignments \")\"\l218 Initializer: \"(\" • Term \")\" \"->\" Term\l"] + 170 -> 136 [style=dotted] + 170 -> 45 [style=solid label="\"let\""] 170 -> 8 [style=solid label="\"in\""] + 170 -> 46 [style=solid label="\"forall\""] + 170 -> 47 [style=solid label="\"choose\""] + 170 -> 48 [style=solid label="\"if\""] + 170 -> 49 [style=solid label="\"exists\""] + 170 -> 50 [style=solid label="\"undef\""] + 170 -> 51 [style=solid label="\"false\""] + 170 -> 52 [style=solid label="\"true\""] + 170 -> 53 [style=solid label="\"not\""] + 170 -> 54 [style=solid label="\"+\""] + 170 -> 55 [style=solid label="\"-\""] + 170 -> 56 [style=solid label="\"(\""] + 170 -> 57 [style=solid label="\"[\""] + 170 -> 58 [style=solid label="\"|\""] + 170 -> 59 [style=solid label="\"@\""] + 170 -> 60 [style=solid label="\"binary\""] + 170 -> 61 [style=solid label="\"hexadecimal\""] + 170 -> 62 [style=solid label="\"integer\""] + 170 -> 63 [style=solid label="\"rational\""] + 170 -> 64 [style=solid label="\"decimal\""] + 170 -> 65 [style=solid label="\"string\""] 170 -> 9 [style=solid label="\"identifier\""] - 170 -> 278 [style=dashed label="Identifier"] - 171 [label="State 171\n\l 43 StructureDefinition: \"structure\" Identifier \"=\" • \"{\" FunctionDefinition \"}\"\l"] - 171 -> 279 [style=solid label="\"{\""] - 172 [label="State 172\n\l 31 FunctionDefinition: \"function\" Identifier \":\" • MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] - 172 -> 8 [style=solid label="\"in\""] - 172 -> 211 [style=solid label="\"(\""] - 172 -> 9 [style=solid label="\"identifier\""] - 172 -> 280 [style=dashed label="Type"] - 172 -> 213 [style=dashed label="BasicType"] - 172 -> 214 [style=dashed label="TupleType"] - 172 -> 215 [style=dashed label="RecordType"] - 172 -> 216 [style=dashed label="TemplateType"] - 172 -> 217 [style=dashed label="RelationType"] - 172 -> 218 [style=dashed label="FixedSizedType"] - 172 -> 281 [style=dashed label="FunctionParameters"] - 172 -> 282 [style=dashed label="MaybeFunctionParameters"] - 172 -> 90 [style=dashed label="Identifier"] - 172 -> 219 [style=dashed label="IdentifierPath"] - 172 -> "172R192" [style=solid] - "172R192" [label="R192", fillcolor=3, shape=diamond, style=filled] - 173 [label="State 173\n\l214 TypedVariable: Identifier \":\" • Type\l"] - 173 -> 8 [style=solid label="\"in\""] - 173 -> 211 [style=solid label="\"(\""] - 173 -> 9 [style=solid label="\"identifier\""] - 173 -> 283 [style=dashed label="Type"] - 173 -> 213 [style=dashed label="BasicType"] - 173 -> 214 [style=dashed label="TupleType"] - 173 -> 215 [style=dashed label="RecordType"] - 173 -> 216 [style=dashed label="TemplateType"] - 173 -> 217 [style=dashed label="RelationType"] - 173 -> 218 [style=dashed label="FixedSizedType"] - 173 -> 90 [style=dashed label="Identifier"] - 173 -> 219 [style=dashed label="IdentifierPath"] - 174 [label="State 174\n\l221 VariableBinding: AttributedVariable \"=\" • Term\l"] - 174 -> 41 [style=solid label="\"let\""] - 174 -> 8 [style=solid label="\"in\""] - 174 -> 42 [style=solid label="\"forall\""] - 174 -> 43 [style=solid label="\"choose\""] - 174 -> 44 [style=solid label="\"if\""] - 174 -> 45 [style=solid label="\"exists\""] - 174 -> 46 [style=solid label="\"undef\""] - 174 -> 47 [style=solid label="\"false\""] - 174 -> 48 [style=solid label="\"true\""] - 174 -> 49 [style=solid label="\"not\""] - 174 -> 50 [style=solid label="\"+\""] - 174 -> 51 [style=solid label="\"-\""] - 174 -> 52 [style=solid label="\"(\""] - 174 -> 53 [style=solid label="\"[\""] - 174 -> 54 [style=solid label="\"|\""] - 174 -> 55 [style=solid label="\"@\""] - 174 -> 56 [style=solid label="\"binary\""] - 174 -> 57 [style=solid label="\"hexadecimal\""] - 174 -> 58 [style=solid label="\"integer\""] - 174 -> 59 [style=solid label="\"rational\""] - 174 -> 60 [style=solid label="\"decimal\""] - 174 -> 61 [style=solid label="\"string\""] - 174 -> 9 [style=solid label="\"identifier\""] - 174 -> 284 [style=dashed label="Term"] - 174 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 174 -> 64 [style=dashed label="OperatorExpression"] - 174 -> 65 [style=dashed label="CallExpression"] - 174 -> 66 [style=dashed label="DirectCallExpression"] - 174 -> 67 [style=dashed label="MethodCallExpression"] - 174 -> 68 [style=dashed label="LiteralCallExpression"] - 174 -> 69 [style=dashed label="IndirectCallExpression"] - 174 -> 70 [style=dashed label="TypeCastingExpression"] - 174 -> 71 [style=dashed label="LetExpression"] - 174 -> 72 [style=dashed label="ConditionalExpression"] - 174 -> 73 [style=dashed label="ChooseExpression"] - 174 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 174 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 174 -> 76 [style=dashed label="CardinalityExpression"] - 174 -> 77 [style=dashed label="Literal"] - 174 -> 78 [style=dashed label="UndefinedLiteral"] - 174 -> 79 [style=dashed label="BooleanLiteral"] - 174 -> 80 [style=dashed label="IntegerLiteral"] - 174 -> 81 [style=dashed label="RationalLiteral"] - 174 -> 82 [style=dashed label="DecimalLiteral"] - 174 -> 83 [style=dashed label="BinaryLiteral"] - 174 -> 84 [style=dashed label="StringLiteral"] - 174 -> 85 [style=dashed label="ReferenceLiteral"] - 174 -> 86 [style=dashed label="ListLiteral"] - 174 -> 87 [style=dashed label="RangeLiteral"] - 174 -> 88 [style=dashed label="TupleLiteral"] - 174 -> 89 [style=dashed label="RecordLiteral"] - 174 -> 90 [style=dashed label="Identifier"] - 174 -> 91 [style=dashed label="IdentifierPath"] - 175 [label="State 175\n\l138 LetExpression: \"let\" VariableBindings \"in\" • Term\l"] - 175 -> 41 [style=solid label="\"let\""] + 170 -> 137 [style=dashed label="Terms"] + 170 -> 247 [style=dashed label="Term"] + 170 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 170 -> 68 [style=dashed label="OperatorExpression"] + 170 -> 69 [style=dashed label="CallExpression"] + 170 -> 70 [style=dashed label="DirectCallExpression"] + 170 -> 71 [style=dashed label="MethodCallExpression"] + 170 -> 72 [style=dashed label="LiteralCallExpression"] + 170 -> 73 [style=dashed label="IndirectCallExpression"] + 170 -> 74 [style=dashed label="TypeCastingExpression"] + 170 -> 75 [style=dashed label="LetExpression"] + 170 -> 76 [style=dashed label="ConditionalExpression"] + 170 -> 77 [style=dashed label="ChooseExpression"] + 170 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 170 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 170 -> 80 [style=dashed label="CardinalityExpression"] + 170 -> 81 [style=dashed label="Literal"] + 170 -> 82 [style=dashed label="UndefinedLiteral"] + 170 -> 83 [style=dashed label="BooleanLiteral"] + 170 -> 84 [style=dashed label="IntegerLiteral"] + 170 -> 85 [style=dashed label="RationalLiteral"] + 170 -> 86 [style=dashed label="DecimalLiteral"] + 170 -> 87 [style=dashed label="BinaryLiteral"] + 170 -> 88 [style=dashed label="StringLiteral"] + 170 -> 89 [style=dashed label="ReferenceLiteral"] + 170 -> 90 [style=dashed label="ListLiteral"] + 170 -> 91 [style=dashed label="RangeLiteral"] + 170 -> 92 [style=dashed label="TupleLiteral"] + 170 -> 93 [style=dashed label="RecordLiteral"] + 170 -> 139 [style=dashed label="Assignments"] + 170 -> 140 [style=dashed label="Assignment"] + 170 -> 141 [style=dashed label="Identifier"] + 170 -> 95 [style=dashed label="IdentifierPath"] + 171 [label="State 171\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l217 Initializer: Term •\l"] + 171 -> 148 [style=solid label="\"and\""] + 171 -> 149 [style=solid label="\"or\""] + 171 -> 150 [style=solid label="\"xor\""] + 171 -> 151 [style=solid label="\"implies\""] + 171 -> 152 [style=solid label="\"+\""] + 171 -> 153 [style=solid label="\"-\""] + 171 -> 154 [style=solid label="\"=\""] + 171 -> 155 [style=solid label="\"<\""] + 171 -> 156 [style=solid label="\">\""] + 171 -> 157 [style=solid label="\"*\""] + 171 -> 158 [style=solid label="\"/\""] + 171 -> 159 [style=solid label="\"%\""] + 171 -> 160 [style=solid label="\"^\""] + 171 -> 161 [style=solid label="\"=>\""] + 171 -> 162 [style=solid label="\"!=\""] + 171 -> 163 [style=solid label="\"<=\""] + 171 -> 164 [style=solid label="\">=\""] + 171 -> "171R217" [style=solid] + "171R217" [label="R217", fillcolor=3, shape=diamond, style=filled] + 172 [label="State 172\n\l170 Literal: TupleLiteral •\l219 Initializer: TupleLiteral • \"->\" Term\l"] + 172 -> 248 [style=solid label="\"->\""] + 172 -> "172R170" [style=solid] + "172R170" [label="R170", fillcolor=3, shape=diamond, style=filled] + 173 [label="State 173\n\l 22 InitDefinition: \"init\" \"{\" Initializers • \"}\"\l215 Initializers: Initializers • \",\" Initializer\l"] + 173 -> 249 [style=solid label="\"}\""] + 173 -> 250 [style=solid label="\",\""] + 174 [label="State 174\n\l216 Initializers: Initializer •\l"] + 174 -> "174R216" [style=solid] + "174R216" [label="R216", fillcolor=3, shape=diamond, style=filled] + 175 [label="State 175\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" • Parameters \")\" \"->\" Type \"=\" Term\l 26 | \"derived\" Identifier \"(\" • error \")\" \"->\" Type \"=\" Term\l"] + 175 -> 251 [style=dotted] 175 -> 8 [style=solid label="\"in\""] - 175 -> 42 [style=solid label="\"forall\""] - 175 -> 43 [style=solid label="\"choose\""] - 175 -> 44 [style=solid label="\"if\""] - 175 -> 45 [style=solid label="\"exists\""] - 175 -> 46 [style=solid label="\"undef\""] - 175 -> 47 [style=solid label="\"false\""] - 175 -> 48 [style=solid label="\"true\""] - 175 -> 49 [style=solid label="\"not\""] - 175 -> 50 [style=solid label="\"+\""] - 175 -> 51 [style=solid label="\"-\""] - 175 -> 52 [style=solid label="\"(\""] - 175 -> 53 [style=solid label="\"[\""] - 175 -> 54 [style=solid label="\"|\""] - 175 -> 55 [style=solid label="\"@\""] - 175 -> 56 [style=solid label="\"binary\""] - 175 -> 57 [style=solid label="\"hexadecimal\""] - 175 -> 58 [style=solid label="\"integer\""] - 175 -> 59 [style=solid label="\"rational\""] - 175 -> 60 [style=solid label="\"decimal\""] - 175 -> 61 [style=solid label="\"string\""] + 175 -> 2 [style=solid label="\"[\""] 175 -> 9 [style=solid label="\"identifier\""] - 175 -> 285 [style=dashed label="Term"] - 175 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 175 -> 64 [style=dashed label="OperatorExpression"] - 175 -> 65 [style=dashed label="CallExpression"] - 175 -> 66 [style=dashed label="DirectCallExpression"] - 175 -> 67 [style=dashed label="MethodCallExpression"] - 175 -> 68 [style=dashed label="LiteralCallExpression"] - 175 -> 69 [style=dashed label="IndirectCallExpression"] - 175 -> 70 [style=dashed label="TypeCastingExpression"] - 175 -> 71 [style=dashed label="LetExpression"] - 175 -> 72 [style=dashed label="ConditionalExpression"] - 175 -> 73 [style=dashed label="ChooseExpression"] - 175 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 175 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 175 -> 76 [style=dashed label="CardinalityExpression"] - 175 -> 77 [style=dashed label="Literal"] - 175 -> 78 [style=dashed label="UndefinedLiteral"] - 175 -> 79 [style=dashed label="BooleanLiteral"] - 175 -> 80 [style=dashed label="IntegerLiteral"] - 175 -> 81 [style=dashed label="RationalLiteral"] - 175 -> 82 [style=dashed label="DecimalLiteral"] - 175 -> 83 [style=dashed label="BinaryLiteral"] - 175 -> 84 [style=dashed label="StringLiteral"] - 175 -> 85 [style=dashed label="ReferenceLiteral"] - 175 -> 86 [style=dashed label="ListLiteral"] - 175 -> 87 [style=dashed label="RangeLiteral"] - 175 -> 88 [style=dashed label="TupleLiteral"] - 175 -> 89 [style=dashed label="RecordLiteral"] - 175 -> 90 [style=dashed label="Identifier"] - 175 -> 91 [style=dashed label="IdentifierPath"] - 176 [label="State 176\n\l219 VariableBindings: VariableBindings \",\" • VariableBinding\l"] + 175 -> 252 [style=dashed label="Parameters"] + 175 -> 253 [style=dashed label="Identifier"] + 175 -> 254 [style=dashed label="TypedVariable"] + 175 -> 255 [style=dashed label="TypedAttributedVariable"] + 175 -> 256 [style=dashed label="Attributes"] + 175 -> 6 [style=dashed label="Attribute"] + 176 [label="State 176\n\l 24 DerivedDefinition: \"derived\" Identifier \"->\" • Type \"=\" Term\l"] 176 -> 8 [style=solid label="\"in\""] - 176 -> 2 [style=solid label="\"[\""] + 176 -> 109 [style=solid label="\"(\""] 176 -> 9 [style=solid label="\"identifier\""] - 176 -> 107 [style=dashed label="Identifier"] - 176 -> 108 [style=dashed label="Variable"] - 176 -> 109 [style=dashed label="TypedVariable"] - 176 -> 110 [style=dashed label="AttributedVariable"] - 176 -> 286 [style=dashed label="VariableBinding"] - 176 -> 113 [style=dashed label="Attributes"] - 176 -> 6 [style=dashed label="Attribute"] - 177 [label="State 177\n\l215 AttributedVariable: Attributes Variable •\l"] - 177 -> "177R215" [style=solid] - "177R215" [label="R215", fillcolor=3, shape=diamond, style=filled] - 178 [label="State 178\n\l141 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" • Term \"holds\" Term\l"] - 178 -> 41 [style=solid label="\"let\""] + 176 -> 257 [style=dashed label="Type"] + 176 -> 111 [style=dashed label="BasicType"] + 176 -> 112 [style=dashed label="TupleType"] + 176 -> 113 [style=dashed label="RecordType"] + 176 -> 114 [style=dashed label="TemplateType"] + 176 -> 115 [style=dashed label="RelationType"] + 176 -> 116 [style=dashed label="FixedSizedType"] + 176 -> 94 [style=dashed label="Identifier"] + 176 -> 190 [style=dashed label="IdentifierPath"] + 177 [label="State 177\n\l 23 EnumerationDefinition: \"enumeration\" Identifier \"=\" • \"{\" Enumerators \"}\"\l"] + 177 -> 258 [style=solid label="\"{\""] + 178 [label="State 178\n\l 27 RuleDefinition: \"rule\" Identifier \"=\" • Rule\l"] + 178 -> 259 [style=solid label="\"seq\""] + 178 -> 260 [style=solid label="\"par\""] + 178 -> 261 [style=solid label="\"skip\""] + 178 -> 262 [style=solid label="\"let\""] + 178 -> 263 [style=solid label="\"local\""] 178 -> 8 [style=solid label="\"in\""] - 178 -> 42 [style=solid label="\"forall\""] - 178 -> 43 [style=solid label="\"choose\""] - 178 -> 44 [style=solid label="\"if\""] - 178 -> 45 [style=solid label="\"exists\""] - 178 -> 46 [style=solid label="\"undef\""] - 178 -> 47 [style=solid label="\"false\""] - 178 -> 48 [style=solid label="\"true\""] - 178 -> 49 [style=solid label="\"not\""] - 178 -> 50 [style=solid label="\"+\""] - 178 -> 51 [style=solid label="\"-\""] - 178 -> 52 [style=solid label="\"(\""] - 178 -> 53 [style=solid label="\"[\""] - 178 -> 54 [style=solid label="\"|\""] - 178 -> 55 [style=solid label="\"@\""] - 178 -> 56 [style=solid label="\"binary\""] - 178 -> 57 [style=solid label="\"hexadecimal\""] - 178 -> 58 [style=solid label="\"integer\""] - 178 -> 59 [style=solid label="\"rational\""] - 178 -> 60 [style=solid label="\"decimal\""] - 178 -> 61 [style=solid label="\"string\""] + 178 -> 264 [style=solid label="\"forall\""] + 178 -> 265 [style=solid label="\"choose\""] + 178 -> 266 [style=solid label="\"iterate\""] + 178 -> 267 [style=solid label="\"if\""] + 178 -> 268 [style=solid label="\"case\""] + 178 -> 269 [style=solid label="\"while\""] + 178 -> 50 [style=solid label="\"undef\""] + 178 -> 51 [style=solid label="\"false\""] + 178 -> 52 [style=solid label="\"true\""] + 178 -> 54 [style=solid label="\"+\""] + 178 -> 55 [style=solid label="\"-\""] + 178 -> 56 [style=solid label="\"(\""] + 178 -> 57 [style=solid label="\"[\""] + 178 -> 270 [style=solid label="\"{\""] + 178 -> 59 [style=solid label="\"@\""] + 178 -> 271 [style=solid label="\"{|\""] + 178 -> 60 [style=solid label="\"binary\""] + 178 -> 61 [style=solid label="\"hexadecimal\""] + 178 -> 62 [style=solid label="\"integer\""] + 178 -> 63 [style=solid label="\"rational\""] + 178 -> 64 [style=solid label="\"decimal\""] + 178 -> 65 [style=solid label="\"string\""] 178 -> 9 [style=solid label="\"identifier\""] - 178 -> 287 [style=dashed label="Term"] - 178 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 178 -> 64 [style=dashed label="OperatorExpression"] - 178 -> 65 [style=dashed label="CallExpression"] - 178 -> 66 [style=dashed label="DirectCallExpression"] - 178 -> 67 [style=dashed label="MethodCallExpression"] - 178 -> 68 [style=dashed label="LiteralCallExpression"] - 178 -> 69 [style=dashed label="IndirectCallExpression"] - 178 -> 70 [style=dashed label="TypeCastingExpression"] - 178 -> 71 [style=dashed label="LetExpression"] - 178 -> 72 [style=dashed label="ConditionalExpression"] - 178 -> 73 [style=dashed label="ChooseExpression"] - 178 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 178 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 178 -> 76 [style=dashed label="CardinalityExpression"] - 178 -> 77 [style=dashed label="Literal"] - 178 -> 78 [style=dashed label="UndefinedLiteral"] - 178 -> 79 [style=dashed label="BooleanLiteral"] - 178 -> 80 [style=dashed label="IntegerLiteral"] - 178 -> 81 [style=dashed label="RationalLiteral"] - 178 -> 82 [style=dashed label="DecimalLiteral"] - 178 -> 83 [style=dashed label="BinaryLiteral"] - 178 -> 84 [style=dashed label="StringLiteral"] - 178 -> 85 [style=dashed label="ReferenceLiteral"] - 178 -> 86 [style=dashed label="ListLiteral"] - 178 -> 87 [style=dashed label="RangeLiteral"] - 178 -> 88 [style=dashed label="TupleLiteral"] - 178 -> 89 [style=dashed label="RecordLiteral"] - 178 -> 90 [style=dashed label="Identifier"] - 178 -> 91 [style=dashed label="IdentifierPath"] - 179 [label="State 179\n\l210 AttributedVariables: AttributedVariables \",\" • AttributedVariable\l"] + 178 -> 272 [style=dashed label="Rule"] + 178 -> 273 [style=dashed label="SkipRule"] + 178 -> 274 [style=dashed label="ConditionalRule"] + 178 -> 275 [style=dashed label="CaseRule"] + 178 -> 276 [style=dashed label="LetRule"] + 178 -> 277 [style=dashed label="LocalRule"] + 178 -> 278 [style=dashed label="ForallRule"] + 178 -> 279 [style=dashed label="ChooseRule"] + 178 -> 280 [style=dashed label="IterateRule"] + 178 -> 281 [style=dashed label="BlockRule"] + 178 -> 282 [style=dashed label="SequenceRule"] + 178 -> 283 [style=dashed label="UpdateRule"] + 178 -> 284 [style=dashed label="CallRule"] + 178 -> 285 [style=dashed label="WhileRule"] + 178 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 178 -> 287 [style=dashed label="CallExpression"] + 178 -> 288 [style=dashed label="DirectCallExpression"] + 178 -> 71 [style=dashed label="MethodCallExpression"] + 178 -> 72 [style=dashed label="LiteralCallExpression"] + 178 -> 73 [style=dashed label="IndirectCallExpression"] + 178 -> 81 [style=dashed label="Literal"] + 178 -> 82 [style=dashed label="UndefinedLiteral"] + 178 -> 83 [style=dashed label="BooleanLiteral"] + 178 -> 84 [style=dashed label="IntegerLiteral"] + 178 -> 85 [style=dashed label="RationalLiteral"] + 178 -> 86 [style=dashed label="DecimalLiteral"] + 178 -> 87 [style=dashed label="BinaryLiteral"] + 178 -> 88 [style=dashed label="StringLiteral"] + 178 -> 89 [style=dashed label="ReferenceLiteral"] + 178 -> 90 [style=dashed label="ListLiteral"] + 178 -> 91 [style=dashed label="RangeLiteral"] + 178 -> 92 [style=dashed label="TupleLiteral"] + 178 -> 93 [style=dashed label="RecordLiteral"] + 178 -> 94 [style=dashed label="Identifier"] + 178 -> 95 [style=dashed label="IdentifierPath"] + 179 [label="State 179\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" • Parameters \")\" \"=\" Rule\l 30 | \"rule\" Identifier \"(\" • Parameters \")\" \"->\" Type \"=\" Rule\l 31 | \"rule\" Identifier \"(\" • error \")\" \"=\" Rule\l 32 | \"rule\" Identifier \"(\" • error \")\" \"->\" Type \"=\" Rule\l"] + 179 -> 289 [style=dotted] 179 -> 8 [style=solid label="\"in\""] 179 -> 2 [style=solid label="\"[\""] 179 -> 9 [style=solid label="\"identifier\""] - 179 -> 107 [style=dashed label="Identifier"] - 179 -> 108 [style=dashed label="Variable"] - 179 -> 109 [style=dashed label="TypedVariable"] - 179 -> 288 [style=dashed label="AttributedVariable"] - 179 -> 113 [style=dashed label="Attributes"] + 179 -> 290 [style=dashed label="Parameters"] + 179 -> 253 [style=dashed label="Identifier"] + 179 -> 254 [style=dashed label="TypedVariable"] + 179 -> 255 [style=dashed label="TypedAttributedVariable"] + 179 -> 256 [style=dashed label="Attributes"] 179 -> 6 [style=dashed label="Attribute"] - 180 [label="State 180\n\l140 ChooseExpression: \"choose\" AttributedVariables \"in\" • Term \"do\" Term\l"] - 180 -> 41 [style=solid label="\"let\""] + 180 [label="State 180\n\l 28 RuleDefinition: \"rule\" Identifier \"->\" • Type \"=\" Rule\l"] 180 -> 8 [style=solid label="\"in\""] - 180 -> 42 [style=solid label="\"forall\""] - 180 -> 43 [style=solid label="\"choose\""] - 180 -> 44 [style=solid label="\"if\""] - 180 -> 45 [style=solid label="\"exists\""] - 180 -> 46 [style=solid label="\"undef\""] - 180 -> 47 [style=solid label="\"false\""] - 180 -> 48 [style=solid label="\"true\""] - 180 -> 49 [style=solid label="\"not\""] - 180 -> 50 [style=solid label="\"+\""] - 180 -> 51 [style=solid label="\"-\""] - 180 -> 52 [style=solid label="\"(\""] - 180 -> 53 [style=solid label="\"[\""] - 180 -> 54 [style=solid label="\"|\""] - 180 -> 55 [style=solid label="\"@\""] - 180 -> 56 [style=solid label="\"binary\""] - 180 -> 57 [style=solid label="\"hexadecimal\""] - 180 -> 58 [style=solid label="\"integer\""] - 180 -> 59 [style=solid label="\"rational\""] - 180 -> 60 [style=solid label="\"decimal\""] - 180 -> 61 [style=solid label="\"string\""] + 180 -> 109 [style=solid label="\"(\""] 180 -> 9 [style=solid label="\"identifier\""] - 180 -> 289 [style=dashed label="Term"] - 180 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 180 -> 64 [style=dashed label="OperatorExpression"] - 180 -> 65 [style=dashed label="CallExpression"] - 180 -> 66 [style=dashed label="DirectCallExpression"] - 180 -> 67 [style=dashed label="MethodCallExpression"] - 180 -> 68 [style=dashed label="LiteralCallExpression"] - 180 -> 69 [style=dashed label="IndirectCallExpression"] - 180 -> 70 [style=dashed label="TypeCastingExpression"] - 180 -> 71 [style=dashed label="LetExpression"] - 180 -> 72 [style=dashed label="ConditionalExpression"] - 180 -> 73 [style=dashed label="ChooseExpression"] - 180 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 180 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 180 -> 76 [style=dashed label="CardinalityExpression"] - 180 -> 77 [style=dashed label="Literal"] - 180 -> 78 [style=dashed label="UndefinedLiteral"] - 180 -> 79 [style=dashed label="BooleanLiteral"] - 180 -> 80 [style=dashed label="IntegerLiteral"] - 180 -> 81 [style=dashed label="RationalLiteral"] - 180 -> 82 [style=dashed label="DecimalLiteral"] - 180 -> 83 [style=dashed label="BinaryLiteral"] - 180 -> 84 [style=dashed label="StringLiteral"] - 180 -> 85 [style=dashed label="ReferenceLiteral"] - 180 -> 86 [style=dashed label="ListLiteral"] - 180 -> 87 [style=dashed label="RangeLiteral"] - 180 -> 88 [style=dashed label="TupleLiteral"] - 180 -> 89 [style=dashed label="RecordLiteral"] - 180 -> 90 [style=dashed label="Identifier"] - 180 -> 91 [style=dashed label="IdentifierPath"] - 181 [label="State 181\n\l139 ConditionalExpression: \"if\" Term \"then\" • Term \"else\" Term\l"] - 181 -> 41 [style=solid label="\"let\""] + 180 -> 291 [style=dashed label="Type"] + 180 -> 111 [style=dashed label="BasicType"] + 180 -> 112 [style=dashed label="TupleType"] + 180 -> 113 [style=dashed label="RecordType"] + 180 -> 114 [style=dashed label="TemplateType"] + 180 -> 115 [style=dashed label="RelationType"] + 180 -> 116 [style=dashed label="FixedSizedType"] + 180 -> 94 [style=dashed label="Identifier"] + 180 -> 190 [style=dashed label="IdentifierPath"] + 181 [label="State 181\n\l 39 UsingDefinition: \"using\" Identifier \"=\" • Type\l"] 181 -> 8 [style=solid label="\"in\""] - 181 -> 42 [style=solid label="\"forall\""] - 181 -> 43 [style=solid label="\"choose\""] - 181 -> 44 [style=solid label="\"if\""] - 181 -> 45 [style=solid label="\"exists\""] - 181 -> 46 [style=solid label="\"undef\""] - 181 -> 47 [style=solid label="\"false\""] - 181 -> 48 [style=solid label="\"true\""] - 181 -> 49 [style=solid label="\"not\""] - 181 -> 50 [style=solid label="\"+\""] - 181 -> 51 [style=solid label="\"-\""] - 181 -> 52 [style=solid label="\"(\""] - 181 -> 53 [style=solid label="\"[\""] - 181 -> 54 [style=solid label="\"|\""] - 181 -> 55 [style=solid label="\"@\""] - 181 -> 56 [style=solid label="\"binary\""] - 181 -> 57 [style=solid label="\"hexadecimal\""] - 181 -> 58 [style=solid label="\"integer\""] - 181 -> 59 [style=solid label="\"rational\""] - 181 -> 60 [style=solid label="\"decimal\""] - 181 -> 61 [style=solid label="\"string\""] + 181 -> 109 [style=solid label="\"(\""] 181 -> 9 [style=solid label="\"identifier\""] - 181 -> 290 [style=dashed label="Term"] - 181 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 181 -> 64 [style=dashed label="OperatorExpression"] - 181 -> 65 [style=dashed label="CallExpression"] - 181 -> 66 [style=dashed label="DirectCallExpression"] - 181 -> 67 [style=dashed label="MethodCallExpression"] - 181 -> 68 [style=dashed label="LiteralCallExpression"] - 181 -> 69 [style=dashed label="IndirectCallExpression"] - 181 -> 70 [style=dashed label="TypeCastingExpression"] - 181 -> 71 [style=dashed label="LetExpression"] - 181 -> 72 [style=dashed label="ConditionalExpression"] - 181 -> 73 [style=dashed label="ChooseExpression"] - 181 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 181 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 181 -> 76 [style=dashed label="CardinalityExpression"] - 181 -> 77 [style=dashed label="Literal"] - 181 -> 78 [style=dashed label="UndefinedLiteral"] - 181 -> 79 [style=dashed label="BooleanLiteral"] - 181 -> 80 [style=dashed label="IntegerLiteral"] - 181 -> 81 [style=dashed label="RationalLiteral"] - 181 -> 82 [style=dashed label="DecimalLiteral"] - 181 -> 83 [style=dashed label="BinaryLiteral"] - 181 -> 84 [style=dashed label="StringLiteral"] - 181 -> 85 [style=dashed label="ReferenceLiteral"] - 181 -> 86 [style=dashed label="ListLiteral"] - 181 -> 87 [style=dashed label="RangeLiteral"] - 181 -> 88 [style=dashed label="TupleLiteral"] - 181 -> 89 [style=dashed label="RecordLiteral"] - 181 -> 90 [style=dashed label="Identifier"] - 181 -> 91 [style=dashed label="IdentifierPath"] - 182 [label="State 182\n\l142 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" • Term \"with\" Term\l"] - 182 -> 41 [style=solid label="\"let\""] + 181 -> 292 [style=dashed label="Type"] + 181 -> 111 [style=dashed label="BasicType"] + 181 -> 112 [style=dashed label="TupleType"] + 181 -> 113 [style=dashed label="RecordType"] + 181 -> 114 [style=dashed label="TemplateType"] + 181 -> 115 [style=dashed label="RelationType"] + 181 -> 116 [style=dashed label="FixedSizedType"] + 181 -> 94 [style=dashed label="Identifier"] + 181 -> 190 [style=dashed label="IdentifierPath"] + 182 [label="State 182\n\l 41 UsingPathDefinition: \"using\" IdentifierPath \"::\" • \"*\"\l222 IdentifierPath: IdentifierPath \"::\" • Identifier\l"] 182 -> 8 [style=solid label="\"in\""] - 182 -> 42 [style=solid label="\"forall\""] - 182 -> 43 [style=solid label="\"choose\""] - 182 -> 44 [style=solid label="\"if\""] - 182 -> 45 [style=solid label="\"exists\""] - 182 -> 46 [style=solid label="\"undef\""] - 182 -> 47 [style=solid label="\"false\""] - 182 -> 48 [style=solid label="\"true\""] - 182 -> 49 [style=solid label="\"not\""] - 182 -> 50 [style=solid label="\"+\""] - 182 -> 51 [style=solid label="\"-\""] - 182 -> 52 [style=solid label="\"(\""] - 182 -> 53 [style=solid label="\"[\""] - 182 -> 54 [style=solid label="\"|\""] - 182 -> 55 [style=solid label="\"@\""] - 182 -> 56 [style=solid label="\"binary\""] - 182 -> 57 [style=solid label="\"hexadecimal\""] - 182 -> 58 [style=solid label="\"integer\""] - 182 -> 59 [style=solid label="\"rational\""] - 182 -> 60 [style=solid label="\"decimal\""] - 182 -> 61 [style=solid label="\"string\""] + 182 -> 293 [style=solid label="\"*\""] 182 -> 9 [style=solid label="\"identifier\""] - 182 -> 291 [style=dashed label="Term"] - 182 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 182 -> 64 [style=dashed label="OperatorExpression"] - 182 -> 65 [style=dashed label="CallExpression"] - 182 -> 66 [style=dashed label="DirectCallExpression"] - 182 -> 67 [style=dashed label="MethodCallExpression"] - 182 -> 68 [style=dashed label="LiteralCallExpression"] - 182 -> 69 [style=dashed label="IndirectCallExpression"] - 182 -> 70 [style=dashed label="TypeCastingExpression"] - 182 -> 71 [style=dashed label="LetExpression"] - 182 -> 72 [style=dashed label="ConditionalExpression"] - 182 -> 73 [style=dashed label="ChooseExpression"] - 182 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 182 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 182 -> 76 [style=dashed label="CardinalityExpression"] - 182 -> 77 [style=dashed label="Literal"] - 182 -> 78 [style=dashed label="UndefinedLiteral"] - 182 -> 79 [style=dashed label="BooleanLiteral"] - 182 -> 80 [style=dashed label="IntegerLiteral"] - 182 -> 81 [style=dashed label="RationalLiteral"] - 182 -> 82 [style=dashed label="DecimalLiteral"] - 182 -> 83 [style=dashed label="BinaryLiteral"] - 182 -> 84 [style=dashed label="StringLiteral"] - 182 -> 85 [style=dashed label="ReferenceLiteral"] - 182 -> 86 [style=dashed label="ListLiteral"] - 182 -> 87 [style=dashed label="RangeLiteral"] - 182 -> 88 [style=dashed label="TupleLiteral"] - 182 -> 89 [style=dashed label="RecordLiteral"] - 182 -> 90 [style=dashed label="Identifier"] - 182 -> 91 [style=dashed label="IdentifierPath"] - 183 [label="State 183\n\l 98 SimpleOrClaspedTerm: \"(\" error \")\" •\l"] - 183 -> "183R98" [style=solid] - "183R98" [label="R98", fillcolor=3, shape=diamond, style=filled] - 184 [label="State 184\n\l 86 Terms: Terms \",\" • Term\l170 TupleLiteral: \"(\" Terms \",\" • Term \")\"\l"] - 184 -> 41 [style=solid label="\"let\""] + 182 -> 246 [style=dashed label="Identifier"] + 183 [label="State 183\n\l 42 InvariantDefinition: \"invariant\" Identifier \"=\" • Term\l"] + 183 -> 45 [style=solid label="\"let\""] + 183 -> 8 [style=solid label="\"in\""] + 183 -> 46 [style=solid label="\"forall\""] + 183 -> 47 [style=solid label="\"choose\""] + 183 -> 48 [style=solid label="\"if\""] + 183 -> 49 [style=solid label="\"exists\""] + 183 -> 50 [style=solid label="\"undef\""] + 183 -> 51 [style=solid label="\"false\""] + 183 -> 52 [style=solid label="\"true\""] + 183 -> 53 [style=solid label="\"not\""] + 183 -> 54 [style=solid label="\"+\""] + 183 -> 55 [style=solid label="\"-\""] + 183 -> 56 [style=solid label="\"(\""] + 183 -> 57 [style=solid label="\"[\""] + 183 -> 58 [style=solid label="\"|\""] + 183 -> 59 [style=solid label="\"@\""] + 183 -> 60 [style=solid label="\"binary\""] + 183 -> 61 [style=solid label="\"hexadecimal\""] + 183 -> 62 [style=solid label="\"integer\""] + 183 -> 63 [style=solid label="\"rational\""] + 183 -> 64 [style=solid label="\"decimal\""] + 183 -> 65 [style=solid label="\"string\""] + 183 -> 9 [style=solid label="\"identifier\""] + 183 -> 294 [style=dashed label="Term"] + 183 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 183 -> 68 [style=dashed label="OperatorExpression"] + 183 -> 69 [style=dashed label="CallExpression"] + 183 -> 70 [style=dashed label="DirectCallExpression"] + 183 -> 71 [style=dashed label="MethodCallExpression"] + 183 -> 72 [style=dashed label="LiteralCallExpression"] + 183 -> 73 [style=dashed label="IndirectCallExpression"] + 183 -> 74 [style=dashed label="TypeCastingExpression"] + 183 -> 75 [style=dashed label="LetExpression"] + 183 -> 76 [style=dashed label="ConditionalExpression"] + 183 -> 77 [style=dashed label="ChooseExpression"] + 183 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 183 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 183 -> 80 [style=dashed label="CardinalityExpression"] + 183 -> 81 [style=dashed label="Literal"] + 183 -> 82 [style=dashed label="UndefinedLiteral"] + 183 -> 83 [style=dashed label="BooleanLiteral"] + 183 -> 84 [style=dashed label="IntegerLiteral"] + 183 -> 85 [style=dashed label="RationalLiteral"] + 183 -> 86 [style=dashed label="DecimalLiteral"] + 183 -> 87 [style=dashed label="BinaryLiteral"] + 183 -> 88 [style=dashed label="StringLiteral"] + 183 -> 89 [style=dashed label="ReferenceLiteral"] + 183 -> 90 [style=dashed label="ListLiteral"] + 183 -> 91 [style=dashed label="RangeLiteral"] + 183 -> 92 [style=dashed label="TupleLiteral"] + 183 -> 93 [style=dashed label="RecordLiteral"] + 183 -> 94 [style=dashed label="Identifier"] + 183 -> 95 [style=dashed label="IdentifierPath"] + 184 [label="State 184\n\l 44 ImportDefinition: \"import\" IdentifierPath \"as\" • Identifier\l"] 184 -> 8 [style=solid label="\"in\""] - 184 -> 42 [style=solid label="\"forall\""] - 184 -> 43 [style=solid label="\"choose\""] - 184 -> 44 [style=solid label="\"if\""] - 184 -> 45 [style=solid label="\"exists\""] - 184 -> 46 [style=solid label="\"undef\""] - 184 -> 47 [style=solid label="\"false\""] - 184 -> 48 [style=solid label="\"true\""] - 184 -> 49 [style=solid label="\"not\""] - 184 -> 50 [style=solid label="\"+\""] - 184 -> 51 [style=solid label="\"-\""] - 184 -> 52 [style=solid label="\"(\""] - 184 -> 53 [style=solid label="\"[\""] - 184 -> 54 [style=solid label="\"|\""] - 184 -> 55 [style=solid label="\"@\""] - 184 -> 56 [style=solid label="\"binary\""] - 184 -> 57 [style=solid label="\"hexadecimal\""] - 184 -> 58 [style=solid label="\"integer\""] - 184 -> 59 [style=solid label="\"rational\""] - 184 -> 60 [style=solid label="\"decimal\""] - 184 -> 61 [style=solid label="\"string\""] 184 -> 9 [style=solid label="\"identifier\""] - 184 -> 292 [style=dashed label="Term"] - 184 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 184 -> 64 [style=dashed label="OperatorExpression"] - 184 -> 65 [style=dashed label="CallExpression"] - 184 -> 66 [style=dashed label="DirectCallExpression"] - 184 -> 67 [style=dashed label="MethodCallExpression"] - 184 -> 68 [style=dashed label="LiteralCallExpression"] - 184 -> 69 [style=dashed label="IndirectCallExpression"] - 184 -> 70 [style=dashed label="TypeCastingExpression"] - 184 -> 71 [style=dashed label="LetExpression"] - 184 -> 72 [style=dashed label="ConditionalExpression"] - 184 -> 73 [style=dashed label="ChooseExpression"] - 184 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 184 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 184 -> 76 [style=dashed label="CardinalityExpression"] - 184 -> 77 [style=dashed label="Literal"] - 184 -> 78 [style=dashed label="UndefinedLiteral"] - 184 -> 79 [style=dashed label="BooleanLiteral"] - 184 -> 80 [style=dashed label="IntegerLiteral"] - 184 -> 81 [style=dashed label="RationalLiteral"] - 184 -> 82 [style=dashed label="DecimalLiteral"] - 184 -> 83 [style=dashed label="BinaryLiteral"] - 184 -> 84 [style=dashed label="StringLiteral"] - 184 -> 85 [style=dashed label="ReferenceLiteral"] - 184 -> 86 [style=dashed label="ListLiteral"] - 184 -> 87 [style=dashed label="RangeLiteral"] - 184 -> 88 [style=dashed label="TupleLiteral"] - 184 -> 89 [style=dashed label="RecordLiteral"] - 184 -> 90 [style=dashed label="Identifier"] - 184 -> 91 [style=dashed label="IdentifierPath"] - 185 [label="State 185\n\l 97 SimpleOrClaspedTerm: \"(\" Term \")\" •\l"] - 185 -> "185R97" [style=solid] - "185R97" [label="R97", fillcolor=3, shape=diamond, style=filled] - 186 [label="State 186\n\l171 RecordLiteral: \"(\" Assignments \")\" •\l"] - 186 -> "186R171" [style=solid] - "186R171" [label="R171", fillcolor=3, shape=diamond, style=filled] - 187 [label="State 187\n\l172 Assignments: Assignments \",\" • Assignment\l"] - 187 -> 8 [style=solid label="\"in\""] - 187 -> 9 [style=solid label="\"identifier\""] - 187 -> 293 [style=dashed label="Assignment"] - 187 -> 294 [style=dashed label="Identifier"] - 188 [label="State 188\n\l174 Assignment: Identifier \":\" • Term\l"] - 188 -> 41 [style=solid label="\"let\""] - 188 -> 8 [style=solid label="\"in\""] - 188 -> 42 [style=solid label="\"forall\""] - 188 -> 43 [style=solid label="\"choose\""] - 188 -> 44 [style=solid label="\"if\""] - 188 -> 45 [style=solid label="\"exists\""] - 188 -> 46 [style=solid label="\"undef\""] - 188 -> 47 [style=solid label="\"false\""] - 188 -> 48 [style=solid label="\"true\""] - 188 -> 49 [style=solid label="\"not\""] - 188 -> 50 [style=solid label="\"+\""] - 188 -> 51 [style=solid label="\"-\""] - 188 -> 52 [style=solid label="\"(\""] - 188 -> 53 [style=solid label="\"[\""] - 188 -> 54 [style=solid label="\"|\""] - 188 -> 55 [style=solid label="\"@\""] - 188 -> 56 [style=solid label="\"binary\""] - 188 -> 57 [style=solid label="\"hexadecimal\""] - 188 -> 58 [style=solid label="\"integer\""] - 188 -> 59 [style=solid label="\"rational\""] - 188 -> 60 [style=solid label="\"decimal\""] - 188 -> 61 [style=solid label="\"string\""] - 188 -> 9 [style=solid label="\"identifier\""] - 188 -> 295 [style=dashed label="Term"] - 188 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 188 -> 64 [style=dashed label="OperatorExpression"] - 188 -> 65 [style=dashed label="CallExpression"] - 188 -> 66 [style=dashed label="DirectCallExpression"] - 188 -> 67 [style=dashed label="MethodCallExpression"] - 188 -> 68 [style=dashed label="LiteralCallExpression"] - 188 -> 69 [style=dashed label="IndirectCallExpression"] - 188 -> 70 [style=dashed label="TypeCastingExpression"] - 188 -> 71 [style=dashed label="LetExpression"] - 188 -> 72 [style=dashed label="ConditionalExpression"] - 188 -> 73 [style=dashed label="ChooseExpression"] - 188 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 188 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 188 -> 76 [style=dashed label="CardinalityExpression"] - 188 -> 77 [style=dashed label="Literal"] - 188 -> 78 [style=dashed label="UndefinedLiteral"] - 188 -> 79 [style=dashed label="BooleanLiteral"] - 188 -> 80 [style=dashed label="IntegerLiteral"] - 188 -> 81 [style=dashed label="RationalLiteral"] - 188 -> 82 [style=dashed label="DecimalLiteral"] - 188 -> 83 [style=dashed label="BinaryLiteral"] - 188 -> 84 [style=dashed label="StringLiteral"] - 188 -> 85 [style=dashed label="ReferenceLiteral"] - 188 -> 86 [style=dashed label="ListLiteral"] - 188 -> 87 [style=dashed label="RangeLiteral"] - 188 -> 88 [style=dashed label="TupleLiteral"] - 188 -> 89 [style=dashed label="RecordLiteral"] - 188 -> 90 [style=dashed label="Identifier"] - 188 -> 91 [style=dashed label="IdentifierPath"] - 189 [label="State 189\n\l168 ListLiteral: \"[\" error \"]\" •\l"] - 189 -> "189R168" [style=solid] - "189R168" [label="R168", fillcolor=3, shape=diamond, style=filled] - 190 [label="State 190\n\l167 ListLiteral: \"[\" Terms \"]\" •\l"] - 190 -> "190R167" [style=solid] - "190R167" [label="R167", fillcolor=3, shape=diamond, style=filled] - 191 [label="State 191\n\l 86 Terms: Terms \",\" • Term\l"] - 191 -> 41 [style=solid label="\"let\""] - 191 -> 8 [style=solid label="\"in\""] - 191 -> 42 [style=solid label="\"forall\""] - 191 -> 43 [style=solid label="\"choose\""] - 191 -> 44 [style=solid label="\"if\""] - 191 -> 45 [style=solid label="\"exists\""] - 191 -> 46 [style=solid label="\"undef\""] - 191 -> 47 [style=solid label="\"false\""] - 191 -> 48 [style=solid label="\"true\""] - 191 -> 49 [style=solid label="\"not\""] - 191 -> 50 [style=solid label="\"+\""] - 191 -> 51 [style=solid label="\"-\""] - 191 -> 52 [style=solid label="\"(\""] - 191 -> 53 [style=solid label="\"[\""] - 191 -> 54 [style=solid label="\"|\""] - 191 -> 55 [style=solid label="\"@\""] - 191 -> 56 [style=solid label="\"binary\""] - 191 -> 57 [style=solid label="\"hexadecimal\""] - 191 -> 58 [style=solid label="\"integer\""] - 191 -> 59 [style=solid label="\"rational\""] - 191 -> 60 [style=solid label="\"decimal\""] - 191 -> 61 [style=solid label="\"string\""] - 191 -> 9 [style=solid label="\"identifier\""] - 191 -> 296 [style=dashed label="Term"] - 191 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 191 -> 64 [style=dashed label="OperatorExpression"] - 191 -> 65 [style=dashed label="CallExpression"] - 191 -> 66 [style=dashed label="DirectCallExpression"] - 191 -> 67 [style=dashed label="MethodCallExpression"] - 191 -> 68 [style=dashed label="LiteralCallExpression"] - 191 -> 69 [style=dashed label="IndirectCallExpression"] - 191 -> 70 [style=dashed label="TypeCastingExpression"] - 191 -> 71 [style=dashed label="LetExpression"] - 191 -> 72 [style=dashed label="ConditionalExpression"] - 191 -> 73 [style=dashed label="ChooseExpression"] - 191 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 191 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 191 -> 76 [style=dashed label="CardinalityExpression"] - 191 -> 77 [style=dashed label="Literal"] - 191 -> 78 [style=dashed label="UndefinedLiteral"] - 191 -> 79 [style=dashed label="BooleanLiteral"] - 191 -> 80 [style=dashed label="IntegerLiteral"] - 191 -> 81 [style=dashed label="RationalLiteral"] - 191 -> 82 [style=dashed label="DecimalLiteral"] - 191 -> 83 [style=dashed label="BinaryLiteral"] - 191 -> 84 [style=dashed label="StringLiteral"] - 191 -> 85 [style=dashed label="ReferenceLiteral"] - 191 -> 86 [style=dashed label="ListLiteral"] - 191 -> 87 [style=dashed label="RangeLiteral"] - 191 -> 88 [style=dashed label="TupleLiteral"] - 191 -> 89 [style=dashed label="RecordLiteral"] - 191 -> 90 [style=dashed label="Identifier"] - 191 -> 91 [style=dashed label="IdentifierPath"] - 192 [label="State 192\n\l169 RangeLiteral: \"[\" Term \"..\" • Term \"]\"\l"] - 192 -> 41 [style=solid label="\"let\""] - 192 -> 8 [style=solid label="\"in\""] - 192 -> 42 [style=solid label="\"forall\""] - 192 -> 43 [style=solid label="\"choose\""] - 192 -> 44 [style=solid label="\"if\""] - 192 -> 45 [style=solid label="\"exists\""] - 192 -> 46 [style=solid label="\"undef\""] - 192 -> 47 [style=solid label="\"false\""] - 192 -> 48 [style=solid label="\"true\""] - 192 -> 49 [style=solid label="\"not\""] - 192 -> 50 [style=solid label="\"+\""] - 192 -> 51 [style=solid label="\"-\""] - 192 -> 52 [style=solid label="\"(\""] - 192 -> 53 [style=solid label="\"[\""] - 192 -> 54 [style=solid label="\"|\""] - 192 -> 55 [style=solid label="\"@\""] - 192 -> 56 [style=solid label="\"binary\""] - 192 -> 57 [style=solid label="\"hexadecimal\""] - 192 -> 58 [style=solid label="\"integer\""] - 192 -> 59 [style=solid label="\"rational\""] - 192 -> 60 [style=solid label="\"decimal\""] - 192 -> 61 [style=solid label="\"string\""] - 192 -> 9 [style=solid label="\"identifier\""] - 192 -> 297 [style=dashed label="Term"] - 192 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 192 -> 64 [style=dashed label="OperatorExpression"] - 192 -> 65 [style=dashed label="CallExpression"] - 192 -> 66 [style=dashed label="DirectCallExpression"] - 192 -> 67 [style=dashed label="MethodCallExpression"] - 192 -> 68 [style=dashed label="LiteralCallExpression"] - 192 -> 69 [style=dashed label="IndirectCallExpression"] - 192 -> 70 [style=dashed label="TypeCastingExpression"] - 192 -> 71 [style=dashed label="LetExpression"] - 192 -> 72 [style=dashed label="ConditionalExpression"] - 192 -> 73 [style=dashed label="ChooseExpression"] - 192 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 192 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 192 -> 76 [style=dashed label="CardinalityExpression"] - 192 -> 77 [style=dashed label="Literal"] - 192 -> 78 [style=dashed label="UndefinedLiteral"] - 192 -> 79 [style=dashed label="BooleanLiteral"] - 192 -> 80 [style=dashed label="IntegerLiteral"] - 192 -> 81 [style=dashed label="RationalLiteral"] - 192 -> 82 [style=dashed label="DecimalLiteral"] - 192 -> 83 [style=dashed label="BinaryLiteral"] - 192 -> 84 [style=dashed label="StringLiteral"] - 192 -> 85 [style=dashed label="ReferenceLiteral"] - 192 -> 86 [style=dashed label="ListLiteral"] - 192 -> 87 [style=dashed label="RangeLiteral"] - 192 -> 88 [style=dashed label="TupleLiteral"] - 192 -> 89 [style=dashed label="RecordLiteral"] - 192 -> 90 [style=dashed label="Identifier"] - 192 -> 91 [style=dashed label="IdentifierPath"] - 193 [label="State 193\n\l143 CardinalityExpression: \"|\" SimpleOrClaspedTerm \"|\" •\l"] - 193 -> "193R143" [style=solid] - "193R143" [label="R143", fillcolor=3, shape=diamond, style=filled] - 194 [label="State 194\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l118 | Term \"and\" Term •\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 194 -> 138 [style=solid label="\"+\""] - 194 -> 139 [style=solid label="\"-\""] - 194 -> 140 [style=solid label="\"=\""] - 194 -> 141 [style=solid label="\"<\""] - 194 -> 142 [style=solid label="\">\""] - 194 -> 143 [style=solid label="\"*\""] - 194 -> 144 [style=solid label="\"/\""] - 194 -> 145 [style=solid label="\"%\""] - 194 -> 146 [style=solid label="\"^\""] - 194 -> 148 [style=solid label="\"!=\""] - 194 -> 149 [style=solid label="\"<=\""] - 194 -> 150 [style=solid label="\">=\""] - 194 -> "194R118" [style=solid] - "194R118" [label="R118", fillcolor=3, shape=diamond, style=filled] - 195 [label="State 195\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l116 | Term \"or\" Term •\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 195 -> 134 [style=solid label="\"and\""] - 195 -> 136 [style=solid label="\"xor\""] - 195 -> 138 [style=solid label="\"+\""] - 195 -> 139 [style=solid label="\"-\""] - 195 -> 140 [style=solid label="\"=\""] - 195 -> 141 [style=solid label="\"<\""] - 195 -> 142 [style=solid label="\">\""] - 195 -> 143 [style=solid label="\"*\""] - 195 -> 144 [style=solid label="\"/\""] - 195 -> 145 [style=solid label="\"%\""] - 195 -> 146 [style=solid label="\"^\""] - 195 -> 148 [style=solid label="\"!=\""] - 195 -> 149 [style=solid label="\"<=\""] - 195 -> 150 [style=solid label="\">=\""] - 195 -> "195R116" [style=solid] - "195R116" [label="R116", fillcolor=3, shape=diamond, style=filled] - 196 [label="State 196\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l117 | Term \"xor\" Term •\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 196 -> 134 [style=solid label="\"and\""] - 196 -> 138 [style=solid label="\"+\""] - 196 -> 139 [style=solid label="\"-\""] - 196 -> 140 [style=solid label="\"=\""] - 196 -> 141 [style=solid label="\"<\""] - 196 -> 142 [style=solid label="\">\""] - 196 -> 143 [style=solid label="\"*\""] - 196 -> 144 [style=solid label="\"/\""] - 196 -> 145 [style=solid label="\"%\""] - 196 -> 146 [style=solid label="\"^\""] - 196 -> 148 [style=solid label="\"!=\""] - 196 -> 149 [style=solid label="\"<=\""] - 196 -> 150 [style=solid label="\">=\""] - 196 -> "196R117" [style=solid] - "196R117" [label="R117", fillcolor=3, shape=diamond, style=filled] - 197 [label="State 197\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l120 | Term \"implies\" Term •\l"] - 197 -> 134 [style=solid label="\"and\""] - 197 -> 135 [style=solid label="\"or\""] - 197 -> 136 [style=solid label="\"xor\""] - 197 -> 138 [style=solid label="\"+\""] - 197 -> 139 [style=solid label="\"-\""] - 197 -> 140 [style=solid label="\"=\""] - 197 -> 141 [style=solid label="\"<\""] - 197 -> 142 [style=solid label="\">\""] - 197 -> 143 [style=solid label="\"*\""] - 197 -> 144 [style=solid label="\"/\""] - 197 -> 145 [style=solid label="\"%\""] - 197 -> 146 [style=solid label="\"^\""] - 197 -> 148 [style=solid label="\"!=\""] - 197 -> 149 [style=solid label="\"<=\""] - 197 -> 150 [style=solid label="\">=\""] - 197 -> "197R120" [style=solid] - "197R120" [label="R120", fillcolor=3, shape=diamond, style=filled] - 198 [label="State 198\n\l104 OperatorExpression: Term • \"+\" Term\l104 | Term \"+\" Term •\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 198 -> 143 [style=solid label="\"*\""] - 198 -> 144 [style=solid label="\"/\""] - 198 -> 145 [style=solid label="\"%\""] - 198 -> 146 [style=solid label="\"^\""] - 198 -> "198R104" [style=solid] - "198R104" [label="R104", fillcolor=3, shape=diamond, style=filled] - 199 [label="State 199\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l105 | Term \"-\" Term •\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 199 -> 143 [style=solid label="\"*\""] - 199 -> 144 [style=solid label="\"/\""] - 199 -> 145 [style=solid label="\"%\""] - 199 -> 146 [style=solid label="\"^\""] - 199 -> "199R105" [style=solid] - "199R105" [label="R105", fillcolor=3, shape=diamond, style=filled] - 200 [label="State 200\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l111 | Term \"=\" Term •\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 200 -> 138 [style=solid label="\"+\""] - 200 -> 139 [style=solid label="\"-\""] - 200 -> 141 [style=solid label="\"<\""] - 200 -> 142 [style=solid label="\">\""] - 200 -> 143 [style=solid label="\"*\""] - 200 -> 144 [style=solid label="\"/\""] - 200 -> 145 [style=solid label="\"%\""] - 200 -> 146 [style=solid label="\"^\""] - 200 -> 149 [style=solid label="\"<=\""] - 200 -> 150 [style=solid label="\">=\""] - 200 -> "200R111" [style=solid] - "200R111" [label="R111", fillcolor=3, shape=diamond, style=filled] - 201 [label="State 201\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l112 | Term \"<\" Term •\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 201 -> 138 [style=solid label="\"+\""] - 201 -> 139 [style=solid label="\"-\""] - 201 -> 143 [style=solid label="\"*\""] - 201 -> 144 [style=solid label="\"/\""] - 201 -> 145 [style=solid label="\"%\""] - 201 -> 146 [style=solid label="\"^\""] - 201 -> "201R112" [style=solid] - "201R112" [label="R112", fillcolor=3, shape=diamond, style=filled] - 202 [label="State 202\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l113 | Term \">\" Term •\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 202 -> 138 [style=solid label="\"+\""] - 202 -> 139 [style=solid label="\"-\""] - 202 -> 143 [style=solid label="\"*\""] - 202 -> 144 [style=solid label="\"/\""] - 202 -> 145 [style=solid label="\"%\""] - 202 -> 146 [style=solid label="\"^\""] - 202 -> "202R113" [style=solid] - "202R113" [label="R113", fillcolor=3, shape=diamond, style=filled] - 203 [label="State 203\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l106 | Term \"*\" Term •\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 203 -> 146 [style=solid label="\"^\""] - 203 -> "203R106" [style=solid] - "203R106" [label="R106", fillcolor=3, shape=diamond, style=filled] - 204 [label="State 204\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l107 | Term \"/\" Term •\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 204 -> 146 [style=solid label="\"^\""] - 204 -> "204R107" [style=solid] - "204R107" [label="R107", fillcolor=3, shape=diamond, style=filled] - 205 [label="State 205\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l108 | Term \"%\" Term •\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 205 -> 146 [style=solid label="\"^\""] - 205 -> "205R108" [style=solid] - "205R108" [label="R108", fillcolor=3, shape=diamond, style=filled] - 206 [label="State 206\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l109 | Term \"^\" Term •\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 206 -> "206R109" [style=solid] - "206R109" [label="R109", fillcolor=3, shape=diamond, style=filled] - 207 [label="State 207\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l119 | Term \"=>\" Term •\l120 | Term • \"implies\" Term\l"] - 207 -> 134 [style=solid label="\"and\""] - 207 -> 135 [style=solid label="\"or\""] - 207 -> 136 [style=solid label="\"xor\""] - 207 -> 138 [style=solid label="\"+\""] - 207 -> 139 [style=solid label="\"-\""] - 207 -> 140 [style=solid label="\"=\""] - 207 -> 141 [style=solid label="\"<\""] - 207 -> 142 [style=solid label="\">\""] - 207 -> 143 [style=solid label="\"*\""] - 207 -> 144 [style=solid label="\"/\""] - 207 -> 145 [style=solid label="\"%\""] - 207 -> 146 [style=solid label="\"^\""] - 207 -> 148 [style=solid label="\"!=\""] - 207 -> 149 [style=solid label="\"<=\""] - 207 -> 150 [style=solid label="\">=\""] - 207 -> "207R119" [style=solid] - "207R119" [label="R119", fillcolor=3, shape=diamond, style=filled] - 208 [label="State 208\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l110 | Term \"!=\" Term •\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 208 -> 138 [style=solid label="\"+\""] - 208 -> 139 [style=solid label="\"-\""] - 208 -> 141 [style=solid label="\"<\""] - 208 -> 142 [style=solid label="\">\""] - 208 -> 143 [style=solid label="\"*\""] - 208 -> 144 [style=solid label="\"/\""] - 208 -> 145 [style=solid label="\"%\""] - 208 -> 146 [style=solid label="\"^\""] - 208 -> 149 [style=solid label="\"<=\""] - 208 -> 150 [style=solid label="\">=\""] - 208 -> "208R110" [style=solid] - "208R110" [label="R110", fillcolor=3, shape=diamond, style=filled] - 209 [label="State 209\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l114 | Term \"<=\" Term •\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 209 -> 138 [style=solid label="\"+\""] - 209 -> 139 [style=solid label="\"-\""] - 209 -> 143 [style=solid label="\"*\""] - 209 -> 144 [style=solid label="\"/\""] - 209 -> 145 [style=solid label="\"%\""] - 209 -> 146 [style=solid label="\"^\""] - 209 -> "209R114" [style=solid] - "209R114" [label="R114", fillcolor=3, shape=diamond, style=filled] - 210 [label="State 210\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l115 | Term \">=\" Term •\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 210 -> 138 [style=solid label="\"+\""] - 210 -> 139 [style=solid label="\"-\""] - 210 -> 143 [style=solid label="\"*\""] - 210 -> 144 [style=solid label="\"/\""] - 210 -> 145 [style=solid label="\"%\""] - 210 -> 146 [style=solid label="\"^\""] - 210 -> "210R115" [style=solid] - "210R115" [label="R115", fillcolor=3, shape=diamond, style=filled] - 211 [label="State 211\n\l184 TupleType: \"(\" • Types \",\" Type \")\"\l185 RecordType: \"(\" • TypedVariables \",\" TypedVariable \")\"\l"] - 211 -> 8 [style=solid label="\"in\""] - 211 -> 211 [style=solid label="\"(\""] - 211 -> 9 [style=solid label="\"identifier\""] - 211 -> 298 [style=dashed label="Types"] - 211 -> 299 [style=dashed label="Type"] - 211 -> 213 [style=dashed label="BasicType"] - 211 -> 214 [style=dashed label="TupleType"] - 211 -> 215 [style=dashed label="RecordType"] - 211 -> 216 [style=dashed label="TemplateType"] - 211 -> 217 [style=dashed label="RelationType"] - 211 -> 218 [style=dashed label="FixedSizedType"] - 211 -> 300 [style=dashed label="Identifier"] - 211 -> 219 [style=dashed label="IdentifierPath"] - 211 -> 301 [style=dashed label="TypedVariables"] - 211 -> 302 [style=dashed label="TypedVariable"] - 212 [label="State 212\n\l137 TypeCastingExpression: SimpleOrClaspedTerm \"as\" Type •\l"] - 212 -> "212R137" [style=solid] - "212R137" [label="R137", fillcolor=3, shape=diamond, style=filled] - 213 [label="State 213\n\l177 Type: BasicType •\l"] - 213 -> "213R177" [style=solid] - "213R177" [label="R177", fillcolor=3, shape=diamond, style=filled] - 214 [label="State 214\n\l178 Type: TupleType •\l"] - 214 -> "214R178" [style=solid] - "214R178" [label="R178", fillcolor=3, shape=diamond, style=filled] - 215 [label="State 215\n\l179 Type: RecordType •\l"] - 215 -> "215R179" [style=solid] - "215R179" [label="R179", fillcolor=3, shape=diamond, style=filled] - 216 [label="State 216\n\l180 Type: TemplateType •\l"] - 216 -> "216R180" [style=solid] - "216R180" [label="R180", fillcolor=3, shape=diamond, style=filled] - 217 [label="State 217\n\l181 Type: RelationType •\l"] - 217 -> "217R181" [style=solid] - "217R181" [label="R181", fillcolor=3, shape=diamond, style=filled] - 218 [label="State 218\n\l182 Type: FixedSizedType •\l"] - 218 -> "218R182" [style=solid] - "218R182" [label="R182", fillcolor=3, shape=diamond, style=filled] - 219 [label="State 219\n\l183 BasicType: IdentifierPath •\l186 TemplateType: IdentifierPath • \"<\" Types \">\"\l187 RelationType: IdentifierPath • \"<\" MaybeFunctionParameters \"->\" Type \">\"\l188 FixedSizedType: IdentifierPath • \"'\" Term\l206 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] - 219 -> 155 [style=solid label="\"::\""] - 219 -> 303 [style=solid label="\"<\""] - 219 -> 304 [style=solid label="\"'\""] - 219 -> "219R183" [style=solid] - "219R183" [label="R183", fillcolor=3, shape=diamond, style=filled] - 220 [label="State 220\n\l133 LiteralCallExpression: SimpleOrClaspedTerm \".\" IntegerLiteral •\l"] - 220 -> "220R133" [style=solid] - "220R133" [label="R133", fillcolor=3, shape=diamond, style=filled] - 221 [label="State 221\n\l129 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier •\l130 | SimpleOrClaspedTerm \".\" Identifier • \"(\" \")\"\l131 | SimpleOrClaspedTerm \".\" Identifier • \"(\" Terms \")\"\l132 | SimpleOrClaspedTerm \".\" Identifier • \"(\" error \")\"\l"] - 221 -> 305 [style=solid label="\"(\""] - 221 -> "221R129" [style=solid] - "221R129" [label="R129", fillcolor=3, shape=diamond, style=filled] - 222 [label="State 222\n\l136 IndirectCallExpression: CallExpression \"(\" error • \")\"\l"] - 222 -> 306 [style=solid label="\")\""] - 223 [label="State 223\n\l134 IndirectCallExpression: CallExpression \"(\" \")\" •\l"] - 223 -> "223R134" [style=solid] - "223R134" [label="R134", fillcolor=3, shape=diamond, style=filled] - 224 [label="State 224\n\l 86 Terms: Terms • \",\" Term\l135 IndirectCallExpression: CallExpression \"(\" Terms • \")\"\l"] - 224 -> 307 [style=solid label="\")\""] - 224 -> 191 [style=solid label="\",\""] - 225 [label="State 225\n\l 87 Terms: Term •\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 225 -> 134 [style=solid label="\"and\""] - 225 -> 135 [style=solid label="\"or\""] - 225 -> 136 [style=solid label="\"xor\""] - 225 -> 137 [style=solid label="\"implies\""] - 225 -> 138 [style=solid label="\"+\""] - 225 -> 139 [style=solid label="\"-\""] - 225 -> 140 [style=solid label="\"=\""] - 225 -> 141 [style=solid label="\"<\""] - 225 -> 142 [style=solid label="\">\""] - 225 -> 143 [style=solid label="\"*\""] - 225 -> 144 [style=solid label="\"/\""] - 225 -> 145 [style=solid label="\"%\""] - 225 -> 146 [style=solid label="\"^\""] - 225 -> 147 [style=solid label="\"=>\""] - 225 -> 148 [style=solid label="\"!=\""] - 225 -> 149 [style=solid label="\"<=\""] - 225 -> 150 [style=solid label="\">=\""] - 225 -> "225R87" [style=solid] - "225R87" [label="R87", fillcolor=3, shape=diamond, style=filled] - 226 [label="State 226\n\l128 DirectCallExpression: IdentifierPath \"(\" error • \")\"\l"] - 226 -> 308 [style=solid label="\")\""] - 227 [label="State 227\n\l126 DirectCallExpression: IdentifierPath \"(\" \")\" •\l"] - 227 -> "227R126" [style=solid] - "227R126" [label="R126", fillcolor=3, shape=diamond, style=filled] - 228 [label="State 228\n\l 86 Terms: Terms • \",\" Term\l127 DirectCallExpression: IdentifierPath \"(\" Terms • \")\"\l"] - 228 -> 309 [style=solid label="\")\""] - 228 -> 191 [style=solid label="\",\""] - 229 [label="State 229\n\l206 IdentifierPath: IdentifierPath \"::\" Identifier •\l"] - 229 -> "229R206" [style=solid] - "229R206" [label="R206", fillcolor=3, shape=diamond, style=filled] - 230 [label="State 230\n\l 87 Terms: Term •\l 97 SimpleOrClaspedTerm: \"(\" Term • \")\"\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l202 Initializer: \"(\" Term • \")\" \"->\" Term\l"] - 230 -> 134 [style=solid label="\"and\""] - 230 -> 135 [style=solid label="\"or\""] - 230 -> 136 [style=solid label="\"xor\""] - 230 -> 137 [style=solid label="\"implies\""] - 230 -> 138 [style=solid label="\"+\""] - 230 -> 139 [style=solid label="\"-\""] - 230 -> 140 [style=solid label="\"=\""] - 230 -> 310 [style=solid label="\")\""] - 230 -> 141 [style=solid label="\"<\""] - 230 -> 142 [style=solid label="\">\""] - 230 -> 143 [style=solid label="\"*\""] - 230 -> 144 [style=solid label="\"/\""] - 230 -> 145 [style=solid label="\"%\""] - 230 -> 146 [style=solid label="\"^\""] - 230 -> 147 [style=solid label="\"=>\""] - 230 -> 148 [style=solid label="\"!=\""] - 230 -> 149 [style=solid label="\"<=\""] - 230 -> 150 [style=solid label="\">=\""] - 230 -> "230R87" [style=solid] - "230R87" [label="R87", fillcolor=3, shape=diamond, style=filled] - 231 [label="State 231\n\l203 Initializer: TupleLiteral \"->\" • Term\l"] - 231 -> 41 [style=solid label="\"let\""] - 231 -> 8 [style=solid label="\"in\""] - 231 -> 42 [style=solid label="\"forall\""] - 231 -> 43 [style=solid label="\"choose\""] - 231 -> 44 [style=solid label="\"if\""] - 231 -> 45 [style=solid label="\"exists\""] - 231 -> 46 [style=solid label="\"undef\""] - 231 -> 47 [style=solid label="\"false\""] - 231 -> 48 [style=solid label="\"true\""] - 231 -> 49 [style=solid label="\"not\""] - 231 -> 50 [style=solid label="\"+\""] - 231 -> 51 [style=solid label="\"-\""] - 231 -> 52 [style=solid label="\"(\""] - 231 -> 53 [style=solid label="\"[\""] - 231 -> 54 [style=solid label="\"|\""] - 231 -> 55 [style=solid label="\"@\""] - 231 -> 56 [style=solid label="\"binary\""] - 231 -> 57 [style=solid label="\"hexadecimal\""] - 231 -> 58 [style=solid label="\"integer\""] - 231 -> 59 [style=solid label="\"rational\""] - 231 -> 60 [style=solid label="\"decimal\""] - 231 -> 61 [style=solid label="\"string\""] - 231 -> 9 [style=solid label="\"identifier\""] - 231 -> 311 [style=dashed label="Term"] - 231 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 231 -> 64 [style=dashed label="OperatorExpression"] - 231 -> 65 [style=dashed label="CallExpression"] - 231 -> 66 [style=dashed label="DirectCallExpression"] - 231 -> 67 [style=dashed label="MethodCallExpression"] - 231 -> 68 [style=dashed label="LiteralCallExpression"] - 231 -> 69 [style=dashed label="IndirectCallExpression"] - 231 -> 70 [style=dashed label="TypeCastingExpression"] - 231 -> 71 [style=dashed label="LetExpression"] - 231 -> 72 [style=dashed label="ConditionalExpression"] - 231 -> 73 [style=dashed label="ChooseExpression"] - 231 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 231 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 231 -> 76 [style=dashed label="CardinalityExpression"] - 231 -> 77 [style=dashed label="Literal"] - 231 -> 78 [style=dashed label="UndefinedLiteral"] - 231 -> 79 [style=dashed label="BooleanLiteral"] - 231 -> 80 [style=dashed label="IntegerLiteral"] - 231 -> 81 [style=dashed label="RationalLiteral"] - 231 -> 82 [style=dashed label="DecimalLiteral"] - 231 -> 83 [style=dashed label="BinaryLiteral"] - 231 -> 84 [style=dashed label="StringLiteral"] - 231 -> 85 [style=dashed label="ReferenceLiteral"] - 231 -> 86 [style=dashed label="ListLiteral"] - 231 -> 87 [style=dashed label="RangeLiteral"] - 231 -> 88 [style=dashed label="TupleLiteral"] - 231 -> 89 [style=dashed label="RecordLiteral"] - 231 -> 90 [style=dashed label="Identifier"] - 231 -> 91 [style=dashed label="IdentifierPath"] - 232 [label="State 232\n\l 20 InitDefinition: \"init\" \"{\" Initializers \"}\" •\l"] - 232 -> "232R20" [style=solid] - "232R20" [label="R20", fillcolor=3, shape=diamond, style=filled] - 233 [label="State 233\n\l199 Initializers: Initializers \",\" • Initializer\l"] - 233 -> 41 [style=solid label="\"let\""] - 233 -> 8 [style=solid label="\"in\""] - 233 -> 42 [style=solid label="\"forall\""] - 233 -> 43 [style=solid label="\"choose\""] - 233 -> 44 [style=solid label="\"if\""] - 233 -> 45 [style=solid label="\"exists\""] - 233 -> 46 [style=solid label="\"undef\""] - 233 -> 47 [style=solid label="\"false\""] - 233 -> 48 [style=solid label="\"true\""] - 233 -> 49 [style=solid label="\"not\""] - 233 -> 50 [style=solid label="\"+\""] - 233 -> 51 [style=solid label="\"-\""] - 233 -> 156 [style=solid label="\"(\""] - 233 -> 53 [style=solid label="\"[\""] - 233 -> 54 [style=solid label="\"|\""] - 233 -> 55 [style=solid label="\"@\""] - 233 -> 56 [style=solid label="\"binary\""] - 233 -> 57 [style=solid label="\"hexadecimal\""] - 233 -> 58 [style=solid label="\"integer\""] - 233 -> 59 [style=solid label="\"rational\""] - 233 -> 60 [style=solid label="\"decimal\""] - 233 -> 61 [style=solid label="\"string\""] - 233 -> 9 [style=solid label="\"identifier\""] - 233 -> 157 [style=dashed label="Term"] - 233 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 233 -> 64 [style=dashed label="OperatorExpression"] - 233 -> 65 [style=dashed label="CallExpression"] - 233 -> 66 [style=dashed label="DirectCallExpression"] - 233 -> 67 [style=dashed label="MethodCallExpression"] - 233 -> 68 [style=dashed label="LiteralCallExpression"] - 233 -> 69 [style=dashed label="IndirectCallExpression"] - 233 -> 70 [style=dashed label="TypeCastingExpression"] - 233 -> 71 [style=dashed label="LetExpression"] - 233 -> 72 [style=dashed label="ConditionalExpression"] - 233 -> 73 [style=dashed label="ChooseExpression"] - 233 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 233 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 233 -> 76 [style=dashed label="CardinalityExpression"] - 233 -> 77 [style=dashed label="Literal"] - 233 -> 78 [style=dashed label="UndefinedLiteral"] - 233 -> 79 [style=dashed label="BooleanLiteral"] - 233 -> 80 [style=dashed label="IntegerLiteral"] - 233 -> 81 [style=dashed label="RationalLiteral"] - 233 -> 82 [style=dashed label="DecimalLiteral"] - 233 -> 83 [style=dashed label="BinaryLiteral"] - 233 -> 84 [style=dashed label="StringLiteral"] - 233 -> 85 [style=dashed label="ReferenceLiteral"] - 233 -> 86 [style=dashed label="ListLiteral"] - 233 -> 87 [style=dashed label="RangeLiteral"] - 233 -> 158 [style=dashed label="TupleLiteral"] - 233 -> 89 [style=dashed label="RecordLiteral"] - 233 -> 312 [style=dashed label="Initializer"] - 233 -> 90 [style=dashed label="Identifier"] - 233 -> 91 [style=dashed label="IdentifierPath"] - 234 [label="State 234\n\l 24 DerivedDefinition: \"derived\" Identifier \"(\" error • \")\" \"->\" Type \"=\" Term\l"] - 234 -> 313 [style=solid label="\")\""] - 235 [label="State 235\n\l 23 DerivedDefinition: \"derived\" Identifier \"(\" Parameters • \")\" \"->\" Type \"=\" Term\l193 Parameters: Parameters • \",\" TypedAttributedVariable\l"] - 235 -> 314 [style=solid label="\")\""] - 235 -> 315 [style=solid label="\",\""] - 236 [label="State 236\n\l214 TypedVariable: Identifier • \":\" Type\l"] - 236 -> 173 [style=solid label="\":\""] - 237 [label="State 237\n\l218 TypedAttributedVariable: TypedVariable •\l"] - 237 -> "237R218" [style=solid] - "237R218" [label="R218", fillcolor=3, shape=diamond, style=filled] - 238 [label="State 238\n\l194 Parameters: TypedAttributedVariable •\l"] - 238 -> "238R194" [style=solid] - "238R194" [label="R194", fillcolor=3, shape=diamond, style=filled] - 239 [label="State 239\n\l217 TypedAttributedVariable: Attributes • TypedVariable\l228 Attributes: Attributes • Attribute\l"] - 239 -> 8 [style=solid label="\"in\""] - 239 -> 2 [style=solid label="\"[\""] - 239 -> 9 [style=solid label="\"identifier\""] - 239 -> 236 [style=dashed label="Identifier"] - 239 -> 316 [style=dashed label="TypedVariable"] - 239 -> 39 [style=dashed label="Attribute"] - 240 [label="State 240\n\l 22 DerivedDefinition: \"derived\" Identifier \"->\" Type • \"=\" Term\l"] - 240 -> 317 [style=solid label="\"=\""] - 241 [label="State 241\n\l 21 EnumerationDefinition: \"enumeration\" Identifier \"=\" \"{\" • Enumerators \"}\"\l"] - 241 -> 318 [style=dotted] - 241 -> 8 [style=solid label="\"in\""] - 241 -> 2 [style=solid label="\"[\""] - 241 -> 9 [style=solid label="\"identifier\""] - 241 -> 319 [style=dashed label="EnumeratorDefinition"] - 241 -> 320 [style=dashed label="Enumerators"] - 241 -> 321 [style=dashed label="Identifier"] - 241 -> 322 [style=dashed label="Attributes"] - 241 -> 6 [style=dashed label="Attribute"] - 242 [label="State 242\n\l 80 SequenceRule: \"seq\" • Rules \"endseq\"\l 82 | \"seq\" • error \"endseq\"\l"] - 242 -> 323 [style=dotted] - 242 -> 242 [style=solid label="\"seq\""] - 242 -> 243 [style=solid label="\"par\""] - 242 -> 244 [style=solid label="\"skip\""] - 242 -> 245 [style=solid label="\"let\""] - 242 -> 246 [style=solid label="\"local\""] - 242 -> 8 [style=solid label="\"in\""] - 242 -> 247 [style=solid label="\"forall\""] - 242 -> 248 [style=solid label="\"choose\""] - 242 -> 249 [style=solid label="\"iterate\""] - 242 -> 250 [style=solid label="\"if\""] - 242 -> 251 [style=solid label="\"case\""] - 242 -> 252 [style=solid label="\"while\""] - 242 -> 46 [style=solid label="\"undef\""] - 242 -> 47 [style=solid label="\"false\""] - 242 -> 48 [style=solid label="\"true\""] - 242 -> 50 [style=solid label="\"+\""] - 242 -> 51 [style=solid label="\"-\""] - 242 -> 52 [style=solid label="\"(\""] - 242 -> 53 [style=solid label="\"[\""] - 242 -> 253 [style=solid label="\"{\""] - 242 -> 55 [style=solid label="\"@\""] - 242 -> 254 [style=solid label="\"{|\""] - 242 -> 56 [style=solid label="\"binary\""] - 242 -> 57 [style=solid label="\"hexadecimal\""] - 242 -> 58 [style=solid label="\"integer\""] - 242 -> 59 [style=solid label="\"rational\""] - 242 -> 60 [style=solid label="\"decimal\""] - 242 -> 61 [style=solid label="\"string\""] - 242 -> 9 [style=solid label="\"identifier\""] - 242 -> 324 [style=dashed label="Rules"] - 242 -> 325 [style=dashed label="Rule"] - 242 -> 256 [style=dashed label="SkipRule"] - 242 -> 257 [style=dashed label="ConditionalRule"] - 242 -> 258 [style=dashed label="CaseRule"] - 242 -> 259 [style=dashed label="LetRule"] - 242 -> 260 [style=dashed label="LocalRule"] - 242 -> 261 [style=dashed label="ForallRule"] - 242 -> 262 [style=dashed label="ChooseRule"] - 242 -> 263 [style=dashed label="IterateRule"] - 242 -> 264 [style=dashed label="BlockRule"] - 242 -> 265 [style=dashed label="SequenceRule"] - 242 -> 266 [style=dashed label="UpdateRule"] - 242 -> 267 [style=dashed label="CallRule"] - 242 -> 268 [style=dashed label="WhileRule"] - 242 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 242 -> 270 [style=dashed label="CallExpression"] - 242 -> 271 [style=dashed label="DirectCallExpression"] - 242 -> 67 [style=dashed label="MethodCallExpression"] - 242 -> 68 [style=dashed label="LiteralCallExpression"] - 242 -> 69 [style=dashed label="IndirectCallExpression"] - 242 -> 77 [style=dashed label="Literal"] - 242 -> 78 [style=dashed label="UndefinedLiteral"] - 242 -> 79 [style=dashed label="BooleanLiteral"] - 242 -> 80 [style=dashed label="IntegerLiteral"] - 242 -> 81 [style=dashed label="RationalLiteral"] - 242 -> 82 [style=dashed label="DecimalLiteral"] - 242 -> 83 [style=dashed label="BinaryLiteral"] - 242 -> 84 [style=dashed label="StringLiteral"] - 242 -> 85 [style=dashed label="ReferenceLiteral"] - 242 -> 86 [style=dashed label="ListLiteral"] - 242 -> 87 [style=dashed label="RangeLiteral"] - 242 -> 88 [style=dashed label="TupleLiteral"] - 242 -> 89 [style=dashed label="RecordLiteral"] - 242 -> 90 [style=dashed label="Identifier"] - 242 -> 91 [style=dashed label="IdentifierPath"] - 243 [label="State 243\n\l 76 BlockRule: \"par\" • Rules \"endpar\"\l 78 | \"par\" • error \"endpar\"\l"] - 243 -> 326 [style=dotted] - 243 -> 242 [style=solid label="\"seq\""] - 243 -> 243 [style=solid label="\"par\""] - 243 -> 244 [style=solid label="\"skip\""] - 243 -> 245 [style=solid label="\"let\""] - 243 -> 246 [style=solid label="\"local\""] - 243 -> 8 [style=solid label="\"in\""] - 243 -> 247 [style=solid label="\"forall\""] - 243 -> 248 [style=solid label="\"choose\""] - 243 -> 249 [style=solid label="\"iterate\""] - 243 -> 250 [style=solid label="\"if\""] - 243 -> 251 [style=solid label="\"case\""] - 243 -> 252 [style=solid label="\"while\""] - 243 -> 46 [style=solid label="\"undef\""] - 243 -> 47 [style=solid label="\"false\""] - 243 -> 48 [style=solid label="\"true\""] - 243 -> 50 [style=solid label="\"+\""] - 243 -> 51 [style=solid label="\"-\""] - 243 -> 52 [style=solid label="\"(\""] - 243 -> 53 [style=solid label="\"[\""] - 243 -> 253 [style=solid label="\"{\""] - 243 -> 55 [style=solid label="\"@\""] - 243 -> 254 [style=solid label="\"{|\""] - 243 -> 56 [style=solid label="\"binary\""] - 243 -> 57 [style=solid label="\"hexadecimal\""] - 243 -> 58 [style=solid label="\"integer\""] - 243 -> 59 [style=solid label="\"rational\""] - 243 -> 60 [style=solid label="\"decimal\""] - 243 -> 61 [style=solid label="\"string\""] - 243 -> 9 [style=solid label="\"identifier\""] - 243 -> 327 [style=dashed label="Rules"] - 243 -> 325 [style=dashed label="Rule"] - 243 -> 256 [style=dashed label="SkipRule"] - 243 -> 257 [style=dashed label="ConditionalRule"] - 243 -> 258 [style=dashed label="CaseRule"] - 243 -> 259 [style=dashed label="LetRule"] - 243 -> 260 [style=dashed label="LocalRule"] - 243 -> 261 [style=dashed label="ForallRule"] - 243 -> 262 [style=dashed label="ChooseRule"] - 243 -> 263 [style=dashed label="IterateRule"] - 243 -> 264 [style=dashed label="BlockRule"] - 243 -> 265 [style=dashed label="SequenceRule"] - 243 -> 266 [style=dashed label="UpdateRule"] - 243 -> 267 [style=dashed label="CallRule"] - 243 -> 268 [style=dashed label="WhileRule"] - 243 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 243 -> 270 [style=dashed label="CallExpression"] - 243 -> 271 [style=dashed label="DirectCallExpression"] - 243 -> 67 [style=dashed label="MethodCallExpression"] - 243 -> 68 [style=dashed label="LiteralCallExpression"] - 243 -> 69 [style=dashed label="IndirectCallExpression"] - 243 -> 77 [style=dashed label="Literal"] - 243 -> 78 [style=dashed label="UndefinedLiteral"] - 243 -> 79 [style=dashed label="BooleanLiteral"] - 243 -> 80 [style=dashed label="IntegerLiteral"] - 243 -> 81 [style=dashed label="RationalLiteral"] - 243 -> 82 [style=dashed label="DecimalLiteral"] - 243 -> 83 [style=dashed label="BinaryLiteral"] - 243 -> 84 [style=dashed label="StringLiteral"] - 243 -> 85 [style=dashed label="ReferenceLiteral"] - 243 -> 86 [style=dashed label="ListLiteral"] - 243 -> 87 [style=dashed label="RangeLiteral"] - 243 -> 88 [style=dashed label="TupleLiteral"] - 243 -> 89 [style=dashed label="RecordLiteral"] - 243 -> 90 [style=dashed label="Identifier"] - 243 -> 91 [style=dashed label="IdentifierPath"] - 244 [label="State 244\n\l 59 SkipRule: \"skip\" •\l"] - 244 -> "244R59" [style=solid] - "244R59" [label="R59", fillcolor=3, shape=diamond, style=filled] - 245 [label="State 245\n\l 69 LetRule: \"let\" • VariableBindings \"in\" Rule\l"] - 245 -> 8 [style=solid label="\"in\""] - 245 -> 2 [style=solid label="\"[\""] - 245 -> 9 [style=solid label="\"identifier\""] - 245 -> 107 [style=dashed label="Identifier"] - 245 -> 108 [style=dashed label="Variable"] - 245 -> 109 [style=dashed label="TypedVariable"] - 245 -> 110 [style=dashed label="AttributedVariable"] - 245 -> 328 [style=dashed label="VariableBindings"] - 245 -> 112 [style=dashed label="VariableBinding"] - 245 -> 113 [style=dashed label="Attributes"] - 245 -> 6 [style=dashed label="Attribute"] - 246 [label="State 246\n\l 70 LocalRule: \"local\" • LocalFunctionDefinitions \"in\" Rule\l"] - 246 -> 329 [style=dotted] - 246 -> 8 [style=solid label="\"in\""] - 246 -> 2 [style=solid label="\"[\""] - 246 -> 9 [style=solid label="\"identifier\""] - 246 -> 330 [style=dashed label="Identifier"] - 246 -> 331 [style=dashed label="LocalFunctionDefinitions"] - 246 -> 332 [style=dashed label="AttributedLocalFunctionDefinition"] - 246 -> 333 [style=dashed label="LocalFunctionDefinition"] - 246 -> 334 [style=dashed label="Attributes"] - 246 -> 6 [style=dashed label="Attribute"] - 247 [label="State 247\n\l 71 ForallRule: \"forall\" • AttributedVariables \"in\" Term \"do\" Rule\l 72 | \"forall\" • AttributedVariables \"in\" Term \"with\" Term \"do\" Rule\l"] - 247 -> 8 [style=solid label="\"in\""] - 247 -> 2 [style=solid label="\"[\""] - 247 -> 9 [style=solid label="\"identifier\""] - 247 -> 107 [style=dashed label="Identifier"] - 247 -> 108 [style=dashed label="Variable"] - 247 -> 335 [style=dashed label="AttributedVariables"] - 247 -> 109 [style=dashed label="TypedVariable"] - 247 -> 115 [style=dashed label="AttributedVariable"] - 247 -> 113 [style=dashed label="Attributes"] - 247 -> 6 [style=dashed label="Attribute"] - 248 [label="State 248\n\l 73 ChooseRule: \"choose\" • AttributedVariables \"in\" Term \"do\" Rule\l"] + 184 -> 295 [style=dashed label="Identifier"] + 185 [label="State 185\n\l 45 StructureDefinition: \"structure\" Identifier \"=\" • \"{\" FunctionDefinition \"}\"\l"] + 185 -> 296 [style=solid label="\"{\""] + 186 [label="State 186\n\l 46 FeatureDefinition: \"feature\" Identifier \"=\" • \"{\" FeatureDeclarationsAndDefinitions \"}\"\l"] + 186 -> 297 [style=solid label="\"{\""] + 187 [label="State 187\n\l191 Types: Types • \",\" Type\l200 TupleType: \"(\" Types • \",\" Type \")\"\l"] + 187 -> 298 [style=solid label="\",\""] + 188 [label="State 188\n\l192 Types: Type •\l"] + 188 -> "188R192" [style=solid] + "188R192" [label="R192", fillcolor=3, shape=diamond, style=filled] + 189 [label="State 189\n\l223 IdentifierPath: Identifier •\l230 TypedVariable: Identifier • \":\" Type\l"] + 189 -> 198 [style=solid label="\":\""] + 189 -> "189R223" [style=solid] + "189R223" [label="R223", fillcolor=3, shape=diamond, style=filled] + 190 [label="State 190\n\l199 BasicType: IdentifierPath •\l202 TemplateType: IdentifierPath • \"<\" Types \">\"\l203 RelationType: IdentifierPath • \"<\" MaybeFunctionParameters \"->\" Type \">\"\l204 FixedSizedType: IdentifierPath • \"'\" Term\l222 IdentifierPath: IdentifierPath • \"::\" Identifier\l"] + 190 -> 169 [style=solid label="\"::\""] + 190 -> 195 [style=solid label="\"<\""] + 190 -> 196 [style=solid label="\"'\""] + 190 -> "190R199" [style=solid] + "190R199" [label="R199", fillcolor=3, shape=diamond, style=filled] + 191 [label="State 191\n\l201 RecordType: \"(\" TypedVariables • \",\" TypedVariable \")\"\l228 TypedVariables: TypedVariables • \",\" TypedVariable\l"] + 191 -> 299 [style=solid label="\",\""] + 192 [label="State 192\n\l229 TypedVariables: TypedVariable •\l"] + 192 -> "192R229" [style=solid] + "192R229" [label="R229", fillcolor=3, shape=diamond, style=filled] + 193 [label="State 193\n\l 53 ImplementationDefinition: \"implements\" Type \"=\" • \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 193 -> 300 [style=solid label="\"{\""] + 194 [label="State 194\n\l 52 ImplementationDefinition: \"implements\" IdentifierPath \"for\" • Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 194 -> 8 [style=solid label="\"in\""] + 194 -> 109 [style=solid label="\"(\""] + 194 -> 9 [style=solid label="\"identifier\""] + 194 -> 301 [style=dashed label="Type"] + 194 -> 111 [style=dashed label="BasicType"] + 194 -> 112 [style=dashed label="TupleType"] + 194 -> 113 [style=dashed label="RecordType"] + 194 -> 114 [style=dashed label="TemplateType"] + 194 -> 115 [style=dashed label="RelationType"] + 194 -> 116 [style=dashed label="FixedSizedType"] + 194 -> 94 [style=dashed label="Identifier"] + 194 -> 190 [style=dashed label="IdentifierPath"] + 195 [label="State 195\n\l202 TemplateType: IdentifierPath \"<\" • Types \">\"\l203 RelationType: IdentifierPath \"<\" • MaybeFunctionParameters \"->\" Type \">\"\l"] + 195 -> 8 [style=solid label="\"in\""] + 195 -> 109 [style=solid label="\"(\""] + 195 -> 9 [style=solid label="\"identifier\""] + 195 -> 302 [style=dashed label="Types"] + 195 -> 303 [style=dashed label="Type"] + 195 -> 111 [style=dashed label="BasicType"] + 195 -> 112 [style=dashed label="TupleType"] + 195 -> 113 [style=dashed label="RecordType"] + 195 -> 114 [style=dashed label="TemplateType"] + 195 -> 115 [style=dashed label="RelationType"] + 195 -> 116 [style=dashed label="FixedSizedType"] + 195 -> 304 [style=dashed label="FunctionParameters"] + 195 -> 305 [style=dashed label="MaybeFunctionParameters"] + 195 -> 94 [style=dashed label="Identifier"] + 195 -> 190 [style=dashed label="IdentifierPath"] + 195 -> "195R208" [style=solid] + "195R208" [label="R208", fillcolor=3, shape=diamond, style=filled] + 196 [label="State 196\n\l204 FixedSizedType: IdentifierPath \"'\" • Term\l"] + 196 -> 45 [style=solid label="\"let\""] + 196 -> 8 [style=solid label="\"in\""] + 196 -> 46 [style=solid label="\"forall\""] + 196 -> 47 [style=solid label="\"choose\""] + 196 -> 48 [style=solid label="\"if\""] + 196 -> 49 [style=solid label="\"exists\""] + 196 -> 50 [style=solid label="\"undef\""] + 196 -> 51 [style=solid label="\"false\""] + 196 -> 52 [style=solid label="\"true\""] + 196 -> 53 [style=solid label="\"not\""] + 196 -> 54 [style=solid label="\"+\""] + 196 -> 55 [style=solid label="\"-\""] + 196 -> 56 [style=solid label="\"(\""] + 196 -> 57 [style=solid label="\"[\""] + 196 -> 58 [style=solid label="\"|\""] + 196 -> 59 [style=solid label="\"@\""] + 196 -> 60 [style=solid label="\"binary\""] + 196 -> 61 [style=solid label="\"hexadecimal\""] + 196 -> 62 [style=solid label="\"integer\""] + 196 -> 63 [style=solid label="\"rational\""] + 196 -> 64 [style=solid label="\"decimal\""] + 196 -> 65 [style=solid label="\"string\""] + 196 -> 9 [style=solid label="\"identifier\""] + 196 -> 306 [style=dashed label="Term"] + 196 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 196 -> 68 [style=dashed label="OperatorExpression"] + 196 -> 69 [style=dashed label="CallExpression"] + 196 -> 70 [style=dashed label="DirectCallExpression"] + 196 -> 71 [style=dashed label="MethodCallExpression"] + 196 -> 72 [style=dashed label="LiteralCallExpression"] + 196 -> 73 [style=dashed label="IndirectCallExpression"] + 196 -> 74 [style=dashed label="TypeCastingExpression"] + 196 -> 75 [style=dashed label="LetExpression"] + 196 -> 76 [style=dashed label="ConditionalExpression"] + 196 -> 77 [style=dashed label="ChooseExpression"] + 196 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 196 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 196 -> 80 [style=dashed label="CardinalityExpression"] + 196 -> 81 [style=dashed label="Literal"] + 196 -> 82 [style=dashed label="UndefinedLiteral"] + 196 -> 83 [style=dashed label="BooleanLiteral"] + 196 -> 84 [style=dashed label="IntegerLiteral"] + 196 -> 85 [style=dashed label="RationalLiteral"] + 196 -> 86 [style=dashed label="DecimalLiteral"] + 196 -> 87 [style=dashed label="BinaryLiteral"] + 196 -> 88 [style=dashed label="StringLiteral"] + 196 -> 89 [style=dashed label="ReferenceLiteral"] + 196 -> 90 [style=dashed label="ListLiteral"] + 196 -> 91 [style=dashed label="RangeLiteral"] + 196 -> 92 [style=dashed label="TupleLiteral"] + 196 -> 93 [style=dashed label="RecordLiteral"] + 196 -> 94 [style=dashed label="Identifier"] + 196 -> 95 [style=dashed label="IdentifierPath"] + 197 [label="State 197\n\l 33 FunctionDefinition: \"function\" Identifier \":\" • MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] + 197 -> 8 [style=solid label="\"in\""] + 197 -> 109 [style=solid label="\"(\""] + 197 -> 9 [style=solid label="\"identifier\""] + 197 -> 307 [style=dashed label="Type"] + 197 -> 111 [style=dashed label="BasicType"] + 197 -> 112 [style=dashed label="TupleType"] + 197 -> 113 [style=dashed label="RecordType"] + 197 -> 114 [style=dashed label="TemplateType"] + 197 -> 115 [style=dashed label="RelationType"] + 197 -> 116 [style=dashed label="FixedSizedType"] + 197 -> 304 [style=dashed label="FunctionParameters"] + 197 -> 308 [style=dashed label="MaybeFunctionParameters"] + 197 -> 94 [style=dashed label="Identifier"] + 197 -> 190 [style=dashed label="IdentifierPath"] + 197 -> "197R208" [style=solid] + "197R208" [label="R208", fillcolor=3, shape=diamond, style=filled] + 198 [label="State 198\n\l230 TypedVariable: Identifier \":\" • Type\l"] + 198 -> 8 [style=solid label="\"in\""] + 198 -> 109 [style=solid label="\"(\""] + 198 -> 9 [style=solid label="\"identifier\""] + 198 -> 309 [style=dashed label="Type"] + 198 -> 111 [style=dashed label="BasicType"] + 198 -> 112 [style=dashed label="TupleType"] + 198 -> 113 [style=dashed label="RecordType"] + 198 -> 114 [style=dashed label="TemplateType"] + 198 -> 115 [style=dashed label="RelationType"] + 198 -> 116 [style=dashed label="FixedSizedType"] + 198 -> 94 [style=dashed label="Identifier"] + 198 -> 190 [style=dashed label="IdentifierPath"] + 199 [label="State 199\n\l237 VariableBinding: AttributedVariable \"=\" • Term\l"] + 199 -> 45 [style=solid label="\"let\""] + 199 -> 8 [style=solid label="\"in\""] + 199 -> 46 [style=solid label="\"forall\""] + 199 -> 47 [style=solid label="\"choose\""] + 199 -> 48 [style=solid label="\"if\""] + 199 -> 49 [style=solid label="\"exists\""] + 199 -> 50 [style=solid label="\"undef\""] + 199 -> 51 [style=solid label="\"false\""] + 199 -> 52 [style=solid label="\"true\""] + 199 -> 53 [style=solid label="\"not\""] + 199 -> 54 [style=solid label="\"+\""] + 199 -> 55 [style=solid label="\"-\""] + 199 -> 56 [style=solid label="\"(\""] + 199 -> 57 [style=solid label="\"[\""] + 199 -> 58 [style=solid label="\"|\""] + 199 -> 59 [style=solid label="\"@\""] + 199 -> 60 [style=solid label="\"binary\""] + 199 -> 61 [style=solid label="\"hexadecimal\""] + 199 -> 62 [style=solid label="\"integer\""] + 199 -> 63 [style=solid label="\"rational\""] + 199 -> 64 [style=solid label="\"decimal\""] + 199 -> 65 [style=solid label="\"string\""] + 199 -> 9 [style=solid label="\"identifier\""] + 199 -> 310 [style=dashed label="Term"] + 199 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 199 -> 68 [style=dashed label="OperatorExpression"] + 199 -> 69 [style=dashed label="CallExpression"] + 199 -> 70 [style=dashed label="DirectCallExpression"] + 199 -> 71 [style=dashed label="MethodCallExpression"] + 199 -> 72 [style=dashed label="LiteralCallExpression"] + 199 -> 73 [style=dashed label="IndirectCallExpression"] + 199 -> 74 [style=dashed label="TypeCastingExpression"] + 199 -> 75 [style=dashed label="LetExpression"] + 199 -> 76 [style=dashed label="ConditionalExpression"] + 199 -> 77 [style=dashed label="ChooseExpression"] + 199 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 199 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 199 -> 80 [style=dashed label="CardinalityExpression"] + 199 -> 81 [style=dashed label="Literal"] + 199 -> 82 [style=dashed label="UndefinedLiteral"] + 199 -> 83 [style=dashed label="BooleanLiteral"] + 199 -> 84 [style=dashed label="IntegerLiteral"] + 199 -> 85 [style=dashed label="RationalLiteral"] + 199 -> 86 [style=dashed label="DecimalLiteral"] + 199 -> 87 [style=dashed label="BinaryLiteral"] + 199 -> 88 [style=dashed label="StringLiteral"] + 199 -> 89 [style=dashed label="ReferenceLiteral"] + 199 -> 90 [style=dashed label="ListLiteral"] + 199 -> 91 [style=dashed label="RangeLiteral"] + 199 -> 92 [style=dashed label="TupleLiteral"] + 199 -> 93 [style=dashed label="RecordLiteral"] + 199 -> 94 [style=dashed label="Identifier"] + 199 -> 95 [style=dashed label="IdentifierPath"] + 200 [label="State 200\n\l154 LetExpression: \"let\" VariableBindings \"in\" • Term\l"] + 200 -> 45 [style=solid label="\"let\""] + 200 -> 8 [style=solid label="\"in\""] + 200 -> 46 [style=solid label="\"forall\""] + 200 -> 47 [style=solid label="\"choose\""] + 200 -> 48 [style=solid label="\"if\""] + 200 -> 49 [style=solid label="\"exists\""] + 200 -> 50 [style=solid label="\"undef\""] + 200 -> 51 [style=solid label="\"false\""] + 200 -> 52 [style=solid label="\"true\""] + 200 -> 53 [style=solid label="\"not\""] + 200 -> 54 [style=solid label="\"+\""] + 200 -> 55 [style=solid label="\"-\""] + 200 -> 56 [style=solid label="\"(\""] + 200 -> 57 [style=solid label="\"[\""] + 200 -> 58 [style=solid label="\"|\""] + 200 -> 59 [style=solid label="\"@\""] + 200 -> 60 [style=solid label="\"binary\""] + 200 -> 61 [style=solid label="\"hexadecimal\""] + 200 -> 62 [style=solid label="\"integer\""] + 200 -> 63 [style=solid label="\"rational\""] + 200 -> 64 [style=solid label="\"decimal\""] + 200 -> 65 [style=solid label="\"string\""] + 200 -> 9 [style=solid label="\"identifier\""] + 200 -> 311 [style=dashed label="Term"] + 200 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 200 -> 68 [style=dashed label="OperatorExpression"] + 200 -> 69 [style=dashed label="CallExpression"] + 200 -> 70 [style=dashed label="DirectCallExpression"] + 200 -> 71 [style=dashed label="MethodCallExpression"] + 200 -> 72 [style=dashed label="LiteralCallExpression"] + 200 -> 73 [style=dashed label="IndirectCallExpression"] + 200 -> 74 [style=dashed label="TypeCastingExpression"] + 200 -> 75 [style=dashed label="LetExpression"] + 200 -> 76 [style=dashed label="ConditionalExpression"] + 200 -> 77 [style=dashed label="ChooseExpression"] + 200 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 200 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 200 -> 80 [style=dashed label="CardinalityExpression"] + 200 -> 81 [style=dashed label="Literal"] + 200 -> 82 [style=dashed label="UndefinedLiteral"] + 200 -> 83 [style=dashed label="BooleanLiteral"] + 200 -> 84 [style=dashed label="IntegerLiteral"] + 200 -> 85 [style=dashed label="RationalLiteral"] + 200 -> 86 [style=dashed label="DecimalLiteral"] + 200 -> 87 [style=dashed label="BinaryLiteral"] + 200 -> 88 [style=dashed label="StringLiteral"] + 200 -> 89 [style=dashed label="ReferenceLiteral"] + 200 -> 90 [style=dashed label="ListLiteral"] + 200 -> 91 [style=dashed label="RangeLiteral"] + 200 -> 92 [style=dashed label="TupleLiteral"] + 200 -> 93 [style=dashed label="RecordLiteral"] + 200 -> 94 [style=dashed label="Identifier"] + 200 -> 95 [style=dashed label="IdentifierPath"] + 201 [label="State 201\n\l235 VariableBindings: VariableBindings \",\" • VariableBinding\l"] + 201 -> 8 [style=solid label="\"in\""] + 201 -> 2 [style=solid label="\"[\""] + 201 -> 9 [style=solid label="\"identifier\""] + 201 -> 121 [style=dashed label="Identifier"] + 201 -> 122 [style=dashed label="Variable"] + 201 -> 123 [style=dashed label="TypedVariable"] + 201 -> 124 [style=dashed label="AttributedVariable"] + 201 -> 312 [style=dashed label="VariableBinding"] + 201 -> 127 [style=dashed label="Attributes"] + 201 -> 6 [style=dashed label="Attribute"] + 202 [label="State 202\n\l231 AttributedVariable: Attributes Variable •\l"] + 202 -> "202R231" [style=solid] + "202R231" [label="R231", fillcolor=3, shape=diamond, style=filled] + 203 [label="State 203\n\l157 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" • Term \"holds\" Term\l"] + 203 -> 45 [style=solid label="\"let\""] + 203 -> 8 [style=solid label="\"in\""] + 203 -> 46 [style=solid label="\"forall\""] + 203 -> 47 [style=solid label="\"choose\""] + 203 -> 48 [style=solid label="\"if\""] + 203 -> 49 [style=solid label="\"exists\""] + 203 -> 50 [style=solid label="\"undef\""] + 203 -> 51 [style=solid label="\"false\""] + 203 -> 52 [style=solid label="\"true\""] + 203 -> 53 [style=solid label="\"not\""] + 203 -> 54 [style=solid label="\"+\""] + 203 -> 55 [style=solid label="\"-\""] + 203 -> 56 [style=solid label="\"(\""] + 203 -> 57 [style=solid label="\"[\""] + 203 -> 58 [style=solid label="\"|\""] + 203 -> 59 [style=solid label="\"@\""] + 203 -> 60 [style=solid label="\"binary\""] + 203 -> 61 [style=solid label="\"hexadecimal\""] + 203 -> 62 [style=solid label="\"integer\""] + 203 -> 63 [style=solid label="\"rational\""] + 203 -> 64 [style=solid label="\"decimal\""] + 203 -> 65 [style=solid label="\"string\""] + 203 -> 9 [style=solid label="\"identifier\""] + 203 -> 313 [style=dashed label="Term"] + 203 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 203 -> 68 [style=dashed label="OperatorExpression"] + 203 -> 69 [style=dashed label="CallExpression"] + 203 -> 70 [style=dashed label="DirectCallExpression"] + 203 -> 71 [style=dashed label="MethodCallExpression"] + 203 -> 72 [style=dashed label="LiteralCallExpression"] + 203 -> 73 [style=dashed label="IndirectCallExpression"] + 203 -> 74 [style=dashed label="TypeCastingExpression"] + 203 -> 75 [style=dashed label="LetExpression"] + 203 -> 76 [style=dashed label="ConditionalExpression"] + 203 -> 77 [style=dashed label="ChooseExpression"] + 203 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 203 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 203 -> 80 [style=dashed label="CardinalityExpression"] + 203 -> 81 [style=dashed label="Literal"] + 203 -> 82 [style=dashed label="UndefinedLiteral"] + 203 -> 83 [style=dashed label="BooleanLiteral"] + 203 -> 84 [style=dashed label="IntegerLiteral"] + 203 -> 85 [style=dashed label="RationalLiteral"] + 203 -> 86 [style=dashed label="DecimalLiteral"] + 203 -> 87 [style=dashed label="BinaryLiteral"] + 203 -> 88 [style=dashed label="StringLiteral"] + 203 -> 89 [style=dashed label="ReferenceLiteral"] + 203 -> 90 [style=dashed label="ListLiteral"] + 203 -> 91 [style=dashed label="RangeLiteral"] + 203 -> 92 [style=dashed label="TupleLiteral"] + 203 -> 93 [style=dashed label="RecordLiteral"] + 203 -> 94 [style=dashed label="Identifier"] + 203 -> 95 [style=dashed label="IdentifierPath"] + 204 [label="State 204\n\l226 AttributedVariables: AttributedVariables \",\" • AttributedVariable\l"] + 204 -> 8 [style=solid label="\"in\""] + 204 -> 2 [style=solid label="\"[\""] + 204 -> 9 [style=solid label="\"identifier\""] + 204 -> 121 [style=dashed label="Identifier"] + 204 -> 122 [style=dashed label="Variable"] + 204 -> 123 [style=dashed label="TypedVariable"] + 204 -> 314 [style=dashed label="AttributedVariable"] + 204 -> 127 [style=dashed label="Attributes"] + 204 -> 6 [style=dashed label="Attribute"] + 205 [label="State 205\n\l156 ChooseExpression: \"choose\" AttributedVariables \"in\" • Term \"do\" Term\l"] + 205 -> 45 [style=solid label="\"let\""] + 205 -> 8 [style=solid label="\"in\""] + 205 -> 46 [style=solid label="\"forall\""] + 205 -> 47 [style=solid label="\"choose\""] + 205 -> 48 [style=solid label="\"if\""] + 205 -> 49 [style=solid label="\"exists\""] + 205 -> 50 [style=solid label="\"undef\""] + 205 -> 51 [style=solid label="\"false\""] + 205 -> 52 [style=solid label="\"true\""] + 205 -> 53 [style=solid label="\"not\""] + 205 -> 54 [style=solid label="\"+\""] + 205 -> 55 [style=solid label="\"-\""] + 205 -> 56 [style=solid label="\"(\""] + 205 -> 57 [style=solid label="\"[\""] + 205 -> 58 [style=solid label="\"|\""] + 205 -> 59 [style=solid label="\"@\""] + 205 -> 60 [style=solid label="\"binary\""] + 205 -> 61 [style=solid label="\"hexadecimal\""] + 205 -> 62 [style=solid label="\"integer\""] + 205 -> 63 [style=solid label="\"rational\""] + 205 -> 64 [style=solid label="\"decimal\""] + 205 -> 65 [style=solid label="\"string\""] + 205 -> 9 [style=solid label="\"identifier\""] + 205 -> 315 [style=dashed label="Term"] + 205 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 205 -> 68 [style=dashed label="OperatorExpression"] + 205 -> 69 [style=dashed label="CallExpression"] + 205 -> 70 [style=dashed label="DirectCallExpression"] + 205 -> 71 [style=dashed label="MethodCallExpression"] + 205 -> 72 [style=dashed label="LiteralCallExpression"] + 205 -> 73 [style=dashed label="IndirectCallExpression"] + 205 -> 74 [style=dashed label="TypeCastingExpression"] + 205 -> 75 [style=dashed label="LetExpression"] + 205 -> 76 [style=dashed label="ConditionalExpression"] + 205 -> 77 [style=dashed label="ChooseExpression"] + 205 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 205 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 205 -> 80 [style=dashed label="CardinalityExpression"] + 205 -> 81 [style=dashed label="Literal"] + 205 -> 82 [style=dashed label="UndefinedLiteral"] + 205 -> 83 [style=dashed label="BooleanLiteral"] + 205 -> 84 [style=dashed label="IntegerLiteral"] + 205 -> 85 [style=dashed label="RationalLiteral"] + 205 -> 86 [style=dashed label="DecimalLiteral"] + 205 -> 87 [style=dashed label="BinaryLiteral"] + 205 -> 88 [style=dashed label="StringLiteral"] + 205 -> 89 [style=dashed label="ReferenceLiteral"] + 205 -> 90 [style=dashed label="ListLiteral"] + 205 -> 91 [style=dashed label="RangeLiteral"] + 205 -> 92 [style=dashed label="TupleLiteral"] + 205 -> 93 [style=dashed label="RecordLiteral"] + 205 -> 94 [style=dashed label="Identifier"] + 205 -> 95 [style=dashed label="IdentifierPath"] + 206 [label="State 206\n\l155 ConditionalExpression: \"if\" Term \"then\" • Term \"else\" Term\l"] + 206 -> 45 [style=solid label="\"let\""] + 206 -> 8 [style=solid label="\"in\""] + 206 -> 46 [style=solid label="\"forall\""] + 206 -> 47 [style=solid label="\"choose\""] + 206 -> 48 [style=solid label="\"if\""] + 206 -> 49 [style=solid label="\"exists\""] + 206 -> 50 [style=solid label="\"undef\""] + 206 -> 51 [style=solid label="\"false\""] + 206 -> 52 [style=solid label="\"true\""] + 206 -> 53 [style=solid label="\"not\""] + 206 -> 54 [style=solid label="\"+\""] + 206 -> 55 [style=solid label="\"-\""] + 206 -> 56 [style=solid label="\"(\""] + 206 -> 57 [style=solid label="\"[\""] + 206 -> 58 [style=solid label="\"|\""] + 206 -> 59 [style=solid label="\"@\""] + 206 -> 60 [style=solid label="\"binary\""] + 206 -> 61 [style=solid label="\"hexadecimal\""] + 206 -> 62 [style=solid label="\"integer\""] + 206 -> 63 [style=solid label="\"rational\""] + 206 -> 64 [style=solid label="\"decimal\""] + 206 -> 65 [style=solid label="\"string\""] + 206 -> 9 [style=solid label="\"identifier\""] + 206 -> 316 [style=dashed label="Term"] + 206 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 206 -> 68 [style=dashed label="OperatorExpression"] + 206 -> 69 [style=dashed label="CallExpression"] + 206 -> 70 [style=dashed label="DirectCallExpression"] + 206 -> 71 [style=dashed label="MethodCallExpression"] + 206 -> 72 [style=dashed label="LiteralCallExpression"] + 206 -> 73 [style=dashed label="IndirectCallExpression"] + 206 -> 74 [style=dashed label="TypeCastingExpression"] + 206 -> 75 [style=dashed label="LetExpression"] + 206 -> 76 [style=dashed label="ConditionalExpression"] + 206 -> 77 [style=dashed label="ChooseExpression"] + 206 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 206 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 206 -> 80 [style=dashed label="CardinalityExpression"] + 206 -> 81 [style=dashed label="Literal"] + 206 -> 82 [style=dashed label="UndefinedLiteral"] + 206 -> 83 [style=dashed label="BooleanLiteral"] + 206 -> 84 [style=dashed label="IntegerLiteral"] + 206 -> 85 [style=dashed label="RationalLiteral"] + 206 -> 86 [style=dashed label="DecimalLiteral"] + 206 -> 87 [style=dashed label="BinaryLiteral"] + 206 -> 88 [style=dashed label="StringLiteral"] + 206 -> 89 [style=dashed label="ReferenceLiteral"] + 206 -> 90 [style=dashed label="ListLiteral"] + 206 -> 91 [style=dashed label="RangeLiteral"] + 206 -> 92 [style=dashed label="TupleLiteral"] + 206 -> 93 [style=dashed label="RecordLiteral"] + 206 -> 94 [style=dashed label="Identifier"] + 206 -> 95 [style=dashed label="IdentifierPath"] + 207 [label="State 207\n\l158 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" • Term \"with\" Term\l"] + 207 -> 45 [style=solid label="\"let\""] + 207 -> 8 [style=solid label="\"in\""] + 207 -> 46 [style=solid label="\"forall\""] + 207 -> 47 [style=solid label="\"choose\""] + 207 -> 48 [style=solid label="\"if\""] + 207 -> 49 [style=solid label="\"exists\""] + 207 -> 50 [style=solid label="\"undef\""] + 207 -> 51 [style=solid label="\"false\""] + 207 -> 52 [style=solid label="\"true\""] + 207 -> 53 [style=solid label="\"not\""] + 207 -> 54 [style=solid label="\"+\""] + 207 -> 55 [style=solid label="\"-\""] + 207 -> 56 [style=solid label="\"(\""] + 207 -> 57 [style=solid label="\"[\""] + 207 -> 58 [style=solid label="\"|\""] + 207 -> 59 [style=solid label="\"@\""] + 207 -> 60 [style=solid label="\"binary\""] + 207 -> 61 [style=solid label="\"hexadecimal\""] + 207 -> 62 [style=solid label="\"integer\""] + 207 -> 63 [style=solid label="\"rational\""] + 207 -> 64 [style=solid label="\"decimal\""] + 207 -> 65 [style=solid label="\"string\""] + 207 -> 9 [style=solid label="\"identifier\""] + 207 -> 317 [style=dashed label="Term"] + 207 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 207 -> 68 [style=dashed label="OperatorExpression"] + 207 -> 69 [style=dashed label="CallExpression"] + 207 -> 70 [style=dashed label="DirectCallExpression"] + 207 -> 71 [style=dashed label="MethodCallExpression"] + 207 -> 72 [style=dashed label="LiteralCallExpression"] + 207 -> 73 [style=dashed label="IndirectCallExpression"] + 207 -> 74 [style=dashed label="TypeCastingExpression"] + 207 -> 75 [style=dashed label="LetExpression"] + 207 -> 76 [style=dashed label="ConditionalExpression"] + 207 -> 77 [style=dashed label="ChooseExpression"] + 207 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 207 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 207 -> 80 [style=dashed label="CardinalityExpression"] + 207 -> 81 [style=dashed label="Literal"] + 207 -> 82 [style=dashed label="UndefinedLiteral"] + 207 -> 83 [style=dashed label="BooleanLiteral"] + 207 -> 84 [style=dashed label="IntegerLiteral"] + 207 -> 85 [style=dashed label="RationalLiteral"] + 207 -> 86 [style=dashed label="DecimalLiteral"] + 207 -> 87 [style=dashed label="BinaryLiteral"] + 207 -> 88 [style=dashed label="StringLiteral"] + 207 -> 89 [style=dashed label="ReferenceLiteral"] + 207 -> 90 [style=dashed label="ListLiteral"] + 207 -> 91 [style=dashed label="RangeLiteral"] + 207 -> 92 [style=dashed label="TupleLiteral"] + 207 -> 93 [style=dashed label="RecordLiteral"] + 207 -> 94 [style=dashed label="Identifier"] + 207 -> 95 [style=dashed label="IdentifierPath"] + 208 [label="State 208\n\l114 SimpleOrClaspedTerm: \"(\" error \")\" •\l"] + 208 -> "208R114" [style=solid] + "208R114" [label="R114", fillcolor=3, shape=diamond, style=filled] + 209 [label="State 209\n\l102 Terms: Terms \",\" • Term\l186 TupleLiteral: \"(\" Terms \",\" • Term \")\"\l"] + 209 -> 45 [style=solid label="\"let\""] + 209 -> 8 [style=solid label="\"in\""] + 209 -> 46 [style=solid label="\"forall\""] + 209 -> 47 [style=solid label="\"choose\""] + 209 -> 48 [style=solid label="\"if\""] + 209 -> 49 [style=solid label="\"exists\""] + 209 -> 50 [style=solid label="\"undef\""] + 209 -> 51 [style=solid label="\"false\""] + 209 -> 52 [style=solid label="\"true\""] + 209 -> 53 [style=solid label="\"not\""] + 209 -> 54 [style=solid label="\"+\""] + 209 -> 55 [style=solid label="\"-\""] + 209 -> 56 [style=solid label="\"(\""] + 209 -> 57 [style=solid label="\"[\""] + 209 -> 58 [style=solid label="\"|\""] + 209 -> 59 [style=solid label="\"@\""] + 209 -> 60 [style=solid label="\"binary\""] + 209 -> 61 [style=solid label="\"hexadecimal\""] + 209 -> 62 [style=solid label="\"integer\""] + 209 -> 63 [style=solid label="\"rational\""] + 209 -> 64 [style=solid label="\"decimal\""] + 209 -> 65 [style=solid label="\"string\""] + 209 -> 9 [style=solid label="\"identifier\""] + 209 -> 318 [style=dashed label="Term"] + 209 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 209 -> 68 [style=dashed label="OperatorExpression"] + 209 -> 69 [style=dashed label="CallExpression"] + 209 -> 70 [style=dashed label="DirectCallExpression"] + 209 -> 71 [style=dashed label="MethodCallExpression"] + 209 -> 72 [style=dashed label="LiteralCallExpression"] + 209 -> 73 [style=dashed label="IndirectCallExpression"] + 209 -> 74 [style=dashed label="TypeCastingExpression"] + 209 -> 75 [style=dashed label="LetExpression"] + 209 -> 76 [style=dashed label="ConditionalExpression"] + 209 -> 77 [style=dashed label="ChooseExpression"] + 209 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 209 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 209 -> 80 [style=dashed label="CardinalityExpression"] + 209 -> 81 [style=dashed label="Literal"] + 209 -> 82 [style=dashed label="UndefinedLiteral"] + 209 -> 83 [style=dashed label="BooleanLiteral"] + 209 -> 84 [style=dashed label="IntegerLiteral"] + 209 -> 85 [style=dashed label="RationalLiteral"] + 209 -> 86 [style=dashed label="DecimalLiteral"] + 209 -> 87 [style=dashed label="BinaryLiteral"] + 209 -> 88 [style=dashed label="StringLiteral"] + 209 -> 89 [style=dashed label="ReferenceLiteral"] + 209 -> 90 [style=dashed label="ListLiteral"] + 209 -> 91 [style=dashed label="RangeLiteral"] + 209 -> 92 [style=dashed label="TupleLiteral"] + 209 -> 93 [style=dashed label="RecordLiteral"] + 209 -> 94 [style=dashed label="Identifier"] + 209 -> 95 [style=dashed label="IdentifierPath"] + 210 [label="State 210\n\l113 SimpleOrClaspedTerm: \"(\" Term \")\" •\l"] + 210 -> "210R113" [style=solid] + "210R113" [label="R113", fillcolor=3, shape=diamond, style=filled] + 211 [label="State 211\n\l187 RecordLiteral: \"(\" Assignments \")\" •\l"] + 211 -> "211R187" [style=solid] + "211R187" [label="R187", fillcolor=3, shape=diamond, style=filled] + 212 [label="State 212\n\l188 Assignments: Assignments \",\" • Assignment\l"] + 212 -> 8 [style=solid label="\"in\""] + 212 -> 9 [style=solid label="\"identifier\""] + 212 -> 319 [style=dashed label="Assignment"] + 212 -> 320 [style=dashed label="Identifier"] + 213 [label="State 213\n\l190 Assignment: Identifier \":\" • Term\l"] + 213 -> 45 [style=solid label="\"let\""] + 213 -> 8 [style=solid label="\"in\""] + 213 -> 46 [style=solid label="\"forall\""] + 213 -> 47 [style=solid label="\"choose\""] + 213 -> 48 [style=solid label="\"if\""] + 213 -> 49 [style=solid label="\"exists\""] + 213 -> 50 [style=solid label="\"undef\""] + 213 -> 51 [style=solid label="\"false\""] + 213 -> 52 [style=solid label="\"true\""] + 213 -> 53 [style=solid label="\"not\""] + 213 -> 54 [style=solid label="\"+\""] + 213 -> 55 [style=solid label="\"-\""] + 213 -> 56 [style=solid label="\"(\""] + 213 -> 57 [style=solid label="\"[\""] + 213 -> 58 [style=solid label="\"|\""] + 213 -> 59 [style=solid label="\"@\""] + 213 -> 60 [style=solid label="\"binary\""] + 213 -> 61 [style=solid label="\"hexadecimal\""] + 213 -> 62 [style=solid label="\"integer\""] + 213 -> 63 [style=solid label="\"rational\""] + 213 -> 64 [style=solid label="\"decimal\""] + 213 -> 65 [style=solid label="\"string\""] + 213 -> 9 [style=solid label="\"identifier\""] + 213 -> 321 [style=dashed label="Term"] + 213 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 213 -> 68 [style=dashed label="OperatorExpression"] + 213 -> 69 [style=dashed label="CallExpression"] + 213 -> 70 [style=dashed label="DirectCallExpression"] + 213 -> 71 [style=dashed label="MethodCallExpression"] + 213 -> 72 [style=dashed label="LiteralCallExpression"] + 213 -> 73 [style=dashed label="IndirectCallExpression"] + 213 -> 74 [style=dashed label="TypeCastingExpression"] + 213 -> 75 [style=dashed label="LetExpression"] + 213 -> 76 [style=dashed label="ConditionalExpression"] + 213 -> 77 [style=dashed label="ChooseExpression"] + 213 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 213 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 213 -> 80 [style=dashed label="CardinalityExpression"] + 213 -> 81 [style=dashed label="Literal"] + 213 -> 82 [style=dashed label="UndefinedLiteral"] + 213 -> 83 [style=dashed label="BooleanLiteral"] + 213 -> 84 [style=dashed label="IntegerLiteral"] + 213 -> 85 [style=dashed label="RationalLiteral"] + 213 -> 86 [style=dashed label="DecimalLiteral"] + 213 -> 87 [style=dashed label="BinaryLiteral"] + 213 -> 88 [style=dashed label="StringLiteral"] + 213 -> 89 [style=dashed label="ReferenceLiteral"] + 213 -> 90 [style=dashed label="ListLiteral"] + 213 -> 91 [style=dashed label="RangeLiteral"] + 213 -> 92 [style=dashed label="TupleLiteral"] + 213 -> 93 [style=dashed label="RecordLiteral"] + 213 -> 94 [style=dashed label="Identifier"] + 213 -> 95 [style=dashed label="IdentifierPath"] + 214 [label="State 214\n\l184 ListLiteral: \"[\" error \"]\" •\l"] + 214 -> "214R184" [style=solid] + "214R184" [label="R184", fillcolor=3, shape=diamond, style=filled] + 215 [label="State 215\n\l183 ListLiteral: \"[\" Terms \"]\" •\l"] + 215 -> "215R183" [style=solid] + "215R183" [label="R183", fillcolor=3, shape=diamond, style=filled] + 216 [label="State 216\n\l102 Terms: Terms \",\" • Term\l"] + 216 -> 45 [style=solid label="\"let\""] + 216 -> 8 [style=solid label="\"in\""] + 216 -> 46 [style=solid label="\"forall\""] + 216 -> 47 [style=solid label="\"choose\""] + 216 -> 48 [style=solid label="\"if\""] + 216 -> 49 [style=solid label="\"exists\""] + 216 -> 50 [style=solid label="\"undef\""] + 216 -> 51 [style=solid label="\"false\""] + 216 -> 52 [style=solid label="\"true\""] + 216 -> 53 [style=solid label="\"not\""] + 216 -> 54 [style=solid label="\"+\""] + 216 -> 55 [style=solid label="\"-\""] + 216 -> 56 [style=solid label="\"(\""] + 216 -> 57 [style=solid label="\"[\""] + 216 -> 58 [style=solid label="\"|\""] + 216 -> 59 [style=solid label="\"@\""] + 216 -> 60 [style=solid label="\"binary\""] + 216 -> 61 [style=solid label="\"hexadecimal\""] + 216 -> 62 [style=solid label="\"integer\""] + 216 -> 63 [style=solid label="\"rational\""] + 216 -> 64 [style=solid label="\"decimal\""] + 216 -> 65 [style=solid label="\"string\""] + 216 -> 9 [style=solid label="\"identifier\""] + 216 -> 322 [style=dashed label="Term"] + 216 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 216 -> 68 [style=dashed label="OperatorExpression"] + 216 -> 69 [style=dashed label="CallExpression"] + 216 -> 70 [style=dashed label="DirectCallExpression"] + 216 -> 71 [style=dashed label="MethodCallExpression"] + 216 -> 72 [style=dashed label="LiteralCallExpression"] + 216 -> 73 [style=dashed label="IndirectCallExpression"] + 216 -> 74 [style=dashed label="TypeCastingExpression"] + 216 -> 75 [style=dashed label="LetExpression"] + 216 -> 76 [style=dashed label="ConditionalExpression"] + 216 -> 77 [style=dashed label="ChooseExpression"] + 216 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 216 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 216 -> 80 [style=dashed label="CardinalityExpression"] + 216 -> 81 [style=dashed label="Literal"] + 216 -> 82 [style=dashed label="UndefinedLiteral"] + 216 -> 83 [style=dashed label="BooleanLiteral"] + 216 -> 84 [style=dashed label="IntegerLiteral"] + 216 -> 85 [style=dashed label="RationalLiteral"] + 216 -> 86 [style=dashed label="DecimalLiteral"] + 216 -> 87 [style=dashed label="BinaryLiteral"] + 216 -> 88 [style=dashed label="StringLiteral"] + 216 -> 89 [style=dashed label="ReferenceLiteral"] + 216 -> 90 [style=dashed label="ListLiteral"] + 216 -> 91 [style=dashed label="RangeLiteral"] + 216 -> 92 [style=dashed label="TupleLiteral"] + 216 -> 93 [style=dashed label="RecordLiteral"] + 216 -> 94 [style=dashed label="Identifier"] + 216 -> 95 [style=dashed label="IdentifierPath"] + 217 [label="State 217\n\l185 RangeLiteral: \"[\" Term \"..\" • Term \"]\"\l"] + 217 -> 45 [style=solid label="\"let\""] + 217 -> 8 [style=solid label="\"in\""] + 217 -> 46 [style=solid label="\"forall\""] + 217 -> 47 [style=solid label="\"choose\""] + 217 -> 48 [style=solid label="\"if\""] + 217 -> 49 [style=solid label="\"exists\""] + 217 -> 50 [style=solid label="\"undef\""] + 217 -> 51 [style=solid label="\"false\""] + 217 -> 52 [style=solid label="\"true\""] + 217 -> 53 [style=solid label="\"not\""] + 217 -> 54 [style=solid label="\"+\""] + 217 -> 55 [style=solid label="\"-\""] + 217 -> 56 [style=solid label="\"(\""] + 217 -> 57 [style=solid label="\"[\""] + 217 -> 58 [style=solid label="\"|\""] + 217 -> 59 [style=solid label="\"@\""] + 217 -> 60 [style=solid label="\"binary\""] + 217 -> 61 [style=solid label="\"hexadecimal\""] + 217 -> 62 [style=solid label="\"integer\""] + 217 -> 63 [style=solid label="\"rational\""] + 217 -> 64 [style=solid label="\"decimal\""] + 217 -> 65 [style=solid label="\"string\""] + 217 -> 9 [style=solid label="\"identifier\""] + 217 -> 323 [style=dashed label="Term"] + 217 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 217 -> 68 [style=dashed label="OperatorExpression"] + 217 -> 69 [style=dashed label="CallExpression"] + 217 -> 70 [style=dashed label="DirectCallExpression"] + 217 -> 71 [style=dashed label="MethodCallExpression"] + 217 -> 72 [style=dashed label="LiteralCallExpression"] + 217 -> 73 [style=dashed label="IndirectCallExpression"] + 217 -> 74 [style=dashed label="TypeCastingExpression"] + 217 -> 75 [style=dashed label="LetExpression"] + 217 -> 76 [style=dashed label="ConditionalExpression"] + 217 -> 77 [style=dashed label="ChooseExpression"] + 217 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 217 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 217 -> 80 [style=dashed label="CardinalityExpression"] + 217 -> 81 [style=dashed label="Literal"] + 217 -> 82 [style=dashed label="UndefinedLiteral"] + 217 -> 83 [style=dashed label="BooleanLiteral"] + 217 -> 84 [style=dashed label="IntegerLiteral"] + 217 -> 85 [style=dashed label="RationalLiteral"] + 217 -> 86 [style=dashed label="DecimalLiteral"] + 217 -> 87 [style=dashed label="BinaryLiteral"] + 217 -> 88 [style=dashed label="StringLiteral"] + 217 -> 89 [style=dashed label="ReferenceLiteral"] + 217 -> 90 [style=dashed label="ListLiteral"] + 217 -> 91 [style=dashed label="RangeLiteral"] + 217 -> 92 [style=dashed label="TupleLiteral"] + 217 -> 93 [style=dashed label="RecordLiteral"] + 217 -> 94 [style=dashed label="Identifier"] + 217 -> 95 [style=dashed label="IdentifierPath"] + 218 [label="State 218\n\l159 CardinalityExpression: \"|\" SimpleOrClaspedTerm \"|\" •\l"] + 218 -> "218R159" [style=solid] + "218R159" [label="R159", fillcolor=3, shape=diamond, style=filled] + 219 [label="State 219\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l134 | Term \"and\" Term •\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 219 -> 152 [style=solid label="\"+\""] + 219 -> 153 [style=solid label="\"-\""] + 219 -> 154 [style=solid label="\"=\""] + 219 -> 155 [style=solid label="\"<\""] + 219 -> 156 [style=solid label="\">\""] + 219 -> 157 [style=solid label="\"*\""] + 219 -> 158 [style=solid label="\"/\""] + 219 -> 159 [style=solid label="\"%\""] + 219 -> 160 [style=solid label="\"^\""] + 219 -> 162 [style=solid label="\"!=\""] + 219 -> 163 [style=solid label="\"<=\""] + 219 -> 164 [style=solid label="\">=\""] + 219 -> "219R134" [style=solid] + "219R134" [label="R134", fillcolor=3, shape=diamond, style=filled] + 220 [label="State 220\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l132 | Term \"or\" Term •\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 220 -> 148 [style=solid label="\"and\""] + 220 -> 150 [style=solid label="\"xor\""] + 220 -> 152 [style=solid label="\"+\""] + 220 -> 153 [style=solid label="\"-\""] + 220 -> 154 [style=solid label="\"=\""] + 220 -> 155 [style=solid label="\"<\""] + 220 -> 156 [style=solid label="\">\""] + 220 -> 157 [style=solid label="\"*\""] + 220 -> 158 [style=solid label="\"/\""] + 220 -> 159 [style=solid label="\"%\""] + 220 -> 160 [style=solid label="\"^\""] + 220 -> 162 [style=solid label="\"!=\""] + 220 -> 163 [style=solid label="\"<=\""] + 220 -> 164 [style=solid label="\">=\""] + 220 -> "220R132" [style=solid] + "220R132" [label="R132", fillcolor=3, shape=diamond, style=filled] + 221 [label="State 221\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l133 | Term \"xor\" Term •\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 221 -> 148 [style=solid label="\"and\""] + 221 -> 152 [style=solid label="\"+\""] + 221 -> 153 [style=solid label="\"-\""] + 221 -> 154 [style=solid label="\"=\""] + 221 -> 155 [style=solid label="\"<\""] + 221 -> 156 [style=solid label="\">\""] + 221 -> 157 [style=solid label="\"*\""] + 221 -> 158 [style=solid label="\"/\""] + 221 -> 159 [style=solid label="\"%\""] + 221 -> 160 [style=solid label="\"^\""] + 221 -> 162 [style=solid label="\"!=\""] + 221 -> 163 [style=solid label="\"<=\""] + 221 -> 164 [style=solid label="\">=\""] + 221 -> "221R133" [style=solid] + "221R133" [label="R133", fillcolor=3, shape=diamond, style=filled] + 222 [label="State 222\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l136 | Term \"implies\" Term •\l"] + 222 -> 148 [style=solid label="\"and\""] + 222 -> 149 [style=solid label="\"or\""] + 222 -> 150 [style=solid label="\"xor\""] + 222 -> 152 [style=solid label="\"+\""] + 222 -> 153 [style=solid label="\"-\""] + 222 -> 154 [style=solid label="\"=\""] + 222 -> 155 [style=solid label="\"<\""] + 222 -> 156 [style=solid label="\">\""] + 222 -> 157 [style=solid label="\"*\""] + 222 -> 158 [style=solid label="\"/\""] + 222 -> 159 [style=solid label="\"%\""] + 222 -> 160 [style=solid label="\"^\""] + 222 -> 162 [style=solid label="\"!=\""] + 222 -> 163 [style=solid label="\"<=\""] + 222 -> 164 [style=solid label="\">=\""] + 222 -> "222R136" [style=solid] + "222R136" [label="R136", fillcolor=3, shape=diamond, style=filled] + 223 [label="State 223\n\l120 OperatorExpression: Term • \"+\" Term\l120 | Term \"+\" Term •\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 223 -> 157 [style=solid label="\"*\""] + 223 -> 158 [style=solid label="\"/\""] + 223 -> 159 [style=solid label="\"%\""] + 223 -> 160 [style=solid label="\"^\""] + 223 -> "223R120" [style=solid] + "223R120" [label="R120", fillcolor=3, shape=diamond, style=filled] + 224 [label="State 224\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l121 | Term \"-\" Term •\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 224 -> 157 [style=solid label="\"*\""] + 224 -> 158 [style=solid label="\"/\""] + 224 -> 159 [style=solid label="\"%\""] + 224 -> 160 [style=solid label="\"^\""] + 224 -> "224R121" [style=solid] + "224R121" [label="R121", fillcolor=3, shape=diamond, style=filled] + 225 [label="State 225\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l127 | Term \"=\" Term •\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 225 -> 152 [style=solid label="\"+\""] + 225 -> 153 [style=solid label="\"-\""] + 225 -> 155 [style=solid label="\"<\""] + 225 -> 156 [style=solid label="\">\""] + 225 -> 157 [style=solid label="\"*\""] + 225 -> 158 [style=solid label="\"/\""] + 225 -> 159 [style=solid label="\"%\""] + 225 -> 160 [style=solid label="\"^\""] + 225 -> 163 [style=solid label="\"<=\""] + 225 -> 164 [style=solid label="\">=\""] + 225 -> "225R127" [style=solid] + "225R127" [label="R127", fillcolor=3, shape=diamond, style=filled] + 226 [label="State 226\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l128 | Term \"<\" Term •\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 226 -> 152 [style=solid label="\"+\""] + 226 -> 153 [style=solid label="\"-\""] + 226 -> 157 [style=solid label="\"*\""] + 226 -> 158 [style=solid label="\"/\""] + 226 -> 159 [style=solid label="\"%\""] + 226 -> 160 [style=solid label="\"^\""] + 226 -> "226R128" [style=solid] + "226R128" [label="R128", fillcolor=3, shape=diamond, style=filled] + 227 [label="State 227\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l129 | Term \">\" Term •\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 227 -> 152 [style=solid label="\"+\""] + 227 -> 153 [style=solid label="\"-\""] + 227 -> 157 [style=solid label="\"*\""] + 227 -> 158 [style=solid label="\"/\""] + 227 -> 159 [style=solid label="\"%\""] + 227 -> 160 [style=solid label="\"^\""] + 227 -> "227R129" [style=solid] + "227R129" [label="R129", fillcolor=3, shape=diamond, style=filled] + 228 [label="State 228\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l122 | Term \"*\" Term •\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 228 -> 160 [style=solid label="\"^\""] + 228 -> "228R122" [style=solid] + "228R122" [label="R122", fillcolor=3, shape=diamond, style=filled] + 229 [label="State 229\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l123 | Term \"/\" Term •\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 229 -> 160 [style=solid label="\"^\""] + 229 -> "229R123" [style=solid] + "229R123" [label="R123", fillcolor=3, shape=diamond, style=filled] + 230 [label="State 230\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l124 | Term \"%\" Term •\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 230 -> 160 [style=solid label="\"^\""] + 230 -> "230R124" [style=solid] + "230R124" [label="R124", fillcolor=3, shape=diamond, style=filled] + 231 [label="State 231\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l125 | Term \"^\" Term •\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 231 -> "231R125" [style=solid] + "231R125" [label="R125", fillcolor=3, shape=diamond, style=filled] + 232 [label="State 232\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l135 | Term \"=>\" Term •\l136 | Term • \"implies\" Term\l"] + 232 -> 148 [style=solid label="\"and\""] + 232 -> 149 [style=solid label="\"or\""] + 232 -> 150 [style=solid label="\"xor\""] + 232 -> 152 [style=solid label="\"+\""] + 232 -> 153 [style=solid label="\"-\""] + 232 -> 154 [style=solid label="\"=\""] + 232 -> 155 [style=solid label="\"<\""] + 232 -> 156 [style=solid label="\">\""] + 232 -> 157 [style=solid label="\"*\""] + 232 -> 158 [style=solid label="\"/\""] + 232 -> 159 [style=solid label="\"%\""] + 232 -> 160 [style=solid label="\"^\""] + 232 -> 162 [style=solid label="\"!=\""] + 232 -> 163 [style=solid label="\"<=\""] + 232 -> 164 [style=solid label="\">=\""] + 232 -> "232R135" [style=solid] + "232R135" [label="R135", fillcolor=3, shape=diamond, style=filled] + 233 [label="State 233\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l126 | Term \"!=\" Term •\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 233 -> 152 [style=solid label="\"+\""] + 233 -> 153 [style=solid label="\"-\""] + 233 -> 155 [style=solid label="\"<\""] + 233 -> 156 [style=solid label="\">\""] + 233 -> 157 [style=solid label="\"*\""] + 233 -> 158 [style=solid label="\"/\""] + 233 -> 159 [style=solid label="\"%\""] + 233 -> 160 [style=solid label="\"^\""] + 233 -> 163 [style=solid label="\"<=\""] + 233 -> 164 [style=solid label="\">=\""] + 233 -> "233R126" [style=solid] + "233R126" [label="R126", fillcolor=3, shape=diamond, style=filled] + 234 [label="State 234\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l130 | Term \"<=\" Term •\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 234 -> 152 [style=solid label="\"+\""] + 234 -> 153 [style=solid label="\"-\""] + 234 -> 157 [style=solid label="\"*\""] + 234 -> 158 [style=solid label="\"/\""] + 234 -> 159 [style=solid label="\"%\""] + 234 -> 160 [style=solid label="\"^\""] + 234 -> "234R130" [style=solid] + "234R130" [label="R130", fillcolor=3, shape=diamond, style=filled] + 235 [label="State 235\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l131 | Term \">=\" Term •\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 235 -> 152 [style=solid label="\"+\""] + 235 -> 153 [style=solid label="\"-\""] + 235 -> 157 [style=solid label="\"*\""] + 235 -> 158 [style=solid label="\"/\""] + 235 -> 159 [style=solid label="\"%\""] + 235 -> 160 [style=solid label="\"^\""] + 235 -> "235R131" [style=solid] + "235R131" [label="R131", fillcolor=3, shape=diamond, style=filled] + 236 [label="State 236\n\l153 TypeCastingExpression: SimpleOrClaspedTerm \"as\" Type •\l"] + 236 -> "236R153" [style=solid] + "236R153" [label="R153", fillcolor=3, shape=diamond, style=filled] + 237 [label="State 237\n\l149 LiteralCallExpression: SimpleOrClaspedTerm \".\" IntegerLiteral •\l"] + 237 -> "237R149" [style=solid] + "237R149" [label="R149", fillcolor=3, shape=diamond, style=filled] + 238 [label="State 238\n\l145 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier •\l146 | SimpleOrClaspedTerm \".\" Identifier • \"(\" \")\"\l147 | SimpleOrClaspedTerm \".\" Identifier • \"(\" Terms \")\"\l148 | SimpleOrClaspedTerm \".\" Identifier • \"(\" error \")\"\l"] + 238 -> 324 [style=solid label="\"(\""] + 238 -> "238R145" [style=solid] + "238R145" [label="R145", fillcolor=3, shape=diamond, style=filled] + 239 [label="State 239\n\l152 IndirectCallExpression: CallExpression \"(\" error • \")\"\l"] + 239 -> 325 [style=solid label="\")\""] + 240 [label="State 240\n\l150 IndirectCallExpression: CallExpression \"(\" \")\" •\l"] + 240 -> "240R150" [style=solid] + "240R150" [label="R150", fillcolor=3, shape=diamond, style=filled] + 241 [label="State 241\n\l102 Terms: Terms • \",\" Term\l151 IndirectCallExpression: CallExpression \"(\" Terms • \")\"\l"] + 241 -> 326 [style=solid label="\")\""] + 241 -> 216 [style=solid label="\",\""] + 242 [label="State 242\n\l103 Terms: Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 242 -> 148 [style=solid label="\"and\""] + 242 -> 149 [style=solid label="\"or\""] + 242 -> 150 [style=solid label="\"xor\""] + 242 -> 151 [style=solid label="\"implies\""] + 242 -> 152 [style=solid label="\"+\""] + 242 -> 153 [style=solid label="\"-\""] + 242 -> 154 [style=solid label="\"=\""] + 242 -> 155 [style=solid label="\"<\""] + 242 -> 156 [style=solid label="\">\""] + 242 -> 157 [style=solid label="\"*\""] + 242 -> 158 [style=solid label="\"/\""] + 242 -> 159 [style=solid label="\"%\""] + 242 -> 160 [style=solid label="\"^\""] + 242 -> 161 [style=solid label="\"=>\""] + 242 -> 162 [style=solid label="\"!=\""] + 242 -> 163 [style=solid label="\"<=\""] + 242 -> 164 [style=solid label="\">=\""] + 242 -> "242R103" [style=solid] + "242R103" [label="R103", fillcolor=3, shape=diamond, style=filled] + 243 [label="State 243\n\l144 DirectCallExpression: IdentifierPath \"(\" error • \")\"\l"] + 243 -> 327 [style=solid label="\")\""] + 244 [label="State 244\n\l142 DirectCallExpression: IdentifierPath \"(\" \")\" •\l"] + 244 -> "244R142" [style=solid] + "244R142" [label="R142", fillcolor=3, shape=diamond, style=filled] + 245 [label="State 245\n\l102 Terms: Terms • \",\" Term\l143 DirectCallExpression: IdentifierPath \"(\" Terms • \")\"\l"] + 245 -> 328 [style=solid label="\")\""] + 245 -> 216 [style=solid label="\",\""] + 246 [label="State 246\n\l222 IdentifierPath: IdentifierPath \"::\" Identifier •\l"] + 246 -> "246R222" [style=solid] + "246R222" [label="R222", fillcolor=3, shape=diamond, style=filled] + 247 [label="State 247\n\l103 Terms: Term •\l113 SimpleOrClaspedTerm: \"(\" Term • \")\"\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l218 Initializer: \"(\" Term • \")\" \"->\" Term\l"] + 247 -> 148 [style=solid label="\"and\""] + 247 -> 149 [style=solid label="\"or\""] + 247 -> 150 [style=solid label="\"xor\""] + 247 -> 151 [style=solid label="\"implies\""] + 247 -> 152 [style=solid label="\"+\""] + 247 -> 153 [style=solid label="\"-\""] + 247 -> 154 [style=solid label="\"=\""] + 247 -> 329 [style=solid label="\")\""] + 247 -> 155 [style=solid label="\"<\""] + 247 -> 156 [style=solid label="\">\""] + 247 -> 157 [style=solid label="\"*\""] + 247 -> 158 [style=solid label="\"/\""] + 247 -> 159 [style=solid label="\"%\""] + 247 -> 160 [style=solid label="\"^\""] + 247 -> 161 [style=solid label="\"=>\""] + 247 -> 162 [style=solid label="\"!=\""] + 247 -> 163 [style=solid label="\"<=\""] + 247 -> 164 [style=solid label="\">=\""] + 247 -> "247R103" [style=solid] + "247R103" [label="R103", fillcolor=3, shape=diamond, style=filled] + 248 [label="State 248\n\l219 Initializer: TupleLiteral \"->\" • Term\l"] + 248 -> 45 [style=solid label="\"let\""] 248 -> 8 [style=solid label="\"in\""] - 248 -> 2 [style=solid label="\"[\""] + 248 -> 46 [style=solid label="\"forall\""] + 248 -> 47 [style=solid label="\"choose\""] + 248 -> 48 [style=solid label="\"if\""] + 248 -> 49 [style=solid label="\"exists\""] + 248 -> 50 [style=solid label="\"undef\""] + 248 -> 51 [style=solid label="\"false\""] + 248 -> 52 [style=solid label="\"true\""] + 248 -> 53 [style=solid label="\"not\""] + 248 -> 54 [style=solid label="\"+\""] + 248 -> 55 [style=solid label="\"-\""] + 248 -> 56 [style=solid label="\"(\""] + 248 -> 57 [style=solid label="\"[\""] + 248 -> 58 [style=solid label="\"|\""] + 248 -> 59 [style=solid label="\"@\""] + 248 -> 60 [style=solid label="\"binary\""] + 248 -> 61 [style=solid label="\"hexadecimal\""] + 248 -> 62 [style=solid label="\"integer\""] + 248 -> 63 [style=solid label="\"rational\""] + 248 -> 64 [style=solid label="\"decimal\""] + 248 -> 65 [style=solid label="\"string\""] 248 -> 9 [style=solid label="\"identifier\""] - 248 -> 107 [style=dashed label="Identifier"] - 248 -> 108 [style=dashed label="Variable"] - 248 -> 336 [style=dashed label="AttributedVariables"] - 248 -> 109 [style=dashed label="TypedVariable"] - 248 -> 115 [style=dashed label="AttributedVariable"] - 248 -> 113 [style=dashed label="Attributes"] - 248 -> 6 [style=dashed label="Attribute"] - 249 [label="State 249\n\l 74 IterateRule: \"iterate\" • Rule\l"] - 249 -> 242 [style=solid label="\"seq\""] - 249 -> 243 [style=solid label="\"par\""] - 249 -> 244 [style=solid label="\"skip\""] - 249 -> 245 [style=solid label="\"let\""] - 249 -> 246 [style=solid label="\"local\""] - 249 -> 8 [style=solid label="\"in\""] - 249 -> 247 [style=solid label="\"forall\""] - 249 -> 248 [style=solid label="\"choose\""] - 249 -> 249 [style=solid label="\"iterate\""] - 249 -> 250 [style=solid label="\"if\""] - 249 -> 251 [style=solid label="\"case\""] - 249 -> 252 [style=solid label="\"while\""] - 249 -> 46 [style=solid label="\"undef\""] - 249 -> 47 [style=solid label="\"false\""] - 249 -> 48 [style=solid label="\"true\""] - 249 -> 50 [style=solid label="\"+\""] - 249 -> 51 [style=solid label="\"-\""] - 249 -> 52 [style=solid label="\"(\""] - 249 -> 53 [style=solid label="\"[\""] - 249 -> 253 [style=solid label="\"{\""] - 249 -> 55 [style=solid label="\"@\""] - 249 -> 254 [style=solid label="\"{|\""] - 249 -> 56 [style=solid label="\"binary\""] - 249 -> 57 [style=solid label="\"hexadecimal\""] - 249 -> 58 [style=solid label="\"integer\""] - 249 -> 59 [style=solid label="\"rational\""] - 249 -> 60 [style=solid label="\"decimal\""] - 249 -> 61 [style=solid label="\"string\""] - 249 -> 9 [style=solid label="\"identifier\""] - 249 -> 337 [style=dashed label="Rule"] - 249 -> 256 [style=dashed label="SkipRule"] - 249 -> 257 [style=dashed label="ConditionalRule"] - 249 -> 258 [style=dashed label="CaseRule"] - 249 -> 259 [style=dashed label="LetRule"] - 249 -> 260 [style=dashed label="LocalRule"] - 249 -> 261 [style=dashed label="ForallRule"] - 249 -> 262 [style=dashed label="ChooseRule"] - 249 -> 263 [style=dashed label="IterateRule"] - 249 -> 264 [style=dashed label="BlockRule"] - 249 -> 265 [style=dashed label="SequenceRule"] - 249 -> 266 [style=dashed label="UpdateRule"] - 249 -> 267 [style=dashed label="CallRule"] - 249 -> 268 [style=dashed label="WhileRule"] - 249 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 249 -> 270 [style=dashed label="CallExpression"] - 249 -> 271 [style=dashed label="DirectCallExpression"] - 249 -> 67 [style=dashed label="MethodCallExpression"] - 249 -> 68 [style=dashed label="LiteralCallExpression"] - 249 -> 69 [style=dashed label="IndirectCallExpression"] - 249 -> 77 [style=dashed label="Literal"] - 249 -> 78 [style=dashed label="UndefinedLiteral"] - 249 -> 79 [style=dashed label="BooleanLiteral"] - 249 -> 80 [style=dashed label="IntegerLiteral"] - 249 -> 81 [style=dashed label="RationalLiteral"] - 249 -> 82 [style=dashed label="DecimalLiteral"] - 249 -> 83 [style=dashed label="BinaryLiteral"] - 249 -> 84 [style=dashed label="StringLiteral"] - 249 -> 85 [style=dashed label="ReferenceLiteral"] - 249 -> 86 [style=dashed label="ListLiteral"] - 249 -> 87 [style=dashed label="RangeLiteral"] - 249 -> 88 [style=dashed label="TupleLiteral"] - 249 -> 89 [style=dashed label="RecordLiteral"] - 249 -> 90 [style=dashed label="Identifier"] - 249 -> 91 [style=dashed label="IdentifierPath"] - 250 [label="State 250\n\l 60 ConditionalRule: \"if\" • Term \"then\" Rule\l 61 | \"if\" • Term \"then\" Rule \"else\" Rule\l"] - 250 -> 41 [style=solid label="\"let\""] + 248 -> 330 [style=dashed label="Term"] + 248 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 248 -> 68 [style=dashed label="OperatorExpression"] + 248 -> 69 [style=dashed label="CallExpression"] + 248 -> 70 [style=dashed label="DirectCallExpression"] + 248 -> 71 [style=dashed label="MethodCallExpression"] + 248 -> 72 [style=dashed label="LiteralCallExpression"] + 248 -> 73 [style=dashed label="IndirectCallExpression"] + 248 -> 74 [style=dashed label="TypeCastingExpression"] + 248 -> 75 [style=dashed label="LetExpression"] + 248 -> 76 [style=dashed label="ConditionalExpression"] + 248 -> 77 [style=dashed label="ChooseExpression"] + 248 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 248 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 248 -> 80 [style=dashed label="CardinalityExpression"] + 248 -> 81 [style=dashed label="Literal"] + 248 -> 82 [style=dashed label="UndefinedLiteral"] + 248 -> 83 [style=dashed label="BooleanLiteral"] + 248 -> 84 [style=dashed label="IntegerLiteral"] + 248 -> 85 [style=dashed label="RationalLiteral"] + 248 -> 86 [style=dashed label="DecimalLiteral"] + 248 -> 87 [style=dashed label="BinaryLiteral"] + 248 -> 88 [style=dashed label="StringLiteral"] + 248 -> 89 [style=dashed label="ReferenceLiteral"] + 248 -> 90 [style=dashed label="ListLiteral"] + 248 -> 91 [style=dashed label="RangeLiteral"] + 248 -> 92 [style=dashed label="TupleLiteral"] + 248 -> 93 [style=dashed label="RecordLiteral"] + 248 -> 94 [style=dashed label="Identifier"] + 248 -> 95 [style=dashed label="IdentifierPath"] + 249 [label="State 249\n\l 22 InitDefinition: \"init\" \"{\" Initializers \"}\" •\l"] + 249 -> "249R22" [style=solid] + "249R22" [label="R22", fillcolor=3, shape=diamond, style=filled] + 250 [label="State 250\n\l215 Initializers: Initializers \",\" • Initializer\l"] + 250 -> 45 [style=solid label="\"let\""] 250 -> 8 [style=solid label="\"in\""] - 250 -> 42 [style=solid label="\"forall\""] - 250 -> 43 [style=solid label="\"choose\""] - 250 -> 44 [style=solid label="\"if\""] - 250 -> 45 [style=solid label="\"exists\""] - 250 -> 46 [style=solid label="\"undef\""] - 250 -> 47 [style=solid label="\"false\""] - 250 -> 48 [style=solid label="\"true\""] - 250 -> 49 [style=solid label="\"not\""] - 250 -> 50 [style=solid label="\"+\""] - 250 -> 51 [style=solid label="\"-\""] - 250 -> 52 [style=solid label="\"(\""] - 250 -> 53 [style=solid label="\"[\""] - 250 -> 54 [style=solid label="\"|\""] - 250 -> 55 [style=solid label="\"@\""] - 250 -> 56 [style=solid label="\"binary\""] - 250 -> 57 [style=solid label="\"hexadecimal\""] - 250 -> 58 [style=solid label="\"integer\""] - 250 -> 59 [style=solid label="\"rational\""] - 250 -> 60 [style=solid label="\"decimal\""] - 250 -> 61 [style=solid label="\"string\""] + 250 -> 46 [style=solid label="\"forall\""] + 250 -> 47 [style=solid label="\"choose\""] + 250 -> 48 [style=solid label="\"if\""] + 250 -> 49 [style=solid label="\"exists\""] + 250 -> 50 [style=solid label="\"undef\""] + 250 -> 51 [style=solid label="\"false\""] + 250 -> 52 [style=solid label="\"true\""] + 250 -> 53 [style=solid label="\"not\""] + 250 -> 54 [style=solid label="\"+\""] + 250 -> 55 [style=solid label="\"-\""] + 250 -> 170 [style=solid label="\"(\""] + 250 -> 57 [style=solid label="\"[\""] + 250 -> 58 [style=solid label="\"|\""] + 250 -> 59 [style=solid label="\"@\""] + 250 -> 60 [style=solid label="\"binary\""] + 250 -> 61 [style=solid label="\"hexadecimal\""] + 250 -> 62 [style=solid label="\"integer\""] + 250 -> 63 [style=solid label="\"rational\""] + 250 -> 64 [style=solid label="\"decimal\""] + 250 -> 65 [style=solid label="\"string\""] 250 -> 9 [style=solid label="\"identifier\""] - 250 -> 338 [style=dashed label="Term"] - 250 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 250 -> 64 [style=dashed label="OperatorExpression"] - 250 -> 65 [style=dashed label="CallExpression"] - 250 -> 66 [style=dashed label="DirectCallExpression"] - 250 -> 67 [style=dashed label="MethodCallExpression"] - 250 -> 68 [style=dashed label="LiteralCallExpression"] - 250 -> 69 [style=dashed label="IndirectCallExpression"] - 250 -> 70 [style=dashed label="TypeCastingExpression"] - 250 -> 71 [style=dashed label="LetExpression"] - 250 -> 72 [style=dashed label="ConditionalExpression"] - 250 -> 73 [style=dashed label="ChooseExpression"] - 250 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 250 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 250 -> 76 [style=dashed label="CardinalityExpression"] - 250 -> 77 [style=dashed label="Literal"] - 250 -> 78 [style=dashed label="UndefinedLiteral"] - 250 -> 79 [style=dashed label="BooleanLiteral"] - 250 -> 80 [style=dashed label="IntegerLiteral"] - 250 -> 81 [style=dashed label="RationalLiteral"] - 250 -> 82 [style=dashed label="DecimalLiteral"] - 250 -> 83 [style=dashed label="BinaryLiteral"] - 250 -> 84 [style=dashed label="StringLiteral"] - 250 -> 85 [style=dashed label="ReferenceLiteral"] - 250 -> 86 [style=dashed label="ListLiteral"] - 250 -> 87 [style=dashed label="RangeLiteral"] - 250 -> 88 [style=dashed label="TupleLiteral"] - 250 -> 89 [style=dashed label="RecordLiteral"] - 250 -> 90 [style=dashed label="Identifier"] - 250 -> 91 [style=dashed label="IdentifierPath"] - 251 [label="State 251\n\l 62 CaseRule: \"case\" • Term \"of\" \"{\" CaseLabels \"}\"\l 63 | \"case\" • Term \"of\" \"{\" error \"}\"\l"] - 251 -> 41 [style=solid label="\"let\""] - 251 -> 8 [style=solid label="\"in\""] - 251 -> 42 [style=solid label="\"forall\""] - 251 -> 43 [style=solid label="\"choose\""] - 251 -> 44 [style=solid label="\"if\""] - 251 -> 45 [style=solid label="\"exists\""] - 251 -> 46 [style=solid label="\"undef\""] - 251 -> 47 [style=solid label="\"false\""] - 251 -> 48 [style=solid label="\"true\""] - 251 -> 49 [style=solid label="\"not\""] - 251 -> 50 [style=solid label="\"+\""] - 251 -> 51 [style=solid label="\"-\""] - 251 -> 52 [style=solid label="\"(\""] - 251 -> 53 [style=solid label="\"[\""] - 251 -> 54 [style=solid label="\"|\""] - 251 -> 55 [style=solid label="\"@\""] - 251 -> 56 [style=solid label="\"binary\""] - 251 -> 57 [style=solid label="\"hexadecimal\""] - 251 -> 58 [style=solid label="\"integer\""] - 251 -> 59 [style=solid label="\"rational\""] - 251 -> 60 [style=solid label="\"decimal\""] - 251 -> 61 [style=solid label="\"string\""] - 251 -> 9 [style=solid label="\"identifier\""] - 251 -> 339 [style=dashed label="Term"] - 251 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 251 -> 64 [style=dashed label="OperatorExpression"] - 251 -> 65 [style=dashed label="CallExpression"] - 251 -> 66 [style=dashed label="DirectCallExpression"] - 251 -> 67 [style=dashed label="MethodCallExpression"] - 251 -> 68 [style=dashed label="LiteralCallExpression"] - 251 -> 69 [style=dashed label="IndirectCallExpression"] - 251 -> 70 [style=dashed label="TypeCastingExpression"] - 251 -> 71 [style=dashed label="LetExpression"] - 251 -> 72 [style=dashed label="ConditionalExpression"] - 251 -> 73 [style=dashed label="ChooseExpression"] - 251 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 251 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 251 -> 76 [style=dashed label="CardinalityExpression"] - 251 -> 77 [style=dashed label="Literal"] - 251 -> 78 [style=dashed label="UndefinedLiteral"] - 251 -> 79 [style=dashed label="BooleanLiteral"] - 251 -> 80 [style=dashed label="IntegerLiteral"] - 251 -> 81 [style=dashed label="RationalLiteral"] - 251 -> 82 [style=dashed label="DecimalLiteral"] - 251 -> 83 [style=dashed label="BinaryLiteral"] - 251 -> 84 [style=dashed label="StringLiteral"] - 251 -> 85 [style=dashed label="ReferenceLiteral"] - 251 -> 86 [style=dashed label="ListLiteral"] - 251 -> 87 [style=dashed label="RangeLiteral"] - 251 -> 88 [style=dashed label="TupleLiteral"] - 251 -> 89 [style=dashed label="RecordLiteral"] - 251 -> 90 [style=dashed label="Identifier"] - 251 -> 91 [style=dashed label="IdentifierPath"] - 252 [label="State 252\n\l 85 WhileRule: \"while\" • Term \"do\" Rule\l"] - 252 -> 41 [style=solid label="\"let\""] - 252 -> 8 [style=solid label="\"in\""] - 252 -> 42 [style=solid label="\"forall\""] - 252 -> 43 [style=solid label="\"choose\""] - 252 -> 44 [style=solid label="\"if\""] - 252 -> 45 [style=solid label="\"exists\""] - 252 -> 46 [style=solid label="\"undef\""] - 252 -> 47 [style=solid label="\"false\""] - 252 -> 48 [style=solid label="\"true\""] - 252 -> 49 [style=solid label="\"not\""] - 252 -> 50 [style=solid label="\"+\""] - 252 -> 51 [style=solid label="\"-\""] - 252 -> 52 [style=solid label="\"(\""] - 252 -> 53 [style=solid label="\"[\""] - 252 -> 54 [style=solid label="\"|\""] - 252 -> 55 [style=solid label="\"@\""] - 252 -> 56 [style=solid label="\"binary\""] - 252 -> 57 [style=solid label="\"hexadecimal\""] - 252 -> 58 [style=solid label="\"integer\""] - 252 -> 59 [style=solid label="\"rational\""] - 252 -> 60 [style=solid label="\"decimal\""] - 252 -> 61 [style=solid label="\"string\""] - 252 -> 9 [style=solid label="\"identifier\""] - 252 -> 340 [style=dashed label="Term"] - 252 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 252 -> 64 [style=dashed label="OperatorExpression"] - 252 -> 65 [style=dashed label="CallExpression"] - 252 -> 66 [style=dashed label="DirectCallExpression"] - 252 -> 67 [style=dashed label="MethodCallExpression"] - 252 -> 68 [style=dashed label="LiteralCallExpression"] - 252 -> 69 [style=dashed label="IndirectCallExpression"] - 252 -> 70 [style=dashed label="TypeCastingExpression"] - 252 -> 71 [style=dashed label="LetExpression"] - 252 -> 72 [style=dashed label="ConditionalExpression"] - 252 -> 73 [style=dashed label="ChooseExpression"] - 252 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 252 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 252 -> 76 [style=dashed label="CardinalityExpression"] - 252 -> 77 [style=dashed label="Literal"] - 252 -> 78 [style=dashed label="UndefinedLiteral"] - 252 -> 79 [style=dashed label="BooleanLiteral"] - 252 -> 80 [style=dashed label="IntegerLiteral"] - 252 -> 81 [style=dashed label="RationalLiteral"] - 252 -> 82 [style=dashed label="DecimalLiteral"] - 252 -> 83 [style=dashed label="BinaryLiteral"] - 252 -> 84 [style=dashed label="StringLiteral"] - 252 -> 85 [style=dashed label="ReferenceLiteral"] - 252 -> 86 [style=dashed label="ListLiteral"] - 252 -> 87 [style=dashed label="RangeLiteral"] - 252 -> 88 [style=dashed label="TupleLiteral"] - 252 -> 89 [style=dashed label="RecordLiteral"] - 252 -> 90 [style=dashed label="Identifier"] - 252 -> 91 [style=dashed label="IdentifierPath"] - 253 [label="State 253\n\l 75 BlockRule: \"{\" • Rules \"}\"\l 77 | \"{\" • error \"}\"\l"] - 253 -> 341 [style=dotted] - 253 -> 242 [style=solid label="\"seq\""] - 253 -> 243 [style=solid label="\"par\""] - 253 -> 244 [style=solid label="\"skip\""] - 253 -> 245 [style=solid label="\"let\""] - 253 -> 246 [style=solid label="\"local\""] - 253 -> 8 [style=solid label="\"in\""] - 253 -> 247 [style=solid label="\"forall\""] - 253 -> 248 [style=solid label="\"choose\""] - 253 -> 249 [style=solid label="\"iterate\""] - 253 -> 250 [style=solid label="\"if\""] - 253 -> 251 [style=solid label="\"case\""] - 253 -> 252 [style=solid label="\"while\""] - 253 -> 46 [style=solid label="\"undef\""] - 253 -> 47 [style=solid label="\"false\""] - 253 -> 48 [style=solid label="\"true\""] - 253 -> 50 [style=solid label="\"+\""] - 253 -> 51 [style=solid label="\"-\""] - 253 -> 52 [style=solid label="\"(\""] - 253 -> 53 [style=solid label="\"[\""] - 253 -> 253 [style=solid label="\"{\""] - 253 -> 55 [style=solid label="\"@\""] - 253 -> 254 [style=solid label="\"{|\""] - 253 -> 56 [style=solid label="\"binary\""] - 253 -> 57 [style=solid label="\"hexadecimal\""] - 253 -> 58 [style=solid label="\"integer\""] - 253 -> 59 [style=solid label="\"rational\""] - 253 -> 60 [style=solid label="\"decimal\""] - 253 -> 61 [style=solid label="\"string\""] - 253 -> 9 [style=solid label="\"identifier\""] - 253 -> 342 [style=dashed label="Rules"] - 253 -> 325 [style=dashed label="Rule"] - 253 -> 256 [style=dashed label="SkipRule"] - 253 -> 257 [style=dashed label="ConditionalRule"] - 253 -> 258 [style=dashed label="CaseRule"] - 253 -> 259 [style=dashed label="LetRule"] - 253 -> 260 [style=dashed label="LocalRule"] - 253 -> 261 [style=dashed label="ForallRule"] - 253 -> 262 [style=dashed label="ChooseRule"] - 253 -> 263 [style=dashed label="IterateRule"] - 253 -> 264 [style=dashed label="BlockRule"] - 253 -> 265 [style=dashed label="SequenceRule"] - 253 -> 266 [style=dashed label="UpdateRule"] - 253 -> 267 [style=dashed label="CallRule"] - 253 -> 268 [style=dashed label="WhileRule"] - 253 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 253 -> 270 [style=dashed label="CallExpression"] - 253 -> 271 [style=dashed label="DirectCallExpression"] - 253 -> 67 [style=dashed label="MethodCallExpression"] - 253 -> 68 [style=dashed label="LiteralCallExpression"] - 253 -> 69 [style=dashed label="IndirectCallExpression"] - 253 -> 77 [style=dashed label="Literal"] - 253 -> 78 [style=dashed label="UndefinedLiteral"] - 253 -> 79 [style=dashed label="BooleanLiteral"] - 253 -> 80 [style=dashed label="IntegerLiteral"] - 253 -> 81 [style=dashed label="RationalLiteral"] - 253 -> 82 [style=dashed label="DecimalLiteral"] - 253 -> 83 [style=dashed label="BinaryLiteral"] - 253 -> 84 [style=dashed label="StringLiteral"] - 253 -> 85 [style=dashed label="ReferenceLiteral"] - 253 -> 86 [style=dashed label="ListLiteral"] - 253 -> 87 [style=dashed label="RangeLiteral"] - 253 -> 88 [style=dashed label="TupleLiteral"] - 253 -> 89 [style=dashed label="RecordLiteral"] - 253 -> 90 [style=dashed label="Identifier"] - 253 -> 91 [style=dashed label="IdentifierPath"] - 254 [label="State 254\n\l 79 SequenceRule: \"{|\" • Rules \"|}\"\l 81 | \"{|\" • error \"|}\"\l"] - 254 -> 343 [style=dotted] - 254 -> 242 [style=solid label="\"seq\""] - 254 -> 243 [style=solid label="\"par\""] - 254 -> 244 [style=solid label="\"skip\""] - 254 -> 245 [style=solid label="\"let\""] - 254 -> 246 [style=solid label="\"local\""] - 254 -> 8 [style=solid label="\"in\""] - 254 -> 247 [style=solid label="\"forall\""] - 254 -> 248 [style=solid label="\"choose\""] - 254 -> 249 [style=solid label="\"iterate\""] - 254 -> 250 [style=solid label="\"if\""] - 254 -> 251 [style=solid label="\"case\""] - 254 -> 252 [style=solid label="\"while\""] - 254 -> 46 [style=solid label="\"undef\""] - 254 -> 47 [style=solid label="\"false\""] - 254 -> 48 [style=solid label="\"true\""] - 254 -> 50 [style=solid label="\"+\""] - 254 -> 51 [style=solid label="\"-\""] - 254 -> 52 [style=solid label="\"(\""] - 254 -> 53 [style=solid label="\"[\""] - 254 -> 253 [style=solid label="\"{\""] - 254 -> 55 [style=solid label="\"@\""] - 254 -> 254 [style=solid label="\"{|\""] - 254 -> 56 [style=solid label="\"binary\""] - 254 -> 57 [style=solid label="\"hexadecimal\""] - 254 -> 58 [style=solid label="\"integer\""] - 254 -> 59 [style=solid label="\"rational\""] - 254 -> 60 [style=solid label="\"decimal\""] - 254 -> 61 [style=solid label="\"string\""] - 254 -> 9 [style=solid label="\"identifier\""] - 254 -> 344 [style=dashed label="Rules"] - 254 -> 325 [style=dashed label="Rule"] - 254 -> 256 [style=dashed label="SkipRule"] - 254 -> 257 [style=dashed label="ConditionalRule"] - 254 -> 258 [style=dashed label="CaseRule"] - 254 -> 259 [style=dashed label="LetRule"] - 254 -> 260 [style=dashed label="LocalRule"] - 254 -> 261 [style=dashed label="ForallRule"] - 254 -> 262 [style=dashed label="ChooseRule"] - 254 -> 263 [style=dashed label="IterateRule"] - 254 -> 264 [style=dashed label="BlockRule"] - 254 -> 265 [style=dashed label="SequenceRule"] - 254 -> 266 [style=dashed label="UpdateRule"] - 254 -> 267 [style=dashed label="CallRule"] - 254 -> 268 [style=dashed label="WhileRule"] - 254 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 254 -> 270 [style=dashed label="CallExpression"] - 254 -> 271 [style=dashed label="DirectCallExpression"] - 254 -> 67 [style=dashed label="MethodCallExpression"] - 254 -> 68 [style=dashed label="LiteralCallExpression"] - 254 -> 69 [style=dashed label="IndirectCallExpression"] - 254 -> 77 [style=dashed label="Literal"] - 254 -> 78 [style=dashed label="UndefinedLiteral"] - 254 -> 79 [style=dashed label="BooleanLiteral"] - 254 -> 80 [style=dashed label="IntegerLiteral"] - 254 -> 81 [style=dashed label="RationalLiteral"] - 254 -> 82 [style=dashed label="DecimalLiteral"] - 254 -> 83 [style=dashed label="BinaryLiteral"] - 254 -> 84 [style=dashed label="StringLiteral"] - 254 -> 85 [style=dashed label="ReferenceLiteral"] - 254 -> 86 [style=dashed label="ListLiteral"] - 254 -> 87 [style=dashed label="RangeLiteral"] - 254 -> 88 [style=dashed label="TupleLiteral"] - 254 -> 89 [style=dashed label="RecordLiteral"] - 254 -> 90 [style=dashed label="Identifier"] - 254 -> 91 [style=dashed label="IdentifierPath"] - 255 [label="State 255\n\l 25 RuleDefinition: \"rule\" Identifier \"=\" Rule •\l"] - 255 -> "255R25" [style=solid] - "255R25" [label="R25", fillcolor=3, shape=diamond, style=filled] - 256 [label="State 256\n\l 46 Rule: SkipRule •\l"] - 256 -> "256R46" [style=solid] - "256R46" [label="R46", fillcolor=3, shape=diamond, style=filled] - 257 [label="State 257\n\l 47 Rule: ConditionalRule •\l"] - 257 -> "257R47" [style=solid] - "257R47" [label="R47", fillcolor=3, shape=diamond, style=filled] - 258 [label="State 258\n\l 48 Rule: CaseRule •\l"] - 258 -> "258R48" [style=solid] - "258R48" [label="R48", fillcolor=3, shape=diamond, style=filled] - 259 [label="State 259\n\l 49 Rule: LetRule •\l"] - 259 -> "259R49" [style=solid] - "259R49" [label="R49", fillcolor=3, shape=diamond, style=filled] - 260 [label="State 260\n\l 50 Rule: LocalRule •\l"] - 260 -> "260R50" [style=solid] - "260R50" [label="R50", fillcolor=3, shape=diamond, style=filled] - 261 [label="State 261\n\l 51 Rule: ForallRule •\l"] - 261 -> "261R51" [style=solid] - "261R51" [label="R51", fillcolor=3, shape=diamond, style=filled] - 262 [label="State 262\n\l 52 Rule: ChooseRule •\l"] - 262 -> "262R52" [style=solid] - "262R52" [label="R52", fillcolor=3, shape=diamond, style=filled] - 263 [label="State 263\n\l 53 Rule: IterateRule •\l"] - 263 -> "263R53" [style=solid] - "263R53" [label="R53", fillcolor=3, shape=diamond, style=filled] - 264 [label="State 264\n\l 54 Rule: BlockRule •\l"] - 264 -> "264R54" [style=solid] - "264R54" [label="R54", fillcolor=3, shape=diamond, style=filled] - 265 [label="State 265\n\l 55 Rule: SequenceRule •\l"] - 265 -> "265R55" [style=solid] - "265R55" [label="R55", fillcolor=3, shape=diamond, style=filled] - 266 [label="State 266\n\l 56 Rule: UpdateRule •\l"] - 266 -> "266R56" [style=solid] - "266R56" [label="R56", fillcolor=3, shape=diamond, style=filled] - 267 [label="State 267\n\l 57 Rule: CallRule •\l"] - 267 -> "267R57" [style=solid] - "267R57" [label="R57", fillcolor=3, shape=diamond, style=filled] - 268 [label="State 268\n\l 58 Rule: WhileRule •\l"] - 268 -> "268R58" [style=solid] - "268R58" [label="R58", fillcolor=3, shape=diamond, style=filled] - 269 [label="State 269\n\l129 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l130 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l131 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l132 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l133 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] - 269 -> 152 [style=solid label="\".\""] - 270 [label="State 270\n\l 84 CallRule: CallExpression •\l 99 SimpleOrClaspedTerm: CallExpression •\l134 IndirectCallExpression: CallExpression • \"(\" \")\"\l135 | CallExpression • \"(\" Terms \")\"\l136 | CallExpression • \"(\" error \")\"\l"] - 270 -> 153 [style=solid label="\"(\""] - 270 -> "270R84" [style=solid] - "270R84" [label="R84", fillcolor=3, shape=diamond, style=filled] - 270 -> "270R99" [label="[\".\"]", style=solid] - "270R99" [label="R99", fillcolor=3, shape=diamond, style=filled] - 271 [label="State 271\n\l 83 UpdateRule: DirectCallExpression • \":=\" Term\l122 CallExpression: DirectCallExpression •\l"] - 271 -> 345 [style=solid label="\":=\""] - 271 -> "271R122" [style=solid] - "271R122" [label="R122", fillcolor=3, shape=diamond, style=filled] - 272 [label="State 272\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" error • \")\" \"=\" Rule\l 30 | \"rule\" Identifier \"(\" error • \")\" \"->\" Type \"=\" Rule\l"] - 272 -> 346 [style=solid label="\")\""] - 273 [label="State 273\n\l 27 RuleDefinition: \"rule\" Identifier \"(\" Parameters • \")\" \"=\" Rule\l 28 | \"rule\" Identifier \"(\" Parameters • \")\" \"->\" Type \"=\" Rule\l193 Parameters: Parameters • \",\" TypedAttributedVariable\l"] - 273 -> 347 [style=solid label="\")\""] - 273 -> 315 [style=solid label="\",\""] - 274 [label="State 274\n\l 26 RuleDefinition: \"rule\" Identifier \"->\" Type • \"=\" Rule\l"] - 274 -> 348 [style=solid label="\"=\""] - 275 [label="State 275\n\l 37 UsingDefinition: \"using\" Identifier \"=\" Type •\l"] - 275 -> "275R37" [style=solid] - "275R37" [label="R37", fillcolor=3, shape=diamond, style=filled] - 276 [label="State 276\n\l 39 UsingPathDefinition: \"using\" IdentifierPath \"::\" \"*\" •\l"] - 276 -> "276R39" [style=solid] - "276R39" [label="R39", fillcolor=3, shape=diamond, style=filled] - 277 [label="State 277\n\l 40 InvariantDefinition: \"invariant\" Identifier \"=\" Term •\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 277 -> 134 [style=solid label="\"and\""] - 277 -> 135 [style=solid label="\"or\""] - 277 -> 136 [style=solid label="\"xor\""] - 277 -> 137 [style=solid label="\"implies\""] - 277 -> 138 [style=solid label="\"+\""] - 277 -> 139 [style=solid label="\"-\""] - 277 -> 140 [style=solid label="\"=\""] - 277 -> 141 [style=solid label="\"<\""] - 277 -> 142 [style=solid label="\">\""] - 277 -> 143 [style=solid label="\"*\""] - 277 -> 144 [style=solid label="\"/\""] - 277 -> 145 [style=solid label="\"%\""] - 277 -> 146 [style=solid label="\"^\""] - 277 -> 147 [style=solid label="\"=>\""] - 277 -> 148 [style=solid label="\"!=\""] - 277 -> 149 [style=solid label="\"<=\""] - 277 -> 150 [style=solid label="\">=\""] - 277 -> "277R40" [style=solid] - "277R40" [label="R40", fillcolor=3, shape=diamond, style=filled] - 278 [label="State 278\n\l 42 ImportDefinition: \"import\" IdentifierPath \"as\" Identifier •\l"] - 278 -> "278R42" [style=solid] - "278R42" [label="R42", fillcolor=3, shape=diamond, style=filled] - 279 [label="State 279\n\l 43 StructureDefinition: \"structure\" Identifier \"=\" \"{\" • FunctionDefinition \"}\"\l"] - 279 -> 23 [style=solid label="\"function\""] - 279 -> 349 [style=dashed label="FunctionDefinition"] - 280 [label="State 280\n\l190 FunctionParameters: Type •\l"] - 280 -> "280R190" [style=solid] - "280R190" [label="R190", fillcolor=3, shape=diamond, style=filled] - 281 [label="State 281\n\l189 FunctionParameters: FunctionParameters • \"*\" Type\l191 MaybeFunctionParameters: FunctionParameters •\l"] - 281 -> 350 [style=solid label="\"*\""] - 281 -> "281R191" [style=solid] - "281R191" [label="R191", fillcolor=3, shape=diamond, style=filled] - 282 [label="State 282\n\l 31 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters • \"->\" Type MaybeDefined MaybeInitially\l"] - 282 -> 351 [style=solid label="\"->\""] - 283 [label="State 283\n\l214 TypedVariable: Identifier \":\" Type •\l"] - 283 -> "283R214" [style=solid] - "283R214" [label="R214", fillcolor=3, shape=diamond, style=filled] - 284 [label="State 284\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l221 VariableBinding: AttributedVariable \"=\" Term •\l"] - 284 -> 134 [style=solid label="\"and\""] - 284 -> 135 [style=solid label="\"or\""] - 284 -> 136 [style=solid label="\"xor\""] - 284 -> 137 [style=solid label="\"implies\""] - 284 -> 138 [style=solid label="\"+\""] - 284 -> 139 [style=solid label="\"-\""] - 284 -> 140 [style=solid label="\"=\""] - 284 -> 141 [style=solid label="\"<\""] - 284 -> 142 [style=solid label="\">\""] - 284 -> 143 [style=solid label="\"*\""] - 284 -> 144 [style=solid label="\"/\""] - 284 -> 145 [style=solid label="\"%\""] - 284 -> 146 [style=solid label="\"^\""] - 284 -> 147 [style=solid label="\"=>\""] - 284 -> 148 [style=solid label="\"!=\""] - 284 -> 149 [style=solid label="\"<=\""] - 284 -> 150 [style=solid label="\">=\""] - 284 -> "284R221" [style=solid] - "284R221" [label="R221", fillcolor=3, shape=diamond, style=filled] - 285 [label="State 285\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l138 LetExpression: \"let\" VariableBindings \"in\" Term •\l"] - 285 -> 134 [style=solid label="\"and\""] - 285 -> 135 [style=solid label="\"or\""] - 285 -> 136 [style=solid label="\"xor\""] - 285 -> 137 [style=solid label="\"implies\""] - 285 -> 138 [style=solid label="\"+\""] - 285 -> 139 [style=solid label="\"-\""] - 285 -> 140 [style=solid label="\"=\""] - 285 -> 141 [style=solid label="\"<\""] - 285 -> 142 [style=solid label="\">\""] - 285 -> 143 [style=solid label="\"*\""] - 285 -> 144 [style=solid label="\"/\""] - 285 -> 145 [style=solid label="\"%\""] - 285 -> 146 [style=solid label="\"^\""] - 285 -> 147 [style=solid label="\"=>\""] - 285 -> 148 [style=solid label="\"!=\""] - 285 -> 149 [style=solid label="\"<=\""] - 285 -> 150 [style=solid label="\">=\""] - 285 -> "285R138" [style=solid] - "285R138" [label="R138", fillcolor=3, shape=diamond, style=filled] - 286 [label="State 286\n\l219 VariableBindings: VariableBindings \",\" VariableBinding •\l"] - 286 -> "286R219" [style=solid] - "286R219" [label="R219", fillcolor=3, shape=diamond, style=filled] - 287 [label="State 287\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l141 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term • \"holds\" Term\l"] - 287 -> 352 [style=solid label="\"holds\""] - 287 -> 134 [style=solid label="\"and\""] - 287 -> 135 [style=solid label="\"or\""] - 287 -> 136 [style=solid label="\"xor\""] - 287 -> 137 [style=solid label="\"implies\""] - 287 -> 138 [style=solid label="\"+\""] - 287 -> 139 [style=solid label="\"-\""] - 287 -> 140 [style=solid label="\"=\""] - 287 -> 141 [style=solid label="\"<\""] - 287 -> 142 [style=solid label="\">\""] - 287 -> 143 [style=solid label="\"*\""] - 287 -> 144 [style=solid label="\"/\""] - 287 -> 145 [style=solid label="\"%\""] - 287 -> 146 [style=solid label="\"^\""] - 287 -> 147 [style=solid label="\"=>\""] - 287 -> 148 [style=solid label="\"!=\""] - 287 -> 149 [style=solid label="\"<=\""] - 287 -> 150 [style=solid label="\">=\""] - 288 [label="State 288\n\l210 AttributedVariables: AttributedVariables \",\" AttributedVariable •\l"] - 288 -> "288R210" [style=solid] - "288R210" [label="R210", fillcolor=3, shape=diamond, style=filled] - 289 [label="State 289\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l140 ChooseExpression: \"choose\" AttributedVariables \"in\" Term • \"do\" Term\l"] - 289 -> 353 [style=solid label="\"do\""] - 289 -> 134 [style=solid label="\"and\""] - 289 -> 135 [style=solid label="\"or\""] - 289 -> 136 [style=solid label="\"xor\""] - 289 -> 137 [style=solid label="\"implies\""] - 289 -> 138 [style=solid label="\"+\""] - 289 -> 139 [style=solid label="\"-\""] - 289 -> 140 [style=solid label="\"=\""] - 289 -> 141 [style=solid label="\"<\""] - 289 -> 142 [style=solid label="\">\""] - 289 -> 143 [style=solid label="\"*\""] - 289 -> 144 [style=solid label="\"/\""] - 289 -> 145 [style=solid label="\"%\""] - 289 -> 146 [style=solid label="\"^\""] - 289 -> 147 [style=solid label="\"=>\""] - 289 -> 148 [style=solid label="\"!=\""] - 289 -> 149 [style=solid label="\"<=\""] - 289 -> 150 [style=solid label="\">=\""] - 290 [label="State 290\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l139 ConditionalExpression: \"if\" Term \"then\" Term • \"else\" Term\l"] - 290 -> 354 [style=solid label="\"else\""] - 290 -> 134 [style=solid label="\"and\""] - 290 -> 135 [style=solid label="\"or\""] - 290 -> 136 [style=solid label="\"xor\""] - 290 -> 137 [style=solid label="\"implies\""] - 290 -> 138 [style=solid label="\"+\""] - 290 -> 139 [style=solid label="\"-\""] - 290 -> 140 [style=solid label="\"=\""] - 290 -> 141 [style=solid label="\"<\""] - 290 -> 142 [style=solid label="\">\""] - 290 -> 143 [style=solid label="\"*\""] - 290 -> 144 [style=solid label="\"/\""] - 290 -> 145 [style=solid label="\"%\""] - 290 -> 146 [style=solid label="\"^\""] - 290 -> 147 [style=solid label="\"=>\""] - 290 -> 148 [style=solid label="\"!=\""] - 290 -> 149 [style=solid label="\"<=\""] - 290 -> 150 [style=solid label="\">=\""] - 291 [label="State 291\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l142 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term • \"with\" Term\l"] - 291 -> 355 [style=solid label="\"with\""] - 291 -> 134 [style=solid label="\"and\""] - 291 -> 135 [style=solid label="\"or\""] - 291 -> 136 [style=solid label="\"xor\""] - 291 -> 137 [style=solid label="\"implies\""] - 291 -> 138 [style=solid label="\"+\""] - 291 -> 139 [style=solid label="\"-\""] - 291 -> 140 [style=solid label="\"=\""] - 291 -> 141 [style=solid label="\"<\""] - 291 -> 142 [style=solid label="\">\""] - 291 -> 143 [style=solid label="\"*\""] - 291 -> 144 [style=solid label="\"/\""] - 291 -> 145 [style=solid label="\"%\""] - 291 -> 146 [style=solid label="\"^\""] - 291 -> 147 [style=solid label="\"=>\""] - 291 -> 148 [style=solid label="\"!=\""] - 291 -> 149 [style=solid label="\"<=\""] - 291 -> 150 [style=solid label="\">=\""] - 292 [label="State 292\n\l 86 Terms: Terms \",\" Term •\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l170 TupleLiteral: \"(\" Terms \",\" Term • \")\"\l"] - 292 -> 134 [style=solid label="\"and\""] - 292 -> 135 [style=solid label="\"or\""] - 292 -> 136 [style=solid label="\"xor\""] - 292 -> 137 [style=solid label="\"implies\""] - 292 -> 138 [style=solid label="\"+\""] - 292 -> 139 [style=solid label="\"-\""] - 292 -> 140 [style=solid label="\"=\""] - 292 -> 356 [style=solid label="\")\""] - 292 -> 141 [style=solid label="\"<\""] - 292 -> 142 [style=solid label="\">\""] - 292 -> 143 [style=solid label="\"*\""] - 292 -> 144 [style=solid label="\"/\""] - 292 -> 145 [style=solid label="\"%\""] - 292 -> 146 [style=solid label="\"^\""] - 292 -> 147 [style=solid label="\"=>\""] - 292 -> 148 [style=solid label="\"!=\""] - 292 -> 149 [style=solid label="\"<=\""] - 292 -> 150 [style=solid label="\">=\""] - 292 -> "292R86" [style=solid] - "292R86" [label="R86", fillcolor=3, shape=diamond, style=filled] - 293 [label="State 293\n\l172 Assignments: Assignments \",\" Assignment •\l"] - 293 -> "293R172" [style=solid] - "293R172" [label="R172", fillcolor=3, shape=diamond, style=filled] - 294 [label="State 294\n\l174 Assignment: Identifier • \":\" Term\l"] - 294 -> 188 [style=solid label="\":\""] - 295 [label="State 295\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l174 Assignment: Identifier \":\" Term •\l"] - 295 -> 134 [style=solid label="\"and\""] - 295 -> 135 [style=solid label="\"or\""] - 295 -> 136 [style=solid label="\"xor\""] - 295 -> 137 [style=solid label="\"implies\""] - 295 -> 138 [style=solid label="\"+\""] - 295 -> 139 [style=solid label="\"-\""] - 295 -> 140 [style=solid label="\"=\""] - 295 -> 141 [style=solid label="\"<\""] - 295 -> 142 [style=solid label="\">\""] - 295 -> 143 [style=solid label="\"*\""] - 295 -> 144 [style=solid label="\"/\""] - 295 -> 145 [style=solid label="\"%\""] - 295 -> 146 [style=solid label="\"^\""] - 295 -> 147 [style=solid label="\"=>\""] - 295 -> 148 [style=solid label="\"!=\""] - 295 -> 149 [style=solid label="\"<=\""] - 295 -> 150 [style=solid label="\">=\""] - 295 -> "295R174" [style=solid] - "295R174" [label="R174", fillcolor=3, shape=diamond, style=filled] - 296 [label="State 296\n\l 86 Terms: Terms \",\" Term •\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 296 -> 134 [style=solid label="\"and\""] - 296 -> 135 [style=solid label="\"or\""] - 296 -> 136 [style=solid label="\"xor\""] - 296 -> 137 [style=solid label="\"implies\""] - 296 -> 138 [style=solid label="\"+\""] - 296 -> 139 [style=solid label="\"-\""] - 296 -> 140 [style=solid label="\"=\""] - 296 -> 141 [style=solid label="\"<\""] - 296 -> 142 [style=solid label="\">\""] - 296 -> 143 [style=solid label="\"*\""] - 296 -> 144 [style=solid label="\"/\""] - 296 -> 145 [style=solid label="\"%\""] - 296 -> 146 [style=solid label="\"^\""] - 296 -> 147 [style=solid label="\"=>\""] - 296 -> 148 [style=solid label="\"!=\""] - 296 -> 149 [style=solid label="\"<=\""] - 296 -> 150 [style=solid label="\">=\""] - 296 -> "296R86" [style=solid] - "296R86" [label="R86", fillcolor=3, shape=diamond, style=filled] - 297 [label="State 297\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l169 RangeLiteral: \"[\" Term \"..\" Term • \"]\"\l"] - 297 -> 134 [style=solid label="\"and\""] - 297 -> 135 [style=solid label="\"or\""] - 297 -> 136 [style=solid label="\"xor\""] - 297 -> 137 [style=solid label="\"implies\""] - 297 -> 138 [style=solid label="\"+\""] - 297 -> 139 [style=solid label="\"-\""] - 297 -> 140 [style=solid label="\"=\""] - 297 -> 357 [style=solid label="\"]\""] - 297 -> 141 [style=solid label="\"<\""] - 297 -> 142 [style=solid label="\">\""] - 297 -> 143 [style=solid label="\"*\""] - 297 -> 144 [style=solid label="\"/\""] - 297 -> 145 [style=solid label="\"%\""] - 297 -> 146 [style=solid label="\"^\""] - 297 -> 147 [style=solid label="\"=>\""] - 297 -> 148 [style=solid label="\"!=\""] - 297 -> 149 [style=solid label="\"<=\""] - 297 -> 150 [style=solid label="\">=\""] - 298 [label="State 298\n\l175 Types: Types • \",\" Type\l184 TupleType: \"(\" Types • \",\" Type \")\"\l"] - 298 -> 358 [style=solid label="\",\""] - 299 [label="State 299\n\l176 Types: Type •\l"] - 299 -> "299R176" [style=solid] - "299R176" [label="R176", fillcolor=3, shape=diamond, style=filled] - 300 [label="State 300\n\l207 IdentifierPath: Identifier •\l214 TypedVariable: Identifier • \":\" Type\l"] - 300 -> 173 [style=solid label="\":\""] - 300 -> "300R207" [style=solid] - "300R207" [label="R207", fillcolor=3, shape=diamond, style=filled] - 301 [label="State 301\n\l185 RecordType: \"(\" TypedVariables • \",\" TypedVariable \")\"\l212 TypedVariables: TypedVariables • \",\" TypedVariable\l"] - 301 -> 359 [style=solid label="\",\""] - 302 [label="State 302\n\l213 TypedVariables: TypedVariable •\l"] - 302 -> "302R213" [style=solid] - "302R213" [label="R213", fillcolor=3, shape=diamond, style=filled] - 303 [label="State 303\n\l186 TemplateType: IdentifierPath \"<\" • Types \">\"\l187 RelationType: IdentifierPath \"<\" • MaybeFunctionParameters \"->\" Type \">\"\l"] - 303 -> 8 [style=solid label="\"in\""] - 303 -> 211 [style=solid label="\"(\""] - 303 -> 9 [style=solid label="\"identifier\""] - 303 -> 360 [style=dashed label="Types"] - 303 -> 361 [style=dashed label="Type"] - 303 -> 213 [style=dashed label="BasicType"] - 303 -> 214 [style=dashed label="TupleType"] - 303 -> 215 [style=dashed label="RecordType"] - 303 -> 216 [style=dashed label="TemplateType"] - 303 -> 217 [style=dashed label="RelationType"] - 303 -> 218 [style=dashed label="FixedSizedType"] - 303 -> 281 [style=dashed label="FunctionParameters"] - 303 -> 362 [style=dashed label="MaybeFunctionParameters"] - 303 -> 90 [style=dashed label="Identifier"] - 303 -> 219 [style=dashed label="IdentifierPath"] + 250 -> 171 [style=dashed label="Term"] + 250 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 250 -> 68 [style=dashed label="OperatorExpression"] + 250 -> 69 [style=dashed label="CallExpression"] + 250 -> 70 [style=dashed label="DirectCallExpression"] + 250 -> 71 [style=dashed label="MethodCallExpression"] + 250 -> 72 [style=dashed label="LiteralCallExpression"] + 250 -> 73 [style=dashed label="IndirectCallExpression"] + 250 -> 74 [style=dashed label="TypeCastingExpression"] + 250 -> 75 [style=dashed label="LetExpression"] + 250 -> 76 [style=dashed label="ConditionalExpression"] + 250 -> 77 [style=dashed label="ChooseExpression"] + 250 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 250 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 250 -> 80 [style=dashed label="CardinalityExpression"] + 250 -> 81 [style=dashed label="Literal"] + 250 -> 82 [style=dashed label="UndefinedLiteral"] + 250 -> 83 [style=dashed label="BooleanLiteral"] + 250 -> 84 [style=dashed label="IntegerLiteral"] + 250 -> 85 [style=dashed label="RationalLiteral"] + 250 -> 86 [style=dashed label="DecimalLiteral"] + 250 -> 87 [style=dashed label="BinaryLiteral"] + 250 -> 88 [style=dashed label="StringLiteral"] + 250 -> 89 [style=dashed label="ReferenceLiteral"] + 250 -> 90 [style=dashed label="ListLiteral"] + 250 -> 91 [style=dashed label="RangeLiteral"] + 250 -> 172 [style=dashed label="TupleLiteral"] + 250 -> 93 [style=dashed label="RecordLiteral"] + 250 -> 331 [style=dashed label="Initializer"] + 250 -> 94 [style=dashed label="Identifier"] + 250 -> 95 [style=dashed label="IdentifierPath"] + 251 [label="State 251\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error • \")\" \"->\" Type \"=\" Term\l"] + 251 -> 332 [style=solid label="\")\""] + 252 [label="State 252\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters • \")\" \"->\" Type \"=\" Term\l209 Parameters: Parameters • \",\" TypedAttributedVariable\l"] + 252 -> 333 [style=solid label="\")\""] + 252 -> 334 [style=solid label="\",\""] + 253 [label="State 253\n\l230 TypedVariable: Identifier • \":\" Type\l"] + 253 -> 198 [style=solid label="\":\""] + 254 [label="State 254\n\l234 TypedAttributedVariable: TypedVariable •\l"] + 254 -> "254R234" [style=solid] + "254R234" [label="R234", fillcolor=3, shape=diamond, style=filled] + 255 [label="State 255\n\l210 Parameters: TypedAttributedVariable •\l"] + 255 -> "255R210" [style=solid] + "255R210" [label="R210", fillcolor=3, shape=diamond, style=filled] + 256 [label="State 256\n\l233 TypedAttributedVariable: Attributes • TypedVariable\l244 Attributes: Attributes • Attribute\l"] + 256 -> 8 [style=solid label="\"in\""] + 256 -> 2 [style=solid label="\"[\""] + 256 -> 9 [style=solid label="\"identifier\""] + 256 -> 253 [style=dashed label="Identifier"] + 256 -> 335 [style=dashed label="TypedVariable"] + 256 -> 43 [style=dashed label="Attribute"] + 257 [label="State 257\n\l 24 DerivedDefinition: \"derived\" Identifier \"->\" Type • \"=\" Term\l"] + 257 -> 336 [style=solid label="\"=\""] + 258 [label="State 258\n\l 23 EnumerationDefinition: \"enumeration\" Identifier \"=\" \"{\" • Enumerators \"}\"\l"] + 258 -> 337 [style=dotted] + 258 -> 8 [style=solid label="\"in\""] + 258 -> 2 [style=solid label="\"[\""] + 258 -> 9 [style=solid label="\"identifier\""] + 258 -> 338 [style=dashed label="EnumeratorDefinition"] + 258 -> 339 [style=dashed label="Enumerators"] + 258 -> 340 [style=dashed label="Identifier"] + 258 -> 341 [style=dashed label="Attributes"] + 258 -> 6 [style=dashed label="Attribute"] + 259 [label="State 259\n\l 96 SequenceRule: \"seq\" • Rules \"endseq\"\l 98 | \"seq\" • error \"endseq\"\l"] + 259 -> 342 [style=dotted] + 259 -> 259 [style=solid label="\"seq\""] + 259 -> 260 [style=solid label="\"par\""] + 259 -> 261 [style=solid label="\"skip\""] + 259 -> 262 [style=solid label="\"let\""] + 259 -> 263 [style=solid label="\"local\""] + 259 -> 8 [style=solid label="\"in\""] + 259 -> 264 [style=solid label="\"forall\""] + 259 -> 265 [style=solid label="\"choose\""] + 259 -> 266 [style=solid label="\"iterate\""] + 259 -> 267 [style=solid label="\"if\""] + 259 -> 268 [style=solid label="\"case\""] + 259 -> 269 [style=solid label="\"while\""] + 259 -> 50 [style=solid label="\"undef\""] + 259 -> 51 [style=solid label="\"false\""] + 259 -> 52 [style=solid label="\"true\""] + 259 -> 54 [style=solid label="\"+\""] + 259 -> 55 [style=solid label="\"-\""] + 259 -> 56 [style=solid label="\"(\""] + 259 -> 57 [style=solid label="\"[\""] + 259 -> 270 [style=solid label="\"{\""] + 259 -> 59 [style=solid label="\"@\""] + 259 -> 271 [style=solid label="\"{|\""] + 259 -> 60 [style=solid label="\"binary\""] + 259 -> 61 [style=solid label="\"hexadecimal\""] + 259 -> 62 [style=solid label="\"integer\""] + 259 -> 63 [style=solid label="\"rational\""] + 259 -> 64 [style=solid label="\"decimal\""] + 259 -> 65 [style=solid label="\"string\""] + 259 -> 9 [style=solid label="\"identifier\""] + 259 -> 343 [style=dashed label="Rules"] + 259 -> 344 [style=dashed label="Rule"] + 259 -> 273 [style=dashed label="SkipRule"] + 259 -> 274 [style=dashed label="ConditionalRule"] + 259 -> 275 [style=dashed label="CaseRule"] + 259 -> 276 [style=dashed label="LetRule"] + 259 -> 277 [style=dashed label="LocalRule"] + 259 -> 278 [style=dashed label="ForallRule"] + 259 -> 279 [style=dashed label="ChooseRule"] + 259 -> 280 [style=dashed label="IterateRule"] + 259 -> 281 [style=dashed label="BlockRule"] + 259 -> 282 [style=dashed label="SequenceRule"] + 259 -> 283 [style=dashed label="UpdateRule"] + 259 -> 284 [style=dashed label="CallRule"] + 259 -> 285 [style=dashed label="WhileRule"] + 259 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 259 -> 287 [style=dashed label="CallExpression"] + 259 -> 288 [style=dashed label="DirectCallExpression"] + 259 -> 71 [style=dashed label="MethodCallExpression"] + 259 -> 72 [style=dashed label="LiteralCallExpression"] + 259 -> 73 [style=dashed label="IndirectCallExpression"] + 259 -> 81 [style=dashed label="Literal"] + 259 -> 82 [style=dashed label="UndefinedLiteral"] + 259 -> 83 [style=dashed label="BooleanLiteral"] + 259 -> 84 [style=dashed label="IntegerLiteral"] + 259 -> 85 [style=dashed label="RationalLiteral"] + 259 -> 86 [style=dashed label="DecimalLiteral"] + 259 -> 87 [style=dashed label="BinaryLiteral"] + 259 -> 88 [style=dashed label="StringLiteral"] + 259 -> 89 [style=dashed label="ReferenceLiteral"] + 259 -> 90 [style=dashed label="ListLiteral"] + 259 -> 91 [style=dashed label="RangeLiteral"] + 259 -> 92 [style=dashed label="TupleLiteral"] + 259 -> 93 [style=dashed label="RecordLiteral"] + 259 -> 94 [style=dashed label="Identifier"] + 259 -> 95 [style=dashed label="IdentifierPath"] + 260 [label="State 260\n\l 92 BlockRule: \"par\" • Rules \"endpar\"\l 94 | \"par\" • error \"endpar\"\l"] + 260 -> 345 [style=dotted] + 260 -> 259 [style=solid label="\"seq\""] + 260 -> 260 [style=solid label="\"par\""] + 260 -> 261 [style=solid label="\"skip\""] + 260 -> 262 [style=solid label="\"let\""] + 260 -> 263 [style=solid label="\"local\""] + 260 -> 8 [style=solid label="\"in\""] + 260 -> 264 [style=solid label="\"forall\""] + 260 -> 265 [style=solid label="\"choose\""] + 260 -> 266 [style=solid label="\"iterate\""] + 260 -> 267 [style=solid label="\"if\""] + 260 -> 268 [style=solid label="\"case\""] + 260 -> 269 [style=solid label="\"while\""] + 260 -> 50 [style=solid label="\"undef\""] + 260 -> 51 [style=solid label="\"false\""] + 260 -> 52 [style=solid label="\"true\""] + 260 -> 54 [style=solid label="\"+\""] + 260 -> 55 [style=solid label="\"-\""] + 260 -> 56 [style=solid label="\"(\""] + 260 -> 57 [style=solid label="\"[\""] + 260 -> 270 [style=solid label="\"{\""] + 260 -> 59 [style=solid label="\"@\""] + 260 -> 271 [style=solid label="\"{|\""] + 260 -> 60 [style=solid label="\"binary\""] + 260 -> 61 [style=solid label="\"hexadecimal\""] + 260 -> 62 [style=solid label="\"integer\""] + 260 -> 63 [style=solid label="\"rational\""] + 260 -> 64 [style=solid label="\"decimal\""] + 260 -> 65 [style=solid label="\"string\""] + 260 -> 9 [style=solid label="\"identifier\""] + 260 -> 346 [style=dashed label="Rules"] + 260 -> 344 [style=dashed label="Rule"] + 260 -> 273 [style=dashed label="SkipRule"] + 260 -> 274 [style=dashed label="ConditionalRule"] + 260 -> 275 [style=dashed label="CaseRule"] + 260 -> 276 [style=dashed label="LetRule"] + 260 -> 277 [style=dashed label="LocalRule"] + 260 -> 278 [style=dashed label="ForallRule"] + 260 -> 279 [style=dashed label="ChooseRule"] + 260 -> 280 [style=dashed label="IterateRule"] + 260 -> 281 [style=dashed label="BlockRule"] + 260 -> 282 [style=dashed label="SequenceRule"] + 260 -> 283 [style=dashed label="UpdateRule"] + 260 -> 284 [style=dashed label="CallRule"] + 260 -> 285 [style=dashed label="WhileRule"] + 260 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 260 -> 287 [style=dashed label="CallExpression"] + 260 -> 288 [style=dashed label="DirectCallExpression"] + 260 -> 71 [style=dashed label="MethodCallExpression"] + 260 -> 72 [style=dashed label="LiteralCallExpression"] + 260 -> 73 [style=dashed label="IndirectCallExpression"] + 260 -> 81 [style=dashed label="Literal"] + 260 -> 82 [style=dashed label="UndefinedLiteral"] + 260 -> 83 [style=dashed label="BooleanLiteral"] + 260 -> 84 [style=dashed label="IntegerLiteral"] + 260 -> 85 [style=dashed label="RationalLiteral"] + 260 -> 86 [style=dashed label="DecimalLiteral"] + 260 -> 87 [style=dashed label="BinaryLiteral"] + 260 -> 88 [style=dashed label="StringLiteral"] + 260 -> 89 [style=dashed label="ReferenceLiteral"] + 260 -> 90 [style=dashed label="ListLiteral"] + 260 -> 91 [style=dashed label="RangeLiteral"] + 260 -> 92 [style=dashed label="TupleLiteral"] + 260 -> 93 [style=dashed label="RecordLiteral"] + 260 -> 94 [style=dashed label="Identifier"] + 260 -> 95 [style=dashed label="IdentifierPath"] + 261 [label="State 261\n\l 75 SkipRule: \"skip\" •\l"] + 261 -> "261R75" [style=solid] + "261R75" [label="R75", fillcolor=3, shape=diamond, style=filled] + 262 [label="State 262\n\l 85 LetRule: \"let\" • VariableBindings \"in\" Rule\l"] + 262 -> 8 [style=solid label="\"in\""] + 262 -> 2 [style=solid label="\"[\""] + 262 -> 9 [style=solid label="\"identifier\""] + 262 -> 121 [style=dashed label="Identifier"] + 262 -> 122 [style=dashed label="Variable"] + 262 -> 123 [style=dashed label="TypedVariable"] + 262 -> 124 [style=dashed label="AttributedVariable"] + 262 -> 347 [style=dashed label="VariableBindings"] + 262 -> 126 [style=dashed label="VariableBinding"] + 262 -> 127 [style=dashed label="Attributes"] + 262 -> 6 [style=dashed label="Attribute"] + 263 [label="State 263\n\l 86 LocalRule: \"local\" • LocalFunctionDefinitions \"in\" Rule\l"] + 263 -> 348 [style=dotted] + 263 -> 8 [style=solid label="\"in\""] + 263 -> 2 [style=solid label="\"[\""] + 263 -> 9 [style=solid label="\"identifier\""] + 263 -> 349 [style=dashed label="Identifier"] + 263 -> 350 [style=dashed label="LocalFunctionDefinitions"] + 263 -> 351 [style=dashed label="AttributedLocalFunctionDefinition"] + 263 -> 352 [style=dashed label="LocalFunctionDefinition"] + 263 -> 353 [style=dashed label="Attributes"] + 263 -> 6 [style=dashed label="Attribute"] + 264 [label="State 264\n\l 87 ForallRule: \"forall\" • AttributedVariables \"in\" Term \"do\" Rule\l 88 | \"forall\" • AttributedVariables \"in\" Term \"with\" Term \"do\" Rule\l"] + 264 -> 8 [style=solid label="\"in\""] + 264 -> 2 [style=solid label="\"[\""] + 264 -> 9 [style=solid label="\"identifier\""] + 264 -> 121 [style=dashed label="Identifier"] + 264 -> 122 [style=dashed label="Variable"] + 264 -> 354 [style=dashed label="AttributedVariables"] + 264 -> 123 [style=dashed label="TypedVariable"] + 264 -> 129 [style=dashed label="AttributedVariable"] + 264 -> 127 [style=dashed label="Attributes"] + 264 -> 6 [style=dashed label="Attribute"] + 265 [label="State 265\n\l 89 ChooseRule: \"choose\" • AttributedVariables \"in\" Term \"do\" Rule\l"] + 265 -> 8 [style=solid label="\"in\""] + 265 -> 2 [style=solid label="\"[\""] + 265 -> 9 [style=solid label="\"identifier\""] + 265 -> 121 [style=dashed label="Identifier"] + 265 -> 122 [style=dashed label="Variable"] + 265 -> 355 [style=dashed label="AttributedVariables"] + 265 -> 123 [style=dashed label="TypedVariable"] + 265 -> 129 [style=dashed label="AttributedVariable"] + 265 -> 127 [style=dashed label="Attributes"] + 265 -> 6 [style=dashed label="Attribute"] + 266 [label="State 266\n\l 90 IterateRule: \"iterate\" • Rule\l"] + 266 -> 259 [style=solid label="\"seq\""] + 266 -> 260 [style=solid label="\"par\""] + 266 -> 261 [style=solid label="\"skip\""] + 266 -> 262 [style=solid label="\"let\""] + 266 -> 263 [style=solid label="\"local\""] + 266 -> 8 [style=solid label="\"in\""] + 266 -> 264 [style=solid label="\"forall\""] + 266 -> 265 [style=solid label="\"choose\""] + 266 -> 266 [style=solid label="\"iterate\""] + 266 -> 267 [style=solid label="\"if\""] + 266 -> 268 [style=solid label="\"case\""] + 266 -> 269 [style=solid label="\"while\""] + 266 -> 50 [style=solid label="\"undef\""] + 266 -> 51 [style=solid label="\"false\""] + 266 -> 52 [style=solid label="\"true\""] + 266 -> 54 [style=solid label="\"+\""] + 266 -> 55 [style=solid label="\"-\""] + 266 -> 56 [style=solid label="\"(\""] + 266 -> 57 [style=solid label="\"[\""] + 266 -> 270 [style=solid label="\"{\""] + 266 -> 59 [style=solid label="\"@\""] + 266 -> 271 [style=solid label="\"{|\""] + 266 -> 60 [style=solid label="\"binary\""] + 266 -> 61 [style=solid label="\"hexadecimal\""] + 266 -> 62 [style=solid label="\"integer\""] + 266 -> 63 [style=solid label="\"rational\""] + 266 -> 64 [style=solid label="\"decimal\""] + 266 -> 65 [style=solid label="\"string\""] + 266 -> 9 [style=solid label="\"identifier\""] + 266 -> 356 [style=dashed label="Rule"] + 266 -> 273 [style=dashed label="SkipRule"] + 266 -> 274 [style=dashed label="ConditionalRule"] + 266 -> 275 [style=dashed label="CaseRule"] + 266 -> 276 [style=dashed label="LetRule"] + 266 -> 277 [style=dashed label="LocalRule"] + 266 -> 278 [style=dashed label="ForallRule"] + 266 -> 279 [style=dashed label="ChooseRule"] + 266 -> 280 [style=dashed label="IterateRule"] + 266 -> 281 [style=dashed label="BlockRule"] + 266 -> 282 [style=dashed label="SequenceRule"] + 266 -> 283 [style=dashed label="UpdateRule"] + 266 -> 284 [style=dashed label="CallRule"] + 266 -> 285 [style=dashed label="WhileRule"] + 266 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 266 -> 287 [style=dashed label="CallExpression"] + 266 -> 288 [style=dashed label="DirectCallExpression"] + 266 -> 71 [style=dashed label="MethodCallExpression"] + 266 -> 72 [style=dashed label="LiteralCallExpression"] + 266 -> 73 [style=dashed label="IndirectCallExpression"] + 266 -> 81 [style=dashed label="Literal"] + 266 -> 82 [style=dashed label="UndefinedLiteral"] + 266 -> 83 [style=dashed label="BooleanLiteral"] + 266 -> 84 [style=dashed label="IntegerLiteral"] + 266 -> 85 [style=dashed label="RationalLiteral"] + 266 -> 86 [style=dashed label="DecimalLiteral"] + 266 -> 87 [style=dashed label="BinaryLiteral"] + 266 -> 88 [style=dashed label="StringLiteral"] + 266 -> 89 [style=dashed label="ReferenceLiteral"] + 266 -> 90 [style=dashed label="ListLiteral"] + 266 -> 91 [style=dashed label="RangeLiteral"] + 266 -> 92 [style=dashed label="TupleLiteral"] + 266 -> 93 [style=dashed label="RecordLiteral"] + 266 -> 94 [style=dashed label="Identifier"] + 266 -> 95 [style=dashed label="IdentifierPath"] + 267 [label="State 267\n\l 76 ConditionalRule: \"if\" • Term \"then\" Rule\l 77 | \"if\" • Term \"then\" Rule \"else\" Rule\l"] + 267 -> 45 [style=solid label="\"let\""] + 267 -> 8 [style=solid label="\"in\""] + 267 -> 46 [style=solid label="\"forall\""] + 267 -> 47 [style=solid label="\"choose\""] + 267 -> 48 [style=solid label="\"if\""] + 267 -> 49 [style=solid label="\"exists\""] + 267 -> 50 [style=solid label="\"undef\""] + 267 -> 51 [style=solid label="\"false\""] + 267 -> 52 [style=solid label="\"true\""] + 267 -> 53 [style=solid label="\"not\""] + 267 -> 54 [style=solid label="\"+\""] + 267 -> 55 [style=solid label="\"-\""] + 267 -> 56 [style=solid label="\"(\""] + 267 -> 57 [style=solid label="\"[\""] + 267 -> 58 [style=solid label="\"|\""] + 267 -> 59 [style=solid label="\"@\""] + 267 -> 60 [style=solid label="\"binary\""] + 267 -> 61 [style=solid label="\"hexadecimal\""] + 267 -> 62 [style=solid label="\"integer\""] + 267 -> 63 [style=solid label="\"rational\""] + 267 -> 64 [style=solid label="\"decimal\""] + 267 -> 65 [style=solid label="\"string\""] + 267 -> 9 [style=solid label="\"identifier\""] + 267 -> 357 [style=dashed label="Term"] + 267 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 267 -> 68 [style=dashed label="OperatorExpression"] + 267 -> 69 [style=dashed label="CallExpression"] + 267 -> 70 [style=dashed label="DirectCallExpression"] + 267 -> 71 [style=dashed label="MethodCallExpression"] + 267 -> 72 [style=dashed label="LiteralCallExpression"] + 267 -> 73 [style=dashed label="IndirectCallExpression"] + 267 -> 74 [style=dashed label="TypeCastingExpression"] + 267 -> 75 [style=dashed label="LetExpression"] + 267 -> 76 [style=dashed label="ConditionalExpression"] + 267 -> 77 [style=dashed label="ChooseExpression"] + 267 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 267 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 267 -> 80 [style=dashed label="CardinalityExpression"] + 267 -> 81 [style=dashed label="Literal"] + 267 -> 82 [style=dashed label="UndefinedLiteral"] + 267 -> 83 [style=dashed label="BooleanLiteral"] + 267 -> 84 [style=dashed label="IntegerLiteral"] + 267 -> 85 [style=dashed label="RationalLiteral"] + 267 -> 86 [style=dashed label="DecimalLiteral"] + 267 -> 87 [style=dashed label="BinaryLiteral"] + 267 -> 88 [style=dashed label="StringLiteral"] + 267 -> 89 [style=dashed label="ReferenceLiteral"] + 267 -> 90 [style=dashed label="ListLiteral"] + 267 -> 91 [style=dashed label="RangeLiteral"] + 267 -> 92 [style=dashed label="TupleLiteral"] + 267 -> 93 [style=dashed label="RecordLiteral"] + 267 -> 94 [style=dashed label="Identifier"] + 267 -> 95 [style=dashed label="IdentifierPath"] + 268 [label="State 268\n\l 78 CaseRule: \"case\" • Term \"of\" \"{\" CaseLabels \"}\"\l 79 | \"case\" • Term \"of\" \"{\" error \"}\"\l"] + 268 -> 45 [style=solid label="\"let\""] + 268 -> 8 [style=solid label="\"in\""] + 268 -> 46 [style=solid label="\"forall\""] + 268 -> 47 [style=solid label="\"choose\""] + 268 -> 48 [style=solid label="\"if\""] + 268 -> 49 [style=solid label="\"exists\""] + 268 -> 50 [style=solid label="\"undef\""] + 268 -> 51 [style=solid label="\"false\""] + 268 -> 52 [style=solid label="\"true\""] + 268 -> 53 [style=solid label="\"not\""] + 268 -> 54 [style=solid label="\"+\""] + 268 -> 55 [style=solid label="\"-\""] + 268 -> 56 [style=solid label="\"(\""] + 268 -> 57 [style=solid label="\"[\""] + 268 -> 58 [style=solid label="\"|\""] + 268 -> 59 [style=solid label="\"@\""] + 268 -> 60 [style=solid label="\"binary\""] + 268 -> 61 [style=solid label="\"hexadecimal\""] + 268 -> 62 [style=solid label="\"integer\""] + 268 -> 63 [style=solid label="\"rational\""] + 268 -> 64 [style=solid label="\"decimal\""] + 268 -> 65 [style=solid label="\"string\""] + 268 -> 9 [style=solid label="\"identifier\""] + 268 -> 358 [style=dashed label="Term"] + 268 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 268 -> 68 [style=dashed label="OperatorExpression"] + 268 -> 69 [style=dashed label="CallExpression"] + 268 -> 70 [style=dashed label="DirectCallExpression"] + 268 -> 71 [style=dashed label="MethodCallExpression"] + 268 -> 72 [style=dashed label="LiteralCallExpression"] + 268 -> 73 [style=dashed label="IndirectCallExpression"] + 268 -> 74 [style=dashed label="TypeCastingExpression"] + 268 -> 75 [style=dashed label="LetExpression"] + 268 -> 76 [style=dashed label="ConditionalExpression"] + 268 -> 77 [style=dashed label="ChooseExpression"] + 268 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 268 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 268 -> 80 [style=dashed label="CardinalityExpression"] + 268 -> 81 [style=dashed label="Literal"] + 268 -> 82 [style=dashed label="UndefinedLiteral"] + 268 -> 83 [style=dashed label="BooleanLiteral"] + 268 -> 84 [style=dashed label="IntegerLiteral"] + 268 -> 85 [style=dashed label="RationalLiteral"] + 268 -> 86 [style=dashed label="DecimalLiteral"] + 268 -> 87 [style=dashed label="BinaryLiteral"] + 268 -> 88 [style=dashed label="StringLiteral"] + 268 -> 89 [style=dashed label="ReferenceLiteral"] + 268 -> 90 [style=dashed label="ListLiteral"] + 268 -> 91 [style=dashed label="RangeLiteral"] + 268 -> 92 [style=dashed label="TupleLiteral"] + 268 -> 93 [style=dashed label="RecordLiteral"] + 268 -> 94 [style=dashed label="Identifier"] + 268 -> 95 [style=dashed label="IdentifierPath"] + 269 [label="State 269\n\l101 WhileRule: \"while\" • Term \"do\" Rule\l"] + 269 -> 45 [style=solid label="\"let\""] + 269 -> 8 [style=solid label="\"in\""] + 269 -> 46 [style=solid label="\"forall\""] + 269 -> 47 [style=solid label="\"choose\""] + 269 -> 48 [style=solid label="\"if\""] + 269 -> 49 [style=solid label="\"exists\""] + 269 -> 50 [style=solid label="\"undef\""] + 269 -> 51 [style=solid label="\"false\""] + 269 -> 52 [style=solid label="\"true\""] + 269 -> 53 [style=solid label="\"not\""] + 269 -> 54 [style=solid label="\"+\""] + 269 -> 55 [style=solid label="\"-\""] + 269 -> 56 [style=solid label="\"(\""] + 269 -> 57 [style=solid label="\"[\""] + 269 -> 58 [style=solid label="\"|\""] + 269 -> 59 [style=solid label="\"@\""] + 269 -> 60 [style=solid label="\"binary\""] + 269 -> 61 [style=solid label="\"hexadecimal\""] + 269 -> 62 [style=solid label="\"integer\""] + 269 -> 63 [style=solid label="\"rational\""] + 269 -> 64 [style=solid label="\"decimal\""] + 269 -> 65 [style=solid label="\"string\""] + 269 -> 9 [style=solid label="\"identifier\""] + 269 -> 359 [style=dashed label="Term"] + 269 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 269 -> 68 [style=dashed label="OperatorExpression"] + 269 -> 69 [style=dashed label="CallExpression"] + 269 -> 70 [style=dashed label="DirectCallExpression"] + 269 -> 71 [style=dashed label="MethodCallExpression"] + 269 -> 72 [style=dashed label="LiteralCallExpression"] + 269 -> 73 [style=dashed label="IndirectCallExpression"] + 269 -> 74 [style=dashed label="TypeCastingExpression"] + 269 -> 75 [style=dashed label="LetExpression"] + 269 -> 76 [style=dashed label="ConditionalExpression"] + 269 -> 77 [style=dashed label="ChooseExpression"] + 269 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 269 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 269 -> 80 [style=dashed label="CardinalityExpression"] + 269 -> 81 [style=dashed label="Literal"] + 269 -> 82 [style=dashed label="UndefinedLiteral"] + 269 -> 83 [style=dashed label="BooleanLiteral"] + 269 -> 84 [style=dashed label="IntegerLiteral"] + 269 -> 85 [style=dashed label="RationalLiteral"] + 269 -> 86 [style=dashed label="DecimalLiteral"] + 269 -> 87 [style=dashed label="BinaryLiteral"] + 269 -> 88 [style=dashed label="StringLiteral"] + 269 -> 89 [style=dashed label="ReferenceLiteral"] + 269 -> 90 [style=dashed label="ListLiteral"] + 269 -> 91 [style=dashed label="RangeLiteral"] + 269 -> 92 [style=dashed label="TupleLiteral"] + 269 -> 93 [style=dashed label="RecordLiteral"] + 269 -> 94 [style=dashed label="Identifier"] + 269 -> 95 [style=dashed label="IdentifierPath"] + 270 [label="State 270\n\l 91 BlockRule: \"{\" • Rules \"}\"\l 93 | \"{\" • error \"}\"\l"] + 270 -> 360 [style=dotted] + 270 -> 259 [style=solid label="\"seq\""] + 270 -> 260 [style=solid label="\"par\""] + 270 -> 261 [style=solid label="\"skip\""] + 270 -> 262 [style=solid label="\"let\""] + 270 -> 263 [style=solid label="\"local\""] + 270 -> 8 [style=solid label="\"in\""] + 270 -> 264 [style=solid label="\"forall\""] + 270 -> 265 [style=solid label="\"choose\""] + 270 -> 266 [style=solid label="\"iterate\""] + 270 -> 267 [style=solid label="\"if\""] + 270 -> 268 [style=solid label="\"case\""] + 270 -> 269 [style=solid label="\"while\""] + 270 -> 50 [style=solid label="\"undef\""] + 270 -> 51 [style=solid label="\"false\""] + 270 -> 52 [style=solid label="\"true\""] + 270 -> 54 [style=solid label="\"+\""] + 270 -> 55 [style=solid label="\"-\""] + 270 -> 56 [style=solid label="\"(\""] + 270 -> 57 [style=solid label="\"[\""] + 270 -> 270 [style=solid label="\"{\""] + 270 -> 59 [style=solid label="\"@\""] + 270 -> 271 [style=solid label="\"{|\""] + 270 -> 60 [style=solid label="\"binary\""] + 270 -> 61 [style=solid label="\"hexadecimal\""] + 270 -> 62 [style=solid label="\"integer\""] + 270 -> 63 [style=solid label="\"rational\""] + 270 -> 64 [style=solid label="\"decimal\""] + 270 -> 65 [style=solid label="\"string\""] + 270 -> 9 [style=solid label="\"identifier\""] + 270 -> 361 [style=dashed label="Rules"] + 270 -> 344 [style=dashed label="Rule"] + 270 -> 273 [style=dashed label="SkipRule"] + 270 -> 274 [style=dashed label="ConditionalRule"] + 270 -> 275 [style=dashed label="CaseRule"] + 270 -> 276 [style=dashed label="LetRule"] + 270 -> 277 [style=dashed label="LocalRule"] + 270 -> 278 [style=dashed label="ForallRule"] + 270 -> 279 [style=dashed label="ChooseRule"] + 270 -> 280 [style=dashed label="IterateRule"] + 270 -> 281 [style=dashed label="BlockRule"] + 270 -> 282 [style=dashed label="SequenceRule"] + 270 -> 283 [style=dashed label="UpdateRule"] + 270 -> 284 [style=dashed label="CallRule"] + 270 -> 285 [style=dashed label="WhileRule"] + 270 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 270 -> 287 [style=dashed label="CallExpression"] + 270 -> 288 [style=dashed label="DirectCallExpression"] + 270 -> 71 [style=dashed label="MethodCallExpression"] + 270 -> 72 [style=dashed label="LiteralCallExpression"] + 270 -> 73 [style=dashed label="IndirectCallExpression"] + 270 -> 81 [style=dashed label="Literal"] + 270 -> 82 [style=dashed label="UndefinedLiteral"] + 270 -> 83 [style=dashed label="BooleanLiteral"] + 270 -> 84 [style=dashed label="IntegerLiteral"] + 270 -> 85 [style=dashed label="RationalLiteral"] + 270 -> 86 [style=dashed label="DecimalLiteral"] + 270 -> 87 [style=dashed label="BinaryLiteral"] + 270 -> 88 [style=dashed label="StringLiteral"] + 270 -> 89 [style=dashed label="ReferenceLiteral"] + 270 -> 90 [style=dashed label="ListLiteral"] + 270 -> 91 [style=dashed label="RangeLiteral"] + 270 -> 92 [style=dashed label="TupleLiteral"] + 270 -> 93 [style=dashed label="RecordLiteral"] + 270 -> 94 [style=dashed label="Identifier"] + 270 -> 95 [style=dashed label="IdentifierPath"] + 271 [label="State 271\n\l 95 SequenceRule: \"{|\" • Rules \"|}\"\l 97 | \"{|\" • error \"|}\"\l"] + 271 -> 362 [style=dotted] + 271 -> 259 [style=solid label="\"seq\""] + 271 -> 260 [style=solid label="\"par\""] + 271 -> 261 [style=solid label="\"skip\""] + 271 -> 262 [style=solid label="\"let\""] + 271 -> 263 [style=solid label="\"local\""] + 271 -> 8 [style=solid label="\"in\""] + 271 -> 264 [style=solid label="\"forall\""] + 271 -> 265 [style=solid label="\"choose\""] + 271 -> 266 [style=solid label="\"iterate\""] + 271 -> 267 [style=solid label="\"if\""] + 271 -> 268 [style=solid label="\"case\""] + 271 -> 269 [style=solid label="\"while\""] + 271 -> 50 [style=solid label="\"undef\""] + 271 -> 51 [style=solid label="\"false\""] + 271 -> 52 [style=solid label="\"true\""] + 271 -> 54 [style=solid label="\"+\""] + 271 -> 55 [style=solid label="\"-\""] + 271 -> 56 [style=solid label="\"(\""] + 271 -> 57 [style=solid label="\"[\""] + 271 -> 270 [style=solid label="\"{\""] + 271 -> 59 [style=solid label="\"@\""] + 271 -> 271 [style=solid label="\"{|\""] + 271 -> 60 [style=solid label="\"binary\""] + 271 -> 61 [style=solid label="\"hexadecimal\""] + 271 -> 62 [style=solid label="\"integer\""] + 271 -> 63 [style=solid label="\"rational\""] + 271 -> 64 [style=solid label="\"decimal\""] + 271 -> 65 [style=solid label="\"string\""] + 271 -> 9 [style=solid label="\"identifier\""] + 271 -> 363 [style=dashed label="Rules"] + 271 -> 344 [style=dashed label="Rule"] + 271 -> 273 [style=dashed label="SkipRule"] + 271 -> 274 [style=dashed label="ConditionalRule"] + 271 -> 275 [style=dashed label="CaseRule"] + 271 -> 276 [style=dashed label="LetRule"] + 271 -> 277 [style=dashed label="LocalRule"] + 271 -> 278 [style=dashed label="ForallRule"] + 271 -> 279 [style=dashed label="ChooseRule"] + 271 -> 280 [style=dashed label="IterateRule"] + 271 -> 281 [style=dashed label="BlockRule"] + 271 -> 282 [style=dashed label="SequenceRule"] + 271 -> 283 [style=dashed label="UpdateRule"] + 271 -> 284 [style=dashed label="CallRule"] + 271 -> 285 [style=dashed label="WhileRule"] + 271 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 271 -> 287 [style=dashed label="CallExpression"] + 271 -> 288 [style=dashed label="DirectCallExpression"] + 271 -> 71 [style=dashed label="MethodCallExpression"] + 271 -> 72 [style=dashed label="LiteralCallExpression"] + 271 -> 73 [style=dashed label="IndirectCallExpression"] + 271 -> 81 [style=dashed label="Literal"] + 271 -> 82 [style=dashed label="UndefinedLiteral"] + 271 -> 83 [style=dashed label="BooleanLiteral"] + 271 -> 84 [style=dashed label="IntegerLiteral"] + 271 -> 85 [style=dashed label="RationalLiteral"] + 271 -> 86 [style=dashed label="DecimalLiteral"] + 271 -> 87 [style=dashed label="BinaryLiteral"] + 271 -> 88 [style=dashed label="StringLiteral"] + 271 -> 89 [style=dashed label="ReferenceLiteral"] + 271 -> 90 [style=dashed label="ListLiteral"] + 271 -> 91 [style=dashed label="RangeLiteral"] + 271 -> 92 [style=dashed label="TupleLiteral"] + 271 -> 93 [style=dashed label="RecordLiteral"] + 271 -> 94 [style=dashed label="Identifier"] + 271 -> 95 [style=dashed label="IdentifierPath"] + 272 [label="State 272\n\l 27 RuleDefinition: \"rule\" Identifier \"=\" Rule •\l"] + 272 -> "272R27" [style=solid] + "272R27" [label="R27", fillcolor=3, shape=diamond, style=filled] + 273 [label="State 273\n\l 62 Rule: SkipRule •\l"] + 273 -> "273R62" [style=solid] + "273R62" [label="R62", fillcolor=3, shape=diamond, style=filled] + 274 [label="State 274\n\l 63 Rule: ConditionalRule •\l"] + 274 -> "274R63" [style=solid] + "274R63" [label="R63", fillcolor=3, shape=diamond, style=filled] + 275 [label="State 275\n\l 64 Rule: CaseRule •\l"] + 275 -> "275R64" [style=solid] + "275R64" [label="R64", fillcolor=3, shape=diamond, style=filled] + 276 [label="State 276\n\l 65 Rule: LetRule •\l"] + 276 -> "276R65" [style=solid] + "276R65" [label="R65", fillcolor=3, shape=diamond, style=filled] + 277 [label="State 277\n\l 66 Rule: LocalRule •\l"] + 277 -> "277R66" [style=solid] + "277R66" [label="R66", fillcolor=3, shape=diamond, style=filled] + 278 [label="State 278\n\l 67 Rule: ForallRule •\l"] + 278 -> "278R67" [style=solid] + "278R67" [label="R67", fillcolor=3, shape=diamond, style=filled] + 279 [label="State 279\n\l 68 Rule: ChooseRule •\l"] + 279 -> "279R68" [style=solid] + "279R68" [label="R68", fillcolor=3, shape=diamond, style=filled] + 280 [label="State 280\n\l 69 Rule: IterateRule •\l"] + 280 -> "280R69" [style=solid] + "280R69" [label="R69", fillcolor=3, shape=diamond, style=filled] + 281 [label="State 281\n\l 70 Rule: BlockRule •\l"] + 281 -> "281R70" [style=solid] + "281R70" [label="R70", fillcolor=3, shape=diamond, style=filled] + 282 [label="State 282\n\l 71 Rule: SequenceRule •\l"] + 282 -> "282R71" [style=solid] + "282R71" [label="R71", fillcolor=3, shape=diamond, style=filled] + 283 [label="State 283\n\l 72 Rule: UpdateRule •\l"] + 283 -> "283R72" [style=solid] + "283R72" [label="R72", fillcolor=3, shape=diamond, style=filled] + 284 [label="State 284\n\l 73 Rule: CallRule •\l"] + 284 -> "284R73" [style=solid] + "284R73" [label="R73", fillcolor=3, shape=diamond, style=filled] + 285 [label="State 285\n\l 74 Rule: WhileRule •\l"] + 285 -> "285R74" [style=solid] + "285R74" [label="R74", fillcolor=3, shape=diamond, style=filled] + 286 [label="State 286\n\l145 MethodCallExpression: SimpleOrClaspedTerm • \".\" Identifier\l146 | SimpleOrClaspedTerm • \".\" Identifier \"(\" \")\"\l147 | SimpleOrClaspedTerm • \".\" Identifier \"(\" Terms \")\"\l148 | SimpleOrClaspedTerm • \".\" Identifier \"(\" error \")\"\l149 LiteralCallExpression: SimpleOrClaspedTerm • \".\" IntegerLiteral\l"] + 286 -> 166 [style=solid label="\".\""] + 287 [label="State 287\n\l100 CallRule: CallExpression •\l115 SimpleOrClaspedTerm: CallExpression •\l150 IndirectCallExpression: CallExpression • \"(\" \")\"\l151 | CallExpression • \"(\" Terms \")\"\l152 | CallExpression • \"(\" error \")\"\l"] + 287 -> 167 [style=solid label="\"(\""] + 287 -> "287R100" [style=solid] + "287R100" [label="R100", fillcolor=3, shape=diamond, style=filled] + 287 -> "287R115" [label="[\".\"]", style=solid] + "287R115" [label="R115", fillcolor=3, shape=diamond, style=filled] + 288 [label="State 288\n\l 99 UpdateRule: DirectCallExpression • \":=\" Term\l138 CallExpression: DirectCallExpression •\l"] + 288 -> 364 [style=solid label="\":=\""] + 288 -> "288R138" [style=solid] + "288R138" [label="R138", fillcolor=3, shape=diamond, style=filled] + 289 [label="State 289\n\l 31 RuleDefinition: \"rule\" Identifier \"(\" error • \")\" \"=\" Rule\l 32 | \"rule\" Identifier \"(\" error • \")\" \"->\" Type \"=\" Rule\l"] + 289 -> 365 [style=solid label="\")\""] + 290 [label="State 290\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters • \")\" \"=\" Rule\l 30 | \"rule\" Identifier \"(\" Parameters • \")\" \"->\" Type \"=\" Rule\l209 Parameters: Parameters • \",\" TypedAttributedVariable\l"] + 290 -> 366 [style=solid label="\")\""] + 290 -> 334 [style=solid label="\",\""] + 291 [label="State 291\n\l 28 RuleDefinition: \"rule\" Identifier \"->\" Type • \"=\" Rule\l"] + 291 -> 367 [style=solid label="\"=\""] + 292 [label="State 292\n\l 39 UsingDefinition: \"using\" Identifier \"=\" Type •\l"] + 292 -> "292R39" [style=solid] + "292R39" [label="R39", fillcolor=3, shape=diamond, style=filled] + 293 [label="State 293\n\l 41 UsingPathDefinition: \"using\" IdentifierPath \"::\" \"*\" •\l"] + 293 -> "293R41" [style=solid] + "293R41" [label="R41", fillcolor=3, shape=diamond, style=filled] + 294 [label="State 294\n\l 42 InvariantDefinition: \"invariant\" Identifier \"=\" Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 294 -> 148 [style=solid label="\"and\""] + 294 -> 149 [style=solid label="\"or\""] + 294 -> 150 [style=solid label="\"xor\""] + 294 -> 151 [style=solid label="\"implies\""] + 294 -> 152 [style=solid label="\"+\""] + 294 -> 153 [style=solid label="\"-\""] + 294 -> 154 [style=solid label="\"=\""] + 294 -> 155 [style=solid label="\"<\""] + 294 -> 156 [style=solid label="\">\""] + 294 -> 157 [style=solid label="\"*\""] + 294 -> 158 [style=solid label="\"/\""] + 294 -> 159 [style=solid label="\"%\""] + 294 -> 160 [style=solid label="\"^\""] + 294 -> 161 [style=solid label="\"=>\""] + 294 -> 162 [style=solid label="\"!=\""] + 294 -> 163 [style=solid label="\"<=\""] + 294 -> 164 [style=solid label="\">=\""] + 294 -> "294R42" [style=solid] + "294R42" [label="R42", fillcolor=3, shape=diamond, style=filled] + 295 [label="State 295\n\l 44 ImportDefinition: \"import\" IdentifierPath \"as\" Identifier •\l"] + 295 -> "295R44" [style=solid] + "295R44" [label="R44", fillcolor=3, shape=diamond, style=filled] + 296 [label="State 296\n\l 45 StructureDefinition: \"structure\" Identifier \"=\" \"{\" • FunctionDefinition \"}\"\l"] + 296 -> 25 [style=solid label="\"function\""] + 296 -> 368 [style=dashed label="FunctionDefinition"] + 297 [label="State 297\n\l 46 FeatureDefinition: \"feature\" Identifier \"=\" \"{\" • FeatureDeclarationsAndDefinitions \"}\"\l"] + 297 -> 369 [style=solid label="\"derived\""] + 297 -> 370 [style=solid label="\"rule\""] + 297 -> 371 [style=dashed label="DerivedDefinition"] + 297 -> 372 [style=dashed label="RuleDefinition"] + 297 -> 373 [style=dashed label="FeatureDeclarationOrDefinition"] + 297 -> 374 [style=dashed label="FeatureDeclarationsAndDefinitions"] + 297 -> 375 [style=dashed label="DeclarationDefinition"] + 298 [label="State 298\n\l191 Types: Types \",\" • Type\l200 TupleType: \"(\" Types \",\" • Type \")\"\l"] + 298 -> 8 [style=solid label="\"in\""] + 298 -> 109 [style=solid label="\"(\""] + 298 -> 9 [style=solid label="\"identifier\""] + 298 -> 376 [style=dashed label="Type"] + 298 -> 111 [style=dashed label="BasicType"] + 298 -> 112 [style=dashed label="TupleType"] + 298 -> 113 [style=dashed label="RecordType"] + 298 -> 114 [style=dashed label="TemplateType"] + 298 -> 115 [style=dashed label="RelationType"] + 298 -> 116 [style=dashed label="FixedSizedType"] + 298 -> 94 [style=dashed label="Identifier"] + 298 -> 190 [style=dashed label="IdentifierPath"] + 299 [label="State 299\n\l201 RecordType: \"(\" TypedVariables \",\" • TypedVariable \")\"\l228 TypedVariables: TypedVariables \",\" • TypedVariable\l"] + 299 -> 8 [style=solid label="\"in\""] + 299 -> 9 [style=solid label="\"identifier\""] + 299 -> 253 [style=dashed label="Identifier"] + 299 -> 377 [style=dashed label="TypedVariable"] + 300 [label="State 300\n\l 53 ImplementationDefinition: \"implements\" Type \"=\" \"{\" • ImplementationDefinitionDefinitions \"}\"\l"] + 300 -> 16 [style=solid label="\"derived\""] + 300 -> 18 [style=solid label="\"rule\""] + 300 -> 378 [style=dashed label="DerivedDefinition"] + 300 -> 379 [style=dashed label="RuleDefinition"] + 300 -> 380 [style=dashed label="ImplementationDefinitionDefinition"] + 300 -> 381 [style=dashed label="ImplementationDefinitionDefinitions"] + 301 [label="State 301\n\l 52 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type • \"=\" \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 301 -> 382 [style=solid label="\"=\""] + 302 [label="State 302\n\l191 Types: Types • \",\" Type\l202 TemplateType: IdentifierPath \"<\" Types • \">\"\l"] + 302 -> 383 [style=solid label="\",\""] + 302 -> 384 [style=solid label="\">\""] + 303 [label="State 303\n\l192 Types: Type •\l206 FunctionParameters: Type •\l"] 303 -> "303R192" [style=solid] "303R192" [label="R192", fillcolor=3, shape=diamond, style=filled] - 304 [label="State 304\n\l188 FixedSizedType: IdentifierPath \"'\" • Term\l"] - 304 -> 41 [style=solid label="\"let\""] - 304 -> 8 [style=solid label="\"in\""] - 304 -> 42 [style=solid label="\"forall\""] - 304 -> 43 [style=solid label="\"choose\""] - 304 -> 44 [style=solid label="\"if\""] - 304 -> 45 [style=solid label="\"exists\""] - 304 -> 46 [style=solid label="\"undef\""] - 304 -> 47 [style=solid label="\"false\""] - 304 -> 48 [style=solid label="\"true\""] - 304 -> 49 [style=solid label="\"not\""] - 304 -> 50 [style=solid label="\"+\""] - 304 -> 51 [style=solid label="\"-\""] - 304 -> 52 [style=solid label="\"(\""] - 304 -> 53 [style=solid label="\"[\""] - 304 -> 54 [style=solid label="\"|\""] - 304 -> 55 [style=solid label="\"@\""] - 304 -> 56 [style=solid label="\"binary\""] - 304 -> 57 [style=solid label="\"hexadecimal\""] - 304 -> 58 [style=solid label="\"integer\""] - 304 -> 59 [style=solid label="\"rational\""] - 304 -> 60 [style=solid label="\"decimal\""] - 304 -> 61 [style=solid label="\"string\""] - 304 -> 9 [style=solid label="\"identifier\""] - 304 -> 363 [style=dashed label="Term"] - 304 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 304 -> 64 [style=dashed label="OperatorExpression"] - 304 -> 65 [style=dashed label="CallExpression"] - 304 -> 66 [style=dashed label="DirectCallExpression"] - 304 -> 67 [style=dashed label="MethodCallExpression"] - 304 -> 68 [style=dashed label="LiteralCallExpression"] - 304 -> 69 [style=dashed label="IndirectCallExpression"] - 304 -> 70 [style=dashed label="TypeCastingExpression"] - 304 -> 71 [style=dashed label="LetExpression"] - 304 -> 72 [style=dashed label="ConditionalExpression"] - 304 -> 73 [style=dashed label="ChooseExpression"] - 304 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 304 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 304 -> 76 [style=dashed label="CardinalityExpression"] - 304 -> 77 [style=dashed label="Literal"] - 304 -> 78 [style=dashed label="UndefinedLiteral"] - 304 -> 79 [style=dashed label="BooleanLiteral"] - 304 -> 80 [style=dashed label="IntegerLiteral"] - 304 -> 81 [style=dashed label="RationalLiteral"] - 304 -> 82 [style=dashed label="DecimalLiteral"] - 304 -> 83 [style=dashed label="BinaryLiteral"] - 304 -> 84 [style=dashed label="StringLiteral"] - 304 -> 85 [style=dashed label="ReferenceLiteral"] - 304 -> 86 [style=dashed label="ListLiteral"] - 304 -> 87 [style=dashed label="RangeLiteral"] - 304 -> 88 [style=dashed label="TupleLiteral"] - 304 -> 89 [style=dashed label="RecordLiteral"] - 304 -> 90 [style=dashed label="Identifier"] - 304 -> 91 [style=dashed label="IdentifierPath"] - 305 [label="State 305\n\l130 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" • \")\"\l131 | SimpleOrClaspedTerm \".\" Identifier \"(\" • Terms \")\"\l132 | SimpleOrClaspedTerm \".\" Identifier \"(\" • error \")\"\l"] - 305 -> 364 [style=dotted] - 305 -> 41 [style=solid label="\"let\""] - 305 -> 8 [style=solid label="\"in\""] - 305 -> 42 [style=solid label="\"forall\""] - 305 -> 43 [style=solid label="\"choose\""] - 305 -> 44 [style=solid label="\"if\""] - 305 -> 45 [style=solid label="\"exists\""] - 305 -> 46 [style=solid label="\"undef\""] - 305 -> 47 [style=solid label="\"false\""] - 305 -> 48 [style=solid label="\"true\""] - 305 -> 49 [style=solid label="\"not\""] - 305 -> 50 [style=solid label="\"+\""] - 305 -> 51 [style=solid label="\"-\""] - 305 -> 52 [style=solid label="\"(\""] - 305 -> 365 [style=solid label="\")\""] - 305 -> 53 [style=solid label="\"[\""] - 305 -> 54 [style=solid label="\"|\""] - 305 -> 55 [style=solid label="\"@\""] - 305 -> 56 [style=solid label="\"binary\""] - 305 -> 57 [style=solid label="\"hexadecimal\""] - 305 -> 58 [style=solid label="\"integer\""] - 305 -> 59 [style=solid label="\"rational\""] - 305 -> 60 [style=solid label="\"decimal\""] - 305 -> 61 [style=solid label="\"string\""] - 305 -> 9 [style=solid label="\"identifier\""] - 305 -> 366 [style=dashed label="Terms"] - 305 -> 225 [style=dashed label="Term"] - 305 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 305 -> 64 [style=dashed label="OperatorExpression"] - 305 -> 65 [style=dashed label="CallExpression"] - 305 -> 66 [style=dashed label="DirectCallExpression"] - 305 -> 67 [style=dashed label="MethodCallExpression"] - 305 -> 68 [style=dashed label="LiteralCallExpression"] - 305 -> 69 [style=dashed label="IndirectCallExpression"] - 305 -> 70 [style=dashed label="TypeCastingExpression"] - 305 -> 71 [style=dashed label="LetExpression"] - 305 -> 72 [style=dashed label="ConditionalExpression"] - 305 -> 73 [style=dashed label="ChooseExpression"] - 305 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 305 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 305 -> 76 [style=dashed label="CardinalityExpression"] - 305 -> 77 [style=dashed label="Literal"] - 305 -> 78 [style=dashed label="UndefinedLiteral"] - 305 -> 79 [style=dashed label="BooleanLiteral"] - 305 -> 80 [style=dashed label="IntegerLiteral"] - 305 -> 81 [style=dashed label="RationalLiteral"] - 305 -> 82 [style=dashed label="DecimalLiteral"] - 305 -> 83 [style=dashed label="BinaryLiteral"] - 305 -> 84 [style=dashed label="StringLiteral"] - 305 -> 85 [style=dashed label="ReferenceLiteral"] - 305 -> 86 [style=dashed label="ListLiteral"] - 305 -> 87 [style=dashed label="RangeLiteral"] - 305 -> 88 [style=dashed label="TupleLiteral"] - 305 -> 89 [style=dashed label="RecordLiteral"] - 305 -> 90 [style=dashed label="Identifier"] - 305 -> 91 [style=dashed label="IdentifierPath"] - 306 [label="State 306\n\l136 IndirectCallExpression: CallExpression \"(\" error \")\" •\l"] - 306 -> "306R136" [style=solid] - "306R136" [label="R136", fillcolor=3, shape=diamond, style=filled] - 307 [label="State 307\n\l135 IndirectCallExpression: CallExpression \"(\" Terms \")\" •\l"] - 307 -> "307R135" [style=solid] - "307R135" [label="R135", fillcolor=3, shape=diamond, style=filled] - 308 [label="State 308\n\l128 DirectCallExpression: IdentifierPath \"(\" error \")\" •\l"] - 308 -> "308R128" [style=solid] - "308R128" [label="R128", fillcolor=3, shape=diamond, style=filled] - 309 [label="State 309\n\l127 DirectCallExpression: IdentifierPath \"(\" Terms \")\" •\l"] - 309 -> "309R127" [style=solid] - "309R127" [label="R127", fillcolor=3, shape=diamond, style=filled] - 310 [label="State 310\n\l 97 SimpleOrClaspedTerm: \"(\" Term \")\" •\l202 Initializer: \"(\" Term \")\" • \"->\" Term\l"] - 310 -> 367 [style=solid label="\"->\""] - 310 -> "310R97" [style=solid] - "310R97" [label="R97", fillcolor=3, shape=diamond, style=filled] - 311 [label="State 311\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l203 Initializer: TupleLiteral \"->\" Term •\l"] - 311 -> 134 [style=solid label="\"and\""] - 311 -> 135 [style=solid label="\"or\""] - 311 -> 136 [style=solid label="\"xor\""] - 311 -> 137 [style=solid label="\"implies\""] - 311 -> 138 [style=solid label="\"+\""] - 311 -> 139 [style=solid label="\"-\""] - 311 -> 140 [style=solid label="\"=\""] - 311 -> 141 [style=solid label="\"<\""] - 311 -> 142 [style=solid label="\">\""] - 311 -> 143 [style=solid label="\"*\""] - 311 -> 144 [style=solid label="\"/\""] - 311 -> 145 [style=solid label="\"%\""] - 311 -> 146 [style=solid label="\"^\""] - 311 -> 147 [style=solid label="\"=>\""] - 311 -> 148 [style=solid label="\"!=\""] - 311 -> 149 [style=solid label="\"<=\""] - 311 -> 150 [style=solid label="\">=\""] - 311 -> "311R203" [style=solid] - "311R203" [label="R203", fillcolor=3, shape=diamond, style=filled] - 312 [label="State 312\n\l199 Initializers: Initializers \",\" Initializer •\l"] - 312 -> "312R199" [style=solid] - "312R199" [label="R199", fillcolor=3, shape=diamond, style=filled] - 313 [label="State 313\n\l 24 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" • \"->\" Type \"=\" Term\l"] - 313 -> 368 [style=solid label="\"->\""] - 314 [label="State 314\n\l 23 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" • \"->\" Type \"=\" Term\l"] - 314 -> 369 [style=solid label="\"->\""] - 315 [label="State 315\n\l193 Parameters: Parameters \",\" • TypedAttributedVariable\l"] - 315 -> 8 [style=solid label="\"in\""] - 315 -> 2 [style=solid label="\"[\""] - 315 -> 9 [style=solid label="\"identifier\""] - 315 -> 236 [style=dashed label="Identifier"] - 315 -> 237 [style=dashed label="TypedVariable"] - 315 -> 370 [style=dashed label="TypedAttributedVariable"] - 315 -> 239 [style=dashed label="Attributes"] - 315 -> 6 [style=dashed label="Attribute"] - 316 [label="State 316\n\l217 TypedAttributedVariable: Attributes TypedVariable •\l"] - 316 -> "316R217" [style=solid] - "316R217" [label="R217", fillcolor=3, shape=diamond, style=filled] - 317 [label="State 317\n\l 22 DerivedDefinition: \"derived\" Identifier \"->\" Type \"=\" • Term\l"] - 317 -> 41 [style=solid label="\"let\""] - 317 -> 8 [style=solid label="\"in\""] - 317 -> 42 [style=solid label="\"forall\""] - 317 -> 43 [style=solid label="\"choose\""] - 317 -> 44 [style=solid label="\"if\""] - 317 -> 45 [style=solid label="\"exists\""] - 317 -> 46 [style=solid label="\"undef\""] - 317 -> 47 [style=solid label="\"false\""] - 317 -> 48 [style=solid label="\"true\""] - 317 -> 49 [style=solid label="\"not\""] - 317 -> 50 [style=solid label="\"+\""] - 317 -> 51 [style=solid label="\"-\""] - 317 -> 52 [style=solid label="\"(\""] - 317 -> 53 [style=solid label="\"[\""] - 317 -> 54 [style=solid label="\"|\""] - 317 -> 55 [style=solid label="\"@\""] - 317 -> 56 [style=solid label="\"binary\""] - 317 -> 57 [style=solid label="\"hexadecimal\""] - 317 -> 58 [style=solid label="\"integer\""] - 317 -> 59 [style=solid label="\"rational\""] - 317 -> 60 [style=solid label="\"decimal\""] - 317 -> 61 [style=solid label="\"string\""] - 317 -> 9 [style=solid label="\"identifier\""] - 317 -> 371 [style=dashed label="Term"] - 317 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 317 -> 64 [style=dashed label="OperatorExpression"] - 317 -> 65 [style=dashed label="CallExpression"] - 317 -> 66 [style=dashed label="DirectCallExpression"] - 317 -> 67 [style=dashed label="MethodCallExpression"] - 317 -> 68 [style=dashed label="LiteralCallExpression"] - 317 -> 69 [style=dashed label="IndirectCallExpression"] - 317 -> 70 [style=dashed label="TypeCastingExpression"] - 317 -> 71 [style=dashed label="LetExpression"] - 317 -> 72 [style=dashed label="ConditionalExpression"] - 317 -> 73 [style=dashed label="ChooseExpression"] - 317 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 317 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 317 -> 76 [style=dashed label="CardinalityExpression"] - 317 -> 77 [style=dashed label="Literal"] - 317 -> 78 [style=dashed label="UndefinedLiteral"] - 317 -> 79 [style=dashed label="BooleanLiteral"] - 317 -> 80 [style=dashed label="IntegerLiteral"] - 317 -> 81 [style=dashed label="RationalLiteral"] - 317 -> 82 [style=dashed label="DecimalLiteral"] - 317 -> 83 [style=dashed label="BinaryLiteral"] - 317 -> 84 [style=dashed label="StringLiteral"] - 317 -> 85 [style=dashed label="ReferenceLiteral"] - 317 -> 86 [style=dashed label="ListLiteral"] - 317 -> 87 [style=dashed label="RangeLiteral"] - 317 -> 88 [style=dashed label="TupleLiteral"] - 317 -> 89 [style=dashed label="RecordLiteral"] - 317 -> 90 [style=dashed label="Identifier"] - 317 -> 91 [style=dashed label="IdentifierPath"] - 318 [label="State 318\n\l 34 EnumeratorDefinition: error •\l"] - 318 -> "318R34" [style=solid] - "318R34" [label="R34", fillcolor=3, shape=diamond, style=filled] - 319 [label="State 319\n\l 36 Enumerators: EnumeratorDefinition •\l"] - 319 -> "319R36" [style=solid] - "319R36" [label="R36", fillcolor=3, shape=diamond, style=filled] - 320 [label="State 320\n\l 21 EnumerationDefinition: \"enumeration\" Identifier \"=\" \"{\" Enumerators • \"}\"\l 35 Enumerators: Enumerators • \",\" EnumeratorDefinition\l"] - 320 -> 372 [style=solid label="\"}\""] - 320 -> 373 [style=solid label="\",\""] - 321 [label="State 321\n\l 32 EnumeratorDefinition: Identifier •\l"] - 321 -> "321R32" [style=solid] - "321R32" [label="R32", fillcolor=3, shape=diamond, style=filled] - 322 [label="State 322\n\l 33 EnumeratorDefinition: Attributes • Identifier\l228 Attributes: Attributes • Attribute\l"] - 322 -> 8 [style=solid label="\"in\""] - 322 -> 2 [style=solid label="\"[\""] - 322 -> 9 [style=solid label="\"identifier\""] - 322 -> 374 [style=dashed label="Identifier"] - 322 -> 39 [style=dashed label="Attribute"] - 323 [label="State 323\n\l 82 SequenceRule: \"seq\" error • \"endseq\"\l"] - 323 -> 375 [style=solid label="\"endseq\""] - 324 [label="State 324\n\l 44 Rules: Rules • Rule\l 80 SequenceRule: \"seq\" Rules • \"endseq\"\l"] - 324 -> 242 [style=solid label="\"seq\""] - 324 -> 376 [style=solid label="\"endseq\""] - 324 -> 243 [style=solid label="\"par\""] - 324 -> 244 [style=solid label="\"skip\""] - 324 -> 245 [style=solid label="\"let\""] - 324 -> 246 [style=solid label="\"local\""] + 303 -> "303R206" [label="[\"*\", \"->\"]", style=solid] + "303R206" [label="R206", fillcolor=3, shape=diamond, style=filled] + 304 [label="State 304\n\l205 FunctionParameters: FunctionParameters • \"*\" Type\l207 MaybeFunctionParameters: FunctionParameters •\l"] + 304 -> 385 [style=solid label="\"*\""] + 304 -> "304R207" [style=solid] + "304R207" [label="R207", fillcolor=3, shape=diamond, style=filled] + 305 [label="State 305\n\l203 RelationType: IdentifierPath \"<\" MaybeFunctionParameters • \"->\" Type \">\"\l"] + 305 -> 386 [style=solid label="\"->\""] + 306 [label="State 306\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l204 FixedSizedType: IdentifierPath \"'\" Term •\l"] + 306 -> "306R204" [style=solid] + "306R204" [label="R204", fillcolor=3, shape=diamond, style=filled] + 307 [label="State 307\n\l206 FunctionParameters: Type •\l"] + 307 -> "307R206" [style=solid] + "307R206" [label="R206", fillcolor=3, shape=diamond, style=filled] + 308 [label="State 308\n\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters • \"->\" Type MaybeDefined MaybeInitially\l"] + 308 -> 387 [style=solid label="\"->\""] + 309 [label="State 309\n\l230 TypedVariable: Identifier \":\" Type •\l"] + 309 -> "309R230" [style=solid] + "309R230" [label="R230", fillcolor=3, shape=diamond, style=filled] + 310 [label="State 310\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l237 VariableBinding: AttributedVariable \"=\" Term •\l"] + 310 -> 148 [style=solid label="\"and\""] + 310 -> 149 [style=solid label="\"or\""] + 310 -> 150 [style=solid label="\"xor\""] + 310 -> 151 [style=solid label="\"implies\""] + 310 -> 152 [style=solid label="\"+\""] + 310 -> 153 [style=solid label="\"-\""] + 310 -> 154 [style=solid label="\"=\""] + 310 -> 155 [style=solid label="\"<\""] + 310 -> 156 [style=solid label="\">\""] + 310 -> 157 [style=solid label="\"*\""] + 310 -> 158 [style=solid label="\"/\""] + 310 -> 159 [style=solid label="\"%\""] + 310 -> 160 [style=solid label="\"^\""] + 310 -> 161 [style=solid label="\"=>\""] + 310 -> 162 [style=solid label="\"!=\""] + 310 -> 163 [style=solid label="\"<=\""] + 310 -> 164 [style=solid label="\">=\""] + 310 -> "310R237" [style=solid] + "310R237" [label="R237", fillcolor=3, shape=diamond, style=filled] + 311 [label="State 311\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l154 LetExpression: \"let\" VariableBindings \"in\" Term •\l"] + 311 -> 148 [style=solid label="\"and\""] + 311 -> 149 [style=solid label="\"or\""] + 311 -> 150 [style=solid label="\"xor\""] + 311 -> 151 [style=solid label="\"implies\""] + 311 -> 152 [style=solid label="\"+\""] + 311 -> 153 [style=solid label="\"-\""] + 311 -> 154 [style=solid label="\"=\""] + 311 -> 155 [style=solid label="\"<\""] + 311 -> 156 [style=solid label="\">\""] + 311 -> 157 [style=solid label="\"*\""] + 311 -> 158 [style=solid label="\"/\""] + 311 -> 159 [style=solid label="\"%\""] + 311 -> 160 [style=solid label="\"^\""] + 311 -> 161 [style=solid label="\"=>\""] + 311 -> 162 [style=solid label="\"!=\""] + 311 -> 163 [style=solid label="\"<=\""] + 311 -> 164 [style=solid label="\">=\""] + 311 -> "311R154" [style=solid] + "311R154" [label="R154", fillcolor=3, shape=diamond, style=filled] + 312 [label="State 312\n\l235 VariableBindings: VariableBindings \",\" VariableBinding •\l"] + 312 -> "312R235" [style=solid] + "312R235" [label="R235", fillcolor=3, shape=diamond, style=filled] + 313 [label="State 313\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l157 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term • \"holds\" Term\l"] + 313 -> 388 [style=solid label="\"holds\""] + 313 -> 148 [style=solid label="\"and\""] + 313 -> 149 [style=solid label="\"or\""] + 313 -> 150 [style=solid label="\"xor\""] + 313 -> 151 [style=solid label="\"implies\""] + 313 -> 152 [style=solid label="\"+\""] + 313 -> 153 [style=solid label="\"-\""] + 313 -> 154 [style=solid label="\"=\""] + 313 -> 155 [style=solid label="\"<\""] + 313 -> 156 [style=solid label="\">\""] + 313 -> 157 [style=solid label="\"*\""] + 313 -> 158 [style=solid label="\"/\""] + 313 -> 159 [style=solid label="\"%\""] + 313 -> 160 [style=solid label="\"^\""] + 313 -> 161 [style=solid label="\"=>\""] + 313 -> 162 [style=solid label="\"!=\""] + 313 -> 163 [style=solid label="\"<=\""] + 313 -> 164 [style=solid label="\">=\""] + 314 [label="State 314\n\l226 AttributedVariables: AttributedVariables \",\" AttributedVariable •\l"] + 314 -> "314R226" [style=solid] + "314R226" [label="R226", fillcolor=3, shape=diamond, style=filled] + 315 [label="State 315\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l156 ChooseExpression: \"choose\" AttributedVariables \"in\" Term • \"do\" Term\l"] + 315 -> 389 [style=solid label="\"do\""] + 315 -> 148 [style=solid label="\"and\""] + 315 -> 149 [style=solid label="\"or\""] + 315 -> 150 [style=solid label="\"xor\""] + 315 -> 151 [style=solid label="\"implies\""] + 315 -> 152 [style=solid label="\"+\""] + 315 -> 153 [style=solid label="\"-\""] + 315 -> 154 [style=solid label="\"=\""] + 315 -> 155 [style=solid label="\"<\""] + 315 -> 156 [style=solid label="\">\""] + 315 -> 157 [style=solid label="\"*\""] + 315 -> 158 [style=solid label="\"/\""] + 315 -> 159 [style=solid label="\"%\""] + 315 -> 160 [style=solid label="\"^\""] + 315 -> 161 [style=solid label="\"=>\""] + 315 -> 162 [style=solid label="\"!=\""] + 315 -> 163 [style=solid label="\"<=\""] + 315 -> 164 [style=solid label="\">=\""] + 316 [label="State 316\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l155 ConditionalExpression: \"if\" Term \"then\" Term • \"else\" Term\l"] + 316 -> 390 [style=solid label="\"else\""] + 316 -> 148 [style=solid label="\"and\""] + 316 -> 149 [style=solid label="\"or\""] + 316 -> 150 [style=solid label="\"xor\""] + 316 -> 151 [style=solid label="\"implies\""] + 316 -> 152 [style=solid label="\"+\""] + 316 -> 153 [style=solid label="\"-\""] + 316 -> 154 [style=solid label="\"=\""] + 316 -> 155 [style=solid label="\"<\""] + 316 -> 156 [style=solid label="\">\""] + 316 -> 157 [style=solid label="\"*\""] + 316 -> 158 [style=solid label="\"/\""] + 316 -> 159 [style=solid label="\"%\""] + 316 -> 160 [style=solid label="\"^\""] + 316 -> 161 [style=solid label="\"=>\""] + 316 -> 162 [style=solid label="\"!=\""] + 316 -> 163 [style=solid label="\"<=\""] + 316 -> 164 [style=solid label="\">=\""] + 317 [label="State 317\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l158 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term • \"with\" Term\l"] + 317 -> 391 [style=solid label="\"with\""] + 317 -> 148 [style=solid label="\"and\""] + 317 -> 149 [style=solid label="\"or\""] + 317 -> 150 [style=solid label="\"xor\""] + 317 -> 151 [style=solid label="\"implies\""] + 317 -> 152 [style=solid label="\"+\""] + 317 -> 153 [style=solid label="\"-\""] + 317 -> 154 [style=solid label="\"=\""] + 317 -> 155 [style=solid label="\"<\""] + 317 -> 156 [style=solid label="\">\""] + 317 -> 157 [style=solid label="\"*\""] + 317 -> 158 [style=solid label="\"/\""] + 317 -> 159 [style=solid label="\"%\""] + 317 -> 160 [style=solid label="\"^\""] + 317 -> 161 [style=solid label="\"=>\""] + 317 -> 162 [style=solid label="\"!=\""] + 317 -> 163 [style=solid label="\"<=\""] + 317 -> 164 [style=solid label="\">=\""] + 318 [label="State 318\n\l102 Terms: Terms \",\" Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l186 TupleLiteral: \"(\" Terms \",\" Term • \")\"\l"] + 318 -> 148 [style=solid label="\"and\""] + 318 -> 149 [style=solid label="\"or\""] + 318 -> 150 [style=solid label="\"xor\""] + 318 -> 151 [style=solid label="\"implies\""] + 318 -> 152 [style=solid label="\"+\""] + 318 -> 153 [style=solid label="\"-\""] + 318 -> 154 [style=solid label="\"=\""] + 318 -> 392 [style=solid label="\")\""] + 318 -> 155 [style=solid label="\"<\""] + 318 -> 156 [style=solid label="\">\""] + 318 -> 157 [style=solid label="\"*\""] + 318 -> 158 [style=solid label="\"/\""] + 318 -> 159 [style=solid label="\"%\""] + 318 -> 160 [style=solid label="\"^\""] + 318 -> 161 [style=solid label="\"=>\""] + 318 -> 162 [style=solid label="\"!=\""] + 318 -> 163 [style=solid label="\"<=\""] + 318 -> 164 [style=solid label="\">=\""] + 318 -> "318R102" [style=solid] + "318R102" [label="R102", fillcolor=3, shape=diamond, style=filled] + 319 [label="State 319\n\l188 Assignments: Assignments \",\" Assignment •\l"] + 319 -> "319R188" [style=solid] + "319R188" [label="R188", fillcolor=3, shape=diamond, style=filled] + 320 [label="State 320\n\l190 Assignment: Identifier • \":\" Term\l"] + 320 -> 213 [style=solid label="\":\""] + 321 [label="State 321\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l190 Assignment: Identifier \":\" Term •\l"] + 321 -> 148 [style=solid label="\"and\""] + 321 -> 149 [style=solid label="\"or\""] + 321 -> 150 [style=solid label="\"xor\""] + 321 -> 151 [style=solid label="\"implies\""] + 321 -> 152 [style=solid label="\"+\""] + 321 -> 153 [style=solid label="\"-\""] + 321 -> 154 [style=solid label="\"=\""] + 321 -> 155 [style=solid label="\"<\""] + 321 -> 156 [style=solid label="\">\""] + 321 -> 157 [style=solid label="\"*\""] + 321 -> 158 [style=solid label="\"/\""] + 321 -> 159 [style=solid label="\"%\""] + 321 -> 160 [style=solid label="\"^\""] + 321 -> 161 [style=solid label="\"=>\""] + 321 -> 162 [style=solid label="\"!=\""] + 321 -> 163 [style=solid label="\"<=\""] + 321 -> 164 [style=solid label="\">=\""] + 321 -> "321R190" [style=solid] + "321R190" [label="R190", fillcolor=3, shape=diamond, style=filled] + 322 [label="State 322\n\l102 Terms: Terms \",\" Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 322 -> 148 [style=solid label="\"and\""] + 322 -> 149 [style=solid label="\"or\""] + 322 -> 150 [style=solid label="\"xor\""] + 322 -> 151 [style=solid label="\"implies\""] + 322 -> 152 [style=solid label="\"+\""] + 322 -> 153 [style=solid label="\"-\""] + 322 -> 154 [style=solid label="\"=\""] + 322 -> 155 [style=solid label="\"<\""] + 322 -> 156 [style=solid label="\">\""] + 322 -> 157 [style=solid label="\"*\""] + 322 -> 158 [style=solid label="\"/\""] + 322 -> 159 [style=solid label="\"%\""] + 322 -> 160 [style=solid label="\"^\""] + 322 -> 161 [style=solid label="\"=>\""] + 322 -> 162 [style=solid label="\"!=\""] + 322 -> 163 [style=solid label="\"<=\""] + 322 -> 164 [style=solid label="\">=\""] + 322 -> "322R102" [style=solid] + "322R102" [label="R102", fillcolor=3, shape=diamond, style=filled] + 323 [label="State 323\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l185 RangeLiteral: \"[\" Term \"..\" Term • \"]\"\l"] + 323 -> 148 [style=solid label="\"and\""] + 323 -> 149 [style=solid label="\"or\""] + 323 -> 150 [style=solid label="\"xor\""] + 323 -> 151 [style=solid label="\"implies\""] + 323 -> 152 [style=solid label="\"+\""] + 323 -> 153 [style=solid label="\"-\""] + 323 -> 154 [style=solid label="\"=\""] + 323 -> 393 [style=solid label="\"]\""] + 323 -> 155 [style=solid label="\"<\""] + 323 -> 156 [style=solid label="\">\""] + 323 -> 157 [style=solid label="\"*\""] + 323 -> 158 [style=solid label="\"/\""] + 323 -> 159 [style=solid label="\"%\""] + 323 -> 160 [style=solid label="\"^\""] + 323 -> 161 [style=solid label="\"=>\""] + 323 -> 162 [style=solid label="\"!=\""] + 323 -> 163 [style=solid label="\"<=\""] + 323 -> 164 [style=solid label="\">=\""] + 324 [label="State 324\n\l146 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" • \")\"\l147 | SimpleOrClaspedTerm \".\" Identifier \"(\" • Terms \")\"\l148 | SimpleOrClaspedTerm \".\" Identifier \"(\" • error \")\"\l"] + 324 -> 394 [style=dotted] + 324 -> 45 [style=solid label="\"let\""] 324 -> 8 [style=solid label="\"in\""] - 324 -> 247 [style=solid label="\"forall\""] - 324 -> 248 [style=solid label="\"choose\""] - 324 -> 249 [style=solid label="\"iterate\""] - 324 -> 250 [style=solid label="\"if\""] - 324 -> 251 [style=solid label="\"case\""] - 324 -> 252 [style=solid label="\"while\""] - 324 -> 46 [style=solid label="\"undef\""] - 324 -> 47 [style=solid label="\"false\""] - 324 -> 48 [style=solid label="\"true\""] - 324 -> 50 [style=solid label="\"+\""] - 324 -> 51 [style=solid label="\"-\""] - 324 -> 52 [style=solid label="\"(\""] - 324 -> 53 [style=solid label="\"[\""] - 324 -> 253 [style=solid label="\"{\""] - 324 -> 55 [style=solid label="\"@\""] - 324 -> 254 [style=solid label="\"{|\""] - 324 -> 56 [style=solid label="\"binary\""] - 324 -> 57 [style=solid label="\"hexadecimal\""] - 324 -> 58 [style=solid label="\"integer\""] - 324 -> 59 [style=solid label="\"rational\""] - 324 -> 60 [style=solid label="\"decimal\""] - 324 -> 61 [style=solid label="\"string\""] + 324 -> 46 [style=solid label="\"forall\""] + 324 -> 47 [style=solid label="\"choose\""] + 324 -> 48 [style=solid label="\"if\""] + 324 -> 49 [style=solid label="\"exists\""] + 324 -> 50 [style=solid label="\"undef\""] + 324 -> 51 [style=solid label="\"false\""] + 324 -> 52 [style=solid label="\"true\""] + 324 -> 53 [style=solid label="\"not\""] + 324 -> 54 [style=solid label="\"+\""] + 324 -> 55 [style=solid label="\"-\""] + 324 -> 56 [style=solid label="\"(\""] + 324 -> 395 [style=solid label="\")\""] + 324 -> 57 [style=solid label="\"[\""] + 324 -> 58 [style=solid label="\"|\""] + 324 -> 59 [style=solid label="\"@\""] + 324 -> 60 [style=solid label="\"binary\""] + 324 -> 61 [style=solid label="\"hexadecimal\""] + 324 -> 62 [style=solid label="\"integer\""] + 324 -> 63 [style=solid label="\"rational\""] + 324 -> 64 [style=solid label="\"decimal\""] + 324 -> 65 [style=solid label="\"string\""] 324 -> 9 [style=solid label="\"identifier\""] - 324 -> 377 [style=dashed label="Rule"] - 324 -> 256 [style=dashed label="SkipRule"] - 324 -> 257 [style=dashed label="ConditionalRule"] - 324 -> 258 [style=dashed label="CaseRule"] - 324 -> 259 [style=dashed label="LetRule"] - 324 -> 260 [style=dashed label="LocalRule"] - 324 -> 261 [style=dashed label="ForallRule"] - 324 -> 262 [style=dashed label="ChooseRule"] - 324 -> 263 [style=dashed label="IterateRule"] - 324 -> 264 [style=dashed label="BlockRule"] - 324 -> 265 [style=dashed label="SequenceRule"] - 324 -> 266 [style=dashed label="UpdateRule"] - 324 -> 267 [style=dashed label="CallRule"] - 324 -> 268 [style=dashed label="WhileRule"] - 324 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 324 -> 270 [style=dashed label="CallExpression"] - 324 -> 271 [style=dashed label="DirectCallExpression"] - 324 -> 67 [style=dashed label="MethodCallExpression"] - 324 -> 68 [style=dashed label="LiteralCallExpression"] - 324 -> 69 [style=dashed label="IndirectCallExpression"] - 324 -> 77 [style=dashed label="Literal"] - 324 -> 78 [style=dashed label="UndefinedLiteral"] - 324 -> 79 [style=dashed label="BooleanLiteral"] - 324 -> 80 [style=dashed label="IntegerLiteral"] - 324 -> 81 [style=dashed label="RationalLiteral"] - 324 -> 82 [style=dashed label="DecimalLiteral"] - 324 -> 83 [style=dashed label="BinaryLiteral"] - 324 -> 84 [style=dashed label="StringLiteral"] - 324 -> 85 [style=dashed label="ReferenceLiteral"] - 324 -> 86 [style=dashed label="ListLiteral"] - 324 -> 87 [style=dashed label="RangeLiteral"] - 324 -> 88 [style=dashed label="TupleLiteral"] - 324 -> 89 [style=dashed label="RecordLiteral"] - 324 -> 90 [style=dashed label="Identifier"] - 324 -> 91 [style=dashed label="IdentifierPath"] - 325 [label="State 325\n\l 45 Rules: Rule •\l"] - 325 -> "325R45" [style=solid] - "325R45" [label="R45", fillcolor=3, shape=diamond, style=filled] - 326 [label="State 326\n\l 78 BlockRule: \"par\" error • \"endpar\"\l"] - 326 -> 378 [style=solid label="\"endpar\""] - 327 [label="State 327\n\l 44 Rules: Rules • Rule\l 76 BlockRule: \"par\" Rules • \"endpar\"\l"] - 327 -> 242 [style=solid label="\"seq\""] - 327 -> 243 [style=solid label="\"par\""] - 327 -> 379 [style=solid label="\"endpar\""] - 327 -> 244 [style=solid label="\"skip\""] - 327 -> 245 [style=solid label="\"let\""] - 327 -> 246 [style=solid label="\"local\""] - 327 -> 8 [style=solid label="\"in\""] - 327 -> 247 [style=solid label="\"forall\""] - 327 -> 248 [style=solid label="\"choose\""] - 327 -> 249 [style=solid label="\"iterate\""] - 327 -> 250 [style=solid label="\"if\""] - 327 -> 251 [style=solid label="\"case\""] - 327 -> 252 [style=solid label="\"while\""] - 327 -> 46 [style=solid label="\"undef\""] - 327 -> 47 [style=solid label="\"false\""] - 327 -> 48 [style=solid label="\"true\""] - 327 -> 50 [style=solid label="\"+\""] - 327 -> 51 [style=solid label="\"-\""] - 327 -> 52 [style=solid label="\"(\""] - 327 -> 53 [style=solid label="\"[\""] - 327 -> 253 [style=solid label="\"{\""] - 327 -> 55 [style=solid label="\"@\""] - 327 -> 254 [style=solid label="\"{|\""] - 327 -> 56 [style=solid label="\"binary\""] - 327 -> 57 [style=solid label="\"hexadecimal\""] - 327 -> 58 [style=solid label="\"integer\""] - 327 -> 59 [style=solid label="\"rational\""] - 327 -> 60 [style=solid label="\"decimal\""] - 327 -> 61 [style=solid label="\"string\""] - 327 -> 9 [style=solid label="\"identifier\""] - 327 -> 377 [style=dashed label="Rule"] - 327 -> 256 [style=dashed label="SkipRule"] - 327 -> 257 [style=dashed label="ConditionalRule"] - 327 -> 258 [style=dashed label="CaseRule"] - 327 -> 259 [style=dashed label="LetRule"] - 327 -> 260 [style=dashed label="LocalRule"] - 327 -> 261 [style=dashed label="ForallRule"] - 327 -> 262 [style=dashed label="ChooseRule"] - 327 -> 263 [style=dashed label="IterateRule"] - 327 -> 264 [style=dashed label="BlockRule"] - 327 -> 265 [style=dashed label="SequenceRule"] - 327 -> 266 [style=dashed label="UpdateRule"] - 327 -> 267 [style=dashed label="CallRule"] - 327 -> 268 [style=dashed label="WhileRule"] - 327 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 327 -> 270 [style=dashed label="CallExpression"] - 327 -> 271 [style=dashed label="DirectCallExpression"] - 327 -> 67 [style=dashed label="MethodCallExpression"] - 327 -> 68 [style=dashed label="LiteralCallExpression"] - 327 -> 69 [style=dashed label="IndirectCallExpression"] - 327 -> 77 [style=dashed label="Literal"] - 327 -> 78 [style=dashed label="UndefinedLiteral"] - 327 -> 79 [style=dashed label="BooleanLiteral"] - 327 -> 80 [style=dashed label="IntegerLiteral"] - 327 -> 81 [style=dashed label="RationalLiteral"] - 327 -> 82 [style=dashed label="DecimalLiteral"] - 327 -> 83 [style=dashed label="BinaryLiteral"] - 327 -> 84 [style=dashed label="StringLiteral"] - 327 -> 85 [style=dashed label="ReferenceLiteral"] - 327 -> 86 [style=dashed label="ListLiteral"] - 327 -> 87 [style=dashed label="RangeLiteral"] - 327 -> 88 [style=dashed label="TupleLiteral"] - 327 -> 89 [style=dashed label="RecordLiteral"] - 327 -> 90 [style=dashed label="Identifier"] - 327 -> 91 [style=dashed label="IdentifierPath"] - 328 [label="State 328\n\l 69 LetRule: \"let\" VariableBindings • \"in\" Rule\l219 VariableBindings: VariableBindings • \",\" VariableBinding\l"] - 328 -> 380 [style=solid label="\"in\""] - 328 -> 176 [style=solid label="\",\""] - 329 [label="State 329\n\l226 AttributedLocalFunctionDefinition: error •\l"] - 329 -> "329R226" [style=solid] - "329R226" [label="R226", fillcolor=3, shape=diamond, style=filled] - 330 [label="State 330\n\l227 LocalFunctionDefinition: Identifier • \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] - 330 -> 381 [style=solid label="\":\""] - 331 [label="State 331\n\l 70 LocalRule: \"local\" LocalFunctionDefinitions • \"in\" Rule\l222 LocalFunctionDefinitions: LocalFunctionDefinitions • \",\" AttributedLocalFunctionDefinition\l"] - 331 -> 382 [style=solid label="\"in\""] - 331 -> 383 [style=solid label="\",\""] - 332 [label="State 332\n\l223 LocalFunctionDefinitions: AttributedLocalFunctionDefinition •\l"] - 332 -> "332R223" [style=solid] - "332R223" [label="R223", fillcolor=3, shape=diamond, style=filled] - 333 [label="State 333\n\l225 AttributedLocalFunctionDefinition: LocalFunctionDefinition •\l"] - 333 -> "333R225" [style=solid] - "333R225" [label="R225", fillcolor=3, shape=diamond, style=filled] - 334 [label="State 334\n\l224 AttributedLocalFunctionDefinition: Attributes • LocalFunctionDefinition\l228 Attributes: Attributes • Attribute\l"] + 324 -> 396 [style=dashed label="Terms"] + 324 -> 242 [style=dashed label="Term"] + 324 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 324 -> 68 [style=dashed label="OperatorExpression"] + 324 -> 69 [style=dashed label="CallExpression"] + 324 -> 70 [style=dashed label="DirectCallExpression"] + 324 -> 71 [style=dashed label="MethodCallExpression"] + 324 -> 72 [style=dashed label="LiteralCallExpression"] + 324 -> 73 [style=dashed label="IndirectCallExpression"] + 324 -> 74 [style=dashed label="TypeCastingExpression"] + 324 -> 75 [style=dashed label="LetExpression"] + 324 -> 76 [style=dashed label="ConditionalExpression"] + 324 -> 77 [style=dashed label="ChooseExpression"] + 324 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 324 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 324 -> 80 [style=dashed label="CardinalityExpression"] + 324 -> 81 [style=dashed label="Literal"] + 324 -> 82 [style=dashed label="UndefinedLiteral"] + 324 -> 83 [style=dashed label="BooleanLiteral"] + 324 -> 84 [style=dashed label="IntegerLiteral"] + 324 -> 85 [style=dashed label="RationalLiteral"] + 324 -> 86 [style=dashed label="DecimalLiteral"] + 324 -> 87 [style=dashed label="BinaryLiteral"] + 324 -> 88 [style=dashed label="StringLiteral"] + 324 -> 89 [style=dashed label="ReferenceLiteral"] + 324 -> 90 [style=dashed label="ListLiteral"] + 324 -> 91 [style=dashed label="RangeLiteral"] + 324 -> 92 [style=dashed label="TupleLiteral"] + 324 -> 93 [style=dashed label="RecordLiteral"] + 324 -> 94 [style=dashed label="Identifier"] + 324 -> 95 [style=dashed label="IdentifierPath"] + 325 [label="State 325\n\l152 IndirectCallExpression: CallExpression \"(\" error \")\" •\l"] + 325 -> "325R152" [style=solid] + "325R152" [label="R152", fillcolor=3, shape=diamond, style=filled] + 326 [label="State 326\n\l151 IndirectCallExpression: CallExpression \"(\" Terms \")\" •\l"] + 326 -> "326R151" [style=solid] + "326R151" [label="R151", fillcolor=3, shape=diamond, style=filled] + 327 [label="State 327\n\l144 DirectCallExpression: IdentifierPath \"(\" error \")\" •\l"] + 327 -> "327R144" [style=solid] + "327R144" [label="R144", fillcolor=3, shape=diamond, style=filled] + 328 [label="State 328\n\l143 DirectCallExpression: IdentifierPath \"(\" Terms \")\" •\l"] + 328 -> "328R143" [style=solid] + "328R143" [label="R143", fillcolor=3, shape=diamond, style=filled] + 329 [label="State 329\n\l113 SimpleOrClaspedTerm: \"(\" Term \")\" •\l218 Initializer: \"(\" Term \")\" • \"->\" Term\l"] + 329 -> 397 [style=solid label="\"->\""] + 329 -> "329R113" [style=solid] + "329R113" [label="R113", fillcolor=3, shape=diamond, style=filled] + 330 [label="State 330\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l219 Initializer: TupleLiteral \"->\" Term •\l"] + 330 -> 148 [style=solid label="\"and\""] + 330 -> 149 [style=solid label="\"or\""] + 330 -> 150 [style=solid label="\"xor\""] + 330 -> 151 [style=solid label="\"implies\""] + 330 -> 152 [style=solid label="\"+\""] + 330 -> 153 [style=solid label="\"-\""] + 330 -> 154 [style=solid label="\"=\""] + 330 -> 155 [style=solid label="\"<\""] + 330 -> 156 [style=solid label="\">\""] + 330 -> 157 [style=solid label="\"*\""] + 330 -> 158 [style=solid label="\"/\""] + 330 -> 159 [style=solid label="\"%\""] + 330 -> 160 [style=solid label="\"^\""] + 330 -> 161 [style=solid label="\"=>\""] + 330 -> 162 [style=solid label="\"!=\""] + 330 -> 163 [style=solid label="\"<=\""] + 330 -> 164 [style=solid label="\">=\""] + 330 -> "330R219" [style=solid] + "330R219" [label="R219", fillcolor=3, shape=diamond, style=filled] + 331 [label="State 331\n\l215 Initializers: Initializers \",\" Initializer •\l"] + 331 -> "331R215" [style=solid] + "331R215" [label="R215", fillcolor=3, shape=diamond, style=filled] + 332 [label="State 332\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" • \"->\" Type \"=\" Term\l"] + 332 -> 398 [style=solid label="\"->\""] + 333 [label="State 333\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" • \"->\" Type \"=\" Term\l"] + 333 -> 399 [style=solid label="\"->\""] + 334 [label="State 334\n\l209 Parameters: Parameters \",\" • TypedAttributedVariable\l"] 334 -> 8 [style=solid label="\"in\""] 334 -> 2 [style=solid label="\"[\""] 334 -> 9 [style=solid label="\"identifier\""] - 334 -> 330 [style=dashed label="Identifier"] - 334 -> 384 [style=dashed label="LocalFunctionDefinition"] - 334 -> 39 [style=dashed label="Attribute"] - 335 [label="State 335\n\l 71 ForallRule: \"forall\" AttributedVariables • \"in\" Term \"do\" Rule\l 72 | \"forall\" AttributedVariables • \"in\" Term \"with\" Term \"do\" Rule\l210 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] - 335 -> 385 [style=solid label="\"in\""] - 335 -> 179 [style=solid label="\",\""] - 336 [label="State 336\n\l 73 ChooseRule: \"choose\" AttributedVariables • \"in\" Term \"do\" Rule\l210 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] - 336 -> 386 [style=solid label="\"in\""] - 336 -> 179 [style=solid label="\",\""] - 337 [label="State 337\n\l 74 IterateRule: \"iterate\" Rule •\l"] - 337 -> "337R74" [style=solid] - "337R74" [label="R74", fillcolor=3, shape=diamond, style=filled] - 338 [label="State 338\n\l 60 ConditionalRule: \"if\" Term • \"then\" Rule\l 61 | \"if\" Term • \"then\" Rule \"else\" Rule\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 338 -> 387 [style=solid label="\"then\""] - 338 -> 134 [style=solid label="\"and\""] - 338 -> 135 [style=solid label="\"or\""] - 338 -> 136 [style=solid label="\"xor\""] - 338 -> 137 [style=solid label="\"implies\""] - 338 -> 138 [style=solid label="\"+\""] - 338 -> 139 [style=solid label="\"-\""] - 338 -> 140 [style=solid label="\"=\""] - 338 -> 141 [style=solid label="\"<\""] - 338 -> 142 [style=solid label="\">\""] - 338 -> 143 [style=solid label="\"*\""] - 338 -> 144 [style=solid label="\"/\""] - 338 -> 145 [style=solid label="\"%\""] - 338 -> 146 [style=solid label="\"^\""] - 338 -> 147 [style=solid label="\"=>\""] - 338 -> 148 [style=solid label="\"!=\""] - 338 -> 149 [style=solid label="\"<=\""] - 338 -> 150 [style=solid label="\">=\""] - 339 [label="State 339\n\l 62 CaseRule: \"case\" Term • \"of\" \"{\" CaseLabels \"}\"\l 63 | \"case\" Term • \"of\" \"{\" error \"}\"\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 339 -> 388 [style=solid label="\"of\""] - 339 -> 134 [style=solid label="\"and\""] - 339 -> 135 [style=solid label="\"or\""] - 339 -> 136 [style=solid label="\"xor\""] - 339 -> 137 [style=solid label="\"implies\""] - 339 -> 138 [style=solid label="\"+\""] - 339 -> 139 [style=solid label="\"-\""] - 339 -> 140 [style=solid label="\"=\""] - 339 -> 141 [style=solid label="\"<\""] - 339 -> 142 [style=solid label="\">\""] - 339 -> 143 [style=solid label="\"*\""] - 339 -> 144 [style=solid label="\"/\""] - 339 -> 145 [style=solid label="\"%\""] - 339 -> 146 [style=solid label="\"^\""] - 339 -> 147 [style=solid label="\"=>\""] - 339 -> 148 [style=solid label="\"!=\""] - 339 -> 149 [style=solid label="\"<=\""] - 339 -> 150 [style=solid label="\">=\""] - 340 [label="State 340\n\l 85 WhileRule: \"while\" Term • \"do\" Rule\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 340 -> 389 [style=solid label="\"do\""] - 340 -> 134 [style=solid label="\"and\""] - 340 -> 135 [style=solid label="\"or\""] - 340 -> 136 [style=solid label="\"xor\""] - 340 -> 137 [style=solid label="\"implies\""] - 340 -> 138 [style=solid label="\"+\""] - 340 -> 139 [style=solid label="\"-\""] - 340 -> 140 [style=solid label="\"=\""] - 340 -> 141 [style=solid label="\"<\""] - 340 -> 142 [style=solid label="\">\""] - 340 -> 143 [style=solid label="\"*\""] - 340 -> 144 [style=solid label="\"/\""] - 340 -> 145 [style=solid label="\"%\""] - 340 -> 146 [style=solid label="\"^\""] - 340 -> 147 [style=solid label="\"=>\""] - 340 -> 148 [style=solid label="\"!=\""] - 340 -> 149 [style=solid label="\"<=\""] - 340 -> 150 [style=solid label="\">=\""] - 341 [label="State 341\n\l 77 BlockRule: \"{\" error • \"}\"\l"] - 341 -> 390 [style=solid label="\"}\""] - 342 [label="State 342\n\l 44 Rules: Rules • Rule\l 75 BlockRule: \"{\" Rules • \"}\"\l"] - 342 -> 242 [style=solid label="\"seq\""] - 342 -> 243 [style=solid label="\"par\""] - 342 -> 244 [style=solid label="\"skip\""] - 342 -> 245 [style=solid label="\"let\""] - 342 -> 246 [style=solid label="\"local\""] - 342 -> 8 [style=solid label="\"in\""] - 342 -> 247 [style=solid label="\"forall\""] - 342 -> 248 [style=solid label="\"choose\""] - 342 -> 249 [style=solid label="\"iterate\""] - 342 -> 250 [style=solid label="\"if\""] - 342 -> 251 [style=solid label="\"case\""] - 342 -> 252 [style=solid label="\"while\""] - 342 -> 46 [style=solid label="\"undef\""] - 342 -> 47 [style=solid label="\"false\""] - 342 -> 48 [style=solid label="\"true\""] - 342 -> 50 [style=solid label="\"+\""] - 342 -> 51 [style=solid label="\"-\""] - 342 -> 52 [style=solid label="\"(\""] - 342 -> 53 [style=solid label="\"[\""] - 342 -> 253 [style=solid label="\"{\""] - 342 -> 391 [style=solid label="\"}\""] - 342 -> 55 [style=solid label="\"@\""] - 342 -> 254 [style=solid label="\"{|\""] - 342 -> 56 [style=solid label="\"binary\""] - 342 -> 57 [style=solid label="\"hexadecimal\""] - 342 -> 58 [style=solid label="\"integer\""] - 342 -> 59 [style=solid label="\"rational\""] - 342 -> 60 [style=solid label="\"decimal\""] - 342 -> 61 [style=solid label="\"string\""] - 342 -> 9 [style=solid label="\"identifier\""] - 342 -> 377 [style=dashed label="Rule"] - 342 -> 256 [style=dashed label="SkipRule"] - 342 -> 257 [style=dashed label="ConditionalRule"] - 342 -> 258 [style=dashed label="CaseRule"] - 342 -> 259 [style=dashed label="LetRule"] - 342 -> 260 [style=dashed label="LocalRule"] - 342 -> 261 [style=dashed label="ForallRule"] - 342 -> 262 [style=dashed label="ChooseRule"] - 342 -> 263 [style=dashed label="IterateRule"] - 342 -> 264 [style=dashed label="BlockRule"] - 342 -> 265 [style=dashed label="SequenceRule"] - 342 -> 266 [style=dashed label="UpdateRule"] - 342 -> 267 [style=dashed label="CallRule"] - 342 -> 268 [style=dashed label="WhileRule"] - 342 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 342 -> 270 [style=dashed label="CallExpression"] - 342 -> 271 [style=dashed label="DirectCallExpression"] - 342 -> 67 [style=dashed label="MethodCallExpression"] - 342 -> 68 [style=dashed label="LiteralCallExpression"] - 342 -> 69 [style=dashed label="IndirectCallExpression"] - 342 -> 77 [style=dashed label="Literal"] - 342 -> 78 [style=dashed label="UndefinedLiteral"] - 342 -> 79 [style=dashed label="BooleanLiteral"] - 342 -> 80 [style=dashed label="IntegerLiteral"] - 342 -> 81 [style=dashed label="RationalLiteral"] - 342 -> 82 [style=dashed label="DecimalLiteral"] - 342 -> 83 [style=dashed label="BinaryLiteral"] - 342 -> 84 [style=dashed label="StringLiteral"] - 342 -> 85 [style=dashed label="ReferenceLiteral"] - 342 -> 86 [style=dashed label="ListLiteral"] - 342 -> 87 [style=dashed label="RangeLiteral"] - 342 -> 88 [style=dashed label="TupleLiteral"] - 342 -> 89 [style=dashed label="RecordLiteral"] - 342 -> 90 [style=dashed label="Identifier"] - 342 -> 91 [style=dashed label="IdentifierPath"] - 343 [label="State 343\n\l 81 SequenceRule: \"{|\" error • \"|}\"\l"] - 343 -> 392 [style=solid label="\"|}\""] - 344 [label="State 344\n\l 44 Rules: Rules • Rule\l 79 SequenceRule: \"{|\" Rules • \"|}\"\l"] - 344 -> 242 [style=solid label="\"seq\""] - 344 -> 243 [style=solid label="\"par\""] - 344 -> 244 [style=solid label="\"skip\""] - 344 -> 245 [style=solid label="\"let\""] - 344 -> 246 [style=solid label="\"local\""] - 344 -> 8 [style=solid label="\"in\""] - 344 -> 247 [style=solid label="\"forall\""] - 344 -> 248 [style=solid label="\"choose\""] - 344 -> 249 [style=solid label="\"iterate\""] - 344 -> 250 [style=solid label="\"if\""] - 344 -> 251 [style=solid label="\"case\""] - 344 -> 252 [style=solid label="\"while\""] - 344 -> 46 [style=solid label="\"undef\""] - 344 -> 47 [style=solid label="\"false\""] - 344 -> 48 [style=solid label="\"true\""] - 344 -> 50 [style=solid label="\"+\""] - 344 -> 51 [style=solid label="\"-\""] - 344 -> 52 [style=solid label="\"(\""] - 344 -> 53 [style=solid label="\"[\""] - 344 -> 253 [style=solid label="\"{\""] - 344 -> 55 [style=solid label="\"@\""] - 344 -> 254 [style=solid label="\"{|\""] - 344 -> 393 [style=solid label="\"|}\""] - 344 -> 56 [style=solid label="\"binary\""] - 344 -> 57 [style=solid label="\"hexadecimal\""] - 344 -> 58 [style=solid label="\"integer\""] - 344 -> 59 [style=solid label="\"rational\""] - 344 -> 60 [style=solid label="\"decimal\""] - 344 -> 61 [style=solid label="\"string\""] - 344 -> 9 [style=solid label="\"identifier\""] - 344 -> 377 [style=dashed label="Rule"] - 344 -> 256 [style=dashed label="SkipRule"] - 344 -> 257 [style=dashed label="ConditionalRule"] - 344 -> 258 [style=dashed label="CaseRule"] - 344 -> 259 [style=dashed label="LetRule"] - 344 -> 260 [style=dashed label="LocalRule"] - 344 -> 261 [style=dashed label="ForallRule"] - 344 -> 262 [style=dashed label="ChooseRule"] - 344 -> 263 [style=dashed label="IterateRule"] - 344 -> 264 [style=dashed label="BlockRule"] - 344 -> 265 [style=dashed label="SequenceRule"] - 344 -> 266 [style=dashed label="UpdateRule"] - 344 -> 267 [style=dashed label="CallRule"] - 344 -> 268 [style=dashed label="WhileRule"] - 344 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 344 -> 270 [style=dashed label="CallExpression"] - 344 -> 271 [style=dashed label="DirectCallExpression"] - 344 -> 67 [style=dashed label="MethodCallExpression"] - 344 -> 68 [style=dashed label="LiteralCallExpression"] - 344 -> 69 [style=dashed label="IndirectCallExpression"] - 344 -> 77 [style=dashed label="Literal"] - 344 -> 78 [style=dashed label="UndefinedLiteral"] - 344 -> 79 [style=dashed label="BooleanLiteral"] - 344 -> 80 [style=dashed label="IntegerLiteral"] - 344 -> 81 [style=dashed label="RationalLiteral"] - 344 -> 82 [style=dashed label="DecimalLiteral"] - 344 -> 83 [style=dashed label="BinaryLiteral"] - 344 -> 84 [style=dashed label="StringLiteral"] - 344 -> 85 [style=dashed label="ReferenceLiteral"] - 344 -> 86 [style=dashed label="ListLiteral"] - 344 -> 87 [style=dashed label="RangeLiteral"] - 344 -> 88 [style=dashed label="TupleLiteral"] - 344 -> 89 [style=dashed label="RecordLiteral"] - 344 -> 90 [style=dashed label="Identifier"] - 344 -> 91 [style=dashed label="IdentifierPath"] - 345 [label="State 345\n\l 83 UpdateRule: DirectCallExpression \":=\" • Term\l"] - 345 -> 41 [style=solid label="\"let\""] - 345 -> 8 [style=solid label="\"in\""] - 345 -> 42 [style=solid label="\"forall\""] - 345 -> 43 [style=solid label="\"choose\""] - 345 -> 44 [style=solid label="\"if\""] - 345 -> 45 [style=solid label="\"exists\""] - 345 -> 46 [style=solid label="\"undef\""] - 345 -> 47 [style=solid label="\"false\""] - 345 -> 48 [style=solid label="\"true\""] - 345 -> 49 [style=solid label="\"not\""] - 345 -> 50 [style=solid label="\"+\""] - 345 -> 51 [style=solid label="\"-\""] - 345 -> 52 [style=solid label="\"(\""] - 345 -> 53 [style=solid label="\"[\""] - 345 -> 54 [style=solid label="\"|\""] - 345 -> 55 [style=solid label="\"@\""] - 345 -> 56 [style=solid label="\"binary\""] - 345 -> 57 [style=solid label="\"hexadecimal\""] - 345 -> 58 [style=solid label="\"integer\""] - 345 -> 59 [style=solid label="\"rational\""] - 345 -> 60 [style=solid label="\"decimal\""] - 345 -> 61 [style=solid label="\"string\""] - 345 -> 9 [style=solid label="\"identifier\""] - 345 -> 394 [style=dashed label="Term"] - 345 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 345 -> 64 [style=dashed label="OperatorExpression"] - 345 -> 65 [style=dashed label="CallExpression"] - 345 -> 66 [style=dashed label="DirectCallExpression"] - 345 -> 67 [style=dashed label="MethodCallExpression"] - 345 -> 68 [style=dashed label="LiteralCallExpression"] - 345 -> 69 [style=dashed label="IndirectCallExpression"] - 345 -> 70 [style=dashed label="TypeCastingExpression"] - 345 -> 71 [style=dashed label="LetExpression"] - 345 -> 72 [style=dashed label="ConditionalExpression"] - 345 -> 73 [style=dashed label="ChooseExpression"] - 345 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 345 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 345 -> 76 [style=dashed label="CardinalityExpression"] - 345 -> 77 [style=dashed label="Literal"] - 345 -> 78 [style=dashed label="UndefinedLiteral"] - 345 -> 79 [style=dashed label="BooleanLiteral"] - 345 -> 80 [style=dashed label="IntegerLiteral"] - 345 -> 81 [style=dashed label="RationalLiteral"] - 345 -> 82 [style=dashed label="DecimalLiteral"] - 345 -> 83 [style=dashed label="BinaryLiteral"] - 345 -> 84 [style=dashed label="StringLiteral"] - 345 -> 85 [style=dashed label="ReferenceLiteral"] - 345 -> 86 [style=dashed label="ListLiteral"] - 345 -> 87 [style=dashed label="RangeLiteral"] - 345 -> 88 [style=dashed label="TupleLiteral"] - 345 -> 89 [style=dashed label="RecordLiteral"] - 345 -> 90 [style=dashed label="Identifier"] - 345 -> 91 [style=dashed label="IdentifierPath"] - 346 [label="State 346\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" error \")\" • \"=\" Rule\l 30 | \"rule\" Identifier \"(\" error \")\" • \"->\" Type \"=\" Rule\l"] - 346 -> 395 [style=solid label="\"=\""] - 346 -> 396 [style=solid label="\"->\""] - 347 [label="State 347\n\l 27 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" • \"=\" Rule\l 28 | \"rule\" Identifier \"(\" Parameters \")\" • \"->\" Type \"=\" Rule\l"] - 347 -> 397 [style=solid label="\"=\""] - 347 -> 398 [style=solid label="\"->\""] - 348 [label="State 348\n\l 26 RuleDefinition: \"rule\" Identifier \"->\" Type \"=\" • Rule\l"] - 348 -> 242 [style=solid label="\"seq\""] - 348 -> 243 [style=solid label="\"par\""] - 348 -> 244 [style=solid label="\"skip\""] - 348 -> 245 [style=solid label="\"let\""] - 348 -> 246 [style=solid label="\"local\""] - 348 -> 8 [style=solid label="\"in\""] - 348 -> 247 [style=solid label="\"forall\""] - 348 -> 248 [style=solid label="\"choose\""] - 348 -> 249 [style=solid label="\"iterate\""] - 348 -> 250 [style=solid label="\"if\""] - 348 -> 251 [style=solid label="\"case\""] - 348 -> 252 [style=solid label="\"while\""] - 348 -> 46 [style=solid label="\"undef\""] - 348 -> 47 [style=solid label="\"false\""] - 348 -> 48 [style=solid label="\"true\""] - 348 -> 50 [style=solid label="\"+\""] - 348 -> 51 [style=solid label="\"-\""] - 348 -> 52 [style=solid label="\"(\""] - 348 -> 53 [style=solid label="\"[\""] - 348 -> 253 [style=solid label="\"{\""] - 348 -> 55 [style=solid label="\"@\""] - 348 -> 254 [style=solid label="\"{|\""] - 348 -> 56 [style=solid label="\"binary\""] - 348 -> 57 [style=solid label="\"hexadecimal\""] - 348 -> 58 [style=solid label="\"integer\""] - 348 -> 59 [style=solid label="\"rational\""] - 348 -> 60 [style=solid label="\"decimal\""] - 348 -> 61 [style=solid label="\"string\""] - 348 -> 9 [style=solid label="\"identifier\""] - 348 -> 399 [style=dashed label="Rule"] - 348 -> 256 [style=dashed label="SkipRule"] - 348 -> 257 [style=dashed label="ConditionalRule"] - 348 -> 258 [style=dashed label="CaseRule"] - 348 -> 259 [style=dashed label="LetRule"] - 348 -> 260 [style=dashed label="LocalRule"] - 348 -> 261 [style=dashed label="ForallRule"] - 348 -> 262 [style=dashed label="ChooseRule"] - 348 -> 263 [style=dashed label="IterateRule"] - 348 -> 264 [style=dashed label="BlockRule"] - 348 -> 265 [style=dashed label="SequenceRule"] - 348 -> 266 [style=dashed label="UpdateRule"] - 348 -> 267 [style=dashed label="CallRule"] - 348 -> 268 [style=dashed label="WhileRule"] - 348 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 348 -> 270 [style=dashed label="CallExpression"] - 348 -> 271 [style=dashed label="DirectCallExpression"] - 348 -> 67 [style=dashed label="MethodCallExpression"] - 348 -> 68 [style=dashed label="LiteralCallExpression"] - 348 -> 69 [style=dashed label="IndirectCallExpression"] - 348 -> 77 [style=dashed label="Literal"] - 348 -> 78 [style=dashed label="UndefinedLiteral"] - 348 -> 79 [style=dashed label="BooleanLiteral"] - 348 -> 80 [style=dashed label="IntegerLiteral"] - 348 -> 81 [style=dashed label="RationalLiteral"] - 348 -> 82 [style=dashed label="DecimalLiteral"] - 348 -> 83 [style=dashed label="BinaryLiteral"] - 348 -> 84 [style=dashed label="StringLiteral"] - 348 -> 85 [style=dashed label="ReferenceLiteral"] - 348 -> 86 [style=dashed label="ListLiteral"] - 348 -> 87 [style=dashed label="RangeLiteral"] - 348 -> 88 [style=dashed label="TupleLiteral"] - 348 -> 89 [style=dashed label="RecordLiteral"] - 348 -> 90 [style=dashed label="Identifier"] - 348 -> 91 [style=dashed label="IdentifierPath"] - 349 [label="State 349\n\l 43 StructureDefinition: \"structure\" Identifier \"=\" \"{\" FunctionDefinition • \"}\"\l"] - 349 -> 400 [style=solid label="\"}\""] - 350 [label="State 350\n\l189 FunctionParameters: FunctionParameters \"*\" • Type\l"] - 350 -> 8 [style=solid label="\"in\""] - 350 -> 211 [style=solid label="\"(\""] - 350 -> 9 [style=solid label="\"identifier\""] - 350 -> 401 [style=dashed label="Type"] - 350 -> 213 [style=dashed label="BasicType"] - 350 -> 214 [style=dashed label="TupleType"] - 350 -> 215 [style=dashed label="RecordType"] - 350 -> 216 [style=dashed label="TemplateType"] - 350 -> 217 [style=dashed label="RelationType"] - 350 -> 218 [style=dashed label="FixedSizedType"] - 350 -> 90 [style=dashed label="Identifier"] - 350 -> 219 [style=dashed label="IdentifierPath"] - 351 [label="State 351\n\l 31 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" • Type MaybeDefined MaybeInitially\l"] - 351 -> 8 [style=solid label="\"in\""] - 351 -> 211 [style=solid label="\"(\""] - 351 -> 9 [style=solid label="\"identifier\""] - 351 -> 402 [style=dashed label="Type"] - 351 -> 213 [style=dashed label="BasicType"] - 351 -> 214 [style=dashed label="TupleType"] - 351 -> 215 [style=dashed label="RecordType"] - 351 -> 216 [style=dashed label="TemplateType"] - 351 -> 217 [style=dashed label="RelationType"] - 351 -> 218 [style=dashed label="FixedSizedType"] - 351 -> 90 [style=dashed label="Identifier"] - 351 -> 219 [style=dashed label="IdentifierPath"] - 352 [label="State 352\n\l141 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term \"holds\" • Term\l"] - 352 -> 41 [style=solid label="\"let\""] - 352 -> 8 [style=solid label="\"in\""] - 352 -> 42 [style=solid label="\"forall\""] - 352 -> 43 [style=solid label="\"choose\""] - 352 -> 44 [style=solid label="\"if\""] - 352 -> 45 [style=solid label="\"exists\""] - 352 -> 46 [style=solid label="\"undef\""] - 352 -> 47 [style=solid label="\"false\""] - 352 -> 48 [style=solid label="\"true\""] - 352 -> 49 [style=solid label="\"not\""] - 352 -> 50 [style=solid label="\"+\""] - 352 -> 51 [style=solid label="\"-\""] - 352 -> 52 [style=solid label="\"(\""] - 352 -> 53 [style=solid label="\"[\""] - 352 -> 54 [style=solid label="\"|\""] - 352 -> 55 [style=solid label="\"@\""] - 352 -> 56 [style=solid label="\"binary\""] - 352 -> 57 [style=solid label="\"hexadecimal\""] - 352 -> 58 [style=solid label="\"integer\""] - 352 -> 59 [style=solid label="\"rational\""] - 352 -> 60 [style=solid label="\"decimal\""] - 352 -> 61 [style=solid label="\"string\""] - 352 -> 9 [style=solid label="\"identifier\""] - 352 -> 403 [style=dashed label="Term"] - 352 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 352 -> 64 [style=dashed label="OperatorExpression"] - 352 -> 65 [style=dashed label="CallExpression"] - 352 -> 66 [style=dashed label="DirectCallExpression"] - 352 -> 67 [style=dashed label="MethodCallExpression"] - 352 -> 68 [style=dashed label="LiteralCallExpression"] - 352 -> 69 [style=dashed label="IndirectCallExpression"] - 352 -> 70 [style=dashed label="TypeCastingExpression"] - 352 -> 71 [style=dashed label="LetExpression"] - 352 -> 72 [style=dashed label="ConditionalExpression"] - 352 -> 73 [style=dashed label="ChooseExpression"] - 352 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 352 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 352 -> 76 [style=dashed label="CardinalityExpression"] - 352 -> 77 [style=dashed label="Literal"] - 352 -> 78 [style=dashed label="UndefinedLiteral"] - 352 -> 79 [style=dashed label="BooleanLiteral"] - 352 -> 80 [style=dashed label="IntegerLiteral"] - 352 -> 81 [style=dashed label="RationalLiteral"] - 352 -> 82 [style=dashed label="DecimalLiteral"] - 352 -> 83 [style=dashed label="BinaryLiteral"] - 352 -> 84 [style=dashed label="StringLiteral"] - 352 -> 85 [style=dashed label="ReferenceLiteral"] - 352 -> 86 [style=dashed label="ListLiteral"] - 352 -> 87 [style=dashed label="RangeLiteral"] - 352 -> 88 [style=dashed label="TupleLiteral"] - 352 -> 89 [style=dashed label="RecordLiteral"] - 352 -> 90 [style=dashed label="Identifier"] - 352 -> 91 [style=dashed label="IdentifierPath"] - 353 [label="State 353\n\l140 ChooseExpression: \"choose\" AttributedVariables \"in\" Term \"do\" • Term\l"] - 353 -> 41 [style=solid label="\"let\""] + 334 -> 253 [style=dashed label="Identifier"] + 334 -> 254 [style=dashed label="TypedVariable"] + 334 -> 400 [style=dashed label="TypedAttributedVariable"] + 334 -> 256 [style=dashed label="Attributes"] + 334 -> 6 [style=dashed label="Attribute"] + 335 [label="State 335\n\l233 TypedAttributedVariable: Attributes TypedVariable •\l"] + 335 -> "335R233" [style=solid] + "335R233" [label="R233", fillcolor=3, shape=diamond, style=filled] + 336 [label="State 336\n\l 24 DerivedDefinition: \"derived\" Identifier \"->\" Type \"=\" • Term\l"] + 336 -> 45 [style=solid label="\"let\""] + 336 -> 8 [style=solid label="\"in\""] + 336 -> 46 [style=solid label="\"forall\""] + 336 -> 47 [style=solid label="\"choose\""] + 336 -> 48 [style=solid label="\"if\""] + 336 -> 49 [style=solid label="\"exists\""] + 336 -> 50 [style=solid label="\"undef\""] + 336 -> 51 [style=solid label="\"false\""] + 336 -> 52 [style=solid label="\"true\""] + 336 -> 53 [style=solid label="\"not\""] + 336 -> 54 [style=solid label="\"+\""] + 336 -> 55 [style=solid label="\"-\""] + 336 -> 56 [style=solid label="\"(\""] + 336 -> 57 [style=solid label="\"[\""] + 336 -> 58 [style=solid label="\"|\""] + 336 -> 59 [style=solid label="\"@\""] + 336 -> 60 [style=solid label="\"binary\""] + 336 -> 61 [style=solid label="\"hexadecimal\""] + 336 -> 62 [style=solid label="\"integer\""] + 336 -> 63 [style=solid label="\"rational\""] + 336 -> 64 [style=solid label="\"decimal\""] + 336 -> 65 [style=solid label="\"string\""] + 336 -> 9 [style=solid label="\"identifier\""] + 336 -> 401 [style=dashed label="Term"] + 336 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 336 -> 68 [style=dashed label="OperatorExpression"] + 336 -> 69 [style=dashed label="CallExpression"] + 336 -> 70 [style=dashed label="DirectCallExpression"] + 336 -> 71 [style=dashed label="MethodCallExpression"] + 336 -> 72 [style=dashed label="LiteralCallExpression"] + 336 -> 73 [style=dashed label="IndirectCallExpression"] + 336 -> 74 [style=dashed label="TypeCastingExpression"] + 336 -> 75 [style=dashed label="LetExpression"] + 336 -> 76 [style=dashed label="ConditionalExpression"] + 336 -> 77 [style=dashed label="ChooseExpression"] + 336 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 336 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 336 -> 80 [style=dashed label="CardinalityExpression"] + 336 -> 81 [style=dashed label="Literal"] + 336 -> 82 [style=dashed label="UndefinedLiteral"] + 336 -> 83 [style=dashed label="BooleanLiteral"] + 336 -> 84 [style=dashed label="IntegerLiteral"] + 336 -> 85 [style=dashed label="RationalLiteral"] + 336 -> 86 [style=dashed label="DecimalLiteral"] + 336 -> 87 [style=dashed label="BinaryLiteral"] + 336 -> 88 [style=dashed label="StringLiteral"] + 336 -> 89 [style=dashed label="ReferenceLiteral"] + 336 -> 90 [style=dashed label="ListLiteral"] + 336 -> 91 [style=dashed label="RangeLiteral"] + 336 -> 92 [style=dashed label="TupleLiteral"] + 336 -> 93 [style=dashed label="RecordLiteral"] + 336 -> 94 [style=dashed label="Identifier"] + 336 -> 95 [style=dashed label="IdentifierPath"] + 337 [label="State 337\n\l 36 EnumeratorDefinition: error •\l"] + 337 -> "337R36" [style=solid] + "337R36" [label="R36", fillcolor=3, shape=diamond, style=filled] + 338 [label="State 338\n\l 38 Enumerators: EnumeratorDefinition •\l"] + 338 -> "338R38" [style=solid] + "338R38" [label="R38", fillcolor=3, shape=diamond, style=filled] + 339 [label="State 339\n\l 23 EnumerationDefinition: \"enumeration\" Identifier \"=\" \"{\" Enumerators • \"}\"\l 37 Enumerators: Enumerators • \",\" EnumeratorDefinition\l"] + 339 -> 402 [style=solid label="\"}\""] + 339 -> 403 [style=solid label="\",\""] + 340 [label="State 340\n\l 34 EnumeratorDefinition: Identifier •\l"] + 340 -> "340R34" [style=solid] + "340R34" [label="R34", fillcolor=3, shape=diamond, style=filled] + 341 [label="State 341\n\l 35 EnumeratorDefinition: Attributes • Identifier\l244 Attributes: Attributes • Attribute\l"] + 341 -> 8 [style=solid label="\"in\""] + 341 -> 2 [style=solid label="\"[\""] + 341 -> 9 [style=solid label="\"identifier\""] + 341 -> 404 [style=dashed label="Identifier"] + 341 -> 43 [style=dashed label="Attribute"] + 342 [label="State 342\n\l 98 SequenceRule: \"seq\" error • \"endseq\"\l"] + 342 -> 405 [style=solid label="\"endseq\""] + 343 [label="State 343\n\l 60 Rules: Rules • Rule\l 96 SequenceRule: \"seq\" Rules • \"endseq\"\l"] + 343 -> 259 [style=solid label="\"seq\""] + 343 -> 406 [style=solid label="\"endseq\""] + 343 -> 260 [style=solid label="\"par\""] + 343 -> 261 [style=solid label="\"skip\""] + 343 -> 262 [style=solid label="\"let\""] + 343 -> 263 [style=solid label="\"local\""] + 343 -> 8 [style=solid label="\"in\""] + 343 -> 264 [style=solid label="\"forall\""] + 343 -> 265 [style=solid label="\"choose\""] + 343 -> 266 [style=solid label="\"iterate\""] + 343 -> 267 [style=solid label="\"if\""] + 343 -> 268 [style=solid label="\"case\""] + 343 -> 269 [style=solid label="\"while\""] + 343 -> 50 [style=solid label="\"undef\""] + 343 -> 51 [style=solid label="\"false\""] + 343 -> 52 [style=solid label="\"true\""] + 343 -> 54 [style=solid label="\"+\""] + 343 -> 55 [style=solid label="\"-\""] + 343 -> 56 [style=solid label="\"(\""] + 343 -> 57 [style=solid label="\"[\""] + 343 -> 270 [style=solid label="\"{\""] + 343 -> 59 [style=solid label="\"@\""] + 343 -> 271 [style=solid label="\"{|\""] + 343 -> 60 [style=solid label="\"binary\""] + 343 -> 61 [style=solid label="\"hexadecimal\""] + 343 -> 62 [style=solid label="\"integer\""] + 343 -> 63 [style=solid label="\"rational\""] + 343 -> 64 [style=solid label="\"decimal\""] + 343 -> 65 [style=solid label="\"string\""] + 343 -> 9 [style=solid label="\"identifier\""] + 343 -> 407 [style=dashed label="Rule"] + 343 -> 273 [style=dashed label="SkipRule"] + 343 -> 274 [style=dashed label="ConditionalRule"] + 343 -> 275 [style=dashed label="CaseRule"] + 343 -> 276 [style=dashed label="LetRule"] + 343 -> 277 [style=dashed label="LocalRule"] + 343 -> 278 [style=dashed label="ForallRule"] + 343 -> 279 [style=dashed label="ChooseRule"] + 343 -> 280 [style=dashed label="IterateRule"] + 343 -> 281 [style=dashed label="BlockRule"] + 343 -> 282 [style=dashed label="SequenceRule"] + 343 -> 283 [style=dashed label="UpdateRule"] + 343 -> 284 [style=dashed label="CallRule"] + 343 -> 285 [style=dashed label="WhileRule"] + 343 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 343 -> 287 [style=dashed label="CallExpression"] + 343 -> 288 [style=dashed label="DirectCallExpression"] + 343 -> 71 [style=dashed label="MethodCallExpression"] + 343 -> 72 [style=dashed label="LiteralCallExpression"] + 343 -> 73 [style=dashed label="IndirectCallExpression"] + 343 -> 81 [style=dashed label="Literal"] + 343 -> 82 [style=dashed label="UndefinedLiteral"] + 343 -> 83 [style=dashed label="BooleanLiteral"] + 343 -> 84 [style=dashed label="IntegerLiteral"] + 343 -> 85 [style=dashed label="RationalLiteral"] + 343 -> 86 [style=dashed label="DecimalLiteral"] + 343 -> 87 [style=dashed label="BinaryLiteral"] + 343 -> 88 [style=dashed label="StringLiteral"] + 343 -> 89 [style=dashed label="ReferenceLiteral"] + 343 -> 90 [style=dashed label="ListLiteral"] + 343 -> 91 [style=dashed label="RangeLiteral"] + 343 -> 92 [style=dashed label="TupleLiteral"] + 343 -> 93 [style=dashed label="RecordLiteral"] + 343 -> 94 [style=dashed label="Identifier"] + 343 -> 95 [style=dashed label="IdentifierPath"] + 344 [label="State 344\n\l 61 Rules: Rule •\l"] + 344 -> "344R61" [style=solid] + "344R61" [label="R61", fillcolor=3, shape=diamond, style=filled] + 345 [label="State 345\n\l 94 BlockRule: \"par\" error • \"endpar\"\l"] + 345 -> 408 [style=solid label="\"endpar\""] + 346 [label="State 346\n\l 60 Rules: Rules • Rule\l 92 BlockRule: \"par\" Rules • \"endpar\"\l"] + 346 -> 259 [style=solid label="\"seq\""] + 346 -> 260 [style=solid label="\"par\""] + 346 -> 409 [style=solid label="\"endpar\""] + 346 -> 261 [style=solid label="\"skip\""] + 346 -> 262 [style=solid label="\"let\""] + 346 -> 263 [style=solid label="\"local\""] + 346 -> 8 [style=solid label="\"in\""] + 346 -> 264 [style=solid label="\"forall\""] + 346 -> 265 [style=solid label="\"choose\""] + 346 -> 266 [style=solid label="\"iterate\""] + 346 -> 267 [style=solid label="\"if\""] + 346 -> 268 [style=solid label="\"case\""] + 346 -> 269 [style=solid label="\"while\""] + 346 -> 50 [style=solid label="\"undef\""] + 346 -> 51 [style=solid label="\"false\""] + 346 -> 52 [style=solid label="\"true\""] + 346 -> 54 [style=solid label="\"+\""] + 346 -> 55 [style=solid label="\"-\""] + 346 -> 56 [style=solid label="\"(\""] + 346 -> 57 [style=solid label="\"[\""] + 346 -> 270 [style=solid label="\"{\""] + 346 -> 59 [style=solid label="\"@\""] + 346 -> 271 [style=solid label="\"{|\""] + 346 -> 60 [style=solid label="\"binary\""] + 346 -> 61 [style=solid label="\"hexadecimal\""] + 346 -> 62 [style=solid label="\"integer\""] + 346 -> 63 [style=solid label="\"rational\""] + 346 -> 64 [style=solid label="\"decimal\""] + 346 -> 65 [style=solid label="\"string\""] + 346 -> 9 [style=solid label="\"identifier\""] + 346 -> 407 [style=dashed label="Rule"] + 346 -> 273 [style=dashed label="SkipRule"] + 346 -> 274 [style=dashed label="ConditionalRule"] + 346 -> 275 [style=dashed label="CaseRule"] + 346 -> 276 [style=dashed label="LetRule"] + 346 -> 277 [style=dashed label="LocalRule"] + 346 -> 278 [style=dashed label="ForallRule"] + 346 -> 279 [style=dashed label="ChooseRule"] + 346 -> 280 [style=dashed label="IterateRule"] + 346 -> 281 [style=dashed label="BlockRule"] + 346 -> 282 [style=dashed label="SequenceRule"] + 346 -> 283 [style=dashed label="UpdateRule"] + 346 -> 284 [style=dashed label="CallRule"] + 346 -> 285 [style=dashed label="WhileRule"] + 346 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 346 -> 287 [style=dashed label="CallExpression"] + 346 -> 288 [style=dashed label="DirectCallExpression"] + 346 -> 71 [style=dashed label="MethodCallExpression"] + 346 -> 72 [style=dashed label="LiteralCallExpression"] + 346 -> 73 [style=dashed label="IndirectCallExpression"] + 346 -> 81 [style=dashed label="Literal"] + 346 -> 82 [style=dashed label="UndefinedLiteral"] + 346 -> 83 [style=dashed label="BooleanLiteral"] + 346 -> 84 [style=dashed label="IntegerLiteral"] + 346 -> 85 [style=dashed label="RationalLiteral"] + 346 -> 86 [style=dashed label="DecimalLiteral"] + 346 -> 87 [style=dashed label="BinaryLiteral"] + 346 -> 88 [style=dashed label="StringLiteral"] + 346 -> 89 [style=dashed label="ReferenceLiteral"] + 346 -> 90 [style=dashed label="ListLiteral"] + 346 -> 91 [style=dashed label="RangeLiteral"] + 346 -> 92 [style=dashed label="TupleLiteral"] + 346 -> 93 [style=dashed label="RecordLiteral"] + 346 -> 94 [style=dashed label="Identifier"] + 346 -> 95 [style=dashed label="IdentifierPath"] + 347 [label="State 347\n\l 85 LetRule: \"let\" VariableBindings • \"in\" Rule\l235 VariableBindings: VariableBindings • \",\" VariableBinding\l"] + 347 -> 410 [style=solid label="\"in\""] + 347 -> 201 [style=solid label="\",\""] + 348 [label="State 348\n\l242 AttributedLocalFunctionDefinition: error •\l"] + 348 -> "348R242" [style=solid] + "348R242" [label="R242", fillcolor=3, shape=diamond, style=filled] + 349 [label="State 349\n\l243 LocalFunctionDefinition: Identifier • \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] + 349 -> 411 [style=solid label="\":\""] + 350 [label="State 350\n\l 86 LocalRule: \"local\" LocalFunctionDefinitions • \"in\" Rule\l238 LocalFunctionDefinitions: LocalFunctionDefinitions • \",\" AttributedLocalFunctionDefinition\l"] + 350 -> 412 [style=solid label="\"in\""] + 350 -> 413 [style=solid label="\",\""] + 351 [label="State 351\n\l239 LocalFunctionDefinitions: AttributedLocalFunctionDefinition •\l"] + 351 -> "351R239" [style=solid] + "351R239" [label="R239", fillcolor=3, shape=diamond, style=filled] + 352 [label="State 352\n\l241 AttributedLocalFunctionDefinition: LocalFunctionDefinition •\l"] + 352 -> "352R241" [style=solid] + "352R241" [label="R241", fillcolor=3, shape=diamond, style=filled] + 353 [label="State 353\n\l240 AttributedLocalFunctionDefinition: Attributes • LocalFunctionDefinition\l244 Attributes: Attributes • Attribute\l"] 353 -> 8 [style=solid label="\"in\""] - 353 -> 42 [style=solid label="\"forall\""] - 353 -> 43 [style=solid label="\"choose\""] - 353 -> 44 [style=solid label="\"if\""] - 353 -> 45 [style=solid label="\"exists\""] - 353 -> 46 [style=solid label="\"undef\""] - 353 -> 47 [style=solid label="\"false\""] - 353 -> 48 [style=solid label="\"true\""] - 353 -> 49 [style=solid label="\"not\""] - 353 -> 50 [style=solid label="\"+\""] - 353 -> 51 [style=solid label="\"-\""] - 353 -> 52 [style=solid label="\"(\""] - 353 -> 53 [style=solid label="\"[\""] - 353 -> 54 [style=solid label="\"|\""] - 353 -> 55 [style=solid label="\"@\""] - 353 -> 56 [style=solid label="\"binary\""] - 353 -> 57 [style=solid label="\"hexadecimal\""] - 353 -> 58 [style=solid label="\"integer\""] - 353 -> 59 [style=solid label="\"rational\""] - 353 -> 60 [style=solid label="\"decimal\""] - 353 -> 61 [style=solid label="\"string\""] + 353 -> 2 [style=solid label="\"[\""] 353 -> 9 [style=solid label="\"identifier\""] - 353 -> 404 [style=dashed label="Term"] - 353 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 353 -> 64 [style=dashed label="OperatorExpression"] - 353 -> 65 [style=dashed label="CallExpression"] - 353 -> 66 [style=dashed label="DirectCallExpression"] - 353 -> 67 [style=dashed label="MethodCallExpression"] - 353 -> 68 [style=dashed label="LiteralCallExpression"] - 353 -> 69 [style=dashed label="IndirectCallExpression"] - 353 -> 70 [style=dashed label="TypeCastingExpression"] - 353 -> 71 [style=dashed label="LetExpression"] - 353 -> 72 [style=dashed label="ConditionalExpression"] - 353 -> 73 [style=dashed label="ChooseExpression"] - 353 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 353 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 353 -> 76 [style=dashed label="CardinalityExpression"] - 353 -> 77 [style=dashed label="Literal"] - 353 -> 78 [style=dashed label="UndefinedLiteral"] - 353 -> 79 [style=dashed label="BooleanLiteral"] - 353 -> 80 [style=dashed label="IntegerLiteral"] - 353 -> 81 [style=dashed label="RationalLiteral"] - 353 -> 82 [style=dashed label="DecimalLiteral"] - 353 -> 83 [style=dashed label="BinaryLiteral"] - 353 -> 84 [style=dashed label="StringLiteral"] - 353 -> 85 [style=dashed label="ReferenceLiteral"] - 353 -> 86 [style=dashed label="ListLiteral"] - 353 -> 87 [style=dashed label="RangeLiteral"] - 353 -> 88 [style=dashed label="TupleLiteral"] - 353 -> 89 [style=dashed label="RecordLiteral"] - 353 -> 90 [style=dashed label="Identifier"] - 353 -> 91 [style=dashed label="IdentifierPath"] - 354 [label="State 354\n\l139 ConditionalExpression: \"if\" Term \"then\" Term \"else\" • Term\l"] - 354 -> 41 [style=solid label="\"let\""] - 354 -> 8 [style=solid label="\"in\""] - 354 -> 42 [style=solid label="\"forall\""] - 354 -> 43 [style=solid label="\"choose\""] - 354 -> 44 [style=solid label="\"if\""] - 354 -> 45 [style=solid label="\"exists\""] - 354 -> 46 [style=solid label="\"undef\""] - 354 -> 47 [style=solid label="\"false\""] - 354 -> 48 [style=solid label="\"true\""] - 354 -> 49 [style=solid label="\"not\""] - 354 -> 50 [style=solid label="\"+\""] - 354 -> 51 [style=solid label="\"-\""] - 354 -> 52 [style=solid label="\"(\""] - 354 -> 53 [style=solid label="\"[\""] - 354 -> 54 [style=solid label="\"|\""] - 354 -> 55 [style=solid label="\"@\""] - 354 -> 56 [style=solid label="\"binary\""] - 354 -> 57 [style=solid label="\"hexadecimal\""] - 354 -> 58 [style=solid label="\"integer\""] - 354 -> 59 [style=solid label="\"rational\""] - 354 -> 60 [style=solid label="\"decimal\""] - 354 -> 61 [style=solid label="\"string\""] - 354 -> 9 [style=solid label="\"identifier\""] - 354 -> 405 [style=dashed label="Term"] - 354 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 354 -> 64 [style=dashed label="OperatorExpression"] - 354 -> 65 [style=dashed label="CallExpression"] - 354 -> 66 [style=dashed label="DirectCallExpression"] - 354 -> 67 [style=dashed label="MethodCallExpression"] - 354 -> 68 [style=dashed label="LiteralCallExpression"] - 354 -> 69 [style=dashed label="IndirectCallExpression"] - 354 -> 70 [style=dashed label="TypeCastingExpression"] - 354 -> 71 [style=dashed label="LetExpression"] - 354 -> 72 [style=dashed label="ConditionalExpression"] - 354 -> 73 [style=dashed label="ChooseExpression"] - 354 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 354 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 354 -> 76 [style=dashed label="CardinalityExpression"] - 354 -> 77 [style=dashed label="Literal"] - 354 -> 78 [style=dashed label="UndefinedLiteral"] - 354 -> 79 [style=dashed label="BooleanLiteral"] - 354 -> 80 [style=dashed label="IntegerLiteral"] - 354 -> 81 [style=dashed label="RationalLiteral"] - 354 -> 82 [style=dashed label="DecimalLiteral"] - 354 -> 83 [style=dashed label="BinaryLiteral"] - 354 -> 84 [style=dashed label="StringLiteral"] - 354 -> 85 [style=dashed label="ReferenceLiteral"] - 354 -> 86 [style=dashed label="ListLiteral"] - 354 -> 87 [style=dashed label="RangeLiteral"] - 354 -> 88 [style=dashed label="TupleLiteral"] - 354 -> 89 [style=dashed label="RecordLiteral"] - 354 -> 90 [style=dashed label="Identifier"] - 354 -> 91 [style=dashed label="IdentifierPath"] - 355 [label="State 355\n\l142 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term \"with\" • Term\l"] - 355 -> 41 [style=solid label="\"let\""] - 355 -> 8 [style=solid label="\"in\""] - 355 -> 42 [style=solid label="\"forall\""] - 355 -> 43 [style=solid label="\"choose\""] - 355 -> 44 [style=solid label="\"if\""] - 355 -> 45 [style=solid label="\"exists\""] - 355 -> 46 [style=solid label="\"undef\""] - 355 -> 47 [style=solid label="\"false\""] - 355 -> 48 [style=solid label="\"true\""] - 355 -> 49 [style=solid label="\"not\""] - 355 -> 50 [style=solid label="\"+\""] - 355 -> 51 [style=solid label="\"-\""] - 355 -> 52 [style=solid label="\"(\""] - 355 -> 53 [style=solid label="\"[\""] - 355 -> 54 [style=solid label="\"|\""] - 355 -> 55 [style=solid label="\"@\""] - 355 -> 56 [style=solid label="\"binary\""] - 355 -> 57 [style=solid label="\"hexadecimal\""] - 355 -> 58 [style=solid label="\"integer\""] - 355 -> 59 [style=solid label="\"rational\""] - 355 -> 60 [style=solid label="\"decimal\""] - 355 -> 61 [style=solid label="\"string\""] - 355 -> 9 [style=solid label="\"identifier\""] - 355 -> 406 [style=dashed label="Term"] - 355 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 355 -> 64 [style=dashed label="OperatorExpression"] - 355 -> 65 [style=dashed label="CallExpression"] - 355 -> 66 [style=dashed label="DirectCallExpression"] - 355 -> 67 [style=dashed label="MethodCallExpression"] - 355 -> 68 [style=dashed label="LiteralCallExpression"] - 355 -> 69 [style=dashed label="IndirectCallExpression"] - 355 -> 70 [style=dashed label="TypeCastingExpression"] - 355 -> 71 [style=dashed label="LetExpression"] - 355 -> 72 [style=dashed label="ConditionalExpression"] - 355 -> 73 [style=dashed label="ChooseExpression"] - 355 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 355 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 355 -> 76 [style=dashed label="CardinalityExpression"] - 355 -> 77 [style=dashed label="Literal"] - 355 -> 78 [style=dashed label="UndefinedLiteral"] - 355 -> 79 [style=dashed label="BooleanLiteral"] - 355 -> 80 [style=dashed label="IntegerLiteral"] - 355 -> 81 [style=dashed label="RationalLiteral"] - 355 -> 82 [style=dashed label="DecimalLiteral"] - 355 -> 83 [style=dashed label="BinaryLiteral"] - 355 -> 84 [style=dashed label="StringLiteral"] - 355 -> 85 [style=dashed label="ReferenceLiteral"] - 355 -> 86 [style=dashed label="ListLiteral"] - 355 -> 87 [style=dashed label="RangeLiteral"] - 355 -> 88 [style=dashed label="TupleLiteral"] - 355 -> 89 [style=dashed label="RecordLiteral"] - 355 -> 90 [style=dashed label="Identifier"] - 355 -> 91 [style=dashed label="IdentifierPath"] - 356 [label="State 356\n\l170 TupleLiteral: \"(\" Terms \",\" Term \")\" •\l"] - 356 -> "356R170" [style=solid] - "356R170" [label="R170", fillcolor=3, shape=diamond, style=filled] - 357 [label="State 357\n\l169 RangeLiteral: \"[\" Term \"..\" Term \"]\" •\l"] - 357 -> "357R169" [style=solid] - "357R169" [label="R169", fillcolor=3, shape=diamond, style=filled] - 358 [label="State 358\n\l175 Types: Types \",\" • Type\l184 TupleType: \"(\" Types \",\" • Type \")\"\l"] - 358 -> 8 [style=solid label="\"in\""] - 358 -> 211 [style=solid label="\"(\""] - 358 -> 9 [style=solid label="\"identifier\""] - 358 -> 407 [style=dashed label="Type"] - 358 -> 213 [style=dashed label="BasicType"] - 358 -> 214 [style=dashed label="TupleType"] - 358 -> 215 [style=dashed label="RecordType"] - 358 -> 216 [style=dashed label="TemplateType"] - 358 -> 217 [style=dashed label="RelationType"] - 358 -> 218 [style=dashed label="FixedSizedType"] - 358 -> 90 [style=dashed label="Identifier"] - 358 -> 219 [style=dashed label="IdentifierPath"] - 359 [label="State 359\n\l185 RecordType: \"(\" TypedVariables \",\" • TypedVariable \")\"\l212 TypedVariables: TypedVariables \",\" • TypedVariable\l"] - 359 -> 8 [style=solid label="\"in\""] - 359 -> 9 [style=solid label="\"identifier\""] - 359 -> 236 [style=dashed label="Identifier"] - 359 -> 408 [style=dashed label="TypedVariable"] - 360 [label="State 360\n\l175 Types: Types • \",\" Type\l186 TemplateType: IdentifierPath \"<\" Types • \">\"\l"] - 360 -> 409 [style=solid label="\",\""] - 360 -> 410 [style=solid label="\">\""] - 361 [label="State 361\n\l176 Types: Type •\l190 FunctionParameters: Type •\l"] - 361 -> "361R176" [style=solid] - "361R176" [label="R176", fillcolor=3, shape=diamond, style=filled] - 361 -> "361R190" [label="[\"*\", \"->\"]", style=solid] - "361R190" [label="R190", fillcolor=3, shape=diamond, style=filled] - 362 [label="State 362\n\l187 RelationType: IdentifierPath \"<\" MaybeFunctionParameters • \"->\" Type \">\"\l"] - 362 -> 411 [style=solid label="\"->\""] - 363 [label="State 363\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l188 FixedSizedType: IdentifierPath \"'\" Term •\l"] - 363 -> "363R188" [style=solid] - "363R188" [label="R188", fillcolor=3, shape=diamond, style=filled] - 364 [label="State 364\n\l132 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" error • \")\"\l"] - 364 -> 412 [style=solid label="\")\""] - 365 [label="State 365\n\l130 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" \")\" •\l"] - 365 -> "365R130" [style=solid] - "365R130" [label="R130", fillcolor=3, shape=diamond, style=filled] - 366 [label="State 366\n\l 86 Terms: Terms • \",\" Term\l131 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" Terms • \")\"\l"] - 366 -> 413 [style=solid label="\")\""] - 366 -> 191 [style=solid label="\",\""] - 367 [label="State 367\n\l202 Initializer: \"(\" Term \")\" \"->\" • Term\l"] - 367 -> 41 [style=solid label="\"let\""] + 353 -> 349 [style=dashed label="Identifier"] + 353 -> 414 [style=dashed label="LocalFunctionDefinition"] + 353 -> 43 [style=dashed label="Attribute"] + 354 [label="State 354\n\l 87 ForallRule: \"forall\" AttributedVariables • \"in\" Term \"do\" Rule\l 88 | \"forall\" AttributedVariables • \"in\" Term \"with\" Term \"do\" Rule\l226 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] + 354 -> 415 [style=solid label="\"in\""] + 354 -> 204 [style=solid label="\",\""] + 355 [label="State 355\n\l 89 ChooseRule: \"choose\" AttributedVariables • \"in\" Term \"do\" Rule\l226 AttributedVariables: AttributedVariables • \",\" AttributedVariable\l"] + 355 -> 416 [style=solid label="\"in\""] + 355 -> 204 [style=solid label="\",\""] + 356 [label="State 356\n\l 90 IterateRule: \"iterate\" Rule •\l"] + 356 -> "356R90" [style=solid] + "356R90" [label="R90", fillcolor=3, shape=diamond, style=filled] + 357 [label="State 357\n\l 76 ConditionalRule: \"if\" Term • \"then\" Rule\l 77 | \"if\" Term • \"then\" Rule \"else\" Rule\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 357 -> 417 [style=solid label="\"then\""] + 357 -> 148 [style=solid label="\"and\""] + 357 -> 149 [style=solid label="\"or\""] + 357 -> 150 [style=solid label="\"xor\""] + 357 -> 151 [style=solid label="\"implies\""] + 357 -> 152 [style=solid label="\"+\""] + 357 -> 153 [style=solid label="\"-\""] + 357 -> 154 [style=solid label="\"=\""] + 357 -> 155 [style=solid label="\"<\""] + 357 -> 156 [style=solid label="\">\""] + 357 -> 157 [style=solid label="\"*\""] + 357 -> 158 [style=solid label="\"/\""] + 357 -> 159 [style=solid label="\"%\""] + 357 -> 160 [style=solid label="\"^\""] + 357 -> 161 [style=solid label="\"=>\""] + 357 -> 162 [style=solid label="\"!=\""] + 357 -> 163 [style=solid label="\"<=\""] + 357 -> 164 [style=solid label="\">=\""] + 358 [label="State 358\n\l 78 CaseRule: \"case\" Term • \"of\" \"{\" CaseLabels \"}\"\l 79 | \"case\" Term • \"of\" \"{\" error \"}\"\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 358 -> 418 [style=solid label="\"of\""] + 358 -> 148 [style=solid label="\"and\""] + 358 -> 149 [style=solid label="\"or\""] + 358 -> 150 [style=solid label="\"xor\""] + 358 -> 151 [style=solid label="\"implies\""] + 358 -> 152 [style=solid label="\"+\""] + 358 -> 153 [style=solid label="\"-\""] + 358 -> 154 [style=solid label="\"=\""] + 358 -> 155 [style=solid label="\"<\""] + 358 -> 156 [style=solid label="\">\""] + 358 -> 157 [style=solid label="\"*\""] + 358 -> 158 [style=solid label="\"/\""] + 358 -> 159 [style=solid label="\"%\""] + 358 -> 160 [style=solid label="\"^\""] + 358 -> 161 [style=solid label="\"=>\""] + 358 -> 162 [style=solid label="\"!=\""] + 358 -> 163 [style=solid label="\"<=\""] + 358 -> 164 [style=solid label="\">=\""] + 359 [label="State 359\n\l101 WhileRule: \"while\" Term • \"do\" Rule\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 359 -> 419 [style=solid label="\"do\""] + 359 -> 148 [style=solid label="\"and\""] + 359 -> 149 [style=solid label="\"or\""] + 359 -> 150 [style=solid label="\"xor\""] + 359 -> 151 [style=solid label="\"implies\""] + 359 -> 152 [style=solid label="\"+\""] + 359 -> 153 [style=solid label="\"-\""] + 359 -> 154 [style=solid label="\"=\""] + 359 -> 155 [style=solid label="\"<\""] + 359 -> 156 [style=solid label="\">\""] + 359 -> 157 [style=solid label="\"*\""] + 359 -> 158 [style=solid label="\"/\""] + 359 -> 159 [style=solid label="\"%\""] + 359 -> 160 [style=solid label="\"^\""] + 359 -> 161 [style=solid label="\"=>\""] + 359 -> 162 [style=solid label="\"!=\""] + 359 -> 163 [style=solid label="\"<=\""] + 359 -> 164 [style=solid label="\">=\""] + 360 [label="State 360\n\l 93 BlockRule: \"{\" error • \"}\"\l"] + 360 -> 420 [style=solid label="\"}\""] + 361 [label="State 361\n\l 60 Rules: Rules • Rule\l 91 BlockRule: \"{\" Rules • \"}\"\l"] + 361 -> 259 [style=solid label="\"seq\""] + 361 -> 260 [style=solid label="\"par\""] + 361 -> 261 [style=solid label="\"skip\""] + 361 -> 262 [style=solid label="\"let\""] + 361 -> 263 [style=solid label="\"local\""] + 361 -> 8 [style=solid label="\"in\""] + 361 -> 264 [style=solid label="\"forall\""] + 361 -> 265 [style=solid label="\"choose\""] + 361 -> 266 [style=solid label="\"iterate\""] + 361 -> 267 [style=solid label="\"if\""] + 361 -> 268 [style=solid label="\"case\""] + 361 -> 269 [style=solid label="\"while\""] + 361 -> 50 [style=solid label="\"undef\""] + 361 -> 51 [style=solid label="\"false\""] + 361 -> 52 [style=solid label="\"true\""] + 361 -> 54 [style=solid label="\"+\""] + 361 -> 55 [style=solid label="\"-\""] + 361 -> 56 [style=solid label="\"(\""] + 361 -> 57 [style=solid label="\"[\""] + 361 -> 270 [style=solid label="\"{\""] + 361 -> 421 [style=solid label="\"}\""] + 361 -> 59 [style=solid label="\"@\""] + 361 -> 271 [style=solid label="\"{|\""] + 361 -> 60 [style=solid label="\"binary\""] + 361 -> 61 [style=solid label="\"hexadecimal\""] + 361 -> 62 [style=solid label="\"integer\""] + 361 -> 63 [style=solid label="\"rational\""] + 361 -> 64 [style=solid label="\"decimal\""] + 361 -> 65 [style=solid label="\"string\""] + 361 -> 9 [style=solid label="\"identifier\""] + 361 -> 407 [style=dashed label="Rule"] + 361 -> 273 [style=dashed label="SkipRule"] + 361 -> 274 [style=dashed label="ConditionalRule"] + 361 -> 275 [style=dashed label="CaseRule"] + 361 -> 276 [style=dashed label="LetRule"] + 361 -> 277 [style=dashed label="LocalRule"] + 361 -> 278 [style=dashed label="ForallRule"] + 361 -> 279 [style=dashed label="ChooseRule"] + 361 -> 280 [style=dashed label="IterateRule"] + 361 -> 281 [style=dashed label="BlockRule"] + 361 -> 282 [style=dashed label="SequenceRule"] + 361 -> 283 [style=dashed label="UpdateRule"] + 361 -> 284 [style=dashed label="CallRule"] + 361 -> 285 [style=dashed label="WhileRule"] + 361 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 361 -> 287 [style=dashed label="CallExpression"] + 361 -> 288 [style=dashed label="DirectCallExpression"] + 361 -> 71 [style=dashed label="MethodCallExpression"] + 361 -> 72 [style=dashed label="LiteralCallExpression"] + 361 -> 73 [style=dashed label="IndirectCallExpression"] + 361 -> 81 [style=dashed label="Literal"] + 361 -> 82 [style=dashed label="UndefinedLiteral"] + 361 -> 83 [style=dashed label="BooleanLiteral"] + 361 -> 84 [style=dashed label="IntegerLiteral"] + 361 -> 85 [style=dashed label="RationalLiteral"] + 361 -> 86 [style=dashed label="DecimalLiteral"] + 361 -> 87 [style=dashed label="BinaryLiteral"] + 361 -> 88 [style=dashed label="StringLiteral"] + 361 -> 89 [style=dashed label="ReferenceLiteral"] + 361 -> 90 [style=dashed label="ListLiteral"] + 361 -> 91 [style=dashed label="RangeLiteral"] + 361 -> 92 [style=dashed label="TupleLiteral"] + 361 -> 93 [style=dashed label="RecordLiteral"] + 361 -> 94 [style=dashed label="Identifier"] + 361 -> 95 [style=dashed label="IdentifierPath"] + 362 [label="State 362\n\l 97 SequenceRule: \"{|\" error • \"|}\"\l"] + 362 -> 422 [style=solid label="\"|}\""] + 363 [label="State 363\n\l 60 Rules: Rules • Rule\l 95 SequenceRule: \"{|\" Rules • \"|}\"\l"] + 363 -> 259 [style=solid label="\"seq\""] + 363 -> 260 [style=solid label="\"par\""] + 363 -> 261 [style=solid label="\"skip\""] + 363 -> 262 [style=solid label="\"let\""] + 363 -> 263 [style=solid label="\"local\""] + 363 -> 8 [style=solid label="\"in\""] + 363 -> 264 [style=solid label="\"forall\""] + 363 -> 265 [style=solid label="\"choose\""] + 363 -> 266 [style=solid label="\"iterate\""] + 363 -> 267 [style=solid label="\"if\""] + 363 -> 268 [style=solid label="\"case\""] + 363 -> 269 [style=solid label="\"while\""] + 363 -> 50 [style=solid label="\"undef\""] + 363 -> 51 [style=solid label="\"false\""] + 363 -> 52 [style=solid label="\"true\""] + 363 -> 54 [style=solid label="\"+\""] + 363 -> 55 [style=solid label="\"-\""] + 363 -> 56 [style=solid label="\"(\""] + 363 -> 57 [style=solid label="\"[\""] + 363 -> 270 [style=solid label="\"{\""] + 363 -> 59 [style=solid label="\"@\""] + 363 -> 271 [style=solid label="\"{|\""] + 363 -> 423 [style=solid label="\"|}\""] + 363 -> 60 [style=solid label="\"binary\""] + 363 -> 61 [style=solid label="\"hexadecimal\""] + 363 -> 62 [style=solid label="\"integer\""] + 363 -> 63 [style=solid label="\"rational\""] + 363 -> 64 [style=solid label="\"decimal\""] + 363 -> 65 [style=solid label="\"string\""] + 363 -> 9 [style=solid label="\"identifier\""] + 363 -> 407 [style=dashed label="Rule"] + 363 -> 273 [style=dashed label="SkipRule"] + 363 -> 274 [style=dashed label="ConditionalRule"] + 363 -> 275 [style=dashed label="CaseRule"] + 363 -> 276 [style=dashed label="LetRule"] + 363 -> 277 [style=dashed label="LocalRule"] + 363 -> 278 [style=dashed label="ForallRule"] + 363 -> 279 [style=dashed label="ChooseRule"] + 363 -> 280 [style=dashed label="IterateRule"] + 363 -> 281 [style=dashed label="BlockRule"] + 363 -> 282 [style=dashed label="SequenceRule"] + 363 -> 283 [style=dashed label="UpdateRule"] + 363 -> 284 [style=dashed label="CallRule"] + 363 -> 285 [style=dashed label="WhileRule"] + 363 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 363 -> 287 [style=dashed label="CallExpression"] + 363 -> 288 [style=dashed label="DirectCallExpression"] + 363 -> 71 [style=dashed label="MethodCallExpression"] + 363 -> 72 [style=dashed label="LiteralCallExpression"] + 363 -> 73 [style=dashed label="IndirectCallExpression"] + 363 -> 81 [style=dashed label="Literal"] + 363 -> 82 [style=dashed label="UndefinedLiteral"] + 363 -> 83 [style=dashed label="BooleanLiteral"] + 363 -> 84 [style=dashed label="IntegerLiteral"] + 363 -> 85 [style=dashed label="RationalLiteral"] + 363 -> 86 [style=dashed label="DecimalLiteral"] + 363 -> 87 [style=dashed label="BinaryLiteral"] + 363 -> 88 [style=dashed label="StringLiteral"] + 363 -> 89 [style=dashed label="ReferenceLiteral"] + 363 -> 90 [style=dashed label="ListLiteral"] + 363 -> 91 [style=dashed label="RangeLiteral"] + 363 -> 92 [style=dashed label="TupleLiteral"] + 363 -> 93 [style=dashed label="RecordLiteral"] + 363 -> 94 [style=dashed label="Identifier"] + 363 -> 95 [style=dashed label="IdentifierPath"] + 364 [label="State 364\n\l 99 UpdateRule: DirectCallExpression \":=\" • Term\l"] + 364 -> 45 [style=solid label="\"let\""] + 364 -> 8 [style=solid label="\"in\""] + 364 -> 46 [style=solid label="\"forall\""] + 364 -> 47 [style=solid label="\"choose\""] + 364 -> 48 [style=solid label="\"if\""] + 364 -> 49 [style=solid label="\"exists\""] + 364 -> 50 [style=solid label="\"undef\""] + 364 -> 51 [style=solid label="\"false\""] + 364 -> 52 [style=solid label="\"true\""] + 364 -> 53 [style=solid label="\"not\""] + 364 -> 54 [style=solid label="\"+\""] + 364 -> 55 [style=solid label="\"-\""] + 364 -> 56 [style=solid label="\"(\""] + 364 -> 57 [style=solid label="\"[\""] + 364 -> 58 [style=solid label="\"|\""] + 364 -> 59 [style=solid label="\"@\""] + 364 -> 60 [style=solid label="\"binary\""] + 364 -> 61 [style=solid label="\"hexadecimal\""] + 364 -> 62 [style=solid label="\"integer\""] + 364 -> 63 [style=solid label="\"rational\""] + 364 -> 64 [style=solid label="\"decimal\""] + 364 -> 65 [style=solid label="\"string\""] + 364 -> 9 [style=solid label="\"identifier\""] + 364 -> 424 [style=dashed label="Term"] + 364 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 364 -> 68 [style=dashed label="OperatorExpression"] + 364 -> 69 [style=dashed label="CallExpression"] + 364 -> 70 [style=dashed label="DirectCallExpression"] + 364 -> 71 [style=dashed label="MethodCallExpression"] + 364 -> 72 [style=dashed label="LiteralCallExpression"] + 364 -> 73 [style=dashed label="IndirectCallExpression"] + 364 -> 74 [style=dashed label="TypeCastingExpression"] + 364 -> 75 [style=dashed label="LetExpression"] + 364 -> 76 [style=dashed label="ConditionalExpression"] + 364 -> 77 [style=dashed label="ChooseExpression"] + 364 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 364 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 364 -> 80 [style=dashed label="CardinalityExpression"] + 364 -> 81 [style=dashed label="Literal"] + 364 -> 82 [style=dashed label="UndefinedLiteral"] + 364 -> 83 [style=dashed label="BooleanLiteral"] + 364 -> 84 [style=dashed label="IntegerLiteral"] + 364 -> 85 [style=dashed label="RationalLiteral"] + 364 -> 86 [style=dashed label="DecimalLiteral"] + 364 -> 87 [style=dashed label="BinaryLiteral"] + 364 -> 88 [style=dashed label="StringLiteral"] + 364 -> 89 [style=dashed label="ReferenceLiteral"] + 364 -> 90 [style=dashed label="ListLiteral"] + 364 -> 91 [style=dashed label="RangeLiteral"] + 364 -> 92 [style=dashed label="TupleLiteral"] + 364 -> 93 [style=dashed label="RecordLiteral"] + 364 -> 94 [style=dashed label="Identifier"] + 364 -> 95 [style=dashed label="IdentifierPath"] + 365 [label="State 365\n\l 31 RuleDefinition: \"rule\" Identifier \"(\" error \")\" • \"=\" Rule\l 32 | \"rule\" Identifier \"(\" error \")\" • \"->\" Type \"=\" Rule\l"] + 365 -> 425 [style=solid label="\"=\""] + 365 -> 426 [style=solid label="\"->\""] + 366 [label="State 366\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" • \"=\" Rule\l 30 | \"rule\" Identifier \"(\" Parameters \")\" • \"->\" Type \"=\" Rule\l"] + 366 -> 427 [style=solid label="\"=\""] + 366 -> 428 [style=solid label="\"->\""] + 367 [label="State 367\n\l 28 RuleDefinition: \"rule\" Identifier \"->\" Type \"=\" • Rule\l"] + 367 -> 259 [style=solid label="\"seq\""] + 367 -> 260 [style=solid label="\"par\""] + 367 -> 261 [style=solid label="\"skip\""] + 367 -> 262 [style=solid label="\"let\""] + 367 -> 263 [style=solid label="\"local\""] 367 -> 8 [style=solid label="\"in\""] - 367 -> 42 [style=solid label="\"forall\""] - 367 -> 43 [style=solid label="\"choose\""] - 367 -> 44 [style=solid label="\"if\""] - 367 -> 45 [style=solid label="\"exists\""] - 367 -> 46 [style=solid label="\"undef\""] - 367 -> 47 [style=solid label="\"false\""] - 367 -> 48 [style=solid label="\"true\""] - 367 -> 49 [style=solid label="\"not\""] - 367 -> 50 [style=solid label="\"+\""] - 367 -> 51 [style=solid label="\"-\""] - 367 -> 52 [style=solid label="\"(\""] - 367 -> 53 [style=solid label="\"[\""] - 367 -> 54 [style=solid label="\"|\""] - 367 -> 55 [style=solid label="\"@\""] - 367 -> 56 [style=solid label="\"binary\""] - 367 -> 57 [style=solid label="\"hexadecimal\""] - 367 -> 58 [style=solid label="\"integer\""] - 367 -> 59 [style=solid label="\"rational\""] - 367 -> 60 [style=solid label="\"decimal\""] - 367 -> 61 [style=solid label="\"string\""] + 367 -> 264 [style=solid label="\"forall\""] + 367 -> 265 [style=solid label="\"choose\""] + 367 -> 266 [style=solid label="\"iterate\""] + 367 -> 267 [style=solid label="\"if\""] + 367 -> 268 [style=solid label="\"case\""] + 367 -> 269 [style=solid label="\"while\""] + 367 -> 50 [style=solid label="\"undef\""] + 367 -> 51 [style=solid label="\"false\""] + 367 -> 52 [style=solid label="\"true\""] + 367 -> 54 [style=solid label="\"+\""] + 367 -> 55 [style=solid label="\"-\""] + 367 -> 56 [style=solid label="\"(\""] + 367 -> 57 [style=solid label="\"[\""] + 367 -> 270 [style=solid label="\"{\""] + 367 -> 59 [style=solid label="\"@\""] + 367 -> 271 [style=solid label="\"{|\""] + 367 -> 60 [style=solid label="\"binary\""] + 367 -> 61 [style=solid label="\"hexadecimal\""] + 367 -> 62 [style=solid label="\"integer\""] + 367 -> 63 [style=solid label="\"rational\""] + 367 -> 64 [style=solid label="\"decimal\""] + 367 -> 65 [style=solid label="\"string\""] 367 -> 9 [style=solid label="\"identifier\""] - 367 -> 414 [style=dashed label="Term"] - 367 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 367 -> 64 [style=dashed label="OperatorExpression"] - 367 -> 65 [style=dashed label="CallExpression"] - 367 -> 66 [style=dashed label="DirectCallExpression"] - 367 -> 67 [style=dashed label="MethodCallExpression"] - 367 -> 68 [style=dashed label="LiteralCallExpression"] - 367 -> 69 [style=dashed label="IndirectCallExpression"] - 367 -> 70 [style=dashed label="TypeCastingExpression"] - 367 -> 71 [style=dashed label="LetExpression"] - 367 -> 72 [style=dashed label="ConditionalExpression"] - 367 -> 73 [style=dashed label="ChooseExpression"] - 367 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 367 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 367 -> 76 [style=dashed label="CardinalityExpression"] - 367 -> 77 [style=dashed label="Literal"] - 367 -> 78 [style=dashed label="UndefinedLiteral"] - 367 -> 79 [style=dashed label="BooleanLiteral"] - 367 -> 80 [style=dashed label="IntegerLiteral"] - 367 -> 81 [style=dashed label="RationalLiteral"] - 367 -> 82 [style=dashed label="DecimalLiteral"] - 367 -> 83 [style=dashed label="BinaryLiteral"] - 367 -> 84 [style=dashed label="StringLiteral"] - 367 -> 85 [style=dashed label="ReferenceLiteral"] - 367 -> 86 [style=dashed label="ListLiteral"] - 367 -> 87 [style=dashed label="RangeLiteral"] - 367 -> 88 [style=dashed label="TupleLiteral"] - 367 -> 89 [style=dashed label="RecordLiteral"] - 367 -> 90 [style=dashed label="Identifier"] - 367 -> 91 [style=dashed label="IdentifierPath"] - 368 [label="State 368\n\l 24 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" • Type \"=\" Term\l"] - 368 -> 8 [style=solid label="\"in\""] - 368 -> 211 [style=solid label="\"(\""] - 368 -> 9 [style=solid label="\"identifier\""] - 368 -> 415 [style=dashed label="Type"] - 368 -> 213 [style=dashed label="BasicType"] - 368 -> 214 [style=dashed label="TupleType"] - 368 -> 215 [style=dashed label="RecordType"] - 368 -> 216 [style=dashed label="TemplateType"] - 368 -> 217 [style=dashed label="RelationType"] - 368 -> 218 [style=dashed label="FixedSizedType"] - 368 -> 90 [style=dashed label="Identifier"] - 368 -> 219 [style=dashed label="IdentifierPath"] - 369 [label="State 369\n\l 23 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" • Type \"=\" Term\l"] + 367 -> 429 [style=dashed label="Rule"] + 367 -> 273 [style=dashed label="SkipRule"] + 367 -> 274 [style=dashed label="ConditionalRule"] + 367 -> 275 [style=dashed label="CaseRule"] + 367 -> 276 [style=dashed label="LetRule"] + 367 -> 277 [style=dashed label="LocalRule"] + 367 -> 278 [style=dashed label="ForallRule"] + 367 -> 279 [style=dashed label="ChooseRule"] + 367 -> 280 [style=dashed label="IterateRule"] + 367 -> 281 [style=dashed label="BlockRule"] + 367 -> 282 [style=dashed label="SequenceRule"] + 367 -> 283 [style=dashed label="UpdateRule"] + 367 -> 284 [style=dashed label="CallRule"] + 367 -> 285 [style=dashed label="WhileRule"] + 367 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 367 -> 287 [style=dashed label="CallExpression"] + 367 -> 288 [style=dashed label="DirectCallExpression"] + 367 -> 71 [style=dashed label="MethodCallExpression"] + 367 -> 72 [style=dashed label="LiteralCallExpression"] + 367 -> 73 [style=dashed label="IndirectCallExpression"] + 367 -> 81 [style=dashed label="Literal"] + 367 -> 82 [style=dashed label="UndefinedLiteral"] + 367 -> 83 [style=dashed label="BooleanLiteral"] + 367 -> 84 [style=dashed label="IntegerLiteral"] + 367 -> 85 [style=dashed label="RationalLiteral"] + 367 -> 86 [style=dashed label="DecimalLiteral"] + 367 -> 87 [style=dashed label="BinaryLiteral"] + 367 -> 88 [style=dashed label="StringLiteral"] + 367 -> 89 [style=dashed label="ReferenceLiteral"] + 367 -> 90 [style=dashed label="ListLiteral"] + 367 -> 91 [style=dashed label="RangeLiteral"] + 367 -> 92 [style=dashed label="TupleLiteral"] + 367 -> 93 [style=dashed label="RecordLiteral"] + 367 -> 94 [style=dashed label="Identifier"] + 367 -> 95 [style=dashed label="IdentifierPath"] + 368 [label="State 368\n\l 45 StructureDefinition: \"structure\" Identifier \"=\" \"{\" FunctionDefinition • \"}\"\l"] + 368 -> 430 [style=solid label="\"}\""] + 369 [label="State 369\n\l 24 DerivedDefinition: \"derived\" • Identifier \"->\" Type \"=\" Term\l 25 | \"derived\" • Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Term\l 26 | \"derived\" • Identifier \"(\" error \")\" \"->\" Type \"=\" Term\l 58 DeclarationDefinition: \"derived\" • Identifier \":\" MaybeFunctionParameters \"->\" Type\l"] 369 -> 8 [style=solid label="\"in\""] - 369 -> 211 [style=solid label="\"(\""] 369 -> 9 [style=solid label="\"identifier\""] - 369 -> 416 [style=dashed label="Type"] - 369 -> 213 [style=dashed label="BasicType"] - 369 -> 214 [style=dashed label="TupleType"] - 369 -> 215 [style=dashed label="RecordType"] - 369 -> 216 [style=dashed label="TemplateType"] - 369 -> 217 [style=dashed label="RelationType"] - 369 -> 218 [style=dashed label="FixedSizedType"] - 369 -> 90 [style=dashed label="Identifier"] - 369 -> 219 [style=dashed label="IdentifierPath"] - 370 [label="State 370\n\l193 Parameters: Parameters \",\" TypedAttributedVariable •\l"] - 370 -> "370R193" [style=solid] - "370R193" [label="R193", fillcolor=3, shape=diamond, style=filled] - 371 [label="State 371\n\l 22 DerivedDefinition: \"derived\" Identifier \"->\" Type \"=\" Term •\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 371 -> 134 [style=solid label="\"and\""] - 371 -> 135 [style=solid label="\"or\""] - 371 -> 136 [style=solid label="\"xor\""] - 371 -> 137 [style=solid label="\"implies\""] - 371 -> 138 [style=solid label="\"+\""] - 371 -> 139 [style=solid label="\"-\""] - 371 -> 140 [style=solid label="\"=\""] - 371 -> 141 [style=solid label="\"<\""] - 371 -> 142 [style=solid label="\">\""] - 371 -> 143 [style=solid label="\"*\""] - 371 -> 144 [style=solid label="\"/\""] - 371 -> 145 [style=solid label="\"%\""] - 371 -> 146 [style=solid label="\"^\""] - 371 -> 147 [style=solid label="\"=>\""] - 371 -> 148 [style=solid label="\"!=\""] - 371 -> 149 [style=solid label="\"<=\""] - 371 -> 150 [style=solid label="\">=\""] - 371 -> "371R22" [style=solid] - "371R22" [label="R22", fillcolor=3, shape=diamond, style=filled] - 372 [label="State 372\n\l 21 EnumerationDefinition: \"enumeration\" Identifier \"=\" \"{\" Enumerators \"}\" •\l"] - 372 -> "372R21" [style=solid] - "372R21" [label="R21", fillcolor=3, shape=diamond, style=filled] - 373 [label="State 373\n\l 35 Enumerators: Enumerators \",\" • EnumeratorDefinition\l"] - 373 -> 318 [style=dotted] - 373 -> 8 [style=solid label="\"in\""] - 373 -> 2 [style=solid label="\"[\""] - 373 -> 9 [style=solid label="\"identifier\""] - 373 -> 417 [style=dashed label="EnumeratorDefinition"] - 373 -> 321 [style=dashed label="Identifier"] - 373 -> 322 [style=dashed label="Attributes"] - 373 -> 6 [style=dashed label="Attribute"] - 374 [label="State 374\n\l 33 EnumeratorDefinition: Attributes Identifier •\l"] - 374 -> "374R33" [style=solid] - "374R33" [label="R33", fillcolor=3, shape=diamond, style=filled] - 375 [label="State 375\n\l 82 SequenceRule: \"seq\" error \"endseq\" •\l"] - 375 -> "375R82" [style=solid] - "375R82" [label="R82", fillcolor=3, shape=diamond, style=filled] - 376 [label="State 376\n\l 80 SequenceRule: \"seq\" Rules \"endseq\" •\l"] - 376 -> "376R80" [style=solid] - "376R80" [label="R80", fillcolor=3, shape=diamond, style=filled] - 377 [label="State 377\n\l 44 Rules: Rules Rule •\l"] - 377 -> "377R44" [style=solid] - "377R44" [label="R44", fillcolor=3, shape=diamond, style=filled] - 378 [label="State 378\n\l 78 BlockRule: \"par\" error \"endpar\" •\l"] - 378 -> "378R78" [style=solid] - "378R78" [label="R78", fillcolor=3, shape=diamond, style=filled] - 379 [label="State 379\n\l 76 BlockRule: \"par\" Rules \"endpar\" •\l"] - 379 -> "379R76" [style=solid] - "379R76" [label="R76", fillcolor=3, shape=diamond, style=filled] - 380 [label="State 380\n\l 69 LetRule: \"let\" VariableBindings \"in\" • Rule\l"] - 380 -> 242 [style=solid label="\"seq\""] - 380 -> 243 [style=solid label="\"par\""] - 380 -> 244 [style=solid label="\"skip\""] - 380 -> 245 [style=solid label="\"let\""] - 380 -> 246 [style=solid label="\"local\""] - 380 -> 8 [style=solid label="\"in\""] - 380 -> 247 [style=solid label="\"forall\""] - 380 -> 248 [style=solid label="\"choose\""] - 380 -> 249 [style=solid label="\"iterate\""] - 380 -> 250 [style=solid label="\"if\""] - 380 -> 251 [style=solid label="\"case\""] - 380 -> 252 [style=solid label="\"while\""] - 380 -> 46 [style=solid label="\"undef\""] - 380 -> 47 [style=solid label="\"false\""] - 380 -> 48 [style=solid label="\"true\""] - 380 -> 50 [style=solid label="\"+\""] - 380 -> 51 [style=solid label="\"-\""] - 380 -> 52 [style=solid label="\"(\""] - 380 -> 53 [style=solid label="\"[\""] - 380 -> 253 [style=solid label="\"{\""] - 380 -> 55 [style=solid label="\"@\""] - 380 -> 254 [style=solid label="\"{|\""] - 380 -> 56 [style=solid label="\"binary\""] - 380 -> 57 [style=solid label="\"hexadecimal\""] - 380 -> 58 [style=solid label="\"integer\""] - 380 -> 59 [style=solid label="\"rational\""] - 380 -> 60 [style=solid label="\"decimal\""] - 380 -> 61 [style=solid label="\"string\""] - 380 -> 9 [style=solid label="\"identifier\""] - 380 -> 418 [style=dashed label="Rule"] - 380 -> 256 [style=dashed label="SkipRule"] - 380 -> 257 [style=dashed label="ConditionalRule"] - 380 -> 258 [style=dashed label="CaseRule"] - 380 -> 259 [style=dashed label="LetRule"] - 380 -> 260 [style=dashed label="LocalRule"] - 380 -> 261 [style=dashed label="ForallRule"] - 380 -> 262 [style=dashed label="ChooseRule"] - 380 -> 263 [style=dashed label="IterateRule"] - 380 -> 264 [style=dashed label="BlockRule"] - 380 -> 265 [style=dashed label="SequenceRule"] - 380 -> 266 [style=dashed label="UpdateRule"] - 380 -> 267 [style=dashed label="CallRule"] - 380 -> 268 [style=dashed label="WhileRule"] - 380 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 380 -> 270 [style=dashed label="CallExpression"] - 380 -> 271 [style=dashed label="DirectCallExpression"] - 380 -> 67 [style=dashed label="MethodCallExpression"] - 380 -> 68 [style=dashed label="LiteralCallExpression"] - 380 -> 69 [style=dashed label="IndirectCallExpression"] - 380 -> 77 [style=dashed label="Literal"] - 380 -> 78 [style=dashed label="UndefinedLiteral"] - 380 -> 79 [style=dashed label="BooleanLiteral"] - 380 -> 80 [style=dashed label="IntegerLiteral"] - 380 -> 81 [style=dashed label="RationalLiteral"] - 380 -> 82 [style=dashed label="DecimalLiteral"] - 380 -> 83 [style=dashed label="BinaryLiteral"] - 380 -> 84 [style=dashed label="StringLiteral"] - 380 -> 85 [style=dashed label="ReferenceLiteral"] - 380 -> 86 [style=dashed label="ListLiteral"] - 380 -> 87 [style=dashed label="RangeLiteral"] - 380 -> 88 [style=dashed label="TupleLiteral"] - 380 -> 89 [style=dashed label="RecordLiteral"] - 380 -> 90 [style=dashed label="Identifier"] - 380 -> 91 [style=dashed label="IdentifierPath"] - 381 [label="State 381\n\l227 LocalFunctionDefinition: Identifier \":\" • MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] - 381 -> 8 [style=solid label="\"in\""] - 381 -> 211 [style=solid label="\"(\""] - 381 -> 9 [style=solid label="\"identifier\""] - 381 -> 280 [style=dashed label="Type"] - 381 -> 213 [style=dashed label="BasicType"] - 381 -> 214 [style=dashed label="TupleType"] - 381 -> 215 [style=dashed label="RecordType"] - 381 -> 216 [style=dashed label="TemplateType"] - 381 -> 217 [style=dashed label="RelationType"] - 381 -> 218 [style=dashed label="FixedSizedType"] - 381 -> 281 [style=dashed label="FunctionParameters"] - 381 -> 419 [style=dashed label="MaybeFunctionParameters"] - 381 -> 90 [style=dashed label="Identifier"] - 381 -> 219 [style=dashed label="IdentifierPath"] - 381 -> "381R192" [style=solid] - "381R192" [label="R192", fillcolor=3, shape=diamond, style=filled] - 382 [label="State 382\n\l 70 LocalRule: \"local\" LocalFunctionDefinitions \"in\" • Rule\l"] - 382 -> 242 [style=solid label="\"seq\""] - 382 -> 243 [style=solid label="\"par\""] - 382 -> 244 [style=solid label="\"skip\""] - 382 -> 245 [style=solid label="\"let\""] - 382 -> 246 [style=solid label="\"local\""] - 382 -> 8 [style=solid label="\"in\""] - 382 -> 247 [style=solid label="\"forall\""] - 382 -> 248 [style=solid label="\"choose\""] - 382 -> 249 [style=solid label="\"iterate\""] - 382 -> 250 [style=solid label="\"if\""] - 382 -> 251 [style=solid label="\"case\""] - 382 -> 252 [style=solid label="\"while\""] - 382 -> 46 [style=solid label="\"undef\""] - 382 -> 47 [style=solid label="\"false\""] - 382 -> 48 [style=solid label="\"true\""] - 382 -> 50 [style=solid label="\"+\""] - 382 -> 51 [style=solid label="\"-\""] - 382 -> 52 [style=solid label="\"(\""] - 382 -> 53 [style=solid label="\"[\""] - 382 -> 253 [style=solid label="\"{\""] - 382 -> 55 [style=solid label="\"@\""] - 382 -> 254 [style=solid label="\"{|\""] - 382 -> 56 [style=solid label="\"binary\""] - 382 -> 57 [style=solid label="\"hexadecimal\""] - 382 -> 58 [style=solid label="\"integer\""] - 382 -> 59 [style=solid label="\"rational\""] - 382 -> 60 [style=solid label="\"decimal\""] - 382 -> 61 [style=solid label="\"string\""] - 382 -> 9 [style=solid label="\"identifier\""] - 382 -> 420 [style=dashed label="Rule"] - 382 -> 256 [style=dashed label="SkipRule"] - 382 -> 257 [style=dashed label="ConditionalRule"] - 382 -> 258 [style=dashed label="CaseRule"] - 382 -> 259 [style=dashed label="LetRule"] - 382 -> 260 [style=dashed label="LocalRule"] - 382 -> 261 [style=dashed label="ForallRule"] - 382 -> 262 [style=dashed label="ChooseRule"] - 382 -> 263 [style=dashed label="IterateRule"] - 382 -> 264 [style=dashed label="BlockRule"] - 382 -> 265 [style=dashed label="SequenceRule"] - 382 -> 266 [style=dashed label="UpdateRule"] - 382 -> 267 [style=dashed label="CallRule"] - 382 -> 268 [style=dashed label="WhileRule"] - 382 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 382 -> 270 [style=dashed label="CallExpression"] - 382 -> 271 [style=dashed label="DirectCallExpression"] - 382 -> 67 [style=dashed label="MethodCallExpression"] - 382 -> 68 [style=dashed label="LiteralCallExpression"] - 382 -> 69 [style=dashed label="IndirectCallExpression"] - 382 -> 77 [style=dashed label="Literal"] - 382 -> 78 [style=dashed label="UndefinedLiteral"] - 382 -> 79 [style=dashed label="BooleanLiteral"] - 382 -> 80 [style=dashed label="IntegerLiteral"] - 382 -> 81 [style=dashed label="RationalLiteral"] - 382 -> 82 [style=dashed label="DecimalLiteral"] - 382 -> 83 [style=dashed label="BinaryLiteral"] - 382 -> 84 [style=dashed label="StringLiteral"] - 382 -> 85 [style=dashed label="ReferenceLiteral"] - 382 -> 86 [style=dashed label="ListLiteral"] - 382 -> 87 [style=dashed label="RangeLiteral"] - 382 -> 88 [style=dashed label="TupleLiteral"] - 382 -> 89 [style=dashed label="RecordLiteral"] - 382 -> 90 [style=dashed label="Identifier"] - 382 -> 91 [style=dashed label="IdentifierPath"] - 383 [label="State 383\n\l222 LocalFunctionDefinitions: LocalFunctionDefinitions \",\" • AttributedLocalFunctionDefinition\l"] - 383 -> 329 [style=dotted] + 369 -> 431 [style=dashed label="Identifier"] + 370 [label="State 370\n\l 27 RuleDefinition: \"rule\" • Identifier \"=\" Rule\l 28 | \"rule\" • Identifier \"->\" Type \"=\" Rule\l 29 | \"rule\" • Identifier \"(\" Parameters \")\" \"=\" Rule\l 30 | \"rule\" • Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Rule\l 31 | \"rule\" • Identifier \"(\" error \")\" \"=\" Rule\l 32 | \"rule\" • Identifier \"(\" error \")\" \"->\" Type \"=\" Rule\l 59 DeclarationDefinition: \"rule\" • Identifier \":\" MaybeFunctionParameters \"->\" Type\l"] + 370 -> 8 [style=solid label="\"in\""] + 370 -> 9 [style=solid label="\"identifier\""] + 370 -> 432 [style=dashed label="Identifier"] + 371 [label="State 371\n\l 48 FeatureDeclarationOrDefinition: DerivedDefinition •\l"] + 371 -> "371R48" [style=solid] + "371R48" [label="R48", fillcolor=3, shape=diamond, style=filled] + 372 [label="State 372\n\l 49 FeatureDeclarationOrDefinition: RuleDefinition •\l"] + 372 -> "372R49" [style=solid] + "372R49" [label="R49", fillcolor=3, shape=diamond, style=filled] + 373 [label="State 373\n\l 51 FeatureDeclarationsAndDefinitions: FeatureDeclarationOrDefinition •\l"] + 373 -> "373R51" [style=solid] + "373R51" [label="R51", fillcolor=3, shape=diamond, style=filled] + 374 [label="State 374\n\l 46 FeatureDefinition: \"feature\" Identifier \"=\" \"{\" FeatureDeclarationsAndDefinitions • \"}\"\l 50 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions • FeatureDeclarationOrDefinition\l"] + 374 -> 369 [style=solid label="\"derived\""] + 374 -> 370 [style=solid label="\"rule\""] + 374 -> 433 [style=solid label="\"}\""] + 374 -> 371 [style=dashed label="DerivedDefinition"] + 374 -> 372 [style=dashed label="RuleDefinition"] + 374 -> 434 [style=dashed label="FeatureDeclarationOrDefinition"] + 374 -> 375 [style=dashed label="DeclarationDefinition"] + 375 [label="State 375\n\l 47 FeatureDeclarationOrDefinition: DeclarationDefinition •\l"] + 375 -> "375R47" [style=solid] + "375R47" [label="R47", fillcolor=3, shape=diamond, style=filled] + 376 [label="State 376\n\l191 Types: Types \",\" Type •\l200 TupleType: \"(\" Types \",\" Type • \")\"\l"] + 376 -> 435 [style=solid label="\")\""] + 376 -> "376R191" [style=solid] + "376R191" [label="R191", fillcolor=3, shape=diamond, style=filled] + 377 [label="State 377\n\l201 RecordType: \"(\" TypedVariables \",\" TypedVariable • \")\"\l228 TypedVariables: TypedVariables \",\" TypedVariable •\l"] + 377 -> 436 [style=solid label="\")\""] + 377 -> "377R228" [style=solid] + "377R228" [label="R228", fillcolor=3, shape=diamond, style=filled] + 378 [label="State 378\n\l 54 ImplementationDefinitionDefinition: DerivedDefinition •\l"] + 378 -> "378R54" [style=solid] + "378R54" [label="R54", fillcolor=3, shape=diamond, style=filled] + 379 [label="State 379\n\l 55 ImplementationDefinitionDefinition: RuleDefinition •\l"] + 379 -> "379R55" [style=solid] + "379R55" [label="R55", fillcolor=3, shape=diamond, style=filled] + 380 [label="State 380\n\l 57 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition •\l"] + 380 -> "380R57" [style=solid] + "380R57" [label="R57", fillcolor=3, shape=diamond, style=filled] + 381 [label="State 381\n\l 53 ImplementationDefinition: \"implements\" Type \"=\" \"{\" ImplementationDefinitionDefinitions • \"}\"\l 56 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions • ImplementationDefinitionDefinition\l"] + 381 -> 16 [style=solid label="\"derived\""] + 381 -> 18 [style=solid label="\"rule\""] + 381 -> 437 [style=solid label="\"}\""] + 381 -> 378 [style=dashed label="DerivedDefinition"] + 381 -> 379 [style=dashed label="RuleDefinition"] + 381 -> 438 [style=dashed label="ImplementationDefinitionDefinition"] + 382 [label="State 382\n\l 52 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" • \"{\" ImplementationDefinitionDefinitions \"}\"\l"] + 382 -> 439 [style=solid label="\"{\""] + 383 [label="State 383\n\l191 Types: Types \",\" • Type\l"] 383 -> 8 [style=solid label="\"in\""] - 383 -> 2 [style=solid label="\"[\""] + 383 -> 109 [style=solid label="\"(\""] 383 -> 9 [style=solid label="\"identifier\""] - 383 -> 330 [style=dashed label="Identifier"] - 383 -> 421 [style=dashed label="AttributedLocalFunctionDefinition"] - 383 -> 333 [style=dashed label="LocalFunctionDefinition"] - 383 -> 334 [style=dashed label="Attributes"] - 383 -> 6 [style=dashed label="Attribute"] - 384 [label="State 384\n\l224 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition •\l"] - 384 -> "384R224" [style=solid] - "384R224" [label="R224", fillcolor=3, shape=diamond, style=filled] - 385 [label="State 385\n\l 71 ForallRule: \"forall\" AttributedVariables \"in\" • Term \"do\" Rule\l 72 | \"forall\" AttributedVariables \"in\" • Term \"with\" Term \"do\" Rule\l"] - 385 -> 41 [style=solid label="\"let\""] + 383 -> 440 [style=dashed label="Type"] + 383 -> 111 [style=dashed label="BasicType"] + 383 -> 112 [style=dashed label="TupleType"] + 383 -> 113 [style=dashed label="RecordType"] + 383 -> 114 [style=dashed label="TemplateType"] + 383 -> 115 [style=dashed label="RelationType"] + 383 -> 116 [style=dashed label="FixedSizedType"] + 383 -> 94 [style=dashed label="Identifier"] + 383 -> 190 [style=dashed label="IdentifierPath"] + 384 [label="State 384\n\l202 TemplateType: IdentifierPath \"<\" Types \">\" •\l"] + 384 -> "384R202" [style=solid] + "384R202" [label="R202", fillcolor=3, shape=diamond, style=filled] + 385 [label="State 385\n\l205 FunctionParameters: FunctionParameters \"*\" • Type\l"] 385 -> 8 [style=solid label="\"in\""] - 385 -> 42 [style=solid label="\"forall\""] - 385 -> 43 [style=solid label="\"choose\""] - 385 -> 44 [style=solid label="\"if\""] - 385 -> 45 [style=solid label="\"exists\""] - 385 -> 46 [style=solid label="\"undef\""] - 385 -> 47 [style=solid label="\"false\""] - 385 -> 48 [style=solid label="\"true\""] - 385 -> 49 [style=solid label="\"not\""] - 385 -> 50 [style=solid label="\"+\""] - 385 -> 51 [style=solid label="\"-\""] - 385 -> 52 [style=solid label="\"(\""] - 385 -> 53 [style=solid label="\"[\""] - 385 -> 54 [style=solid label="\"|\""] - 385 -> 55 [style=solid label="\"@\""] - 385 -> 56 [style=solid label="\"binary\""] - 385 -> 57 [style=solid label="\"hexadecimal\""] - 385 -> 58 [style=solid label="\"integer\""] - 385 -> 59 [style=solid label="\"rational\""] - 385 -> 60 [style=solid label="\"decimal\""] - 385 -> 61 [style=solid label="\"string\""] + 385 -> 109 [style=solid label="\"(\""] 385 -> 9 [style=solid label="\"identifier\""] - 385 -> 422 [style=dashed label="Term"] - 385 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 385 -> 64 [style=dashed label="OperatorExpression"] - 385 -> 65 [style=dashed label="CallExpression"] - 385 -> 66 [style=dashed label="DirectCallExpression"] - 385 -> 67 [style=dashed label="MethodCallExpression"] - 385 -> 68 [style=dashed label="LiteralCallExpression"] - 385 -> 69 [style=dashed label="IndirectCallExpression"] - 385 -> 70 [style=dashed label="TypeCastingExpression"] - 385 -> 71 [style=dashed label="LetExpression"] - 385 -> 72 [style=dashed label="ConditionalExpression"] - 385 -> 73 [style=dashed label="ChooseExpression"] - 385 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 385 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 385 -> 76 [style=dashed label="CardinalityExpression"] - 385 -> 77 [style=dashed label="Literal"] - 385 -> 78 [style=dashed label="UndefinedLiteral"] - 385 -> 79 [style=dashed label="BooleanLiteral"] - 385 -> 80 [style=dashed label="IntegerLiteral"] - 385 -> 81 [style=dashed label="RationalLiteral"] - 385 -> 82 [style=dashed label="DecimalLiteral"] - 385 -> 83 [style=dashed label="BinaryLiteral"] - 385 -> 84 [style=dashed label="StringLiteral"] - 385 -> 85 [style=dashed label="ReferenceLiteral"] - 385 -> 86 [style=dashed label="ListLiteral"] - 385 -> 87 [style=dashed label="RangeLiteral"] - 385 -> 88 [style=dashed label="TupleLiteral"] - 385 -> 89 [style=dashed label="RecordLiteral"] - 385 -> 90 [style=dashed label="Identifier"] - 385 -> 91 [style=dashed label="IdentifierPath"] - 386 [label="State 386\n\l 73 ChooseRule: \"choose\" AttributedVariables \"in\" • Term \"do\" Rule\l"] - 386 -> 41 [style=solid label="\"let\""] + 385 -> 441 [style=dashed label="Type"] + 385 -> 111 [style=dashed label="BasicType"] + 385 -> 112 [style=dashed label="TupleType"] + 385 -> 113 [style=dashed label="RecordType"] + 385 -> 114 [style=dashed label="TemplateType"] + 385 -> 115 [style=dashed label="RelationType"] + 385 -> 116 [style=dashed label="FixedSizedType"] + 385 -> 94 [style=dashed label="Identifier"] + 385 -> 190 [style=dashed label="IdentifierPath"] + 386 [label="State 386\n\l203 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" • Type \">\"\l"] 386 -> 8 [style=solid label="\"in\""] - 386 -> 42 [style=solid label="\"forall\""] - 386 -> 43 [style=solid label="\"choose\""] - 386 -> 44 [style=solid label="\"if\""] - 386 -> 45 [style=solid label="\"exists\""] - 386 -> 46 [style=solid label="\"undef\""] - 386 -> 47 [style=solid label="\"false\""] - 386 -> 48 [style=solid label="\"true\""] - 386 -> 49 [style=solid label="\"not\""] - 386 -> 50 [style=solid label="\"+\""] - 386 -> 51 [style=solid label="\"-\""] - 386 -> 52 [style=solid label="\"(\""] - 386 -> 53 [style=solid label="\"[\""] - 386 -> 54 [style=solid label="\"|\""] - 386 -> 55 [style=solid label="\"@\""] - 386 -> 56 [style=solid label="\"binary\""] - 386 -> 57 [style=solid label="\"hexadecimal\""] - 386 -> 58 [style=solid label="\"integer\""] - 386 -> 59 [style=solid label="\"rational\""] - 386 -> 60 [style=solid label="\"decimal\""] - 386 -> 61 [style=solid label="\"string\""] + 386 -> 109 [style=solid label="\"(\""] 386 -> 9 [style=solid label="\"identifier\""] - 386 -> 423 [style=dashed label="Term"] - 386 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 386 -> 64 [style=dashed label="OperatorExpression"] - 386 -> 65 [style=dashed label="CallExpression"] - 386 -> 66 [style=dashed label="DirectCallExpression"] - 386 -> 67 [style=dashed label="MethodCallExpression"] - 386 -> 68 [style=dashed label="LiteralCallExpression"] - 386 -> 69 [style=dashed label="IndirectCallExpression"] - 386 -> 70 [style=dashed label="TypeCastingExpression"] - 386 -> 71 [style=dashed label="LetExpression"] - 386 -> 72 [style=dashed label="ConditionalExpression"] - 386 -> 73 [style=dashed label="ChooseExpression"] - 386 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 386 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 386 -> 76 [style=dashed label="CardinalityExpression"] - 386 -> 77 [style=dashed label="Literal"] - 386 -> 78 [style=dashed label="UndefinedLiteral"] - 386 -> 79 [style=dashed label="BooleanLiteral"] - 386 -> 80 [style=dashed label="IntegerLiteral"] - 386 -> 81 [style=dashed label="RationalLiteral"] - 386 -> 82 [style=dashed label="DecimalLiteral"] - 386 -> 83 [style=dashed label="BinaryLiteral"] - 386 -> 84 [style=dashed label="StringLiteral"] - 386 -> 85 [style=dashed label="ReferenceLiteral"] - 386 -> 86 [style=dashed label="ListLiteral"] - 386 -> 87 [style=dashed label="RangeLiteral"] - 386 -> 88 [style=dashed label="TupleLiteral"] - 386 -> 89 [style=dashed label="RecordLiteral"] - 386 -> 90 [style=dashed label="Identifier"] - 386 -> 91 [style=dashed label="IdentifierPath"] - 387 [label="State 387\n\l 60 ConditionalRule: \"if\" Term \"then\" • Rule\l 61 | \"if\" Term \"then\" • Rule \"else\" Rule\l"] - 387 -> 242 [style=solid label="\"seq\""] - 387 -> 243 [style=solid label="\"par\""] - 387 -> 244 [style=solid label="\"skip\""] - 387 -> 245 [style=solid label="\"let\""] - 387 -> 246 [style=solid label="\"local\""] + 386 -> 442 [style=dashed label="Type"] + 386 -> 111 [style=dashed label="BasicType"] + 386 -> 112 [style=dashed label="TupleType"] + 386 -> 113 [style=dashed label="RecordType"] + 386 -> 114 [style=dashed label="TemplateType"] + 386 -> 115 [style=dashed label="RelationType"] + 386 -> 116 [style=dashed label="FixedSizedType"] + 386 -> 94 [style=dashed label="Identifier"] + 386 -> 190 [style=dashed label="IdentifierPath"] + 387 [label="State 387\n\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" • Type MaybeDefined MaybeInitially\l"] 387 -> 8 [style=solid label="\"in\""] - 387 -> 247 [style=solid label="\"forall\""] - 387 -> 248 [style=solid label="\"choose\""] - 387 -> 249 [style=solid label="\"iterate\""] - 387 -> 250 [style=solid label="\"if\""] - 387 -> 251 [style=solid label="\"case\""] - 387 -> 252 [style=solid label="\"while\""] - 387 -> 46 [style=solid label="\"undef\""] - 387 -> 47 [style=solid label="\"false\""] - 387 -> 48 [style=solid label="\"true\""] - 387 -> 50 [style=solid label="\"+\""] - 387 -> 51 [style=solid label="\"-\""] - 387 -> 52 [style=solid label="\"(\""] - 387 -> 53 [style=solid label="\"[\""] - 387 -> 253 [style=solid label="\"{\""] - 387 -> 55 [style=solid label="\"@\""] - 387 -> 254 [style=solid label="\"{|\""] - 387 -> 56 [style=solid label="\"binary\""] - 387 -> 57 [style=solid label="\"hexadecimal\""] - 387 -> 58 [style=solid label="\"integer\""] - 387 -> 59 [style=solid label="\"rational\""] - 387 -> 60 [style=solid label="\"decimal\""] - 387 -> 61 [style=solid label="\"string\""] + 387 -> 109 [style=solid label="\"(\""] 387 -> 9 [style=solid label="\"identifier\""] - 387 -> 424 [style=dashed label="Rule"] - 387 -> 256 [style=dashed label="SkipRule"] - 387 -> 257 [style=dashed label="ConditionalRule"] - 387 -> 258 [style=dashed label="CaseRule"] - 387 -> 259 [style=dashed label="LetRule"] - 387 -> 260 [style=dashed label="LocalRule"] - 387 -> 261 [style=dashed label="ForallRule"] - 387 -> 262 [style=dashed label="ChooseRule"] - 387 -> 263 [style=dashed label="IterateRule"] - 387 -> 264 [style=dashed label="BlockRule"] - 387 -> 265 [style=dashed label="SequenceRule"] - 387 -> 266 [style=dashed label="UpdateRule"] - 387 -> 267 [style=dashed label="CallRule"] - 387 -> 268 [style=dashed label="WhileRule"] - 387 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 387 -> 270 [style=dashed label="CallExpression"] - 387 -> 271 [style=dashed label="DirectCallExpression"] - 387 -> 67 [style=dashed label="MethodCallExpression"] - 387 -> 68 [style=dashed label="LiteralCallExpression"] - 387 -> 69 [style=dashed label="IndirectCallExpression"] - 387 -> 77 [style=dashed label="Literal"] - 387 -> 78 [style=dashed label="UndefinedLiteral"] - 387 -> 79 [style=dashed label="BooleanLiteral"] - 387 -> 80 [style=dashed label="IntegerLiteral"] - 387 -> 81 [style=dashed label="RationalLiteral"] - 387 -> 82 [style=dashed label="DecimalLiteral"] - 387 -> 83 [style=dashed label="BinaryLiteral"] - 387 -> 84 [style=dashed label="StringLiteral"] - 387 -> 85 [style=dashed label="ReferenceLiteral"] - 387 -> 86 [style=dashed label="ListLiteral"] - 387 -> 87 [style=dashed label="RangeLiteral"] - 387 -> 88 [style=dashed label="TupleLiteral"] - 387 -> 89 [style=dashed label="RecordLiteral"] - 387 -> 90 [style=dashed label="Identifier"] - 387 -> 91 [style=dashed label="IdentifierPath"] - 388 [label="State 388\n\l 62 CaseRule: \"case\" Term \"of\" • \"{\" CaseLabels \"}\"\l 63 | \"case\" Term \"of\" • \"{\" error \"}\"\l"] - 388 -> 425 [style=solid label="\"{\""] - 389 [label="State 389\n\l 85 WhileRule: \"while\" Term \"do\" • Rule\l"] - 389 -> 242 [style=solid label="\"seq\""] - 389 -> 243 [style=solid label="\"par\""] - 389 -> 244 [style=solid label="\"skip\""] - 389 -> 245 [style=solid label="\"let\""] - 389 -> 246 [style=solid label="\"local\""] + 387 -> 443 [style=dashed label="Type"] + 387 -> 111 [style=dashed label="BasicType"] + 387 -> 112 [style=dashed label="TupleType"] + 387 -> 113 [style=dashed label="RecordType"] + 387 -> 114 [style=dashed label="TemplateType"] + 387 -> 115 [style=dashed label="RelationType"] + 387 -> 116 [style=dashed label="FixedSizedType"] + 387 -> 94 [style=dashed label="Identifier"] + 387 -> 190 [style=dashed label="IdentifierPath"] + 388 [label="State 388\n\l157 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term \"holds\" • Term\l"] + 388 -> 45 [style=solid label="\"let\""] + 388 -> 8 [style=solid label="\"in\""] + 388 -> 46 [style=solid label="\"forall\""] + 388 -> 47 [style=solid label="\"choose\""] + 388 -> 48 [style=solid label="\"if\""] + 388 -> 49 [style=solid label="\"exists\""] + 388 -> 50 [style=solid label="\"undef\""] + 388 -> 51 [style=solid label="\"false\""] + 388 -> 52 [style=solid label="\"true\""] + 388 -> 53 [style=solid label="\"not\""] + 388 -> 54 [style=solid label="\"+\""] + 388 -> 55 [style=solid label="\"-\""] + 388 -> 56 [style=solid label="\"(\""] + 388 -> 57 [style=solid label="\"[\""] + 388 -> 58 [style=solid label="\"|\""] + 388 -> 59 [style=solid label="\"@\""] + 388 -> 60 [style=solid label="\"binary\""] + 388 -> 61 [style=solid label="\"hexadecimal\""] + 388 -> 62 [style=solid label="\"integer\""] + 388 -> 63 [style=solid label="\"rational\""] + 388 -> 64 [style=solid label="\"decimal\""] + 388 -> 65 [style=solid label="\"string\""] + 388 -> 9 [style=solid label="\"identifier\""] + 388 -> 444 [style=dashed label="Term"] + 388 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 388 -> 68 [style=dashed label="OperatorExpression"] + 388 -> 69 [style=dashed label="CallExpression"] + 388 -> 70 [style=dashed label="DirectCallExpression"] + 388 -> 71 [style=dashed label="MethodCallExpression"] + 388 -> 72 [style=dashed label="LiteralCallExpression"] + 388 -> 73 [style=dashed label="IndirectCallExpression"] + 388 -> 74 [style=dashed label="TypeCastingExpression"] + 388 -> 75 [style=dashed label="LetExpression"] + 388 -> 76 [style=dashed label="ConditionalExpression"] + 388 -> 77 [style=dashed label="ChooseExpression"] + 388 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 388 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 388 -> 80 [style=dashed label="CardinalityExpression"] + 388 -> 81 [style=dashed label="Literal"] + 388 -> 82 [style=dashed label="UndefinedLiteral"] + 388 -> 83 [style=dashed label="BooleanLiteral"] + 388 -> 84 [style=dashed label="IntegerLiteral"] + 388 -> 85 [style=dashed label="RationalLiteral"] + 388 -> 86 [style=dashed label="DecimalLiteral"] + 388 -> 87 [style=dashed label="BinaryLiteral"] + 388 -> 88 [style=dashed label="StringLiteral"] + 388 -> 89 [style=dashed label="ReferenceLiteral"] + 388 -> 90 [style=dashed label="ListLiteral"] + 388 -> 91 [style=dashed label="RangeLiteral"] + 388 -> 92 [style=dashed label="TupleLiteral"] + 388 -> 93 [style=dashed label="RecordLiteral"] + 388 -> 94 [style=dashed label="Identifier"] + 388 -> 95 [style=dashed label="IdentifierPath"] + 389 [label="State 389\n\l156 ChooseExpression: \"choose\" AttributedVariables \"in\" Term \"do\" • Term\l"] + 389 -> 45 [style=solid label="\"let\""] 389 -> 8 [style=solid label="\"in\""] - 389 -> 247 [style=solid label="\"forall\""] - 389 -> 248 [style=solid label="\"choose\""] - 389 -> 249 [style=solid label="\"iterate\""] - 389 -> 250 [style=solid label="\"if\""] - 389 -> 251 [style=solid label="\"case\""] - 389 -> 252 [style=solid label="\"while\""] - 389 -> 46 [style=solid label="\"undef\""] - 389 -> 47 [style=solid label="\"false\""] - 389 -> 48 [style=solid label="\"true\""] - 389 -> 50 [style=solid label="\"+\""] - 389 -> 51 [style=solid label="\"-\""] - 389 -> 52 [style=solid label="\"(\""] - 389 -> 53 [style=solid label="\"[\""] - 389 -> 253 [style=solid label="\"{\""] - 389 -> 55 [style=solid label="\"@\""] - 389 -> 254 [style=solid label="\"{|\""] - 389 -> 56 [style=solid label="\"binary\""] - 389 -> 57 [style=solid label="\"hexadecimal\""] - 389 -> 58 [style=solid label="\"integer\""] - 389 -> 59 [style=solid label="\"rational\""] - 389 -> 60 [style=solid label="\"decimal\""] - 389 -> 61 [style=solid label="\"string\""] + 389 -> 46 [style=solid label="\"forall\""] + 389 -> 47 [style=solid label="\"choose\""] + 389 -> 48 [style=solid label="\"if\""] + 389 -> 49 [style=solid label="\"exists\""] + 389 -> 50 [style=solid label="\"undef\""] + 389 -> 51 [style=solid label="\"false\""] + 389 -> 52 [style=solid label="\"true\""] + 389 -> 53 [style=solid label="\"not\""] + 389 -> 54 [style=solid label="\"+\""] + 389 -> 55 [style=solid label="\"-\""] + 389 -> 56 [style=solid label="\"(\""] + 389 -> 57 [style=solid label="\"[\""] + 389 -> 58 [style=solid label="\"|\""] + 389 -> 59 [style=solid label="\"@\""] + 389 -> 60 [style=solid label="\"binary\""] + 389 -> 61 [style=solid label="\"hexadecimal\""] + 389 -> 62 [style=solid label="\"integer\""] + 389 -> 63 [style=solid label="\"rational\""] + 389 -> 64 [style=solid label="\"decimal\""] + 389 -> 65 [style=solid label="\"string\""] 389 -> 9 [style=solid label="\"identifier\""] - 389 -> 426 [style=dashed label="Rule"] - 389 -> 256 [style=dashed label="SkipRule"] - 389 -> 257 [style=dashed label="ConditionalRule"] - 389 -> 258 [style=dashed label="CaseRule"] - 389 -> 259 [style=dashed label="LetRule"] - 389 -> 260 [style=dashed label="LocalRule"] - 389 -> 261 [style=dashed label="ForallRule"] - 389 -> 262 [style=dashed label="ChooseRule"] - 389 -> 263 [style=dashed label="IterateRule"] - 389 -> 264 [style=dashed label="BlockRule"] - 389 -> 265 [style=dashed label="SequenceRule"] - 389 -> 266 [style=dashed label="UpdateRule"] - 389 -> 267 [style=dashed label="CallRule"] - 389 -> 268 [style=dashed label="WhileRule"] - 389 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 389 -> 270 [style=dashed label="CallExpression"] - 389 -> 271 [style=dashed label="DirectCallExpression"] - 389 -> 67 [style=dashed label="MethodCallExpression"] - 389 -> 68 [style=dashed label="LiteralCallExpression"] - 389 -> 69 [style=dashed label="IndirectCallExpression"] - 389 -> 77 [style=dashed label="Literal"] - 389 -> 78 [style=dashed label="UndefinedLiteral"] - 389 -> 79 [style=dashed label="BooleanLiteral"] - 389 -> 80 [style=dashed label="IntegerLiteral"] - 389 -> 81 [style=dashed label="RationalLiteral"] - 389 -> 82 [style=dashed label="DecimalLiteral"] - 389 -> 83 [style=dashed label="BinaryLiteral"] - 389 -> 84 [style=dashed label="StringLiteral"] - 389 -> 85 [style=dashed label="ReferenceLiteral"] - 389 -> 86 [style=dashed label="ListLiteral"] - 389 -> 87 [style=dashed label="RangeLiteral"] - 389 -> 88 [style=dashed label="TupleLiteral"] - 389 -> 89 [style=dashed label="RecordLiteral"] - 389 -> 90 [style=dashed label="Identifier"] - 389 -> 91 [style=dashed label="IdentifierPath"] - 390 [label="State 390\n\l 77 BlockRule: \"{\" error \"}\" •\l"] - 390 -> "390R77" [style=solid] - "390R77" [label="R77", fillcolor=3, shape=diamond, style=filled] - 391 [label="State 391\n\l 75 BlockRule: \"{\" Rules \"}\" •\l"] - 391 -> "391R75" [style=solid] - "391R75" [label="R75", fillcolor=3, shape=diamond, style=filled] - 392 [label="State 392\n\l 81 SequenceRule: \"{|\" error \"|}\" •\l"] - 392 -> "392R81" [style=solid] - "392R81" [label="R81", fillcolor=3, shape=diamond, style=filled] - 393 [label="State 393\n\l 79 SequenceRule: \"{|\" Rules \"|}\" •\l"] - 393 -> "393R79" [style=solid] - "393R79" [label="R79", fillcolor=3, shape=diamond, style=filled] - 394 [label="State 394\n\l 83 UpdateRule: DirectCallExpression \":=\" Term •\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 394 -> 134 [style=solid label="\"and\""] - 394 -> 135 [style=solid label="\"or\""] - 394 -> 136 [style=solid label="\"xor\""] - 394 -> 137 [style=solid label="\"implies\""] - 394 -> 138 [style=solid label="\"+\""] - 394 -> 139 [style=solid label="\"-\""] - 394 -> 140 [style=solid label="\"=\""] - 394 -> 141 [style=solid label="\"<\""] - 394 -> 142 [style=solid label="\">\""] - 394 -> 143 [style=solid label="\"*\""] - 394 -> 144 [style=solid label="\"/\""] - 394 -> 145 [style=solid label="\"%\""] - 394 -> 146 [style=solid label="\"^\""] - 394 -> 147 [style=solid label="\"=>\""] - 394 -> 148 [style=solid label="\"!=\""] - 394 -> 149 [style=solid label="\"<=\""] - 394 -> 150 [style=solid label="\">=\""] - 394 -> "394R83" [style=solid] - "394R83" [label="R83", fillcolor=3, shape=diamond, style=filled] - 395 [label="State 395\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"=\" • Rule\l"] - 395 -> 242 [style=solid label="\"seq\""] - 395 -> 243 [style=solid label="\"par\""] - 395 -> 244 [style=solid label="\"skip\""] - 395 -> 245 [style=solid label="\"let\""] - 395 -> 246 [style=solid label="\"local\""] - 395 -> 8 [style=solid label="\"in\""] - 395 -> 247 [style=solid label="\"forall\""] - 395 -> 248 [style=solid label="\"choose\""] - 395 -> 249 [style=solid label="\"iterate\""] - 395 -> 250 [style=solid label="\"if\""] - 395 -> 251 [style=solid label="\"case\""] - 395 -> 252 [style=solid label="\"while\""] - 395 -> 46 [style=solid label="\"undef\""] - 395 -> 47 [style=solid label="\"false\""] - 395 -> 48 [style=solid label="\"true\""] - 395 -> 50 [style=solid label="\"+\""] - 395 -> 51 [style=solid label="\"-\""] - 395 -> 52 [style=solid label="\"(\""] - 395 -> 53 [style=solid label="\"[\""] - 395 -> 253 [style=solid label="\"{\""] - 395 -> 55 [style=solid label="\"@\""] - 395 -> 254 [style=solid label="\"{|\""] - 395 -> 56 [style=solid label="\"binary\""] - 395 -> 57 [style=solid label="\"hexadecimal\""] - 395 -> 58 [style=solid label="\"integer\""] - 395 -> 59 [style=solid label="\"rational\""] - 395 -> 60 [style=solid label="\"decimal\""] - 395 -> 61 [style=solid label="\"string\""] - 395 -> 9 [style=solid label="\"identifier\""] - 395 -> 427 [style=dashed label="Rule"] - 395 -> 256 [style=dashed label="SkipRule"] - 395 -> 257 [style=dashed label="ConditionalRule"] - 395 -> 258 [style=dashed label="CaseRule"] - 395 -> 259 [style=dashed label="LetRule"] - 395 -> 260 [style=dashed label="LocalRule"] - 395 -> 261 [style=dashed label="ForallRule"] - 395 -> 262 [style=dashed label="ChooseRule"] - 395 -> 263 [style=dashed label="IterateRule"] - 395 -> 264 [style=dashed label="BlockRule"] - 395 -> 265 [style=dashed label="SequenceRule"] - 395 -> 266 [style=dashed label="UpdateRule"] - 395 -> 267 [style=dashed label="CallRule"] - 395 -> 268 [style=dashed label="WhileRule"] - 395 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 395 -> 270 [style=dashed label="CallExpression"] - 395 -> 271 [style=dashed label="DirectCallExpression"] - 395 -> 67 [style=dashed label="MethodCallExpression"] - 395 -> 68 [style=dashed label="LiteralCallExpression"] - 395 -> 69 [style=dashed label="IndirectCallExpression"] - 395 -> 77 [style=dashed label="Literal"] - 395 -> 78 [style=dashed label="UndefinedLiteral"] - 395 -> 79 [style=dashed label="BooleanLiteral"] - 395 -> 80 [style=dashed label="IntegerLiteral"] - 395 -> 81 [style=dashed label="RationalLiteral"] - 395 -> 82 [style=dashed label="DecimalLiteral"] - 395 -> 83 [style=dashed label="BinaryLiteral"] - 395 -> 84 [style=dashed label="StringLiteral"] - 395 -> 85 [style=dashed label="ReferenceLiteral"] - 395 -> 86 [style=dashed label="ListLiteral"] - 395 -> 87 [style=dashed label="RangeLiteral"] - 395 -> 88 [style=dashed label="TupleLiteral"] - 395 -> 89 [style=dashed label="RecordLiteral"] - 395 -> 90 [style=dashed label="Identifier"] - 395 -> 91 [style=dashed label="IdentifierPath"] - 396 [label="State 396\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" • Type \"=\" Rule\l"] - 396 -> 8 [style=solid label="\"in\""] - 396 -> 211 [style=solid label="\"(\""] - 396 -> 9 [style=solid label="\"identifier\""] - 396 -> 428 [style=dashed label="Type"] - 396 -> 213 [style=dashed label="BasicType"] - 396 -> 214 [style=dashed label="TupleType"] - 396 -> 215 [style=dashed label="RecordType"] - 396 -> 216 [style=dashed label="TemplateType"] - 396 -> 217 [style=dashed label="RelationType"] - 396 -> 218 [style=dashed label="FixedSizedType"] - 396 -> 90 [style=dashed label="Identifier"] - 396 -> 219 [style=dashed label="IdentifierPath"] - 397 [label="State 397\n\l 27 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"=\" • Rule\l"] - 397 -> 242 [style=solid label="\"seq\""] - 397 -> 243 [style=solid label="\"par\""] - 397 -> 244 [style=solid label="\"skip\""] - 397 -> 245 [style=solid label="\"let\""] - 397 -> 246 [style=solid label="\"local\""] + 389 -> 445 [style=dashed label="Term"] + 389 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 389 -> 68 [style=dashed label="OperatorExpression"] + 389 -> 69 [style=dashed label="CallExpression"] + 389 -> 70 [style=dashed label="DirectCallExpression"] + 389 -> 71 [style=dashed label="MethodCallExpression"] + 389 -> 72 [style=dashed label="LiteralCallExpression"] + 389 -> 73 [style=dashed label="IndirectCallExpression"] + 389 -> 74 [style=dashed label="TypeCastingExpression"] + 389 -> 75 [style=dashed label="LetExpression"] + 389 -> 76 [style=dashed label="ConditionalExpression"] + 389 -> 77 [style=dashed label="ChooseExpression"] + 389 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 389 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 389 -> 80 [style=dashed label="CardinalityExpression"] + 389 -> 81 [style=dashed label="Literal"] + 389 -> 82 [style=dashed label="UndefinedLiteral"] + 389 -> 83 [style=dashed label="BooleanLiteral"] + 389 -> 84 [style=dashed label="IntegerLiteral"] + 389 -> 85 [style=dashed label="RationalLiteral"] + 389 -> 86 [style=dashed label="DecimalLiteral"] + 389 -> 87 [style=dashed label="BinaryLiteral"] + 389 -> 88 [style=dashed label="StringLiteral"] + 389 -> 89 [style=dashed label="ReferenceLiteral"] + 389 -> 90 [style=dashed label="ListLiteral"] + 389 -> 91 [style=dashed label="RangeLiteral"] + 389 -> 92 [style=dashed label="TupleLiteral"] + 389 -> 93 [style=dashed label="RecordLiteral"] + 389 -> 94 [style=dashed label="Identifier"] + 389 -> 95 [style=dashed label="IdentifierPath"] + 390 [label="State 390\n\l155 ConditionalExpression: \"if\" Term \"then\" Term \"else\" • Term\l"] + 390 -> 45 [style=solid label="\"let\""] + 390 -> 8 [style=solid label="\"in\""] + 390 -> 46 [style=solid label="\"forall\""] + 390 -> 47 [style=solid label="\"choose\""] + 390 -> 48 [style=solid label="\"if\""] + 390 -> 49 [style=solid label="\"exists\""] + 390 -> 50 [style=solid label="\"undef\""] + 390 -> 51 [style=solid label="\"false\""] + 390 -> 52 [style=solid label="\"true\""] + 390 -> 53 [style=solid label="\"not\""] + 390 -> 54 [style=solid label="\"+\""] + 390 -> 55 [style=solid label="\"-\""] + 390 -> 56 [style=solid label="\"(\""] + 390 -> 57 [style=solid label="\"[\""] + 390 -> 58 [style=solid label="\"|\""] + 390 -> 59 [style=solid label="\"@\""] + 390 -> 60 [style=solid label="\"binary\""] + 390 -> 61 [style=solid label="\"hexadecimal\""] + 390 -> 62 [style=solid label="\"integer\""] + 390 -> 63 [style=solid label="\"rational\""] + 390 -> 64 [style=solid label="\"decimal\""] + 390 -> 65 [style=solid label="\"string\""] + 390 -> 9 [style=solid label="\"identifier\""] + 390 -> 446 [style=dashed label="Term"] + 390 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 390 -> 68 [style=dashed label="OperatorExpression"] + 390 -> 69 [style=dashed label="CallExpression"] + 390 -> 70 [style=dashed label="DirectCallExpression"] + 390 -> 71 [style=dashed label="MethodCallExpression"] + 390 -> 72 [style=dashed label="LiteralCallExpression"] + 390 -> 73 [style=dashed label="IndirectCallExpression"] + 390 -> 74 [style=dashed label="TypeCastingExpression"] + 390 -> 75 [style=dashed label="LetExpression"] + 390 -> 76 [style=dashed label="ConditionalExpression"] + 390 -> 77 [style=dashed label="ChooseExpression"] + 390 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 390 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 390 -> 80 [style=dashed label="CardinalityExpression"] + 390 -> 81 [style=dashed label="Literal"] + 390 -> 82 [style=dashed label="UndefinedLiteral"] + 390 -> 83 [style=dashed label="BooleanLiteral"] + 390 -> 84 [style=dashed label="IntegerLiteral"] + 390 -> 85 [style=dashed label="RationalLiteral"] + 390 -> 86 [style=dashed label="DecimalLiteral"] + 390 -> 87 [style=dashed label="BinaryLiteral"] + 390 -> 88 [style=dashed label="StringLiteral"] + 390 -> 89 [style=dashed label="ReferenceLiteral"] + 390 -> 90 [style=dashed label="ListLiteral"] + 390 -> 91 [style=dashed label="RangeLiteral"] + 390 -> 92 [style=dashed label="TupleLiteral"] + 390 -> 93 [style=dashed label="RecordLiteral"] + 390 -> 94 [style=dashed label="Identifier"] + 390 -> 95 [style=dashed label="IdentifierPath"] + 391 [label="State 391\n\l158 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term \"with\" • Term\l"] + 391 -> 45 [style=solid label="\"let\""] + 391 -> 8 [style=solid label="\"in\""] + 391 -> 46 [style=solid label="\"forall\""] + 391 -> 47 [style=solid label="\"choose\""] + 391 -> 48 [style=solid label="\"if\""] + 391 -> 49 [style=solid label="\"exists\""] + 391 -> 50 [style=solid label="\"undef\""] + 391 -> 51 [style=solid label="\"false\""] + 391 -> 52 [style=solid label="\"true\""] + 391 -> 53 [style=solid label="\"not\""] + 391 -> 54 [style=solid label="\"+\""] + 391 -> 55 [style=solid label="\"-\""] + 391 -> 56 [style=solid label="\"(\""] + 391 -> 57 [style=solid label="\"[\""] + 391 -> 58 [style=solid label="\"|\""] + 391 -> 59 [style=solid label="\"@\""] + 391 -> 60 [style=solid label="\"binary\""] + 391 -> 61 [style=solid label="\"hexadecimal\""] + 391 -> 62 [style=solid label="\"integer\""] + 391 -> 63 [style=solid label="\"rational\""] + 391 -> 64 [style=solid label="\"decimal\""] + 391 -> 65 [style=solid label="\"string\""] + 391 -> 9 [style=solid label="\"identifier\""] + 391 -> 447 [style=dashed label="Term"] + 391 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 391 -> 68 [style=dashed label="OperatorExpression"] + 391 -> 69 [style=dashed label="CallExpression"] + 391 -> 70 [style=dashed label="DirectCallExpression"] + 391 -> 71 [style=dashed label="MethodCallExpression"] + 391 -> 72 [style=dashed label="LiteralCallExpression"] + 391 -> 73 [style=dashed label="IndirectCallExpression"] + 391 -> 74 [style=dashed label="TypeCastingExpression"] + 391 -> 75 [style=dashed label="LetExpression"] + 391 -> 76 [style=dashed label="ConditionalExpression"] + 391 -> 77 [style=dashed label="ChooseExpression"] + 391 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 391 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 391 -> 80 [style=dashed label="CardinalityExpression"] + 391 -> 81 [style=dashed label="Literal"] + 391 -> 82 [style=dashed label="UndefinedLiteral"] + 391 -> 83 [style=dashed label="BooleanLiteral"] + 391 -> 84 [style=dashed label="IntegerLiteral"] + 391 -> 85 [style=dashed label="RationalLiteral"] + 391 -> 86 [style=dashed label="DecimalLiteral"] + 391 -> 87 [style=dashed label="BinaryLiteral"] + 391 -> 88 [style=dashed label="StringLiteral"] + 391 -> 89 [style=dashed label="ReferenceLiteral"] + 391 -> 90 [style=dashed label="ListLiteral"] + 391 -> 91 [style=dashed label="RangeLiteral"] + 391 -> 92 [style=dashed label="TupleLiteral"] + 391 -> 93 [style=dashed label="RecordLiteral"] + 391 -> 94 [style=dashed label="Identifier"] + 391 -> 95 [style=dashed label="IdentifierPath"] + 392 [label="State 392\n\l186 TupleLiteral: \"(\" Terms \",\" Term \")\" •\l"] + 392 -> "392R186" [style=solid] + "392R186" [label="R186", fillcolor=3, shape=diamond, style=filled] + 393 [label="State 393\n\l185 RangeLiteral: \"[\" Term \"..\" Term \"]\" •\l"] + 393 -> "393R185" [style=solid] + "393R185" [label="R185", fillcolor=3, shape=diamond, style=filled] + 394 [label="State 394\n\l148 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" error • \")\"\l"] + 394 -> 448 [style=solid label="\")\""] + 395 [label="State 395\n\l146 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" \")\" •\l"] + 395 -> "395R146" [style=solid] + "395R146" [label="R146", fillcolor=3, shape=diamond, style=filled] + 396 [label="State 396\n\l102 Terms: Terms • \",\" Term\l147 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" Terms • \")\"\l"] + 396 -> 449 [style=solid label="\")\""] + 396 -> 216 [style=solid label="\",\""] + 397 [label="State 397\n\l218 Initializer: \"(\" Term \")\" \"->\" • Term\l"] + 397 -> 45 [style=solid label="\"let\""] 397 -> 8 [style=solid label="\"in\""] - 397 -> 247 [style=solid label="\"forall\""] - 397 -> 248 [style=solid label="\"choose\""] - 397 -> 249 [style=solid label="\"iterate\""] - 397 -> 250 [style=solid label="\"if\""] - 397 -> 251 [style=solid label="\"case\""] - 397 -> 252 [style=solid label="\"while\""] - 397 -> 46 [style=solid label="\"undef\""] - 397 -> 47 [style=solid label="\"false\""] - 397 -> 48 [style=solid label="\"true\""] - 397 -> 50 [style=solid label="\"+\""] - 397 -> 51 [style=solid label="\"-\""] - 397 -> 52 [style=solid label="\"(\""] - 397 -> 53 [style=solid label="\"[\""] - 397 -> 253 [style=solid label="\"{\""] - 397 -> 55 [style=solid label="\"@\""] - 397 -> 254 [style=solid label="\"{|\""] - 397 -> 56 [style=solid label="\"binary\""] - 397 -> 57 [style=solid label="\"hexadecimal\""] - 397 -> 58 [style=solid label="\"integer\""] - 397 -> 59 [style=solid label="\"rational\""] - 397 -> 60 [style=solid label="\"decimal\""] - 397 -> 61 [style=solid label="\"string\""] + 397 -> 46 [style=solid label="\"forall\""] + 397 -> 47 [style=solid label="\"choose\""] + 397 -> 48 [style=solid label="\"if\""] + 397 -> 49 [style=solid label="\"exists\""] + 397 -> 50 [style=solid label="\"undef\""] + 397 -> 51 [style=solid label="\"false\""] + 397 -> 52 [style=solid label="\"true\""] + 397 -> 53 [style=solid label="\"not\""] + 397 -> 54 [style=solid label="\"+\""] + 397 -> 55 [style=solid label="\"-\""] + 397 -> 56 [style=solid label="\"(\""] + 397 -> 57 [style=solid label="\"[\""] + 397 -> 58 [style=solid label="\"|\""] + 397 -> 59 [style=solid label="\"@\""] + 397 -> 60 [style=solid label="\"binary\""] + 397 -> 61 [style=solid label="\"hexadecimal\""] + 397 -> 62 [style=solid label="\"integer\""] + 397 -> 63 [style=solid label="\"rational\""] + 397 -> 64 [style=solid label="\"decimal\""] + 397 -> 65 [style=solid label="\"string\""] 397 -> 9 [style=solid label="\"identifier\""] - 397 -> 429 [style=dashed label="Rule"] - 397 -> 256 [style=dashed label="SkipRule"] - 397 -> 257 [style=dashed label="ConditionalRule"] - 397 -> 258 [style=dashed label="CaseRule"] - 397 -> 259 [style=dashed label="LetRule"] - 397 -> 260 [style=dashed label="LocalRule"] - 397 -> 261 [style=dashed label="ForallRule"] - 397 -> 262 [style=dashed label="ChooseRule"] - 397 -> 263 [style=dashed label="IterateRule"] - 397 -> 264 [style=dashed label="BlockRule"] - 397 -> 265 [style=dashed label="SequenceRule"] - 397 -> 266 [style=dashed label="UpdateRule"] - 397 -> 267 [style=dashed label="CallRule"] - 397 -> 268 [style=dashed label="WhileRule"] - 397 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 397 -> 270 [style=dashed label="CallExpression"] - 397 -> 271 [style=dashed label="DirectCallExpression"] - 397 -> 67 [style=dashed label="MethodCallExpression"] - 397 -> 68 [style=dashed label="LiteralCallExpression"] - 397 -> 69 [style=dashed label="IndirectCallExpression"] - 397 -> 77 [style=dashed label="Literal"] - 397 -> 78 [style=dashed label="UndefinedLiteral"] - 397 -> 79 [style=dashed label="BooleanLiteral"] - 397 -> 80 [style=dashed label="IntegerLiteral"] - 397 -> 81 [style=dashed label="RationalLiteral"] - 397 -> 82 [style=dashed label="DecimalLiteral"] - 397 -> 83 [style=dashed label="BinaryLiteral"] - 397 -> 84 [style=dashed label="StringLiteral"] - 397 -> 85 [style=dashed label="ReferenceLiteral"] - 397 -> 86 [style=dashed label="ListLiteral"] - 397 -> 87 [style=dashed label="RangeLiteral"] - 397 -> 88 [style=dashed label="TupleLiteral"] - 397 -> 89 [style=dashed label="RecordLiteral"] - 397 -> 90 [style=dashed label="Identifier"] - 397 -> 91 [style=dashed label="IdentifierPath"] - 398 [label="State 398\n\l 28 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" • Type \"=\" Rule\l"] + 397 -> 450 [style=dashed label="Term"] + 397 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 397 -> 68 [style=dashed label="OperatorExpression"] + 397 -> 69 [style=dashed label="CallExpression"] + 397 -> 70 [style=dashed label="DirectCallExpression"] + 397 -> 71 [style=dashed label="MethodCallExpression"] + 397 -> 72 [style=dashed label="LiteralCallExpression"] + 397 -> 73 [style=dashed label="IndirectCallExpression"] + 397 -> 74 [style=dashed label="TypeCastingExpression"] + 397 -> 75 [style=dashed label="LetExpression"] + 397 -> 76 [style=dashed label="ConditionalExpression"] + 397 -> 77 [style=dashed label="ChooseExpression"] + 397 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 397 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 397 -> 80 [style=dashed label="CardinalityExpression"] + 397 -> 81 [style=dashed label="Literal"] + 397 -> 82 [style=dashed label="UndefinedLiteral"] + 397 -> 83 [style=dashed label="BooleanLiteral"] + 397 -> 84 [style=dashed label="IntegerLiteral"] + 397 -> 85 [style=dashed label="RationalLiteral"] + 397 -> 86 [style=dashed label="DecimalLiteral"] + 397 -> 87 [style=dashed label="BinaryLiteral"] + 397 -> 88 [style=dashed label="StringLiteral"] + 397 -> 89 [style=dashed label="ReferenceLiteral"] + 397 -> 90 [style=dashed label="ListLiteral"] + 397 -> 91 [style=dashed label="RangeLiteral"] + 397 -> 92 [style=dashed label="TupleLiteral"] + 397 -> 93 [style=dashed label="RecordLiteral"] + 397 -> 94 [style=dashed label="Identifier"] + 397 -> 95 [style=dashed label="IdentifierPath"] + 398 [label="State 398\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" • Type \"=\" Term\l"] 398 -> 8 [style=solid label="\"in\""] - 398 -> 211 [style=solid label="\"(\""] + 398 -> 109 [style=solid label="\"(\""] 398 -> 9 [style=solid label="\"identifier\""] - 398 -> 430 [style=dashed label="Type"] - 398 -> 213 [style=dashed label="BasicType"] - 398 -> 214 [style=dashed label="TupleType"] - 398 -> 215 [style=dashed label="RecordType"] - 398 -> 216 [style=dashed label="TemplateType"] - 398 -> 217 [style=dashed label="RelationType"] - 398 -> 218 [style=dashed label="FixedSizedType"] - 398 -> 90 [style=dashed label="Identifier"] - 398 -> 219 [style=dashed label="IdentifierPath"] - 399 [label="State 399\n\l 26 RuleDefinition: \"rule\" Identifier \"->\" Type \"=\" Rule •\l"] - 399 -> "399R26" [style=solid] - "399R26" [label="R26", fillcolor=3, shape=diamond, style=filled] - 400 [label="State 400\n\l 43 StructureDefinition: \"structure\" Identifier \"=\" \"{\" FunctionDefinition \"}\" •\l"] - 400 -> "400R43" [style=solid] - "400R43" [label="R43", fillcolor=3, shape=diamond, style=filled] - 401 [label="State 401\n\l189 FunctionParameters: FunctionParameters \"*\" Type •\l"] - 401 -> "401R189" [style=solid] - "401R189" [label="R189", fillcolor=3, shape=diamond, style=filled] - 402 [label="State 402\n\l 31 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type • MaybeDefined MaybeInitially\l"] - 402 -> 431 [style=solid label="\"defined\""] - 402 -> 432 [style=dashed label="MaybeDefined"] - 402 -> "402R196" [style=solid] - "402R196" [label="R196", fillcolor=3, shape=diamond, style=filled] - 403 [label="State 403\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l141 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term \"holds\" Term •\l"] - 403 -> 134 [style=solid label="\"and\""] - 403 -> 135 [style=solid label="\"or\""] - 403 -> 136 [style=solid label="\"xor\""] - 403 -> 137 [style=solid label="\"implies\""] - 403 -> 138 [style=solid label="\"+\""] - 403 -> 139 [style=solid label="\"-\""] - 403 -> 140 [style=solid label="\"=\""] - 403 -> 141 [style=solid label="\"<\""] - 403 -> 142 [style=solid label="\">\""] - 403 -> 143 [style=solid label="\"*\""] - 403 -> 144 [style=solid label="\"/\""] - 403 -> 145 [style=solid label="\"%\""] - 403 -> 146 [style=solid label="\"^\""] - 403 -> 147 [style=solid label="\"=>\""] - 403 -> 148 [style=solid label="\"!=\""] - 403 -> 149 [style=solid label="\"<=\""] - 403 -> 150 [style=solid label="\">=\""] - 403 -> "403R141" [style=solid] - "403R141" [label="R141", fillcolor=3, shape=diamond, style=filled] - 404 [label="State 404\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l140 ChooseExpression: \"choose\" AttributedVariables \"in\" Term \"do\" Term •\l"] - 404 -> 134 [style=solid label="\"and\""] - 404 -> 135 [style=solid label="\"or\""] - 404 -> 136 [style=solid label="\"xor\""] - 404 -> 137 [style=solid label="\"implies\""] - 404 -> 138 [style=solid label="\"+\""] - 404 -> 139 [style=solid label="\"-\""] - 404 -> 140 [style=solid label="\"=\""] - 404 -> 141 [style=solid label="\"<\""] - 404 -> 142 [style=solid label="\">\""] - 404 -> 143 [style=solid label="\"*\""] - 404 -> 144 [style=solid label="\"/\""] - 404 -> 145 [style=solid label="\"%\""] - 404 -> 146 [style=solid label="\"^\""] - 404 -> 147 [style=solid label="\"=>\""] - 404 -> 148 [style=solid label="\"!=\""] - 404 -> 149 [style=solid label="\"<=\""] - 404 -> 150 [style=solid label="\">=\""] - 404 -> "404R140" [style=solid] - "404R140" [label="R140", fillcolor=3, shape=diamond, style=filled] - 405 [label="State 405\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l139 ConditionalExpression: \"if\" Term \"then\" Term \"else\" Term •\l"] - 405 -> 134 [style=solid label="\"and\""] - 405 -> 135 [style=solid label="\"or\""] - 405 -> 136 [style=solid label="\"xor\""] - 405 -> 137 [style=solid label="\"implies\""] - 405 -> 138 [style=solid label="\"+\""] - 405 -> 139 [style=solid label="\"-\""] - 405 -> 140 [style=solid label="\"=\""] - 405 -> 141 [style=solid label="\"<\""] - 405 -> 142 [style=solid label="\">\""] - 405 -> 143 [style=solid label="\"*\""] - 405 -> 144 [style=solid label="\"/\""] - 405 -> 145 [style=solid label="\"%\""] - 405 -> 146 [style=solid label="\"^\""] - 405 -> 147 [style=solid label="\"=>\""] - 405 -> 148 [style=solid label="\"!=\""] - 405 -> 149 [style=solid label="\"<=\""] - 405 -> 150 [style=solid label="\">=\""] - 405 -> "405R139" [style=solid] - "405R139" [label="R139", fillcolor=3, shape=diamond, style=filled] - 406 [label="State 406\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l142 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term \"with\" Term •\l"] - 406 -> 134 [style=solid label="\"and\""] - 406 -> 135 [style=solid label="\"or\""] - 406 -> 136 [style=solid label="\"xor\""] - 406 -> 137 [style=solid label="\"implies\""] - 406 -> 138 [style=solid label="\"+\""] - 406 -> 139 [style=solid label="\"-\""] - 406 -> 140 [style=solid label="\"=\""] - 406 -> 141 [style=solid label="\"<\""] - 406 -> 142 [style=solid label="\">\""] - 406 -> 143 [style=solid label="\"*\""] - 406 -> 144 [style=solid label="\"/\""] - 406 -> 145 [style=solid label="\"%\""] - 406 -> 146 [style=solid label="\"^\""] - 406 -> 147 [style=solid label="\"=>\""] - 406 -> 148 [style=solid label="\"!=\""] - 406 -> 149 [style=solid label="\"<=\""] - 406 -> 150 [style=solid label="\">=\""] - 406 -> "406R142" [style=solid] - "406R142" [label="R142", fillcolor=3, shape=diamond, style=filled] - 407 [label="State 407\n\l175 Types: Types \",\" Type •\l184 TupleType: \"(\" Types \",\" Type • \")\"\l"] - 407 -> 433 [style=solid label="\")\""] - 407 -> "407R175" [style=solid] - "407R175" [label="R175", fillcolor=3, shape=diamond, style=filled] - 408 [label="State 408\n\l185 RecordType: \"(\" TypedVariables \",\" TypedVariable • \")\"\l212 TypedVariables: TypedVariables \",\" TypedVariable •\l"] - 408 -> 434 [style=solid label="\")\""] - 408 -> "408R212" [style=solid] - "408R212" [label="R212", fillcolor=3, shape=diamond, style=filled] - 409 [label="State 409\n\l175 Types: Types \",\" • Type\l"] - 409 -> 8 [style=solid label="\"in\""] - 409 -> 211 [style=solid label="\"(\""] - 409 -> 9 [style=solid label="\"identifier\""] - 409 -> 435 [style=dashed label="Type"] - 409 -> 213 [style=dashed label="BasicType"] - 409 -> 214 [style=dashed label="TupleType"] - 409 -> 215 [style=dashed label="RecordType"] - 409 -> 216 [style=dashed label="TemplateType"] - 409 -> 217 [style=dashed label="RelationType"] - 409 -> 218 [style=dashed label="FixedSizedType"] - 409 -> 90 [style=dashed label="Identifier"] - 409 -> 219 [style=dashed label="IdentifierPath"] - 410 [label="State 410\n\l186 TemplateType: IdentifierPath \"<\" Types \">\" •\l"] - 410 -> "410R186" [style=solid] - "410R186" [label="R186", fillcolor=3, shape=diamond, style=filled] - 411 [label="State 411\n\l187 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" • Type \">\"\l"] + 398 -> 451 [style=dashed label="Type"] + 398 -> 111 [style=dashed label="BasicType"] + 398 -> 112 [style=dashed label="TupleType"] + 398 -> 113 [style=dashed label="RecordType"] + 398 -> 114 [style=dashed label="TemplateType"] + 398 -> 115 [style=dashed label="RelationType"] + 398 -> 116 [style=dashed label="FixedSizedType"] + 398 -> 94 [style=dashed label="Identifier"] + 398 -> 190 [style=dashed label="IdentifierPath"] + 399 [label="State 399\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" • Type \"=\" Term\l"] + 399 -> 8 [style=solid label="\"in\""] + 399 -> 109 [style=solid label="\"(\""] + 399 -> 9 [style=solid label="\"identifier\""] + 399 -> 452 [style=dashed label="Type"] + 399 -> 111 [style=dashed label="BasicType"] + 399 -> 112 [style=dashed label="TupleType"] + 399 -> 113 [style=dashed label="RecordType"] + 399 -> 114 [style=dashed label="TemplateType"] + 399 -> 115 [style=dashed label="RelationType"] + 399 -> 116 [style=dashed label="FixedSizedType"] + 399 -> 94 [style=dashed label="Identifier"] + 399 -> 190 [style=dashed label="IdentifierPath"] + 400 [label="State 400\n\l209 Parameters: Parameters \",\" TypedAttributedVariable •\l"] + 400 -> "400R209" [style=solid] + "400R209" [label="R209", fillcolor=3, shape=diamond, style=filled] + 401 [label="State 401\n\l 24 DerivedDefinition: \"derived\" Identifier \"->\" Type \"=\" Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 401 -> 148 [style=solid label="\"and\""] + 401 -> 149 [style=solid label="\"or\""] + 401 -> 150 [style=solid label="\"xor\""] + 401 -> 151 [style=solid label="\"implies\""] + 401 -> 152 [style=solid label="\"+\""] + 401 -> 153 [style=solid label="\"-\""] + 401 -> 154 [style=solid label="\"=\""] + 401 -> 155 [style=solid label="\"<\""] + 401 -> 156 [style=solid label="\">\""] + 401 -> 157 [style=solid label="\"*\""] + 401 -> 158 [style=solid label="\"/\""] + 401 -> 159 [style=solid label="\"%\""] + 401 -> 160 [style=solid label="\"^\""] + 401 -> 161 [style=solid label="\"=>\""] + 401 -> 162 [style=solid label="\"!=\""] + 401 -> 163 [style=solid label="\"<=\""] + 401 -> 164 [style=solid label="\">=\""] + 401 -> "401R24" [style=solid] + "401R24" [label="R24", fillcolor=3, shape=diamond, style=filled] + 402 [label="State 402\n\l 23 EnumerationDefinition: \"enumeration\" Identifier \"=\" \"{\" Enumerators \"}\" •\l"] + 402 -> "402R23" [style=solid] + "402R23" [label="R23", fillcolor=3, shape=diamond, style=filled] + 403 [label="State 403\n\l 37 Enumerators: Enumerators \",\" • EnumeratorDefinition\l"] + 403 -> 337 [style=dotted] + 403 -> 8 [style=solid label="\"in\""] + 403 -> 2 [style=solid label="\"[\""] + 403 -> 9 [style=solid label="\"identifier\""] + 403 -> 453 [style=dashed label="EnumeratorDefinition"] + 403 -> 340 [style=dashed label="Identifier"] + 403 -> 341 [style=dashed label="Attributes"] + 403 -> 6 [style=dashed label="Attribute"] + 404 [label="State 404\n\l 35 EnumeratorDefinition: Attributes Identifier •\l"] + 404 -> "404R35" [style=solid] + "404R35" [label="R35", fillcolor=3, shape=diamond, style=filled] + 405 [label="State 405\n\l 98 SequenceRule: \"seq\" error \"endseq\" •\l"] + 405 -> "405R98" [style=solid] + "405R98" [label="R98", fillcolor=3, shape=diamond, style=filled] + 406 [label="State 406\n\l 96 SequenceRule: \"seq\" Rules \"endseq\" •\l"] + 406 -> "406R96" [style=solid] + "406R96" [label="R96", fillcolor=3, shape=diamond, style=filled] + 407 [label="State 407\n\l 60 Rules: Rules Rule •\l"] + 407 -> "407R60" [style=solid] + "407R60" [label="R60", fillcolor=3, shape=diamond, style=filled] + 408 [label="State 408\n\l 94 BlockRule: \"par\" error \"endpar\" •\l"] + 408 -> "408R94" [style=solid] + "408R94" [label="R94", fillcolor=3, shape=diamond, style=filled] + 409 [label="State 409\n\l 92 BlockRule: \"par\" Rules \"endpar\" •\l"] + 409 -> "409R92" [style=solid] + "409R92" [label="R92", fillcolor=3, shape=diamond, style=filled] + 410 [label="State 410\n\l 85 LetRule: \"let\" VariableBindings \"in\" • Rule\l"] + 410 -> 259 [style=solid label="\"seq\""] + 410 -> 260 [style=solid label="\"par\""] + 410 -> 261 [style=solid label="\"skip\""] + 410 -> 262 [style=solid label="\"let\""] + 410 -> 263 [style=solid label="\"local\""] + 410 -> 8 [style=solid label="\"in\""] + 410 -> 264 [style=solid label="\"forall\""] + 410 -> 265 [style=solid label="\"choose\""] + 410 -> 266 [style=solid label="\"iterate\""] + 410 -> 267 [style=solid label="\"if\""] + 410 -> 268 [style=solid label="\"case\""] + 410 -> 269 [style=solid label="\"while\""] + 410 -> 50 [style=solid label="\"undef\""] + 410 -> 51 [style=solid label="\"false\""] + 410 -> 52 [style=solid label="\"true\""] + 410 -> 54 [style=solid label="\"+\""] + 410 -> 55 [style=solid label="\"-\""] + 410 -> 56 [style=solid label="\"(\""] + 410 -> 57 [style=solid label="\"[\""] + 410 -> 270 [style=solid label="\"{\""] + 410 -> 59 [style=solid label="\"@\""] + 410 -> 271 [style=solid label="\"{|\""] + 410 -> 60 [style=solid label="\"binary\""] + 410 -> 61 [style=solid label="\"hexadecimal\""] + 410 -> 62 [style=solid label="\"integer\""] + 410 -> 63 [style=solid label="\"rational\""] + 410 -> 64 [style=solid label="\"decimal\""] + 410 -> 65 [style=solid label="\"string\""] + 410 -> 9 [style=solid label="\"identifier\""] + 410 -> 454 [style=dashed label="Rule"] + 410 -> 273 [style=dashed label="SkipRule"] + 410 -> 274 [style=dashed label="ConditionalRule"] + 410 -> 275 [style=dashed label="CaseRule"] + 410 -> 276 [style=dashed label="LetRule"] + 410 -> 277 [style=dashed label="LocalRule"] + 410 -> 278 [style=dashed label="ForallRule"] + 410 -> 279 [style=dashed label="ChooseRule"] + 410 -> 280 [style=dashed label="IterateRule"] + 410 -> 281 [style=dashed label="BlockRule"] + 410 -> 282 [style=dashed label="SequenceRule"] + 410 -> 283 [style=dashed label="UpdateRule"] + 410 -> 284 [style=dashed label="CallRule"] + 410 -> 285 [style=dashed label="WhileRule"] + 410 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 410 -> 287 [style=dashed label="CallExpression"] + 410 -> 288 [style=dashed label="DirectCallExpression"] + 410 -> 71 [style=dashed label="MethodCallExpression"] + 410 -> 72 [style=dashed label="LiteralCallExpression"] + 410 -> 73 [style=dashed label="IndirectCallExpression"] + 410 -> 81 [style=dashed label="Literal"] + 410 -> 82 [style=dashed label="UndefinedLiteral"] + 410 -> 83 [style=dashed label="BooleanLiteral"] + 410 -> 84 [style=dashed label="IntegerLiteral"] + 410 -> 85 [style=dashed label="RationalLiteral"] + 410 -> 86 [style=dashed label="DecimalLiteral"] + 410 -> 87 [style=dashed label="BinaryLiteral"] + 410 -> 88 [style=dashed label="StringLiteral"] + 410 -> 89 [style=dashed label="ReferenceLiteral"] + 410 -> 90 [style=dashed label="ListLiteral"] + 410 -> 91 [style=dashed label="RangeLiteral"] + 410 -> 92 [style=dashed label="TupleLiteral"] + 410 -> 93 [style=dashed label="RecordLiteral"] + 410 -> 94 [style=dashed label="Identifier"] + 410 -> 95 [style=dashed label="IdentifierPath"] + 411 [label="State 411\n\l243 LocalFunctionDefinition: Identifier \":\" • MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially\l"] 411 -> 8 [style=solid label="\"in\""] - 411 -> 211 [style=solid label="\"(\""] + 411 -> 109 [style=solid label="\"(\""] 411 -> 9 [style=solid label="\"identifier\""] - 411 -> 436 [style=dashed label="Type"] - 411 -> 213 [style=dashed label="BasicType"] - 411 -> 214 [style=dashed label="TupleType"] - 411 -> 215 [style=dashed label="RecordType"] - 411 -> 216 [style=dashed label="TemplateType"] - 411 -> 217 [style=dashed label="RelationType"] - 411 -> 218 [style=dashed label="FixedSizedType"] - 411 -> 90 [style=dashed label="Identifier"] - 411 -> 219 [style=dashed label="IdentifierPath"] - 412 [label="State 412\n\l132 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" error \")\" •\l"] - 412 -> "412R132" [style=solid] - "412R132" [label="R132", fillcolor=3, shape=diamond, style=filled] - 413 [label="State 413\n\l131 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" Terms \")\" •\l"] - 413 -> "413R131" [style=solid] - "413R131" [label="R131", fillcolor=3, shape=diamond, style=filled] - 414 [label="State 414\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l202 Initializer: \"(\" Term \")\" \"->\" Term •\l"] - 414 -> 134 [style=solid label="\"and\""] - 414 -> 135 [style=solid label="\"or\""] - 414 -> 136 [style=solid label="\"xor\""] - 414 -> 137 [style=solid label="\"implies\""] - 414 -> 138 [style=solid label="\"+\""] - 414 -> 139 [style=solid label="\"-\""] - 414 -> 140 [style=solid label="\"=\""] - 414 -> 141 [style=solid label="\"<\""] - 414 -> 142 [style=solid label="\">\""] - 414 -> 143 [style=solid label="\"*\""] - 414 -> 144 [style=solid label="\"/\""] - 414 -> 145 [style=solid label="\"%\""] - 414 -> 146 [style=solid label="\"^\""] - 414 -> 147 [style=solid label="\"=>\""] - 414 -> 148 [style=solid label="\"!=\""] - 414 -> 149 [style=solid label="\"<=\""] - 414 -> 150 [style=solid label="\">=\""] - 414 -> "414R202" [style=solid] - "414R202" [label="R202", fillcolor=3, shape=diamond, style=filled] - 415 [label="State 415\n\l 24 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type • \"=\" Term\l"] - 415 -> 437 [style=solid label="\"=\""] - 416 [label="State 416\n\l 23 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type • \"=\" Term\l"] - 416 -> 438 [style=solid label="\"=\""] - 417 [label="State 417\n\l 35 Enumerators: Enumerators \",\" EnumeratorDefinition •\l"] - 417 -> "417R35" [style=solid] - "417R35" [label="R35", fillcolor=3, shape=diamond, style=filled] - 418 [label="State 418\n\l 69 LetRule: \"let\" VariableBindings \"in\" Rule •\l"] - 418 -> "418R69" [style=solid] - "418R69" [label="R69", fillcolor=3, shape=diamond, style=filled] - 419 [label="State 419\n\l227 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters • \"->\" Type MaybeDefined MaybeInitially\l"] - 419 -> 439 [style=solid label="\"->\""] - 420 [label="State 420\n\l 70 LocalRule: \"local\" LocalFunctionDefinitions \"in\" Rule •\l"] - 420 -> "420R70" [style=solid] - "420R70" [label="R70", fillcolor=3, shape=diamond, style=filled] - 421 [label="State 421\n\l222 LocalFunctionDefinitions: LocalFunctionDefinitions \",\" AttributedLocalFunctionDefinition •\l"] - 421 -> "421R222" [style=solid] - "421R222" [label="R222", fillcolor=3, shape=diamond, style=filled] - 422 [label="State 422\n\l 71 ForallRule: \"forall\" AttributedVariables \"in\" Term • \"do\" Rule\l 72 | \"forall\" AttributedVariables \"in\" Term • \"with\" Term \"do\" Rule\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 422 -> 440 [style=solid label="\"do\""] - 422 -> 441 [style=solid label="\"with\""] - 422 -> 134 [style=solid label="\"and\""] - 422 -> 135 [style=solid label="\"or\""] - 422 -> 136 [style=solid label="\"xor\""] - 422 -> 137 [style=solid label="\"implies\""] - 422 -> 138 [style=solid label="\"+\""] - 422 -> 139 [style=solid label="\"-\""] - 422 -> 140 [style=solid label="\"=\""] - 422 -> 141 [style=solid label="\"<\""] - 422 -> 142 [style=solid label="\">\""] - 422 -> 143 [style=solid label="\"*\""] - 422 -> 144 [style=solid label="\"/\""] - 422 -> 145 [style=solid label="\"%\""] - 422 -> 146 [style=solid label="\"^\""] - 422 -> 147 [style=solid label="\"=>\""] - 422 -> 148 [style=solid label="\"!=\""] - 422 -> 149 [style=solid label="\"<=\""] - 422 -> 150 [style=solid label="\">=\""] - 423 [label="State 423\n\l 73 ChooseRule: \"choose\" AttributedVariables \"in\" Term • \"do\" Rule\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 423 -> 442 [style=solid label="\"do\""] - 423 -> 134 [style=solid label="\"and\""] - 423 -> 135 [style=solid label="\"or\""] - 423 -> 136 [style=solid label="\"xor\""] - 423 -> 137 [style=solid label="\"implies\""] - 423 -> 138 [style=solid label="\"+\""] - 423 -> 139 [style=solid label="\"-\""] - 423 -> 140 [style=solid label="\"=\""] - 423 -> 141 [style=solid label="\"<\""] - 423 -> 142 [style=solid label="\">\""] - 423 -> 143 [style=solid label="\"*\""] - 423 -> 144 [style=solid label="\"/\""] - 423 -> 145 [style=solid label="\"%\""] - 423 -> 146 [style=solid label="\"^\""] - 423 -> 147 [style=solid label="\"=>\""] - 423 -> 148 [style=solid label="\"!=\""] - 423 -> 149 [style=solid label="\"<=\""] - 423 -> 150 [style=solid label="\">=\""] - 424 [label="State 424\n\l 60 ConditionalRule: \"if\" Term \"then\" Rule •\l 61 | \"if\" Term \"then\" Rule • \"else\" Rule\l"] - 424 -> 443 [style=solid label="\"else\""] - 424 -> "424R60" [style=solid] - "424R60" [label="R60", fillcolor=3, shape=diamond, style=filled] - 425 [label="State 425\n\l 62 CaseRule: \"case\" Term \"of\" \"{\" • CaseLabels \"}\"\l 63 | \"case\" Term \"of\" \"{\" • error \"}\"\l"] - 425 -> 444 [style=dotted] - 425 -> 41 [style=solid label="\"let\""] + 411 -> 307 [style=dashed label="Type"] + 411 -> 111 [style=dashed label="BasicType"] + 411 -> 112 [style=dashed label="TupleType"] + 411 -> 113 [style=dashed label="RecordType"] + 411 -> 114 [style=dashed label="TemplateType"] + 411 -> 115 [style=dashed label="RelationType"] + 411 -> 116 [style=dashed label="FixedSizedType"] + 411 -> 304 [style=dashed label="FunctionParameters"] + 411 -> 455 [style=dashed label="MaybeFunctionParameters"] + 411 -> 94 [style=dashed label="Identifier"] + 411 -> 190 [style=dashed label="IdentifierPath"] + 411 -> "411R208" [style=solid] + "411R208" [label="R208", fillcolor=3, shape=diamond, style=filled] + 412 [label="State 412\n\l 86 LocalRule: \"local\" LocalFunctionDefinitions \"in\" • Rule\l"] + 412 -> 259 [style=solid label="\"seq\""] + 412 -> 260 [style=solid label="\"par\""] + 412 -> 261 [style=solid label="\"skip\""] + 412 -> 262 [style=solid label="\"let\""] + 412 -> 263 [style=solid label="\"local\""] + 412 -> 8 [style=solid label="\"in\""] + 412 -> 264 [style=solid label="\"forall\""] + 412 -> 265 [style=solid label="\"choose\""] + 412 -> 266 [style=solid label="\"iterate\""] + 412 -> 267 [style=solid label="\"if\""] + 412 -> 268 [style=solid label="\"case\""] + 412 -> 269 [style=solid label="\"while\""] + 412 -> 50 [style=solid label="\"undef\""] + 412 -> 51 [style=solid label="\"false\""] + 412 -> 52 [style=solid label="\"true\""] + 412 -> 54 [style=solid label="\"+\""] + 412 -> 55 [style=solid label="\"-\""] + 412 -> 56 [style=solid label="\"(\""] + 412 -> 57 [style=solid label="\"[\""] + 412 -> 270 [style=solid label="\"{\""] + 412 -> 59 [style=solid label="\"@\""] + 412 -> 271 [style=solid label="\"{|\""] + 412 -> 60 [style=solid label="\"binary\""] + 412 -> 61 [style=solid label="\"hexadecimal\""] + 412 -> 62 [style=solid label="\"integer\""] + 412 -> 63 [style=solid label="\"rational\""] + 412 -> 64 [style=solid label="\"decimal\""] + 412 -> 65 [style=solid label="\"string\""] + 412 -> 9 [style=solid label="\"identifier\""] + 412 -> 456 [style=dashed label="Rule"] + 412 -> 273 [style=dashed label="SkipRule"] + 412 -> 274 [style=dashed label="ConditionalRule"] + 412 -> 275 [style=dashed label="CaseRule"] + 412 -> 276 [style=dashed label="LetRule"] + 412 -> 277 [style=dashed label="LocalRule"] + 412 -> 278 [style=dashed label="ForallRule"] + 412 -> 279 [style=dashed label="ChooseRule"] + 412 -> 280 [style=dashed label="IterateRule"] + 412 -> 281 [style=dashed label="BlockRule"] + 412 -> 282 [style=dashed label="SequenceRule"] + 412 -> 283 [style=dashed label="UpdateRule"] + 412 -> 284 [style=dashed label="CallRule"] + 412 -> 285 [style=dashed label="WhileRule"] + 412 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 412 -> 287 [style=dashed label="CallExpression"] + 412 -> 288 [style=dashed label="DirectCallExpression"] + 412 -> 71 [style=dashed label="MethodCallExpression"] + 412 -> 72 [style=dashed label="LiteralCallExpression"] + 412 -> 73 [style=dashed label="IndirectCallExpression"] + 412 -> 81 [style=dashed label="Literal"] + 412 -> 82 [style=dashed label="UndefinedLiteral"] + 412 -> 83 [style=dashed label="BooleanLiteral"] + 412 -> 84 [style=dashed label="IntegerLiteral"] + 412 -> 85 [style=dashed label="RationalLiteral"] + 412 -> 86 [style=dashed label="DecimalLiteral"] + 412 -> 87 [style=dashed label="BinaryLiteral"] + 412 -> 88 [style=dashed label="StringLiteral"] + 412 -> 89 [style=dashed label="ReferenceLiteral"] + 412 -> 90 [style=dashed label="ListLiteral"] + 412 -> 91 [style=dashed label="RangeLiteral"] + 412 -> 92 [style=dashed label="TupleLiteral"] + 412 -> 93 [style=dashed label="RecordLiteral"] + 412 -> 94 [style=dashed label="Identifier"] + 412 -> 95 [style=dashed label="IdentifierPath"] + 413 [label="State 413\n\l238 LocalFunctionDefinitions: LocalFunctionDefinitions \",\" • AttributedLocalFunctionDefinition\l"] + 413 -> 348 [style=dotted] + 413 -> 8 [style=solid label="\"in\""] + 413 -> 2 [style=solid label="\"[\""] + 413 -> 9 [style=solid label="\"identifier\""] + 413 -> 349 [style=dashed label="Identifier"] + 413 -> 457 [style=dashed label="AttributedLocalFunctionDefinition"] + 413 -> 352 [style=dashed label="LocalFunctionDefinition"] + 413 -> 353 [style=dashed label="Attributes"] + 413 -> 6 [style=dashed label="Attribute"] + 414 [label="State 414\n\l240 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition •\l"] + 414 -> "414R240" [style=solid] + "414R240" [label="R240", fillcolor=3, shape=diamond, style=filled] + 415 [label="State 415\n\l 87 ForallRule: \"forall\" AttributedVariables \"in\" • Term \"do\" Rule\l 88 | \"forall\" AttributedVariables \"in\" • Term \"with\" Term \"do\" Rule\l"] + 415 -> 45 [style=solid label="\"let\""] + 415 -> 8 [style=solid label="\"in\""] + 415 -> 46 [style=solid label="\"forall\""] + 415 -> 47 [style=solid label="\"choose\""] + 415 -> 48 [style=solid label="\"if\""] + 415 -> 49 [style=solid label="\"exists\""] + 415 -> 50 [style=solid label="\"undef\""] + 415 -> 51 [style=solid label="\"false\""] + 415 -> 52 [style=solid label="\"true\""] + 415 -> 53 [style=solid label="\"not\""] + 415 -> 54 [style=solid label="\"+\""] + 415 -> 55 [style=solid label="\"-\""] + 415 -> 56 [style=solid label="\"(\""] + 415 -> 57 [style=solid label="\"[\""] + 415 -> 58 [style=solid label="\"|\""] + 415 -> 59 [style=solid label="\"@\""] + 415 -> 60 [style=solid label="\"binary\""] + 415 -> 61 [style=solid label="\"hexadecimal\""] + 415 -> 62 [style=solid label="\"integer\""] + 415 -> 63 [style=solid label="\"rational\""] + 415 -> 64 [style=solid label="\"decimal\""] + 415 -> 65 [style=solid label="\"string\""] + 415 -> 9 [style=solid label="\"identifier\""] + 415 -> 458 [style=dashed label="Term"] + 415 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 415 -> 68 [style=dashed label="OperatorExpression"] + 415 -> 69 [style=dashed label="CallExpression"] + 415 -> 70 [style=dashed label="DirectCallExpression"] + 415 -> 71 [style=dashed label="MethodCallExpression"] + 415 -> 72 [style=dashed label="LiteralCallExpression"] + 415 -> 73 [style=dashed label="IndirectCallExpression"] + 415 -> 74 [style=dashed label="TypeCastingExpression"] + 415 -> 75 [style=dashed label="LetExpression"] + 415 -> 76 [style=dashed label="ConditionalExpression"] + 415 -> 77 [style=dashed label="ChooseExpression"] + 415 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 415 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 415 -> 80 [style=dashed label="CardinalityExpression"] + 415 -> 81 [style=dashed label="Literal"] + 415 -> 82 [style=dashed label="UndefinedLiteral"] + 415 -> 83 [style=dashed label="BooleanLiteral"] + 415 -> 84 [style=dashed label="IntegerLiteral"] + 415 -> 85 [style=dashed label="RationalLiteral"] + 415 -> 86 [style=dashed label="DecimalLiteral"] + 415 -> 87 [style=dashed label="BinaryLiteral"] + 415 -> 88 [style=dashed label="StringLiteral"] + 415 -> 89 [style=dashed label="ReferenceLiteral"] + 415 -> 90 [style=dashed label="ListLiteral"] + 415 -> 91 [style=dashed label="RangeLiteral"] + 415 -> 92 [style=dashed label="TupleLiteral"] + 415 -> 93 [style=dashed label="RecordLiteral"] + 415 -> 94 [style=dashed label="Identifier"] + 415 -> 95 [style=dashed label="IdentifierPath"] + 416 [label="State 416\n\l 89 ChooseRule: \"choose\" AttributedVariables \"in\" • Term \"do\" Rule\l"] + 416 -> 45 [style=solid label="\"let\""] + 416 -> 8 [style=solid label="\"in\""] + 416 -> 46 [style=solid label="\"forall\""] + 416 -> 47 [style=solid label="\"choose\""] + 416 -> 48 [style=solid label="\"if\""] + 416 -> 49 [style=solid label="\"exists\""] + 416 -> 50 [style=solid label="\"undef\""] + 416 -> 51 [style=solid label="\"false\""] + 416 -> 52 [style=solid label="\"true\""] + 416 -> 53 [style=solid label="\"not\""] + 416 -> 54 [style=solid label="\"+\""] + 416 -> 55 [style=solid label="\"-\""] + 416 -> 56 [style=solid label="\"(\""] + 416 -> 57 [style=solid label="\"[\""] + 416 -> 58 [style=solid label="\"|\""] + 416 -> 59 [style=solid label="\"@\""] + 416 -> 60 [style=solid label="\"binary\""] + 416 -> 61 [style=solid label="\"hexadecimal\""] + 416 -> 62 [style=solid label="\"integer\""] + 416 -> 63 [style=solid label="\"rational\""] + 416 -> 64 [style=solid label="\"decimal\""] + 416 -> 65 [style=solid label="\"string\""] + 416 -> 9 [style=solid label="\"identifier\""] + 416 -> 459 [style=dashed label="Term"] + 416 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 416 -> 68 [style=dashed label="OperatorExpression"] + 416 -> 69 [style=dashed label="CallExpression"] + 416 -> 70 [style=dashed label="DirectCallExpression"] + 416 -> 71 [style=dashed label="MethodCallExpression"] + 416 -> 72 [style=dashed label="LiteralCallExpression"] + 416 -> 73 [style=dashed label="IndirectCallExpression"] + 416 -> 74 [style=dashed label="TypeCastingExpression"] + 416 -> 75 [style=dashed label="LetExpression"] + 416 -> 76 [style=dashed label="ConditionalExpression"] + 416 -> 77 [style=dashed label="ChooseExpression"] + 416 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 416 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 416 -> 80 [style=dashed label="CardinalityExpression"] + 416 -> 81 [style=dashed label="Literal"] + 416 -> 82 [style=dashed label="UndefinedLiteral"] + 416 -> 83 [style=dashed label="BooleanLiteral"] + 416 -> 84 [style=dashed label="IntegerLiteral"] + 416 -> 85 [style=dashed label="RationalLiteral"] + 416 -> 86 [style=dashed label="DecimalLiteral"] + 416 -> 87 [style=dashed label="BinaryLiteral"] + 416 -> 88 [style=dashed label="StringLiteral"] + 416 -> 89 [style=dashed label="ReferenceLiteral"] + 416 -> 90 [style=dashed label="ListLiteral"] + 416 -> 91 [style=dashed label="RangeLiteral"] + 416 -> 92 [style=dashed label="TupleLiteral"] + 416 -> 93 [style=dashed label="RecordLiteral"] + 416 -> 94 [style=dashed label="Identifier"] + 416 -> 95 [style=dashed label="IdentifierPath"] + 417 [label="State 417\n\l 76 ConditionalRule: \"if\" Term \"then\" • Rule\l 77 | \"if\" Term \"then\" • Rule \"else\" Rule\l"] + 417 -> 259 [style=solid label="\"seq\""] + 417 -> 260 [style=solid label="\"par\""] + 417 -> 261 [style=solid label="\"skip\""] + 417 -> 262 [style=solid label="\"let\""] + 417 -> 263 [style=solid label="\"local\""] + 417 -> 8 [style=solid label="\"in\""] + 417 -> 264 [style=solid label="\"forall\""] + 417 -> 265 [style=solid label="\"choose\""] + 417 -> 266 [style=solid label="\"iterate\""] + 417 -> 267 [style=solid label="\"if\""] + 417 -> 268 [style=solid label="\"case\""] + 417 -> 269 [style=solid label="\"while\""] + 417 -> 50 [style=solid label="\"undef\""] + 417 -> 51 [style=solid label="\"false\""] + 417 -> 52 [style=solid label="\"true\""] + 417 -> 54 [style=solid label="\"+\""] + 417 -> 55 [style=solid label="\"-\""] + 417 -> 56 [style=solid label="\"(\""] + 417 -> 57 [style=solid label="\"[\""] + 417 -> 270 [style=solid label="\"{\""] + 417 -> 59 [style=solid label="\"@\""] + 417 -> 271 [style=solid label="\"{|\""] + 417 -> 60 [style=solid label="\"binary\""] + 417 -> 61 [style=solid label="\"hexadecimal\""] + 417 -> 62 [style=solid label="\"integer\""] + 417 -> 63 [style=solid label="\"rational\""] + 417 -> 64 [style=solid label="\"decimal\""] + 417 -> 65 [style=solid label="\"string\""] + 417 -> 9 [style=solid label="\"identifier\""] + 417 -> 460 [style=dashed label="Rule"] + 417 -> 273 [style=dashed label="SkipRule"] + 417 -> 274 [style=dashed label="ConditionalRule"] + 417 -> 275 [style=dashed label="CaseRule"] + 417 -> 276 [style=dashed label="LetRule"] + 417 -> 277 [style=dashed label="LocalRule"] + 417 -> 278 [style=dashed label="ForallRule"] + 417 -> 279 [style=dashed label="ChooseRule"] + 417 -> 280 [style=dashed label="IterateRule"] + 417 -> 281 [style=dashed label="BlockRule"] + 417 -> 282 [style=dashed label="SequenceRule"] + 417 -> 283 [style=dashed label="UpdateRule"] + 417 -> 284 [style=dashed label="CallRule"] + 417 -> 285 [style=dashed label="WhileRule"] + 417 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 417 -> 287 [style=dashed label="CallExpression"] + 417 -> 288 [style=dashed label="DirectCallExpression"] + 417 -> 71 [style=dashed label="MethodCallExpression"] + 417 -> 72 [style=dashed label="LiteralCallExpression"] + 417 -> 73 [style=dashed label="IndirectCallExpression"] + 417 -> 81 [style=dashed label="Literal"] + 417 -> 82 [style=dashed label="UndefinedLiteral"] + 417 -> 83 [style=dashed label="BooleanLiteral"] + 417 -> 84 [style=dashed label="IntegerLiteral"] + 417 -> 85 [style=dashed label="RationalLiteral"] + 417 -> 86 [style=dashed label="DecimalLiteral"] + 417 -> 87 [style=dashed label="BinaryLiteral"] + 417 -> 88 [style=dashed label="StringLiteral"] + 417 -> 89 [style=dashed label="ReferenceLiteral"] + 417 -> 90 [style=dashed label="ListLiteral"] + 417 -> 91 [style=dashed label="RangeLiteral"] + 417 -> 92 [style=dashed label="TupleLiteral"] + 417 -> 93 [style=dashed label="RecordLiteral"] + 417 -> 94 [style=dashed label="Identifier"] + 417 -> 95 [style=dashed label="IdentifierPath"] + 418 [label="State 418\n\l 78 CaseRule: \"case\" Term \"of\" • \"{\" CaseLabels \"}\"\l 79 | \"case\" Term \"of\" • \"{\" error \"}\"\l"] + 418 -> 461 [style=solid label="\"{\""] + 419 [label="State 419\n\l101 WhileRule: \"while\" Term \"do\" • Rule\l"] + 419 -> 259 [style=solid label="\"seq\""] + 419 -> 260 [style=solid label="\"par\""] + 419 -> 261 [style=solid label="\"skip\""] + 419 -> 262 [style=solid label="\"let\""] + 419 -> 263 [style=solid label="\"local\""] + 419 -> 8 [style=solid label="\"in\""] + 419 -> 264 [style=solid label="\"forall\""] + 419 -> 265 [style=solid label="\"choose\""] + 419 -> 266 [style=solid label="\"iterate\""] + 419 -> 267 [style=solid label="\"if\""] + 419 -> 268 [style=solid label="\"case\""] + 419 -> 269 [style=solid label="\"while\""] + 419 -> 50 [style=solid label="\"undef\""] + 419 -> 51 [style=solid label="\"false\""] + 419 -> 52 [style=solid label="\"true\""] + 419 -> 54 [style=solid label="\"+\""] + 419 -> 55 [style=solid label="\"-\""] + 419 -> 56 [style=solid label="\"(\""] + 419 -> 57 [style=solid label="\"[\""] + 419 -> 270 [style=solid label="\"{\""] + 419 -> 59 [style=solid label="\"@\""] + 419 -> 271 [style=solid label="\"{|\""] + 419 -> 60 [style=solid label="\"binary\""] + 419 -> 61 [style=solid label="\"hexadecimal\""] + 419 -> 62 [style=solid label="\"integer\""] + 419 -> 63 [style=solid label="\"rational\""] + 419 -> 64 [style=solid label="\"decimal\""] + 419 -> 65 [style=solid label="\"string\""] + 419 -> 9 [style=solid label="\"identifier\""] + 419 -> 462 [style=dashed label="Rule"] + 419 -> 273 [style=dashed label="SkipRule"] + 419 -> 274 [style=dashed label="ConditionalRule"] + 419 -> 275 [style=dashed label="CaseRule"] + 419 -> 276 [style=dashed label="LetRule"] + 419 -> 277 [style=dashed label="LocalRule"] + 419 -> 278 [style=dashed label="ForallRule"] + 419 -> 279 [style=dashed label="ChooseRule"] + 419 -> 280 [style=dashed label="IterateRule"] + 419 -> 281 [style=dashed label="BlockRule"] + 419 -> 282 [style=dashed label="SequenceRule"] + 419 -> 283 [style=dashed label="UpdateRule"] + 419 -> 284 [style=dashed label="CallRule"] + 419 -> 285 [style=dashed label="WhileRule"] + 419 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 419 -> 287 [style=dashed label="CallExpression"] + 419 -> 288 [style=dashed label="DirectCallExpression"] + 419 -> 71 [style=dashed label="MethodCallExpression"] + 419 -> 72 [style=dashed label="LiteralCallExpression"] + 419 -> 73 [style=dashed label="IndirectCallExpression"] + 419 -> 81 [style=dashed label="Literal"] + 419 -> 82 [style=dashed label="UndefinedLiteral"] + 419 -> 83 [style=dashed label="BooleanLiteral"] + 419 -> 84 [style=dashed label="IntegerLiteral"] + 419 -> 85 [style=dashed label="RationalLiteral"] + 419 -> 86 [style=dashed label="DecimalLiteral"] + 419 -> 87 [style=dashed label="BinaryLiteral"] + 419 -> 88 [style=dashed label="StringLiteral"] + 419 -> 89 [style=dashed label="ReferenceLiteral"] + 419 -> 90 [style=dashed label="ListLiteral"] + 419 -> 91 [style=dashed label="RangeLiteral"] + 419 -> 92 [style=dashed label="TupleLiteral"] + 419 -> 93 [style=dashed label="RecordLiteral"] + 419 -> 94 [style=dashed label="Identifier"] + 419 -> 95 [style=dashed label="IdentifierPath"] + 420 [label="State 420\n\l 93 BlockRule: \"{\" error \"}\" •\l"] + 420 -> "420R93" [style=solid] + "420R93" [label="R93", fillcolor=3, shape=diamond, style=filled] + 421 [label="State 421\n\l 91 BlockRule: \"{\" Rules \"}\" •\l"] + 421 -> "421R91" [style=solid] + "421R91" [label="R91", fillcolor=3, shape=diamond, style=filled] + 422 [label="State 422\n\l 97 SequenceRule: \"{|\" error \"|}\" •\l"] + 422 -> "422R97" [style=solid] + "422R97" [label="R97", fillcolor=3, shape=diamond, style=filled] + 423 [label="State 423\n\l 95 SequenceRule: \"{|\" Rules \"|}\" •\l"] + 423 -> "423R95" [style=solid] + "423R95" [label="R95", fillcolor=3, shape=diamond, style=filled] + 424 [label="State 424\n\l 99 UpdateRule: DirectCallExpression \":=\" Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 424 -> 148 [style=solid label="\"and\""] + 424 -> 149 [style=solid label="\"or\""] + 424 -> 150 [style=solid label="\"xor\""] + 424 -> 151 [style=solid label="\"implies\""] + 424 -> 152 [style=solid label="\"+\""] + 424 -> 153 [style=solid label="\"-\""] + 424 -> 154 [style=solid label="\"=\""] + 424 -> 155 [style=solid label="\"<\""] + 424 -> 156 [style=solid label="\">\""] + 424 -> 157 [style=solid label="\"*\""] + 424 -> 158 [style=solid label="\"/\""] + 424 -> 159 [style=solid label="\"%\""] + 424 -> 160 [style=solid label="\"^\""] + 424 -> 161 [style=solid label="\"=>\""] + 424 -> 162 [style=solid label="\"!=\""] + 424 -> 163 [style=solid label="\"<=\""] + 424 -> 164 [style=solid label="\">=\""] + 424 -> "424R99" [style=solid] + "424R99" [label="R99", fillcolor=3, shape=diamond, style=filled] + 425 [label="State 425\n\l 31 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"=\" • Rule\l"] + 425 -> 259 [style=solid label="\"seq\""] + 425 -> 260 [style=solid label="\"par\""] + 425 -> 261 [style=solid label="\"skip\""] + 425 -> 262 [style=solid label="\"let\""] + 425 -> 263 [style=solid label="\"local\""] 425 -> 8 [style=solid label="\"in\""] - 425 -> 42 [style=solid label="\"forall\""] - 425 -> 43 [style=solid label="\"choose\""] - 425 -> 44 [style=solid label="\"if\""] - 425 -> 445 [style=solid label="\"default\""] - 425 -> 45 [style=solid label="\"exists\""] - 425 -> 46 [style=solid label="\"undef\""] - 425 -> 47 [style=solid label="\"false\""] - 425 -> 48 [style=solid label="\"true\""] - 425 -> 49 [style=solid label="\"not\""] - 425 -> 50 [style=solid label="\"+\""] - 425 -> 51 [style=solid label="\"-\""] - 425 -> 52 [style=solid label="\"(\""] - 425 -> 53 [style=solid label="\"[\""] - 425 -> 446 [style=solid label="\"_\""] - 425 -> 54 [style=solid label="\"|\""] - 425 -> 55 [style=solid label="\"@\""] - 425 -> 56 [style=solid label="\"binary\""] - 425 -> 57 [style=solid label="\"hexadecimal\""] - 425 -> 58 [style=solid label="\"integer\""] - 425 -> 59 [style=solid label="\"rational\""] - 425 -> 60 [style=solid label="\"decimal\""] - 425 -> 61 [style=solid label="\"string\""] + 425 -> 264 [style=solid label="\"forall\""] + 425 -> 265 [style=solid label="\"choose\""] + 425 -> 266 [style=solid label="\"iterate\""] + 425 -> 267 [style=solid label="\"if\""] + 425 -> 268 [style=solid label="\"case\""] + 425 -> 269 [style=solid label="\"while\""] + 425 -> 50 [style=solid label="\"undef\""] + 425 -> 51 [style=solid label="\"false\""] + 425 -> 52 [style=solid label="\"true\""] + 425 -> 54 [style=solid label="\"+\""] + 425 -> 55 [style=solid label="\"-\""] + 425 -> 56 [style=solid label="\"(\""] + 425 -> 57 [style=solid label="\"[\""] + 425 -> 270 [style=solid label="\"{\""] + 425 -> 59 [style=solid label="\"@\""] + 425 -> 271 [style=solid label="\"{|\""] + 425 -> 60 [style=solid label="\"binary\""] + 425 -> 61 [style=solid label="\"hexadecimal\""] + 425 -> 62 [style=solid label="\"integer\""] + 425 -> 63 [style=solid label="\"rational\""] + 425 -> 64 [style=solid label="\"decimal\""] + 425 -> 65 [style=solid label="\"string\""] 425 -> 9 [style=solid label="\"identifier\""] - 425 -> 447 [style=dashed label="CaseLabels"] - 425 -> 448 [style=dashed label="CaseLabel"] - 425 -> 449 [style=dashed label="Term"] - 425 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 425 -> 64 [style=dashed label="OperatorExpression"] - 425 -> 65 [style=dashed label="CallExpression"] - 425 -> 66 [style=dashed label="DirectCallExpression"] - 425 -> 67 [style=dashed label="MethodCallExpression"] - 425 -> 68 [style=dashed label="LiteralCallExpression"] - 425 -> 69 [style=dashed label="IndirectCallExpression"] - 425 -> 70 [style=dashed label="TypeCastingExpression"] - 425 -> 71 [style=dashed label="LetExpression"] - 425 -> 72 [style=dashed label="ConditionalExpression"] - 425 -> 73 [style=dashed label="ChooseExpression"] - 425 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 425 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 425 -> 76 [style=dashed label="CardinalityExpression"] - 425 -> 77 [style=dashed label="Literal"] - 425 -> 78 [style=dashed label="UndefinedLiteral"] - 425 -> 79 [style=dashed label="BooleanLiteral"] - 425 -> 80 [style=dashed label="IntegerLiteral"] - 425 -> 81 [style=dashed label="RationalLiteral"] - 425 -> 82 [style=dashed label="DecimalLiteral"] - 425 -> 83 [style=dashed label="BinaryLiteral"] - 425 -> 84 [style=dashed label="StringLiteral"] - 425 -> 85 [style=dashed label="ReferenceLiteral"] - 425 -> 86 [style=dashed label="ListLiteral"] - 425 -> 87 [style=dashed label="RangeLiteral"] - 425 -> 88 [style=dashed label="TupleLiteral"] - 425 -> 89 [style=dashed label="RecordLiteral"] - 425 -> 90 [style=dashed label="Identifier"] - 425 -> 91 [style=dashed label="IdentifierPath"] - 426 [label="State 426\n\l 85 WhileRule: \"while\" Term \"do\" Rule •\l"] - 426 -> "426R85" [style=solid] - "426R85" [label="R85", fillcolor=3, shape=diamond, style=filled] - 427 [label="State 427\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"=\" Rule •\l"] - 427 -> "427R29" [style=solid] - "427R29" [label="R29", fillcolor=3, shape=diamond, style=filled] - 428 [label="State 428\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type • \"=\" Rule\l"] - 428 -> 450 [style=solid label="\"=\""] - 429 [label="State 429\n\l 27 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"=\" Rule •\l"] - 429 -> "429R27" [style=solid] - "429R27" [label="R27", fillcolor=3, shape=diamond, style=filled] - 430 [label="State 430\n\l 28 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type • \"=\" Rule\l"] - 430 -> 451 [style=solid label="\"=\""] - 431 [label="State 431\n\l195 MaybeDefined: \"defined\" • \"{\" Term \"}\"\l"] - 431 -> 452 [style=solid label="\"{\""] - 432 [label="State 432\n\l 31 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined • MaybeInitially\l"] - 432 -> 453 [style=solid label="\"=\""] - 432 -> 454 [style=dashed label="MaybeInitially"] - 432 -> "432R198" [style=solid] - "432R198" [label="R198", fillcolor=3, shape=diamond, style=filled] - 433 [label="State 433\n\l184 TupleType: \"(\" Types \",\" Type \")\" •\l"] - 433 -> "433R184" [style=solid] - "433R184" [label="R184", fillcolor=3, shape=diamond, style=filled] - 434 [label="State 434\n\l185 RecordType: \"(\" TypedVariables \",\" TypedVariable \")\" •\l"] - 434 -> "434R185" [style=solid] - "434R185" [label="R185", fillcolor=3, shape=diamond, style=filled] - 435 [label="State 435\n\l175 Types: Types \",\" Type •\l"] - 435 -> "435R175" [style=solid] - "435R175" [label="R175", fillcolor=3, shape=diamond, style=filled] - 436 [label="State 436\n\l187 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" Type • \">\"\l"] - 436 -> 455 [style=solid label="\">\""] - 437 [label="State 437\n\l 24 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type \"=\" • Term\l"] - 437 -> 41 [style=solid label="\"let\""] - 437 -> 8 [style=solid label="\"in\""] - 437 -> 42 [style=solid label="\"forall\""] - 437 -> 43 [style=solid label="\"choose\""] - 437 -> 44 [style=solid label="\"if\""] - 437 -> 45 [style=solid label="\"exists\""] - 437 -> 46 [style=solid label="\"undef\""] - 437 -> 47 [style=solid label="\"false\""] - 437 -> 48 [style=solid label="\"true\""] - 437 -> 49 [style=solid label="\"not\""] - 437 -> 50 [style=solid label="\"+\""] - 437 -> 51 [style=solid label="\"-\""] - 437 -> 52 [style=solid label="\"(\""] - 437 -> 53 [style=solid label="\"[\""] - 437 -> 54 [style=solid label="\"|\""] - 437 -> 55 [style=solid label="\"@\""] - 437 -> 56 [style=solid label="\"binary\""] - 437 -> 57 [style=solid label="\"hexadecimal\""] - 437 -> 58 [style=solid label="\"integer\""] - 437 -> 59 [style=solid label="\"rational\""] - 437 -> 60 [style=solid label="\"decimal\""] - 437 -> 61 [style=solid label="\"string\""] - 437 -> 9 [style=solid label="\"identifier\""] - 437 -> 456 [style=dashed label="Term"] - 437 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 437 -> 64 [style=dashed label="OperatorExpression"] - 437 -> 65 [style=dashed label="CallExpression"] - 437 -> 66 [style=dashed label="DirectCallExpression"] - 437 -> 67 [style=dashed label="MethodCallExpression"] - 437 -> 68 [style=dashed label="LiteralCallExpression"] - 437 -> 69 [style=dashed label="IndirectCallExpression"] - 437 -> 70 [style=dashed label="TypeCastingExpression"] - 437 -> 71 [style=dashed label="LetExpression"] - 437 -> 72 [style=dashed label="ConditionalExpression"] - 437 -> 73 [style=dashed label="ChooseExpression"] - 437 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 437 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 437 -> 76 [style=dashed label="CardinalityExpression"] - 437 -> 77 [style=dashed label="Literal"] - 437 -> 78 [style=dashed label="UndefinedLiteral"] - 437 -> 79 [style=dashed label="BooleanLiteral"] - 437 -> 80 [style=dashed label="IntegerLiteral"] - 437 -> 81 [style=dashed label="RationalLiteral"] - 437 -> 82 [style=dashed label="DecimalLiteral"] - 437 -> 83 [style=dashed label="BinaryLiteral"] - 437 -> 84 [style=dashed label="StringLiteral"] - 437 -> 85 [style=dashed label="ReferenceLiteral"] - 437 -> 86 [style=dashed label="ListLiteral"] - 437 -> 87 [style=dashed label="RangeLiteral"] - 437 -> 88 [style=dashed label="TupleLiteral"] - 437 -> 89 [style=dashed label="RecordLiteral"] - 437 -> 90 [style=dashed label="Identifier"] - 437 -> 91 [style=dashed label="IdentifierPath"] - 438 [label="State 438\n\l 23 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" • Term\l"] - 438 -> 41 [style=solid label="\"let\""] - 438 -> 8 [style=solid label="\"in\""] - 438 -> 42 [style=solid label="\"forall\""] - 438 -> 43 [style=solid label="\"choose\""] - 438 -> 44 [style=solid label="\"if\""] - 438 -> 45 [style=solid label="\"exists\""] - 438 -> 46 [style=solid label="\"undef\""] - 438 -> 47 [style=solid label="\"false\""] - 438 -> 48 [style=solid label="\"true\""] - 438 -> 49 [style=solid label="\"not\""] - 438 -> 50 [style=solid label="\"+\""] - 438 -> 51 [style=solid label="\"-\""] - 438 -> 52 [style=solid label="\"(\""] - 438 -> 53 [style=solid label="\"[\""] - 438 -> 54 [style=solid label="\"|\""] - 438 -> 55 [style=solid label="\"@\""] - 438 -> 56 [style=solid label="\"binary\""] - 438 -> 57 [style=solid label="\"hexadecimal\""] - 438 -> 58 [style=solid label="\"integer\""] - 438 -> 59 [style=solid label="\"rational\""] - 438 -> 60 [style=solid label="\"decimal\""] - 438 -> 61 [style=solid label="\"string\""] - 438 -> 9 [style=solid label="\"identifier\""] - 438 -> 457 [style=dashed label="Term"] - 438 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 438 -> 64 [style=dashed label="OperatorExpression"] - 438 -> 65 [style=dashed label="CallExpression"] - 438 -> 66 [style=dashed label="DirectCallExpression"] - 438 -> 67 [style=dashed label="MethodCallExpression"] - 438 -> 68 [style=dashed label="LiteralCallExpression"] - 438 -> 69 [style=dashed label="IndirectCallExpression"] - 438 -> 70 [style=dashed label="TypeCastingExpression"] - 438 -> 71 [style=dashed label="LetExpression"] - 438 -> 72 [style=dashed label="ConditionalExpression"] - 438 -> 73 [style=dashed label="ChooseExpression"] - 438 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 438 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 438 -> 76 [style=dashed label="CardinalityExpression"] - 438 -> 77 [style=dashed label="Literal"] - 438 -> 78 [style=dashed label="UndefinedLiteral"] - 438 -> 79 [style=dashed label="BooleanLiteral"] - 438 -> 80 [style=dashed label="IntegerLiteral"] - 438 -> 81 [style=dashed label="RationalLiteral"] - 438 -> 82 [style=dashed label="DecimalLiteral"] - 438 -> 83 [style=dashed label="BinaryLiteral"] - 438 -> 84 [style=dashed label="StringLiteral"] - 438 -> 85 [style=dashed label="ReferenceLiteral"] - 438 -> 86 [style=dashed label="ListLiteral"] - 438 -> 87 [style=dashed label="RangeLiteral"] - 438 -> 88 [style=dashed label="TupleLiteral"] - 438 -> 89 [style=dashed label="RecordLiteral"] - 438 -> 90 [style=dashed label="Identifier"] - 438 -> 91 [style=dashed label="IdentifierPath"] - 439 [label="State 439\n\l227 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" • Type MaybeDefined MaybeInitially\l"] - 439 -> 8 [style=solid label="\"in\""] - 439 -> 211 [style=solid label="\"(\""] - 439 -> 9 [style=solid label="\"identifier\""] - 439 -> 458 [style=dashed label="Type"] - 439 -> 213 [style=dashed label="BasicType"] - 439 -> 214 [style=dashed label="TupleType"] - 439 -> 215 [style=dashed label="RecordType"] - 439 -> 216 [style=dashed label="TemplateType"] - 439 -> 217 [style=dashed label="RelationType"] - 439 -> 218 [style=dashed label="FixedSizedType"] - 439 -> 90 [style=dashed label="Identifier"] - 439 -> 219 [style=dashed label="IdentifierPath"] - 440 [label="State 440\n\l 71 ForallRule: \"forall\" AttributedVariables \"in\" Term \"do\" • Rule\l"] - 440 -> 242 [style=solid label="\"seq\""] - 440 -> 243 [style=solid label="\"par\""] - 440 -> 244 [style=solid label="\"skip\""] - 440 -> 245 [style=solid label="\"let\""] - 440 -> 246 [style=solid label="\"local\""] - 440 -> 8 [style=solid label="\"in\""] - 440 -> 247 [style=solid label="\"forall\""] - 440 -> 248 [style=solid label="\"choose\""] - 440 -> 249 [style=solid label="\"iterate\""] - 440 -> 250 [style=solid label="\"if\""] - 440 -> 251 [style=solid label="\"case\""] - 440 -> 252 [style=solid label="\"while\""] - 440 -> 46 [style=solid label="\"undef\""] - 440 -> 47 [style=solid label="\"false\""] - 440 -> 48 [style=solid label="\"true\""] - 440 -> 50 [style=solid label="\"+\""] - 440 -> 51 [style=solid label="\"-\""] - 440 -> 52 [style=solid label="\"(\""] - 440 -> 53 [style=solid label="\"[\""] - 440 -> 253 [style=solid label="\"{\""] - 440 -> 55 [style=solid label="\"@\""] - 440 -> 254 [style=solid label="\"{|\""] - 440 -> 56 [style=solid label="\"binary\""] - 440 -> 57 [style=solid label="\"hexadecimal\""] - 440 -> 58 [style=solid label="\"integer\""] - 440 -> 59 [style=solid label="\"rational\""] - 440 -> 60 [style=solid label="\"decimal\""] - 440 -> 61 [style=solid label="\"string\""] - 440 -> 9 [style=solid label="\"identifier\""] - 440 -> 459 [style=dashed label="Rule"] - 440 -> 256 [style=dashed label="SkipRule"] - 440 -> 257 [style=dashed label="ConditionalRule"] - 440 -> 258 [style=dashed label="CaseRule"] - 440 -> 259 [style=dashed label="LetRule"] - 440 -> 260 [style=dashed label="LocalRule"] - 440 -> 261 [style=dashed label="ForallRule"] - 440 -> 262 [style=dashed label="ChooseRule"] - 440 -> 263 [style=dashed label="IterateRule"] - 440 -> 264 [style=dashed label="BlockRule"] - 440 -> 265 [style=dashed label="SequenceRule"] - 440 -> 266 [style=dashed label="UpdateRule"] - 440 -> 267 [style=dashed label="CallRule"] - 440 -> 268 [style=dashed label="WhileRule"] - 440 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 440 -> 270 [style=dashed label="CallExpression"] - 440 -> 271 [style=dashed label="DirectCallExpression"] - 440 -> 67 [style=dashed label="MethodCallExpression"] - 440 -> 68 [style=dashed label="LiteralCallExpression"] - 440 -> 69 [style=dashed label="IndirectCallExpression"] - 440 -> 77 [style=dashed label="Literal"] - 440 -> 78 [style=dashed label="UndefinedLiteral"] - 440 -> 79 [style=dashed label="BooleanLiteral"] - 440 -> 80 [style=dashed label="IntegerLiteral"] - 440 -> 81 [style=dashed label="RationalLiteral"] - 440 -> 82 [style=dashed label="DecimalLiteral"] - 440 -> 83 [style=dashed label="BinaryLiteral"] - 440 -> 84 [style=dashed label="StringLiteral"] - 440 -> 85 [style=dashed label="ReferenceLiteral"] - 440 -> 86 [style=dashed label="ListLiteral"] - 440 -> 87 [style=dashed label="RangeLiteral"] - 440 -> 88 [style=dashed label="TupleLiteral"] - 440 -> 89 [style=dashed label="RecordLiteral"] - 440 -> 90 [style=dashed label="Identifier"] - 440 -> 91 [style=dashed label="IdentifierPath"] - 441 [label="State 441\n\l 72 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" • Term \"do\" Rule\l"] - 441 -> 41 [style=solid label="\"let\""] - 441 -> 8 [style=solid label="\"in\""] - 441 -> 42 [style=solid label="\"forall\""] - 441 -> 43 [style=solid label="\"choose\""] - 441 -> 44 [style=solid label="\"if\""] - 441 -> 45 [style=solid label="\"exists\""] - 441 -> 46 [style=solid label="\"undef\""] - 441 -> 47 [style=solid label="\"false\""] - 441 -> 48 [style=solid label="\"true\""] - 441 -> 49 [style=solid label="\"not\""] - 441 -> 50 [style=solid label="\"+\""] - 441 -> 51 [style=solid label="\"-\""] - 441 -> 52 [style=solid label="\"(\""] - 441 -> 53 [style=solid label="\"[\""] - 441 -> 54 [style=solid label="\"|\""] - 441 -> 55 [style=solid label="\"@\""] - 441 -> 56 [style=solid label="\"binary\""] - 441 -> 57 [style=solid label="\"hexadecimal\""] - 441 -> 58 [style=solid label="\"integer\""] - 441 -> 59 [style=solid label="\"rational\""] - 441 -> 60 [style=solid label="\"decimal\""] - 441 -> 61 [style=solid label="\"string\""] - 441 -> 9 [style=solid label="\"identifier\""] - 441 -> 460 [style=dashed label="Term"] - 441 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 441 -> 64 [style=dashed label="OperatorExpression"] - 441 -> 65 [style=dashed label="CallExpression"] - 441 -> 66 [style=dashed label="DirectCallExpression"] - 441 -> 67 [style=dashed label="MethodCallExpression"] - 441 -> 68 [style=dashed label="LiteralCallExpression"] - 441 -> 69 [style=dashed label="IndirectCallExpression"] - 441 -> 70 [style=dashed label="TypeCastingExpression"] - 441 -> 71 [style=dashed label="LetExpression"] - 441 -> 72 [style=dashed label="ConditionalExpression"] - 441 -> 73 [style=dashed label="ChooseExpression"] - 441 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 441 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 441 -> 76 [style=dashed label="CardinalityExpression"] - 441 -> 77 [style=dashed label="Literal"] - 441 -> 78 [style=dashed label="UndefinedLiteral"] - 441 -> 79 [style=dashed label="BooleanLiteral"] - 441 -> 80 [style=dashed label="IntegerLiteral"] - 441 -> 81 [style=dashed label="RationalLiteral"] - 441 -> 82 [style=dashed label="DecimalLiteral"] - 441 -> 83 [style=dashed label="BinaryLiteral"] - 441 -> 84 [style=dashed label="StringLiteral"] - 441 -> 85 [style=dashed label="ReferenceLiteral"] - 441 -> 86 [style=dashed label="ListLiteral"] - 441 -> 87 [style=dashed label="RangeLiteral"] - 441 -> 88 [style=dashed label="TupleLiteral"] - 441 -> 89 [style=dashed label="RecordLiteral"] - 441 -> 90 [style=dashed label="Identifier"] - 441 -> 91 [style=dashed label="IdentifierPath"] - 442 [label="State 442\n\l 73 ChooseRule: \"choose\" AttributedVariables \"in\" Term \"do\" • Rule\l"] - 442 -> 242 [style=solid label="\"seq\""] - 442 -> 243 [style=solid label="\"par\""] - 442 -> 244 [style=solid label="\"skip\""] - 442 -> 245 [style=solid label="\"let\""] - 442 -> 246 [style=solid label="\"local\""] - 442 -> 8 [style=solid label="\"in\""] - 442 -> 247 [style=solid label="\"forall\""] - 442 -> 248 [style=solid label="\"choose\""] - 442 -> 249 [style=solid label="\"iterate\""] - 442 -> 250 [style=solid label="\"if\""] - 442 -> 251 [style=solid label="\"case\""] - 442 -> 252 [style=solid label="\"while\""] - 442 -> 46 [style=solid label="\"undef\""] - 442 -> 47 [style=solid label="\"false\""] - 442 -> 48 [style=solid label="\"true\""] - 442 -> 50 [style=solid label="\"+\""] - 442 -> 51 [style=solid label="\"-\""] - 442 -> 52 [style=solid label="\"(\""] - 442 -> 53 [style=solid label="\"[\""] - 442 -> 253 [style=solid label="\"{\""] - 442 -> 55 [style=solid label="\"@\""] - 442 -> 254 [style=solid label="\"{|\""] - 442 -> 56 [style=solid label="\"binary\""] - 442 -> 57 [style=solid label="\"hexadecimal\""] - 442 -> 58 [style=solid label="\"integer\""] - 442 -> 59 [style=solid label="\"rational\""] - 442 -> 60 [style=solid label="\"decimal\""] - 442 -> 61 [style=solid label="\"string\""] - 442 -> 9 [style=solid label="\"identifier\""] - 442 -> 461 [style=dashed label="Rule"] - 442 -> 256 [style=dashed label="SkipRule"] - 442 -> 257 [style=dashed label="ConditionalRule"] - 442 -> 258 [style=dashed label="CaseRule"] - 442 -> 259 [style=dashed label="LetRule"] - 442 -> 260 [style=dashed label="LocalRule"] - 442 -> 261 [style=dashed label="ForallRule"] - 442 -> 262 [style=dashed label="ChooseRule"] - 442 -> 263 [style=dashed label="IterateRule"] - 442 -> 264 [style=dashed label="BlockRule"] - 442 -> 265 [style=dashed label="SequenceRule"] - 442 -> 266 [style=dashed label="UpdateRule"] - 442 -> 267 [style=dashed label="CallRule"] - 442 -> 268 [style=dashed label="WhileRule"] - 442 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 442 -> 270 [style=dashed label="CallExpression"] - 442 -> 271 [style=dashed label="DirectCallExpression"] - 442 -> 67 [style=dashed label="MethodCallExpression"] - 442 -> 68 [style=dashed label="LiteralCallExpression"] - 442 -> 69 [style=dashed label="IndirectCallExpression"] - 442 -> 77 [style=dashed label="Literal"] - 442 -> 78 [style=dashed label="UndefinedLiteral"] - 442 -> 79 [style=dashed label="BooleanLiteral"] - 442 -> 80 [style=dashed label="IntegerLiteral"] - 442 -> 81 [style=dashed label="RationalLiteral"] - 442 -> 82 [style=dashed label="DecimalLiteral"] - 442 -> 83 [style=dashed label="BinaryLiteral"] - 442 -> 84 [style=dashed label="StringLiteral"] - 442 -> 85 [style=dashed label="ReferenceLiteral"] - 442 -> 86 [style=dashed label="ListLiteral"] - 442 -> 87 [style=dashed label="RangeLiteral"] - 442 -> 88 [style=dashed label="TupleLiteral"] - 442 -> 89 [style=dashed label="RecordLiteral"] - 442 -> 90 [style=dashed label="Identifier"] - 442 -> 91 [style=dashed label="IdentifierPath"] - 443 [label="State 443\n\l 61 ConditionalRule: \"if\" Term \"then\" Rule \"else\" • Rule\l"] - 443 -> 242 [style=solid label="\"seq\""] - 443 -> 243 [style=solid label="\"par\""] - 443 -> 244 [style=solid label="\"skip\""] - 443 -> 245 [style=solid label="\"let\""] - 443 -> 246 [style=solid label="\"local\""] - 443 -> 8 [style=solid label="\"in\""] - 443 -> 247 [style=solid label="\"forall\""] - 443 -> 248 [style=solid label="\"choose\""] - 443 -> 249 [style=solid label="\"iterate\""] - 443 -> 250 [style=solid label="\"if\""] - 443 -> 251 [style=solid label="\"case\""] - 443 -> 252 [style=solid label="\"while\""] - 443 -> 46 [style=solid label="\"undef\""] - 443 -> 47 [style=solid label="\"false\""] - 443 -> 48 [style=solid label="\"true\""] - 443 -> 50 [style=solid label="\"+\""] - 443 -> 51 [style=solid label="\"-\""] - 443 -> 52 [style=solid label="\"(\""] - 443 -> 53 [style=solid label="\"[\""] - 443 -> 253 [style=solid label="\"{\""] - 443 -> 55 [style=solid label="\"@\""] - 443 -> 254 [style=solid label="\"{|\""] - 443 -> 56 [style=solid label="\"binary\""] - 443 -> 57 [style=solid label="\"hexadecimal\""] - 443 -> 58 [style=solid label="\"integer\""] - 443 -> 59 [style=solid label="\"rational\""] - 443 -> 60 [style=solid label="\"decimal\""] - 443 -> 61 [style=solid label="\"string\""] - 443 -> 9 [style=solid label="\"identifier\""] - 443 -> 462 [style=dashed label="Rule"] - 443 -> 256 [style=dashed label="SkipRule"] - 443 -> 257 [style=dashed label="ConditionalRule"] - 443 -> 258 [style=dashed label="CaseRule"] - 443 -> 259 [style=dashed label="LetRule"] - 443 -> 260 [style=dashed label="LocalRule"] - 443 -> 261 [style=dashed label="ForallRule"] - 443 -> 262 [style=dashed label="ChooseRule"] - 443 -> 263 [style=dashed label="IterateRule"] - 443 -> 264 [style=dashed label="BlockRule"] - 443 -> 265 [style=dashed label="SequenceRule"] - 443 -> 266 [style=dashed label="UpdateRule"] - 443 -> 267 [style=dashed label="CallRule"] - 443 -> 268 [style=dashed label="WhileRule"] - 443 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 443 -> 270 [style=dashed label="CallExpression"] - 443 -> 271 [style=dashed label="DirectCallExpression"] - 443 -> 67 [style=dashed label="MethodCallExpression"] - 443 -> 68 [style=dashed label="LiteralCallExpression"] - 443 -> 69 [style=dashed label="IndirectCallExpression"] - 443 -> 77 [style=dashed label="Literal"] - 443 -> 78 [style=dashed label="UndefinedLiteral"] - 443 -> 79 [style=dashed label="BooleanLiteral"] - 443 -> 80 [style=dashed label="IntegerLiteral"] - 443 -> 81 [style=dashed label="RationalLiteral"] - 443 -> 82 [style=dashed label="DecimalLiteral"] - 443 -> 83 [style=dashed label="BinaryLiteral"] - 443 -> 84 [style=dashed label="StringLiteral"] - 443 -> 85 [style=dashed label="ReferenceLiteral"] - 443 -> 86 [style=dashed label="ListLiteral"] - 443 -> 87 [style=dashed label="RangeLiteral"] - 443 -> 88 [style=dashed label="TupleLiteral"] - 443 -> 89 [style=dashed label="RecordLiteral"] - 443 -> 90 [style=dashed label="Identifier"] - 443 -> 91 [style=dashed label="IdentifierPath"] - 444 [label="State 444\n\l 63 CaseRule: \"case\" Term \"of\" \"{\" error • \"}\"\l"] - 444 -> 463 [style=solid label="\"}\""] - 445 [label="State 445\n\l 66 CaseLabel: \"default\" • \":\" Rule\l"] - 445 -> 464 [style=solid label="\":\""] - 446 [label="State 446\n\l 67 CaseLabel: \"_\" • \":\" Rule\l"] - 446 -> 465 [style=solid label="\":\""] - 447 [label="State 447\n\l 62 CaseRule: \"case\" Term \"of\" \"{\" CaseLabels • \"}\"\l 64 CaseLabels: CaseLabels • CaseLabel\l"] - 447 -> 41 [style=solid label="\"let\""] - 447 -> 8 [style=solid label="\"in\""] - 447 -> 42 [style=solid label="\"forall\""] - 447 -> 43 [style=solid label="\"choose\""] - 447 -> 44 [style=solid label="\"if\""] - 447 -> 445 [style=solid label="\"default\""] - 447 -> 45 [style=solid label="\"exists\""] - 447 -> 46 [style=solid label="\"undef\""] - 447 -> 47 [style=solid label="\"false\""] - 447 -> 48 [style=solid label="\"true\""] - 447 -> 49 [style=solid label="\"not\""] - 447 -> 50 [style=solid label="\"+\""] - 447 -> 51 [style=solid label="\"-\""] - 447 -> 52 [style=solid label="\"(\""] - 447 -> 53 [style=solid label="\"[\""] - 447 -> 466 [style=solid label="\"}\""] - 447 -> 446 [style=solid label="\"_\""] - 447 -> 54 [style=solid label="\"|\""] - 447 -> 55 [style=solid label="\"@\""] - 447 -> 56 [style=solid label="\"binary\""] - 447 -> 57 [style=solid label="\"hexadecimal\""] - 447 -> 58 [style=solid label="\"integer\""] - 447 -> 59 [style=solid label="\"rational\""] - 447 -> 60 [style=solid label="\"decimal\""] - 447 -> 61 [style=solid label="\"string\""] - 447 -> 9 [style=solid label="\"identifier\""] - 447 -> 467 [style=dashed label="CaseLabel"] - 447 -> 449 [style=dashed label="Term"] - 447 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 447 -> 64 [style=dashed label="OperatorExpression"] - 447 -> 65 [style=dashed label="CallExpression"] - 447 -> 66 [style=dashed label="DirectCallExpression"] - 447 -> 67 [style=dashed label="MethodCallExpression"] - 447 -> 68 [style=dashed label="LiteralCallExpression"] - 447 -> 69 [style=dashed label="IndirectCallExpression"] - 447 -> 70 [style=dashed label="TypeCastingExpression"] - 447 -> 71 [style=dashed label="LetExpression"] - 447 -> 72 [style=dashed label="ConditionalExpression"] - 447 -> 73 [style=dashed label="ChooseExpression"] - 447 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 447 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 447 -> 76 [style=dashed label="CardinalityExpression"] - 447 -> 77 [style=dashed label="Literal"] - 447 -> 78 [style=dashed label="UndefinedLiteral"] - 447 -> 79 [style=dashed label="BooleanLiteral"] - 447 -> 80 [style=dashed label="IntegerLiteral"] - 447 -> 81 [style=dashed label="RationalLiteral"] - 447 -> 82 [style=dashed label="DecimalLiteral"] - 447 -> 83 [style=dashed label="BinaryLiteral"] - 447 -> 84 [style=dashed label="StringLiteral"] - 447 -> 85 [style=dashed label="ReferenceLiteral"] - 447 -> 86 [style=dashed label="ListLiteral"] - 447 -> 87 [style=dashed label="RangeLiteral"] - 447 -> 88 [style=dashed label="TupleLiteral"] - 447 -> 89 [style=dashed label="RecordLiteral"] - 447 -> 90 [style=dashed label="Identifier"] - 447 -> 91 [style=dashed label="IdentifierPath"] - 448 [label="State 448\n\l 65 CaseLabels: CaseLabel •\l"] - 448 -> "448R65" [style=solid] - "448R65" [label="R65", fillcolor=3, shape=diamond, style=filled] - 449 [label="State 449\n\l 68 CaseLabel: Term • \":\" Rule\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 449 -> 134 [style=solid label="\"and\""] - 449 -> 135 [style=solid label="\"or\""] - 449 -> 136 [style=solid label="\"xor\""] - 449 -> 137 [style=solid label="\"implies\""] - 449 -> 138 [style=solid label="\"+\""] - 449 -> 139 [style=solid label="\"-\""] - 449 -> 140 [style=solid label="\"=\""] - 449 -> 468 [style=solid label="\":\""] - 449 -> 141 [style=solid label="\"<\""] - 449 -> 142 [style=solid label="\">\""] - 449 -> 143 [style=solid label="\"*\""] - 449 -> 144 [style=solid label="\"/\""] - 449 -> 145 [style=solid label="\"%\""] - 449 -> 146 [style=solid label="\"^\""] - 449 -> 147 [style=solid label="\"=>\""] - 449 -> 148 [style=solid label="\"!=\""] - 449 -> 149 [style=solid label="\"<=\""] - 449 -> 150 [style=solid label="\">=\""] - 450 [label="State 450\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type \"=\" • Rule\l"] - 450 -> 242 [style=solid label="\"seq\""] - 450 -> 243 [style=solid label="\"par\""] - 450 -> 244 [style=solid label="\"skip\""] - 450 -> 245 [style=solid label="\"let\""] - 450 -> 246 [style=solid label="\"local\""] - 450 -> 8 [style=solid label="\"in\""] - 450 -> 247 [style=solid label="\"forall\""] - 450 -> 248 [style=solid label="\"choose\""] - 450 -> 249 [style=solid label="\"iterate\""] - 450 -> 250 [style=solid label="\"if\""] - 450 -> 251 [style=solid label="\"case\""] - 450 -> 252 [style=solid label="\"while\""] - 450 -> 46 [style=solid label="\"undef\""] - 450 -> 47 [style=solid label="\"false\""] - 450 -> 48 [style=solid label="\"true\""] - 450 -> 50 [style=solid label="\"+\""] - 450 -> 51 [style=solid label="\"-\""] - 450 -> 52 [style=solid label="\"(\""] - 450 -> 53 [style=solid label="\"[\""] - 450 -> 253 [style=solid label="\"{\""] - 450 -> 55 [style=solid label="\"@\""] - 450 -> 254 [style=solid label="\"{|\""] - 450 -> 56 [style=solid label="\"binary\""] - 450 -> 57 [style=solid label="\"hexadecimal\""] - 450 -> 58 [style=solid label="\"integer\""] - 450 -> 59 [style=solid label="\"rational\""] - 450 -> 60 [style=solid label="\"decimal\""] - 450 -> 61 [style=solid label="\"string\""] - 450 -> 9 [style=solid label="\"identifier\""] - 450 -> 469 [style=dashed label="Rule"] - 450 -> 256 [style=dashed label="SkipRule"] - 450 -> 257 [style=dashed label="ConditionalRule"] - 450 -> 258 [style=dashed label="CaseRule"] - 450 -> 259 [style=dashed label="LetRule"] - 450 -> 260 [style=dashed label="LocalRule"] - 450 -> 261 [style=dashed label="ForallRule"] - 450 -> 262 [style=dashed label="ChooseRule"] - 450 -> 263 [style=dashed label="IterateRule"] - 450 -> 264 [style=dashed label="BlockRule"] - 450 -> 265 [style=dashed label="SequenceRule"] - 450 -> 266 [style=dashed label="UpdateRule"] - 450 -> 267 [style=dashed label="CallRule"] - 450 -> 268 [style=dashed label="WhileRule"] - 450 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 450 -> 270 [style=dashed label="CallExpression"] - 450 -> 271 [style=dashed label="DirectCallExpression"] - 450 -> 67 [style=dashed label="MethodCallExpression"] - 450 -> 68 [style=dashed label="LiteralCallExpression"] - 450 -> 69 [style=dashed label="IndirectCallExpression"] - 450 -> 77 [style=dashed label="Literal"] - 450 -> 78 [style=dashed label="UndefinedLiteral"] - 450 -> 79 [style=dashed label="BooleanLiteral"] - 450 -> 80 [style=dashed label="IntegerLiteral"] - 450 -> 81 [style=dashed label="RationalLiteral"] - 450 -> 82 [style=dashed label="DecimalLiteral"] - 450 -> 83 [style=dashed label="BinaryLiteral"] - 450 -> 84 [style=dashed label="StringLiteral"] - 450 -> 85 [style=dashed label="ReferenceLiteral"] - 450 -> 86 [style=dashed label="ListLiteral"] - 450 -> 87 [style=dashed label="RangeLiteral"] - 450 -> 88 [style=dashed label="TupleLiteral"] - 450 -> 89 [style=dashed label="RecordLiteral"] - 450 -> 90 [style=dashed label="Identifier"] - 450 -> 91 [style=dashed label="IdentifierPath"] - 451 [label="State 451\n\l 28 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" • Rule\l"] - 451 -> 242 [style=solid label="\"seq\""] - 451 -> 243 [style=solid label="\"par\""] - 451 -> 244 [style=solid label="\"skip\""] - 451 -> 245 [style=solid label="\"let\""] - 451 -> 246 [style=solid label="\"local\""] - 451 -> 8 [style=solid label="\"in\""] - 451 -> 247 [style=solid label="\"forall\""] - 451 -> 248 [style=solid label="\"choose\""] - 451 -> 249 [style=solid label="\"iterate\""] - 451 -> 250 [style=solid label="\"if\""] - 451 -> 251 [style=solid label="\"case\""] - 451 -> 252 [style=solid label="\"while\""] - 451 -> 46 [style=solid label="\"undef\""] - 451 -> 47 [style=solid label="\"false\""] - 451 -> 48 [style=solid label="\"true\""] - 451 -> 50 [style=solid label="\"+\""] - 451 -> 51 [style=solid label="\"-\""] - 451 -> 52 [style=solid label="\"(\""] - 451 -> 53 [style=solid label="\"[\""] - 451 -> 253 [style=solid label="\"{\""] - 451 -> 55 [style=solid label="\"@\""] - 451 -> 254 [style=solid label="\"{|\""] - 451 -> 56 [style=solid label="\"binary\""] - 451 -> 57 [style=solid label="\"hexadecimal\""] - 451 -> 58 [style=solid label="\"integer\""] - 451 -> 59 [style=solid label="\"rational\""] - 451 -> 60 [style=solid label="\"decimal\""] - 451 -> 61 [style=solid label="\"string\""] - 451 -> 9 [style=solid label="\"identifier\""] - 451 -> 470 [style=dashed label="Rule"] - 451 -> 256 [style=dashed label="SkipRule"] - 451 -> 257 [style=dashed label="ConditionalRule"] - 451 -> 258 [style=dashed label="CaseRule"] - 451 -> 259 [style=dashed label="LetRule"] - 451 -> 260 [style=dashed label="LocalRule"] - 451 -> 261 [style=dashed label="ForallRule"] - 451 -> 262 [style=dashed label="ChooseRule"] - 451 -> 263 [style=dashed label="IterateRule"] - 451 -> 264 [style=dashed label="BlockRule"] - 451 -> 265 [style=dashed label="SequenceRule"] - 451 -> 266 [style=dashed label="UpdateRule"] - 451 -> 267 [style=dashed label="CallRule"] - 451 -> 268 [style=dashed label="WhileRule"] - 451 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 451 -> 270 [style=dashed label="CallExpression"] - 451 -> 271 [style=dashed label="DirectCallExpression"] - 451 -> 67 [style=dashed label="MethodCallExpression"] - 451 -> 68 [style=dashed label="LiteralCallExpression"] - 451 -> 69 [style=dashed label="IndirectCallExpression"] - 451 -> 77 [style=dashed label="Literal"] - 451 -> 78 [style=dashed label="UndefinedLiteral"] - 451 -> 79 [style=dashed label="BooleanLiteral"] - 451 -> 80 [style=dashed label="IntegerLiteral"] - 451 -> 81 [style=dashed label="RationalLiteral"] - 451 -> 82 [style=dashed label="DecimalLiteral"] - 451 -> 83 [style=dashed label="BinaryLiteral"] - 451 -> 84 [style=dashed label="StringLiteral"] - 451 -> 85 [style=dashed label="ReferenceLiteral"] - 451 -> 86 [style=dashed label="ListLiteral"] - 451 -> 87 [style=dashed label="RangeLiteral"] - 451 -> 88 [style=dashed label="TupleLiteral"] - 451 -> 89 [style=dashed label="RecordLiteral"] - 451 -> 90 [style=dashed label="Identifier"] - 451 -> 91 [style=dashed label="IdentifierPath"] - 452 [label="State 452\n\l195 MaybeDefined: \"defined\" \"{\" • Term \"}\"\l"] - 452 -> 41 [style=solid label="\"let\""] - 452 -> 8 [style=solid label="\"in\""] - 452 -> 42 [style=solid label="\"forall\""] - 452 -> 43 [style=solid label="\"choose\""] - 452 -> 44 [style=solid label="\"if\""] - 452 -> 45 [style=solid label="\"exists\""] - 452 -> 46 [style=solid label="\"undef\""] - 452 -> 47 [style=solid label="\"false\""] - 452 -> 48 [style=solid label="\"true\""] - 452 -> 49 [style=solid label="\"not\""] - 452 -> 50 [style=solid label="\"+\""] - 452 -> 51 [style=solid label="\"-\""] - 452 -> 52 [style=solid label="\"(\""] - 452 -> 53 [style=solid label="\"[\""] - 452 -> 54 [style=solid label="\"|\""] - 452 -> 55 [style=solid label="\"@\""] - 452 -> 56 [style=solid label="\"binary\""] - 452 -> 57 [style=solid label="\"hexadecimal\""] - 452 -> 58 [style=solid label="\"integer\""] - 452 -> 59 [style=solid label="\"rational\""] - 452 -> 60 [style=solid label="\"decimal\""] - 452 -> 61 [style=solid label="\"string\""] - 452 -> 9 [style=solid label="\"identifier\""] - 452 -> 471 [style=dashed label="Term"] - 452 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 452 -> 64 [style=dashed label="OperatorExpression"] - 452 -> 65 [style=dashed label="CallExpression"] - 452 -> 66 [style=dashed label="DirectCallExpression"] - 452 -> 67 [style=dashed label="MethodCallExpression"] - 452 -> 68 [style=dashed label="LiteralCallExpression"] - 452 -> 69 [style=dashed label="IndirectCallExpression"] - 452 -> 70 [style=dashed label="TypeCastingExpression"] - 452 -> 71 [style=dashed label="LetExpression"] - 452 -> 72 [style=dashed label="ConditionalExpression"] - 452 -> 73 [style=dashed label="ChooseExpression"] - 452 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 452 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 452 -> 76 [style=dashed label="CardinalityExpression"] - 452 -> 77 [style=dashed label="Literal"] - 452 -> 78 [style=dashed label="UndefinedLiteral"] - 452 -> 79 [style=dashed label="BooleanLiteral"] - 452 -> 80 [style=dashed label="IntegerLiteral"] - 452 -> 81 [style=dashed label="RationalLiteral"] - 452 -> 82 [style=dashed label="DecimalLiteral"] - 452 -> 83 [style=dashed label="BinaryLiteral"] - 452 -> 84 [style=dashed label="StringLiteral"] - 452 -> 85 [style=dashed label="ReferenceLiteral"] - 452 -> 86 [style=dashed label="ListLiteral"] - 452 -> 87 [style=dashed label="RangeLiteral"] - 452 -> 88 [style=dashed label="TupleLiteral"] - 452 -> 89 [style=dashed label="RecordLiteral"] - 452 -> 90 [style=dashed label="Identifier"] - 452 -> 91 [style=dashed label="IdentifierPath"] - 453 [label="State 453\n\l197 MaybeInitially: \"=\" • \"{\" Initializers \"}\"\l"] - 453 -> 472 [style=solid label="\"{\""] - 454 [label="State 454\n\l 31 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially •\l"] - 454 -> "454R31" [style=solid] - "454R31" [label="R31", fillcolor=3, shape=diamond, style=filled] - 455 [label="State 455\n\l187 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" Type \">\" •\l"] - 455 -> "455R187" [style=solid] - "455R187" [label="R187", fillcolor=3, shape=diamond, style=filled] - 456 [label="State 456\n\l 24 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type \"=\" Term •\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 456 -> 134 [style=solid label="\"and\""] - 456 -> 135 [style=solid label="\"or\""] - 456 -> 136 [style=solid label="\"xor\""] - 456 -> 137 [style=solid label="\"implies\""] - 456 -> 138 [style=solid label="\"+\""] - 456 -> 139 [style=solid label="\"-\""] - 456 -> 140 [style=solid label="\"=\""] - 456 -> 141 [style=solid label="\"<\""] - 456 -> 142 [style=solid label="\">\""] - 456 -> 143 [style=solid label="\"*\""] - 456 -> 144 [style=solid label="\"/\""] - 456 -> 145 [style=solid label="\"%\""] - 456 -> 146 [style=solid label="\"^\""] - 456 -> 147 [style=solid label="\"=>\""] - 456 -> 148 [style=solid label="\"!=\""] - 456 -> 149 [style=solid label="\"<=\""] - 456 -> 150 [style=solid label="\">=\""] - 456 -> "456R24" [style=solid] - "456R24" [label="R24", fillcolor=3, shape=diamond, style=filled] - 457 [label="State 457\n\l 23 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Term •\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 457 -> 134 [style=solid label="\"and\""] - 457 -> 135 [style=solid label="\"or\""] - 457 -> 136 [style=solid label="\"xor\""] - 457 -> 137 [style=solid label="\"implies\""] - 457 -> 138 [style=solid label="\"+\""] - 457 -> 139 [style=solid label="\"-\""] - 457 -> 140 [style=solid label="\"=\""] - 457 -> 141 [style=solid label="\"<\""] - 457 -> 142 [style=solid label="\">\""] - 457 -> 143 [style=solid label="\"*\""] - 457 -> 144 [style=solid label="\"/\""] - 457 -> 145 [style=solid label="\"%\""] - 457 -> 146 [style=solid label="\"^\""] - 457 -> 147 [style=solid label="\"=>\""] - 457 -> 148 [style=solid label="\"!=\""] - 457 -> 149 [style=solid label="\"<=\""] - 457 -> 150 [style=solid label="\">=\""] - 457 -> "457R23" [style=solid] - "457R23" [label="R23", fillcolor=3, shape=diamond, style=filled] - 458 [label="State 458\n\l227 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type • MaybeDefined MaybeInitially\l"] - 458 -> 431 [style=solid label="\"defined\""] - 458 -> 473 [style=dashed label="MaybeDefined"] - 458 -> "458R196" [style=solid] - "458R196" [label="R196", fillcolor=3, shape=diamond, style=filled] - 459 [label="State 459\n\l 71 ForallRule: \"forall\" AttributedVariables \"in\" Term \"do\" Rule •\l"] - 459 -> "459R71" [style=solid] - "459R71" [label="R71", fillcolor=3, shape=diamond, style=filled] - 460 [label="State 460\n\l 72 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term • \"do\" Rule\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l"] - 460 -> 474 [style=solid label="\"do\""] - 460 -> 134 [style=solid label="\"and\""] - 460 -> 135 [style=solid label="\"or\""] - 460 -> 136 [style=solid label="\"xor\""] - 460 -> 137 [style=solid label="\"implies\""] - 460 -> 138 [style=solid label="\"+\""] - 460 -> 139 [style=solid label="\"-\""] - 460 -> 140 [style=solid label="\"=\""] - 460 -> 141 [style=solid label="\"<\""] - 460 -> 142 [style=solid label="\">\""] - 460 -> 143 [style=solid label="\"*\""] - 460 -> 144 [style=solid label="\"/\""] - 460 -> 145 [style=solid label="\"%\""] - 460 -> 146 [style=solid label="\"^\""] - 460 -> 147 [style=solid label="\"=>\""] - 460 -> 148 [style=solid label="\"!=\""] - 460 -> 149 [style=solid label="\"<=\""] - 460 -> 150 [style=solid label="\">=\""] - 461 [label="State 461\n\l 73 ChooseRule: \"choose\" AttributedVariables \"in\" Term \"do\" Rule •\l"] - 461 -> "461R73" [style=solid] - "461R73" [label="R73", fillcolor=3, shape=diamond, style=filled] - 462 [label="State 462\n\l 61 ConditionalRule: \"if\" Term \"then\" Rule \"else\" Rule •\l"] - 462 -> "462R61" [style=solid] - "462R61" [label="R61", fillcolor=3, shape=diamond, style=filled] - 463 [label="State 463\n\l 63 CaseRule: \"case\" Term \"of\" \"{\" error \"}\" •\l"] - 463 -> "463R63" [style=solid] - "463R63" [label="R63", fillcolor=3, shape=diamond, style=filled] - 464 [label="State 464\n\l 66 CaseLabel: \"default\" \":\" • Rule\l"] - 464 -> 242 [style=solid label="\"seq\""] - 464 -> 243 [style=solid label="\"par\""] - 464 -> 244 [style=solid label="\"skip\""] - 464 -> 245 [style=solid label="\"let\""] - 464 -> 246 [style=solid label="\"local\""] - 464 -> 8 [style=solid label="\"in\""] - 464 -> 247 [style=solid label="\"forall\""] - 464 -> 248 [style=solid label="\"choose\""] - 464 -> 249 [style=solid label="\"iterate\""] - 464 -> 250 [style=solid label="\"if\""] - 464 -> 251 [style=solid label="\"case\""] - 464 -> 252 [style=solid label="\"while\""] - 464 -> 46 [style=solid label="\"undef\""] - 464 -> 47 [style=solid label="\"false\""] - 464 -> 48 [style=solid label="\"true\""] - 464 -> 50 [style=solid label="\"+\""] - 464 -> 51 [style=solid label="\"-\""] - 464 -> 52 [style=solid label="\"(\""] - 464 -> 53 [style=solid label="\"[\""] - 464 -> 253 [style=solid label="\"{\""] - 464 -> 55 [style=solid label="\"@\""] - 464 -> 254 [style=solid label="\"{|\""] - 464 -> 56 [style=solid label="\"binary\""] - 464 -> 57 [style=solid label="\"hexadecimal\""] - 464 -> 58 [style=solid label="\"integer\""] - 464 -> 59 [style=solid label="\"rational\""] - 464 -> 60 [style=solid label="\"decimal\""] - 464 -> 61 [style=solid label="\"string\""] - 464 -> 9 [style=solid label="\"identifier\""] - 464 -> 475 [style=dashed label="Rule"] - 464 -> 256 [style=dashed label="SkipRule"] - 464 -> 257 [style=dashed label="ConditionalRule"] - 464 -> 258 [style=dashed label="CaseRule"] - 464 -> 259 [style=dashed label="LetRule"] - 464 -> 260 [style=dashed label="LocalRule"] - 464 -> 261 [style=dashed label="ForallRule"] - 464 -> 262 [style=dashed label="ChooseRule"] - 464 -> 263 [style=dashed label="IterateRule"] - 464 -> 264 [style=dashed label="BlockRule"] - 464 -> 265 [style=dashed label="SequenceRule"] - 464 -> 266 [style=dashed label="UpdateRule"] - 464 -> 267 [style=dashed label="CallRule"] - 464 -> 268 [style=dashed label="WhileRule"] - 464 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 464 -> 270 [style=dashed label="CallExpression"] - 464 -> 271 [style=dashed label="DirectCallExpression"] - 464 -> 67 [style=dashed label="MethodCallExpression"] - 464 -> 68 [style=dashed label="LiteralCallExpression"] - 464 -> 69 [style=dashed label="IndirectCallExpression"] - 464 -> 77 [style=dashed label="Literal"] - 464 -> 78 [style=dashed label="UndefinedLiteral"] - 464 -> 79 [style=dashed label="BooleanLiteral"] - 464 -> 80 [style=dashed label="IntegerLiteral"] - 464 -> 81 [style=dashed label="RationalLiteral"] - 464 -> 82 [style=dashed label="DecimalLiteral"] - 464 -> 83 [style=dashed label="BinaryLiteral"] - 464 -> 84 [style=dashed label="StringLiteral"] - 464 -> 85 [style=dashed label="ReferenceLiteral"] - 464 -> 86 [style=dashed label="ListLiteral"] - 464 -> 87 [style=dashed label="RangeLiteral"] - 464 -> 88 [style=dashed label="TupleLiteral"] - 464 -> 89 [style=dashed label="RecordLiteral"] - 464 -> 90 [style=dashed label="Identifier"] - 464 -> 91 [style=dashed label="IdentifierPath"] - 465 [label="State 465\n\l 67 CaseLabel: \"_\" \":\" • Rule\l"] - 465 -> 242 [style=solid label="\"seq\""] - 465 -> 243 [style=solid label="\"par\""] - 465 -> 244 [style=solid label="\"skip\""] - 465 -> 245 [style=solid label="\"let\""] - 465 -> 246 [style=solid label="\"local\""] - 465 -> 8 [style=solid label="\"in\""] - 465 -> 247 [style=solid label="\"forall\""] - 465 -> 248 [style=solid label="\"choose\""] - 465 -> 249 [style=solid label="\"iterate\""] - 465 -> 250 [style=solid label="\"if\""] - 465 -> 251 [style=solid label="\"case\""] - 465 -> 252 [style=solid label="\"while\""] - 465 -> 46 [style=solid label="\"undef\""] - 465 -> 47 [style=solid label="\"false\""] - 465 -> 48 [style=solid label="\"true\""] - 465 -> 50 [style=solid label="\"+\""] - 465 -> 51 [style=solid label="\"-\""] - 465 -> 52 [style=solid label="\"(\""] - 465 -> 53 [style=solid label="\"[\""] - 465 -> 253 [style=solid label="\"{\""] - 465 -> 55 [style=solid label="\"@\""] - 465 -> 254 [style=solid label="\"{|\""] - 465 -> 56 [style=solid label="\"binary\""] - 465 -> 57 [style=solid label="\"hexadecimal\""] - 465 -> 58 [style=solid label="\"integer\""] - 465 -> 59 [style=solid label="\"rational\""] - 465 -> 60 [style=solid label="\"decimal\""] - 465 -> 61 [style=solid label="\"string\""] - 465 -> 9 [style=solid label="\"identifier\""] - 465 -> 476 [style=dashed label="Rule"] - 465 -> 256 [style=dashed label="SkipRule"] - 465 -> 257 [style=dashed label="ConditionalRule"] - 465 -> 258 [style=dashed label="CaseRule"] - 465 -> 259 [style=dashed label="LetRule"] - 465 -> 260 [style=dashed label="LocalRule"] - 465 -> 261 [style=dashed label="ForallRule"] - 465 -> 262 [style=dashed label="ChooseRule"] - 465 -> 263 [style=dashed label="IterateRule"] - 465 -> 264 [style=dashed label="BlockRule"] - 465 -> 265 [style=dashed label="SequenceRule"] - 465 -> 266 [style=dashed label="UpdateRule"] - 465 -> 267 [style=dashed label="CallRule"] - 465 -> 268 [style=dashed label="WhileRule"] - 465 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 465 -> 270 [style=dashed label="CallExpression"] - 465 -> 271 [style=dashed label="DirectCallExpression"] - 465 -> 67 [style=dashed label="MethodCallExpression"] - 465 -> 68 [style=dashed label="LiteralCallExpression"] - 465 -> 69 [style=dashed label="IndirectCallExpression"] - 465 -> 77 [style=dashed label="Literal"] - 465 -> 78 [style=dashed label="UndefinedLiteral"] - 465 -> 79 [style=dashed label="BooleanLiteral"] - 465 -> 80 [style=dashed label="IntegerLiteral"] - 465 -> 81 [style=dashed label="RationalLiteral"] - 465 -> 82 [style=dashed label="DecimalLiteral"] - 465 -> 83 [style=dashed label="BinaryLiteral"] - 465 -> 84 [style=dashed label="StringLiteral"] - 465 -> 85 [style=dashed label="ReferenceLiteral"] - 465 -> 86 [style=dashed label="ListLiteral"] - 465 -> 87 [style=dashed label="RangeLiteral"] - 465 -> 88 [style=dashed label="TupleLiteral"] - 465 -> 89 [style=dashed label="RecordLiteral"] - 465 -> 90 [style=dashed label="Identifier"] - 465 -> 91 [style=dashed label="IdentifierPath"] - 466 [label="State 466\n\l 62 CaseRule: \"case\" Term \"of\" \"{\" CaseLabels \"}\" •\l"] - 466 -> "466R62" [style=solid] - "466R62" [label="R62", fillcolor=3, shape=diamond, style=filled] - 467 [label="State 467\n\l 64 CaseLabels: CaseLabels CaseLabel •\l"] - 467 -> "467R64" [style=solid] - "467R64" [label="R64", fillcolor=3, shape=diamond, style=filled] - 468 [label="State 468\n\l 68 CaseLabel: Term \":\" • Rule\l"] - 468 -> 242 [style=solid label="\"seq\""] - 468 -> 243 [style=solid label="\"par\""] - 468 -> 244 [style=solid label="\"skip\""] - 468 -> 245 [style=solid label="\"let\""] - 468 -> 246 [style=solid label="\"local\""] + 425 -> 463 [style=dashed label="Rule"] + 425 -> 273 [style=dashed label="SkipRule"] + 425 -> 274 [style=dashed label="ConditionalRule"] + 425 -> 275 [style=dashed label="CaseRule"] + 425 -> 276 [style=dashed label="LetRule"] + 425 -> 277 [style=dashed label="LocalRule"] + 425 -> 278 [style=dashed label="ForallRule"] + 425 -> 279 [style=dashed label="ChooseRule"] + 425 -> 280 [style=dashed label="IterateRule"] + 425 -> 281 [style=dashed label="BlockRule"] + 425 -> 282 [style=dashed label="SequenceRule"] + 425 -> 283 [style=dashed label="UpdateRule"] + 425 -> 284 [style=dashed label="CallRule"] + 425 -> 285 [style=dashed label="WhileRule"] + 425 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 425 -> 287 [style=dashed label="CallExpression"] + 425 -> 288 [style=dashed label="DirectCallExpression"] + 425 -> 71 [style=dashed label="MethodCallExpression"] + 425 -> 72 [style=dashed label="LiteralCallExpression"] + 425 -> 73 [style=dashed label="IndirectCallExpression"] + 425 -> 81 [style=dashed label="Literal"] + 425 -> 82 [style=dashed label="UndefinedLiteral"] + 425 -> 83 [style=dashed label="BooleanLiteral"] + 425 -> 84 [style=dashed label="IntegerLiteral"] + 425 -> 85 [style=dashed label="RationalLiteral"] + 425 -> 86 [style=dashed label="DecimalLiteral"] + 425 -> 87 [style=dashed label="BinaryLiteral"] + 425 -> 88 [style=dashed label="StringLiteral"] + 425 -> 89 [style=dashed label="ReferenceLiteral"] + 425 -> 90 [style=dashed label="ListLiteral"] + 425 -> 91 [style=dashed label="RangeLiteral"] + 425 -> 92 [style=dashed label="TupleLiteral"] + 425 -> 93 [style=dashed label="RecordLiteral"] + 425 -> 94 [style=dashed label="Identifier"] + 425 -> 95 [style=dashed label="IdentifierPath"] + 426 [label="State 426\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" • Type \"=\" Rule\l"] + 426 -> 8 [style=solid label="\"in\""] + 426 -> 109 [style=solid label="\"(\""] + 426 -> 9 [style=solid label="\"identifier\""] + 426 -> 464 [style=dashed label="Type"] + 426 -> 111 [style=dashed label="BasicType"] + 426 -> 112 [style=dashed label="TupleType"] + 426 -> 113 [style=dashed label="RecordType"] + 426 -> 114 [style=dashed label="TemplateType"] + 426 -> 115 [style=dashed label="RelationType"] + 426 -> 116 [style=dashed label="FixedSizedType"] + 426 -> 94 [style=dashed label="Identifier"] + 426 -> 190 [style=dashed label="IdentifierPath"] + 427 [label="State 427\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"=\" • Rule\l"] + 427 -> 259 [style=solid label="\"seq\""] + 427 -> 260 [style=solid label="\"par\""] + 427 -> 261 [style=solid label="\"skip\""] + 427 -> 262 [style=solid label="\"let\""] + 427 -> 263 [style=solid label="\"local\""] + 427 -> 8 [style=solid label="\"in\""] + 427 -> 264 [style=solid label="\"forall\""] + 427 -> 265 [style=solid label="\"choose\""] + 427 -> 266 [style=solid label="\"iterate\""] + 427 -> 267 [style=solid label="\"if\""] + 427 -> 268 [style=solid label="\"case\""] + 427 -> 269 [style=solid label="\"while\""] + 427 -> 50 [style=solid label="\"undef\""] + 427 -> 51 [style=solid label="\"false\""] + 427 -> 52 [style=solid label="\"true\""] + 427 -> 54 [style=solid label="\"+\""] + 427 -> 55 [style=solid label="\"-\""] + 427 -> 56 [style=solid label="\"(\""] + 427 -> 57 [style=solid label="\"[\""] + 427 -> 270 [style=solid label="\"{\""] + 427 -> 59 [style=solid label="\"@\""] + 427 -> 271 [style=solid label="\"{|\""] + 427 -> 60 [style=solid label="\"binary\""] + 427 -> 61 [style=solid label="\"hexadecimal\""] + 427 -> 62 [style=solid label="\"integer\""] + 427 -> 63 [style=solid label="\"rational\""] + 427 -> 64 [style=solid label="\"decimal\""] + 427 -> 65 [style=solid label="\"string\""] + 427 -> 9 [style=solid label="\"identifier\""] + 427 -> 465 [style=dashed label="Rule"] + 427 -> 273 [style=dashed label="SkipRule"] + 427 -> 274 [style=dashed label="ConditionalRule"] + 427 -> 275 [style=dashed label="CaseRule"] + 427 -> 276 [style=dashed label="LetRule"] + 427 -> 277 [style=dashed label="LocalRule"] + 427 -> 278 [style=dashed label="ForallRule"] + 427 -> 279 [style=dashed label="ChooseRule"] + 427 -> 280 [style=dashed label="IterateRule"] + 427 -> 281 [style=dashed label="BlockRule"] + 427 -> 282 [style=dashed label="SequenceRule"] + 427 -> 283 [style=dashed label="UpdateRule"] + 427 -> 284 [style=dashed label="CallRule"] + 427 -> 285 [style=dashed label="WhileRule"] + 427 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 427 -> 287 [style=dashed label="CallExpression"] + 427 -> 288 [style=dashed label="DirectCallExpression"] + 427 -> 71 [style=dashed label="MethodCallExpression"] + 427 -> 72 [style=dashed label="LiteralCallExpression"] + 427 -> 73 [style=dashed label="IndirectCallExpression"] + 427 -> 81 [style=dashed label="Literal"] + 427 -> 82 [style=dashed label="UndefinedLiteral"] + 427 -> 83 [style=dashed label="BooleanLiteral"] + 427 -> 84 [style=dashed label="IntegerLiteral"] + 427 -> 85 [style=dashed label="RationalLiteral"] + 427 -> 86 [style=dashed label="DecimalLiteral"] + 427 -> 87 [style=dashed label="BinaryLiteral"] + 427 -> 88 [style=dashed label="StringLiteral"] + 427 -> 89 [style=dashed label="ReferenceLiteral"] + 427 -> 90 [style=dashed label="ListLiteral"] + 427 -> 91 [style=dashed label="RangeLiteral"] + 427 -> 92 [style=dashed label="TupleLiteral"] + 427 -> 93 [style=dashed label="RecordLiteral"] + 427 -> 94 [style=dashed label="Identifier"] + 427 -> 95 [style=dashed label="IdentifierPath"] + 428 [label="State 428\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" • Type \"=\" Rule\l"] + 428 -> 8 [style=solid label="\"in\""] + 428 -> 109 [style=solid label="\"(\""] + 428 -> 9 [style=solid label="\"identifier\""] + 428 -> 466 [style=dashed label="Type"] + 428 -> 111 [style=dashed label="BasicType"] + 428 -> 112 [style=dashed label="TupleType"] + 428 -> 113 [style=dashed label="RecordType"] + 428 -> 114 [style=dashed label="TemplateType"] + 428 -> 115 [style=dashed label="RelationType"] + 428 -> 116 [style=dashed label="FixedSizedType"] + 428 -> 94 [style=dashed label="Identifier"] + 428 -> 190 [style=dashed label="IdentifierPath"] + 429 [label="State 429\n\l 28 RuleDefinition: \"rule\" Identifier \"->\" Type \"=\" Rule •\l"] + 429 -> "429R28" [style=solid] + "429R28" [label="R28", fillcolor=3, shape=diamond, style=filled] + 430 [label="State 430\n\l 45 StructureDefinition: \"structure\" Identifier \"=\" \"{\" FunctionDefinition \"}\" •\l"] + 430 -> "430R45" [style=solid] + "430R45" [label="R45", fillcolor=3, shape=diamond, style=filled] + 431 [label="State 431\n\l 24 DerivedDefinition: \"derived\" Identifier • \"->\" Type \"=\" Term\l 25 | \"derived\" Identifier • \"(\" Parameters \")\" \"->\" Type \"=\" Term\l 26 | \"derived\" Identifier • \"(\" error \")\" \"->\" Type \"=\" Term\l 58 DeclarationDefinition: \"derived\" Identifier • \":\" MaybeFunctionParameters \"->\" Type\l"] + 431 -> 175 [style=solid label="\"(\""] + 431 -> 467 [style=solid label="\":\""] + 431 -> 176 [style=solid label="\"->\""] + 432 [label="State 432\n\l 27 RuleDefinition: \"rule\" Identifier • \"=\" Rule\l 28 | \"rule\" Identifier • \"->\" Type \"=\" Rule\l 29 | \"rule\" Identifier • \"(\" Parameters \")\" \"=\" Rule\l 30 | \"rule\" Identifier • \"(\" Parameters \")\" \"->\" Type \"=\" Rule\l 31 | \"rule\" Identifier • \"(\" error \")\" \"=\" Rule\l 32 | \"rule\" Identifier • \"(\" error \")\" \"->\" Type \"=\" Rule\l 59 DeclarationDefinition: \"rule\" Identifier • \":\" MaybeFunctionParameters \"->\" Type\l"] + 432 -> 178 [style=solid label="\"=\""] + 432 -> 179 [style=solid label="\"(\""] + 432 -> 468 [style=solid label="\":\""] + 432 -> 180 [style=solid label="\"->\""] + 433 [label="State 433\n\l 46 FeatureDefinition: \"feature\" Identifier \"=\" \"{\" FeatureDeclarationsAndDefinitions \"}\" •\l"] + 433 -> "433R46" [style=solid] + "433R46" [label="R46", fillcolor=3, shape=diamond, style=filled] + 434 [label="State 434\n\l 50 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition •\l"] + 434 -> "434R50" [style=solid] + "434R50" [label="R50", fillcolor=3, shape=diamond, style=filled] + 435 [label="State 435\n\l200 TupleType: \"(\" Types \",\" Type \")\" •\l"] + 435 -> "435R200" [style=solid] + "435R200" [label="R200", fillcolor=3, shape=diamond, style=filled] + 436 [label="State 436\n\l201 RecordType: \"(\" TypedVariables \",\" TypedVariable \")\" •\l"] + 436 -> "436R201" [style=solid] + "436R201" [label="R201", fillcolor=3, shape=diamond, style=filled] + 437 [label="State 437\n\l 53 ImplementationDefinition: \"implements\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\" •\l"] + 437 -> "437R53" [style=solid] + "437R53" [label="R53", fillcolor=3, shape=diamond, style=filled] + 438 [label="State 438\n\l 56 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions ImplementationDefinitionDefinition •\l"] + 438 -> "438R56" [style=solid] + "438R56" [label="R56", fillcolor=3, shape=diamond, style=filled] + 439 [label="State 439\n\l 52 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" \"{\" • ImplementationDefinitionDefinitions \"}\"\l"] + 439 -> 16 [style=solid label="\"derived\""] + 439 -> 18 [style=solid label="\"rule\""] + 439 -> 378 [style=dashed label="DerivedDefinition"] + 439 -> 379 [style=dashed label="RuleDefinition"] + 439 -> 380 [style=dashed label="ImplementationDefinitionDefinition"] + 439 -> 469 [style=dashed label="ImplementationDefinitionDefinitions"] + 440 [label="State 440\n\l191 Types: Types \",\" Type •\l"] + 440 -> "440R191" [style=solid] + "440R191" [label="R191", fillcolor=3, shape=diamond, style=filled] + 441 [label="State 441\n\l205 FunctionParameters: FunctionParameters \"*\" Type •\l"] + 441 -> "441R205" [style=solid] + "441R205" [label="R205", fillcolor=3, shape=diamond, style=filled] + 442 [label="State 442\n\l203 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" Type • \">\"\l"] + 442 -> 470 [style=solid label="\">\""] + 443 [label="State 443\n\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type • MaybeDefined MaybeInitially\l"] + 443 -> 471 [style=solid label="\"defined\""] + 443 -> 472 [style=dashed label="MaybeDefined"] + 443 -> "443R212" [style=solid] + "443R212" [label="R212", fillcolor=3, shape=diamond, style=filled] + 444 [label="State 444\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l157 UniversalQuantifierExpression: \"forall\" AttributedVariables \"in\" Term \"holds\" Term •\l"] + 444 -> 148 [style=solid label="\"and\""] + 444 -> 149 [style=solid label="\"or\""] + 444 -> 150 [style=solid label="\"xor\""] + 444 -> 151 [style=solid label="\"implies\""] + 444 -> 152 [style=solid label="\"+\""] + 444 -> 153 [style=solid label="\"-\""] + 444 -> 154 [style=solid label="\"=\""] + 444 -> 155 [style=solid label="\"<\""] + 444 -> 156 [style=solid label="\">\""] + 444 -> 157 [style=solid label="\"*\""] + 444 -> 158 [style=solid label="\"/\""] + 444 -> 159 [style=solid label="\"%\""] + 444 -> 160 [style=solid label="\"^\""] + 444 -> 161 [style=solid label="\"=>\""] + 444 -> 162 [style=solid label="\"!=\""] + 444 -> 163 [style=solid label="\"<=\""] + 444 -> 164 [style=solid label="\">=\""] + 444 -> "444R157" [style=solid] + "444R157" [label="R157", fillcolor=3, shape=diamond, style=filled] + 445 [label="State 445\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l156 ChooseExpression: \"choose\" AttributedVariables \"in\" Term \"do\" Term •\l"] + 445 -> 148 [style=solid label="\"and\""] + 445 -> 149 [style=solid label="\"or\""] + 445 -> 150 [style=solid label="\"xor\""] + 445 -> 151 [style=solid label="\"implies\""] + 445 -> 152 [style=solid label="\"+\""] + 445 -> 153 [style=solid label="\"-\""] + 445 -> 154 [style=solid label="\"=\""] + 445 -> 155 [style=solid label="\"<\""] + 445 -> 156 [style=solid label="\">\""] + 445 -> 157 [style=solid label="\"*\""] + 445 -> 158 [style=solid label="\"/\""] + 445 -> 159 [style=solid label="\"%\""] + 445 -> 160 [style=solid label="\"^\""] + 445 -> 161 [style=solid label="\"=>\""] + 445 -> 162 [style=solid label="\"!=\""] + 445 -> 163 [style=solid label="\"<=\""] + 445 -> 164 [style=solid label="\">=\""] + 445 -> "445R156" [style=solid] + "445R156" [label="R156", fillcolor=3, shape=diamond, style=filled] + 446 [label="State 446\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l155 ConditionalExpression: \"if\" Term \"then\" Term \"else\" Term •\l"] + 446 -> 148 [style=solid label="\"and\""] + 446 -> 149 [style=solid label="\"or\""] + 446 -> 150 [style=solid label="\"xor\""] + 446 -> 151 [style=solid label="\"implies\""] + 446 -> 152 [style=solid label="\"+\""] + 446 -> 153 [style=solid label="\"-\""] + 446 -> 154 [style=solid label="\"=\""] + 446 -> 155 [style=solid label="\"<\""] + 446 -> 156 [style=solid label="\">\""] + 446 -> 157 [style=solid label="\"*\""] + 446 -> 158 [style=solid label="\"/\""] + 446 -> 159 [style=solid label="\"%\""] + 446 -> 160 [style=solid label="\"^\""] + 446 -> 161 [style=solid label="\"=>\""] + 446 -> 162 [style=solid label="\"!=\""] + 446 -> 163 [style=solid label="\"<=\""] + 446 -> 164 [style=solid label="\">=\""] + 446 -> "446R155" [style=solid] + "446R155" [label="R155", fillcolor=3, shape=diamond, style=filled] + 447 [label="State 447\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l158 ExistentialQuantifierExpression: \"exists\" AttributedVariables \"in\" Term \"with\" Term •\l"] + 447 -> 148 [style=solid label="\"and\""] + 447 -> 149 [style=solid label="\"or\""] + 447 -> 150 [style=solid label="\"xor\""] + 447 -> 151 [style=solid label="\"implies\""] + 447 -> 152 [style=solid label="\"+\""] + 447 -> 153 [style=solid label="\"-\""] + 447 -> 154 [style=solid label="\"=\""] + 447 -> 155 [style=solid label="\"<\""] + 447 -> 156 [style=solid label="\">\""] + 447 -> 157 [style=solid label="\"*\""] + 447 -> 158 [style=solid label="\"/\""] + 447 -> 159 [style=solid label="\"%\""] + 447 -> 160 [style=solid label="\"^\""] + 447 -> 161 [style=solid label="\"=>\""] + 447 -> 162 [style=solid label="\"!=\""] + 447 -> 163 [style=solid label="\"<=\""] + 447 -> 164 [style=solid label="\">=\""] + 447 -> "447R158" [style=solid] + "447R158" [label="R158", fillcolor=3, shape=diamond, style=filled] + 448 [label="State 448\n\l148 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" error \")\" •\l"] + 448 -> "448R148" [style=solid] + "448R148" [label="R148", fillcolor=3, shape=diamond, style=filled] + 449 [label="State 449\n\l147 MethodCallExpression: SimpleOrClaspedTerm \".\" Identifier \"(\" Terms \")\" •\l"] + 449 -> "449R147" [style=solid] + "449R147" [label="R147", fillcolor=3, shape=diamond, style=filled] + 450 [label="State 450\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l218 Initializer: \"(\" Term \")\" \"->\" Term •\l"] + 450 -> 148 [style=solid label="\"and\""] + 450 -> 149 [style=solid label="\"or\""] + 450 -> 150 [style=solid label="\"xor\""] + 450 -> 151 [style=solid label="\"implies\""] + 450 -> 152 [style=solid label="\"+\""] + 450 -> 153 [style=solid label="\"-\""] + 450 -> 154 [style=solid label="\"=\""] + 450 -> 155 [style=solid label="\"<\""] + 450 -> 156 [style=solid label="\">\""] + 450 -> 157 [style=solid label="\"*\""] + 450 -> 158 [style=solid label="\"/\""] + 450 -> 159 [style=solid label="\"%\""] + 450 -> 160 [style=solid label="\"^\""] + 450 -> 161 [style=solid label="\"=>\""] + 450 -> 162 [style=solid label="\"!=\""] + 450 -> 163 [style=solid label="\"<=\""] + 450 -> 164 [style=solid label="\">=\""] + 450 -> "450R218" [style=solid] + "450R218" [label="R218", fillcolor=3, shape=diamond, style=filled] + 451 [label="State 451\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type • \"=\" Term\l"] + 451 -> 473 [style=solid label="\"=\""] + 452 [label="State 452\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type • \"=\" Term\l"] + 452 -> 474 [style=solid label="\"=\""] + 453 [label="State 453\n\l 37 Enumerators: Enumerators \",\" EnumeratorDefinition •\l"] + 453 -> "453R37" [style=solid] + "453R37" [label="R37", fillcolor=3, shape=diamond, style=filled] + 454 [label="State 454\n\l 85 LetRule: \"let\" VariableBindings \"in\" Rule •\l"] + 454 -> "454R85" [style=solid] + "454R85" [label="R85", fillcolor=3, shape=diamond, style=filled] + 455 [label="State 455\n\l243 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters • \"->\" Type MaybeDefined MaybeInitially\l"] + 455 -> 475 [style=solid label="\"->\""] + 456 [label="State 456\n\l 86 LocalRule: \"local\" LocalFunctionDefinitions \"in\" Rule •\l"] + 456 -> "456R86" [style=solid] + "456R86" [label="R86", fillcolor=3, shape=diamond, style=filled] + 457 [label="State 457\n\l238 LocalFunctionDefinitions: LocalFunctionDefinitions \",\" AttributedLocalFunctionDefinition •\l"] + 457 -> "457R238" [style=solid] + "457R238" [label="R238", fillcolor=3, shape=diamond, style=filled] + 458 [label="State 458\n\l 87 ForallRule: \"forall\" AttributedVariables \"in\" Term • \"do\" Rule\l 88 | \"forall\" AttributedVariables \"in\" Term • \"with\" Term \"do\" Rule\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 458 -> 476 [style=solid label="\"do\""] + 458 -> 477 [style=solid label="\"with\""] + 458 -> 148 [style=solid label="\"and\""] + 458 -> 149 [style=solid label="\"or\""] + 458 -> 150 [style=solid label="\"xor\""] + 458 -> 151 [style=solid label="\"implies\""] + 458 -> 152 [style=solid label="\"+\""] + 458 -> 153 [style=solid label="\"-\""] + 458 -> 154 [style=solid label="\"=\""] + 458 -> 155 [style=solid label="\"<\""] + 458 -> 156 [style=solid label="\">\""] + 458 -> 157 [style=solid label="\"*\""] + 458 -> 158 [style=solid label="\"/\""] + 458 -> 159 [style=solid label="\"%\""] + 458 -> 160 [style=solid label="\"^\""] + 458 -> 161 [style=solid label="\"=>\""] + 458 -> 162 [style=solid label="\"!=\""] + 458 -> 163 [style=solid label="\"<=\""] + 458 -> 164 [style=solid label="\">=\""] + 459 [label="State 459\n\l 89 ChooseRule: \"choose\" AttributedVariables \"in\" Term • \"do\" Rule\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 459 -> 478 [style=solid label="\"do\""] + 459 -> 148 [style=solid label="\"and\""] + 459 -> 149 [style=solid label="\"or\""] + 459 -> 150 [style=solid label="\"xor\""] + 459 -> 151 [style=solid label="\"implies\""] + 459 -> 152 [style=solid label="\"+\""] + 459 -> 153 [style=solid label="\"-\""] + 459 -> 154 [style=solid label="\"=\""] + 459 -> 155 [style=solid label="\"<\""] + 459 -> 156 [style=solid label="\">\""] + 459 -> 157 [style=solid label="\"*\""] + 459 -> 158 [style=solid label="\"/\""] + 459 -> 159 [style=solid label="\"%\""] + 459 -> 160 [style=solid label="\"^\""] + 459 -> 161 [style=solid label="\"=>\""] + 459 -> 162 [style=solid label="\"!=\""] + 459 -> 163 [style=solid label="\"<=\""] + 459 -> 164 [style=solid label="\">=\""] + 460 [label="State 460\n\l 76 ConditionalRule: \"if\" Term \"then\" Rule •\l 77 | \"if\" Term \"then\" Rule • \"else\" Rule\l"] + 460 -> 479 [style=solid label="\"else\""] + 460 -> "460R76" [style=solid] + "460R76" [label="R76", fillcolor=3, shape=diamond, style=filled] + 461 [label="State 461\n\l 78 CaseRule: \"case\" Term \"of\" \"{\" • CaseLabels \"}\"\l 79 | \"case\" Term \"of\" \"{\" • error \"}\"\l"] + 461 -> 480 [style=dotted] + 461 -> 45 [style=solid label="\"let\""] + 461 -> 8 [style=solid label="\"in\""] + 461 -> 46 [style=solid label="\"forall\""] + 461 -> 47 [style=solid label="\"choose\""] + 461 -> 48 [style=solid label="\"if\""] + 461 -> 481 [style=solid label="\"default\""] + 461 -> 49 [style=solid label="\"exists\""] + 461 -> 50 [style=solid label="\"undef\""] + 461 -> 51 [style=solid label="\"false\""] + 461 -> 52 [style=solid label="\"true\""] + 461 -> 53 [style=solid label="\"not\""] + 461 -> 54 [style=solid label="\"+\""] + 461 -> 55 [style=solid label="\"-\""] + 461 -> 56 [style=solid label="\"(\""] + 461 -> 57 [style=solid label="\"[\""] + 461 -> 482 [style=solid label="\"_\""] + 461 -> 58 [style=solid label="\"|\""] + 461 -> 59 [style=solid label="\"@\""] + 461 -> 60 [style=solid label="\"binary\""] + 461 -> 61 [style=solid label="\"hexadecimal\""] + 461 -> 62 [style=solid label="\"integer\""] + 461 -> 63 [style=solid label="\"rational\""] + 461 -> 64 [style=solid label="\"decimal\""] + 461 -> 65 [style=solid label="\"string\""] + 461 -> 9 [style=solid label="\"identifier\""] + 461 -> 483 [style=dashed label="CaseLabels"] + 461 -> 484 [style=dashed label="CaseLabel"] + 461 -> 485 [style=dashed label="Term"] + 461 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 461 -> 68 [style=dashed label="OperatorExpression"] + 461 -> 69 [style=dashed label="CallExpression"] + 461 -> 70 [style=dashed label="DirectCallExpression"] + 461 -> 71 [style=dashed label="MethodCallExpression"] + 461 -> 72 [style=dashed label="LiteralCallExpression"] + 461 -> 73 [style=dashed label="IndirectCallExpression"] + 461 -> 74 [style=dashed label="TypeCastingExpression"] + 461 -> 75 [style=dashed label="LetExpression"] + 461 -> 76 [style=dashed label="ConditionalExpression"] + 461 -> 77 [style=dashed label="ChooseExpression"] + 461 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 461 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 461 -> 80 [style=dashed label="CardinalityExpression"] + 461 -> 81 [style=dashed label="Literal"] + 461 -> 82 [style=dashed label="UndefinedLiteral"] + 461 -> 83 [style=dashed label="BooleanLiteral"] + 461 -> 84 [style=dashed label="IntegerLiteral"] + 461 -> 85 [style=dashed label="RationalLiteral"] + 461 -> 86 [style=dashed label="DecimalLiteral"] + 461 -> 87 [style=dashed label="BinaryLiteral"] + 461 -> 88 [style=dashed label="StringLiteral"] + 461 -> 89 [style=dashed label="ReferenceLiteral"] + 461 -> 90 [style=dashed label="ListLiteral"] + 461 -> 91 [style=dashed label="RangeLiteral"] + 461 -> 92 [style=dashed label="TupleLiteral"] + 461 -> 93 [style=dashed label="RecordLiteral"] + 461 -> 94 [style=dashed label="Identifier"] + 461 -> 95 [style=dashed label="IdentifierPath"] + 462 [label="State 462\n\l101 WhileRule: \"while\" Term \"do\" Rule •\l"] + 462 -> "462R101" [style=solid] + "462R101" [label="R101", fillcolor=3, shape=diamond, style=filled] + 463 [label="State 463\n\l 31 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"=\" Rule •\l"] + 463 -> "463R31" [style=solid] + "463R31" [label="R31", fillcolor=3, shape=diamond, style=filled] + 464 [label="State 464\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type • \"=\" Rule\l"] + 464 -> 486 [style=solid label="\"=\""] + 465 [label="State 465\n\l 29 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"=\" Rule •\l"] + 465 -> "465R29" [style=solid] + "465R29" [label="R29", fillcolor=3, shape=diamond, style=filled] + 466 [label="State 466\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type • \"=\" Rule\l"] + 466 -> 487 [style=solid label="\"=\""] + 467 [label="State 467\n\l 58 DeclarationDefinition: \"derived\" Identifier \":\" • MaybeFunctionParameters \"->\" Type\l"] + 467 -> 8 [style=solid label="\"in\""] + 467 -> 109 [style=solid label="\"(\""] + 467 -> 9 [style=solid label="\"identifier\""] + 467 -> 307 [style=dashed label="Type"] + 467 -> 111 [style=dashed label="BasicType"] + 467 -> 112 [style=dashed label="TupleType"] + 467 -> 113 [style=dashed label="RecordType"] + 467 -> 114 [style=dashed label="TemplateType"] + 467 -> 115 [style=dashed label="RelationType"] + 467 -> 116 [style=dashed label="FixedSizedType"] + 467 -> 304 [style=dashed label="FunctionParameters"] + 467 -> 488 [style=dashed label="MaybeFunctionParameters"] + 467 -> 94 [style=dashed label="Identifier"] + 467 -> 190 [style=dashed label="IdentifierPath"] + 467 -> "467R208" [style=solid] + "467R208" [label="R208", fillcolor=3, shape=diamond, style=filled] + 468 [label="State 468\n\l 59 DeclarationDefinition: \"rule\" Identifier \":\" • MaybeFunctionParameters \"->\" Type\l"] 468 -> 8 [style=solid label="\"in\""] - 468 -> 247 [style=solid label="\"forall\""] - 468 -> 248 [style=solid label="\"choose\""] - 468 -> 249 [style=solid label="\"iterate\""] - 468 -> 250 [style=solid label="\"if\""] - 468 -> 251 [style=solid label="\"case\""] - 468 -> 252 [style=solid label="\"while\""] - 468 -> 46 [style=solid label="\"undef\""] - 468 -> 47 [style=solid label="\"false\""] - 468 -> 48 [style=solid label="\"true\""] - 468 -> 50 [style=solid label="\"+\""] - 468 -> 51 [style=solid label="\"-\""] - 468 -> 52 [style=solid label="\"(\""] - 468 -> 53 [style=solid label="\"[\""] - 468 -> 253 [style=solid label="\"{\""] - 468 -> 55 [style=solid label="\"@\""] - 468 -> 254 [style=solid label="\"{|\""] - 468 -> 56 [style=solid label="\"binary\""] - 468 -> 57 [style=solid label="\"hexadecimal\""] - 468 -> 58 [style=solid label="\"integer\""] - 468 -> 59 [style=solid label="\"rational\""] - 468 -> 60 [style=solid label="\"decimal\""] - 468 -> 61 [style=solid label="\"string\""] + 468 -> 109 [style=solid label="\"(\""] 468 -> 9 [style=solid label="\"identifier\""] - 468 -> 477 [style=dashed label="Rule"] - 468 -> 256 [style=dashed label="SkipRule"] - 468 -> 257 [style=dashed label="ConditionalRule"] - 468 -> 258 [style=dashed label="CaseRule"] - 468 -> 259 [style=dashed label="LetRule"] - 468 -> 260 [style=dashed label="LocalRule"] - 468 -> 261 [style=dashed label="ForallRule"] - 468 -> 262 [style=dashed label="ChooseRule"] - 468 -> 263 [style=dashed label="IterateRule"] - 468 -> 264 [style=dashed label="BlockRule"] - 468 -> 265 [style=dashed label="SequenceRule"] - 468 -> 266 [style=dashed label="UpdateRule"] - 468 -> 267 [style=dashed label="CallRule"] - 468 -> 268 [style=dashed label="WhileRule"] - 468 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 468 -> 270 [style=dashed label="CallExpression"] - 468 -> 271 [style=dashed label="DirectCallExpression"] - 468 -> 67 [style=dashed label="MethodCallExpression"] - 468 -> 68 [style=dashed label="LiteralCallExpression"] - 468 -> 69 [style=dashed label="IndirectCallExpression"] - 468 -> 77 [style=dashed label="Literal"] - 468 -> 78 [style=dashed label="UndefinedLiteral"] - 468 -> 79 [style=dashed label="BooleanLiteral"] - 468 -> 80 [style=dashed label="IntegerLiteral"] - 468 -> 81 [style=dashed label="RationalLiteral"] - 468 -> 82 [style=dashed label="DecimalLiteral"] - 468 -> 83 [style=dashed label="BinaryLiteral"] - 468 -> 84 [style=dashed label="StringLiteral"] - 468 -> 85 [style=dashed label="ReferenceLiteral"] - 468 -> 86 [style=dashed label="ListLiteral"] - 468 -> 87 [style=dashed label="RangeLiteral"] - 468 -> 88 [style=dashed label="TupleLiteral"] - 468 -> 89 [style=dashed label="RecordLiteral"] - 468 -> 90 [style=dashed label="Identifier"] - 468 -> 91 [style=dashed label="IdentifierPath"] - 469 [label="State 469\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type \"=\" Rule •\l"] - 469 -> "469R30" [style=solid] - "469R30" [label="R30", fillcolor=3, shape=diamond, style=filled] - 470 [label="State 470\n\l 28 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Rule •\l"] - 470 -> "470R28" [style=solid] - "470R28" [label="R28", fillcolor=3, shape=diamond, style=filled] - 471 [label="State 471\n\l104 OperatorExpression: Term • \"+\" Term\l105 | Term • \"-\" Term\l106 | Term • \"*\" Term\l107 | Term • \"/\" Term\l108 | Term • \"%\" Term\l109 | Term • \"^\" Term\l110 | Term • \"!=\" Term\l111 | Term • \"=\" Term\l112 | Term • \"<\" Term\l113 | Term • \">\" Term\l114 | Term • \"<=\" Term\l115 | Term • \">=\" Term\l116 | Term • \"or\" Term\l117 | Term • \"xor\" Term\l118 | Term • \"and\" Term\l119 | Term • \"=>\" Term\l120 | Term • \"implies\" Term\l195 MaybeDefined: \"defined\" \"{\" Term • \"}\"\l"] - 471 -> 134 [style=solid label="\"and\""] - 471 -> 135 [style=solid label="\"or\""] - 471 -> 136 [style=solid label="\"xor\""] - 471 -> 137 [style=solid label="\"implies\""] - 471 -> 138 [style=solid label="\"+\""] - 471 -> 139 [style=solid label="\"-\""] - 471 -> 140 [style=solid label="\"=\""] - 471 -> 478 [style=solid label="\"}\""] - 471 -> 141 [style=solid label="\"<\""] - 471 -> 142 [style=solid label="\">\""] - 471 -> 143 [style=solid label="\"*\""] - 471 -> 144 [style=solid label="\"/\""] - 471 -> 145 [style=solid label="\"%\""] - 471 -> 146 [style=solid label="\"^\""] - 471 -> 147 [style=solid label="\"=>\""] - 471 -> 148 [style=solid label="\"!=\""] - 471 -> 149 [style=solid label="\"<=\""] - 471 -> 150 [style=solid label="\">=\""] - 472 [label="State 472\n\l197 MaybeInitially: \"=\" \"{\" • Initializers \"}\"\l"] - 472 -> 41 [style=solid label="\"let\""] - 472 -> 8 [style=solid label="\"in\""] - 472 -> 42 [style=solid label="\"forall\""] - 472 -> 43 [style=solid label="\"choose\""] - 472 -> 44 [style=solid label="\"if\""] - 472 -> 45 [style=solid label="\"exists\""] - 472 -> 46 [style=solid label="\"undef\""] - 472 -> 47 [style=solid label="\"false\""] - 472 -> 48 [style=solid label="\"true\""] - 472 -> 49 [style=solid label="\"not\""] - 472 -> 50 [style=solid label="\"+\""] - 472 -> 51 [style=solid label="\"-\""] - 472 -> 156 [style=solid label="\"(\""] - 472 -> 53 [style=solid label="\"[\""] - 472 -> 54 [style=solid label="\"|\""] - 472 -> 55 [style=solid label="\"@\""] - 472 -> 56 [style=solid label="\"binary\""] - 472 -> 57 [style=solid label="\"hexadecimal\""] - 472 -> 58 [style=solid label="\"integer\""] - 472 -> 59 [style=solid label="\"rational\""] - 472 -> 60 [style=solid label="\"decimal\""] - 472 -> 61 [style=solid label="\"string\""] - 472 -> 9 [style=solid label="\"identifier\""] - 472 -> 157 [style=dashed label="Term"] - 472 -> 63 [style=dashed label="SimpleOrClaspedTerm"] - 472 -> 64 [style=dashed label="OperatorExpression"] - 472 -> 65 [style=dashed label="CallExpression"] - 472 -> 66 [style=dashed label="DirectCallExpression"] - 472 -> 67 [style=dashed label="MethodCallExpression"] - 472 -> 68 [style=dashed label="LiteralCallExpression"] - 472 -> 69 [style=dashed label="IndirectCallExpression"] - 472 -> 70 [style=dashed label="TypeCastingExpression"] - 472 -> 71 [style=dashed label="LetExpression"] - 472 -> 72 [style=dashed label="ConditionalExpression"] - 472 -> 73 [style=dashed label="ChooseExpression"] - 472 -> 74 [style=dashed label="UniversalQuantifierExpression"] - 472 -> 75 [style=dashed label="ExistentialQuantifierExpression"] - 472 -> 76 [style=dashed label="CardinalityExpression"] - 472 -> 77 [style=dashed label="Literal"] - 472 -> 78 [style=dashed label="UndefinedLiteral"] - 472 -> 79 [style=dashed label="BooleanLiteral"] - 472 -> 80 [style=dashed label="IntegerLiteral"] - 472 -> 81 [style=dashed label="RationalLiteral"] - 472 -> 82 [style=dashed label="DecimalLiteral"] - 472 -> 83 [style=dashed label="BinaryLiteral"] - 472 -> 84 [style=dashed label="StringLiteral"] - 472 -> 85 [style=dashed label="ReferenceLiteral"] - 472 -> 86 [style=dashed label="ListLiteral"] - 472 -> 87 [style=dashed label="RangeLiteral"] - 472 -> 158 [style=dashed label="TupleLiteral"] - 472 -> 89 [style=dashed label="RecordLiteral"] - 472 -> 479 [style=dashed label="Initializers"] - 472 -> 160 [style=dashed label="Initializer"] - 472 -> 90 [style=dashed label="Identifier"] - 472 -> 91 [style=dashed label="IdentifierPath"] - 473 [label="State 473\n\l227 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined • MaybeInitially\l"] - 473 -> 453 [style=solid label="\"=\""] - 473 -> 480 [style=dashed label="MaybeInitially"] - 473 -> "473R198" [style=solid] - "473R198" [label="R198", fillcolor=3, shape=diamond, style=filled] - 474 [label="State 474\n\l 72 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term \"do\" • Rule\l"] - 474 -> 242 [style=solid label="\"seq\""] - 474 -> 243 [style=solid label="\"par\""] - 474 -> 244 [style=solid label="\"skip\""] - 474 -> 245 [style=solid label="\"let\""] - 474 -> 246 [style=solid label="\"local\""] + 468 -> 307 [style=dashed label="Type"] + 468 -> 111 [style=dashed label="BasicType"] + 468 -> 112 [style=dashed label="TupleType"] + 468 -> 113 [style=dashed label="RecordType"] + 468 -> 114 [style=dashed label="TemplateType"] + 468 -> 115 [style=dashed label="RelationType"] + 468 -> 116 [style=dashed label="FixedSizedType"] + 468 -> 304 [style=dashed label="FunctionParameters"] + 468 -> 489 [style=dashed label="MaybeFunctionParameters"] + 468 -> 94 [style=dashed label="Identifier"] + 468 -> 190 [style=dashed label="IdentifierPath"] + 468 -> "468R208" [style=solid] + "468R208" [label="R208", fillcolor=3, shape=diamond, style=filled] + 469 [label="State 469\n\l 52 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions • \"}\"\l 56 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions • ImplementationDefinitionDefinition\l"] + 469 -> 16 [style=solid label="\"derived\""] + 469 -> 18 [style=solid label="\"rule\""] + 469 -> 490 [style=solid label="\"}\""] + 469 -> 378 [style=dashed label="DerivedDefinition"] + 469 -> 379 [style=dashed label="RuleDefinition"] + 469 -> 438 [style=dashed label="ImplementationDefinitionDefinition"] + 470 [label="State 470\n\l203 RelationType: IdentifierPath \"<\" MaybeFunctionParameters \"->\" Type \">\" •\l"] + 470 -> "470R203" [style=solid] + "470R203" [label="R203", fillcolor=3, shape=diamond, style=filled] + 471 [label="State 471\n\l211 MaybeDefined: \"defined\" • \"{\" Term \"}\"\l"] + 471 -> 491 [style=solid label="\"{\""] + 472 [label="State 472\n\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined • MaybeInitially\l"] + 472 -> 492 [style=solid label="\"=\""] + 472 -> 493 [style=dashed label="MaybeInitially"] + 472 -> "472R214" [style=solid] + "472R214" [label="R214", fillcolor=3, shape=diamond, style=filled] + 473 [label="State 473\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type \"=\" • Term\l"] + 473 -> 45 [style=solid label="\"let\""] + 473 -> 8 [style=solid label="\"in\""] + 473 -> 46 [style=solid label="\"forall\""] + 473 -> 47 [style=solid label="\"choose\""] + 473 -> 48 [style=solid label="\"if\""] + 473 -> 49 [style=solid label="\"exists\""] + 473 -> 50 [style=solid label="\"undef\""] + 473 -> 51 [style=solid label="\"false\""] + 473 -> 52 [style=solid label="\"true\""] + 473 -> 53 [style=solid label="\"not\""] + 473 -> 54 [style=solid label="\"+\""] + 473 -> 55 [style=solid label="\"-\""] + 473 -> 56 [style=solid label="\"(\""] + 473 -> 57 [style=solid label="\"[\""] + 473 -> 58 [style=solid label="\"|\""] + 473 -> 59 [style=solid label="\"@\""] + 473 -> 60 [style=solid label="\"binary\""] + 473 -> 61 [style=solid label="\"hexadecimal\""] + 473 -> 62 [style=solid label="\"integer\""] + 473 -> 63 [style=solid label="\"rational\""] + 473 -> 64 [style=solid label="\"decimal\""] + 473 -> 65 [style=solid label="\"string\""] + 473 -> 9 [style=solid label="\"identifier\""] + 473 -> 494 [style=dashed label="Term"] + 473 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 473 -> 68 [style=dashed label="OperatorExpression"] + 473 -> 69 [style=dashed label="CallExpression"] + 473 -> 70 [style=dashed label="DirectCallExpression"] + 473 -> 71 [style=dashed label="MethodCallExpression"] + 473 -> 72 [style=dashed label="LiteralCallExpression"] + 473 -> 73 [style=dashed label="IndirectCallExpression"] + 473 -> 74 [style=dashed label="TypeCastingExpression"] + 473 -> 75 [style=dashed label="LetExpression"] + 473 -> 76 [style=dashed label="ConditionalExpression"] + 473 -> 77 [style=dashed label="ChooseExpression"] + 473 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 473 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 473 -> 80 [style=dashed label="CardinalityExpression"] + 473 -> 81 [style=dashed label="Literal"] + 473 -> 82 [style=dashed label="UndefinedLiteral"] + 473 -> 83 [style=dashed label="BooleanLiteral"] + 473 -> 84 [style=dashed label="IntegerLiteral"] + 473 -> 85 [style=dashed label="RationalLiteral"] + 473 -> 86 [style=dashed label="DecimalLiteral"] + 473 -> 87 [style=dashed label="BinaryLiteral"] + 473 -> 88 [style=dashed label="StringLiteral"] + 473 -> 89 [style=dashed label="ReferenceLiteral"] + 473 -> 90 [style=dashed label="ListLiteral"] + 473 -> 91 [style=dashed label="RangeLiteral"] + 473 -> 92 [style=dashed label="TupleLiteral"] + 473 -> 93 [style=dashed label="RecordLiteral"] + 473 -> 94 [style=dashed label="Identifier"] + 473 -> 95 [style=dashed label="IdentifierPath"] + 474 [label="State 474\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" • Term\l"] + 474 -> 45 [style=solid label="\"let\""] 474 -> 8 [style=solid label="\"in\""] - 474 -> 247 [style=solid label="\"forall\""] - 474 -> 248 [style=solid label="\"choose\""] - 474 -> 249 [style=solid label="\"iterate\""] - 474 -> 250 [style=solid label="\"if\""] - 474 -> 251 [style=solid label="\"case\""] - 474 -> 252 [style=solid label="\"while\""] - 474 -> 46 [style=solid label="\"undef\""] - 474 -> 47 [style=solid label="\"false\""] - 474 -> 48 [style=solid label="\"true\""] - 474 -> 50 [style=solid label="\"+\""] - 474 -> 51 [style=solid label="\"-\""] - 474 -> 52 [style=solid label="\"(\""] - 474 -> 53 [style=solid label="\"[\""] - 474 -> 253 [style=solid label="\"{\""] - 474 -> 55 [style=solid label="\"@\""] - 474 -> 254 [style=solid label="\"{|\""] - 474 -> 56 [style=solid label="\"binary\""] - 474 -> 57 [style=solid label="\"hexadecimal\""] - 474 -> 58 [style=solid label="\"integer\""] - 474 -> 59 [style=solid label="\"rational\""] - 474 -> 60 [style=solid label="\"decimal\""] - 474 -> 61 [style=solid label="\"string\""] + 474 -> 46 [style=solid label="\"forall\""] + 474 -> 47 [style=solid label="\"choose\""] + 474 -> 48 [style=solid label="\"if\""] + 474 -> 49 [style=solid label="\"exists\""] + 474 -> 50 [style=solid label="\"undef\""] + 474 -> 51 [style=solid label="\"false\""] + 474 -> 52 [style=solid label="\"true\""] + 474 -> 53 [style=solid label="\"not\""] + 474 -> 54 [style=solid label="\"+\""] + 474 -> 55 [style=solid label="\"-\""] + 474 -> 56 [style=solid label="\"(\""] + 474 -> 57 [style=solid label="\"[\""] + 474 -> 58 [style=solid label="\"|\""] + 474 -> 59 [style=solid label="\"@\""] + 474 -> 60 [style=solid label="\"binary\""] + 474 -> 61 [style=solid label="\"hexadecimal\""] + 474 -> 62 [style=solid label="\"integer\""] + 474 -> 63 [style=solid label="\"rational\""] + 474 -> 64 [style=solid label="\"decimal\""] + 474 -> 65 [style=solid label="\"string\""] 474 -> 9 [style=solid label="\"identifier\""] - 474 -> 481 [style=dashed label="Rule"] - 474 -> 256 [style=dashed label="SkipRule"] - 474 -> 257 [style=dashed label="ConditionalRule"] - 474 -> 258 [style=dashed label="CaseRule"] - 474 -> 259 [style=dashed label="LetRule"] - 474 -> 260 [style=dashed label="LocalRule"] - 474 -> 261 [style=dashed label="ForallRule"] - 474 -> 262 [style=dashed label="ChooseRule"] - 474 -> 263 [style=dashed label="IterateRule"] - 474 -> 264 [style=dashed label="BlockRule"] - 474 -> 265 [style=dashed label="SequenceRule"] - 474 -> 266 [style=dashed label="UpdateRule"] - 474 -> 267 [style=dashed label="CallRule"] - 474 -> 268 [style=dashed label="WhileRule"] - 474 -> 269 [style=dashed label="SimpleOrClaspedTerm"] - 474 -> 270 [style=dashed label="CallExpression"] - 474 -> 271 [style=dashed label="DirectCallExpression"] - 474 -> 67 [style=dashed label="MethodCallExpression"] - 474 -> 68 [style=dashed label="LiteralCallExpression"] - 474 -> 69 [style=dashed label="IndirectCallExpression"] - 474 -> 77 [style=dashed label="Literal"] - 474 -> 78 [style=dashed label="UndefinedLiteral"] - 474 -> 79 [style=dashed label="BooleanLiteral"] - 474 -> 80 [style=dashed label="IntegerLiteral"] - 474 -> 81 [style=dashed label="RationalLiteral"] - 474 -> 82 [style=dashed label="DecimalLiteral"] - 474 -> 83 [style=dashed label="BinaryLiteral"] - 474 -> 84 [style=dashed label="StringLiteral"] - 474 -> 85 [style=dashed label="ReferenceLiteral"] - 474 -> 86 [style=dashed label="ListLiteral"] - 474 -> 87 [style=dashed label="RangeLiteral"] - 474 -> 88 [style=dashed label="TupleLiteral"] - 474 -> 89 [style=dashed label="RecordLiteral"] - 474 -> 90 [style=dashed label="Identifier"] - 474 -> 91 [style=dashed label="IdentifierPath"] - 475 [label="State 475\n\l 66 CaseLabel: \"default\" \":\" Rule •\l"] - 475 -> "475R66" [style=solid] - "475R66" [label="R66", fillcolor=3, shape=diamond, style=filled] - 476 [label="State 476\n\l 67 CaseLabel: \"_\" \":\" Rule •\l"] - 476 -> "476R67" [style=solid] - "476R67" [label="R67", fillcolor=3, shape=diamond, style=filled] - 477 [label="State 477\n\l 68 CaseLabel: Term \":\" Rule •\l"] - 477 -> "477R68" [style=solid] - "477R68" [label="R68", fillcolor=3, shape=diamond, style=filled] - 478 [label="State 478\n\l195 MaybeDefined: \"defined\" \"{\" Term \"}\" •\l"] - 478 -> "478R195" [style=solid] - "478R195" [label="R195", fillcolor=3, shape=diamond, style=filled] - 479 [label="State 479\n\l197 MaybeInitially: \"=\" \"{\" Initializers • \"}\"\l199 Initializers: Initializers • \",\" Initializer\l"] - 479 -> 482 [style=solid label="\"}\""] - 479 -> 233 [style=solid label="\",\""] - 480 [label="State 480\n\l227 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially •\l"] - 480 -> "480R227" [style=solid] - "480R227" [label="R227", fillcolor=3, shape=diamond, style=filled] - 481 [label="State 481\n\l 72 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term \"do\" Rule •\l"] - 481 -> "481R72" [style=solid] - "481R72" [label="R72", fillcolor=3, shape=diamond, style=filled] - 482 [label="State 482\n\l197 MaybeInitially: \"=\" \"{\" Initializers \"}\" •\l"] - 482 -> "482R197" [style=solid] - "482R197" [label="R197", fillcolor=3, shape=diamond, style=filled] + 474 -> 495 [style=dashed label="Term"] + 474 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 474 -> 68 [style=dashed label="OperatorExpression"] + 474 -> 69 [style=dashed label="CallExpression"] + 474 -> 70 [style=dashed label="DirectCallExpression"] + 474 -> 71 [style=dashed label="MethodCallExpression"] + 474 -> 72 [style=dashed label="LiteralCallExpression"] + 474 -> 73 [style=dashed label="IndirectCallExpression"] + 474 -> 74 [style=dashed label="TypeCastingExpression"] + 474 -> 75 [style=dashed label="LetExpression"] + 474 -> 76 [style=dashed label="ConditionalExpression"] + 474 -> 77 [style=dashed label="ChooseExpression"] + 474 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 474 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 474 -> 80 [style=dashed label="CardinalityExpression"] + 474 -> 81 [style=dashed label="Literal"] + 474 -> 82 [style=dashed label="UndefinedLiteral"] + 474 -> 83 [style=dashed label="BooleanLiteral"] + 474 -> 84 [style=dashed label="IntegerLiteral"] + 474 -> 85 [style=dashed label="RationalLiteral"] + 474 -> 86 [style=dashed label="DecimalLiteral"] + 474 -> 87 [style=dashed label="BinaryLiteral"] + 474 -> 88 [style=dashed label="StringLiteral"] + 474 -> 89 [style=dashed label="ReferenceLiteral"] + 474 -> 90 [style=dashed label="ListLiteral"] + 474 -> 91 [style=dashed label="RangeLiteral"] + 474 -> 92 [style=dashed label="TupleLiteral"] + 474 -> 93 [style=dashed label="RecordLiteral"] + 474 -> 94 [style=dashed label="Identifier"] + 474 -> 95 [style=dashed label="IdentifierPath"] + 475 [label="State 475\n\l243 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" • Type MaybeDefined MaybeInitially\l"] + 475 -> 8 [style=solid label="\"in\""] + 475 -> 109 [style=solid label="\"(\""] + 475 -> 9 [style=solid label="\"identifier\""] + 475 -> 496 [style=dashed label="Type"] + 475 -> 111 [style=dashed label="BasicType"] + 475 -> 112 [style=dashed label="TupleType"] + 475 -> 113 [style=dashed label="RecordType"] + 475 -> 114 [style=dashed label="TemplateType"] + 475 -> 115 [style=dashed label="RelationType"] + 475 -> 116 [style=dashed label="FixedSizedType"] + 475 -> 94 [style=dashed label="Identifier"] + 475 -> 190 [style=dashed label="IdentifierPath"] + 476 [label="State 476\n\l 87 ForallRule: \"forall\" AttributedVariables \"in\" Term \"do\" • Rule\l"] + 476 -> 259 [style=solid label="\"seq\""] + 476 -> 260 [style=solid label="\"par\""] + 476 -> 261 [style=solid label="\"skip\""] + 476 -> 262 [style=solid label="\"let\""] + 476 -> 263 [style=solid label="\"local\""] + 476 -> 8 [style=solid label="\"in\""] + 476 -> 264 [style=solid label="\"forall\""] + 476 -> 265 [style=solid label="\"choose\""] + 476 -> 266 [style=solid label="\"iterate\""] + 476 -> 267 [style=solid label="\"if\""] + 476 -> 268 [style=solid label="\"case\""] + 476 -> 269 [style=solid label="\"while\""] + 476 -> 50 [style=solid label="\"undef\""] + 476 -> 51 [style=solid label="\"false\""] + 476 -> 52 [style=solid label="\"true\""] + 476 -> 54 [style=solid label="\"+\""] + 476 -> 55 [style=solid label="\"-\""] + 476 -> 56 [style=solid label="\"(\""] + 476 -> 57 [style=solid label="\"[\""] + 476 -> 270 [style=solid label="\"{\""] + 476 -> 59 [style=solid label="\"@\""] + 476 -> 271 [style=solid label="\"{|\""] + 476 -> 60 [style=solid label="\"binary\""] + 476 -> 61 [style=solid label="\"hexadecimal\""] + 476 -> 62 [style=solid label="\"integer\""] + 476 -> 63 [style=solid label="\"rational\""] + 476 -> 64 [style=solid label="\"decimal\""] + 476 -> 65 [style=solid label="\"string\""] + 476 -> 9 [style=solid label="\"identifier\""] + 476 -> 497 [style=dashed label="Rule"] + 476 -> 273 [style=dashed label="SkipRule"] + 476 -> 274 [style=dashed label="ConditionalRule"] + 476 -> 275 [style=dashed label="CaseRule"] + 476 -> 276 [style=dashed label="LetRule"] + 476 -> 277 [style=dashed label="LocalRule"] + 476 -> 278 [style=dashed label="ForallRule"] + 476 -> 279 [style=dashed label="ChooseRule"] + 476 -> 280 [style=dashed label="IterateRule"] + 476 -> 281 [style=dashed label="BlockRule"] + 476 -> 282 [style=dashed label="SequenceRule"] + 476 -> 283 [style=dashed label="UpdateRule"] + 476 -> 284 [style=dashed label="CallRule"] + 476 -> 285 [style=dashed label="WhileRule"] + 476 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 476 -> 287 [style=dashed label="CallExpression"] + 476 -> 288 [style=dashed label="DirectCallExpression"] + 476 -> 71 [style=dashed label="MethodCallExpression"] + 476 -> 72 [style=dashed label="LiteralCallExpression"] + 476 -> 73 [style=dashed label="IndirectCallExpression"] + 476 -> 81 [style=dashed label="Literal"] + 476 -> 82 [style=dashed label="UndefinedLiteral"] + 476 -> 83 [style=dashed label="BooleanLiteral"] + 476 -> 84 [style=dashed label="IntegerLiteral"] + 476 -> 85 [style=dashed label="RationalLiteral"] + 476 -> 86 [style=dashed label="DecimalLiteral"] + 476 -> 87 [style=dashed label="BinaryLiteral"] + 476 -> 88 [style=dashed label="StringLiteral"] + 476 -> 89 [style=dashed label="ReferenceLiteral"] + 476 -> 90 [style=dashed label="ListLiteral"] + 476 -> 91 [style=dashed label="RangeLiteral"] + 476 -> 92 [style=dashed label="TupleLiteral"] + 476 -> 93 [style=dashed label="RecordLiteral"] + 476 -> 94 [style=dashed label="Identifier"] + 476 -> 95 [style=dashed label="IdentifierPath"] + 477 [label="State 477\n\l 88 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" • Term \"do\" Rule\l"] + 477 -> 45 [style=solid label="\"let\""] + 477 -> 8 [style=solid label="\"in\""] + 477 -> 46 [style=solid label="\"forall\""] + 477 -> 47 [style=solid label="\"choose\""] + 477 -> 48 [style=solid label="\"if\""] + 477 -> 49 [style=solid label="\"exists\""] + 477 -> 50 [style=solid label="\"undef\""] + 477 -> 51 [style=solid label="\"false\""] + 477 -> 52 [style=solid label="\"true\""] + 477 -> 53 [style=solid label="\"not\""] + 477 -> 54 [style=solid label="\"+\""] + 477 -> 55 [style=solid label="\"-\""] + 477 -> 56 [style=solid label="\"(\""] + 477 -> 57 [style=solid label="\"[\""] + 477 -> 58 [style=solid label="\"|\""] + 477 -> 59 [style=solid label="\"@\""] + 477 -> 60 [style=solid label="\"binary\""] + 477 -> 61 [style=solid label="\"hexadecimal\""] + 477 -> 62 [style=solid label="\"integer\""] + 477 -> 63 [style=solid label="\"rational\""] + 477 -> 64 [style=solid label="\"decimal\""] + 477 -> 65 [style=solid label="\"string\""] + 477 -> 9 [style=solid label="\"identifier\""] + 477 -> 498 [style=dashed label="Term"] + 477 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 477 -> 68 [style=dashed label="OperatorExpression"] + 477 -> 69 [style=dashed label="CallExpression"] + 477 -> 70 [style=dashed label="DirectCallExpression"] + 477 -> 71 [style=dashed label="MethodCallExpression"] + 477 -> 72 [style=dashed label="LiteralCallExpression"] + 477 -> 73 [style=dashed label="IndirectCallExpression"] + 477 -> 74 [style=dashed label="TypeCastingExpression"] + 477 -> 75 [style=dashed label="LetExpression"] + 477 -> 76 [style=dashed label="ConditionalExpression"] + 477 -> 77 [style=dashed label="ChooseExpression"] + 477 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 477 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 477 -> 80 [style=dashed label="CardinalityExpression"] + 477 -> 81 [style=dashed label="Literal"] + 477 -> 82 [style=dashed label="UndefinedLiteral"] + 477 -> 83 [style=dashed label="BooleanLiteral"] + 477 -> 84 [style=dashed label="IntegerLiteral"] + 477 -> 85 [style=dashed label="RationalLiteral"] + 477 -> 86 [style=dashed label="DecimalLiteral"] + 477 -> 87 [style=dashed label="BinaryLiteral"] + 477 -> 88 [style=dashed label="StringLiteral"] + 477 -> 89 [style=dashed label="ReferenceLiteral"] + 477 -> 90 [style=dashed label="ListLiteral"] + 477 -> 91 [style=dashed label="RangeLiteral"] + 477 -> 92 [style=dashed label="TupleLiteral"] + 477 -> 93 [style=dashed label="RecordLiteral"] + 477 -> 94 [style=dashed label="Identifier"] + 477 -> 95 [style=dashed label="IdentifierPath"] + 478 [label="State 478\n\l 89 ChooseRule: \"choose\" AttributedVariables \"in\" Term \"do\" • Rule\l"] + 478 -> 259 [style=solid label="\"seq\""] + 478 -> 260 [style=solid label="\"par\""] + 478 -> 261 [style=solid label="\"skip\""] + 478 -> 262 [style=solid label="\"let\""] + 478 -> 263 [style=solid label="\"local\""] + 478 -> 8 [style=solid label="\"in\""] + 478 -> 264 [style=solid label="\"forall\""] + 478 -> 265 [style=solid label="\"choose\""] + 478 -> 266 [style=solid label="\"iterate\""] + 478 -> 267 [style=solid label="\"if\""] + 478 -> 268 [style=solid label="\"case\""] + 478 -> 269 [style=solid label="\"while\""] + 478 -> 50 [style=solid label="\"undef\""] + 478 -> 51 [style=solid label="\"false\""] + 478 -> 52 [style=solid label="\"true\""] + 478 -> 54 [style=solid label="\"+\""] + 478 -> 55 [style=solid label="\"-\""] + 478 -> 56 [style=solid label="\"(\""] + 478 -> 57 [style=solid label="\"[\""] + 478 -> 270 [style=solid label="\"{\""] + 478 -> 59 [style=solid label="\"@\""] + 478 -> 271 [style=solid label="\"{|\""] + 478 -> 60 [style=solid label="\"binary\""] + 478 -> 61 [style=solid label="\"hexadecimal\""] + 478 -> 62 [style=solid label="\"integer\""] + 478 -> 63 [style=solid label="\"rational\""] + 478 -> 64 [style=solid label="\"decimal\""] + 478 -> 65 [style=solid label="\"string\""] + 478 -> 9 [style=solid label="\"identifier\""] + 478 -> 499 [style=dashed label="Rule"] + 478 -> 273 [style=dashed label="SkipRule"] + 478 -> 274 [style=dashed label="ConditionalRule"] + 478 -> 275 [style=dashed label="CaseRule"] + 478 -> 276 [style=dashed label="LetRule"] + 478 -> 277 [style=dashed label="LocalRule"] + 478 -> 278 [style=dashed label="ForallRule"] + 478 -> 279 [style=dashed label="ChooseRule"] + 478 -> 280 [style=dashed label="IterateRule"] + 478 -> 281 [style=dashed label="BlockRule"] + 478 -> 282 [style=dashed label="SequenceRule"] + 478 -> 283 [style=dashed label="UpdateRule"] + 478 -> 284 [style=dashed label="CallRule"] + 478 -> 285 [style=dashed label="WhileRule"] + 478 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 478 -> 287 [style=dashed label="CallExpression"] + 478 -> 288 [style=dashed label="DirectCallExpression"] + 478 -> 71 [style=dashed label="MethodCallExpression"] + 478 -> 72 [style=dashed label="LiteralCallExpression"] + 478 -> 73 [style=dashed label="IndirectCallExpression"] + 478 -> 81 [style=dashed label="Literal"] + 478 -> 82 [style=dashed label="UndefinedLiteral"] + 478 -> 83 [style=dashed label="BooleanLiteral"] + 478 -> 84 [style=dashed label="IntegerLiteral"] + 478 -> 85 [style=dashed label="RationalLiteral"] + 478 -> 86 [style=dashed label="DecimalLiteral"] + 478 -> 87 [style=dashed label="BinaryLiteral"] + 478 -> 88 [style=dashed label="StringLiteral"] + 478 -> 89 [style=dashed label="ReferenceLiteral"] + 478 -> 90 [style=dashed label="ListLiteral"] + 478 -> 91 [style=dashed label="RangeLiteral"] + 478 -> 92 [style=dashed label="TupleLiteral"] + 478 -> 93 [style=dashed label="RecordLiteral"] + 478 -> 94 [style=dashed label="Identifier"] + 478 -> 95 [style=dashed label="IdentifierPath"] + 479 [label="State 479\n\l 77 ConditionalRule: \"if\" Term \"then\" Rule \"else\" • Rule\l"] + 479 -> 259 [style=solid label="\"seq\""] + 479 -> 260 [style=solid label="\"par\""] + 479 -> 261 [style=solid label="\"skip\""] + 479 -> 262 [style=solid label="\"let\""] + 479 -> 263 [style=solid label="\"local\""] + 479 -> 8 [style=solid label="\"in\""] + 479 -> 264 [style=solid label="\"forall\""] + 479 -> 265 [style=solid label="\"choose\""] + 479 -> 266 [style=solid label="\"iterate\""] + 479 -> 267 [style=solid label="\"if\""] + 479 -> 268 [style=solid label="\"case\""] + 479 -> 269 [style=solid label="\"while\""] + 479 -> 50 [style=solid label="\"undef\""] + 479 -> 51 [style=solid label="\"false\""] + 479 -> 52 [style=solid label="\"true\""] + 479 -> 54 [style=solid label="\"+\""] + 479 -> 55 [style=solid label="\"-\""] + 479 -> 56 [style=solid label="\"(\""] + 479 -> 57 [style=solid label="\"[\""] + 479 -> 270 [style=solid label="\"{\""] + 479 -> 59 [style=solid label="\"@\""] + 479 -> 271 [style=solid label="\"{|\""] + 479 -> 60 [style=solid label="\"binary\""] + 479 -> 61 [style=solid label="\"hexadecimal\""] + 479 -> 62 [style=solid label="\"integer\""] + 479 -> 63 [style=solid label="\"rational\""] + 479 -> 64 [style=solid label="\"decimal\""] + 479 -> 65 [style=solid label="\"string\""] + 479 -> 9 [style=solid label="\"identifier\""] + 479 -> 500 [style=dashed label="Rule"] + 479 -> 273 [style=dashed label="SkipRule"] + 479 -> 274 [style=dashed label="ConditionalRule"] + 479 -> 275 [style=dashed label="CaseRule"] + 479 -> 276 [style=dashed label="LetRule"] + 479 -> 277 [style=dashed label="LocalRule"] + 479 -> 278 [style=dashed label="ForallRule"] + 479 -> 279 [style=dashed label="ChooseRule"] + 479 -> 280 [style=dashed label="IterateRule"] + 479 -> 281 [style=dashed label="BlockRule"] + 479 -> 282 [style=dashed label="SequenceRule"] + 479 -> 283 [style=dashed label="UpdateRule"] + 479 -> 284 [style=dashed label="CallRule"] + 479 -> 285 [style=dashed label="WhileRule"] + 479 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 479 -> 287 [style=dashed label="CallExpression"] + 479 -> 288 [style=dashed label="DirectCallExpression"] + 479 -> 71 [style=dashed label="MethodCallExpression"] + 479 -> 72 [style=dashed label="LiteralCallExpression"] + 479 -> 73 [style=dashed label="IndirectCallExpression"] + 479 -> 81 [style=dashed label="Literal"] + 479 -> 82 [style=dashed label="UndefinedLiteral"] + 479 -> 83 [style=dashed label="BooleanLiteral"] + 479 -> 84 [style=dashed label="IntegerLiteral"] + 479 -> 85 [style=dashed label="RationalLiteral"] + 479 -> 86 [style=dashed label="DecimalLiteral"] + 479 -> 87 [style=dashed label="BinaryLiteral"] + 479 -> 88 [style=dashed label="StringLiteral"] + 479 -> 89 [style=dashed label="ReferenceLiteral"] + 479 -> 90 [style=dashed label="ListLiteral"] + 479 -> 91 [style=dashed label="RangeLiteral"] + 479 -> 92 [style=dashed label="TupleLiteral"] + 479 -> 93 [style=dashed label="RecordLiteral"] + 479 -> 94 [style=dashed label="Identifier"] + 479 -> 95 [style=dashed label="IdentifierPath"] + 480 [label="State 480\n\l 79 CaseRule: \"case\" Term \"of\" \"{\" error • \"}\"\l"] + 480 -> 501 [style=solid label="\"}\""] + 481 [label="State 481\n\l 82 CaseLabel: \"default\" • \":\" Rule\l"] + 481 -> 502 [style=solid label="\":\""] + 482 [label="State 482\n\l 83 CaseLabel: \"_\" • \":\" Rule\l"] + 482 -> 503 [style=solid label="\":\""] + 483 [label="State 483\n\l 78 CaseRule: \"case\" Term \"of\" \"{\" CaseLabels • \"}\"\l 80 CaseLabels: CaseLabels • CaseLabel\l"] + 483 -> 45 [style=solid label="\"let\""] + 483 -> 8 [style=solid label="\"in\""] + 483 -> 46 [style=solid label="\"forall\""] + 483 -> 47 [style=solid label="\"choose\""] + 483 -> 48 [style=solid label="\"if\""] + 483 -> 481 [style=solid label="\"default\""] + 483 -> 49 [style=solid label="\"exists\""] + 483 -> 50 [style=solid label="\"undef\""] + 483 -> 51 [style=solid label="\"false\""] + 483 -> 52 [style=solid label="\"true\""] + 483 -> 53 [style=solid label="\"not\""] + 483 -> 54 [style=solid label="\"+\""] + 483 -> 55 [style=solid label="\"-\""] + 483 -> 56 [style=solid label="\"(\""] + 483 -> 57 [style=solid label="\"[\""] + 483 -> 504 [style=solid label="\"}\""] + 483 -> 482 [style=solid label="\"_\""] + 483 -> 58 [style=solid label="\"|\""] + 483 -> 59 [style=solid label="\"@\""] + 483 -> 60 [style=solid label="\"binary\""] + 483 -> 61 [style=solid label="\"hexadecimal\""] + 483 -> 62 [style=solid label="\"integer\""] + 483 -> 63 [style=solid label="\"rational\""] + 483 -> 64 [style=solid label="\"decimal\""] + 483 -> 65 [style=solid label="\"string\""] + 483 -> 9 [style=solid label="\"identifier\""] + 483 -> 505 [style=dashed label="CaseLabel"] + 483 -> 485 [style=dashed label="Term"] + 483 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 483 -> 68 [style=dashed label="OperatorExpression"] + 483 -> 69 [style=dashed label="CallExpression"] + 483 -> 70 [style=dashed label="DirectCallExpression"] + 483 -> 71 [style=dashed label="MethodCallExpression"] + 483 -> 72 [style=dashed label="LiteralCallExpression"] + 483 -> 73 [style=dashed label="IndirectCallExpression"] + 483 -> 74 [style=dashed label="TypeCastingExpression"] + 483 -> 75 [style=dashed label="LetExpression"] + 483 -> 76 [style=dashed label="ConditionalExpression"] + 483 -> 77 [style=dashed label="ChooseExpression"] + 483 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 483 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 483 -> 80 [style=dashed label="CardinalityExpression"] + 483 -> 81 [style=dashed label="Literal"] + 483 -> 82 [style=dashed label="UndefinedLiteral"] + 483 -> 83 [style=dashed label="BooleanLiteral"] + 483 -> 84 [style=dashed label="IntegerLiteral"] + 483 -> 85 [style=dashed label="RationalLiteral"] + 483 -> 86 [style=dashed label="DecimalLiteral"] + 483 -> 87 [style=dashed label="BinaryLiteral"] + 483 -> 88 [style=dashed label="StringLiteral"] + 483 -> 89 [style=dashed label="ReferenceLiteral"] + 483 -> 90 [style=dashed label="ListLiteral"] + 483 -> 91 [style=dashed label="RangeLiteral"] + 483 -> 92 [style=dashed label="TupleLiteral"] + 483 -> 93 [style=dashed label="RecordLiteral"] + 483 -> 94 [style=dashed label="Identifier"] + 483 -> 95 [style=dashed label="IdentifierPath"] + 484 [label="State 484\n\l 81 CaseLabels: CaseLabel •\l"] + 484 -> "484R81" [style=solid] + "484R81" [label="R81", fillcolor=3, shape=diamond, style=filled] + 485 [label="State 485\n\l 84 CaseLabel: Term • \":\" Rule\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 485 -> 148 [style=solid label="\"and\""] + 485 -> 149 [style=solid label="\"or\""] + 485 -> 150 [style=solid label="\"xor\""] + 485 -> 151 [style=solid label="\"implies\""] + 485 -> 152 [style=solid label="\"+\""] + 485 -> 153 [style=solid label="\"-\""] + 485 -> 154 [style=solid label="\"=\""] + 485 -> 506 [style=solid label="\":\""] + 485 -> 155 [style=solid label="\"<\""] + 485 -> 156 [style=solid label="\">\""] + 485 -> 157 [style=solid label="\"*\""] + 485 -> 158 [style=solid label="\"/\""] + 485 -> 159 [style=solid label="\"%\""] + 485 -> 160 [style=solid label="\"^\""] + 485 -> 161 [style=solid label="\"=>\""] + 485 -> 162 [style=solid label="\"!=\""] + 485 -> 163 [style=solid label="\"<=\""] + 485 -> 164 [style=solid label="\">=\""] + 486 [label="State 486\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type \"=\" • Rule\l"] + 486 -> 259 [style=solid label="\"seq\""] + 486 -> 260 [style=solid label="\"par\""] + 486 -> 261 [style=solid label="\"skip\""] + 486 -> 262 [style=solid label="\"let\""] + 486 -> 263 [style=solid label="\"local\""] + 486 -> 8 [style=solid label="\"in\""] + 486 -> 264 [style=solid label="\"forall\""] + 486 -> 265 [style=solid label="\"choose\""] + 486 -> 266 [style=solid label="\"iterate\""] + 486 -> 267 [style=solid label="\"if\""] + 486 -> 268 [style=solid label="\"case\""] + 486 -> 269 [style=solid label="\"while\""] + 486 -> 50 [style=solid label="\"undef\""] + 486 -> 51 [style=solid label="\"false\""] + 486 -> 52 [style=solid label="\"true\""] + 486 -> 54 [style=solid label="\"+\""] + 486 -> 55 [style=solid label="\"-\""] + 486 -> 56 [style=solid label="\"(\""] + 486 -> 57 [style=solid label="\"[\""] + 486 -> 270 [style=solid label="\"{\""] + 486 -> 59 [style=solid label="\"@\""] + 486 -> 271 [style=solid label="\"{|\""] + 486 -> 60 [style=solid label="\"binary\""] + 486 -> 61 [style=solid label="\"hexadecimal\""] + 486 -> 62 [style=solid label="\"integer\""] + 486 -> 63 [style=solid label="\"rational\""] + 486 -> 64 [style=solid label="\"decimal\""] + 486 -> 65 [style=solid label="\"string\""] + 486 -> 9 [style=solid label="\"identifier\""] + 486 -> 507 [style=dashed label="Rule"] + 486 -> 273 [style=dashed label="SkipRule"] + 486 -> 274 [style=dashed label="ConditionalRule"] + 486 -> 275 [style=dashed label="CaseRule"] + 486 -> 276 [style=dashed label="LetRule"] + 486 -> 277 [style=dashed label="LocalRule"] + 486 -> 278 [style=dashed label="ForallRule"] + 486 -> 279 [style=dashed label="ChooseRule"] + 486 -> 280 [style=dashed label="IterateRule"] + 486 -> 281 [style=dashed label="BlockRule"] + 486 -> 282 [style=dashed label="SequenceRule"] + 486 -> 283 [style=dashed label="UpdateRule"] + 486 -> 284 [style=dashed label="CallRule"] + 486 -> 285 [style=dashed label="WhileRule"] + 486 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 486 -> 287 [style=dashed label="CallExpression"] + 486 -> 288 [style=dashed label="DirectCallExpression"] + 486 -> 71 [style=dashed label="MethodCallExpression"] + 486 -> 72 [style=dashed label="LiteralCallExpression"] + 486 -> 73 [style=dashed label="IndirectCallExpression"] + 486 -> 81 [style=dashed label="Literal"] + 486 -> 82 [style=dashed label="UndefinedLiteral"] + 486 -> 83 [style=dashed label="BooleanLiteral"] + 486 -> 84 [style=dashed label="IntegerLiteral"] + 486 -> 85 [style=dashed label="RationalLiteral"] + 486 -> 86 [style=dashed label="DecimalLiteral"] + 486 -> 87 [style=dashed label="BinaryLiteral"] + 486 -> 88 [style=dashed label="StringLiteral"] + 486 -> 89 [style=dashed label="ReferenceLiteral"] + 486 -> 90 [style=dashed label="ListLiteral"] + 486 -> 91 [style=dashed label="RangeLiteral"] + 486 -> 92 [style=dashed label="TupleLiteral"] + 486 -> 93 [style=dashed label="RecordLiteral"] + 486 -> 94 [style=dashed label="Identifier"] + 486 -> 95 [style=dashed label="IdentifierPath"] + 487 [label="State 487\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" • Rule\l"] + 487 -> 259 [style=solid label="\"seq\""] + 487 -> 260 [style=solid label="\"par\""] + 487 -> 261 [style=solid label="\"skip\""] + 487 -> 262 [style=solid label="\"let\""] + 487 -> 263 [style=solid label="\"local\""] + 487 -> 8 [style=solid label="\"in\""] + 487 -> 264 [style=solid label="\"forall\""] + 487 -> 265 [style=solid label="\"choose\""] + 487 -> 266 [style=solid label="\"iterate\""] + 487 -> 267 [style=solid label="\"if\""] + 487 -> 268 [style=solid label="\"case\""] + 487 -> 269 [style=solid label="\"while\""] + 487 -> 50 [style=solid label="\"undef\""] + 487 -> 51 [style=solid label="\"false\""] + 487 -> 52 [style=solid label="\"true\""] + 487 -> 54 [style=solid label="\"+\""] + 487 -> 55 [style=solid label="\"-\""] + 487 -> 56 [style=solid label="\"(\""] + 487 -> 57 [style=solid label="\"[\""] + 487 -> 270 [style=solid label="\"{\""] + 487 -> 59 [style=solid label="\"@\""] + 487 -> 271 [style=solid label="\"{|\""] + 487 -> 60 [style=solid label="\"binary\""] + 487 -> 61 [style=solid label="\"hexadecimal\""] + 487 -> 62 [style=solid label="\"integer\""] + 487 -> 63 [style=solid label="\"rational\""] + 487 -> 64 [style=solid label="\"decimal\""] + 487 -> 65 [style=solid label="\"string\""] + 487 -> 9 [style=solid label="\"identifier\""] + 487 -> 508 [style=dashed label="Rule"] + 487 -> 273 [style=dashed label="SkipRule"] + 487 -> 274 [style=dashed label="ConditionalRule"] + 487 -> 275 [style=dashed label="CaseRule"] + 487 -> 276 [style=dashed label="LetRule"] + 487 -> 277 [style=dashed label="LocalRule"] + 487 -> 278 [style=dashed label="ForallRule"] + 487 -> 279 [style=dashed label="ChooseRule"] + 487 -> 280 [style=dashed label="IterateRule"] + 487 -> 281 [style=dashed label="BlockRule"] + 487 -> 282 [style=dashed label="SequenceRule"] + 487 -> 283 [style=dashed label="UpdateRule"] + 487 -> 284 [style=dashed label="CallRule"] + 487 -> 285 [style=dashed label="WhileRule"] + 487 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 487 -> 287 [style=dashed label="CallExpression"] + 487 -> 288 [style=dashed label="DirectCallExpression"] + 487 -> 71 [style=dashed label="MethodCallExpression"] + 487 -> 72 [style=dashed label="LiteralCallExpression"] + 487 -> 73 [style=dashed label="IndirectCallExpression"] + 487 -> 81 [style=dashed label="Literal"] + 487 -> 82 [style=dashed label="UndefinedLiteral"] + 487 -> 83 [style=dashed label="BooleanLiteral"] + 487 -> 84 [style=dashed label="IntegerLiteral"] + 487 -> 85 [style=dashed label="RationalLiteral"] + 487 -> 86 [style=dashed label="DecimalLiteral"] + 487 -> 87 [style=dashed label="BinaryLiteral"] + 487 -> 88 [style=dashed label="StringLiteral"] + 487 -> 89 [style=dashed label="ReferenceLiteral"] + 487 -> 90 [style=dashed label="ListLiteral"] + 487 -> 91 [style=dashed label="RangeLiteral"] + 487 -> 92 [style=dashed label="TupleLiteral"] + 487 -> 93 [style=dashed label="RecordLiteral"] + 487 -> 94 [style=dashed label="Identifier"] + 487 -> 95 [style=dashed label="IdentifierPath"] + 488 [label="State 488\n\l 58 DeclarationDefinition: \"derived\" Identifier \":\" MaybeFunctionParameters • \"->\" Type\l"] + 488 -> 509 [style=solid label="\"->\""] + 489 [label="State 489\n\l 59 DeclarationDefinition: \"rule\" Identifier \":\" MaybeFunctionParameters • \"->\" Type\l"] + 489 -> 510 [style=solid label="\"->\""] + 490 [label="State 490\n\l 52 ImplementationDefinition: \"implements\" IdentifierPath \"for\" Type \"=\" \"{\" ImplementationDefinitionDefinitions \"}\" •\l"] + 490 -> "490R52" [style=solid] + "490R52" [label="R52", fillcolor=3, shape=diamond, style=filled] + 491 [label="State 491\n\l211 MaybeDefined: \"defined\" \"{\" • Term \"}\"\l"] + 491 -> 45 [style=solid label="\"let\""] + 491 -> 8 [style=solid label="\"in\""] + 491 -> 46 [style=solid label="\"forall\""] + 491 -> 47 [style=solid label="\"choose\""] + 491 -> 48 [style=solid label="\"if\""] + 491 -> 49 [style=solid label="\"exists\""] + 491 -> 50 [style=solid label="\"undef\""] + 491 -> 51 [style=solid label="\"false\""] + 491 -> 52 [style=solid label="\"true\""] + 491 -> 53 [style=solid label="\"not\""] + 491 -> 54 [style=solid label="\"+\""] + 491 -> 55 [style=solid label="\"-\""] + 491 -> 56 [style=solid label="\"(\""] + 491 -> 57 [style=solid label="\"[\""] + 491 -> 58 [style=solid label="\"|\""] + 491 -> 59 [style=solid label="\"@\""] + 491 -> 60 [style=solid label="\"binary\""] + 491 -> 61 [style=solid label="\"hexadecimal\""] + 491 -> 62 [style=solid label="\"integer\""] + 491 -> 63 [style=solid label="\"rational\""] + 491 -> 64 [style=solid label="\"decimal\""] + 491 -> 65 [style=solid label="\"string\""] + 491 -> 9 [style=solid label="\"identifier\""] + 491 -> 511 [style=dashed label="Term"] + 491 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 491 -> 68 [style=dashed label="OperatorExpression"] + 491 -> 69 [style=dashed label="CallExpression"] + 491 -> 70 [style=dashed label="DirectCallExpression"] + 491 -> 71 [style=dashed label="MethodCallExpression"] + 491 -> 72 [style=dashed label="LiteralCallExpression"] + 491 -> 73 [style=dashed label="IndirectCallExpression"] + 491 -> 74 [style=dashed label="TypeCastingExpression"] + 491 -> 75 [style=dashed label="LetExpression"] + 491 -> 76 [style=dashed label="ConditionalExpression"] + 491 -> 77 [style=dashed label="ChooseExpression"] + 491 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 491 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 491 -> 80 [style=dashed label="CardinalityExpression"] + 491 -> 81 [style=dashed label="Literal"] + 491 -> 82 [style=dashed label="UndefinedLiteral"] + 491 -> 83 [style=dashed label="BooleanLiteral"] + 491 -> 84 [style=dashed label="IntegerLiteral"] + 491 -> 85 [style=dashed label="RationalLiteral"] + 491 -> 86 [style=dashed label="DecimalLiteral"] + 491 -> 87 [style=dashed label="BinaryLiteral"] + 491 -> 88 [style=dashed label="StringLiteral"] + 491 -> 89 [style=dashed label="ReferenceLiteral"] + 491 -> 90 [style=dashed label="ListLiteral"] + 491 -> 91 [style=dashed label="RangeLiteral"] + 491 -> 92 [style=dashed label="TupleLiteral"] + 491 -> 93 [style=dashed label="RecordLiteral"] + 491 -> 94 [style=dashed label="Identifier"] + 491 -> 95 [style=dashed label="IdentifierPath"] + 492 [label="State 492\n\l213 MaybeInitially: \"=\" • \"{\" Initializers \"}\"\l"] + 492 -> 512 [style=solid label="\"{\""] + 493 [label="State 493\n\l 33 FunctionDefinition: \"function\" Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially •\l"] + 493 -> "493R33" [style=solid] + "493R33" [label="R33", fillcolor=3, shape=diamond, style=filled] + 494 [label="State 494\n\l 26 DerivedDefinition: \"derived\" Identifier \"(\" error \")\" \"->\" Type \"=\" Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 494 -> 148 [style=solid label="\"and\""] + 494 -> 149 [style=solid label="\"or\""] + 494 -> 150 [style=solid label="\"xor\""] + 494 -> 151 [style=solid label="\"implies\""] + 494 -> 152 [style=solid label="\"+\""] + 494 -> 153 [style=solid label="\"-\""] + 494 -> 154 [style=solid label="\"=\""] + 494 -> 155 [style=solid label="\"<\""] + 494 -> 156 [style=solid label="\">\""] + 494 -> 157 [style=solid label="\"*\""] + 494 -> 158 [style=solid label="\"/\""] + 494 -> 159 [style=solid label="\"%\""] + 494 -> 160 [style=solid label="\"^\""] + 494 -> 161 [style=solid label="\"=>\""] + 494 -> 162 [style=solid label="\"!=\""] + 494 -> 163 [style=solid label="\"<=\""] + 494 -> 164 [style=solid label="\">=\""] + 494 -> "494R26" [style=solid] + "494R26" [label="R26", fillcolor=3, shape=diamond, style=filled] + 495 [label="State 495\n\l 25 DerivedDefinition: \"derived\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Term •\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 495 -> 148 [style=solid label="\"and\""] + 495 -> 149 [style=solid label="\"or\""] + 495 -> 150 [style=solid label="\"xor\""] + 495 -> 151 [style=solid label="\"implies\""] + 495 -> 152 [style=solid label="\"+\""] + 495 -> 153 [style=solid label="\"-\""] + 495 -> 154 [style=solid label="\"=\""] + 495 -> 155 [style=solid label="\"<\""] + 495 -> 156 [style=solid label="\">\""] + 495 -> 157 [style=solid label="\"*\""] + 495 -> 158 [style=solid label="\"/\""] + 495 -> 159 [style=solid label="\"%\""] + 495 -> 160 [style=solid label="\"^\""] + 495 -> 161 [style=solid label="\"=>\""] + 495 -> 162 [style=solid label="\"!=\""] + 495 -> 163 [style=solid label="\"<=\""] + 495 -> 164 [style=solid label="\">=\""] + 495 -> "495R25" [style=solid] + "495R25" [label="R25", fillcolor=3, shape=diamond, style=filled] + 496 [label="State 496\n\l243 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type • MaybeDefined MaybeInitially\l"] + 496 -> 471 [style=solid label="\"defined\""] + 496 -> 513 [style=dashed label="MaybeDefined"] + 496 -> "496R212" [style=solid] + "496R212" [label="R212", fillcolor=3, shape=diamond, style=filled] + 497 [label="State 497\n\l 87 ForallRule: \"forall\" AttributedVariables \"in\" Term \"do\" Rule •\l"] + 497 -> "497R87" [style=solid] + "497R87" [label="R87", fillcolor=3, shape=diamond, style=filled] + 498 [label="State 498\n\l 88 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term • \"do\" Rule\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l"] + 498 -> 514 [style=solid label="\"do\""] + 498 -> 148 [style=solid label="\"and\""] + 498 -> 149 [style=solid label="\"or\""] + 498 -> 150 [style=solid label="\"xor\""] + 498 -> 151 [style=solid label="\"implies\""] + 498 -> 152 [style=solid label="\"+\""] + 498 -> 153 [style=solid label="\"-\""] + 498 -> 154 [style=solid label="\"=\""] + 498 -> 155 [style=solid label="\"<\""] + 498 -> 156 [style=solid label="\">\""] + 498 -> 157 [style=solid label="\"*\""] + 498 -> 158 [style=solid label="\"/\""] + 498 -> 159 [style=solid label="\"%\""] + 498 -> 160 [style=solid label="\"^\""] + 498 -> 161 [style=solid label="\"=>\""] + 498 -> 162 [style=solid label="\"!=\""] + 498 -> 163 [style=solid label="\"<=\""] + 498 -> 164 [style=solid label="\">=\""] + 499 [label="State 499\n\l 89 ChooseRule: \"choose\" AttributedVariables \"in\" Term \"do\" Rule •\l"] + 499 -> "499R89" [style=solid] + "499R89" [label="R89", fillcolor=3, shape=diamond, style=filled] + 500 [label="State 500\n\l 77 ConditionalRule: \"if\" Term \"then\" Rule \"else\" Rule •\l"] + 500 -> "500R77" [style=solid] + "500R77" [label="R77", fillcolor=3, shape=diamond, style=filled] + 501 [label="State 501\n\l 79 CaseRule: \"case\" Term \"of\" \"{\" error \"}\" •\l"] + 501 -> "501R79" [style=solid] + "501R79" [label="R79", fillcolor=3, shape=diamond, style=filled] + 502 [label="State 502\n\l 82 CaseLabel: \"default\" \":\" • Rule\l"] + 502 -> 259 [style=solid label="\"seq\""] + 502 -> 260 [style=solid label="\"par\""] + 502 -> 261 [style=solid label="\"skip\""] + 502 -> 262 [style=solid label="\"let\""] + 502 -> 263 [style=solid label="\"local\""] + 502 -> 8 [style=solid label="\"in\""] + 502 -> 264 [style=solid label="\"forall\""] + 502 -> 265 [style=solid label="\"choose\""] + 502 -> 266 [style=solid label="\"iterate\""] + 502 -> 267 [style=solid label="\"if\""] + 502 -> 268 [style=solid label="\"case\""] + 502 -> 269 [style=solid label="\"while\""] + 502 -> 50 [style=solid label="\"undef\""] + 502 -> 51 [style=solid label="\"false\""] + 502 -> 52 [style=solid label="\"true\""] + 502 -> 54 [style=solid label="\"+\""] + 502 -> 55 [style=solid label="\"-\""] + 502 -> 56 [style=solid label="\"(\""] + 502 -> 57 [style=solid label="\"[\""] + 502 -> 270 [style=solid label="\"{\""] + 502 -> 59 [style=solid label="\"@\""] + 502 -> 271 [style=solid label="\"{|\""] + 502 -> 60 [style=solid label="\"binary\""] + 502 -> 61 [style=solid label="\"hexadecimal\""] + 502 -> 62 [style=solid label="\"integer\""] + 502 -> 63 [style=solid label="\"rational\""] + 502 -> 64 [style=solid label="\"decimal\""] + 502 -> 65 [style=solid label="\"string\""] + 502 -> 9 [style=solid label="\"identifier\""] + 502 -> 515 [style=dashed label="Rule"] + 502 -> 273 [style=dashed label="SkipRule"] + 502 -> 274 [style=dashed label="ConditionalRule"] + 502 -> 275 [style=dashed label="CaseRule"] + 502 -> 276 [style=dashed label="LetRule"] + 502 -> 277 [style=dashed label="LocalRule"] + 502 -> 278 [style=dashed label="ForallRule"] + 502 -> 279 [style=dashed label="ChooseRule"] + 502 -> 280 [style=dashed label="IterateRule"] + 502 -> 281 [style=dashed label="BlockRule"] + 502 -> 282 [style=dashed label="SequenceRule"] + 502 -> 283 [style=dashed label="UpdateRule"] + 502 -> 284 [style=dashed label="CallRule"] + 502 -> 285 [style=dashed label="WhileRule"] + 502 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 502 -> 287 [style=dashed label="CallExpression"] + 502 -> 288 [style=dashed label="DirectCallExpression"] + 502 -> 71 [style=dashed label="MethodCallExpression"] + 502 -> 72 [style=dashed label="LiteralCallExpression"] + 502 -> 73 [style=dashed label="IndirectCallExpression"] + 502 -> 81 [style=dashed label="Literal"] + 502 -> 82 [style=dashed label="UndefinedLiteral"] + 502 -> 83 [style=dashed label="BooleanLiteral"] + 502 -> 84 [style=dashed label="IntegerLiteral"] + 502 -> 85 [style=dashed label="RationalLiteral"] + 502 -> 86 [style=dashed label="DecimalLiteral"] + 502 -> 87 [style=dashed label="BinaryLiteral"] + 502 -> 88 [style=dashed label="StringLiteral"] + 502 -> 89 [style=dashed label="ReferenceLiteral"] + 502 -> 90 [style=dashed label="ListLiteral"] + 502 -> 91 [style=dashed label="RangeLiteral"] + 502 -> 92 [style=dashed label="TupleLiteral"] + 502 -> 93 [style=dashed label="RecordLiteral"] + 502 -> 94 [style=dashed label="Identifier"] + 502 -> 95 [style=dashed label="IdentifierPath"] + 503 [label="State 503\n\l 83 CaseLabel: \"_\" \":\" • Rule\l"] + 503 -> 259 [style=solid label="\"seq\""] + 503 -> 260 [style=solid label="\"par\""] + 503 -> 261 [style=solid label="\"skip\""] + 503 -> 262 [style=solid label="\"let\""] + 503 -> 263 [style=solid label="\"local\""] + 503 -> 8 [style=solid label="\"in\""] + 503 -> 264 [style=solid label="\"forall\""] + 503 -> 265 [style=solid label="\"choose\""] + 503 -> 266 [style=solid label="\"iterate\""] + 503 -> 267 [style=solid label="\"if\""] + 503 -> 268 [style=solid label="\"case\""] + 503 -> 269 [style=solid label="\"while\""] + 503 -> 50 [style=solid label="\"undef\""] + 503 -> 51 [style=solid label="\"false\""] + 503 -> 52 [style=solid label="\"true\""] + 503 -> 54 [style=solid label="\"+\""] + 503 -> 55 [style=solid label="\"-\""] + 503 -> 56 [style=solid label="\"(\""] + 503 -> 57 [style=solid label="\"[\""] + 503 -> 270 [style=solid label="\"{\""] + 503 -> 59 [style=solid label="\"@\""] + 503 -> 271 [style=solid label="\"{|\""] + 503 -> 60 [style=solid label="\"binary\""] + 503 -> 61 [style=solid label="\"hexadecimal\""] + 503 -> 62 [style=solid label="\"integer\""] + 503 -> 63 [style=solid label="\"rational\""] + 503 -> 64 [style=solid label="\"decimal\""] + 503 -> 65 [style=solid label="\"string\""] + 503 -> 9 [style=solid label="\"identifier\""] + 503 -> 516 [style=dashed label="Rule"] + 503 -> 273 [style=dashed label="SkipRule"] + 503 -> 274 [style=dashed label="ConditionalRule"] + 503 -> 275 [style=dashed label="CaseRule"] + 503 -> 276 [style=dashed label="LetRule"] + 503 -> 277 [style=dashed label="LocalRule"] + 503 -> 278 [style=dashed label="ForallRule"] + 503 -> 279 [style=dashed label="ChooseRule"] + 503 -> 280 [style=dashed label="IterateRule"] + 503 -> 281 [style=dashed label="BlockRule"] + 503 -> 282 [style=dashed label="SequenceRule"] + 503 -> 283 [style=dashed label="UpdateRule"] + 503 -> 284 [style=dashed label="CallRule"] + 503 -> 285 [style=dashed label="WhileRule"] + 503 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 503 -> 287 [style=dashed label="CallExpression"] + 503 -> 288 [style=dashed label="DirectCallExpression"] + 503 -> 71 [style=dashed label="MethodCallExpression"] + 503 -> 72 [style=dashed label="LiteralCallExpression"] + 503 -> 73 [style=dashed label="IndirectCallExpression"] + 503 -> 81 [style=dashed label="Literal"] + 503 -> 82 [style=dashed label="UndefinedLiteral"] + 503 -> 83 [style=dashed label="BooleanLiteral"] + 503 -> 84 [style=dashed label="IntegerLiteral"] + 503 -> 85 [style=dashed label="RationalLiteral"] + 503 -> 86 [style=dashed label="DecimalLiteral"] + 503 -> 87 [style=dashed label="BinaryLiteral"] + 503 -> 88 [style=dashed label="StringLiteral"] + 503 -> 89 [style=dashed label="ReferenceLiteral"] + 503 -> 90 [style=dashed label="ListLiteral"] + 503 -> 91 [style=dashed label="RangeLiteral"] + 503 -> 92 [style=dashed label="TupleLiteral"] + 503 -> 93 [style=dashed label="RecordLiteral"] + 503 -> 94 [style=dashed label="Identifier"] + 503 -> 95 [style=dashed label="IdentifierPath"] + 504 [label="State 504\n\l 78 CaseRule: \"case\" Term \"of\" \"{\" CaseLabels \"}\" •\l"] + 504 -> "504R78" [style=solid] + "504R78" [label="R78", fillcolor=3, shape=diamond, style=filled] + 505 [label="State 505\n\l 80 CaseLabels: CaseLabels CaseLabel •\l"] + 505 -> "505R80" [style=solid] + "505R80" [label="R80", fillcolor=3, shape=diamond, style=filled] + 506 [label="State 506\n\l 84 CaseLabel: Term \":\" • Rule\l"] + 506 -> 259 [style=solid label="\"seq\""] + 506 -> 260 [style=solid label="\"par\""] + 506 -> 261 [style=solid label="\"skip\""] + 506 -> 262 [style=solid label="\"let\""] + 506 -> 263 [style=solid label="\"local\""] + 506 -> 8 [style=solid label="\"in\""] + 506 -> 264 [style=solid label="\"forall\""] + 506 -> 265 [style=solid label="\"choose\""] + 506 -> 266 [style=solid label="\"iterate\""] + 506 -> 267 [style=solid label="\"if\""] + 506 -> 268 [style=solid label="\"case\""] + 506 -> 269 [style=solid label="\"while\""] + 506 -> 50 [style=solid label="\"undef\""] + 506 -> 51 [style=solid label="\"false\""] + 506 -> 52 [style=solid label="\"true\""] + 506 -> 54 [style=solid label="\"+\""] + 506 -> 55 [style=solid label="\"-\""] + 506 -> 56 [style=solid label="\"(\""] + 506 -> 57 [style=solid label="\"[\""] + 506 -> 270 [style=solid label="\"{\""] + 506 -> 59 [style=solid label="\"@\""] + 506 -> 271 [style=solid label="\"{|\""] + 506 -> 60 [style=solid label="\"binary\""] + 506 -> 61 [style=solid label="\"hexadecimal\""] + 506 -> 62 [style=solid label="\"integer\""] + 506 -> 63 [style=solid label="\"rational\""] + 506 -> 64 [style=solid label="\"decimal\""] + 506 -> 65 [style=solid label="\"string\""] + 506 -> 9 [style=solid label="\"identifier\""] + 506 -> 517 [style=dashed label="Rule"] + 506 -> 273 [style=dashed label="SkipRule"] + 506 -> 274 [style=dashed label="ConditionalRule"] + 506 -> 275 [style=dashed label="CaseRule"] + 506 -> 276 [style=dashed label="LetRule"] + 506 -> 277 [style=dashed label="LocalRule"] + 506 -> 278 [style=dashed label="ForallRule"] + 506 -> 279 [style=dashed label="ChooseRule"] + 506 -> 280 [style=dashed label="IterateRule"] + 506 -> 281 [style=dashed label="BlockRule"] + 506 -> 282 [style=dashed label="SequenceRule"] + 506 -> 283 [style=dashed label="UpdateRule"] + 506 -> 284 [style=dashed label="CallRule"] + 506 -> 285 [style=dashed label="WhileRule"] + 506 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 506 -> 287 [style=dashed label="CallExpression"] + 506 -> 288 [style=dashed label="DirectCallExpression"] + 506 -> 71 [style=dashed label="MethodCallExpression"] + 506 -> 72 [style=dashed label="LiteralCallExpression"] + 506 -> 73 [style=dashed label="IndirectCallExpression"] + 506 -> 81 [style=dashed label="Literal"] + 506 -> 82 [style=dashed label="UndefinedLiteral"] + 506 -> 83 [style=dashed label="BooleanLiteral"] + 506 -> 84 [style=dashed label="IntegerLiteral"] + 506 -> 85 [style=dashed label="RationalLiteral"] + 506 -> 86 [style=dashed label="DecimalLiteral"] + 506 -> 87 [style=dashed label="BinaryLiteral"] + 506 -> 88 [style=dashed label="StringLiteral"] + 506 -> 89 [style=dashed label="ReferenceLiteral"] + 506 -> 90 [style=dashed label="ListLiteral"] + 506 -> 91 [style=dashed label="RangeLiteral"] + 506 -> 92 [style=dashed label="TupleLiteral"] + 506 -> 93 [style=dashed label="RecordLiteral"] + 506 -> 94 [style=dashed label="Identifier"] + 506 -> 95 [style=dashed label="IdentifierPath"] + 507 [label="State 507\n\l 32 RuleDefinition: \"rule\" Identifier \"(\" error \")\" \"->\" Type \"=\" Rule •\l"] + 507 -> "507R32" [style=solid] + "507R32" [label="R32", fillcolor=3, shape=diamond, style=filled] + 508 [label="State 508\n\l 30 RuleDefinition: \"rule\" Identifier \"(\" Parameters \")\" \"->\" Type \"=\" Rule •\l"] + 508 -> "508R30" [style=solid] + "508R30" [label="R30", fillcolor=3, shape=diamond, style=filled] + 509 [label="State 509\n\l 58 DeclarationDefinition: \"derived\" Identifier \":\" MaybeFunctionParameters \"->\" • Type\l"] + 509 -> 8 [style=solid label="\"in\""] + 509 -> 109 [style=solid label="\"(\""] + 509 -> 9 [style=solid label="\"identifier\""] + 509 -> 518 [style=dashed label="Type"] + 509 -> 111 [style=dashed label="BasicType"] + 509 -> 112 [style=dashed label="TupleType"] + 509 -> 113 [style=dashed label="RecordType"] + 509 -> 114 [style=dashed label="TemplateType"] + 509 -> 115 [style=dashed label="RelationType"] + 509 -> 116 [style=dashed label="FixedSizedType"] + 509 -> 94 [style=dashed label="Identifier"] + 509 -> 190 [style=dashed label="IdentifierPath"] + 510 [label="State 510\n\l 59 DeclarationDefinition: \"rule\" Identifier \":\" MaybeFunctionParameters \"->\" • Type\l"] + 510 -> 8 [style=solid label="\"in\""] + 510 -> 109 [style=solid label="\"(\""] + 510 -> 9 [style=solid label="\"identifier\""] + 510 -> 519 [style=dashed label="Type"] + 510 -> 111 [style=dashed label="BasicType"] + 510 -> 112 [style=dashed label="TupleType"] + 510 -> 113 [style=dashed label="RecordType"] + 510 -> 114 [style=dashed label="TemplateType"] + 510 -> 115 [style=dashed label="RelationType"] + 510 -> 116 [style=dashed label="FixedSizedType"] + 510 -> 94 [style=dashed label="Identifier"] + 510 -> 190 [style=dashed label="IdentifierPath"] + 511 [label="State 511\n\l120 OperatorExpression: Term • \"+\" Term\l121 | Term • \"-\" Term\l122 | Term • \"*\" Term\l123 | Term • \"/\" Term\l124 | Term • \"%\" Term\l125 | Term • \"^\" Term\l126 | Term • \"!=\" Term\l127 | Term • \"=\" Term\l128 | Term • \"<\" Term\l129 | Term • \">\" Term\l130 | Term • \"<=\" Term\l131 | Term • \">=\" Term\l132 | Term • \"or\" Term\l133 | Term • \"xor\" Term\l134 | Term • \"and\" Term\l135 | Term • \"=>\" Term\l136 | Term • \"implies\" Term\l211 MaybeDefined: \"defined\" \"{\" Term • \"}\"\l"] + 511 -> 148 [style=solid label="\"and\""] + 511 -> 149 [style=solid label="\"or\""] + 511 -> 150 [style=solid label="\"xor\""] + 511 -> 151 [style=solid label="\"implies\""] + 511 -> 152 [style=solid label="\"+\""] + 511 -> 153 [style=solid label="\"-\""] + 511 -> 154 [style=solid label="\"=\""] + 511 -> 520 [style=solid label="\"}\""] + 511 -> 155 [style=solid label="\"<\""] + 511 -> 156 [style=solid label="\">\""] + 511 -> 157 [style=solid label="\"*\""] + 511 -> 158 [style=solid label="\"/\""] + 511 -> 159 [style=solid label="\"%\""] + 511 -> 160 [style=solid label="\"^\""] + 511 -> 161 [style=solid label="\"=>\""] + 511 -> 162 [style=solid label="\"!=\""] + 511 -> 163 [style=solid label="\"<=\""] + 511 -> 164 [style=solid label="\">=\""] + 512 [label="State 512\n\l213 MaybeInitially: \"=\" \"{\" • Initializers \"}\"\l"] + 512 -> 45 [style=solid label="\"let\""] + 512 -> 8 [style=solid label="\"in\""] + 512 -> 46 [style=solid label="\"forall\""] + 512 -> 47 [style=solid label="\"choose\""] + 512 -> 48 [style=solid label="\"if\""] + 512 -> 49 [style=solid label="\"exists\""] + 512 -> 50 [style=solid label="\"undef\""] + 512 -> 51 [style=solid label="\"false\""] + 512 -> 52 [style=solid label="\"true\""] + 512 -> 53 [style=solid label="\"not\""] + 512 -> 54 [style=solid label="\"+\""] + 512 -> 55 [style=solid label="\"-\""] + 512 -> 170 [style=solid label="\"(\""] + 512 -> 57 [style=solid label="\"[\""] + 512 -> 58 [style=solid label="\"|\""] + 512 -> 59 [style=solid label="\"@\""] + 512 -> 60 [style=solid label="\"binary\""] + 512 -> 61 [style=solid label="\"hexadecimal\""] + 512 -> 62 [style=solid label="\"integer\""] + 512 -> 63 [style=solid label="\"rational\""] + 512 -> 64 [style=solid label="\"decimal\""] + 512 -> 65 [style=solid label="\"string\""] + 512 -> 9 [style=solid label="\"identifier\""] + 512 -> 171 [style=dashed label="Term"] + 512 -> 67 [style=dashed label="SimpleOrClaspedTerm"] + 512 -> 68 [style=dashed label="OperatorExpression"] + 512 -> 69 [style=dashed label="CallExpression"] + 512 -> 70 [style=dashed label="DirectCallExpression"] + 512 -> 71 [style=dashed label="MethodCallExpression"] + 512 -> 72 [style=dashed label="LiteralCallExpression"] + 512 -> 73 [style=dashed label="IndirectCallExpression"] + 512 -> 74 [style=dashed label="TypeCastingExpression"] + 512 -> 75 [style=dashed label="LetExpression"] + 512 -> 76 [style=dashed label="ConditionalExpression"] + 512 -> 77 [style=dashed label="ChooseExpression"] + 512 -> 78 [style=dashed label="UniversalQuantifierExpression"] + 512 -> 79 [style=dashed label="ExistentialQuantifierExpression"] + 512 -> 80 [style=dashed label="CardinalityExpression"] + 512 -> 81 [style=dashed label="Literal"] + 512 -> 82 [style=dashed label="UndefinedLiteral"] + 512 -> 83 [style=dashed label="BooleanLiteral"] + 512 -> 84 [style=dashed label="IntegerLiteral"] + 512 -> 85 [style=dashed label="RationalLiteral"] + 512 -> 86 [style=dashed label="DecimalLiteral"] + 512 -> 87 [style=dashed label="BinaryLiteral"] + 512 -> 88 [style=dashed label="StringLiteral"] + 512 -> 89 [style=dashed label="ReferenceLiteral"] + 512 -> 90 [style=dashed label="ListLiteral"] + 512 -> 91 [style=dashed label="RangeLiteral"] + 512 -> 172 [style=dashed label="TupleLiteral"] + 512 -> 93 [style=dashed label="RecordLiteral"] + 512 -> 521 [style=dashed label="Initializers"] + 512 -> 174 [style=dashed label="Initializer"] + 512 -> 94 [style=dashed label="Identifier"] + 512 -> 95 [style=dashed label="IdentifierPath"] + 513 [label="State 513\n\l243 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined • MaybeInitially\l"] + 513 -> 492 [style=solid label="\"=\""] + 513 -> 522 [style=dashed label="MaybeInitially"] + 513 -> "513R214" [style=solid] + "513R214" [label="R214", fillcolor=3, shape=diamond, style=filled] + 514 [label="State 514\n\l 88 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term \"do\" • Rule\l"] + 514 -> 259 [style=solid label="\"seq\""] + 514 -> 260 [style=solid label="\"par\""] + 514 -> 261 [style=solid label="\"skip\""] + 514 -> 262 [style=solid label="\"let\""] + 514 -> 263 [style=solid label="\"local\""] + 514 -> 8 [style=solid label="\"in\""] + 514 -> 264 [style=solid label="\"forall\""] + 514 -> 265 [style=solid label="\"choose\""] + 514 -> 266 [style=solid label="\"iterate\""] + 514 -> 267 [style=solid label="\"if\""] + 514 -> 268 [style=solid label="\"case\""] + 514 -> 269 [style=solid label="\"while\""] + 514 -> 50 [style=solid label="\"undef\""] + 514 -> 51 [style=solid label="\"false\""] + 514 -> 52 [style=solid label="\"true\""] + 514 -> 54 [style=solid label="\"+\""] + 514 -> 55 [style=solid label="\"-\""] + 514 -> 56 [style=solid label="\"(\""] + 514 -> 57 [style=solid label="\"[\""] + 514 -> 270 [style=solid label="\"{\""] + 514 -> 59 [style=solid label="\"@\""] + 514 -> 271 [style=solid label="\"{|\""] + 514 -> 60 [style=solid label="\"binary\""] + 514 -> 61 [style=solid label="\"hexadecimal\""] + 514 -> 62 [style=solid label="\"integer\""] + 514 -> 63 [style=solid label="\"rational\""] + 514 -> 64 [style=solid label="\"decimal\""] + 514 -> 65 [style=solid label="\"string\""] + 514 -> 9 [style=solid label="\"identifier\""] + 514 -> 523 [style=dashed label="Rule"] + 514 -> 273 [style=dashed label="SkipRule"] + 514 -> 274 [style=dashed label="ConditionalRule"] + 514 -> 275 [style=dashed label="CaseRule"] + 514 -> 276 [style=dashed label="LetRule"] + 514 -> 277 [style=dashed label="LocalRule"] + 514 -> 278 [style=dashed label="ForallRule"] + 514 -> 279 [style=dashed label="ChooseRule"] + 514 -> 280 [style=dashed label="IterateRule"] + 514 -> 281 [style=dashed label="BlockRule"] + 514 -> 282 [style=dashed label="SequenceRule"] + 514 -> 283 [style=dashed label="UpdateRule"] + 514 -> 284 [style=dashed label="CallRule"] + 514 -> 285 [style=dashed label="WhileRule"] + 514 -> 286 [style=dashed label="SimpleOrClaspedTerm"] + 514 -> 287 [style=dashed label="CallExpression"] + 514 -> 288 [style=dashed label="DirectCallExpression"] + 514 -> 71 [style=dashed label="MethodCallExpression"] + 514 -> 72 [style=dashed label="LiteralCallExpression"] + 514 -> 73 [style=dashed label="IndirectCallExpression"] + 514 -> 81 [style=dashed label="Literal"] + 514 -> 82 [style=dashed label="UndefinedLiteral"] + 514 -> 83 [style=dashed label="BooleanLiteral"] + 514 -> 84 [style=dashed label="IntegerLiteral"] + 514 -> 85 [style=dashed label="RationalLiteral"] + 514 -> 86 [style=dashed label="DecimalLiteral"] + 514 -> 87 [style=dashed label="BinaryLiteral"] + 514 -> 88 [style=dashed label="StringLiteral"] + 514 -> 89 [style=dashed label="ReferenceLiteral"] + 514 -> 90 [style=dashed label="ListLiteral"] + 514 -> 91 [style=dashed label="RangeLiteral"] + 514 -> 92 [style=dashed label="TupleLiteral"] + 514 -> 93 [style=dashed label="RecordLiteral"] + 514 -> 94 [style=dashed label="Identifier"] + 514 -> 95 [style=dashed label="IdentifierPath"] + 515 [label="State 515\n\l 82 CaseLabel: \"default\" \":\" Rule •\l"] + 515 -> "515R82" [style=solid] + "515R82" [label="R82", fillcolor=3, shape=diamond, style=filled] + 516 [label="State 516\n\l 83 CaseLabel: \"_\" \":\" Rule •\l"] + 516 -> "516R83" [style=solid] + "516R83" [label="R83", fillcolor=3, shape=diamond, style=filled] + 517 [label="State 517\n\l 84 CaseLabel: Term \":\" Rule •\l"] + 517 -> "517R84" [style=solid] + "517R84" [label="R84", fillcolor=3, shape=diamond, style=filled] + 518 [label="State 518\n\l 58 DeclarationDefinition: \"derived\" Identifier \":\" MaybeFunctionParameters \"->\" Type •\l"] + 518 -> "518R58" [style=solid] + "518R58" [label="R58", fillcolor=3, shape=diamond, style=filled] + 519 [label="State 519\n\l 59 DeclarationDefinition: \"rule\" Identifier \":\" MaybeFunctionParameters \"->\" Type •\l"] + 519 -> "519R59" [style=solid] + "519R59" [label="R59", fillcolor=3, shape=diamond, style=filled] + 520 [label="State 520\n\l211 MaybeDefined: \"defined\" \"{\" Term \"}\" •\l"] + 520 -> "520R211" [style=solid] + "520R211" [label="R211", fillcolor=3, shape=diamond, style=filled] + 521 [label="State 521\n\l213 MaybeInitially: \"=\" \"{\" Initializers • \"}\"\l215 Initializers: Initializers • \",\" Initializer\l"] + 521 -> 524 [style=solid label="\"}\""] + 521 -> 250 [style=solid label="\",\""] + 522 [label="State 522\n\l243 LocalFunctionDefinition: Identifier \":\" MaybeFunctionParameters \"->\" Type MaybeDefined MaybeInitially •\l"] + 522 -> "522R243" [style=solid] + "522R243" [label="R243", fillcolor=3, shape=diamond, style=filled] + 523 [label="State 523\n\l 88 ForallRule: \"forall\" AttributedVariables \"in\" Term \"with\" Term \"do\" Rule •\l"] + 523 -> "523R88" [style=solid] + "523R88" [label="R88", fillcolor=3, shape=diamond, style=filled] + 524 [label="State 524\n\l213 MaybeInitially: \"=\" \"{\" Initializers \"}\" •\l"] + 524 -> "524R213" [style=solid] + "524R213" [label="R213", fillcolor=3, shape=diamond, style=filled] } diff --git a/src/various/GrammarParser.output b/src/various/GrammarParser.output index a4094fd0..570b17b1 100644 --- a/src/various/GrammarParser.output +++ b/src/various/GrammarParser.output @@ -1,30 +1,6 @@ -Nonterminals useless in grammar - - FunctionDefinitions - FeatureDefinition - FeatureDeclarationOrDefinition - FeatureDeclarationsAndDefinitions - DeclarationDefinition - - Terminals unused in grammar - "feature" - - -Rules useless in grammar - - 235 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" - - 236 FeatureDeclarationOrDefinition: DeclarationDefinition - 237 | DerivedDefinition - 238 | RuleDefinition - - 239 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions "," FeatureDeclarationOrDefinition - 240 | FeatureDeclarationOrDefinition - - 241 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type - 242 | "rule" Identifier ":" MaybeFunctionParameters "->" Type + "this" Grammar @@ -53,704 +29,751 @@ Grammar 16 | InvariantDefinition 17 | ImportDefinition 18 | StructureDefinition + 19 | FeatureDefinition + 20 | ImplementationDefinition + + 21 InitDefinition: "init" IdentifierPath + 22 | "init" "{" Initializers "}" + + 23 EnumerationDefinition: "enumeration" Identifier "=" "{" Enumerators "}" + + 24 DerivedDefinition: "derived" Identifier "->" Type "=" Term + 25 | "derived" Identifier "(" Parameters ")" "->" Type "=" Term + 26 | "derived" Identifier "(" error ")" "->" Type "=" Term + + 27 RuleDefinition: "rule" Identifier "=" Rule + 28 | "rule" Identifier "->" Type "=" Rule + 29 | "rule" Identifier "(" Parameters ")" "=" Rule + 30 | "rule" Identifier "(" Parameters ")" "->" Type "=" Rule + 31 | "rule" Identifier "(" error ")" "=" Rule + 32 | "rule" Identifier "(" error ")" "->" Type "=" Rule + + 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + + 34 EnumeratorDefinition: Identifier + 35 | Attributes Identifier + 36 | error + + 37 Enumerators: Enumerators "," EnumeratorDefinition + 38 | EnumeratorDefinition - 19 InitDefinition: "init" IdentifierPath - 20 | "init" "{" Initializers "}" + 39 UsingDefinition: "using" Identifier "=" Type - 21 EnumerationDefinition: "enumeration" Identifier "=" "{" Enumerators "}" + 40 UsingPathDefinition: "using" IdentifierPath + 41 | "using" IdentifierPath "::" "*" - 22 DerivedDefinition: "derived" Identifier "->" Type "=" Term - 23 | "derived" Identifier "(" Parameters ")" "->" Type "=" Term - 24 | "derived" Identifier "(" error ")" "->" Type "=" Term + 42 InvariantDefinition: "invariant" Identifier "=" Term - 25 RuleDefinition: "rule" Identifier "=" Rule - 26 | "rule" Identifier "->" Type "=" Rule - 27 | "rule" Identifier "(" Parameters ")" "=" Rule - 28 | "rule" Identifier "(" Parameters ")" "->" Type "=" Rule - 29 | "rule" Identifier "(" error ")" "=" Rule - 30 | "rule" Identifier "(" error ")" "->" Type "=" Rule + 43 ImportDefinition: "import" IdentifierPath + 44 | "import" IdentifierPath "as" Identifier - 31 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 45 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinition "}" - 32 EnumeratorDefinition: Identifier - 33 | Attributes Identifier - 34 | error + 46 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" - 35 Enumerators: Enumerators "," EnumeratorDefinition - 36 | EnumeratorDefinition + 47 FeatureDeclarationOrDefinition: DeclarationDefinition + 48 | DerivedDefinition + 49 | RuleDefinition - 37 UsingDefinition: "using" Identifier "=" Type + 50 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition + 51 | FeatureDeclarationOrDefinition - 38 UsingPathDefinition: "using" IdentifierPath - 39 | "using" IdentifierPath "::" "*" + 52 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" + 53 | "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" - 40 InvariantDefinition: "invariant" Identifier "=" Term + 54 ImplementationDefinitionDefinition: DerivedDefinition + 55 | RuleDefinition - 41 ImportDefinition: "import" IdentifierPath - 42 | "import" IdentifierPath "as" Identifier - - 43 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinition "}" + 56 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions ImplementationDefinitionDefinition + 57 | ImplementationDefinitionDefinition - 44 Rules: Rules Rule - 45 | Rule + 58 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type + 59 | "rule" Identifier ":" MaybeFunctionParameters "->" Type - 46 Rule: SkipRule - 47 | ConditionalRule - 48 | CaseRule - 49 | LetRule - 50 | LocalRule - 51 | ForallRule - 52 | ChooseRule - 53 | IterateRule - 54 | BlockRule - 55 | SequenceRule - 56 | UpdateRule - 57 | CallRule - 58 | WhileRule + 60 Rules: Rules Rule + 61 | Rule - 59 SkipRule: "skip" + 62 Rule: SkipRule + 63 | ConditionalRule + 64 | CaseRule + 65 | LetRule + 66 | LocalRule + 67 | ForallRule + 68 | ChooseRule + 69 | IterateRule + 70 | BlockRule + 71 | SequenceRule + 72 | UpdateRule + 73 | CallRule + 74 | WhileRule - 60 ConditionalRule: "if" Term "then" Rule - 61 | "if" Term "then" Rule "else" Rule + 75 SkipRule: "skip" - 62 CaseRule: "case" Term "of" "{" CaseLabels "}" - 63 | "case" Term "of" "{" error "}" + 76 ConditionalRule: "if" Term "then" Rule + 77 | "if" Term "then" Rule "else" Rule - 64 CaseLabels: CaseLabels CaseLabel - 65 | CaseLabel + 78 CaseRule: "case" Term "of" "{" CaseLabels "}" + 79 | "case" Term "of" "{" error "}" - 66 CaseLabel: "default" ":" Rule - 67 | "_" ":" Rule - 68 | Term ":" Rule + 80 CaseLabels: CaseLabels CaseLabel + 81 | CaseLabel - 69 LetRule: "let" VariableBindings "in" Rule + 82 CaseLabel: "default" ":" Rule + 83 | "_" ":" Rule + 84 | Term ":" Rule - 70 LocalRule: "local" LocalFunctionDefinitions "in" Rule + 85 LetRule: "let" VariableBindings "in" Rule - 71 ForallRule: "forall" AttributedVariables "in" Term "do" Rule - 72 | "forall" AttributedVariables "in" Term "with" Term "do" Rule + 86 LocalRule: "local" LocalFunctionDefinitions "in" Rule - 73 ChooseRule: "choose" AttributedVariables "in" Term "do" Rule + 87 ForallRule: "forall" AttributedVariables "in" Term "do" Rule + 88 | "forall" AttributedVariables "in" Term "with" Term "do" Rule - 74 IterateRule: "iterate" Rule + 89 ChooseRule: "choose" AttributedVariables "in" Term "do" Rule - 75 BlockRule: "{" Rules "}" - 76 | "par" Rules "endpar" - 77 | "{" error "}" - 78 | "par" error "endpar" + 90 IterateRule: "iterate" Rule - 79 SequenceRule: "{|" Rules "|}" - 80 | "seq" Rules "endseq" - 81 | "{|" error "|}" - 82 | "seq" error "endseq" + 91 BlockRule: "{" Rules "}" + 92 | "par" Rules "endpar" + 93 | "{" error "}" + 94 | "par" error "endpar" - 83 UpdateRule: DirectCallExpression ":=" Term + 95 SequenceRule: "{|" Rules "|}" + 96 | "seq" Rules "endseq" + 97 | "{|" error "|}" + 98 | "seq" error "endseq" - 84 CallRule: CallExpression + 99 UpdateRule: DirectCallExpression ":=" Term - 85 WhileRule: "while" Term "do" Rule + 100 CallRule: CallExpression - 86 Terms: Terms "," Term - 87 | Term + 101 WhileRule: "while" Term "do" Rule - 88 Term: SimpleOrClaspedTerm - 89 | TypeCastingExpression - 90 | OperatorExpression - 91 | LetExpression - 92 | ConditionalExpression - 93 | ChooseExpression - 94 | UniversalQuantifierExpression - 95 | ExistentialQuantifierExpression - 96 | CardinalityExpression + 102 Terms: Terms "," Term + 103 | Term - 97 SimpleOrClaspedTerm: "(" Term ")" - 98 | "(" error ")" - 99 | CallExpression - 100 | LiteralCallExpression - 101 | Literal - 102 | "+" SimpleOrClaspedTerm - 103 | "-" SimpleOrClaspedTerm + 104 Term: SimpleOrClaspedTerm + 105 | TypeCastingExpression + 106 | OperatorExpression + 107 | LetExpression + 108 | ConditionalExpression + 109 | ChooseExpression + 110 | UniversalQuantifierExpression + 111 | ExistentialQuantifierExpression + 112 | CardinalityExpression - 104 OperatorExpression: Term "+" Term - 105 | Term "-" Term - 106 | Term "*" Term - 107 | Term "/" Term - 108 | Term "%" Term - 109 | Term "^" Term - 110 | Term "!=" Term - 111 | Term "=" Term - 112 | Term "<" Term - 113 | Term ">" Term - 114 | Term "<=" Term - 115 | Term ">=" Term - 116 | Term "or" Term - 117 | Term "xor" Term - 118 | Term "and" Term - 119 | Term "=>" Term - 120 | Term "implies" Term - 121 | "not" Term + 113 SimpleOrClaspedTerm: "(" Term ")" + 114 | "(" error ")" + 115 | CallExpression + 116 | LiteralCallExpression + 117 | Literal + 118 | "+" SimpleOrClaspedTerm + 119 | "-" SimpleOrClaspedTerm - 122 CallExpression: DirectCallExpression - 123 | MethodCallExpression - 124 | IndirectCallExpression + 120 OperatorExpression: Term "+" Term + 121 | Term "-" Term + 122 | Term "*" Term + 123 | Term "/" Term + 124 | Term "%" Term + 125 | Term "^" Term + 126 | Term "!=" Term + 127 | Term "=" Term + 128 | Term "<" Term + 129 | Term ">" Term + 130 | Term "<=" Term + 131 | Term ">=" Term + 132 | Term "or" Term + 133 | Term "xor" Term + 134 | Term "and" Term + 135 | Term "=>" Term + 136 | Term "implies" Term + 137 | "not" Term - 125 DirectCallExpression: IdentifierPath - 126 | IdentifierPath "(" ")" - 127 | IdentifierPath "(" Terms ")" - 128 | IdentifierPath "(" error ")" + 138 CallExpression: DirectCallExpression + 139 | MethodCallExpression + 140 | IndirectCallExpression - 129 MethodCallExpression: SimpleOrClaspedTerm "." Identifier - 130 | SimpleOrClaspedTerm "." Identifier "(" ")" - 131 | SimpleOrClaspedTerm "." Identifier "(" Terms ")" - 132 | SimpleOrClaspedTerm "." Identifier "(" error ")" + 141 DirectCallExpression: IdentifierPath + 142 | IdentifierPath "(" ")" + 143 | IdentifierPath "(" Terms ")" + 144 | IdentifierPath "(" error ")" - 133 LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral + 145 MethodCallExpression: SimpleOrClaspedTerm "." Identifier + 146 | SimpleOrClaspedTerm "." Identifier "(" ")" + 147 | SimpleOrClaspedTerm "." Identifier "(" Terms ")" + 148 | SimpleOrClaspedTerm "." Identifier "(" error ")" - 134 IndirectCallExpression: CallExpression "(" ")" - 135 | CallExpression "(" Terms ")" - 136 | CallExpression "(" error ")" + 149 LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral - 137 TypeCastingExpression: SimpleOrClaspedTerm "as" Type + 150 IndirectCallExpression: CallExpression "(" ")" + 151 | CallExpression "(" Terms ")" + 152 | CallExpression "(" error ")" - 138 LetExpression: "let" VariableBindings "in" Term + 153 TypeCastingExpression: SimpleOrClaspedTerm "as" Type - 139 ConditionalExpression: "if" Term "then" Term "else" Term + 154 LetExpression: "let" VariableBindings "in" Term - 140 ChooseExpression: "choose" AttributedVariables "in" Term "do" Term + 155 ConditionalExpression: "if" Term "then" Term "else" Term - 141 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term + 156 ChooseExpression: "choose" AttributedVariables "in" Term "do" Term - 142 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term + 157 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term - 143 CardinalityExpression: "|" SimpleOrClaspedTerm "|" + 158 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term - 144 Literal: UndefinedLiteral - 145 | BooleanLiteral - 146 | IntegerLiteral - 147 | RationalLiteral - 148 | DecimalLiteral - 149 | BinaryLiteral - 150 | StringLiteral - 151 | ReferenceLiteral - 152 | ListLiteral - 153 | RangeLiteral - 154 | TupleLiteral - 155 | RecordLiteral + 159 CardinalityExpression: "|" SimpleOrClaspedTerm "|" - 156 UndefinedLiteral: "undef" + 160 Literal: UndefinedLiteral + 161 | BooleanLiteral + 162 | IntegerLiteral + 163 | RationalLiteral + 164 | DecimalLiteral + 165 | BinaryLiteral + 166 | StringLiteral + 167 | ReferenceLiteral + 168 | ListLiteral + 169 | RangeLiteral + 170 | TupleLiteral + 171 | RecordLiteral - 157 BooleanLiteral: "true" - 158 | "false" + 172 UndefinedLiteral: "undef" - 159 IntegerLiteral: "integer" + 173 BooleanLiteral: "true" + 174 | "false" - 160 RationalLiteral: "rational" + 175 IntegerLiteral: "integer" - 161 DecimalLiteral: "decimal" + 176 RationalLiteral: "rational" - 162 BinaryLiteral: "binary" - 163 | "hexadecimal" + 177 DecimalLiteral: "decimal" - 164 StringLiteral: "string" + 178 BinaryLiteral: "binary" + 179 | "hexadecimal" - 165 ReferenceLiteral: "@" IdentifierPath + 180 StringLiteral: "string" - 166 ListLiteral: "[" "]" - 167 | "[" Terms "]" - 168 | "[" error "]" + 181 ReferenceLiteral: "@" IdentifierPath - 169 RangeLiteral: "[" Term ".." Term "]" + 182 ListLiteral: "[" "]" + 183 | "[" Terms "]" + 184 | "[" error "]" - 170 TupleLiteral: "(" Terms "," Term ")" + 185 RangeLiteral: "[" Term ".." Term "]" - 171 RecordLiteral: "(" Assignments ")" + 186 TupleLiteral: "(" Terms "," Term ")" - 172 Assignments: Assignments "," Assignment - 173 | Assignment + 187 RecordLiteral: "(" Assignments ")" - 174 Assignment: Identifier ":" Term + 188 Assignments: Assignments "," Assignment + 189 | Assignment - 175 Types: Types "," Type - 176 | Type + 190 Assignment: Identifier ":" Term - 177 Type: BasicType - 178 | TupleType - 179 | RecordType - 180 | TemplateType - 181 | RelationType - 182 | FixedSizedType + 191 Types: Types "," Type + 192 | Type - 183 BasicType: IdentifierPath + 193 Type: BasicType + 194 | TupleType + 195 | RecordType + 196 | TemplateType + 197 | RelationType + 198 | FixedSizedType - 184 TupleType: "(" Types "," Type ")" + 199 BasicType: IdentifierPath - 185 RecordType: "(" TypedVariables "," TypedVariable ")" + 200 TupleType: "(" Types "," Type ")" - 186 TemplateType: IdentifierPath "<" Types ">" + 201 RecordType: "(" TypedVariables "," TypedVariable ")" - 187 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" + 202 TemplateType: IdentifierPath "<" Types ">" - 188 FixedSizedType: IdentifierPath "'" Term + 203 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" - 189 FunctionParameters: FunctionParameters "*" Type - 190 | Type + 204 FixedSizedType: IdentifierPath "'" Term - 191 MaybeFunctionParameters: FunctionParameters - 192 | %empty + 205 FunctionParameters: FunctionParameters "*" Type + 206 | Type - 193 Parameters: Parameters "," TypedAttributedVariable - 194 | TypedAttributedVariable + 207 MaybeFunctionParameters: FunctionParameters + 208 | %empty - 195 MaybeDefined: "defined" "{" Term "}" - 196 | %empty + 209 Parameters: Parameters "," TypedAttributedVariable + 210 | TypedAttributedVariable - 197 MaybeInitially: "=" "{" Initializers "}" - 198 | %empty + 211 MaybeDefined: "defined" "{" Term "}" + 212 | %empty - 199 Initializers: Initializers "," Initializer - 200 | Initializer + 213 MaybeInitially: "=" "{" Initializers "}" + 214 | %empty - 201 Initializer: Term - 202 | "(" Term ")" "->" Term - 203 | TupleLiteral "->" Term + 215 Initializers: Initializers "," Initializer + 216 | Initializer - 204 Identifier: "identifier" - 205 | "in" + 217 Initializer: Term + 218 | "(" Term ")" "->" Term + 219 | TupleLiteral "->" Term - 206 IdentifierPath: IdentifierPath "::" Identifier - 207 | Identifier + 220 Identifier: "identifier" + 221 | "in" - 208 Variable: TypedVariable - 209 | Identifier + 222 IdentifierPath: IdentifierPath "::" Identifier + 223 | Identifier - 210 AttributedVariables: AttributedVariables "," AttributedVariable - 211 | AttributedVariable + 224 Variable: TypedVariable + 225 | Identifier - 212 TypedVariables: TypedVariables "," TypedVariable - 213 | TypedVariable + 226 AttributedVariables: AttributedVariables "," AttributedVariable + 227 | AttributedVariable - 214 TypedVariable: Identifier ":" Type + 228 TypedVariables: TypedVariables "," TypedVariable + 229 | TypedVariable - 215 AttributedVariable: Attributes Variable - 216 | Variable + 230 TypedVariable: Identifier ":" Type - 217 TypedAttributedVariable: Attributes TypedVariable - 218 | TypedVariable + 231 AttributedVariable: Attributes Variable + 232 | Variable - 219 VariableBindings: VariableBindings "," VariableBinding - 220 | VariableBinding + 233 TypedAttributedVariable: Attributes TypedVariable + 234 | TypedVariable - 221 VariableBinding: AttributedVariable "=" Term + 235 VariableBindings: VariableBindings "," VariableBinding + 236 | VariableBinding - 222 LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition - 223 | AttributedLocalFunctionDefinition + 237 VariableBinding: AttributedVariable "=" Term - 224 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition - 225 | LocalFunctionDefinition - 226 | error + 238 LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition + 239 | AttributedLocalFunctionDefinition - 227 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 240 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition + 241 | LocalFunctionDefinition + 242 | error - 228 Attributes: Attributes Attribute - 229 | Attribute + 243 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially - 230 Attribute: "[" BasicAttribute "]" - 231 | "[" ExpressionAttribute "]" - 232 | "[" error "]" + 244 Attributes: Attributes Attribute + 245 | Attribute - 233 BasicAttribute: Identifier + 246 Attribute: "[" BasicAttribute "]" + 247 | "[" ExpressionAttribute "]" + 248 | "[" error "]" - 234 ExpressionAttribute: Identifier Term + 249 BasicAttribute: Identifier + + 250 ExpressionAttribute: Identifier Term Terminals, with rules where they appear "end of file" (0) 0 - error (256) 8 24 29 30 34 63 77 78 81 82 98 128 132 136 168 226 232 + error (256) 8 26 31 32 36 79 93 94 97 98 114 144 148 152 184 242 248 "CASM" (258) 2 3 - "init" (259) 19 20 - "derived" (260) 22 23 24 - "enumeration" (261) 21 - "rule" (262) 25 26 27 28 29 30 - "using" (263) 37 38 39 - "invariant" (264) 40 - "import" (265) 41 42 - "structure" (266) 43 - "feature" (267) - "function" (268) 31 - "defined" (269) 195 - "seq" (270) 80 82 - "endseq" (271) 80 82 - "par" (272) 76 78 - "endpar" (273) 76 78 - "skip" (274) 59 - "let" (275) 69 138 - "local" (276) 70 - "in" (277) 69 70 71 72 73 138 140 141 142 205 - "forall" (278) 71 72 141 - "choose" (279) 73 140 - "iterate" (280) 74 - "do" (281) 71 72 73 85 140 - "if" (282) 60 61 139 - "then" (283) 60 61 139 - "else" (284) 61 139 - "case" (285) 62 63 - "of" (286) 62 63 - "default" (287) 66 - "holds" (288) 141 - "exists" (289) 142 - "with" (290) 72 142 - "as" (291) 42 137 - "while" (292) 85 - "undef" (293) 156 - "false" (294) 158 - "true" (295) 157 - "and" (296) 118 - "or" (297) 116 - "xor" (298) 117 - "implies" (299) 120 - "not" (300) 121 - "+" (301) 102 104 - "-" (302) 103 105 - "=" (303) 21 22 23 24 25 26 27 28 29 30 37 40 43 111 197 221 - "(" (304) 23 24 27 28 29 30 97 98 126 127 128 130 131 132 134 135 136 170 171 184 185 202 - ")" (305) 23 24 27 28 29 30 97 98 126 127 128 130 131 132 134 135 136 170 171 184 185 202 - "[" (306) 166 167 168 169 230 231 232 - "]" (307) 166 167 168 169 230 231 232 - "{" (308) 20 21 43 62 63 75 77 195 197 - "}" (309) 20 21 43 62 63 75 77 195 197 - ":" (310) 31 66 67 68 174 214 227 - "::" (311) 39 206 - "_" (312) 67 - "|" (313) 143 - "@" (314) 165 - "," (315) 35 86 170 172 175 184 185 193 199 210 212 219 222 - "<" (316) 112 186 187 - ">" (317) 113 186 187 - "*" (318) 39 106 189 - "/" (319) 107 - "%" (320) 108 - "^" (321) 109 - "'" (322) 188 - ".." (323) 169 - "." (324) 129 130 131 132 133 - "->" (325) 22 23 24 26 28 30 31 187 202 203 227 - "=>" (326) 119 - ":=" (327) 83 - "!=" (328) 110 - "<=" (329) 114 - ">=" (330) 115 - "{|" (331) 79 81 - "|}" (332) 79 81 - "binary" (333) 162 - "hexadecimal" (334) 163 - "integer" (335) 159 - "rational" (336) 160 - "decimal" (337) 161 - "string" (338) 164 - "identifier" (339) 204 - BASIC_TYPE (340) - CALL (341) - UPLUS (342) - UMINUS (343) - CALL_WITHOUT_ARGS (344) + "init" (259) 21 22 + "derived" (260) 24 25 26 58 + "enumeration" (261) 23 + "rule" (262) 27 28 29 30 31 32 59 + "using" (263) 39 40 41 + "invariant" (264) 42 + "import" (265) 43 44 + "structure" (266) 45 + "feature" (267) 46 + "implements" (268) 52 53 + "for" (269) 52 + "this" (270) + "function" (271) 33 + "defined" (272) 211 + "seq" (273) 96 98 + "endseq" (274) 96 98 + "par" (275) 92 94 + "endpar" (276) 92 94 + "skip" (277) 75 + "let" (278) 85 154 + "local" (279) 86 + "in" (280) 85 86 87 88 89 154 156 157 158 221 + "forall" (281) 87 88 157 + "choose" (282) 89 156 + "iterate" (283) 90 + "do" (284) 87 88 89 101 156 + "if" (285) 76 77 155 + "then" (286) 76 77 155 + "else" (287) 77 155 + "case" (288) 78 79 + "of" (289) 78 79 + "default" (290) 82 + "holds" (291) 157 + "exists" (292) 158 + "with" (293) 88 158 + "as" (294) 44 153 + "while" (295) 101 + "undef" (296) 172 + "false" (297) 174 + "true" (298) 173 + "and" (299) 134 + "or" (300) 132 + "xor" (301) 133 + "implies" (302) 136 + "not" (303) 137 + "+" (304) 118 120 + "-" (305) 119 121 + "=" (306) 23 24 25 26 27 28 29 30 31 32 39 42 45 46 52 53 127 213 237 + "(" (307) 25 26 29 30 31 32 113 114 142 143 144 146 147 148 150 151 152 186 187 200 201 218 + ")" (308) 25 26 29 30 31 32 113 114 142 143 144 146 147 148 150 151 152 186 187 200 201 218 + "[" (309) 182 183 184 185 246 247 248 + "]" (310) 182 183 184 185 246 247 248 + "{" (311) 22 23 45 46 52 53 78 79 91 93 211 213 + "}" (312) 22 23 45 46 52 53 78 79 91 93 211 213 + ":" (313) 33 58 59 82 83 84 190 230 243 + "::" (314) 41 222 + "_" (315) 83 + "|" (316) 159 + "@" (317) 181 + "," (318) 37 102 186 188 191 200 201 209 215 226 228 235 238 + "<" (319) 128 202 203 + ">" (320) 129 202 203 + "*" (321) 41 122 205 + "/" (322) 123 + "%" (323) 124 + "^" (324) 125 + "'" (325) 204 + ".." (326) 185 + "." (327) 145 146 147 148 149 + "->" (328) 24 25 26 28 30 32 33 58 59 203 218 219 243 + "=>" (329) 135 + ":=" (330) 99 + "!=" (331) 126 + "<=" (332) 130 + ">=" (333) 131 + "{|" (334) 95 97 + "|}" (335) 95 97 + "binary" (336) 178 + "hexadecimal" (337) 179 + "integer" (338) 175 + "rational" (339) 176 + "decimal" (340) 177 + "string" (341) 180 + "identifier" (342) 220 + BASIC_TYPE (343) + CALL (344) + UPLUS (345) + UMINUS (346) + CALL_WITHOUT_ARGS (347) Nonterminals, with rules where they appear - $accept (90) + $accept (93) on left: 0 - Specification (91) + Specification (94) on left: 1 on right: 0 - Header (92) + Header (95) on left: 2 3 on right: 1 - Definitions (93) + Definitions (96) on left: 4 5 on right: 1 4 - AttributedDefinition (94) + AttributedDefinition (97) on left: 6 7 8 on right: 4 5 - Definition (95) - on left: 9 10 11 12 13 14 15 16 17 18 + Definition (98) + on left: 9 10 11 12 13 14 15 16 17 18 19 20 on right: 6 7 - InitDefinition (96) - on left: 19 20 + InitDefinition (99) + on left: 21 22 on right: 9 - EnumerationDefinition (97) - on left: 21 + EnumerationDefinition (100) + on left: 23 on right: 10 - DerivedDefinition (98) - on left: 22 23 24 - on right: 11 - RuleDefinition (99) - on left: 25 26 27 28 29 30 - on right: 12 - FunctionDefinition (100) - on left: 31 - on right: 13 43 - EnumeratorDefinition (101) - on left: 32 33 34 - on right: 35 36 - Enumerators (102) - on left: 35 36 - on right: 21 35 - UsingDefinition (103) - on left: 37 + DerivedDefinition (101) + on left: 24 25 26 + on right: 11 48 54 + RuleDefinition (102) + on left: 27 28 29 30 31 32 + on right: 12 49 55 + FunctionDefinition (103) + on left: 33 + on right: 13 45 + EnumeratorDefinition (104) + on left: 34 35 36 + on right: 37 38 + Enumerators (105) + on left: 37 38 + on right: 23 37 + UsingDefinition (106) + on left: 39 on right: 14 - UsingPathDefinition (104) - on left: 38 39 + UsingPathDefinition (107) + on left: 40 41 on right: 15 - InvariantDefinition (105) - on left: 40 + InvariantDefinition (108) + on left: 42 on right: 16 - ImportDefinition (106) - on left: 41 42 + ImportDefinition (109) + on left: 43 44 on right: 17 - StructureDefinition (107) - on left: 43 + StructureDefinition (110) + on left: 45 on right: 18 - Rules (108) - on left: 44 45 - on right: 44 75 76 79 80 - Rule (109) - on left: 46 47 48 49 50 51 52 53 54 55 56 57 58 - on right: 25 26 27 28 29 30 44 45 60 61 66 67 68 69 70 71 72 73 74 85 - SkipRule (110) - on left: 59 - on right: 46 - ConditionalRule (111) - on left: 60 61 + FeatureDefinition (111) + on left: 46 + on right: 19 + FeatureDeclarationOrDefinition (112) + on left: 47 48 49 + on right: 50 51 + FeatureDeclarationsAndDefinitions (113) + on left: 50 51 + on right: 46 50 + ImplementationDefinition (114) + on left: 52 53 + on right: 20 + ImplementationDefinitionDefinition (115) + on left: 54 55 + on right: 56 57 + ImplementationDefinitionDefinitions (116) + on left: 56 57 + on right: 52 53 56 + DeclarationDefinition (117) + on left: 58 59 on right: 47 - CaseRule (112) - on left: 62 63 - on right: 48 - CaseLabels (113) - on left: 64 65 - on right: 62 64 - CaseLabel (114) - on left: 66 67 68 - on right: 64 65 - LetRule (115) - on left: 69 - on right: 49 - LocalRule (116) - on left: 70 - on right: 50 - ForallRule (117) - on left: 71 72 - on right: 51 - ChooseRule (118) - on left: 73 - on right: 52 - IterateRule (119) - on left: 74 - on right: 53 - BlockRule (120) - on left: 75 76 77 78 - on right: 54 - SequenceRule (121) - on left: 79 80 81 82 - on right: 55 - UpdateRule (122) - on left: 83 - on right: 56 - CallRule (123) - on left: 84 - on right: 57 - WhileRule (124) + Rules (118) + on left: 60 61 + on right: 60 91 92 95 96 + Rule (119) + on left: 62 63 64 65 66 67 68 69 70 71 72 73 74 + on right: 27 28 29 30 31 32 60 61 76 77 82 83 84 85 86 87 88 89 90 101 + SkipRule (120) + on left: 75 + on right: 62 + ConditionalRule (121) + on left: 76 77 + on right: 63 + CaseRule (122) + on left: 78 79 + on right: 64 + CaseLabels (123) + on left: 80 81 + on right: 78 80 + CaseLabel (124) + on left: 82 83 84 + on right: 80 81 + LetRule (125) on left: 85 - on right: 58 - Terms (125) - on left: 86 87 - on right: 86 127 131 135 167 170 - Term (126) - on left: 88 89 90 91 92 93 94 95 96 - on right: 22 23 24 40 60 61 62 63 68 71 72 73 83 85 86 87 97 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 138 139 140 141 142 169 170 174 188 195 201 202 203 221 234 - SimpleOrClaspedTerm (127) - on left: 97 98 99 100 101 102 103 - on right: 88 102 103 129 130 131 132 133 137 143 - OperatorExpression (128) - on left: 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 - on right: 90 - CallExpression (129) - on left: 122 123 124 - on right: 84 99 134 135 136 - DirectCallExpression (130) - on left: 125 126 127 128 - on right: 83 122 - MethodCallExpression (131) - on left: 129 130 131 132 - on right: 123 - LiteralCallExpression (132) - on left: 133 - on right: 100 - IndirectCallExpression (133) - on left: 134 135 136 - on right: 124 - TypeCastingExpression (134) - on left: 137 - on right: 89 - LetExpression (135) - on left: 138 - on right: 91 - ConditionalExpression (136) - on left: 139 - on right: 92 - ChooseExpression (137) - on left: 140 - on right: 93 - UniversalQuantifierExpression (138) - on left: 141 - on right: 94 - ExistentialQuantifierExpression (139) - on left: 142 - on right: 95 - CardinalityExpression (140) - on left: 143 - on right: 96 - Literal (141) - on left: 144 145 146 147 148 149 150 151 152 153 154 155 - on right: 101 - UndefinedLiteral (142) + on right: 65 + LocalRule (126) + on left: 86 + on right: 66 + ForallRule (127) + on left: 87 88 + on right: 67 + ChooseRule (128) + on left: 89 + on right: 68 + IterateRule (129) + on left: 90 + on right: 69 + BlockRule (130) + on left: 91 92 93 94 + on right: 70 + SequenceRule (131) + on left: 95 96 97 98 + on right: 71 + UpdateRule (132) + on left: 99 + on right: 72 + CallRule (133) + on left: 100 + on right: 73 + WhileRule (134) + on left: 101 + on right: 74 + Terms (135) + on left: 102 103 + on right: 102 143 147 151 183 186 + Term (136) + on left: 104 105 106 107 108 109 110 111 112 + on right: 24 25 26 42 76 77 78 79 84 87 88 89 99 101 102 103 113 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 154 155 156 157 158 185 186 190 204 211 217 218 219 237 250 + SimpleOrClaspedTerm (137) + on left: 113 114 115 116 117 118 119 + on right: 104 118 119 145 146 147 148 149 153 159 + OperatorExpression (138) + on left: 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 + on right: 106 + CallExpression (139) + on left: 138 139 140 + on right: 100 115 150 151 152 + DirectCallExpression (140) + on left: 141 142 143 144 + on right: 99 138 + MethodCallExpression (141) + on left: 145 146 147 148 + on right: 139 + LiteralCallExpression (142) + on left: 149 + on right: 116 + IndirectCallExpression (143) + on left: 150 151 152 + on right: 140 + TypeCastingExpression (144) + on left: 153 + on right: 105 + LetExpression (145) + on left: 154 + on right: 107 + ConditionalExpression (146) + on left: 155 + on right: 108 + ChooseExpression (147) on left: 156 - on right: 144 - BooleanLiteral (143) - on left: 157 158 - on right: 145 - IntegerLiteral (144) + on right: 109 + UniversalQuantifierExpression (148) + on left: 157 + on right: 110 + ExistentialQuantifierExpression (149) + on left: 158 + on right: 111 + CardinalityExpression (150) on left: 159 - on right: 133 146 - RationalLiteral (145) - on left: 160 - on right: 147 - DecimalLiteral (146) - on left: 161 - on right: 148 - BinaryLiteral (147) - on left: 162 163 - on right: 149 - StringLiteral (148) - on left: 164 - on right: 150 - ReferenceLiteral (149) - on left: 165 - on right: 151 - ListLiteral (150) - on left: 166 167 168 - on right: 152 - RangeLiteral (151) - on left: 169 - on right: 153 - TupleLiteral (152) - on left: 170 - on right: 154 203 - RecordLiteral (153) - on left: 171 - on right: 155 - Assignments (154) - on left: 172 173 - on right: 171 172 - Assignment (155) - on left: 174 - on right: 172 173 - Types (156) - on left: 175 176 - on right: 175 184 186 - Type (157) - on left: 177 178 179 180 181 182 - on right: 22 23 24 26 28 30 31 37 137 175 176 184 187 189 190 214 227 - BasicType (158) - on left: 183 - on right: 177 - TupleType (159) - on left: 184 - on right: 178 - RecordType (160) + on right: 112 + Literal (151) + on left: 160 161 162 163 164 165 166 167 168 169 170 171 + on right: 117 + UndefinedLiteral (152) + on left: 172 + on right: 160 + BooleanLiteral (153) + on left: 173 174 + on right: 161 + IntegerLiteral (154) + on left: 175 + on right: 149 162 + RationalLiteral (155) + on left: 176 + on right: 163 + DecimalLiteral (156) + on left: 177 + on right: 164 + BinaryLiteral (157) + on left: 178 179 + on right: 165 + StringLiteral (158) + on left: 180 + on right: 166 + ReferenceLiteral (159) + on left: 181 + on right: 167 + ListLiteral (160) + on left: 182 183 184 + on right: 168 + RangeLiteral (161) on left: 185 - on right: 179 - TemplateType (161) + on right: 169 + TupleLiteral (162) on left: 186 - on right: 180 - RelationType (162) + on right: 170 219 + RecordLiteral (163) on left: 187 - on right: 181 - FixedSizedType (163) - on left: 188 - on right: 182 - FunctionParameters (164) - on left: 189 190 - on right: 189 191 - MaybeFunctionParameters (165) + on right: 171 + Assignments (164) + on left: 188 189 + on right: 187 188 + Assignment (165) + on left: 190 + on right: 188 189 + Types (166) on left: 191 192 - on right: 31 187 227 - Parameters (166) - on left: 193 194 - on right: 23 27 28 193 - MaybeDefined (167) - on left: 195 196 - on right: 31 227 - MaybeInitially (168) - on left: 197 198 - on right: 31 227 - Initializers (169) - on left: 199 200 - on right: 20 197 199 - Initializer (170) - on left: 201 202 203 - on right: 199 200 - Identifier (171) - on left: 204 205 - on right: 21 22 23 24 25 26 27 28 29 30 31 32 33 37 40 42 43 129 130 131 132 174 206 207 209 214 227 233 234 - IdentifierPath (172) - on left: 206 207 - on right: 19 38 39 41 42 125 126 127 128 165 183 186 187 188 206 - Variable (173) - on left: 208 209 - on right: 215 216 - AttributedVariables (174) - on left: 210 211 - on right: 71 72 73 140 141 142 210 - TypedVariables (175) - on left: 212 213 - on right: 185 212 - TypedVariable (176) - on left: 214 - on right: 185 208 212 213 217 218 - AttributedVariable (177) + on right: 191 200 202 + Type (167) + on left: 193 194 195 196 197 198 + on right: 24 25 26 28 30 32 33 39 52 53 58 59 153 191 192 200 203 205 206 230 243 + BasicType (168) + on left: 199 + on right: 193 + TupleType (169) + on left: 200 + on right: 194 + RecordType (170) + on left: 201 + on right: 195 + TemplateType (171) + on left: 202 + on right: 196 + RelationType (172) + on left: 203 + on right: 197 + FixedSizedType (173) + on left: 204 + on right: 198 + FunctionParameters (174) + on left: 205 206 + on right: 205 207 + MaybeFunctionParameters (175) + on left: 207 208 + on right: 33 58 59 203 243 + Parameters (176) + on left: 209 210 + on right: 25 29 30 209 + MaybeDefined (177) + on left: 211 212 + on right: 33 243 + MaybeInitially (178) + on left: 213 214 + on right: 33 243 + Initializers (179) on left: 215 216 - on right: 210 211 221 - TypedAttributedVariable (178) - on left: 217 218 - on right: 193 194 - VariableBindings (179) - on left: 219 220 - on right: 69 138 219 - VariableBinding (180) - on left: 221 - on right: 219 220 - LocalFunctionDefinitions (181) + on right: 22 213 215 + Initializer (180) + on left: 217 218 219 + on right: 215 216 + Identifier (181) + on left: 220 221 + on right: 23 24 25 26 27 28 29 30 31 32 33 34 35 39 42 44 45 46 58 59 145 146 147 148 190 222 223 225 230 243 249 250 + IdentifierPath (182) on left: 222 223 - on right: 70 222 - AttributedLocalFunctionDefinition (182) - on left: 224 225 226 - on right: 222 223 - LocalFunctionDefinition (183) - on left: 227 - on right: 224 225 - Attributes (184) + on right: 21 40 41 43 44 52 141 142 143 144 181 199 202 203 204 222 + Variable (183) + on left: 224 225 + on right: 231 232 + AttributedVariables (184) + on left: 226 227 + on right: 87 88 89 156 157 158 226 + TypedVariables (185) on left: 228 229 - on right: 2 6 33 215 217 224 228 - Attribute (185) - on left: 230 231 232 - on right: 228 229 - BasicAttribute (186) - on left: 233 - on right: 230 - ExpressionAttribute (187) - on left: 234 - on right: 231 + on right: 201 228 + TypedVariable (186) + on left: 230 + on right: 201 224 228 229 233 234 + AttributedVariable (187) + on left: 231 232 + on right: 226 227 237 + TypedAttributedVariable (188) + on left: 233 234 + on right: 209 210 + VariableBindings (189) + on left: 235 236 + on right: 85 154 235 + VariableBinding (190) + on left: 237 + on right: 235 236 + LocalFunctionDefinitions (191) + on left: 238 239 + on right: 86 238 + AttributedLocalFunctionDefinition (192) + on left: 240 241 242 + on right: 238 239 + LocalFunctionDefinition (193) + on left: 243 + on right: 240 241 + Attributes (194) + on left: 244 245 + on right: 2 6 35 231 233 240 244 + Attribute (195) + on left: 246 247 248 + on right: 244 245 + BasicAttribute (196) + on left: 249 + on right: 246 + ExpressionAttribute (197) + on left: 250 + on right: 247 State 0 @@ -775,9 +798,9 @@ State 1 State 2 - 230 Attribute: "[" • BasicAttribute "]" - 231 | "[" • ExpressionAttribute "]" - 232 | "[" • error "]" + 246 Attribute: "[" • BasicAttribute "]" + 247 | "[" • ExpressionAttribute "]" + 248 | "[" • error "]" error shift, and go to state 7 "in" shift, and go to state 8 @@ -808,140 +831,144 @@ State 4 "invariant" shift, and go to state 20 "import" shift, and go to state 21 "structure" shift, and go to state 22 - "function" shift, and go to state 23 + "feature" shift, and go to state 23 + "implements" shift, and go to state 24 + "function" shift, and go to state 25 "[" shift, and go to state 2 - Definitions go to state 24 - AttributedDefinition go to state 25 - Definition go to state 26 - InitDefinition go to state 27 - EnumerationDefinition go to state 28 - DerivedDefinition go to state 29 - RuleDefinition go to state 30 - FunctionDefinition go to state 31 - UsingDefinition go to state 32 - UsingPathDefinition go to state 33 - InvariantDefinition go to state 34 - ImportDefinition go to state 35 - StructureDefinition go to state 36 - Attributes go to state 37 - Attribute go to state 6 + Definitions go to state 26 + AttributedDefinition go to state 27 + Definition go to state 28 + InitDefinition go to state 29 + EnumerationDefinition go to state 30 + DerivedDefinition go to state 31 + RuleDefinition go to state 32 + FunctionDefinition go to state 33 + UsingDefinition go to state 34 + UsingPathDefinition go to state 35 + InvariantDefinition go to state 36 + ImportDefinition go to state 37 + StructureDefinition go to state 38 + FeatureDefinition go to state 39 + ImplementationDefinition go to state 40 + Attributes go to state 41 + Attribute go to state 6 State 5 2 Header: Attributes • "CASM" - 228 Attributes: Attributes • Attribute + 244 Attributes: Attributes • Attribute - "CASM" shift, and go to state 38 + "CASM" shift, and go to state 42 "[" shift, and go to state 2 - Attribute go to state 39 + Attribute go to state 43 State 6 - 229 Attributes: Attribute • + 245 Attributes: Attribute • - $default reduce using rule 229 (Attributes) + $default reduce using rule 245 (Attributes) State 7 - 232 Attribute: "[" error • "]" + 248 Attribute: "[" error • "]" - "]" shift, and go to state 40 + "]" shift, and go to state 44 State 8 - 205 Identifier: "in" • + 221 Identifier: "in" • - $default reduce using rule 205 (Identifier) + $default reduce using rule 221 (Identifier) State 9 - 204 Identifier: "identifier" • + 220 Identifier: "identifier" • - $default reduce using rule 204 (Identifier) + $default reduce using rule 220 (Identifier) State 10 - 233 BasicAttribute: Identifier • - 234 ExpressionAttribute: Identifier • Term + 249 BasicAttribute: Identifier • + 250 ExpressionAttribute: Identifier • Term - "let" shift, and go to state 41 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - $default reduce using rule 233 (BasicAttribute) - - Term go to state 62 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 249 (BasicAttribute) + + Term go to state 66 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 11 - 230 Attribute: "[" BasicAttribute • "]" + 246 Attribute: "[" BasicAttribute • "]" - "]" shift, and go to state 92 + "]" shift, and go to state 96 State 12 - 231 Attribute: "[" ExpressionAttribute • "]" + 247 Attribute: "[" ExpressionAttribute • "]" - "]" shift, and go to state 93 + "]" shift, and go to state 97 State 13 @@ -960,111 +987,141 @@ State 14 State 15 - 19 InitDefinition: "init" • IdentifierPath - 20 | "init" • "{" Initializers "}" + 21 InitDefinition: "init" • IdentifierPath + 22 | "init" • "{" Initializers "}" "in" shift, and go to state 8 - "{" shift, and go to state 94 + "{" shift, and go to state 98 "identifier" shift, and go to state 9 - Identifier go to state 90 - IdentifierPath go to state 95 + Identifier go to state 94 + IdentifierPath go to state 99 State 16 - 22 DerivedDefinition: "derived" • Identifier "->" Type "=" Term - 23 | "derived" • Identifier "(" Parameters ")" "->" Type "=" Term - 24 | "derived" • Identifier "(" error ")" "->" Type "=" Term + 24 DerivedDefinition: "derived" • Identifier "->" Type "=" Term + 25 | "derived" • Identifier "(" Parameters ")" "->" Type "=" Term + 26 | "derived" • Identifier "(" error ")" "->" Type "=" Term "in" shift, and go to state 8 "identifier" shift, and go to state 9 - Identifier go to state 96 + Identifier go to state 100 State 17 - 21 EnumerationDefinition: "enumeration" • Identifier "=" "{" Enumerators "}" + 23 EnumerationDefinition: "enumeration" • Identifier "=" "{" Enumerators "}" "in" shift, and go to state 8 "identifier" shift, and go to state 9 - Identifier go to state 97 + Identifier go to state 101 State 18 - 25 RuleDefinition: "rule" • Identifier "=" Rule - 26 | "rule" • Identifier "->" Type "=" Rule - 27 | "rule" • Identifier "(" Parameters ")" "=" Rule - 28 | "rule" • Identifier "(" Parameters ")" "->" Type "=" Rule - 29 | "rule" • Identifier "(" error ")" "=" Rule - 30 | "rule" • Identifier "(" error ")" "->" Type "=" Rule + 27 RuleDefinition: "rule" • Identifier "=" Rule + 28 | "rule" • Identifier "->" Type "=" Rule + 29 | "rule" • Identifier "(" Parameters ")" "=" Rule + 30 | "rule" • Identifier "(" Parameters ")" "->" Type "=" Rule + 31 | "rule" • Identifier "(" error ")" "=" Rule + 32 | "rule" • Identifier "(" error ")" "->" Type "=" Rule "in" shift, and go to state 8 "identifier" shift, and go to state 9 - Identifier go to state 98 + Identifier go to state 102 State 19 - 37 UsingDefinition: "using" • Identifier "=" Type - 38 UsingPathDefinition: "using" • IdentifierPath - 39 | "using" • IdentifierPath "::" "*" + 39 UsingDefinition: "using" • Identifier "=" Type + 40 UsingPathDefinition: "using" • IdentifierPath + 41 | "using" • IdentifierPath "::" "*" "in" shift, and go to state 8 "identifier" shift, and go to state 9 - Identifier go to state 99 - IdentifierPath go to state 100 + Identifier go to state 103 + IdentifierPath go to state 104 State 20 - 40 InvariantDefinition: "invariant" • Identifier "=" Term + 42 InvariantDefinition: "invariant" • Identifier "=" Term "in" shift, and go to state 8 "identifier" shift, and go to state 9 - Identifier go to state 101 + Identifier go to state 105 State 21 - 41 ImportDefinition: "import" • IdentifierPath - 42 | "import" • IdentifierPath "as" Identifier + 43 ImportDefinition: "import" • IdentifierPath + 44 | "import" • IdentifierPath "as" Identifier "in" shift, and go to state 8 "identifier" shift, and go to state 9 - Identifier go to state 90 - IdentifierPath go to state 102 + Identifier go to state 94 + IdentifierPath go to state 106 State 22 - 43 StructureDefinition: "structure" • Identifier "=" "{" FunctionDefinition "}" + 45 StructureDefinition: "structure" • Identifier "=" "{" FunctionDefinition "}" "in" shift, and go to state 8 "identifier" shift, and go to state 9 - Identifier go to state 103 + Identifier go to state 107 State 23 - 31 FunctionDefinition: "function" • Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 46 FeatureDefinition: "feature" • Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" "in" shift, and go to state 8 "identifier" shift, and go to state 9 - Identifier go to state 104 + Identifier go to state 108 State 24 + 52 ImplementationDefinition: "implements" • IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" + 53 | "implements" • Type "=" "{" ImplementationDefinitionDefinitions "}" + + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 + + Type go to state 110 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 117 + + +State 25 + + 33 FunctionDefinition: "function" • Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + + "in" shift, and go to state 8 + "identifier" shift, and go to state 9 + + Identifier go to state 118 + + +State 26 + 1 Specification: Header Definitions • 4 Definitions: Definitions • AttributedDefinition @@ -1077,115 +1134,133 @@ State 24 "invariant" shift, and go to state 20 "import" shift, and go to state 21 "structure" shift, and go to state 22 - "function" shift, and go to state 23 + "feature" shift, and go to state 23 + "implements" shift, and go to state 24 + "function" shift, and go to state 25 "[" shift, and go to state 2 "end of file" reduce using rule 1 (Specification) - AttributedDefinition go to state 105 - Definition go to state 26 - InitDefinition go to state 27 - EnumerationDefinition go to state 28 - DerivedDefinition go to state 29 - RuleDefinition go to state 30 - FunctionDefinition go to state 31 - UsingDefinition go to state 32 - UsingPathDefinition go to state 33 - InvariantDefinition go to state 34 - ImportDefinition go to state 35 - StructureDefinition go to state 36 - Attributes go to state 37 - Attribute go to state 6 + AttributedDefinition go to state 119 + Definition go to state 28 + InitDefinition go to state 29 + EnumerationDefinition go to state 30 + DerivedDefinition go to state 31 + RuleDefinition go to state 32 + FunctionDefinition go to state 33 + UsingDefinition go to state 34 + UsingPathDefinition go to state 35 + InvariantDefinition go to state 36 + ImportDefinition go to state 37 + StructureDefinition go to state 38 + FeatureDefinition go to state 39 + ImplementationDefinition go to state 40 + Attributes go to state 41 + Attribute go to state 6 -State 25 +State 27 5 Definitions: AttributedDefinition • $default reduce using rule 5 (Definitions) -State 26 +State 28 7 AttributedDefinition: Definition • $default reduce using rule 7 (AttributedDefinition) -State 27 +State 29 9 Definition: InitDefinition • $default reduce using rule 9 (Definition) -State 28 +State 30 10 Definition: EnumerationDefinition • $default reduce using rule 10 (Definition) -State 29 +State 31 11 Definition: DerivedDefinition • $default reduce using rule 11 (Definition) -State 30 +State 32 12 Definition: RuleDefinition • $default reduce using rule 12 (Definition) -State 31 +State 33 13 Definition: FunctionDefinition • $default reduce using rule 13 (Definition) -State 32 +State 34 14 Definition: UsingDefinition • $default reduce using rule 14 (Definition) -State 33 +State 35 15 Definition: UsingPathDefinition • $default reduce using rule 15 (Definition) -State 34 +State 36 16 Definition: InvariantDefinition • $default reduce using rule 16 (Definition) -State 35 +State 37 17 Definition: ImportDefinition • $default reduce using rule 17 (Definition) -State 36 +State 38 18 Definition: StructureDefinition • $default reduce using rule 18 (Definition) -State 37 +State 39 + + 19 Definition: FeatureDefinition • + + $default reduce using rule 19 (Definition) + + +State 40 + + 20 Definition: ImplementationDefinition • + + $default reduce using rule 20 (Definition) + + +State 41 6 AttributedDefinition: Attributes • Definition - 228 Attributes: Attributes • Attribute + 244 Attributes: Attributes • Attribute "init" shift, and go to state 15 "derived" shift, and go to state 16 @@ -1195,10491 +1270,10909 @@ State 37 "invariant" shift, and go to state 20 "import" shift, and go to state 21 "structure" shift, and go to state 22 - "function" shift, and go to state 23 + "feature" shift, and go to state 23 + "implements" shift, and go to state 24 + "function" shift, and go to state 25 "[" shift, and go to state 2 - Definition go to state 106 - InitDefinition go to state 27 - EnumerationDefinition go to state 28 - DerivedDefinition go to state 29 - RuleDefinition go to state 30 - FunctionDefinition go to state 31 - UsingDefinition go to state 32 - UsingPathDefinition go to state 33 - InvariantDefinition go to state 34 - ImportDefinition go to state 35 - StructureDefinition go to state 36 - Attribute go to state 39 + Definition go to state 120 + InitDefinition go to state 29 + EnumerationDefinition go to state 30 + DerivedDefinition go to state 31 + RuleDefinition go to state 32 + FunctionDefinition go to state 33 + UsingDefinition go to state 34 + UsingPathDefinition go to state 35 + InvariantDefinition go to state 36 + ImportDefinition go to state 37 + StructureDefinition go to state 38 + FeatureDefinition go to state 39 + ImplementationDefinition go to state 40 + Attribute go to state 43 -State 38 +State 42 2 Header: Attributes "CASM" • $default reduce using rule 2 (Header) -State 39 +State 43 - 228 Attributes: Attributes Attribute • + 244 Attributes: Attributes Attribute • - $default reduce using rule 228 (Attributes) + $default reduce using rule 244 (Attributes) -State 40 +State 44 - 232 Attribute: "[" error "]" • + 248 Attribute: "[" error "]" • - $default reduce using rule 232 (Attribute) + $default reduce using rule 248 (Attribute) -State 41 +State 45 - 138 LetExpression: "let" • VariableBindings "in" Term + 154 LetExpression: "let" • VariableBindings "in" Term "in" shift, and go to state 8 "[" shift, and go to state 2 "identifier" shift, and go to state 9 - Identifier go to state 107 - Variable go to state 108 - TypedVariable go to state 109 - AttributedVariable go to state 110 - VariableBindings go to state 111 - VariableBinding go to state 112 - Attributes go to state 113 + Identifier go to state 121 + Variable go to state 122 + TypedVariable go to state 123 + AttributedVariable go to state 124 + VariableBindings go to state 125 + VariableBinding go to state 126 + Attributes go to state 127 Attribute go to state 6 -State 42 +State 46 - 141 UniversalQuantifierExpression: "forall" • AttributedVariables "in" Term "holds" Term + 157 UniversalQuantifierExpression: "forall" • AttributedVariables "in" Term "holds" Term "in" shift, and go to state 8 "[" shift, and go to state 2 "identifier" shift, and go to state 9 - Identifier go to state 107 - Variable go to state 108 - AttributedVariables go to state 114 - TypedVariable go to state 109 - AttributedVariable go to state 115 - Attributes go to state 113 + Identifier go to state 121 + Variable go to state 122 + AttributedVariables go to state 128 + TypedVariable go to state 123 + AttributedVariable go to state 129 + Attributes go to state 127 Attribute go to state 6 -State 43 +State 47 - 140 ChooseExpression: "choose" • AttributedVariables "in" Term "do" Term + 156 ChooseExpression: "choose" • AttributedVariables "in" Term "do" Term "in" shift, and go to state 8 "[" shift, and go to state 2 "identifier" shift, and go to state 9 - Identifier go to state 107 - Variable go to state 108 - AttributedVariables go to state 116 - TypedVariable go to state 109 - AttributedVariable go to state 115 - Attributes go to state 113 + Identifier go to state 121 + Variable go to state 122 + AttributedVariables go to state 130 + TypedVariable go to state 123 + AttributedVariable go to state 129 + Attributes go to state 127 Attribute go to state 6 -State 44 +State 48 - 139 ConditionalExpression: "if" • Term "then" Term "else" Term + 155 ConditionalExpression: "if" • Term "then" Term "else" Term - "let" shift, and go to state 41 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 117 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Term go to state 131 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 -State 45 +State 49 - 142 ExistentialQuantifierExpression: "exists" • AttributedVariables "in" Term "with" Term + 158 ExistentialQuantifierExpression: "exists" • AttributedVariables "in" Term "with" Term "in" shift, and go to state 8 "[" shift, and go to state 2 "identifier" shift, and go to state 9 - Identifier go to state 107 - Variable go to state 108 - AttributedVariables go to state 118 - TypedVariable go to state 109 - AttributedVariable go to state 115 - Attributes go to state 113 + Identifier go to state 121 + Variable go to state 122 + AttributedVariables go to state 132 + TypedVariable go to state 123 + AttributedVariable go to state 129 + Attributes go to state 127 Attribute go to state 6 -State 46 +State 50 - 156 UndefinedLiteral: "undef" • + 172 UndefinedLiteral: "undef" • - $default reduce using rule 156 (UndefinedLiteral) + $default reduce using rule 172 (UndefinedLiteral) -State 47 +State 51 - 158 BooleanLiteral: "false" • + 174 BooleanLiteral: "false" • - $default reduce using rule 158 (BooleanLiteral) + $default reduce using rule 174 (BooleanLiteral) -State 48 +State 52 - 157 BooleanLiteral: "true" • + 173 BooleanLiteral: "true" • - $default reduce using rule 157 (BooleanLiteral) + $default reduce using rule 173 (BooleanLiteral) -State 49 +State 53 - 121 OperatorExpression: "not" • Term + 137 OperatorExpression: "not" • Term - "let" shift, and go to state 41 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 119 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Term go to state 133 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 -State 50 +State 54 - 102 SimpleOrClaspedTerm: "+" • SimpleOrClaspedTerm + 118 SimpleOrClaspedTerm: "+" • SimpleOrClaspedTerm "in" shift, and go to state 8 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - SimpleOrClaspedTerm go to state 120 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + SimpleOrClaspedTerm go to state 134 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 -State 51 +State 55 - 103 SimpleOrClaspedTerm: "-" • SimpleOrClaspedTerm + 119 SimpleOrClaspedTerm: "-" • SimpleOrClaspedTerm "in" shift, and go to state 8 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - SimpleOrClaspedTerm go to state 121 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + SimpleOrClaspedTerm go to state 135 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 -State 52 +State 56 - 97 SimpleOrClaspedTerm: "(" • Term ")" - 98 | "(" • error ")" - 170 TupleLiteral: "(" • Terms "," Term ")" - 171 RecordLiteral: "(" • Assignments ")" + 113 SimpleOrClaspedTerm: "(" • Term ")" + 114 | "(" • error ")" + 186 TupleLiteral: "(" • Terms "," Term ")" + 187 RecordLiteral: "(" • Assignments ")" - error shift, and go to state 122 - "let" shift, and go to state 41 + error shift, and go to state 136 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Terms go to state 123 - Term go to state 124 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Assignments go to state 125 - Assignment go to state 126 - Identifier go to state 127 - IdentifierPath go to state 91 + Terms go to state 137 + Term go to state 138 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Assignments go to state 139 + Assignment go to state 140 + Identifier go to state 141 + IdentifierPath go to state 95 -State 53 +State 57 - 166 ListLiteral: "[" • "]" - 167 | "[" • Terms "]" - 168 | "[" • error "]" - 169 RangeLiteral: "[" • Term ".." Term "]" + 182 ListLiteral: "[" • "]" + 183 | "[" • Terms "]" + 184 | "[" • error "]" + 185 RangeLiteral: "[" • Term ".." Term "]" - error shift, and go to state 128 - "let" shift, and go to state 41 + error shift, and go to state 142 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "]" shift, and go to state 129 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "]" shift, and go to state 143 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Terms go to state 130 - Term go to state 131 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Terms go to state 144 + Term go to state 145 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 -State 54 +State 58 - 143 CardinalityExpression: "|" • SimpleOrClaspedTerm "|" + 159 CardinalityExpression: "|" • SimpleOrClaspedTerm "|" "in" shift, and go to state 8 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - SimpleOrClaspedTerm go to state 132 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + SimpleOrClaspedTerm go to state 146 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 -State 55 +State 59 - 165 ReferenceLiteral: "@" • IdentifierPath + 181 ReferenceLiteral: "@" • IdentifierPath "in" shift, and go to state 8 "identifier" shift, and go to state 9 - Identifier go to state 90 - IdentifierPath go to state 133 - - -State 56 - - 162 BinaryLiteral: "binary" • - - $default reduce using rule 162 (BinaryLiteral) - - -State 57 - - 163 BinaryLiteral: "hexadecimal" • - - $default reduce using rule 163 (BinaryLiteral) - - -State 58 - - 159 IntegerLiteral: "integer" • - - $default reduce using rule 159 (IntegerLiteral) - - -State 59 - - 160 RationalLiteral: "rational" • - - $default reduce using rule 160 (RationalLiteral) + Identifier go to state 94 + IdentifierPath go to state 147 State 60 - 161 DecimalLiteral: "decimal" • + 178 BinaryLiteral: "binary" • - $default reduce using rule 161 (DecimalLiteral) + $default reduce using rule 178 (BinaryLiteral) State 61 - 164 StringLiteral: "string" • + 179 BinaryLiteral: "hexadecimal" • - $default reduce using rule 164 (StringLiteral) + $default reduce using rule 179 (BinaryLiteral) State 62 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 234 ExpressionAttribute: Identifier Term • - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 234 (ExpressionAttribute) + 175 IntegerLiteral: "integer" • + $default reduce using rule 175 (IntegerLiteral) -State 63 - 88 Term: SimpleOrClaspedTerm • - 129 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 130 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 131 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 132 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 133 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral - 137 TypeCastingExpression: SimpleOrClaspedTerm • "as" Type +State 63 - "as" shift, and go to state 151 - "." shift, and go to state 152 + 176 RationalLiteral: "rational" • - $default reduce using rule 88 (Term) + $default reduce using rule 176 (RationalLiteral) State 64 - 90 Term: OperatorExpression • + 177 DecimalLiteral: "decimal" • - $default reduce using rule 90 (Term) + $default reduce using rule 177 (DecimalLiteral) State 65 - 99 SimpleOrClaspedTerm: CallExpression • - 134 IndirectCallExpression: CallExpression • "(" ")" - 135 | CallExpression • "(" Terms ")" - 136 | CallExpression • "(" error ")" - - "(" shift, and go to state 153 + 180 StringLiteral: "string" • - $default reduce using rule 99 (SimpleOrClaspedTerm) + $default reduce using rule 180 (StringLiteral) State 66 - 122 CallExpression: DirectCallExpression • - - $default reduce using rule 122 (CallExpression) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 250 ExpressionAttribute: Identifier Term • + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 250 (ExpressionAttribute) State 67 - 123 CallExpression: MethodCallExpression • + 104 Term: SimpleOrClaspedTerm • + 145 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier + 146 | SimpleOrClaspedTerm • "." Identifier "(" ")" + 147 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" + 148 | SimpleOrClaspedTerm • "." Identifier "(" error ")" + 149 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral + 153 TypeCastingExpression: SimpleOrClaspedTerm • "as" Type + + "as" shift, and go to state 165 + "." shift, and go to state 166 - $default reduce using rule 123 (CallExpression) + $default reduce using rule 104 (Term) State 68 - 100 SimpleOrClaspedTerm: LiteralCallExpression • + 106 Term: OperatorExpression • - $default reduce using rule 100 (SimpleOrClaspedTerm) + $default reduce using rule 106 (Term) State 69 - 124 CallExpression: IndirectCallExpression • + 115 SimpleOrClaspedTerm: CallExpression • + 150 IndirectCallExpression: CallExpression • "(" ")" + 151 | CallExpression • "(" Terms ")" + 152 | CallExpression • "(" error ")" - $default reduce using rule 124 (CallExpression) + "(" shift, and go to state 167 + + $default reduce using rule 115 (SimpleOrClaspedTerm) State 70 - 89 Term: TypeCastingExpression • + 138 CallExpression: DirectCallExpression • - $default reduce using rule 89 (Term) + $default reduce using rule 138 (CallExpression) State 71 - 91 Term: LetExpression • + 139 CallExpression: MethodCallExpression • - $default reduce using rule 91 (Term) + $default reduce using rule 139 (CallExpression) State 72 - 92 Term: ConditionalExpression • + 116 SimpleOrClaspedTerm: LiteralCallExpression • - $default reduce using rule 92 (Term) + $default reduce using rule 116 (SimpleOrClaspedTerm) State 73 - 93 Term: ChooseExpression • + 140 CallExpression: IndirectCallExpression • - $default reduce using rule 93 (Term) + $default reduce using rule 140 (CallExpression) State 74 - 94 Term: UniversalQuantifierExpression • + 105 Term: TypeCastingExpression • - $default reduce using rule 94 (Term) + $default reduce using rule 105 (Term) State 75 - 95 Term: ExistentialQuantifierExpression • + 107 Term: LetExpression • - $default reduce using rule 95 (Term) + $default reduce using rule 107 (Term) State 76 - 96 Term: CardinalityExpression • + 108 Term: ConditionalExpression • - $default reduce using rule 96 (Term) + $default reduce using rule 108 (Term) State 77 - 101 SimpleOrClaspedTerm: Literal • + 109 Term: ChooseExpression • - $default reduce using rule 101 (SimpleOrClaspedTerm) + $default reduce using rule 109 (Term) State 78 - 144 Literal: UndefinedLiteral • + 110 Term: UniversalQuantifierExpression • - $default reduce using rule 144 (Literal) + $default reduce using rule 110 (Term) State 79 - 145 Literal: BooleanLiteral • + 111 Term: ExistentialQuantifierExpression • - $default reduce using rule 145 (Literal) + $default reduce using rule 111 (Term) State 80 - 146 Literal: IntegerLiteral • + 112 Term: CardinalityExpression • - $default reduce using rule 146 (Literal) + $default reduce using rule 112 (Term) State 81 - 147 Literal: RationalLiteral • + 117 SimpleOrClaspedTerm: Literal • - $default reduce using rule 147 (Literal) + $default reduce using rule 117 (SimpleOrClaspedTerm) State 82 - 148 Literal: DecimalLiteral • + 160 Literal: UndefinedLiteral • - $default reduce using rule 148 (Literal) + $default reduce using rule 160 (Literal) State 83 - 149 Literal: BinaryLiteral • + 161 Literal: BooleanLiteral • - $default reduce using rule 149 (Literal) + $default reduce using rule 161 (Literal) State 84 - 150 Literal: StringLiteral • + 162 Literal: IntegerLiteral • - $default reduce using rule 150 (Literal) + $default reduce using rule 162 (Literal) State 85 - 151 Literal: ReferenceLiteral • + 163 Literal: RationalLiteral • - $default reduce using rule 151 (Literal) + $default reduce using rule 163 (Literal) State 86 - 152 Literal: ListLiteral • + 164 Literal: DecimalLiteral • - $default reduce using rule 152 (Literal) + $default reduce using rule 164 (Literal) State 87 - 153 Literal: RangeLiteral • + 165 Literal: BinaryLiteral • - $default reduce using rule 153 (Literal) + $default reduce using rule 165 (Literal) State 88 - 154 Literal: TupleLiteral • + 166 Literal: StringLiteral • - $default reduce using rule 154 (Literal) + $default reduce using rule 166 (Literal) State 89 - 155 Literal: RecordLiteral • + 167 Literal: ReferenceLiteral • - $default reduce using rule 155 (Literal) + $default reduce using rule 167 (Literal) State 90 - 207 IdentifierPath: Identifier • + 168 Literal: ListLiteral • - $default reduce using rule 207 (IdentifierPath) + $default reduce using rule 168 (Literal) State 91 - 125 DirectCallExpression: IdentifierPath • - 126 | IdentifierPath • "(" ")" - 127 | IdentifierPath • "(" Terms ")" - 128 | IdentifierPath • "(" error ")" - 206 IdentifierPath: IdentifierPath • "::" Identifier - - "(" shift, and go to state 154 - "::" shift, and go to state 155 + 169 Literal: RangeLiteral • - $default reduce using rule 125 (DirectCallExpression) + $default reduce using rule 169 (Literal) State 92 - 230 Attribute: "[" BasicAttribute "]" • + 170 Literal: TupleLiteral • - $default reduce using rule 230 (Attribute) + $default reduce using rule 170 (Literal) State 93 - 231 Attribute: "[" ExpressionAttribute "]" • + 171 Literal: RecordLiteral • - $default reduce using rule 231 (Attribute) + $default reduce using rule 171 (Literal) State 94 - 20 InitDefinition: "init" "{" • Initializers "}" + 223 IdentifierPath: Identifier • - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 156 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Term go to state 157 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 158 - RecordLiteral go to state 89 - Initializers go to state 159 - Initializer go to state 160 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 223 (IdentifierPath) State 95 - 19 InitDefinition: "init" IdentifierPath • - 206 IdentifierPath: IdentifierPath • "::" Identifier + 141 DirectCallExpression: IdentifierPath • + 142 | IdentifierPath • "(" ")" + 143 | IdentifierPath • "(" Terms ")" + 144 | IdentifierPath • "(" error ")" + 222 IdentifierPath: IdentifierPath • "::" Identifier - "::" shift, and go to state 155 + "(" shift, and go to state 168 + "::" shift, and go to state 169 - $default reduce using rule 19 (InitDefinition) + $default reduce using rule 141 (DirectCallExpression) State 96 - 22 DerivedDefinition: "derived" Identifier • "->" Type "=" Term - 23 | "derived" Identifier • "(" Parameters ")" "->" Type "=" Term - 24 | "derived" Identifier • "(" error ")" "->" Type "=" Term + 246 Attribute: "[" BasicAttribute "]" • - "(" shift, and go to state 161 - "->" shift, and go to state 162 + $default reduce using rule 246 (Attribute) State 97 - 21 EnumerationDefinition: "enumeration" Identifier • "=" "{" Enumerators "}" + 247 Attribute: "[" ExpressionAttribute "]" • - "=" shift, and go to state 163 + $default reduce using rule 247 (Attribute) State 98 - 25 RuleDefinition: "rule" Identifier • "=" Rule - 26 | "rule" Identifier • "->" Type "=" Rule - 27 | "rule" Identifier • "(" Parameters ")" "=" Rule - 28 | "rule" Identifier • "(" Parameters ")" "->" Type "=" Rule - 29 | "rule" Identifier • "(" error ")" "=" Rule - 30 | "rule" Identifier • "(" error ")" "->" Type "=" Rule + 22 InitDefinition: "init" "{" • Initializers "}" + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 170 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - "=" shift, and go to state 164 - "(" shift, and go to state 165 - "->" shift, and go to state 166 + Term go to state 171 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 172 + RecordLiteral go to state 93 + Initializers go to state 173 + Initializer go to state 174 + Identifier go to state 94 + IdentifierPath go to state 95 State 99 - 37 UsingDefinition: "using" Identifier • "=" Type - 207 IdentifierPath: Identifier • + 21 InitDefinition: "init" IdentifierPath • + 222 IdentifierPath: IdentifierPath • "::" Identifier - "=" shift, and go to state 167 + "::" shift, and go to state 169 - $default reduce using rule 207 (IdentifierPath) + $default reduce using rule 21 (InitDefinition) State 100 - 38 UsingPathDefinition: "using" IdentifierPath • - 39 | "using" IdentifierPath • "::" "*" - 206 IdentifierPath: IdentifierPath • "::" Identifier + 24 DerivedDefinition: "derived" Identifier • "->" Type "=" Term + 25 | "derived" Identifier • "(" Parameters ")" "->" Type "=" Term + 26 | "derived" Identifier • "(" error ")" "->" Type "=" Term - "::" shift, and go to state 168 - - $default reduce using rule 38 (UsingPathDefinition) + "(" shift, and go to state 175 + "->" shift, and go to state 176 State 101 - 40 InvariantDefinition: "invariant" Identifier • "=" Term + 23 EnumerationDefinition: "enumeration" Identifier • "=" "{" Enumerators "}" - "=" shift, and go to state 169 + "=" shift, and go to state 177 State 102 - 41 ImportDefinition: "import" IdentifierPath • - 42 | "import" IdentifierPath • "as" Identifier - 206 IdentifierPath: IdentifierPath • "::" Identifier - - "as" shift, and go to state 170 - "::" shift, and go to state 155 + 27 RuleDefinition: "rule" Identifier • "=" Rule + 28 | "rule" Identifier • "->" Type "=" Rule + 29 | "rule" Identifier • "(" Parameters ")" "=" Rule + 30 | "rule" Identifier • "(" Parameters ")" "->" Type "=" Rule + 31 | "rule" Identifier • "(" error ")" "=" Rule + 32 | "rule" Identifier • "(" error ")" "->" Type "=" Rule - $default reduce using rule 41 (ImportDefinition) + "=" shift, and go to state 178 + "(" shift, and go to state 179 + "->" shift, and go to state 180 State 103 - 43 StructureDefinition: "structure" Identifier • "=" "{" FunctionDefinition "}" + 39 UsingDefinition: "using" Identifier • "=" Type + 223 IdentifierPath: Identifier • - "=" shift, and go to state 171 + "=" shift, and go to state 181 + + $default reduce using rule 223 (IdentifierPath) State 104 - 31 FunctionDefinition: "function" Identifier • ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 40 UsingPathDefinition: "using" IdentifierPath • + 41 | "using" IdentifierPath • "::" "*" + 222 IdentifierPath: IdentifierPath • "::" Identifier + + "::" shift, and go to state 182 - ":" shift, and go to state 172 + $default reduce using rule 40 (UsingPathDefinition) State 105 - 4 Definitions: Definitions AttributedDefinition • + 42 InvariantDefinition: "invariant" Identifier • "=" Term - $default reduce using rule 4 (Definitions) + "=" shift, and go to state 183 State 106 - 6 AttributedDefinition: Attributes Definition • + 43 ImportDefinition: "import" IdentifierPath • + 44 | "import" IdentifierPath • "as" Identifier + 222 IdentifierPath: IdentifierPath • "::" Identifier - $default reduce using rule 6 (AttributedDefinition) + "as" shift, and go to state 184 + "::" shift, and go to state 169 + $default reduce using rule 43 (ImportDefinition) -State 107 - 209 Variable: Identifier • - 214 TypedVariable: Identifier • ":" Type +State 107 - ":" shift, and go to state 173 + 45 StructureDefinition: "structure" Identifier • "=" "{" FunctionDefinition "}" - $default reduce using rule 209 (Variable) + "=" shift, and go to state 185 State 108 - 216 AttributedVariable: Variable • + 46 FeatureDefinition: "feature" Identifier • "=" "{" FeatureDeclarationsAndDefinitions "}" - $default reduce using rule 216 (AttributedVariable) + "=" shift, and go to state 186 State 109 - 208 Variable: TypedVariable • + 200 TupleType: "(" • Types "," Type ")" + 201 RecordType: "(" • TypedVariables "," TypedVariable ")" - $default reduce using rule 208 (Variable) + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 + + Types go to state 187 + Type go to state 188 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 189 + IdentifierPath go to state 190 + TypedVariables go to state 191 + TypedVariable go to state 192 State 110 - 221 VariableBinding: AttributedVariable • "=" Term + 53 ImplementationDefinition: "implements" Type • "=" "{" ImplementationDefinitionDefinitions "}" - "=" shift, and go to state 174 + "=" shift, and go to state 193 State 111 - 138 LetExpression: "let" VariableBindings • "in" Term - 219 VariableBindings: VariableBindings • "," VariableBinding + 193 Type: BasicType • - "in" shift, and go to state 175 - "," shift, and go to state 176 + $default reduce using rule 193 (Type) State 112 - 220 VariableBindings: VariableBinding • + 194 Type: TupleType • - $default reduce using rule 220 (VariableBindings) + $default reduce using rule 194 (Type) State 113 - 215 AttributedVariable: Attributes • Variable - 228 Attributes: Attributes • Attribute - - "in" shift, and go to state 8 - "[" shift, and go to state 2 - "identifier" shift, and go to state 9 + 195 Type: RecordType • - Identifier go to state 107 - Variable go to state 177 - TypedVariable go to state 109 - Attribute go to state 39 + $default reduce using rule 195 (Type) State 114 - 141 UniversalQuantifierExpression: "forall" AttributedVariables • "in" Term "holds" Term - 210 AttributedVariables: AttributedVariables • "," AttributedVariable + 196 Type: TemplateType • - "in" shift, and go to state 178 - "," shift, and go to state 179 + $default reduce using rule 196 (Type) State 115 - 211 AttributedVariables: AttributedVariable • + 197 Type: RelationType • - $default reduce using rule 211 (AttributedVariables) + $default reduce using rule 197 (Type) State 116 - 140 ChooseExpression: "choose" AttributedVariables • "in" Term "do" Term - 210 AttributedVariables: AttributedVariables • "," AttributedVariable + 198 Type: FixedSizedType • - "in" shift, and go to state 180 - "," shift, and go to state 179 + $default reduce using rule 198 (Type) State 117 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 139 ConditionalExpression: "if" Term • "then" Term "else" Term - - "then" shift, and go to state 181 - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 + 52 ImplementationDefinition: "implements" IdentifierPath • "for" Type "=" "{" ImplementationDefinitionDefinitions "}" + 199 BasicType: IdentifierPath • + 202 TemplateType: IdentifierPath • "<" Types ">" + 203 RelationType: IdentifierPath • "<" MaybeFunctionParameters "->" Type ">" + 204 FixedSizedType: IdentifierPath • "'" Term + 222 IdentifierPath: IdentifierPath • "::" Identifier + + "for" shift, and go to state 194 + "::" shift, and go to state 169 + "<" shift, and go to state 195 + "'" shift, and go to state 196 + + $default reduce using rule 199 (BasicType) State 118 - 142 ExistentialQuantifierExpression: "exists" AttributedVariables • "in" Term "with" Term - 210 AttributedVariables: AttributedVariables • "," AttributedVariable + 33 FunctionDefinition: "function" Identifier • ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially - "in" shift, and go to state 182 - "," shift, and go to state 179 + ":" shift, and go to state 197 State 119 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 121 | "not" Term • + 4 Definitions: Definitions AttributedDefinition • - $default reduce using rule 121 (OperatorExpression) + $default reduce using rule 4 (Definitions) State 120 - 102 SimpleOrClaspedTerm: "+" SimpleOrClaspedTerm • - 129 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 130 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 131 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 132 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 133 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral + 6 AttributedDefinition: Attributes Definition • - $default reduce using rule 102 (SimpleOrClaspedTerm) + $default reduce using rule 6 (AttributedDefinition) State 121 - 103 SimpleOrClaspedTerm: "-" SimpleOrClaspedTerm • - 129 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 130 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 131 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 132 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 133 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral + 225 Variable: Identifier • + 230 TypedVariable: Identifier • ":" Type - $default reduce using rule 103 (SimpleOrClaspedTerm) + ":" shift, and go to state 198 + + $default reduce using rule 225 (Variable) State 122 - 98 SimpleOrClaspedTerm: "(" error • ")" + 232 AttributedVariable: Variable • - ")" shift, and go to state 183 + $default reduce using rule 232 (AttributedVariable) State 123 - 86 Terms: Terms • "," Term - 170 TupleLiteral: "(" Terms • "," Term ")" + 224 Variable: TypedVariable • - "," shift, and go to state 184 + $default reduce using rule 224 (Variable) State 124 - 87 Terms: Term • - 97 SimpleOrClaspedTerm: "(" Term • ")" - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - ")" shift, and go to state 185 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 87 (Terms) + 237 VariableBinding: AttributedVariable • "=" Term + + "=" shift, and go to state 199 State 125 - 171 RecordLiteral: "(" Assignments • ")" - 172 Assignments: Assignments • "," Assignment + 154 LetExpression: "let" VariableBindings • "in" Term + 235 VariableBindings: VariableBindings • "," VariableBinding - ")" shift, and go to state 186 - "," shift, and go to state 187 + "in" shift, and go to state 200 + "," shift, and go to state 201 State 126 - 173 Assignments: Assignment • + 236 VariableBindings: VariableBinding • - $default reduce using rule 173 (Assignments) + $default reduce using rule 236 (VariableBindings) State 127 - 174 Assignment: Identifier • ":" Term - 207 IdentifierPath: Identifier • + 231 AttributedVariable: Attributes • Variable + 244 Attributes: Attributes • Attribute - ":" shift, and go to state 188 + "in" shift, and go to state 8 + "[" shift, and go to state 2 + "identifier" shift, and go to state 9 - $default reduce using rule 207 (IdentifierPath) + Identifier go to state 121 + Variable go to state 202 + TypedVariable go to state 123 + Attribute go to state 43 State 128 - 168 ListLiteral: "[" error • "]" + 157 UniversalQuantifierExpression: "forall" AttributedVariables • "in" Term "holds" Term + 226 AttributedVariables: AttributedVariables • "," AttributedVariable - "]" shift, and go to state 189 + "in" shift, and go to state 203 + "," shift, and go to state 204 State 129 - 166 ListLiteral: "[" "]" • + 227 AttributedVariables: AttributedVariable • - $default reduce using rule 166 (ListLiteral) + $default reduce using rule 227 (AttributedVariables) State 130 - 86 Terms: Terms • "," Term - 167 ListLiteral: "[" Terms • "]" + 156 ChooseExpression: "choose" AttributedVariables • "in" Term "do" Term + 226 AttributedVariables: AttributedVariables • "," AttributedVariable - "]" shift, and go to state 190 - "," shift, and go to state 191 + "in" shift, and go to state 205 + "," shift, and go to state 204 State 131 - 87 Terms: Term • - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 169 RangeLiteral: "[" Term • ".." Term "]" - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - ".." shift, and go to state 192 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 87 (Terms) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 155 ConditionalExpression: "if" Term • "then" Term "else" Term + + "then" shift, and go to state 206 + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 State 132 - 129 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 130 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 131 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 132 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 133 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral - 143 CardinalityExpression: "|" SimpleOrClaspedTerm • "|" + 158 ExistentialQuantifierExpression: "exists" AttributedVariables • "in" Term "with" Term + 226 AttributedVariables: AttributedVariables • "," AttributedVariable - "|" shift, and go to state 193 - "." shift, and go to state 152 + "in" shift, and go to state 207 + "," shift, and go to state 204 State 133 - 165 ReferenceLiteral: "@" IdentifierPath • - 206 IdentifierPath: IdentifierPath • "::" Identifier - - "::" shift, and go to state 155 - - $default reduce using rule 165 (ReferenceLiteral) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 137 | "not" Term • + + $default reduce using rule 137 (OperatorExpression) State 134 - 118 OperatorExpression: Term "and" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 118 SimpleOrClaspedTerm: "+" SimpleOrClaspedTerm • + 145 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier + 146 | SimpleOrClaspedTerm • "." Identifier "(" ")" + 147 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" + 148 | SimpleOrClaspedTerm • "." Identifier "(" error ")" + 149 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral - Term go to state 194 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 118 (SimpleOrClaspedTerm) State 135 - 116 OperatorExpression: Term "or" • Term + 119 SimpleOrClaspedTerm: "-" SimpleOrClaspedTerm • + 145 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier + 146 | SimpleOrClaspedTerm • "." Identifier "(" ")" + 147 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" + 148 | SimpleOrClaspedTerm • "." Identifier "(" error ")" + 149 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Term go to state 195 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 119 (SimpleOrClaspedTerm) State 136 - 117 OperatorExpression: Term "xor" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 114 SimpleOrClaspedTerm: "(" error • ")" - Term go to state 196 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + ")" shift, and go to state 208 State 137 - 120 OperatorExpression: Term "implies" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 102 Terms: Terms • "," Term + 186 TupleLiteral: "(" Terms • "," Term ")" - Term go to state 197 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + "," shift, and go to state 209 State 138 - 104 OperatorExpression: Term "+" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Term go to state 198 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + 103 Terms: Term • + 113 SimpleOrClaspedTerm: "(" Term • ")" + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + ")" shift, and go to state 210 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 103 (Terms) State 139 - 105 OperatorExpression: Term "-" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 187 RecordLiteral: "(" Assignments • ")" + 188 Assignments: Assignments • "," Assignment - Term go to state 199 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + ")" shift, and go to state 211 + "," shift, and go to state 212 State 140 - 111 OperatorExpression: Term "=" • Term + 189 Assignments: Assignment • - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Term go to state 200 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 189 (Assignments) State 141 - 112 OperatorExpression: Term "<" • Term + 190 Assignment: Identifier • ":" Term + 223 IdentifierPath: Identifier • - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + ":" shift, and go to state 213 - Term go to state 201 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 223 (IdentifierPath) State 142 - 113 OperatorExpression: Term ">" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 184 ListLiteral: "[" error • "]" - Term go to state 202 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + "]" shift, and go to state 214 State 143 - 106 OperatorExpression: Term "*" • Term + 182 ListLiteral: "[" "]" • - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Term go to state 203 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 182 (ListLiteral) State 144 - 107 OperatorExpression: Term "/" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 102 Terms: Terms • "," Term + 183 ListLiteral: "[" Terms • "]" - Term go to state 204 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + "]" shift, and go to state 215 + "," shift, and go to state 216 State 145 - 108 OperatorExpression: Term "%" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Term go to state 205 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + 103 Terms: Term • + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 185 RangeLiteral: "[" Term • ".." Term "]" + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + ".." shift, and go to state 217 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 103 (Terms) State 146 - 109 OperatorExpression: Term "^" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 145 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier + 146 | SimpleOrClaspedTerm • "." Identifier "(" ")" + 147 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" + 148 | SimpleOrClaspedTerm • "." Identifier "(" error ")" + 149 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral + 159 CardinalityExpression: "|" SimpleOrClaspedTerm • "|" - Term go to state 206 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + "|" shift, and go to state 218 + "." shift, and go to state 166 State 147 - 119 OperatorExpression: Term "=>" • Term + 181 ReferenceLiteral: "@" IdentifierPath • + 222 IdentifierPath: IdentifierPath • "::" Identifier - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + "::" shift, and go to state 169 - Term go to state 207 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 181 (ReferenceLiteral) State 148 - 110 OperatorExpression: Term "!=" • Term + 134 OperatorExpression: Term "and" • Term - "let" shift, and go to state 41 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 208 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Term go to state 219 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 149 - 114 OperatorExpression: Term "<=" • Term + 132 OperatorExpression: Term "or" • Term - "let" shift, and go to state 41 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 209 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Term go to state 220 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 150 - 115 OperatorExpression: Term ">=" • Term + 133 OperatorExpression: Term "xor" • Term - "let" shift, and go to state 41 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 210 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Term go to state 221 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 151 - 137 TypeCastingExpression: SimpleOrClaspedTerm "as" • Type + 136 OperatorExpression: Term "implies" • Term - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - Type go to state 212 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + Term go to state 222 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 152 - 129 MethodCallExpression: SimpleOrClaspedTerm "." • Identifier - 130 | SimpleOrClaspedTerm "." • Identifier "(" ")" - 131 | SimpleOrClaspedTerm "." • Identifier "(" Terms ")" - 132 | SimpleOrClaspedTerm "." • Identifier "(" error ")" - 133 LiteralCallExpression: SimpleOrClaspedTerm "." • IntegerLiteral + 120 OperatorExpression: Term "+" • Term - "in" shift, and go to state 8 - "integer" shift, and go to state 58 - "identifier" shift, and go to state 9 + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - IntegerLiteral go to state 220 - Identifier go to state 221 + Term go to state 223 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 153 - 134 IndirectCallExpression: CallExpression "(" • ")" - 135 | CallExpression "(" • Terms ")" - 136 | CallExpression "(" • error ")" + 121 OperatorExpression: Term "-" • Term - error shift, and go to state 222 - "let" shift, and go to state 41 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - ")" shift, and go to state 223 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Terms go to state 224 - Term go to state 225 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Term go to state 224 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 154 - 126 DirectCallExpression: IdentifierPath "(" • ")" - 127 | IdentifierPath "(" • Terms ")" - 128 | IdentifierPath "(" • error ")" + 127 OperatorExpression: Term "=" • Term - error shift, and go to state 226 - "let" shift, and go to state 41 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - ")" shift, and go to state 227 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Terms go to state 228 Term go to state 225 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 155 - 206 IdentifierPath: IdentifierPath "::" • Identifier + 128 OperatorExpression: Term "<" • Term - "in" shift, and go to state 8 - "identifier" shift, and go to state 9 + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - Identifier go to state 229 + Term go to state 226 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 156 - 97 SimpleOrClaspedTerm: "(" • Term ")" - 98 | "(" • error ")" - 170 TupleLiteral: "(" • Terms "," Term ")" - 171 RecordLiteral: "(" • Assignments ")" - 202 Initializer: "(" • Term ")" "->" Term + 129 OperatorExpression: Term ">" • Term - error shift, and go to state 122 - "let" shift, and go to state 41 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Terms go to state 123 - Term go to state 230 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Assignments go to state 125 - Assignment go to state 126 - Identifier go to state 127 - IdentifierPath go to state 91 + Term go to state 227 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 157 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 201 Initializer: Term • - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 201 (Initializer) + 122 OperatorExpression: Term "*" • Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 228 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 158 - 154 Literal: TupleLiteral • - 203 Initializer: TupleLiteral • "->" Term + 123 OperatorExpression: Term "/" • Term - "->" shift, and go to state 231 + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - $default reduce using rule 154 (Literal) + Term go to state 229 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 159 - 20 InitDefinition: "init" "{" Initializers • "}" - 199 Initializers: Initializers • "," Initializer + 124 OperatorExpression: Term "%" • Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - "}" shift, and go to state 232 - "," shift, and go to state 233 + Term go to state 230 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 160 - 200 Initializers: Initializer • + 125 OperatorExpression: Term "^" • Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - $default reduce using rule 200 (Initializers) + Term go to state 231 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 161 - 23 DerivedDefinition: "derived" Identifier "(" • Parameters ")" "->" Type "=" Term - 24 | "derived" Identifier "(" • error ")" "->" Type "=" Term + 135 OperatorExpression: Term "=>" • Term - error shift, and go to state 234 - "in" shift, and go to state 8 - "[" shift, and go to state 2 - "identifier" shift, and go to state 9 + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - Parameters go to state 235 - Identifier go to state 236 - TypedVariable go to state 237 - TypedAttributedVariable go to state 238 - Attributes go to state 239 - Attribute go to state 6 + Term go to state 232 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 162 - 22 DerivedDefinition: "derived" Identifier "->" • Type "=" Term + 126 OperatorExpression: Term "!=" • Term - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - Type go to state 240 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + Term go to state 233 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 163 - 21 EnumerationDefinition: "enumeration" Identifier "=" • "{" Enumerators "}" + 130 OperatorExpression: Term "<=" • Term - "{" shift, and go to state 241 + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 234 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 164 - 25 RuleDefinition: "rule" Identifier "=" • Rule + 131 OperatorExpression: Term ">=" • Term - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 255 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Term go to state 235 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 165 - 27 RuleDefinition: "rule" Identifier "(" • Parameters ")" "=" Rule - 28 | "rule" Identifier "(" • Parameters ")" "->" Type "=" Rule - 29 | "rule" Identifier "(" • error ")" "=" Rule - 30 | "rule" Identifier "(" • error ")" "->" Type "=" Rule + 153 TypeCastingExpression: SimpleOrClaspedTerm "as" • Type - error shift, and go to state 272 "in" shift, and go to state 8 - "[" shift, and go to state 2 + "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Parameters go to state 273 - Identifier go to state 236 - TypedVariable go to state 237 - TypedAttributedVariable go to state 238 - Attributes go to state 239 - Attribute go to state 6 + Type go to state 236 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 166 - 26 RuleDefinition: "rule" Identifier "->" • Type "=" Rule + 145 MethodCallExpression: SimpleOrClaspedTerm "." • Identifier + 146 | SimpleOrClaspedTerm "." • Identifier "(" ")" + 147 | SimpleOrClaspedTerm "." • Identifier "(" Terms ")" + 148 | SimpleOrClaspedTerm "." • Identifier "(" error ")" + 149 LiteralCallExpression: SimpleOrClaspedTerm "." • IntegerLiteral "in" shift, and go to state 8 - "(" shift, and go to state 211 + "integer" shift, and go to state 62 "identifier" shift, and go to state 9 - Type go to state 274 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + IntegerLiteral go to state 237 + Identifier go to state 238 State 167 - 37 UsingDefinition: "using" Identifier "=" • Type + 150 IndirectCallExpression: CallExpression "(" • ")" + 151 | CallExpression "(" • Terms ")" + 152 | CallExpression "(" • error ")" - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 + error shift, and go to state 239 + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + ")" shift, and go to state 240 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - Type go to state 275 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + Terms go to state 241 + Term go to state 242 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 168 - 39 UsingPathDefinition: "using" IdentifierPath "::" • "*" - 206 IdentifierPath: IdentifierPath "::" • Identifier + 142 DirectCallExpression: IdentifierPath "(" • ")" + 143 | IdentifierPath "(" • Terms ")" + 144 | IdentifierPath "(" • error ")" - "in" shift, and go to state 8 - "*" shift, and go to state 276 - "identifier" shift, and go to state 9 + error shift, and go to state 243 + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + ")" shift, and go to state 244 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - Identifier go to state 229 + Terms go to state 245 + Term go to state 242 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 169 - 40 InvariantDefinition: "invariant" Identifier "=" • Term + 222 IdentifierPath: IdentifierPath "::" • Identifier - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + "in" shift, and go to state 8 + "identifier" shift, and go to state 9 - Term go to state 277 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Identifier go to state 246 State 170 - 42 ImportDefinition: "import" IdentifierPath "as" • Identifier + 113 SimpleOrClaspedTerm: "(" • Term ")" + 114 | "(" • error ")" + 186 TupleLiteral: "(" • Terms "," Term ")" + 187 RecordLiteral: "(" • Assignments ")" + 218 Initializer: "(" • Term ")" "->" Term - "in" shift, and go to state 8 - "identifier" shift, and go to state 9 + error shift, and go to state 136 + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - Identifier go to state 278 + Terms go to state 137 + Term go to state 247 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Assignments go to state 139 + Assignment go to state 140 + Identifier go to state 141 + IdentifierPath go to state 95 State 171 - 43 StructureDefinition: "structure" Identifier "=" • "{" FunctionDefinition "}" - - "{" shift, and go to state 279 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 217 Initializer: Term • + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 217 (Initializer) State 172 - 31 FunctionDefinition: "function" Identifier ":" • MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially - - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 + 170 Literal: TupleLiteral • + 219 Initializer: TupleLiteral • "->" Term - $default reduce using rule 192 (MaybeFunctionParameters) + "->" shift, and go to state 248 - Type go to state 280 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - FunctionParameters go to state 281 - MaybeFunctionParameters go to state 282 - Identifier go to state 90 - IdentifierPath go to state 219 + $default reduce using rule 170 (Literal) State 173 - 214 TypedVariable: Identifier ":" • Type - - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 + 22 InitDefinition: "init" "{" Initializers • "}" + 215 Initializers: Initializers • "," Initializer - Type go to state 283 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + "}" shift, and go to state 249 + "," shift, and go to state 250 State 174 - 221 VariableBinding: AttributedVariable "=" • Term + 216 Initializers: Initializer • - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Term go to state 284 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 216 (Initializers) State 175 - 138 LetExpression: "let" VariableBindings "in" • Term + 25 DerivedDefinition: "derived" Identifier "(" • Parameters ")" "->" Type "=" Term + 26 | "derived" Identifier "(" • error ")" "->" Type "=" Term - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + error shift, and go to state 251 + "in" shift, and go to state 8 + "[" shift, and go to state 2 + "identifier" shift, and go to state 9 - Term go to state 285 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Parameters go to state 252 + Identifier go to state 253 + TypedVariable go to state 254 + TypedAttributedVariable go to state 255 + Attributes go to state 256 + Attribute go to state 6 State 176 - 219 VariableBindings: VariableBindings "," • VariableBinding + 24 DerivedDefinition: "derived" Identifier "->" • Type "=" Term "in" shift, and go to state 8 - "[" shift, and go to state 2 + "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Identifier go to state 107 - Variable go to state 108 - TypedVariable go to state 109 - AttributedVariable go to state 110 - VariableBinding go to state 286 - Attributes go to state 113 - Attribute go to state 6 + Type go to state 257 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 177 - 215 AttributedVariable: Attributes Variable • + 23 EnumerationDefinition: "enumeration" Identifier "=" • "{" Enumerators "}" - $default reduce using rule 215 (AttributedVariable) + "{" shift, and go to state 258 State 178 - 141 UniversalQuantifierExpression: "forall" AttributedVariables "in" • Term "holds" Term + 27 RuleDefinition: "rule" Identifier "=" • Rule - "let" shift, and go to state 41 + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 287 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Rule go to state 272 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 179 - 210 AttributedVariables: AttributedVariables "," • AttributedVariable + 29 RuleDefinition: "rule" Identifier "(" • Parameters ")" "=" Rule + 30 | "rule" Identifier "(" • Parameters ")" "->" Type "=" Rule + 31 | "rule" Identifier "(" • error ")" "=" Rule + 32 | "rule" Identifier "(" • error ")" "->" Type "=" Rule + error shift, and go to state 289 "in" shift, and go to state 8 "[" shift, and go to state 2 "identifier" shift, and go to state 9 - Identifier go to state 107 - Variable go to state 108 - TypedVariable go to state 109 - AttributedVariable go to state 288 - Attributes go to state 113 - Attribute go to state 6 + Parameters go to state 290 + Identifier go to state 253 + TypedVariable go to state 254 + TypedAttributedVariable go to state 255 + Attributes go to state 256 + Attribute go to state 6 State 180 - 140 ChooseExpression: "choose" AttributedVariables "in" • Term "do" Term + 28 RuleDefinition: "rule" Identifier "->" • Type "=" Rule - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 - Term go to state 289 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Type go to state 291 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 181 - 139 ConditionalExpression: "if" Term "then" • Term "else" Term + 39 UsingDefinition: "using" Identifier "=" • Type - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 - Term go to state 290 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Type go to state 292 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 182 - 142 ExistentialQuantifierExpression: "exists" AttributedVariables "in" • Term "with" Term + 41 UsingPathDefinition: "using" IdentifierPath "::" • "*" + 222 IdentifierPath: IdentifierPath "::" • Identifier - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + "in" shift, and go to state 8 + "*" shift, and go to state 293 + "identifier" shift, and go to state 9 - Term go to state 291 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Identifier go to state 246 State 183 - 98 SimpleOrClaspedTerm: "(" error ")" • + 42 InvariantDefinition: "invariant" Identifier "=" • Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - $default reduce using rule 98 (SimpleOrClaspedTerm) + Term go to state 294 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 184 - 86 Terms: Terms "," • Term - 170 TupleLiteral: "(" Terms "," • Term ")" + 44 ImportDefinition: "import" IdentifierPath "as" • Identifier - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + "in" shift, and go to state 8 + "identifier" shift, and go to state 9 - Term go to state 292 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Identifier go to state 295 State 185 - 97 SimpleOrClaspedTerm: "(" Term ")" • + 45 StructureDefinition: "structure" Identifier "=" • "{" FunctionDefinition "}" - $default reduce using rule 97 (SimpleOrClaspedTerm) + "{" shift, and go to state 296 State 186 - 171 RecordLiteral: "(" Assignments ")" • + 46 FeatureDefinition: "feature" Identifier "=" • "{" FeatureDeclarationsAndDefinitions "}" - $default reduce using rule 171 (RecordLiteral) + "{" shift, and go to state 297 State 187 - 172 Assignments: Assignments "," • Assignment + 191 Types: Types • "," Type + 200 TupleType: "(" Types • "," Type ")" - "in" shift, and go to state 8 - "identifier" shift, and go to state 9 - - Assignment go to state 293 - Identifier go to state 294 + "," shift, and go to state 298 State 188 - 174 Assignment: Identifier ":" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 192 Types: Type • - Term go to state 295 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 192 (Types) State 189 - 168 ListLiteral: "[" error "]" • + 223 IdentifierPath: Identifier • + 230 TypedVariable: Identifier • ":" Type - $default reduce using rule 168 (ListLiteral) + ":" shift, and go to state 198 + + $default reduce using rule 223 (IdentifierPath) State 190 - 167 ListLiteral: "[" Terms "]" • + 199 BasicType: IdentifierPath • + 202 TemplateType: IdentifierPath • "<" Types ">" + 203 RelationType: IdentifierPath • "<" MaybeFunctionParameters "->" Type ">" + 204 FixedSizedType: IdentifierPath • "'" Term + 222 IdentifierPath: IdentifierPath • "::" Identifier - $default reduce using rule 167 (ListLiteral) + "::" shift, and go to state 169 + "<" shift, and go to state 195 + "'" shift, and go to state 196 + $default reduce using rule 199 (BasicType) -State 191 - 86 Terms: Terms "," • Term +State 191 - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 201 RecordType: "(" TypedVariables • "," TypedVariable ")" + 228 TypedVariables: TypedVariables • "," TypedVariable - Term go to state 296 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + "," shift, and go to state 299 State 192 - 169 RangeLiteral: "[" Term ".." • Term "]" - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 229 TypedVariables: TypedVariable • - Term go to state 297 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 229 (TypedVariables) State 193 - 143 CardinalityExpression: "|" SimpleOrClaspedTerm "|" • + 53 ImplementationDefinition: "implements" Type "=" • "{" ImplementationDefinitionDefinitions "}" - $default reduce using rule 143 (CardinalityExpression) + "{" shift, and go to state 300 State 194 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 118 | Term "and" Term • - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 118 (OperatorExpression) + 52 ImplementationDefinition: "implements" IdentifierPath "for" • Type "=" "{" ImplementationDefinitionDefinitions "}" + + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 + + Type go to state 301 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 195 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 116 | Term "or" Term • - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "and" shift, and go to state 134 - "xor" shift, and go to state 136 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 116 (OperatorExpression) + 202 TemplateType: IdentifierPath "<" • Types ">" + 203 RelationType: IdentifierPath "<" • MaybeFunctionParameters "->" Type ">" + + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 + + $default reduce using rule 208 (MaybeFunctionParameters) + + Types go to state 302 + Type go to state 303 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + FunctionParameters go to state 304 + MaybeFunctionParameters go to state 305 + Identifier go to state 94 + IdentifierPath go to state 190 State 196 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 117 | Term "xor" Term • - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "and" shift, and go to state 134 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 117 (OperatorExpression) + 204 FixedSizedType: IdentifierPath "'" • Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 306 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 197 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 120 | Term "implies" Term • - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 + 33 FunctionDefinition: "function" Identifier ":" • MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially - $default reduce using rule 120 (OperatorExpression) + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 + + $default reduce using rule 208 (MaybeFunctionParameters) + + Type go to state 307 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + FunctionParameters go to state 304 + MaybeFunctionParameters go to state 308 + Identifier go to state 94 + IdentifierPath go to state 190 State 198 - 104 OperatorExpression: Term • "+" Term - 104 | Term "+" Term • - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - - $default reduce using rule 104 (OperatorExpression) + 230 TypedVariable: Identifier ":" • Type + + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 + + Type go to state 309 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 199 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 105 | Term "-" Term • - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - - $default reduce using rule 105 (OperatorExpression) + 237 VariableBinding: AttributedVariable "=" • Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 310 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 200 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 111 | Term "=" Term • - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 111 (OperatorExpression) + 154 LetExpression: "let" VariableBindings "in" • Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 311 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 201 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 112 | Term "<" Term • - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - - $default reduce using rule 112 (OperatorExpression) + 235 VariableBindings: VariableBindings "," • VariableBinding + + "in" shift, and go to state 8 + "[" shift, and go to state 2 + "identifier" shift, and go to state 9 + + Identifier go to state 121 + Variable go to state 122 + TypedVariable go to state 123 + AttributedVariable go to state 124 + VariableBinding go to state 312 + Attributes go to state 127 + Attribute go to state 6 State 202 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 113 | Term ">" Term • - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - - $default reduce using rule 113 (OperatorExpression) + 231 AttributedVariable: Attributes Variable • + + $default reduce using rule 231 (AttributedVariable) State 203 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 106 | Term "*" Term • - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "^" shift, and go to state 146 - - $default reduce using rule 106 (OperatorExpression) + 157 UniversalQuantifierExpression: "forall" AttributedVariables "in" • Term "holds" Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 313 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 204 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 107 | Term "/" Term • - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "^" shift, and go to state 146 - - $default reduce using rule 107 (OperatorExpression) + 226 AttributedVariables: AttributedVariables "," • AttributedVariable + + "in" shift, and go to state 8 + "[" shift, and go to state 2 + "identifier" shift, and go to state 9 + + Identifier go to state 121 + Variable go to state 122 + TypedVariable go to state 123 + AttributedVariable go to state 314 + Attributes go to state 127 + Attribute go to state 6 State 205 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 108 | Term "%" Term • - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "^" shift, and go to state 146 - - $default reduce using rule 108 (OperatorExpression) + 156 ChooseExpression: "choose" AttributedVariables "in" • Term "do" Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 315 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 206 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 109 | Term "^" Term • - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - $default reduce using rule 109 (OperatorExpression) + 155 ConditionalExpression: "if" Term "then" • Term "else" Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 316 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 207 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 119 | Term "=>" Term • - 120 | Term • "implies" Term - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 119 (OperatorExpression) + 158 ExistentialQuantifierExpression: "exists" AttributedVariables "in" • Term "with" Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 317 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 208 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 110 | Term "!=" Term • - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 110 (OperatorExpression) + 114 SimpleOrClaspedTerm: "(" error ")" • + + $default reduce using rule 114 (SimpleOrClaspedTerm) State 209 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 114 | Term "<=" Term • - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - - $default reduce using rule 114 (OperatorExpression) + 102 Terms: Terms "," • Term + 186 TupleLiteral: "(" Terms "," • Term ")" + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 318 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 210 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 115 | Term ">=" Term • - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - - $default reduce using rule 115 (OperatorExpression) + 113 SimpleOrClaspedTerm: "(" Term ")" • + $default reduce using rule 113 (SimpleOrClaspedTerm) -State 211 - 184 TupleType: "(" • Types "," Type ")" - 185 RecordType: "(" • TypedVariables "," TypedVariable ")" +State 211 - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 + 187 RecordLiteral: "(" Assignments ")" • - Types go to state 298 - Type go to state 299 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 300 - IdentifierPath go to state 219 - TypedVariables go to state 301 - TypedVariable go to state 302 + $default reduce using rule 187 (RecordLiteral) State 212 - 137 TypeCastingExpression: SimpleOrClaspedTerm "as" Type • + 188 Assignments: Assignments "," • Assignment + + "in" shift, and go to state 8 + "identifier" shift, and go to state 9 - $default reduce using rule 137 (TypeCastingExpression) + Assignment go to state 319 + Identifier go to state 320 State 213 - 177 Type: BasicType • + 190 Assignment: Identifier ":" • Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - $default reduce using rule 177 (Type) + Term go to state 321 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 214 - 178 Type: TupleType • + 184 ListLiteral: "[" error "]" • - $default reduce using rule 178 (Type) + $default reduce using rule 184 (ListLiteral) State 215 - 179 Type: RecordType • + 183 ListLiteral: "[" Terms "]" • - $default reduce using rule 179 (Type) + $default reduce using rule 183 (ListLiteral) State 216 - 180 Type: TemplateType • + 102 Terms: Terms "," • Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - $default reduce using rule 180 (Type) + Term go to state 322 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 217 - 181 Type: RelationType • + 185 RangeLiteral: "[" Term ".." • Term "]" - $default reduce using rule 181 (Type) + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 323 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 218 - 182 Type: FixedSizedType • + 159 CardinalityExpression: "|" SimpleOrClaspedTerm "|" • - $default reduce using rule 182 (Type) + $default reduce using rule 159 (CardinalityExpression) State 219 - 183 BasicType: IdentifierPath • - 186 TemplateType: IdentifierPath • "<" Types ">" - 187 RelationType: IdentifierPath • "<" MaybeFunctionParameters "->" Type ">" - 188 FixedSizedType: IdentifierPath • "'" Term - 206 IdentifierPath: IdentifierPath • "::" Identifier - - "::" shift, and go to state 155 - "<" shift, and go to state 303 - "'" shift, and go to state 304 - - $default reduce using rule 183 (BasicType) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 134 | Term "and" Term • + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 134 (OperatorExpression) State 220 - 133 LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral • - - $default reduce using rule 133 (LiteralCallExpression) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 132 | Term "or" Term • + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "and" shift, and go to state 148 + "xor" shift, and go to state 150 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 132 (OperatorExpression) State 221 - 129 MethodCallExpression: SimpleOrClaspedTerm "." Identifier • - 130 | SimpleOrClaspedTerm "." Identifier • "(" ")" - 131 | SimpleOrClaspedTerm "." Identifier • "(" Terms ")" - 132 | SimpleOrClaspedTerm "." Identifier • "(" error ")" - - "(" shift, and go to state 305 - - $default reduce using rule 129 (MethodCallExpression) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 133 | Term "xor" Term • + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "and" shift, and go to state 148 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 133 (OperatorExpression) State 222 - 136 IndirectCallExpression: CallExpression "(" error • ")" - - ")" shift, and go to state 306 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 136 | Term "implies" Term • + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 136 (OperatorExpression) State 223 - 134 IndirectCallExpression: CallExpression "(" ")" • + 120 OperatorExpression: Term • "+" Term + 120 | Term "+" Term • + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 - $default reduce using rule 134 (IndirectCallExpression) + $default reduce using rule 120 (OperatorExpression) State 224 - 86 Terms: Terms • "," Term - 135 IndirectCallExpression: CallExpression "(" Terms • ")" + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 121 | Term "-" Term • + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 - ")" shift, and go to state 307 - "," shift, and go to state 191 + $default reduce using rule 121 (OperatorExpression) State 225 - 87 Terms: Term • - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 87 (Terms) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 127 | Term "=" Term • + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 127 (OperatorExpression) State 226 - 128 DirectCallExpression: IdentifierPath "(" error • ")" - - ")" shift, and go to state 308 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 128 | Term "<" Term • + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + + $default reduce using rule 128 (OperatorExpression) State 227 - 126 DirectCallExpression: IdentifierPath "(" ")" • - - $default reduce using rule 126 (DirectCallExpression) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 129 | Term ">" Term • + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + + $default reduce using rule 129 (OperatorExpression) State 228 - 86 Terms: Terms • "," Term - 127 DirectCallExpression: IdentifierPath "(" Terms • ")" - - ")" shift, and go to state 309 - "," shift, and go to state 191 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 122 | Term "*" Term • + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "^" shift, and go to state 160 + + $default reduce using rule 122 (OperatorExpression) State 229 - 206 IdentifierPath: IdentifierPath "::" Identifier • - - $default reduce using rule 206 (IdentifierPath) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 123 | Term "/" Term • + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "^" shift, and go to state 160 + + $default reduce using rule 123 (OperatorExpression) State 230 - 87 Terms: Term • - 97 SimpleOrClaspedTerm: "(" Term • ")" - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 202 Initializer: "(" Term • ")" "->" Term - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - ")" shift, and go to state 310 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 87 (Terms) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 124 | Term "%" Term • + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "^" shift, and go to state 160 + + $default reduce using rule 124 (OperatorExpression) State 231 - 203 Initializer: TupleLiteral "->" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Term go to state 311 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 125 | Term "^" Term • + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + $default reduce using rule 125 (OperatorExpression) State 232 - 20 InitDefinition: "init" "{" Initializers "}" • - - $default reduce using rule 20 (InitDefinition) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 135 | Term "=>" Term • + 136 | Term • "implies" Term + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 135 (OperatorExpression) State 233 - 199 Initializers: Initializers "," • Initializer - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 156 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Term go to state 157 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 158 - RecordLiteral go to state 89 - Initializer go to state 312 - Identifier go to state 90 - IdentifierPath go to state 91 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 126 | Term "!=" Term • + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 126 (OperatorExpression) State 234 - 24 DerivedDefinition: "derived" Identifier "(" error • ")" "->" Type "=" Term - - ")" shift, and go to state 313 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 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 152 + "-" shift, and go to state 153 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + + $default reduce using rule 130 (OperatorExpression) State 235 - 23 DerivedDefinition: "derived" Identifier "(" Parameters • ")" "->" Type "=" Term - 193 Parameters: Parameters • "," TypedAttributedVariable - - ")" shift, and go to state 314 - "," shift, and go to state 315 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 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 152 + "-" shift, and go to state 153 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + + $default reduce using rule 131 (OperatorExpression) State 236 - 214 TypedVariable: Identifier • ":" Type + 153 TypeCastingExpression: SimpleOrClaspedTerm "as" Type • - ":" shift, and go to state 173 + $default reduce using rule 153 (TypeCastingExpression) State 237 - 218 TypedAttributedVariable: TypedVariable • + 149 LiteralCallExpression: SimpleOrClaspedTerm "." IntegerLiteral • - $default reduce using rule 218 (TypedAttributedVariable) + $default reduce using rule 149 (LiteralCallExpression) State 238 - 194 Parameters: TypedAttributedVariable • + 145 MethodCallExpression: SimpleOrClaspedTerm "." Identifier • + 146 | SimpleOrClaspedTerm "." Identifier • "(" ")" + 147 | SimpleOrClaspedTerm "." Identifier • "(" Terms ")" + 148 | SimpleOrClaspedTerm "." Identifier • "(" error ")" - $default reduce using rule 194 (Parameters) + "(" shift, and go to state 324 + $default reduce using rule 145 (MethodCallExpression) -State 239 - 217 TypedAttributedVariable: Attributes • TypedVariable - 228 Attributes: Attributes • Attribute +State 239 - "in" shift, and go to state 8 - "[" shift, and go to state 2 - "identifier" shift, and go to state 9 + 152 IndirectCallExpression: CallExpression "(" error • ")" - Identifier go to state 236 - TypedVariable go to state 316 - Attribute go to state 39 + ")" shift, and go to state 325 State 240 - 22 DerivedDefinition: "derived" Identifier "->" Type • "=" Term + 150 IndirectCallExpression: CallExpression "(" ")" • - "=" shift, and go to state 317 + $default reduce using rule 150 (IndirectCallExpression) State 241 - 21 EnumerationDefinition: "enumeration" Identifier "=" "{" • Enumerators "}" + 102 Terms: Terms • "," Term + 151 IndirectCallExpression: CallExpression "(" Terms • ")" - error shift, and go to state 318 - "in" shift, and go to state 8 - "[" shift, and go to state 2 - "identifier" shift, and go to state 9 - - EnumeratorDefinition go to state 319 - Enumerators go to state 320 - Identifier go to state 321 - Attributes go to state 322 - Attribute go to state 6 + ")" shift, and go to state 326 + "," shift, and go to state 216 State 242 - 80 SequenceRule: "seq" • Rules "endseq" - 82 | "seq" • error "endseq" - - error shift, and go to state 323 - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Rules go to state 324 - Rule go to state 325 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + 103 Terms: Term • + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 103 (Terms) State 243 - 76 BlockRule: "par" • Rules "endpar" - 78 | "par" • error "endpar" - - error shift, and go to state 326 - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 144 DirectCallExpression: IdentifierPath "(" error • ")" - Rules go to state 327 - Rule go to state 325 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + ")" shift, and go to state 327 State 244 - 59 SkipRule: "skip" • + 142 DirectCallExpression: IdentifierPath "(" ")" • - $default reduce using rule 59 (SkipRule) + $default reduce using rule 142 (DirectCallExpression) State 245 - 69 LetRule: "let" • VariableBindings "in" Rule - - "in" shift, and go to state 8 - "[" shift, and go to state 2 - "identifier" shift, and go to state 9 + 102 Terms: Terms • "," Term + 143 DirectCallExpression: IdentifierPath "(" Terms • ")" - Identifier go to state 107 - Variable go to state 108 - TypedVariable go to state 109 - AttributedVariable go to state 110 - VariableBindings go to state 328 - VariableBinding go to state 112 - Attributes go to state 113 - Attribute go to state 6 + ")" shift, and go to state 328 + "," shift, and go to state 216 State 246 - 70 LocalRule: "local" • LocalFunctionDefinitions "in" Rule - - error shift, and go to state 329 - "in" shift, and go to state 8 - "[" shift, and go to state 2 - "identifier" shift, and go to state 9 + 222 IdentifierPath: IdentifierPath "::" Identifier • - Identifier go to state 330 - LocalFunctionDefinitions go to state 331 - AttributedLocalFunctionDefinition go to state 332 - LocalFunctionDefinition go to state 333 - Attributes go to state 334 - Attribute go to state 6 + $default reduce using rule 222 (IdentifierPath) State 247 - 71 ForallRule: "forall" • AttributedVariables "in" Term "do" Rule - 72 | "forall" • AttributedVariables "in" Term "with" Term "do" Rule - - "in" shift, and go to state 8 - "[" shift, and go to state 2 - "identifier" shift, and go to state 9 - - Identifier go to state 107 - Variable go to state 108 - AttributedVariables go to state 335 - TypedVariable go to state 109 - AttributedVariable go to state 115 - Attributes go to state 113 - Attribute go to state 6 + 103 Terms: Term • + 113 SimpleOrClaspedTerm: "(" Term • ")" + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 218 Initializer: "(" Term • ")" "->" Term + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + ")" shift, and go to state 329 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 103 (Terms) State 248 - 73 ChooseRule: "choose" • AttributedVariables "in" Term "do" Rule + 219 Initializer: TupleLiteral "->" • Term - "in" shift, and go to state 8 - "[" shift, and go to state 2 - "identifier" shift, and go to state 9 + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - Identifier go to state 107 - Variable go to state 108 - AttributedVariables go to state 336 - TypedVariable go to state 109 - AttributedVariable go to state 115 - Attributes go to state 113 - Attribute go to state 6 + Term go to state 330 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 249 - 74 IterateRule: "iterate" • Rule - - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 22 InitDefinition: "init" "{" Initializers "}" • - Rule go to state 337 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 22 (InitDefinition) State 250 - 60 ConditionalRule: "if" • Term "then" Rule - 61 | "if" • Term "then" Rule "else" Rule + 215 Initializers: Initializers "," • Initializer - "let" shift, and go to state 41 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 170 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 338 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Term go to state 171 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 172 + RecordLiteral go to state 93 + Initializer go to state 331 + Identifier go to state 94 + IdentifierPath go to state 95 State 251 - 62 CaseRule: "case" • Term "of" "{" CaseLabels "}" - 63 | "case" • Term "of" "{" error "}" - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 26 DerivedDefinition: "derived" Identifier "(" error • ")" "->" Type "=" Term - Term go to state 339 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + ")" shift, and go to state 332 State 252 - 85 WhileRule: "while" • Term "do" Rule + 25 DerivedDefinition: "derived" Identifier "(" Parameters • ")" "->" Type "=" Term + 209 Parameters: Parameters • "," TypedAttributedVariable - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Term go to state 340 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + ")" shift, and go to state 333 + "," shift, and go to state 334 State 253 - 75 BlockRule: "{" • Rules "}" - 77 | "{" • error "}" - - error shift, and go to state 341 - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 230 TypedVariable: Identifier • ":" Type - Rules go to state 342 - Rule go to state 325 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + ":" shift, and go to state 198 State 254 - 79 SequenceRule: "{|" • Rules "|}" - 81 | "{|" • error "|}" - - error shift, and go to state 343 - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 234 TypedAttributedVariable: TypedVariable • - Rules go to state 344 - Rule go to state 325 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 234 (TypedAttributedVariable) State 255 - 25 RuleDefinition: "rule" Identifier "=" Rule • + 210 Parameters: TypedAttributedVariable • - $default reduce using rule 25 (RuleDefinition) + $default reduce using rule 210 (Parameters) State 256 - 46 Rule: SkipRule • + 233 TypedAttributedVariable: Attributes • TypedVariable + 244 Attributes: Attributes • Attribute + + "in" shift, and go to state 8 + "[" shift, and go to state 2 + "identifier" shift, and go to state 9 - $default reduce using rule 46 (Rule) + Identifier go to state 253 + TypedVariable go to state 335 + Attribute go to state 43 State 257 - 47 Rule: ConditionalRule • + 24 DerivedDefinition: "derived" Identifier "->" Type • "=" Term - $default reduce using rule 47 (Rule) + "=" shift, and go to state 336 State 258 - 48 Rule: CaseRule • + 23 EnumerationDefinition: "enumeration" Identifier "=" "{" • Enumerators "}" + + error shift, and go to state 337 + "in" shift, and go to state 8 + "[" shift, and go to state 2 + "identifier" shift, and go to state 9 - $default reduce using rule 48 (Rule) + EnumeratorDefinition go to state 338 + Enumerators go to state 339 + Identifier go to state 340 + Attributes go to state 341 + Attribute go to state 6 State 259 - 49 Rule: LetRule • + 96 SequenceRule: "seq" • Rules "endseq" + 98 | "seq" • error "endseq" + + error shift, and go to state 342 + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - $default reduce using rule 49 (Rule) + Rules go to state 343 + Rule go to state 344 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 260 - 50 Rule: LocalRule • + 92 BlockRule: "par" • Rules "endpar" + 94 | "par" • error "endpar" + + error shift, and go to state 345 + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - $default reduce using rule 50 (Rule) + Rules go to state 346 + Rule go to state 344 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 261 - 51 Rule: ForallRule • + 75 SkipRule: "skip" • - $default reduce using rule 51 (Rule) + $default reduce using rule 75 (SkipRule) State 262 - 52 Rule: ChooseRule • + 85 LetRule: "let" • VariableBindings "in" Rule - $default reduce using rule 52 (Rule) + "in" shift, and go to state 8 + "[" shift, and go to state 2 + "identifier" shift, and go to state 9 + + Identifier go to state 121 + Variable go to state 122 + TypedVariable go to state 123 + AttributedVariable go to state 124 + VariableBindings go to state 347 + VariableBinding go to state 126 + Attributes go to state 127 + Attribute go to state 6 State 263 - 53 Rule: IterateRule • + 86 LocalRule: "local" • LocalFunctionDefinitions "in" Rule - $default reduce using rule 53 (Rule) + error shift, and go to state 348 + "in" shift, and go to state 8 + "[" shift, and go to state 2 + "identifier" shift, and go to state 9 + + Identifier go to state 349 + LocalFunctionDefinitions go to state 350 + AttributedLocalFunctionDefinition go to state 351 + LocalFunctionDefinition go to state 352 + Attributes go to state 353 + Attribute go to state 6 State 264 - 54 Rule: BlockRule • + 87 ForallRule: "forall" • AttributedVariables "in" Term "do" Rule + 88 | "forall" • AttributedVariables "in" Term "with" Term "do" Rule + + "in" shift, and go to state 8 + "[" shift, and go to state 2 + "identifier" shift, and go to state 9 - $default reduce using rule 54 (Rule) + Identifier go to state 121 + Variable go to state 122 + AttributedVariables go to state 354 + TypedVariable go to state 123 + AttributedVariable go to state 129 + Attributes go to state 127 + Attribute go to state 6 State 265 - 55 Rule: SequenceRule • + 89 ChooseRule: "choose" • AttributedVariables "in" Term "do" Rule + + "in" shift, and go to state 8 + "[" shift, and go to state 2 + "identifier" shift, and go to state 9 - $default reduce using rule 55 (Rule) + Identifier go to state 121 + Variable go to state 122 + AttributedVariables go to state 355 + TypedVariable go to state 123 + AttributedVariable go to state 129 + Attributes go to state 127 + Attribute go to state 6 State 266 - 56 Rule: UpdateRule • + 90 IterateRule: "iterate" • Rule - $default reduce using rule 56 (Rule) + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Rule go to state 356 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 267 - 57 Rule: CallRule • + 76 ConditionalRule: "if" • Term "then" Rule + 77 | "if" • Term "then" Rule "else" Rule - $default reduce using rule 57 (Rule) + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 357 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 268 - 58 Rule: WhileRule • + 78 CaseRule: "case" • Term "of" "{" CaseLabels "}" + 79 | "case" • Term "of" "{" error "}" + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - $default reduce using rule 58 (Rule) + Term go to state 358 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 269 - 129 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier - 130 | SimpleOrClaspedTerm • "." Identifier "(" ")" - 131 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" - 132 | SimpleOrClaspedTerm • "." Identifier "(" error ")" - 133 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral + 101 WhileRule: "while" • Term "do" Rule + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - "." shift, and go to state 152 + Term go to state 359 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 270 - 84 CallRule: CallExpression • - 99 SimpleOrClaspedTerm: CallExpression • - 134 IndirectCallExpression: CallExpression • "(" ")" - 135 | CallExpression • "(" Terms ")" - 136 | CallExpression • "(" error ")" + 91 BlockRule: "{" • Rules "}" + 93 | "{" • error "}" - "(" shift, and go to state 153 + error shift, and go to state 360 + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - "." reduce using rule 99 (SimpleOrClaspedTerm) - $default reduce using rule 84 (CallRule) + Rules go to state 361 + Rule go to state 344 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 271 - 83 UpdateRule: DirectCallExpression • ":=" Term - 122 CallExpression: DirectCallExpression • + 95 SequenceRule: "{|" • Rules "|}" + 97 | "{|" • error "|}" - ":=" shift, and go to state 345 + error shift, and go to state 362 + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - $default reduce using rule 122 (CallExpression) + Rules go to state 363 + Rule go to state 344 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 272 - 29 RuleDefinition: "rule" Identifier "(" error • ")" "=" Rule - 30 | "rule" Identifier "(" error • ")" "->" Type "=" Rule + 27 RuleDefinition: "rule" Identifier "=" Rule • - ")" shift, and go to state 346 + $default reduce using rule 27 (RuleDefinition) State 273 - 27 RuleDefinition: "rule" Identifier "(" Parameters • ")" "=" Rule - 28 | "rule" Identifier "(" Parameters • ")" "->" Type "=" Rule - 193 Parameters: Parameters • "," TypedAttributedVariable + 62 Rule: SkipRule • - ")" shift, and go to state 347 - "," shift, and go to state 315 + $default reduce using rule 62 (Rule) State 274 - 26 RuleDefinition: "rule" Identifier "->" Type • "=" Rule + 63 Rule: ConditionalRule • - "=" shift, and go to state 348 + $default reduce using rule 63 (Rule) State 275 - 37 UsingDefinition: "using" Identifier "=" Type • + 64 Rule: CaseRule • - $default reduce using rule 37 (UsingDefinition) + $default reduce using rule 64 (Rule) State 276 - 39 UsingPathDefinition: "using" IdentifierPath "::" "*" • + 65 Rule: LetRule • - $default reduce using rule 39 (UsingPathDefinition) + $default reduce using rule 65 (Rule) State 277 - 40 InvariantDefinition: "invariant" Identifier "=" Term • - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 40 (InvariantDefinition) + 66 Rule: LocalRule • + + $default reduce using rule 66 (Rule) State 278 - 42 ImportDefinition: "import" IdentifierPath "as" Identifier • + 67 Rule: ForallRule • - $default reduce using rule 42 (ImportDefinition) + $default reduce using rule 67 (Rule) State 279 - 43 StructureDefinition: "structure" Identifier "=" "{" • FunctionDefinition "}" - - "function" shift, and go to state 23 + 68 Rule: ChooseRule • - FunctionDefinition go to state 349 + $default reduce using rule 68 (Rule) State 280 - 190 FunctionParameters: Type • + 69 Rule: IterateRule • - $default reduce using rule 190 (FunctionParameters) + $default reduce using rule 69 (Rule) State 281 - 189 FunctionParameters: FunctionParameters • "*" Type - 191 MaybeFunctionParameters: FunctionParameters • + 70 Rule: BlockRule • - "*" shift, and go to state 350 - - $default reduce using rule 191 (MaybeFunctionParameters) + $default reduce using rule 70 (Rule) State 282 - 31 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters • "->" Type MaybeDefined MaybeInitially + 71 Rule: SequenceRule • - "->" shift, and go to state 351 + $default reduce using rule 71 (Rule) State 283 - 214 TypedVariable: Identifier ":" Type • + 72 Rule: UpdateRule • - $default reduce using rule 214 (TypedVariable) + $default reduce using rule 72 (Rule) State 284 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 221 VariableBinding: AttributedVariable "=" Term • - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 221 (VariableBinding) + 73 Rule: CallRule • + + $default reduce using rule 73 (Rule) State 285 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 138 LetExpression: "let" VariableBindings "in" Term • - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 138 (LetExpression) + 74 Rule: WhileRule • + + $default reduce using rule 74 (Rule) State 286 - 219 VariableBindings: VariableBindings "," VariableBinding • + 145 MethodCallExpression: SimpleOrClaspedTerm • "." Identifier + 146 | SimpleOrClaspedTerm • "." Identifier "(" ")" + 147 | SimpleOrClaspedTerm • "." Identifier "(" Terms ")" + 148 | SimpleOrClaspedTerm • "." Identifier "(" error ")" + 149 LiteralCallExpression: SimpleOrClaspedTerm • "." IntegerLiteral - $default reduce using rule 219 (VariableBindings) + "." shift, and go to state 166 State 287 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 141 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term • "holds" Term - - "holds" shift, and go to state 352 - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 + 100 CallRule: CallExpression • + 115 SimpleOrClaspedTerm: CallExpression • + 150 IndirectCallExpression: CallExpression • "(" ")" + 151 | CallExpression • "(" Terms ")" + 152 | CallExpression • "(" error ")" + + "(" shift, and go to state 167 + + "." reduce using rule 115 (SimpleOrClaspedTerm) + $default reduce using rule 100 (CallRule) State 288 - 210 AttributedVariables: AttributedVariables "," AttributedVariable • + 99 UpdateRule: DirectCallExpression • ":=" Term + 138 CallExpression: DirectCallExpression • + + ":=" shift, and go to state 364 - $default reduce using rule 210 (AttributedVariables) + $default reduce using rule 138 (CallExpression) State 289 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 140 ChooseExpression: "choose" AttributedVariables "in" Term • "do" Term - - "do" shift, and go to state 353 - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 + 31 RuleDefinition: "rule" Identifier "(" error • ")" "=" Rule + 32 | "rule" Identifier "(" error • ")" "->" Type "=" Rule + + ")" shift, and go to state 365 State 290 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 139 ConditionalExpression: "if" Term "then" Term • "else" Term - - "else" shift, and go to state 354 - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 + 29 RuleDefinition: "rule" Identifier "(" Parameters • ")" "=" Rule + 30 | "rule" Identifier "(" Parameters • ")" "->" Type "=" Rule + 209 Parameters: Parameters • "," TypedAttributedVariable + + ")" shift, and go to state 366 + "," shift, and go to state 334 State 291 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 142 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term • "with" Term - - "with" shift, and go to state 355 - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 + 28 RuleDefinition: "rule" Identifier "->" Type • "=" Rule + + "=" shift, and go to state 367 State 292 - 86 Terms: Terms "," Term • - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 170 TupleLiteral: "(" Terms "," Term • ")" - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - ")" shift, and go to state 356 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 86 (Terms) + 39 UsingDefinition: "using" Identifier "=" Type • + + $default reduce using rule 39 (UsingDefinition) State 293 - 172 Assignments: Assignments "," Assignment • + 41 UsingPathDefinition: "using" IdentifierPath "::" "*" • - $default reduce using rule 172 (Assignments) + $default reduce using rule 41 (UsingPathDefinition) State 294 - 174 Assignment: Identifier • ":" Term - - ":" shift, and go to state 188 + 42 InvariantDefinition: "invariant" Identifier "=" Term • + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 42 (InvariantDefinition) State 295 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 174 Assignment: Identifier ":" Term • - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 174 (Assignment) + 44 ImportDefinition: "import" IdentifierPath "as" Identifier • + + $default reduce using rule 44 (ImportDefinition) State 296 - 86 Terms: Terms "," Term • - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 86 (Terms) + 45 StructureDefinition: "structure" Identifier "=" "{" • FunctionDefinition "}" + + "function" shift, and go to state 25 + + FunctionDefinition go to state 368 State 297 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 169 RangeLiteral: "[" Term ".." Term • "]" - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "]" shift, and go to state 357 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 + 46 FeatureDefinition: "feature" Identifier "=" "{" • FeatureDeclarationsAndDefinitions "}" + + "derived" shift, and go to state 369 + "rule" shift, and go to state 370 + + DerivedDefinition go to state 371 + RuleDefinition go to state 372 + FeatureDeclarationOrDefinition go to state 373 + FeatureDeclarationsAndDefinitions go to state 374 + DeclarationDefinition go to state 375 State 298 - 175 Types: Types • "," Type - 184 TupleType: "(" Types • "," Type ")" + 191 Types: Types "," • Type + 200 TupleType: "(" Types "," • Type ")" - "," shift, and go to state 358 + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 + + Type go to state 376 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 299 - 176 Types: Type • + 201 RecordType: "(" TypedVariables "," • TypedVariable ")" + 228 TypedVariables: TypedVariables "," • TypedVariable + + "in" shift, and go to state 8 + "identifier" shift, and go to state 9 - $default reduce using rule 176 (Types) + Identifier go to state 253 + TypedVariable go to state 377 State 300 - 207 IdentifierPath: Identifier • - 214 TypedVariable: Identifier • ":" Type + 53 ImplementationDefinition: "implements" Type "=" "{" • ImplementationDefinitionDefinitions "}" - ":" shift, and go to state 173 + "derived" shift, and go to state 16 + "rule" shift, and go to state 18 - $default reduce using rule 207 (IdentifierPath) + DerivedDefinition go to state 378 + RuleDefinition go to state 379 + ImplementationDefinitionDefinition go to state 380 + ImplementationDefinitionDefinitions go to state 381 State 301 - 185 RecordType: "(" TypedVariables • "," TypedVariable ")" - 212 TypedVariables: TypedVariables • "," TypedVariable + 52 ImplementationDefinition: "implements" IdentifierPath "for" Type • "=" "{" ImplementationDefinitionDefinitions "}" - "," shift, and go to state 359 + "=" shift, and go to state 382 State 302 - 213 TypedVariables: TypedVariable • + 191 Types: Types • "," Type + 202 TemplateType: IdentifierPath "<" Types • ">" - $default reduce using rule 213 (TypedVariables) + "," shift, and go to state 383 + ">" shift, and go to state 384 State 303 - 186 TemplateType: IdentifierPath "<" • Types ">" - 187 RelationType: IdentifierPath "<" • MaybeFunctionParameters "->" Type ">" + 192 Types: Type • + 206 FunctionParameters: Type • - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 - - $default reduce using rule 192 (MaybeFunctionParameters) - - Types go to state 360 - Type go to state 361 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - FunctionParameters go to state 281 - MaybeFunctionParameters go to state 362 - Identifier go to state 90 - IdentifierPath go to state 219 + "*" reduce using rule 206 (FunctionParameters) + "->" reduce using rule 206 (FunctionParameters) + $default reduce using rule 192 (Types) State 304 - 188 FixedSizedType: IdentifierPath "'" • Term + 205 FunctionParameters: FunctionParameters • "*" Type + 207 MaybeFunctionParameters: FunctionParameters • - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + "*" shift, and go to state 385 - Term go to state 363 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 207 (MaybeFunctionParameters) State 305 - 130 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" • ")" - 131 | SimpleOrClaspedTerm "." Identifier "(" • Terms ")" - 132 | SimpleOrClaspedTerm "." Identifier "(" • error ")" - - error shift, and go to state 364 - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - ")" shift, and go to state 365 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 203 RelationType: IdentifierPath "<" MaybeFunctionParameters • "->" Type ">" - Terms go to state 366 - Term go to state 225 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + "->" shift, and go to state 386 State 306 - 136 IndirectCallExpression: CallExpression "(" error ")" • - - $default reduce using rule 136 (IndirectCallExpression) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 204 FixedSizedType: IdentifierPath "'" Term • + + $default reduce using rule 204 (FixedSizedType) State 307 - 135 IndirectCallExpression: CallExpression "(" Terms ")" • + 206 FunctionParameters: Type • - $default reduce using rule 135 (IndirectCallExpression) + $default reduce using rule 206 (FunctionParameters) State 308 - 128 DirectCallExpression: IdentifierPath "(" error ")" • + 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters • "->" Type MaybeDefined MaybeInitially - $default reduce using rule 128 (DirectCallExpression) + "->" shift, and go to state 387 State 309 - 127 DirectCallExpression: IdentifierPath "(" Terms ")" • + 230 TypedVariable: Identifier ":" Type • - $default reduce using rule 127 (DirectCallExpression) + $default reduce using rule 230 (TypedVariable) State 310 - 97 SimpleOrClaspedTerm: "(" Term ")" • - 202 Initializer: "(" Term ")" • "->" Term - - "->" shift, and go to state 367 - - $default reduce using rule 97 (SimpleOrClaspedTerm) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 237 VariableBinding: AttributedVariable "=" Term • + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 237 (VariableBinding) State 311 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 203 Initializer: TupleLiteral "->" Term • - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 203 (Initializer) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 154 LetExpression: "let" VariableBindings "in" Term • + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 154 (LetExpression) State 312 - 199 Initializers: Initializers "," Initializer • + 235 VariableBindings: VariableBindings "," VariableBinding • - $default reduce using rule 199 (Initializers) + $default reduce using rule 235 (VariableBindings) State 313 - 24 DerivedDefinition: "derived" Identifier "(" error ")" • "->" Type "=" Term - - "->" shift, and go to state 368 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 157 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term • "holds" Term + + "holds" shift, and go to state 388 + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 State 314 - 23 DerivedDefinition: "derived" Identifier "(" Parameters ")" • "->" Type "=" Term + 226 AttributedVariables: AttributedVariables "," AttributedVariable • - "->" shift, and go to state 369 + $default reduce using rule 226 (AttributedVariables) State 315 - 193 Parameters: Parameters "," • TypedAttributedVariable - - "in" shift, and go to state 8 - "[" shift, and go to state 2 - "identifier" shift, and go to state 9 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 156 ChooseExpression: "choose" AttributedVariables "in" Term • "do" Term - Identifier go to state 236 - TypedVariable go to state 237 - TypedAttributedVariable go to state 370 - Attributes go to state 239 - Attribute go to state 6 + "do" shift, and go to state 389 + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 State 316 - 217 TypedAttributedVariable: Attributes TypedVariable • - - $default reduce using rule 217 (TypedAttributedVariable) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 155 ConditionalExpression: "if" Term "then" Term • "else" Term + + "else" shift, and go to state 390 + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 State 317 - 22 DerivedDefinition: "derived" Identifier "->" Type "=" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Term go to state 371 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 158 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term • "with" Term + + "with" shift, and go to state 391 + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 State 318 - 34 EnumeratorDefinition: error • - - $default reduce using rule 34 (EnumeratorDefinition) + 102 Terms: Terms "," Term • + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 186 TupleLiteral: "(" Terms "," Term • ")" + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + ")" shift, and go to state 392 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 102 (Terms) State 319 - 36 Enumerators: EnumeratorDefinition • + 188 Assignments: Assignments "," Assignment • - $default reduce using rule 36 (Enumerators) + $default reduce using rule 188 (Assignments) State 320 - 21 EnumerationDefinition: "enumeration" Identifier "=" "{" Enumerators • "}" - 35 Enumerators: Enumerators • "," EnumeratorDefinition + 190 Assignment: Identifier • ":" Term - "}" shift, and go to state 372 - "," shift, and go to state 373 + ":" shift, and go to state 213 State 321 - 32 EnumeratorDefinition: Identifier • - - $default reduce using rule 32 (EnumeratorDefinition) + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 190 Assignment: Identifier ":" Term • + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 190 (Assignment) State 322 - 33 EnumeratorDefinition: Attributes • Identifier - 228 Attributes: Attributes • Attribute - - "in" shift, and go to state 8 - "[" shift, and go to state 2 - "identifier" shift, and go to state 9 - - Identifier go to state 374 - Attribute go to state 39 + 102 Terms: Terms "," Term • + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 102 (Terms) State 323 - 82 SequenceRule: "seq" error • "endseq" - - "endseq" shift, and go to state 375 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 185 RangeLiteral: "[" Term ".." Term • "]" + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "]" shift, and go to state 393 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 State 324 - 44 Rules: Rules • Rule - 80 SequenceRule: "seq" Rules • "endseq" + 146 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" • ")" + 147 | SimpleOrClaspedTerm "." Identifier "(" • Terms ")" + 148 | SimpleOrClaspedTerm "." Identifier "(" • error ")" - "seq" shift, and go to state 242 - "endseq" shift, and go to state 376 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 + error shift, and go to state 394 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + ")" shift, and go to state 395 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 377 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Terms go to state 396 + Term go to state 242 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 325 - 45 Rules: Rule • + 152 IndirectCallExpression: CallExpression "(" error ")" • - $default reduce using rule 45 (Rules) + $default reduce using rule 152 (IndirectCallExpression) State 326 - 78 BlockRule: "par" error • "endpar" + 151 IndirectCallExpression: CallExpression "(" Terms ")" • - "endpar" shift, and go to state 378 + $default reduce using rule 151 (IndirectCallExpression) State 327 - 44 Rules: Rules • Rule - 76 BlockRule: "par" Rules • "endpar" - - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "endpar" shift, and go to state 379 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 144 DirectCallExpression: IdentifierPath "(" error ")" • - Rule go to state 377 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 144 (DirectCallExpression) State 328 - 69 LetRule: "let" VariableBindings • "in" Rule - 219 VariableBindings: VariableBindings • "," VariableBinding + 143 DirectCallExpression: IdentifierPath "(" Terms ")" • - "in" shift, and go to state 380 - "," shift, and go to state 176 + $default reduce using rule 143 (DirectCallExpression) State 329 - 226 AttributedLocalFunctionDefinition: error • + 113 SimpleOrClaspedTerm: "(" Term ")" • + 218 Initializer: "(" Term ")" • "->" Term - $default reduce using rule 226 (AttributedLocalFunctionDefinition) + "->" shift, and go to state 397 + $default reduce using rule 113 (SimpleOrClaspedTerm) -State 330 - 227 LocalFunctionDefinition: Identifier • ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially +State 330 - ":" shift, and go to state 381 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 219 Initializer: TupleLiteral "->" Term • + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 219 (Initializer) State 331 - 70 LocalRule: "local" LocalFunctionDefinitions • "in" Rule - 222 LocalFunctionDefinitions: LocalFunctionDefinitions • "," AttributedLocalFunctionDefinition + 215 Initializers: Initializers "," Initializer • - "in" shift, and go to state 382 - "," shift, and go to state 383 + $default reduce using rule 215 (Initializers) State 332 - 223 LocalFunctionDefinitions: AttributedLocalFunctionDefinition • + 26 DerivedDefinition: "derived" Identifier "(" error ")" • "->" Type "=" Term - $default reduce using rule 223 (LocalFunctionDefinitions) + "->" shift, and go to state 398 State 333 - 225 AttributedLocalFunctionDefinition: LocalFunctionDefinition • + 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" • "->" Type "=" Term - $default reduce using rule 225 (AttributedLocalFunctionDefinition) + "->" shift, and go to state 399 State 334 - 224 AttributedLocalFunctionDefinition: Attributes • LocalFunctionDefinition - 228 Attributes: Attributes • Attribute + 209 Parameters: Parameters "," • TypedAttributedVariable "in" shift, and go to state 8 "[" shift, and go to state 2 "identifier" shift, and go to state 9 - Identifier go to state 330 - LocalFunctionDefinition go to state 384 - Attribute go to state 39 + Identifier go to state 253 + TypedVariable go to state 254 + TypedAttributedVariable go to state 400 + Attributes go to state 256 + Attribute go to state 6 State 335 - 71 ForallRule: "forall" AttributedVariables • "in" Term "do" Rule - 72 | "forall" AttributedVariables • "in" Term "with" Term "do" Rule - 210 AttributedVariables: AttributedVariables • "," AttributedVariable + 233 TypedAttributedVariable: Attributes TypedVariable • - "in" shift, and go to state 385 - "," shift, and go to state 179 + $default reduce using rule 233 (TypedAttributedVariable) State 336 - 73 ChooseRule: "choose" AttributedVariables • "in" Term "do" Rule - 210 AttributedVariables: AttributedVariables • "," AttributedVariable + 24 DerivedDefinition: "derived" Identifier "->" Type "=" • Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - "in" shift, and go to state 386 - "," shift, and go to state 179 + Term go to state 401 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 337 - 74 IterateRule: "iterate" Rule • + 36 EnumeratorDefinition: error • - $default reduce using rule 74 (IterateRule) + $default reduce using rule 36 (EnumeratorDefinition) State 338 - 60 ConditionalRule: "if" Term • "then" Rule - 61 | "if" Term • "then" Rule "else" Rule - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "then" shift, and go to state 387 - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 + 38 Enumerators: EnumeratorDefinition • + + $default reduce using rule 38 (Enumerators) State 339 - 62 CaseRule: "case" Term • "of" "{" CaseLabels "}" - 63 | "case" Term • "of" "{" error "}" - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "of" shift, and go to state 388 - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 + 23 EnumerationDefinition: "enumeration" Identifier "=" "{" Enumerators • "}" + 37 Enumerators: Enumerators • "," EnumeratorDefinition + + "}" shift, and go to state 402 + "," shift, and go to state 403 State 340 - 85 WhileRule: "while" Term • "do" Rule - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term + 34 EnumeratorDefinition: Identifier • - "do" shift, and go to state 389 - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 + $default reduce using rule 34 (EnumeratorDefinition) State 341 - 77 BlockRule: "{" error • "}" + 35 EnumeratorDefinition: Attributes • Identifier + 244 Attributes: Attributes • Attribute - "}" shift, and go to state 390 + "in" shift, and go to state 8 + "[" shift, and go to state 2 + "identifier" shift, and go to state 9 + Identifier go to state 404 + Attribute go to state 43 -State 342 - 44 Rules: Rules • Rule - 75 BlockRule: "{" Rules • "}" +State 342 - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "}" shift, and go to state 391 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 98 SequenceRule: "seq" error • "endseq" - Rule go to state 377 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + "endseq" shift, and go to state 405 State 343 - 81 SequenceRule: "{|" error • "|}" + 60 Rules: Rules • Rule + 96 SequenceRule: "seq" Rules • "endseq" - "|}" shift, and go to state 392 + "seq" shift, and go to state 259 + "endseq" shift, and go to state 406 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + Rule go to state 407 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 -State 344 - 44 Rules: Rules • Rule - 79 SequenceRule: "{|" Rules • "|}" +State 344 - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "|}" shift, and go to state 393 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 61 Rules: Rule • - Rule go to state 377 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 61 (Rules) State 345 - 83 UpdateRule: DirectCallExpression ":=" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 94 BlockRule: "par" error • "endpar" - Term go to state 394 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + "endpar" shift, and go to state 408 State 346 - 29 RuleDefinition: "rule" Identifier "(" error ")" • "=" Rule - 30 | "rule" Identifier "(" error ")" • "->" Type "=" Rule + 60 Rules: Rules • Rule + 92 BlockRule: "par" Rules • "endpar" - "=" shift, and go to state 395 - "->" shift, and go to state 396 + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "endpar" shift, and go to state 409 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Rule go to state 407 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 347 - 27 RuleDefinition: "rule" Identifier "(" Parameters ")" • "=" Rule - 28 | "rule" Identifier "(" Parameters ")" • "->" Type "=" Rule + 85 LetRule: "let" VariableBindings • "in" Rule + 235 VariableBindings: VariableBindings • "," VariableBinding - "=" shift, and go to state 397 - "->" shift, and go to state 398 + "in" shift, and go to state 410 + "," shift, and go to state 201 State 348 - 26 RuleDefinition: "rule" Identifier "->" Type "=" • Rule - - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 242 AttributedLocalFunctionDefinition: error • - Rule go to state 399 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 242 (AttributedLocalFunctionDefinition) State 349 - 43 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinition • "}" + 243 LocalFunctionDefinition: Identifier • ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially - "}" shift, and go to state 400 + ":" shift, and go to state 411 State 350 - 189 FunctionParameters: FunctionParameters "*" • Type + 86 LocalRule: "local" LocalFunctionDefinitions • "in" Rule + 238 LocalFunctionDefinitions: LocalFunctionDefinitions • "," AttributedLocalFunctionDefinition - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 - - Type go to state 401 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + "in" shift, and go to state 412 + "," shift, and go to state 413 State 351 - 31 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" • Type MaybeDefined MaybeInitially - - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 + 239 LocalFunctionDefinitions: AttributedLocalFunctionDefinition • - Type go to state 402 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + $default reduce using rule 239 (LocalFunctionDefinitions) State 352 - 141 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 241 AttributedLocalFunctionDefinition: LocalFunctionDefinition • - Term go to state 403 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 241 (AttributedLocalFunctionDefinition) State 353 - 140 ChooseExpression: "choose" AttributedVariables "in" Term "do" • Term + 240 AttributedLocalFunctionDefinition: Attributes • LocalFunctionDefinition + 244 Attributes: Attributes • Attribute - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + "in" shift, and go to state 8 + "[" shift, and go to state 2 + "identifier" shift, and go to state 9 - Term go to state 404 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Identifier go to state 349 + LocalFunctionDefinition go to state 414 + Attribute go to state 43 State 354 - 139 ConditionalExpression: "if" Term "then" Term "else" • Term + 87 ForallRule: "forall" AttributedVariables • "in" Term "do" Rule + 88 | "forall" AttributedVariables • "in" Term "with" Term "do" Rule + 226 AttributedVariables: AttributedVariables • "," AttributedVariable - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Term go to state 405 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + "in" shift, and go to state 415 + "," shift, and go to state 204 State 355 - 142 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 89 ChooseRule: "choose" AttributedVariables • "in" Term "do" Rule + 226 AttributedVariables: AttributedVariables • "," AttributedVariable - Term go to state 406 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + "in" shift, and go to state 416 + "," shift, and go to state 204 State 356 - 170 TupleLiteral: "(" Terms "," Term ")" • + 90 IterateRule: "iterate" Rule • - $default reduce using rule 170 (TupleLiteral) + $default reduce using rule 90 (IterateRule) State 357 - 169 RangeLiteral: "[" Term ".." Term "]" • - - $default reduce using rule 169 (RangeLiteral) + 76 ConditionalRule: "if" Term • "then" Rule + 77 | "if" Term • "then" Rule "else" Rule + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "then" shift, and go to state 417 + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 State 358 - 175 Types: Types "," • Type - 184 TupleType: "(" Types "," • Type ")" - - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 - - Type go to state 407 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + 78 CaseRule: "case" Term • "of" "{" CaseLabels "}" + 79 | "case" Term • "of" "{" error "}" + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "of" shift, and go to state 418 + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 State 359 - 185 RecordType: "(" TypedVariables "," • TypedVariable ")" - 212 TypedVariables: TypedVariables "," • TypedVariable - - "in" shift, and go to state 8 - "identifier" shift, and go to state 9 - - Identifier go to state 236 - TypedVariable go to state 408 + 101 WhileRule: "while" Term • "do" Rule + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "do" shift, and go to state 419 + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 State 360 - 175 Types: Types • "," Type - 186 TemplateType: IdentifierPath "<" Types • ">" + 93 BlockRule: "{" error • "}" - "," shift, and go to state 409 - ">" shift, and go to state 410 + "}" shift, and go to state 420 State 361 - 176 Types: Type • - 190 FunctionParameters: Type • + 60 Rules: Rules • Rule + 91 BlockRule: "{" Rules • "}" + + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "}" shift, and go to state 421 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - "*" reduce using rule 190 (FunctionParameters) - "->" reduce using rule 190 (FunctionParameters) - $default reduce using rule 176 (Types) + Rule go to state 407 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 362 - 187 RelationType: IdentifierPath "<" MaybeFunctionParameters • "->" Type ">" + 97 SequenceRule: "{|" error • "|}" - "->" shift, and go to state 411 + "|}" shift, and go to state 422 State 363 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 188 FixedSizedType: IdentifierPath "'" Term • - - $default reduce using rule 188 (FixedSizedType) + 60 Rules: Rules • Rule + 95 SequenceRule: "{|" Rules • "|}" + + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "|}" shift, and go to state 423 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Rule go to state 407 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 364 - 132 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error • ")" + 99 UpdateRule: DirectCallExpression ":=" • Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - ")" shift, and go to state 412 + Term go to state 424 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 365 - 130 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" ")" • + 31 RuleDefinition: "rule" Identifier "(" error ")" • "=" Rule + 32 | "rule" Identifier "(" error ")" • "->" Type "=" Rule - $default reduce using rule 130 (MethodCallExpression) + "=" shift, and go to state 425 + "->" shift, and go to state 426 State 366 - 86 Terms: Terms • "," Term - 131 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms • ")" + 29 RuleDefinition: "rule" Identifier "(" Parameters ")" • "=" Rule + 30 | "rule" Identifier "(" Parameters ")" • "->" Type "=" Rule - ")" shift, and go to state 413 - "," shift, and go to state 191 + "=" shift, and go to state 427 + "->" shift, and go to state 428 State 367 - 202 Initializer: "(" Term ")" "->" • Term + 28 RuleDefinition: "rule" Identifier "->" Type "=" • Rule - "let" shift, and go to state 41 + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Term go to state 414 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Rule go to state 429 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 368 - 24 DerivedDefinition: "derived" Identifier "(" error ")" "->" • Type "=" Term - - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 + 45 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinition • "}" - Type go to state 415 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + "}" shift, and go to state 430 State 369 - 23 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" • Type "=" Term + 24 DerivedDefinition: "derived" • Identifier "->" Type "=" Term + 25 | "derived" • Identifier "(" Parameters ")" "->" Type "=" Term + 26 | "derived" • Identifier "(" error ")" "->" Type "=" Term + 58 DeclarationDefinition: "derived" • Identifier ":" MaybeFunctionParameters "->" Type "in" shift, and go to state 8 - "(" shift, and go to state 211 "identifier" shift, and go to state 9 - Type go to state 416 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + Identifier go to state 431 State 370 - 193 Parameters: Parameters "," TypedAttributedVariable • + 27 RuleDefinition: "rule" • Identifier "=" Rule + 28 | "rule" • Identifier "->" Type "=" Rule + 29 | "rule" • Identifier "(" Parameters ")" "=" Rule + 30 | "rule" • Identifier "(" Parameters ")" "->" Type "=" Rule + 31 | "rule" • Identifier "(" error ")" "=" Rule + 32 | "rule" • Identifier "(" error ")" "->" Type "=" Rule + 59 DeclarationDefinition: "rule" • Identifier ":" MaybeFunctionParameters "->" Type - $default reduce using rule 193 (Parameters) + "in" shift, and go to state 8 + "identifier" shift, and go to state 9 + + Identifier go to state 432 State 371 - 22 DerivedDefinition: "derived" Identifier "->" Type "=" Term • - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 22 (DerivedDefinition) + 48 FeatureDeclarationOrDefinition: DerivedDefinition • + + $default reduce using rule 48 (FeatureDeclarationOrDefinition) State 372 - 21 EnumerationDefinition: "enumeration" Identifier "=" "{" Enumerators "}" • + 49 FeatureDeclarationOrDefinition: RuleDefinition • - $default reduce using rule 21 (EnumerationDefinition) + $default reduce using rule 49 (FeatureDeclarationOrDefinition) State 373 - 35 Enumerators: Enumerators "," • EnumeratorDefinition + 51 FeatureDeclarationsAndDefinitions: FeatureDeclarationOrDefinition • - error shift, and go to state 318 - "in" shift, and go to state 8 - "[" shift, and go to state 2 - "identifier" shift, and go to state 9 - - EnumeratorDefinition go to state 417 - Identifier go to state 321 - Attributes go to state 322 - Attribute go to state 6 + $default reduce using rule 51 (FeatureDeclarationsAndDefinitions) State 374 - 33 EnumeratorDefinition: Attributes Identifier • + 46 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions • "}" + 50 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions • FeatureDeclarationOrDefinition + + "derived" shift, and go to state 369 + "rule" shift, and go to state 370 + "}" shift, and go to state 433 - $default reduce using rule 33 (EnumeratorDefinition) + DerivedDefinition go to state 371 + RuleDefinition go to state 372 + FeatureDeclarationOrDefinition go to state 434 + DeclarationDefinition go to state 375 State 375 - 82 SequenceRule: "seq" error "endseq" • + 47 FeatureDeclarationOrDefinition: DeclarationDefinition • - $default reduce using rule 82 (SequenceRule) + $default reduce using rule 47 (FeatureDeclarationOrDefinition) State 376 - 80 SequenceRule: "seq" Rules "endseq" • + 191 Types: Types "," Type • + 200 TupleType: "(" Types "," Type • ")" - $default reduce using rule 80 (SequenceRule) + ")" shift, and go to state 435 + + $default reduce using rule 191 (Types) State 377 - 44 Rules: Rules Rule • + 201 RecordType: "(" TypedVariables "," TypedVariable • ")" + 228 TypedVariables: TypedVariables "," TypedVariable • + + ")" shift, and go to state 436 - $default reduce using rule 44 (Rules) + $default reduce using rule 228 (TypedVariables) State 378 - 78 BlockRule: "par" error "endpar" • + 54 ImplementationDefinitionDefinition: DerivedDefinition • - $default reduce using rule 78 (BlockRule) + $default reduce using rule 54 (ImplementationDefinitionDefinition) State 379 - 76 BlockRule: "par" Rules "endpar" • + 55 ImplementationDefinitionDefinition: RuleDefinition • - $default reduce using rule 76 (BlockRule) + $default reduce using rule 55 (ImplementationDefinitionDefinition) State 380 - 69 LetRule: "let" VariableBindings "in" • Rule + 57 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinition • - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Rule go to state 418 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 57 (ImplementationDefinitionDefinitions) State 381 - 227 LocalFunctionDefinition: Identifier ":" • MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially + 53 ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions • "}" + 56 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions • ImplementationDefinitionDefinition - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 - - $default reduce using rule 192 (MaybeFunctionParameters) + "derived" shift, and go to state 16 + "rule" shift, and go to state 18 + "}" shift, and go to state 437 - Type go to state 280 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - FunctionParameters go to state 281 - MaybeFunctionParameters go to state 419 - Identifier go to state 90 - IdentifierPath go to state 219 + DerivedDefinition go to state 378 + RuleDefinition go to state 379 + ImplementationDefinitionDefinition go to state 438 State 382 - 70 LocalRule: "local" LocalFunctionDefinitions "in" • Rule - - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 52 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" • "{" ImplementationDefinitionDefinitions "}" - Rule go to state 420 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + "{" shift, and go to state 439 State 383 - 222 LocalFunctionDefinitions: LocalFunctionDefinitions "," • AttributedLocalFunctionDefinition + 191 Types: Types "," • Type - error shift, and go to state 329 "in" shift, and go to state 8 - "[" shift, and go to state 2 + "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Identifier go to state 330 - AttributedLocalFunctionDefinition go to state 421 - LocalFunctionDefinition go to state 333 - Attributes go to state 334 - Attribute go to state 6 + Type go to state 440 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 384 - 224 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition • + 202 TemplateType: IdentifierPath "<" Types ">" • - $default reduce using rule 224 (AttributedLocalFunctionDefinition) + $default reduce using rule 202 (TemplateType) State 385 - 71 ForallRule: "forall" AttributedVariables "in" • Term "do" Rule - 72 | "forall" AttributedVariables "in" • Term "with" Term "do" Rule + 205 FunctionParameters: FunctionParameters "*" • Type - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 - Term go to state 422 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Type go to state 441 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 386 - 73 ChooseRule: "choose" AttributedVariables "in" • Term "do" Rule + 203 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" • Type ">" - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 - Term go to state 423 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Type go to state 442 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 387 - 60 ConditionalRule: "if" Term "then" • Rule - 61 | "if" Term "then" • Rule "else" Rule + 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" • Type MaybeDefined MaybeInitially - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 - Rule go to state 424 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Type go to state 443 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 388 - 62 CaseRule: "case" Term "of" • "{" CaseLabels "}" - 63 | "case" Term "of" • "{" error "}" + 157 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" • Term - "{" shift, and go to state 425 + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 444 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 389 - 85 WhileRule: "while" Term "do" • Rule + 156 ChooseExpression: "choose" AttributedVariables "in" Term "do" • Term - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 426 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Term go to state 445 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 390 - 77 BlockRule: "{" error "}" • + 155 ConditionalExpression: "if" Term "then" Term "else" • Term + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - $default reduce using rule 77 (BlockRule) + Term go to state 446 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 391 - 75 BlockRule: "{" Rules "}" • + 158 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" • Term - $default reduce using rule 75 (BlockRule) + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 447 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 392 - 81 SequenceRule: "{|" error "|}" • + 186 TupleLiteral: "(" Terms "," Term ")" • - $default reduce using rule 81 (SequenceRule) + $default reduce using rule 186 (TupleLiteral) State 393 - 79 SequenceRule: "{|" Rules "|}" • + 185 RangeLiteral: "[" Term ".." Term "]" • - $default reduce using rule 79 (SequenceRule) + $default reduce using rule 185 (RangeLiteral) State 394 - 83 UpdateRule: DirectCallExpression ":=" Term • - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 83 (UpdateRule) + 148 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error • ")" + + ")" shift, and go to state 448 State 395 - 29 RuleDefinition: "rule" Identifier "(" error ")" "=" • Rule + 146 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" ")" • - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Rule go to state 427 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 146 (MethodCallExpression) State 396 - 30 RuleDefinition: "rule" Identifier "(" error ")" "->" • Type "=" Rule - - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 + 102 Terms: Terms • "," Term + 147 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms • ")" - Type go to state 428 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + ")" shift, and go to state 449 + "," shift, and go to state 216 State 397 - 27 RuleDefinition: "rule" Identifier "(" Parameters ")" "=" • Rule + 218 Initializer: "(" Term ")" "->" • Term - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 429 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Term go to state 450 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 398 - 28 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" • Type "=" Rule + 26 DerivedDefinition: "derived" Identifier "(" error ")" "->" • Type "=" Term "in" shift, and go to state 8 - "(" shift, and go to state 211 + "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 430 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + Type go to state 451 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 399 - 26 RuleDefinition: "rule" Identifier "->" Type "=" Rule • + 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" • Type "=" Term + + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 - $default reduce using rule 26 (RuleDefinition) + Type go to state 452 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 400 - 43 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinition "}" • + 209 Parameters: Parameters "," TypedAttributedVariable • - $default reduce using rule 43 (StructureDefinition) + $default reduce using rule 209 (Parameters) State 401 - 189 FunctionParameters: FunctionParameters "*" Type • + 24 DerivedDefinition: "derived" Identifier "->" Type "=" Term • + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 - $default reduce using rule 189 (FunctionParameters) + $default reduce using rule 24 (DerivedDefinition) State 402 - 31 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type • MaybeDefined MaybeInitially + 23 EnumerationDefinition: "enumeration" Identifier "=" "{" Enumerators "}" • - "defined" shift, and go to state 431 + $default reduce using rule 23 (EnumerationDefinition) - $default reduce using rule 196 (MaybeDefined) - MaybeDefined go to state 432 +State 403 + 37 Enumerators: Enumerators "," • EnumeratorDefinition -State 403 + error shift, and go to state 337 + "in" shift, and go to state 8 + "[" shift, and go to state 2 + "identifier" shift, and go to state 9 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 141 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term • - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 141 (UniversalQuantifierExpression) + EnumeratorDefinition go to state 453 + Identifier go to state 340 + Attributes go to state 341 + Attribute go to state 6 State 404 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 140 ChooseExpression: "choose" AttributedVariables "in" Term "do" Term • - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 140 (ChooseExpression) + 35 EnumeratorDefinition: Attributes Identifier • + + $default reduce using rule 35 (EnumeratorDefinition) State 405 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 139 ConditionalExpression: "if" Term "then" Term "else" Term • - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 139 (ConditionalExpression) + 98 SequenceRule: "seq" error "endseq" • + + $default reduce using rule 98 (SequenceRule) State 406 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 142 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term • - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 142 (ExistentialQuantifierExpression) + 96 SequenceRule: "seq" Rules "endseq" • + $default reduce using rule 96 (SequenceRule) -State 407 - 175 Types: Types "," Type • - 184 TupleType: "(" Types "," Type • ")" +State 407 - ")" shift, and go to state 433 + 60 Rules: Rules Rule • - $default reduce using rule 175 (Types) + $default reduce using rule 60 (Rules) State 408 - 185 RecordType: "(" TypedVariables "," TypedVariable • ")" - 212 TypedVariables: TypedVariables "," TypedVariable • + 94 BlockRule: "par" error "endpar" • - ")" shift, and go to state 434 - - $default reduce using rule 212 (TypedVariables) + $default reduce using rule 94 (BlockRule) State 409 - 175 Types: Types "," • Type - - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 + 92 BlockRule: "par" Rules "endpar" • - Type go to state 435 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + $default reduce using rule 92 (BlockRule) State 410 - 186 TemplateType: IdentifierPath "<" Types ">" • + 85 LetRule: "let" VariableBindings "in" • Rule - $default reduce using rule 186 (TemplateType) + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Rule go to state 454 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 411 - 187 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" • Type ">" + 243 LocalFunctionDefinition: Identifier ":" • MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially "in" shift, and go to state 8 - "(" shift, and go to state 211 + "(" shift, and go to state 109 "identifier" shift, and go to state 9 - Type go to state 436 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + $default reduce using rule 208 (MaybeFunctionParameters) + + Type go to state 307 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + FunctionParameters go to state 304 + MaybeFunctionParameters go to state 455 + Identifier go to state 94 + IdentifierPath go to state 190 State 412 - 132 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error ")" • + 86 LocalRule: "local" LocalFunctionDefinitions "in" • Rule - $default reduce using rule 132 (MethodCallExpression) + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Rule go to state 456 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 413 - 131 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms ")" • + 238 LocalFunctionDefinitions: LocalFunctionDefinitions "," • AttributedLocalFunctionDefinition + + error shift, and go to state 348 + "in" shift, and go to state 8 + "[" shift, and go to state 2 + "identifier" shift, and go to state 9 - $default reduce using rule 131 (MethodCallExpression) + Identifier go to state 349 + AttributedLocalFunctionDefinition go to state 457 + LocalFunctionDefinition go to state 352 + Attributes go to state 353 + Attribute go to state 6 State 414 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 202 Initializer: "(" Term ")" "->" Term • - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 202 (Initializer) + 240 AttributedLocalFunctionDefinition: Attributes LocalFunctionDefinition • + + $default reduce using rule 240 (AttributedLocalFunctionDefinition) State 415 - 24 DerivedDefinition: "derived" Identifier "(" error ")" "->" Type • "=" Term + 87 ForallRule: "forall" AttributedVariables "in" • Term "do" Rule + 88 | "forall" AttributedVariables "in" • Term "with" Term "do" Rule + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - "=" shift, and go to state 437 + Term go to state 458 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 416 - 23 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type • "=" Term + 89 ChooseRule: "choose" AttributedVariables "in" • Term "do" Rule + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - "=" shift, and go to state 438 + Term go to state 459 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 417 - 35 Enumerators: Enumerators "," EnumeratorDefinition • + 76 ConditionalRule: "if" Term "then" • Rule + 77 | "if" Term "then" • Rule "else" Rule - $default reduce using rule 35 (Enumerators) + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Rule go to state 460 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 418 - 69 LetRule: "let" VariableBindings "in" Rule • + 78 CaseRule: "case" Term "of" • "{" CaseLabels "}" + 79 | "case" Term "of" • "{" error "}" - $default reduce using rule 69 (LetRule) + "{" shift, and go to state 461 State 419 - 227 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters • "->" Type MaybeDefined MaybeInitially + 101 WhileRule: "while" Term "do" • Rule + + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - "->" shift, and go to state 439 + Rule go to state 462 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 420 - 70 LocalRule: "local" LocalFunctionDefinitions "in" Rule • + 93 BlockRule: "{" error "}" • - $default reduce using rule 70 (LocalRule) + $default reduce using rule 93 (BlockRule) State 421 - 222 LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition • + 91 BlockRule: "{" Rules "}" • - $default reduce using rule 222 (LocalFunctionDefinitions) + $default reduce using rule 91 (BlockRule) State 422 - 71 ForallRule: "forall" AttributedVariables "in" Term • "do" Rule - 72 | "forall" AttributedVariables "in" Term • "with" Term "do" Rule - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "do" shift, and go to state 440 - "with" shift, and go to state 441 - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 + 97 SequenceRule: "{|" error "|}" • + $default reduce using rule 97 (SequenceRule) -State 423 - 73 ChooseRule: "choose" AttributedVariables "in" Term • "do" Rule - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "do" shift, and go to state 442 - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 +State 423 + 95 SequenceRule: "{|" Rules "|}" • -State 424 + $default reduce using rule 95 (SequenceRule) - 60 ConditionalRule: "if" Term "then" Rule • - 61 | "if" Term "then" Rule • "else" Rule - "else" shift, and go to state 443 +State 424 - $default reduce using rule 60 (ConditionalRule) + 99 UpdateRule: DirectCallExpression ":=" Term • + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 99 (UpdateRule) State 425 - 62 CaseRule: "case" Term "of" "{" • CaseLabels "}" - 63 | "case" Term "of" "{" • error "}" + 31 RuleDefinition: "rule" Identifier "(" error ")" "=" • Rule - error shift, and go to state 444 - "let" shift, and go to state 41 + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "default" shift, and go to state 445 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "_" shift, and go to state 446 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - CaseLabels go to state 447 - CaseLabel go to state 448 - Term go to state 449 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Rule go to state 463 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 426 - 85 WhileRule: "while" Term "do" Rule • + 32 RuleDefinition: "rule" Identifier "(" error ")" "->" • Type "=" Rule + + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 - $default reduce using rule 85 (WhileRule) + Type go to state 464 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 427 - 29 RuleDefinition: "rule" Identifier "(" error ")" "=" Rule • + 29 RuleDefinition: "rule" Identifier "(" Parameters ")" "=" • Rule - $default reduce using rule 29 (RuleDefinition) + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Rule go to state 465 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 428 - 30 RuleDefinition: "rule" Identifier "(" error ")" "->" Type • "=" Rule + 30 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" • Type "=" Rule - "=" shift, and go to state 450 + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 + + Type go to state 466 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 429 - 27 RuleDefinition: "rule" Identifier "(" Parameters ")" "=" Rule • + 28 RuleDefinition: "rule" Identifier "->" Type "=" Rule • - $default reduce using rule 27 (RuleDefinition) + $default reduce using rule 28 (RuleDefinition) State 430 - 28 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type • "=" Rule + 45 StructureDefinition: "structure" Identifier "=" "{" FunctionDefinition "}" • - "=" shift, and go to state 451 + $default reduce using rule 45 (StructureDefinition) State 431 - 195 MaybeDefined: "defined" • "{" Term "}" + 24 DerivedDefinition: "derived" Identifier • "->" Type "=" Term + 25 | "derived" Identifier • "(" Parameters ")" "->" Type "=" Term + 26 | "derived" Identifier • "(" error ")" "->" Type "=" Term + 58 DeclarationDefinition: "derived" Identifier • ":" MaybeFunctionParameters "->" Type - "{" shift, and go to state 452 + "(" shift, and go to state 175 + ":" shift, and go to state 467 + "->" shift, and go to state 176 State 432 - 31 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined • MaybeInitially + 27 RuleDefinition: "rule" Identifier • "=" Rule + 28 | "rule" Identifier • "->" Type "=" Rule + 29 | "rule" Identifier • "(" Parameters ")" "=" Rule + 30 | "rule" Identifier • "(" Parameters ")" "->" Type "=" Rule + 31 | "rule" Identifier • "(" error ")" "=" Rule + 32 | "rule" Identifier • "(" error ")" "->" Type "=" Rule + 59 DeclarationDefinition: "rule" Identifier • ":" MaybeFunctionParameters "->" Type - "=" shift, and go to state 453 - - $default reduce using rule 198 (MaybeInitially) - - MaybeInitially go to state 454 + "=" shift, and go to state 178 + "(" shift, and go to state 179 + ":" shift, and go to state 468 + "->" shift, and go to state 180 State 433 - 184 TupleType: "(" Types "," Type ")" • + 46 FeatureDefinition: "feature" Identifier "=" "{" FeatureDeclarationsAndDefinitions "}" • - $default reduce using rule 184 (TupleType) + $default reduce using rule 46 (FeatureDefinition) State 434 - 185 RecordType: "(" TypedVariables "," TypedVariable ")" • + 50 FeatureDeclarationsAndDefinitions: FeatureDeclarationsAndDefinitions FeatureDeclarationOrDefinition • - $default reduce using rule 185 (RecordType) + $default reduce using rule 50 (FeatureDeclarationsAndDefinitions) State 435 - 175 Types: Types "," Type • + 200 TupleType: "(" Types "," Type ")" • - $default reduce using rule 175 (Types) + $default reduce using rule 200 (TupleType) State 436 - 187 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type • ">" + 201 RecordType: "(" TypedVariables "," TypedVariable ")" • - ">" shift, and go to state 455 + $default reduce using rule 201 (RecordType) State 437 - 24 DerivedDefinition: "derived" Identifier "(" error ")" "->" Type "=" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 53 ImplementationDefinition: "implements" Type "=" "{" ImplementationDefinitionDefinitions "}" • - Term go to state 456 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 53 (ImplementationDefinition) State 438 - 23 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type "=" • Term - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 56 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions ImplementationDefinitionDefinition • - Term go to state 457 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 56 (ImplementationDefinitionDefinitions) State 439 - 227 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" • Type MaybeDefined MaybeInitially + 52 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" • ImplementationDefinitionDefinitions "}" - "in" shift, and go to state 8 - "(" shift, and go to state 211 - "identifier" shift, and go to state 9 + "derived" shift, and go to state 16 + "rule" shift, and go to state 18 - Type go to state 458 - BasicType go to state 213 - TupleType go to state 214 - RecordType go to state 215 - TemplateType go to state 216 - RelationType go to state 217 - FixedSizedType go to state 218 - Identifier go to state 90 - IdentifierPath go to state 219 + DerivedDefinition go to state 378 + RuleDefinition go to state 379 + ImplementationDefinitionDefinition go to state 380 + ImplementationDefinitionDefinitions go to state 469 State 440 - 71 ForallRule: "forall" AttributedVariables "in" Term "do" • Rule - - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 191 Types: Types "," Type • - Rule go to state 459 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 191 (Types) State 441 - 72 ForallRule: "forall" AttributedVariables "in" Term "with" • Term "do" Rule - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 205 FunctionParameters: FunctionParameters "*" Type • - Term go to state 460 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 205 (FunctionParameters) State 442 - 73 ChooseRule: "choose" AttributedVariables "in" Term "do" • Rule + 203 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type • ">" - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Rule go to state 461 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + ">" shift, and go to state 470 State 443 - 61 ConditionalRule: "if" Term "then" Rule "else" • Rule + 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type • MaybeDefined MaybeInitially - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + "defined" shift, and go to state 471 - Rule go to state 462 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 212 (MaybeDefined) + MaybeDefined go to state 472 -State 444 - 63 CaseRule: "case" Term "of" "{" error • "}" +State 444 - "}" shift, and go to state 463 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 157 UniversalQuantifierExpression: "forall" AttributedVariables "in" Term "holds" Term • + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 157 (UniversalQuantifierExpression) State 445 - 66 CaseLabel: "default" • ":" Rule - - ":" shift, and go to state 464 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 156 ChooseExpression: "choose" AttributedVariables "in" Term "do" Term • + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 156 (ChooseExpression) State 446 - 67 CaseLabel: "_" • ":" Rule - - ":" shift, and go to state 465 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 155 ConditionalExpression: "if" Term "then" Term "else" Term • + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 155 (ConditionalExpression) State 447 - 62 CaseRule: "case" Term "of" "{" CaseLabels • "}" - 64 CaseLabels: CaseLabels • CaseLabel - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "default" shift, and go to state 445 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "}" shift, and go to state 466 - "_" shift, and go to state 446 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - CaseLabel go to state 467 - Term go to state 449 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 158 ExistentialQuantifierExpression: "exists" AttributedVariables "in" Term "with" Term • + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 158 (ExistentialQuantifierExpression) State 448 - 65 CaseLabels: CaseLabel • + 148 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" error ")" • - $default reduce using rule 65 (CaseLabels) + $default reduce using rule 148 (MethodCallExpression) State 449 - 68 CaseLabel: Term • ":" Rule - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - ":" shift, and go to state 468 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - + 147 MethodCallExpression: SimpleOrClaspedTerm "." Identifier "(" Terms ")" • -State 450 + $default reduce using rule 147 (MethodCallExpression) - 30 RuleDefinition: "rule" Identifier "(" error ")" "->" Type "=" • Rule - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 +State 450 - Rule go to state 469 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 218 Initializer: "(" Term ")" "->" Term • + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 218 (Initializer) State 451 - 28 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type "=" • Rule + 26 DerivedDefinition: "derived" Identifier "(" error ")" "->" Type • "=" Term - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Rule go to state 470 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + "=" shift, and go to state 473 State 452 - 195 MaybeDefined: "defined" "{" • Term "}" - - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type • "=" Term - Term go to state 471 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + "=" shift, and go to state 474 State 453 - 197 MaybeInitially: "=" • "{" Initializers "}" + 37 Enumerators: Enumerators "," EnumeratorDefinition • - "{" shift, and go to state 472 + $default reduce using rule 37 (Enumerators) State 454 - 31 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially • + 85 LetRule: "let" VariableBindings "in" Rule • - $default reduce using rule 31 (FunctionDefinition) + $default reduce using rule 85 (LetRule) State 455 - 187 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" • + 243 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters • "->" Type MaybeDefined MaybeInitially - $default reduce using rule 187 (RelationType) + "->" shift, and go to state 475 State 456 - 24 DerivedDefinition: "derived" Identifier "(" error ")" "->" Type "=" Term • - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 + 86 LocalRule: "local" LocalFunctionDefinitions "in" Rule • - $default reduce using rule 24 (DerivedDefinition) + $default reduce using rule 86 (LocalRule) State 457 - 23 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type "=" Term • - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 - - $default reduce using rule 23 (DerivedDefinition) - + 238 LocalFunctionDefinitions: LocalFunctionDefinitions "," AttributedLocalFunctionDefinition • -State 458 - - 227 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type • MaybeDefined MaybeInitially + $default reduce using rule 238 (LocalFunctionDefinitions) - "defined" shift, and go to state 431 - $default reduce using rule 196 (MaybeDefined) +State 458 - MaybeDefined go to state 473 + 87 ForallRule: "forall" AttributedVariables "in" Term • "do" Rule + 88 | "forall" AttributedVariables "in" Term • "with" Term "do" Rule + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "do" shift, and go to state 476 + "with" shift, and go to state 477 + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 State 459 - 71 ForallRule: "forall" AttributedVariables "in" Term "do" Rule • - - $default reduce using rule 71 (ForallRule) + 89 ChooseRule: "choose" AttributedVariables "in" Term • "do" Rule + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "do" shift, and go to state 478 + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 State 460 - 72 ForallRule: "forall" AttributedVariables "in" Term "with" Term • "do" Rule - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - - "do" shift, and go to state 474 - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 + 76 ConditionalRule: "if" Term "then" Rule • + 77 | "if" Term "then" Rule • "else" Rule + + "else" shift, and go to state 479 + + $default reduce using rule 76 (ConditionalRule) State 461 - 73 ChooseRule: "choose" AttributedVariables "in" Term "do" Rule • + 78 CaseRule: "case" Term "of" "{" • CaseLabels "}" + 79 | "case" Term "of" "{" • error "}" + + error shift, and go to state 480 + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "default" shift, and go to state 481 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "_" shift, and go to state 482 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - $default reduce using rule 73 (ChooseRule) + CaseLabels go to state 483 + CaseLabel go to state 484 + Term go to state 485 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 462 - 61 ConditionalRule: "if" Term "then" Rule "else" Rule • + 101 WhileRule: "while" Term "do" Rule • - $default reduce using rule 61 (ConditionalRule) + $default reduce using rule 101 (WhileRule) State 463 - 63 CaseRule: "case" Term "of" "{" error "}" • + 31 RuleDefinition: "rule" Identifier "(" error ")" "=" Rule • - $default reduce using rule 63 (CaseRule) + $default reduce using rule 31 (RuleDefinition) State 464 - 66 CaseLabel: "default" ":" • Rule - - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + 32 RuleDefinition: "rule" Identifier "(" error ")" "->" Type • "=" Rule - Rule go to state 475 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + "=" shift, and go to state 486 State 465 - 67 CaseLabel: "_" ":" • Rule + 29 RuleDefinition: "rule" Identifier "(" Parameters ")" "=" Rule • - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 - - Rule go to state 476 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 29 (RuleDefinition) State 466 - 62 CaseRule: "case" Term "of" "{" CaseLabels "}" • + 30 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type • "=" Rule - $default reduce using rule 62 (CaseRule) + "=" shift, and go to state 487 State 467 - 64 CaseLabels: CaseLabels CaseLabel • + 58 DeclarationDefinition: "derived" Identifier ":" • MaybeFunctionParameters "->" Type + + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 + + $default reduce using rule 208 (MaybeFunctionParameters) - $default reduce using rule 64 (CaseLabels) + Type go to state 307 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + FunctionParameters go to state 304 + MaybeFunctionParameters go to state 488 + Identifier go to state 94 + IdentifierPath go to state 190 State 468 - 68 CaseLabel: Term ":" • Rule + 59 DeclarationDefinition: "rule" Identifier ":" • MaybeFunctionParameters "->" Type - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 - "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 + + $default reduce using rule 208 (MaybeFunctionParameters) - Rule go to state 477 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Type go to state 307 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + FunctionParameters go to state 304 + MaybeFunctionParameters go to state 489 + Identifier go to state 94 + IdentifierPath go to state 190 State 469 - 30 RuleDefinition: "rule" Identifier "(" error ")" "->" Type "=" Rule • + 52 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions • "}" + 56 ImplementationDefinitionDefinitions: ImplementationDefinitionDefinitions • ImplementationDefinitionDefinition - $default reduce using rule 30 (RuleDefinition) + "derived" shift, and go to state 16 + "rule" shift, and go to state 18 + "}" shift, and go to state 490 + + DerivedDefinition go to state 378 + RuleDefinition go to state 379 + ImplementationDefinitionDefinition go to state 438 State 470 - 28 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type "=" Rule • + 203 RelationType: IdentifierPath "<" MaybeFunctionParameters "->" Type ">" • - $default reduce using rule 28 (RuleDefinition) + $default reduce using rule 203 (RelationType) State 471 - 104 OperatorExpression: Term • "+" Term - 105 | Term • "-" Term - 106 | Term • "*" Term - 107 | Term • "/" Term - 108 | Term • "%" Term - 109 | Term • "^" Term - 110 | Term • "!=" Term - 111 | Term • "=" Term - 112 | Term • "<" Term - 113 | Term • ">" Term - 114 | Term • "<=" Term - 115 | Term • ">=" Term - 116 | Term • "or" Term - 117 | Term • "xor" Term - 118 | Term • "and" Term - 119 | Term • "=>" Term - 120 | Term • "implies" Term - 195 MaybeDefined: "defined" "{" Term • "}" - - "and" shift, and go to state 134 - "or" shift, and go to state 135 - "xor" shift, and go to state 136 - "implies" shift, and go to state 137 - "+" shift, and go to state 138 - "-" shift, and go to state 139 - "=" shift, and go to state 140 - "}" shift, and go to state 478 - "<" shift, and go to state 141 - ">" shift, and go to state 142 - "*" shift, and go to state 143 - "/" shift, and go to state 144 - "%" shift, and go to state 145 - "^" shift, and go to state 146 - "=>" shift, and go to state 147 - "!=" shift, and go to state 148 - "<=" shift, and go to state 149 - ">=" shift, and go to state 150 + 211 MaybeDefined: "defined" • "{" Term "}" + + "{" shift, and go to state 491 State 472 - 197 MaybeInitially: "=" "{" • Initializers "}" + 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined • MaybeInitially - "let" shift, and go to state 41 - "in" shift, and go to state 8 - "forall" shift, and go to state 42 - "choose" shift, and go to state 43 - "if" shift, and go to state 44 - "exists" shift, and go to state 45 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "not" shift, and go to state 49 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 156 - "[" shift, and go to state 53 - "|" shift, and go to state 54 - "@" shift, and go to state 55 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 - "identifier" shift, and go to state 9 + "=" shift, and go to state 492 - Term go to state 157 - SimpleOrClaspedTerm go to state 63 - OperatorExpression go to state 64 - CallExpression go to state 65 - DirectCallExpression go to state 66 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - TypeCastingExpression go to state 70 - LetExpression go to state 71 - ConditionalExpression go to state 72 - ChooseExpression go to state 73 - UniversalQuantifierExpression go to state 74 - ExistentialQuantifierExpression go to state 75 - CardinalityExpression go to state 76 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 158 - RecordLiteral go to state 89 - Initializers go to state 479 - Initializer go to state 160 - Identifier go to state 90 - IdentifierPath go to state 91 + $default reduce using rule 214 (MaybeInitially) + MaybeInitially go to state 493 -State 473 - 227 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined • MaybeInitially +State 473 - "=" shift, and go to state 453 + 26 DerivedDefinition: "derived" Identifier "(" error ")" "->" Type "=" • Term - $default reduce using rule 198 (MaybeInitially) + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - MaybeInitially go to state 480 + Term go to state 494 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 474 - 72 ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" • Rule + 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type "=" • Term - "seq" shift, and go to state 242 - "par" shift, and go to state 243 - "skip" shift, and go to state 244 - "let" shift, and go to state 245 - "local" shift, and go to state 246 + "let" shift, and go to state 45 "in" shift, and go to state 8 - "forall" shift, and go to state 247 - "choose" shift, and go to state 248 - "iterate" shift, and go to state 249 - "if" shift, and go to state 250 - "case" shift, and go to state 251 - "while" shift, and go to state 252 - "undef" shift, and go to state 46 - "false" shift, and go to state 47 - "true" shift, and go to state 48 - "+" shift, and go to state 50 - "-" shift, and go to state 51 - "(" shift, and go to state 52 - "[" shift, and go to state 53 - "{" shift, and go to state 253 - "@" shift, and go to state 55 - "{|" shift, and go to state 254 - "binary" shift, and go to state 56 - "hexadecimal" shift, and go to state 57 - "integer" shift, and go to state 58 - "rational" shift, and go to state 59 - "decimal" shift, and go to state 60 - "string" shift, and go to state 61 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 "identifier" shift, and go to state 9 - Rule go to state 481 - SkipRule go to state 256 - ConditionalRule go to state 257 - CaseRule go to state 258 - LetRule go to state 259 - LocalRule go to state 260 - ForallRule go to state 261 - ChooseRule go to state 262 - IterateRule go to state 263 - BlockRule go to state 264 - SequenceRule go to state 265 - UpdateRule go to state 266 - CallRule go to state 267 - WhileRule go to state 268 - SimpleOrClaspedTerm go to state 269 - CallExpression go to state 270 - DirectCallExpression go to state 271 - MethodCallExpression go to state 67 - LiteralCallExpression go to state 68 - IndirectCallExpression go to state 69 - Literal go to state 77 - UndefinedLiteral go to state 78 - BooleanLiteral go to state 79 - IntegerLiteral go to state 80 - RationalLiteral go to state 81 - DecimalLiteral go to state 82 - BinaryLiteral go to state 83 - StringLiteral go to state 84 - ReferenceLiteral go to state 85 - ListLiteral go to state 86 - RangeLiteral go to state 87 - TupleLiteral go to state 88 - RecordLiteral go to state 89 - Identifier go to state 90 - IdentifierPath go to state 91 + Term go to state 495 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 475 - 66 CaseLabel: "default" ":" Rule • + 243 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" • Type MaybeDefined MaybeInitially - $default reduce using rule 66 (CaseLabel) + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 + + Type go to state 496 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 State 476 - 67 CaseLabel: "_" ":" Rule • + 87 ForallRule: "forall" AttributedVariables "in" Term "do" • Rule + + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - $default reduce using rule 67 (CaseLabel) + Rule go to state 497 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 477 - 68 CaseLabel: Term ":" Rule • + 88 ForallRule: "forall" AttributedVariables "in" Term "with" • Term "do" Rule - $default reduce using rule 68 (CaseLabel) + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 498 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 478 - 195 MaybeDefined: "defined" "{" Term "}" • + 89 ChooseRule: "choose" AttributedVariables "in" Term "do" • Rule + + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - $default reduce using rule 195 (MaybeDefined) + Rule go to state 499 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 479 - 197 MaybeInitially: "=" "{" Initializers • "}" - 199 Initializers: Initializers • "," Initializer + 77 ConditionalRule: "if" Term "then" Rule "else" • Rule + + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 - "}" shift, and go to state 482 - "," shift, and go to state 233 + Rule go to state 500 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 State 480 - 227 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially • + 79 CaseRule: "case" Term "of" "{" error • "}" - $default reduce using rule 227 (LocalFunctionDefinition) + "}" shift, and go to state 501 State 481 - 72 ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" Rule • + 82 CaseLabel: "default" • ":" Rule - $default reduce using rule 72 (ForallRule) + ":" shift, and go to state 502 State 482 - 197 MaybeInitially: "=" "{" Initializers "}" • + 83 CaseLabel: "_" • ":" Rule + + ":" shift, and go to state 503 + + +State 483 + + 78 CaseRule: "case" Term "of" "{" CaseLabels • "}" + 80 CaseLabels: CaseLabels • CaseLabel + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "default" shift, and go to state 481 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "}" shift, and go to state 504 + "_" shift, and go to state 482 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + CaseLabel go to state 505 + Term go to state 485 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 + + +State 484 + + 81 CaseLabels: CaseLabel • + + $default reduce using rule 81 (CaseLabels) + + +State 485 + + 84 CaseLabel: Term • ":" Rule + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + ":" shift, and go to state 506 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + +State 486 + + 32 RuleDefinition: "rule" Identifier "(" error ")" "->" Type "=" • Rule + + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Rule go to state 507 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 + + +State 487 + + 30 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type "=" • Rule + + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Rule go to state 508 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 + + +State 488 + + 58 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters • "->" Type + + "->" shift, and go to state 509 + + +State 489 + + 59 DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters • "->" Type + + "->" shift, and go to state 510 + + +State 490 + + 52 ImplementationDefinition: "implements" IdentifierPath "for" Type "=" "{" ImplementationDefinitionDefinitions "}" • + + $default reduce using rule 52 (ImplementationDefinition) + + +State 491 + + 211 MaybeDefined: "defined" "{" • Term "}" + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 511 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 + + +State 492 + + 213 MaybeInitially: "=" • "{" Initializers "}" + + "{" shift, and go to state 512 + + +State 493 + + 33 FunctionDefinition: "function" Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially • + + $default reduce using rule 33 (FunctionDefinition) + + +State 494 + + 26 DerivedDefinition: "derived" Identifier "(" error ")" "->" Type "=" Term • + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 26 (DerivedDefinition) + + +State 495 + + 25 DerivedDefinition: "derived" Identifier "(" Parameters ")" "->" Type "=" Term • + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + $default reduce using rule 25 (DerivedDefinition) + + +State 496 + + 243 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type • MaybeDefined MaybeInitially + + "defined" shift, and go to state 471 + + $default reduce using rule 212 (MaybeDefined) + + MaybeDefined go to state 513 + + +State 497 + + 87 ForallRule: "forall" AttributedVariables "in" Term "do" Rule • + + $default reduce using rule 87 (ForallRule) + + +State 498 + + 88 ForallRule: "forall" AttributedVariables "in" Term "with" Term • "do" Rule + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + + "do" shift, and go to state 514 + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + +State 499 + + 89 ChooseRule: "choose" AttributedVariables "in" Term "do" Rule • + + $default reduce using rule 89 (ChooseRule) + + +State 500 + + 77 ConditionalRule: "if" Term "then" Rule "else" Rule • + + $default reduce using rule 77 (ConditionalRule) + + +State 501 + + 79 CaseRule: "case" Term "of" "{" error "}" • + + $default reduce using rule 79 (CaseRule) + + +State 502 + + 82 CaseLabel: "default" ":" • Rule + + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Rule go to state 515 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 + + +State 503 + + 83 CaseLabel: "_" ":" • Rule + + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Rule go to state 516 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 + + +State 504 + + 78 CaseRule: "case" Term "of" "{" CaseLabels "}" • + + $default reduce using rule 78 (CaseRule) + + +State 505 + + 80 CaseLabels: CaseLabels CaseLabel • + + $default reduce using rule 80 (CaseLabels) + + +State 506 + + 84 CaseLabel: Term ":" • Rule + + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Rule go to state 517 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 + + +State 507 + + 32 RuleDefinition: "rule" Identifier "(" error ")" "->" Type "=" Rule • + + $default reduce using rule 32 (RuleDefinition) + + +State 508 + + 30 RuleDefinition: "rule" Identifier "(" Parameters ")" "->" Type "=" Rule • + + $default reduce using rule 30 (RuleDefinition) + + +State 509 + + 58 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" • Type + + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 + + Type go to state 518 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 + + +State 510 + + 59 DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters "->" • Type + + "in" shift, and go to state 8 + "(" shift, and go to state 109 + "identifier" shift, and go to state 9 + + Type go to state 519 + BasicType go to state 111 + TupleType go to state 112 + RecordType go to state 113 + TemplateType go to state 114 + RelationType go to state 115 + FixedSizedType go to state 116 + Identifier go to state 94 + IdentifierPath go to state 190 + + +State 511 + + 120 OperatorExpression: Term • "+" Term + 121 | Term • "-" Term + 122 | Term • "*" Term + 123 | Term • "/" Term + 124 | Term • "%" Term + 125 | Term • "^" Term + 126 | Term • "!=" Term + 127 | Term • "=" Term + 128 | Term • "<" Term + 129 | Term • ">" Term + 130 | Term • "<=" Term + 131 | Term • ">=" Term + 132 | Term • "or" Term + 133 | Term • "xor" Term + 134 | Term • "and" Term + 135 | Term • "=>" Term + 136 | Term • "implies" Term + 211 MaybeDefined: "defined" "{" Term • "}" + + "and" shift, and go to state 148 + "or" shift, and go to state 149 + "xor" shift, and go to state 150 + "implies" shift, and go to state 151 + "+" shift, and go to state 152 + "-" shift, and go to state 153 + "=" shift, and go to state 154 + "}" shift, and go to state 520 + "<" shift, and go to state 155 + ">" shift, and go to state 156 + "*" shift, and go to state 157 + "/" shift, and go to state 158 + "%" shift, and go to state 159 + "^" shift, and go to state 160 + "=>" shift, and go to state 161 + "!=" shift, and go to state 162 + "<=" shift, and go to state 163 + ">=" shift, and go to state 164 + + +State 512 + + 213 MaybeInitially: "=" "{" • Initializers "}" + + "let" shift, and go to state 45 + "in" shift, and go to state 8 + "forall" shift, and go to state 46 + "choose" shift, and go to state 47 + "if" shift, and go to state 48 + "exists" shift, and go to state 49 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "not" shift, and go to state 53 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 170 + "[" shift, and go to state 57 + "|" shift, and go to state 58 + "@" shift, and go to state 59 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Term go to state 171 + SimpleOrClaspedTerm go to state 67 + OperatorExpression go to state 68 + CallExpression go to state 69 + DirectCallExpression go to state 70 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + TypeCastingExpression go to state 74 + LetExpression go to state 75 + ConditionalExpression go to state 76 + ChooseExpression go to state 77 + UniversalQuantifierExpression go to state 78 + ExistentialQuantifierExpression go to state 79 + CardinalityExpression go to state 80 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 172 + RecordLiteral go to state 93 + Initializers go to state 521 + Initializer go to state 174 + Identifier go to state 94 + IdentifierPath go to state 95 + + +State 513 + + 243 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined • MaybeInitially + + "=" shift, and go to state 492 + + $default reduce using rule 214 (MaybeInitially) + + MaybeInitially go to state 522 + + +State 514 + + 88 ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" • Rule + + "seq" shift, and go to state 259 + "par" shift, and go to state 260 + "skip" shift, and go to state 261 + "let" shift, and go to state 262 + "local" shift, and go to state 263 + "in" shift, and go to state 8 + "forall" shift, and go to state 264 + "choose" shift, and go to state 265 + "iterate" shift, and go to state 266 + "if" shift, and go to state 267 + "case" shift, and go to state 268 + "while" shift, and go to state 269 + "undef" shift, and go to state 50 + "false" shift, and go to state 51 + "true" shift, and go to state 52 + "+" shift, and go to state 54 + "-" shift, and go to state 55 + "(" shift, and go to state 56 + "[" shift, and go to state 57 + "{" shift, and go to state 270 + "@" shift, and go to state 59 + "{|" shift, and go to state 271 + "binary" shift, and go to state 60 + "hexadecimal" shift, and go to state 61 + "integer" shift, and go to state 62 + "rational" shift, and go to state 63 + "decimal" shift, and go to state 64 + "string" shift, and go to state 65 + "identifier" shift, and go to state 9 + + Rule go to state 523 + SkipRule go to state 273 + ConditionalRule go to state 274 + CaseRule go to state 275 + LetRule go to state 276 + LocalRule go to state 277 + ForallRule go to state 278 + ChooseRule go to state 279 + IterateRule go to state 280 + BlockRule go to state 281 + SequenceRule go to state 282 + UpdateRule go to state 283 + CallRule go to state 284 + WhileRule go to state 285 + SimpleOrClaspedTerm go to state 286 + CallExpression go to state 287 + DirectCallExpression go to state 288 + MethodCallExpression go to state 71 + LiteralCallExpression go to state 72 + IndirectCallExpression go to state 73 + Literal go to state 81 + UndefinedLiteral go to state 82 + BooleanLiteral go to state 83 + IntegerLiteral go to state 84 + RationalLiteral go to state 85 + DecimalLiteral go to state 86 + BinaryLiteral go to state 87 + StringLiteral go to state 88 + ReferenceLiteral go to state 89 + ListLiteral go to state 90 + RangeLiteral go to state 91 + TupleLiteral go to state 92 + RecordLiteral go to state 93 + Identifier go to state 94 + IdentifierPath go to state 95 + + +State 515 + + 82 CaseLabel: "default" ":" Rule • + + $default reduce using rule 82 (CaseLabel) + + +State 516 + + 83 CaseLabel: "_" ":" Rule • + + $default reduce using rule 83 (CaseLabel) + + +State 517 + + 84 CaseLabel: Term ":" Rule • + + $default reduce using rule 84 (CaseLabel) + + +State 518 + + 58 DeclarationDefinition: "derived" Identifier ":" MaybeFunctionParameters "->" Type • + + $default reduce using rule 58 (DeclarationDefinition) + + +State 519 + + 59 DeclarationDefinition: "rule" Identifier ":" MaybeFunctionParameters "->" Type • + + $default reduce using rule 59 (DeclarationDefinition) + + +State 520 + + 211 MaybeDefined: "defined" "{" Term "}" • + + $default reduce using rule 211 (MaybeDefined) + + +State 521 + + 213 MaybeInitially: "=" "{" Initializers • "}" + 215 Initializers: Initializers • "," Initializer + + "}" shift, and go to state 524 + "," shift, and go to state 250 + + +State 522 + + 243 LocalFunctionDefinition: Identifier ":" MaybeFunctionParameters "->" Type MaybeDefined MaybeInitially • + + $default reduce using rule 243 (LocalFunctionDefinition) + + +State 523 + + 88 ForallRule: "forall" AttributedVariables "in" Term "with" Term "do" Rule • + + $default reduce using rule 88 (ForallRule) + + +State 524 + + 213 MaybeInitially: "=" "{" Initializers "}" • - $default reduce using rule 197 (MaybeInitially) + $default reduce using rule 213 (MaybeInitially) diff --git a/src/various/GrammarParser.tab.h b/src/various/GrammarParser.tab.h index 0b385007..35aef347 100644 --- a/src/various/GrammarParser.tab.h +++ b/src/various/GrammarParser.tab.h @@ -427,6 +427,9 @@ namespace libcasm_fe { // "import" // "structure" // "feature" + // "implements" + // "for" + // "this" // "function" // "defined" // "seq" @@ -539,187 +542,200 @@ namespace libcasm_fe { // ConditionalRule char dummy16[sizeof (ConditionalRule::Ptr)]; + // DeclarationDefinition + char dummy17[sizeof (DeclarationDefinition::Ptr)]; + // MaybeDefined - char dummy17[sizeof (Defined::Ptr)]; + char dummy18[sizeof (Defined::Ptr)]; // AttributedDefinition // Definition - char dummy18[sizeof (Definition::Ptr)]; + // FeatureDeclarationOrDefinition + // ImplementationDefinitionDefinition + char dummy19[sizeof (Definition::Ptr)]; // Definitions - char dummy19[sizeof (Definitions::Ptr)]; + // FeatureDeclarationsAndDefinitions + // ImplementationDefinitionDefinitions + char dummy20[sizeof (Definitions::Ptr)]; // DerivedDefinition - char dummy20[sizeof (DerivedDefinition::Ptr)]; + char dummy21[sizeof (DerivedDefinition::Ptr)]; // DirectCallExpression - char dummy21[sizeof (DirectCallExpression::Ptr)]; + char dummy22[sizeof (DirectCallExpression::Ptr)]; // EnumerationDefinition - char dummy22[sizeof (EnumerationDefinition::Ptr)]; + char dummy23[sizeof (EnumerationDefinition::Ptr)]; // EnumeratorDefinition - char dummy23[sizeof (EnumeratorDefinition::Ptr)]; + char dummy24[sizeof (EnumeratorDefinition::Ptr)]; // Enumerators - char dummy24[sizeof (Enumerators::Ptr)]; + char dummy25[sizeof (Enumerators::Ptr)]; // ExistentialQuantifierExpression - char dummy25[sizeof (ExistentialQuantifierExpression::Ptr)]; + char dummy26[sizeof (ExistentialQuantifierExpression::Ptr)]; // Term // SimpleOrClaspedTerm // OperatorExpression - char dummy26[sizeof (Expression::Ptr)]; + char dummy27[sizeof (Expression::Ptr)]; // ExpressionAttribute - char dummy27[sizeof (ExpressionAttribute::Ptr)]; + char dummy28[sizeof (ExpressionAttribute::Ptr)]; // Terms - char dummy28[sizeof (Expressions::Ptr)]; + char dummy29[sizeof (Expressions::Ptr)]; + + // FeatureDefinition + char dummy30[sizeof (FeatureDefinition::Ptr)]; // FixedSizedType - char dummy29[sizeof (FixedSizedType::Ptr)]; + char dummy31[sizeof (FixedSizedType::Ptr)]; // ForallRule - char dummy30[sizeof (ForallRule::Ptr)]; + char dummy32[sizeof (ForallRule::Ptr)]; // FunctionDefinition // AttributedLocalFunctionDefinition // LocalFunctionDefinition - char dummy31[sizeof (FunctionDefinition::Ptr)]; + char dummy33[sizeof (FunctionDefinition::Ptr)]; // LocalFunctionDefinitions - char dummy32[sizeof (FunctionDefinitions::Ptr)]; + char dummy34[sizeof (FunctionDefinitions::Ptr)]; // Header - char dummy33[sizeof (HeaderDefinition::Ptr)]; + char dummy35[sizeof (HeaderDefinition::Ptr)]; // "identifier" // Identifier - char dummy34[sizeof (Identifier::Ptr)]; + char dummy36[sizeof (Identifier::Ptr)]; // IdentifierPath - char dummy35[sizeof (IdentifierPath::Ptr)]; + char dummy37[sizeof (IdentifierPath::Ptr)]; + + // ImplementationDefinition + char dummy38[sizeof (ImplementationDefinition::Ptr)]; // ImportDefinition - char dummy36[sizeof (ImportDefinition::Ptr)]; + char dummy39[sizeof (ImportDefinition::Ptr)]; // IndirectCallExpression - char dummy37[sizeof (IndirectCallExpression::Ptr)]; + char dummy40[sizeof (IndirectCallExpression::Ptr)]; // InitDefinition - char dummy38[sizeof (InitDefinition::Ptr)]; + char dummy41[sizeof (InitDefinition::Ptr)]; // Initializer - char dummy39[sizeof (Initializer::Ptr)]; + char dummy42[sizeof (Initializer::Ptr)]; // Initializers - char dummy40[sizeof (Initializers::Ptr)]; + char dummy43[sizeof (Initializers::Ptr)]; // MaybeInitially - char dummy41[sizeof (Initially::Ptr)]; + char dummy44[sizeof (Initially::Ptr)]; // InvariantDefinition - char dummy42[sizeof (InvariantDefinition::Ptr)]; + char dummy45[sizeof (InvariantDefinition::Ptr)]; // IterateRule - char dummy43[sizeof (IterateRule::Ptr)]; + char dummy46[sizeof (IterateRule::Ptr)]; // LetExpression - char dummy44[sizeof (LetExpression::Ptr)]; + char dummy47[sizeof (LetExpression::Ptr)]; // LetRule - char dummy45[sizeof (LetRule::Ptr)]; + char dummy48[sizeof (LetRule::Ptr)]; // ListLiteral - char dummy46[sizeof (ListLiteral::Ptr)]; + char dummy49[sizeof (ListLiteral::Ptr)]; // Literal - char dummy47[sizeof (Literal::Ptr)]; + char dummy50[sizeof (Literal::Ptr)]; // LiteralCallExpression - char dummy48[sizeof (LiteralCallExpression::Ptr)]; + char dummy51[sizeof (LiteralCallExpression::Ptr)]; // LocalRule - char dummy49[sizeof (LocalRule::Ptr)]; + char dummy52[sizeof (LocalRule::Ptr)]; // MethodCallExpression - char dummy50[sizeof (MethodCallExpression::Ptr)]; + char dummy53[sizeof (MethodCallExpression::Ptr)]; // Assignment - char dummy51[sizeof (NamedExpression::Ptr)]; + char dummy54[sizeof (NamedExpression::Ptr)]; // Assignments - char dummy52[sizeof (NamedExpressions::Ptr)]; + char dummy55[sizeof (NamedExpressions::Ptr)]; // RangeLiteral - char dummy53[sizeof (RangeLiteral::Ptr)]; + char dummy56[sizeof (RangeLiteral::Ptr)]; // RecordLiteral - char dummy54[sizeof (RecordLiteral::Ptr)]; + char dummy57[sizeof (RecordLiteral::Ptr)]; // RecordType - char dummy55[sizeof (RecordType::Ptr)]; + char dummy58[sizeof (RecordType::Ptr)]; // ReferenceLiteral - char dummy56[sizeof (ReferenceLiteral::Ptr)]; + char dummy59[sizeof (ReferenceLiteral::Ptr)]; // RelationType - char dummy57[sizeof (RelationType::Ptr)]; + char dummy60[sizeof (RelationType::Ptr)]; // Rule - char dummy58[sizeof (Rule::Ptr)]; + char dummy61[sizeof (Rule::Ptr)]; // RuleDefinition - char dummy59[sizeof (RuleDefinition::Ptr)]; + char dummy62[sizeof (RuleDefinition::Ptr)]; // Rules - char dummy60[sizeof (Rules::Ptr)]; + char dummy63[sizeof (Rules::Ptr)]; // SequenceRule - char dummy61[sizeof (SequenceRule::Ptr)]; + char dummy64[sizeof (SequenceRule::Ptr)]; // SkipRule - char dummy62[sizeof (SkipRule::Ptr)]; + char dummy65[sizeof (SkipRule::Ptr)]; // Specification - char dummy63[sizeof (Specification::Ptr)]; + char dummy66[sizeof (Specification::Ptr)]; // StructureDefinition - char dummy64[sizeof (StructureDefinition::Ptr)]; + char dummy67[sizeof (StructureDefinition::Ptr)]; // TemplateType - char dummy65[sizeof (TemplateType::Ptr)]; + char dummy68[sizeof (TemplateType::Ptr)]; // TupleLiteral - char dummy66[sizeof (TupleLiteral::Ptr)]; + char dummy69[sizeof (TupleLiteral::Ptr)]; // TupleType - char dummy67[sizeof (TupleType::Ptr)]; + char dummy70[sizeof (TupleType::Ptr)]; // TypeCastingExpression - char dummy68[sizeof (TypeCastingExpression::Ptr)]; + char dummy71[sizeof (TypeCastingExpression::Ptr)]; // Types // FunctionParameters // MaybeFunctionParameters - char dummy69[sizeof (Types::Ptr)]; + char dummy72[sizeof (Types::Ptr)]; // UndefinedLiteral - char dummy70[sizeof (UndefLiteral::Ptr)]; + char dummy73[sizeof (UndefLiteral::Ptr)]; // UniversalQuantifierExpression - char dummy71[sizeof (UniversalQuantifierExpression::Ptr)]; + char dummy74[sizeof (UniversalQuantifierExpression::Ptr)]; // UpdateRule - char dummy72[sizeof (UpdateRule::Ptr)]; + char dummy75[sizeof (UpdateRule::Ptr)]; // UsingDefinition - char dummy73[sizeof (UsingDefinition::Ptr)]; + char dummy76[sizeof (UsingDefinition::Ptr)]; // UsingPathDefinition - char dummy74[sizeof (UsingPathDefinition::Ptr)]; + char dummy77[sizeof (UsingPathDefinition::Ptr)]; // "binary" // "hexadecimal" @@ -733,30 +749,30 @@ namespace libcasm_fe { // DecimalLiteral // BinaryLiteral // StringLiteral - char dummy75[sizeof (ValueLiteral::Ptr)]; + char dummy78[sizeof (ValueLiteral::Ptr)]; // VariableBinding - char dummy76[sizeof (VariableBinding::Ptr)]; + char dummy79[sizeof (VariableBinding::Ptr)]; // VariableBindings - char dummy77[sizeof (VariableBindings::Ptr)]; + char dummy80[sizeof (VariableBindings::Ptr)]; // Variable // TypedVariable // AttributedVariable // TypedAttributedVariable - char dummy78[sizeof (VariableDefinition::Ptr)]; + char dummy81[sizeof (VariableDefinition::Ptr)]; // Parameters // AttributedVariables // TypedVariables - char dummy79[sizeof (VariableDefinitions::Ptr)]; + char dummy82[sizeof (VariableDefinitions::Ptr)]; // WhileRule - char dummy80[sizeof (WhileRule::Ptr)]; + char dummy83[sizeof (WhileRule::Ptr)]; // Type - char dummy81[sizeof (libcasm_fe::Ast::Type::Ptr)]; + char dummy84[sizeof (libcasm_fe::Ast::Type::Ptr)]; }; /// The size of the largest semantic type. @@ -818,83 +834,86 @@ namespace libcasm_fe { IMPORT = 265, // "import" STRUCTURE = 266, // "structure" FEATURE = 267, // "feature" - FUNCTION = 268, // "function" - DEFINED = 269, // "defined" - SEQ = 270, // "seq" - ENDSEQ = 271, // "endseq" - PAR = 272, // "par" - ENDPAR = 273, // "endpar" - SKIP = 274, // "skip" - LET = 275, // "let" - LOCAL = 276, // "local" - IN = 277, // "in" - FORALL = 278, // "forall" - CHOOSE = 279, // "choose" - ITERATE = 280, // "iterate" - DO = 281, // "do" - IF = 282, // "if" - THEN = 283, // "then" - ELSE = 284, // "else" - CASE = 285, // "case" - OF = 286, // "of" - DEFAULT = 287, // "default" - HOLDS = 288, // "holds" - EXISTS = 289, // "exists" - WITH = 290, // "with" - AS = 291, // "as" - WHILE = 292, // "while" - UNDEF = 293, // "undef" - FALSE = 294, // "false" - TRUE = 295, // "true" - AND = 296, // "and" - OR = 297, // "or" - XOR = 298, // "xor" - IMPLIES = 299, // "implies" - NOT = 300, // "not" - PLUS = 301, // "+" - MINUS = 302, // "-" - EQUAL = 303, // "=" - LPAREN = 304, // "(" - RPAREN = 305, // ")" - LSQPAREN = 306, // "[" - RSQPAREN = 307, // "]" - LCURPAREN = 308, // "{" - RCURPAREN = 309, // "}" - COLON = 310, // ":" - DOUBLECOLON = 311, // "::" - UNDERLINE = 312, // "_" - VERTICAL_BAR = 313, // "|" - AT = 314, // "@" - COMMA = 315, // "," - LESSER = 316, // "<" - GREATER = 317, // ">" - ASTERIX = 318, // "*" - SLASH = 319, // "/" - PERCENT = 320, // "%" - CARET = 321, // "^" - MARK = 322, // "'" - DOTDOT = 323, // ".." - DOT = 324, // "." - MAPS = 325, // "->" - ARROW = 326, // "=>" - UPDATE = 327, // ":=" - NEQUAL = 328, // "!=" - LESSEQ = 329, // "<=" - GREATEREQ = 330, // ">=" - SEQ_BRACKET = 331, // "{|" - ENDSEQ_BRACKET = 332, // "|}" - BINARY = 333, // "binary" - HEXADECIMAL = 334, // "hexadecimal" - INTEGER = 335, // "integer" - RATIONAL = 336, // "rational" - DECIMAL = 337, // "decimal" - STRING = 338, // "string" - IDENTIFIER = 339, // "identifier" - BASIC_TYPE = 340, // BASIC_TYPE - CALL = 341, // CALL - UPLUS = 342, // UPLUS - UMINUS = 343, // UMINUS - CALL_WITHOUT_ARGS = 344 // CALL_WITHOUT_ARGS + IMPLEMENTS = 268, // "implements" + FOR = 269, // "for" + THIS = 270, // "this" + FUNCTION = 271, // "function" + DEFINED = 272, // "defined" + SEQ = 273, // "seq" + ENDSEQ = 274, // "endseq" + PAR = 275, // "par" + ENDPAR = 276, // "endpar" + SKIP = 277, // "skip" + LET = 278, // "let" + LOCAL = 279, // "local" + IN = 280, // "in" + FORALL = 281, // "forall" + CHOOSE = 282, // "choose" + ITERATE = 283, // "iterate" + DO = 284, // "do" + IF = 285, // "if" + THEN = 286, // "then" + ELSE = 287, // "else" + CASE = 288, // "case" + OF = 289, // "of" + DEFAULT = 290, // "default" + HOLDS = 291, // "holds" + EXISTS = 292, // "exists" + WITH = 293, // "with" + AS = 294, // "as" + WHILE = 295, // "while" + UNDEF = 296, // "undef" + FALSE = 297, // "false" + TRUE = 298, // "true" + AND = 299, // "and" + OR = 300, // "or" + XOR = 301, // "xor" + IMPLIES = 302, // "implies" + NOT = 303, // "not" + PLUS = 304, // "+" + MINUS = 305, // "-" + EQUAL = 306, // "=" + LPAREN = 307, // "(" + RPAREN = 308, // ")" + LSQPAREN = 309, // "[" + RSQPAREN = 310, // "]" + LCURPAREN = 311, // "{" + RCURPAREN = 312, // "}" + COLON = 313, // ":" + DOUBLECOLON = 314, // "::" + UNDERLINE = 315, // "_" + VERTICAL_BAR = 316, // "|" + AT = 317, // "@" + COMMA = 318, // "," + LESSER = 319, // "<" + GREATER = 320, // ">" + ASTERIX = 321, // "*" + SLASH = 322, // "/" + PERCENT = 323, // "%" + CARET = 324, // "^" + MARK = 325, // "'" + DOTDOT = 326, // ".." + DOT = 327, // "." + MAPS = 328, // "->" + ARROW = 329, // "=>" + UPDATE = 330, // ":=" + NEQUAL = 331, // "!=" + LESSEQ = 332, // "<=" + GREATEREQ = 333, // ">=" + SEQ_BRACKET = 334, // "{|" + ENDSEQ_BRACKET = 335, // "|}" + BINARY = 336, // "binary" + HEXADECIMAL = 337, // "hexadecimal" + INTEGER = 338, // "integer" + RATIONAL = 339, // "rational" + DECIMAL = 340, // "decimal" + STRING = 341, // "string" + IDENTIFIER = 342, // "identifier" + BASIC_TYPE = 343, // BASIC_TYPE + CALL = 344, // CALL + UPLUS = 345, // UPLUS + UMINUS = 346, // UMINUS + CALL_WITHOUT_ARGS = 347 // CALL_WITHOUT_ARGS }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; @@ -911,7 +930,7 @@ namespace libcasm_fe { { enum symbol_kind_type { - YYNTOKENS = 90, ///< Number of tokens. + YYNTOKENS = 93, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -926,181 +945,191 @@ namespace libcasm_fe { S_IMPORT = 10, // "import" S_STRUCTURE = 11, // "structure" S_FEATURE = 12, // "feature" - S_FUNCTION = 13, // "function" - S_DEFINED = 14, // "defined" - S_SEQ = 15, // "seq" - S_ENDSEQ = 16, // "endseq" - S_PAR = 17, // "par" - S_ENDPAR = 18, // "endpar" - S_SKIP = 19, // "skip" - S_LET = 20, // "let" - S_LOCAL = 21, // "local" - S_IN = 22, // "in" - S_FORALL = 23, // "forall" - S_CHOOSE = 24, // "choose" - S_ITERATE = 25, // "iterate" - S_DO = 26, // "do" - S_IF = 27, // "if" - S_THEN = 28, // "then" - S_ELSE = 29, // "else" - S_CASE = 30, // "case" - S_OF = 31, // "of" - S_DEFAULT = 32, // "default" - S_HOLDS = 33, // "holds" - S_EXISTS = 34, // "exists" - S_WITH = 35, // "with" - S_AS = 36, // "as" - S_WHILE = 37, // "while" - S_UNDEF = 38, // "undef" - S_FALSE = 39, // "false" - S_TRUE = 40, // "true" - S_AND = 41, // "and" - S_OR = 42, // "or" - S_XOR = 43, // "xor" - S_IMPLIES = 44, // "implies" - S_NOT = 45, // "not" - S_PLUS = 46, // "+" - S_MINUS = 47, // "-" - S_EQUAL = 48, // "=" - S_LPAREN = 49, // "(" - S_RPAREN = 50, // ")" - S_LSQPAREN = 51, // "[" - S_RSQPAREN = 52, // "]" - S_LCURPAREN = 53, // "{" - S_RCURPAREN = 54, // "}" - S_COLON = 55, // ":" - S_DOUBLECOLON = 56, // "::" - S_UNDERLINE = 57, // "_" - S_VERTICAL_BAR = 58, // "|" - S_AT = 59, // "@" - S_COMMA = 60, // "," - S_LESSER = 61, // "<" - S_GREATER = 62, // ">" - S_ASTERIX = 63, // "*" - S_SLASH = 64, // "/" - S_PERCENT = 65, // "%" - S_CARET = 66, // "^" - S_MARK = 67, // "'" - S_DOTDOT = 68, // ".." - S_DOT = 69, // "." - S_MAPS = 70, // "->" - S_ARROW = 71, // "=>" - S_UPDATE = 72, // ":=" - S_NEQUAL = 73, // "!=" - S_LESSEQ = 74, // "<=" - S_GREATEREQ = 75, // ">=" - S_SEQ_BRACKET = 76, // "{|" - S_ENDSEQ_BRACKET = 77, // "|}" - S_BINARY = 78, // "binary" - S_HEXADECIMAL = 79, // "hexadecimal" - S_INTEGER = 80, // "integer" - S_RATIONAL = 81, // "rational" - S_DECIMAL = 82, // "decimal" - S_STRING = 83, // "string" - S_IDENTIFIER = 84, // "identifier" - S_BASIC_TYPE = 85, // BASIC_TYPE - S_CALL = 86, // CALL - S_UPLUS = 87, // UPLUS - S_UMINUS = 88, // UMINUS - S_CALL_WITHOUT_ARGS = 89, // CALL_WITHOUT_ARGS - S_YYACCEPT = 90, // $accept - S_Specification = 91, // Specification - S_Header = 92, // Header - S_Definitions = 93, // Definitions - S_AttributedDefinition = 94, // AttributedDefinition - S_Definition = 95, // Definition - S_InitDefinition = 96, // InitDefinition - S_EnumerationDefinition = 97, // EnumerationDefinition - S_DerivedDefinition = 98, // DerivedDefinition - S_RuleDefinition = 99, // RuleDefinition - S_FunctionDefinition = 100, // FunctionDefinition - S_EnumeratorDefinition = 101, // EnumeratorDefinition - S_Enumerators = 102, // Enumerators - S_UsingDefinition = 103, // UsingDefinition - S_UsingPathDefinition = 104, // UsingPathDefinition - S_InvariantDefinition = 105, // InvariantDefinition - S_ImportDefinition = 106, // ImportDefinition - S_StructureDefinition = 107, // StructureDefinition - S_Rules = 108, // Rules - S_Rule = 109, // Rule - S_SkipRule = 110, // SkipRule - S_ConditionalRule = 111, // ConditionalRule - S_CaseRule = 112, // CaseRule - S_CaseLabels = 113, // CaseLabels - S_CaseLabel = 114, // CaseLabel - S_LetRule = 115, // LetRule - S_LocalRule = 116, // LocalRule - S_ForallRule = 117, // ForallRule - S_ChooseRule = 118, // ChooseRule - S_IterateRule = 119, // IterateRule - S_BlockRule = 120, // BlockRule - S_SequenceRule = 121, // SequenceRule - S_UpdateRule = 122, // UpdateRule - S_CallRule = 123, // CallRule - S_WhileRule = 124, // WhileRule - S_Terms = 125, // Terms - S_Term = 126, // Term - S_SimpleOrClaspedTerm = 127, // SimpleOrClaspedTerm - S_OperatorExpression = 128, // OperatorExpression - S_CallExpression = 129, // CallExpression - S_DirectCallExpression = 130, // DirectCallExpression - S_MethodCallExpression = 131, // MethodCallExpression - S_LiteralCallExpression = 132, // LiteralCallExpression - S_IndirectCallExpression = 133, // IndirectCallExpression - S_TypeCastingExpression = 134, // TypeCastingExpression - S_LetExpression = 135, // LetExpression - S_ConditionalExpression = 136, // ConditionalExpression - S_ChooseExpression = 137, // ChooseExpression - S_UniversalQuantifierExpression = 138, // UniversalQuantifierExpression - S_ExistentialQuantifierExpression = 139, // ExistentialQuantifierExpression - S_CardinalityExpression = 140, // CardinalityExpression - S_Literal = 141, // Literal - S_UndefinedLiteral = 142, // UndefinedLiteral - S_BooleanLiteral = 143, // BooleanLiteral - S_IntegerLiteral = 144, // IntegerLiteral - S_RationalLiteral = 145, // RationalLiteral - S_DecimalLiteral = 146, // DecimalLiteral - S_BinaryLiteral = 147, // BinaryLiteral - S_StringLiteral = 148, // StringLiteral - S_ReferenceLiteral = 149, // ReferenceLiteral - S_ListLiteral = 150, // ListLiteral - S_RangeLiteral = 151, // RangeLiteral - S_TupleLiteral = 152, // TupleLiteral - S_RecordLiteral = 153, // RecordLiteral - S_Assignments = 154, // Assignments - S_Assignment = 155, // Assignment - S_Types = 156, // Types - S_Type = 157, // Type - S_BasicType = 158, // BasicType - S_TupleType = 159, // TupleType - S_RecordType = 160, // RecordType - S_TemplateType = 161, // TemplateType - S_RelationType = 162, // RelationType - S_FixedSizedType = 163, // FixedSizedType - S_FunctionParameters = 164, // FunctionParameters - S_MaybeFunctionParameters = 165, // MaybeFunctionParameters - S_Parameters = 166, // Parameters - S_MaybeDefined = 167, // MaybeDefined - S_MaybeInitially = 168, // MaybeInitially - S_Initializers = 169, // Initializers - S_Initializer = 170, // Initializer - S_Identifier = 171, // Identifier - S_IdentifierPath = 172, // IdentifierPath - S_Variable = 173, // Variable - S_AttributedVariables = 174, // AttributedVariables - S_TypedVariables = 175, // TypedVariables - S_TypedVariable = 176, // TypedVariable - S_AttributedVariable = 177, // AttributedVariable - S_TypedAttributedVariable = 178, // TypedAttributedVariable - S_VariableBindings = 179, // VariableBindings - S_VariableBinding = 180, // VariableBinding - S_LocalFunctionDefinitions = 181, // LocalFunctionDefinitions - S_AttributedLocalFunctionDefinition = 182, // AttributedLocalFunctionDefinition - S_LocalFunctionDefinition = 183, // LocalFunctionDefinition - S_Attributes = 184, // Attributes - S_Attribute = 185, // Attribute - S_BasicAttribute = 186, // BasicAttribute - S_ExpressionAttribute = 187 // ExpressionAttribute + S_IMPLEMENTS = 13, // "implements" + S_FOR = 14, // "for" + S_THIS = 15, // "this" + S_FUNCTION = 16, // "function" + S_DEFINED = 17, // "defined" + S_SEQ = 18, // "seq" + S_ENDSEQ = 19, // "endseq" + S_PAR = 20, // "par" + S_ENDPAR = 21, // "endpar" + S_SKIP = 22, // "skip" + S_LET = 23, // "let" + S_LOCAL = 24, // "local" + S_IN = 25, // "in" + S_FORALL = 26, // "forall" + S_CHOOSE = 27, // "choose" + S_ITERATE = 28, // "iterate" + S_DO = 29, // "do" + S_IF = 30, // "if" + S_THEN = 31, // "then" + S_ELSE = 32, // "else" + S_CASE = 33, // "case" + S_OF = 34, // "of" + S_DEFAULT = 35, // "default" + S_HOLDS = 36, // "holds" + S_EXISTS = 37, // "exists" + S_WITH = 38, // "with" + S_AS = 39, // "as" + S_WHILE = 40, // "while" + S_UNDEF = 41, // "undef" + S_FALSE = 42, // "false" + S_TRUE = 43, // "true" + S_AND = 44, // "and" + S_OR = 45, // "or" + S_XOR = 46, // "xor" + S_IMPLIES = 47, // "implies" + S_NOT = 48, // "not" + S_PLUS = 49, // "+" + S_MINUS = 50, // "-" + S_EQUAL = 51, // "=" + S_LPAREN = 52, // "(" + S_RPAREN = 53, // ")" + S_LSQPAREN = 54, // "[" + S_RSQPAREN = 55, // "]" + S_LCURPAREN = 56, // "{" + S_RCURPAREN = 57, // "}" + S_COLON = 58, // ":" + S_DOUBLECOLON = 59, // "::" + S_UNDERLINE = 60, // "_" + S_VERTICAL_BAR = 61, // "|" + S_AT = 62, // "@" + S_COMMA = 63, // "," + S_LESSER = 64, // "<" + S_GREATER = 65, // ">" + S_ASTERIX = 66, // "*" + S_SLASH = 67, // "/" + S_PERCENT = 68, // "%" + S_CARET = 69, // "^" + S_MARK = 70, // "'" + S_DOTDOT = 71, // ".." + S_DOT = 72, // "." + S_MAPS = 73, // "->" + S_ARROW = 74, // "=>" + S_UPDATE = 75, // ":=" + S_NEQUAL = 76, // "!=" + S_LESSEQ = 77, // "<=" + S_GREATEREQ = 78, // ">=" + S_SEQ_BRACKET = 79, // "{|" + S_ENDSEQ_BRACKET = 80, // "|}" + S_BINARY = 81, // "binary" + S_HEXADECIMAL = 82, // "hexadecimal" + S_INTEGER = 83, // "integer" + S_RATIONAL = 84, // "rational" + S_DECIMAL = 85, // "decimal" + S_STRING = 86, // "string" + S_IDENTIFIER = 87, // "identifier" + S_BASIC_TYPE = 88, // BASIC_TYPE + S_CALL = 89, // CALL + S_UPLUS = 90, // UPLUS + S_UMINUS = 91, // UMINUS + S_CALL_WITHOUT_ARGS = 92, // CALL_WITHOUT_ARGS + S_YYACCEPT = 93, // $accept + S_Specification = 94, // Specification + S_Header = 95, // Header + S_Definitions = 96, // Definitions + S_AttributedDefinition = 97, // AttributedDefinition + S_Definition = 98, // Definition + S_InitDefinition = 99, // InitDefinition + S_EnumerationDefinition = 100, // EnumerationDefinition + S_DerivedDefinition = 101, // DerivedDefinition + S_RuleDefinition = 102, // RuleDefinition + S_FunctionDefinition = 103, // FunctionDefinition + S_EnumeratorDefinition = 104, // EnumeratorDefinition + S_Enumerators = 105, // Enumerators + S_UsingDefinition = 106, // UsingDefinition + S_UsingPathDefinition = 107, // UsingPathDefinition + S_InvariantDefinition = 108, // InvariantDefinition + S_ImportDefinition = 109, // ImportDefinition + S_StructureDefinition = 110, // StructureDefinition + S_FeatureDefinition = 111, // FeatureDefinition + S_FeatureDeclarationOrDefinition = 112, // FeatureDeclarationOrDefinition + S_FeatureDeclarationsAndDefinitions = 113, // FeatureDeclarationsAndDefinitions + S_ImplementationDefinition = 114, // ImplementationDefinition + S_ImplementationDefinitionDefinition = 115, // ImplementationDefinitionDefinition + S_ImplementationDefinitionDefinitions = 116, // ImplementationDefinitionDefinitions + S_DeclarationDefinition = 117, // DeclarationDefinition + S_Rules = 118, // Rules + S_Rule = 119, // Rule + S_SkipRule = 120, // SkipRule + S_ConditionalRule = 121, // ConditionalRule + S_CaseRule = 122, // CaseRule + S_CaseLabels = 123, // CaseLabels + S_CaseLabel = 124, // CaseLabel + S_LetRule = 125, // LetRule + S_LocalRule = 126, // LocalRule + S_ForallRule = 127, // ForallRule + S_ChooseRule = 128, // ChooseRule + S_IterateRule = 129, // IterateRule + S_BlockRule = 130, // BlockRule + S_SequenceRule = 131, // SequenceRule + S_UpdateRule = 132, // UpdateRule + S_CallRule = 133, // CallRule + S_WhileRule = 134, // WhileRule + S_Terms = 135, // Terms + S_Term = 136, // Term + S_SimpleOrClaspedTerm = 137, // SimpleOrClaspedTerm + S_OperatorExpression = 138, // OperatorExpression + S_CallExpression = 139, // CallExpression + S_DirectCallExpression = 140, // DirectCallExpression + S_MethodCallExpression = 141, // MethodCallExpression + S_LiteralCallExpression = 142, // LiteralCallExpression + S_IndirectCallExpression = 143, // IndirectCallExpression + S_TypeCastingExpression = 144, // TypeCastingExpression + S_LetExpression = 145, // LetExpression + S_ConditionalExpression = 146, // ConditionalExpression + S_ChooseExpression = 147, // ChooseExpression + S_UniversalQuantifierExpression = 148, // UniversalQuantifierExpression + S_ExistentialQuantifierExpression = 149, // ExistentialQuantifierExpression + S_CardinalityExpression = 150, // CardinalityExpression + S_Literal = 151, // Literal + S_UndefinedLiteral = 152, // UndefinedLiteral + S_BooleanLiteral = 153, // BooleanLiteral + S_IntegerLiteral = 154, // IntegerLiteral + S_RationalLiteral = 155, // RationalLiteral + S_DecimalLiteral = 156, // DecimalLiteral + S_BinaryLiteral = 157, // BinaryLiteral + S_StringLiteral = 158, // StringLiteral + S_ReferenceLiteral = 159, // ReferenceLiteral + S_ListLiteral = 160, // ListLiteral + S_RangeLiteral = 161, // RangeLiteral + S_TupleLiteral = 162, // TupleLiteral + S_RecordLiteral = 163, // RecordLiteral + S_Assignments = 164, // Assignments + S_Assignment = 165, // Assignment + S_Types = 166, // Types + S_Type = 167, // Type + S_BasicType = 168, // BasicType + S_TupleType = 169, // TupleType + S_RecordType = 170, // RecordType + S_TemplateType = 171, // TemplateType + S_RelationType = 172, // RelationType + S_FixedSizedType = 173, // FixedSizedType + S_FunctionParameters = 174, // FunctionParameters + S_MaybeFunctionParameters = 175, // MaybeFunctionParameters + S_Parameters = 176, // Parameters + S_MaybeDefined = 177, // MaybeDefined + S_MaybeInitially = 178, // MaybeInitially + S_Initializers = 179, // Initializers + S_Initializer = 180, // Initializer + S_Identifier = 181, // Identifier + S_IdentifierPath = 182, // IdentifierPath + S_Variable = 183, // Variable + S_AttributedVariables = 184, // AttributedVariables + S_TypedVariables = 185, // TypedVariables + S_TypedVariable = 186, // TypedVariable + S_AttributedVariable = 187, // AttributedVariable + S_TypedAttributedVariable = 188, // TypedAttributedVariable + S_VariableBindings = 189, // VariableBindings + S_VariableBinding = 190, // VariableBinding + S_LocalFunctionDefinitions = 191, // LocalFunctionDefinitions + S_AttributedLocalFunctionDefinition = 192, // AttributedLocalFunctionDefinition + S_LocalFunctionDefinition = 193, // LocalFunctionDefinition + S_Attributes = 194, // Attributes + S_Attribute = 195, // Attribute + S_BasicAttribute = 196, // BasicAttribute + S_ExpressionAttribute = 197 // ExpressionAttribute }; }; @@ -1147,6 +1176,9 @@ namespace libcasm_fe { case symbol_kind::S_IMPORT: // "import" case symbol_kind::S_STRUCTURE: // "structure" case symbol_kind::S_FEATURE: // "feature" + case symbol_kind::S_IMPLEMENTS: // "implements" + case symbol_kind::S_FOR: // "for" + case symbol_kind::S_THIS: // "this" case symbol_kind::S_FUNCTION: // "function" case symbol_kind::S_DEFINED: // "defined" case symbol_kind::S_SEQ: // "seq" @@ -1275,16 +1307,24 @@ namespace libcasm_fe { value.move< ConditionalRule::Ptr > (std::move (that.value)); break; + case symbol_kind::S_DeclarationDefinition: // DeclarationDefinition + value.move< DeclarationDefinition::Ptr > (std::move (that.value)); + break; + case symbol_kind::S_MaybeDefined: // MaybeDefined value.move< Defined::Ptr > (std::move (that.value)); break; case symbol_kind::S_AttributedDefinition: // AttributedDefinition case symbol_kind::S_Definition: // Definition + case symbol_kind::S_FeatureDeclarationOrDefinition: // FeatureDeclarationOrDefinition + case symbol_kind::S_ImplementationDefinitionDefinition: // ImplementationDefinitionDefinition value.move< Definition::Ptr > (std::move (that.value)); break; case symbol_kind::S_Definitions: // Definitions + case symbol_kind::S_FeatureDeclarationsAndDefinitions: // FeatureDeclarationsAndDefinitions + case symbol_kind::S_ImplementationDefinitionDefinitions: // ImplementationDefinitionDefinitions value.move< Definitions::Ptr > (std::move (that.value)); break; @@ -1326,6 +1366,10 @@ namespace libcasm_fe { value.move< Expressions::Ptr > (std::move (that.value)); break; + case symbol_kind::S_FeatureDefinition: // FeatureDefinition + value.move< FeatureDefinition::Ptr > (std::move (that.value)); + break; + case symbol_kind::S_FixedSizedType: // FixedSizedType value.move< FixedSizedType::Ptr > (std::move (that.value)); break; @@ -1357,6 +1401,10 @@ namespace libcasm_fe { value.move< IdentifierPath::Ptr > (std::move (that.value)); break; + case symbol_kind::S_ImplementationDefinition: // ImplementationDefinition + value.move< ImplementationDefinition::Ptr > (std::move (that.value)); + break; + case symbol_kind::S_ImportDefinition: // ImportDefinition value.move< ImportDefinition::Ptr > (std::move (that.value)); break; @@ -1806,6 +1854,20 @@ namespace libcasm_fe { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, DeclarationDefinition::Ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const DeclarationDefinition::Ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, Defined::Ptr&& v, location_type&& l) : Base (t) @@ -1974,6 +2036,20 @@ namespace libcasm_fe { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, FeatureDefinition::Ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const FeatureDefinition::Ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, FixedSizedType::Ptr&& v, location_type&& l) : Base (t) @@ -2072,6 +2148,20 @@ namespace libcasm_fe { {} #endif +#if 201103L <= YY_CPLUSPLUS + basic_symbol (typename Base::kind_type t, ImplementationDefinition::Ptr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + basic_symbol (typename Base::kind_type t, const ImplementationDefinition::Ptr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + #if 201103L <= YY_CPLUSPLUS basic_symbol (typename Base::kind_type t, ImportDefinition::Ptr&& v, location_type&& l) : Base (t) @@ -2748,6 +2838,9 @@ switch (yykind) case symbol_kind::S_IMPORT: // "import" case symbol_kind::S_STRUCTURE: // "structure" case symbol_kind::S_FEATURE: // "feature" + case symbol_kind::S_IMPLEMENTS: // "implements" + case symbol_kind::S_FOR: // "for" + case symbol_kind::S_THIS: // "this" case symbol_kind::S_FUNCTION: // "function" case symbol_kind::S_DEFINED: // "defined" case symbol_kind::S_SEQ: // "seq" @@ -2876,16 +2969,24 @@ switch (yykind) value.template destroy< ConditionalRule::Ptr > (); break; + case symbol_kind::S_DeclarationDefinition: // DeclarationDefinition + value.template destroy< DeclarationDefinition::Ptr > (); + break; + case symbol_kind::S_MaybeDefined: // MaybeDefined value.template destroy< Defined::Ptr > (); break; case symbol_kind::S_AttributedDefinition: // AttributedDefinition case symbol_kind::S_Definition: // Definition + case symbol_kind::S_FeatureDeclarationOrDefinition: // FeatureDeclarationOrDefinition + case symbol_kind::S_ImplementationDefinitionDefinition: // ImplementationDefinitionDefinition value.template destroy< Definition::Ptr > (); break; case symbol_kind::S_Definitions: // Definitions + case symbol_kind::S_FeatureDeclarationsAndDefinitions: // FeatureDeclarationsAndDefinitions + case symbol_kind::S_ImplementationDefinitionDefinitions: // ImplementationDefinitionDefinitions value.template destroy< Definitions::Ptr > (); break; @@ -2927,6 +3028,10 @@ switch (yykind) value.template destroy< Expressions::Ptr > (); break; + case symbol_kind::S_FeatureDefinition: // FeatureDefinition + value.template destroy< FeatureDefinition::Ptr > (); + break; + case symbol_kind::S_FixedSizedType: // FixedSizedType value.template destroy< FixedSizedType::Ptr > (); break; @@ -2958,6 +3063,10 @@ switch (yykind) value.template destroy< IdentifierPath::Ptr > (); break; + case symbol_kind::S_ImplementationDefinition: // ImplementationDefinition + value.template destroy< ImplementationDefinition::Ptr > (); + break; + case symbol_kind::S_ImportDefinition: // ImportDefinition value.template destroy< ImportDefinition::Ptr > (); break; @@ -3531,6 +3640,51 @@ switch (yykind) return symbol_type (token::FEATURE, v, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_IMPLEMENTS (Ast::Token::Ptr v, location_type l) + { + return symbol_type (token::IMPLEMENTS, std::move (v), std::move (l)); + } +#else + static + symbol_type + make_IMPLEMENTS (const Ast::Token::Ptr& v, const location_type& l) + { + return symbol_type (token::IMPLEMENTS, v, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_FOR (Ast::Token::Ptr v, location_type l) + { + return symbol_type (token::FOR, std::move (v), std::move (l)); + } +#else + static + symbol_type + make_FOR (const Ast::Token::Ptr& v, const location_type& l) + { + return symbol_type (token::FOR, v, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_THIS (Ast::Token::Ptr v, location_type l) + { + return symbol_type (token::THIS, std::move (v), std::move (l)); + } +#else + static + symbol_type + make_THIS (const Ast::Token::Ptr& v, const location_type& l) + { + return symbol_type (token::THIS, v, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -5016,8 +5170,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 2725, ///< Last index in yytable_. - yynnts_ = 98, ///< Number of nonterminal symbols. + yylast_ = 2854, ///< Last index in yytable_. + yynnts_ = 105, ///< Number of nonterminal symbols. yyfinal_ = 13 ///< Termination state number. }; @@ -5073,10 +5227,10 @@ switch (yykind) 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89 + 85, 86, 87, 88, 89, 90, 91, 92 }; // Last valid token kind. - const int code_max = 344; + const int code_max = 347; if (t <= 0) return symbol_kind::S_YYEOF; @@ -5105,6 +5259,9 @@ switch (yykind) case symbol_kind::S_IMPORT: // "import" case symbol_kind::S_STRUCTURE: // "structure" case symbol_kind::S_FEATURE: // "feature" + case symbol_kind::S_IMPLEMENTS: // "implements" + case symbol_kind::S_FOR: // "for" + case symbol_kind::S_THIS: // "this" case symbol_kind::S_FUNCTION: // "function" case symbol_kind::S_DEFINED: // "defined" case symbol_kind::S_SEQ: // "seq" @@ -5233,16 +5390,24 @@ switch (yykind) value.copy< ConditionalRule::Ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_DeclarationDefinition: // DeclarationDefinition + value.copy< DeclarationDefinition::Ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_MaybeDefined: // MaybeDefined value.copy< Defined::Ptr > (YY_MOVE (that.value)); break; case symbol_kind::S_AttributedDefinition: // AttributedDefinition case symbol_kind::S_Definition: // Definition + case symbol_kind::S_FeatureDeclarationOrDefinition: // FeatureDeclarationOrDefinition + case symbol_kind::S_ImplementationDefinitionDefinition: // ImplementationDefinitionDefinition value.copy< Definition::Ptr > (YY_MOVE (that.value)); break; case symbol_kind::S_Definitions: // Definitions + case symbol_kind::S_FeatureDeclarationsAndDefinitions: // FeatureDeclarationsAndDefinitions + case symbol_kind::S_ImplementationDefinitionDefinitions: // ImplementationDefinitionDefinitions value.copy< Definitions::Ptr > (YY_MOVE (that.value)); break; @@ -5284,6 +5449,10 @@ switch (yykind) value.copy< Expressions::Ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_FeatureDefinition: // FeatureDefinition + value.copy< FeatureDefinition::Ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_FixedSizedType: // FixedSizedType value.copy< FixedSizedType::Ptr > (YY_MOVE (that.value)); break; @@ -5315,6 +5484,10 @@ switch (yykind) value.copy< IdentifierPath::Ptr > (YY_MOVE (that.value)); break; + case symbol_kind::S_ImplementationDefinition: // ImplementationDefinition + value.copy< ImplementationDefinition::Ptr > (YY_MOVE (that.value)); + break; + case symbol_kind::S_ImportDefinition: // ImportDefinition value.copy< ImportDefinition::Ptr > (YY_MOVE (that.value)); break; @@ -5556,6 +5729,9 @@ switch (yykind) case symbol_kind::S_IMPORT: // "import" case symbol_kind::S_STRUCTURE: // "structure" case symbol_kind::S_FEATURE: // "feature" + case symbol_kind::S_IMPLEMENTS: // "implements" + case symbol_kind::S_FOR: // "for" + case symbol_kind::S_THIS: // "this" case symbol_kind::S_FUNCTION: // "function" case symbol_kind::S_DEFINED: // "defined" case symbol_kind::S_SEQ: // "seq" @@ -5684,16 +5860,24 @@ switch (yykind) value.move< ConditionalRule::Ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_DeclarationDefinition: // DeclarationDefinition + value.move< DeclarationDefinition::Ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_MaybeDefined: // MaybeDefined value.move< Defined::Ptr > (YY_MOVE (s.value)); break; case symbol_kind::S_AttributedDefinition: // AttributedDefinition case symbol_kind::S_Definition: // Definition + case symbol_kind::S_FeatureDeclarationOrDefinition: // FeatureDeclarationOrDefinition + case symbol_kind::S_ImplementationDefinitionDefinition: // ImplementationDefinitionDefinition value.move< Definition::Ptr > (YY_MOVE (s.value)); break; case symbol_kind::S_Definitions: // Definitions + case symbol_kind::S_FeatureDeclarationsAndDefinitions: // FeatureDeclarationsAndDefinitions + case symbol_kind::S_ImplementationDefinitionDefinitions: // ImplementationDefinitionDefinitions value.move< Definitions::Ptr > (YY_MOVE (s.value)); break; @@ -5735,6 +5919,10 @@ switch (yykind) value.move< Expressions::Ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_FeatureDefinition: // FeatureDefinition + value.move< FeatureDefinition::Ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_FixedSizedType: // FixedSizedType value.move< FixedSizedType::Ptr > (YY_MOVE (s.value)); break; @@ -5766,6 +5954,10 @@ switch (yykind) value.move< IdentifierPath::Ptr > (YY_MOVE (s.value)); break; + case symbol_kind::S_ImplementationDefinition: // ImplementationDefinition + value.move< ImplementationDefinition::Ptr > (YY_MOVE (s.value)); + break; + case symbol_kind::S_ImportDefinition: // ImportDefinition value.move< ImportDefinition::Ptr > (YY_MOVE (s.value)); break; @@ -6031,7 +6223,7 @@ switch (yykind) #line 51 "../../obj/src/GrammarParser.y" } // libcasm_fe -#line 6035 "GrammarParser.tab.h" +#line 6227 "GrammarParser.tab.h" diff --git a/src/various/GrammarParser.xml b/src/various/GrammarParser.xml index da800972..e58b0e02 100644 --- a/src/various/GrammarParser.xml +++ b/src/various/GrammarParser.xml @@ -126,13 +126,25 @@ + Definition + + FeatureDefinition + + + + Definition + + ImplementationDefinition + + + InitDefinition "init" IdentifierPath - + InitDefinition "init" @@ -141,7 +153,7 @@ "}" - + EnumerationDefinition "enumeration" @@ -152,7 +164,7 @@ "}" - + DerivedDefinition "derived" @@ -163,7 +175,7 @@ Term - + DerivedDefinition "derived" @@ -177,7 +189,7 @@ Term - + DerivedDefinition "derived" @@ -191,7 +203,7 @@ Term - + RuleDefinition "rule" @@ -200,7 +212,7 @@ Rule - + RuleDefinition "rule" @@ -211,7 +223,7 @@ Rule - + RuleDefinition "rule" @@ -223,7 +235,7 @@ Rule - + RuleDefinition "rule" @@ -237,7 +249,7 @@ Rule - + RuleDefinition "rule" @@ -249,7 +261,7 @@ Rule - + RuleDefinition "rule" @@ -263,7 +275,7 @@ Rule - + FunctionDefinition "function" @@ -276,26 +288,26 @@ MaybeInitially - + EnumeratorDefinition Identifier - + EnumeratorDefinition Attributes Identifier - + EnumeratorDefinition error - + Enumerators Enumerators @@ -303,13 +315,13 @@ EnumeratorDefinition - + Enumerators EnumeratorDefinition - + UsingDefinition "using" @@ -318,14 +330,14 @@ Type - + UsingPathDefinition "using" IdentifierPath - + UsingPathDefinition "using" @@ -334,7 +346,7 @@ "*" - + InvariantDefinition "invariant" @@ -343,14 +355,14 @@ Term - + ImportDefinition "import" IdentifierPath - + ImportDefinition "import" @@ -359,7 +371,7 @@ Identifier - + StructureDefinition "structure" @@ -370,104 +382,217 @@ "}" - + + FeatureDefinition + + "feature" + Identifier + "=" + "{" + FeatureDeclarationsAndDefinitions + "}" + + + + FeatureDeclarationOrDefinition + + DeclarationDefinition + + + + FeatureDeclarationOrDefinition + + DerivedDefinition + + + + FeatureDeclarationOrDefinition + + RuleDefinition + + + + FeatureDeclarationsAndDefinitions + + FeatureDeclarationsAndDefinitions + FeatureDeclarationOrDefinition + + + + FeatureDeclarationsAndDefinitions + + FeatureDeclarationOrDefinition + + + + ImplementationDefinition + + "implements" + IdentifierPath + "for" + Type + "=" + "{" + ImplementationDefinitionDefinitions + "}" + + + + ImplementationDefinition + + "implements" + Type + "=" + "{" + ImplementationDefinitionDefinitions + "}" + + + + ImplementationDefinitionDefinition + + DerivedDefinition + + + + ImplementationDefinitionDefinition + + RuleDefinition + + + + ImplementationDefinitionDefinitions + + ImplementationDefinitionDefinitions + ImplementationDefinitionDefinition + + + + ImplementationDefinitionDefinitions + + ImplementationDefinitionDefinition + + + + DeclarationDefinition + + "derived" + Identifier + ":" + MaybeFunctionParameters + "->" + Type + + + + DeclarationDefinition + + "rule" + Identifier + ":" + MaybeFunctionParameters + "->" + Type + + + Rules Rules Rule - + Rules Rule - + Rule SkipRule - + Rule ConditionalRule - + Rule CaseRule - + Rule LetRule - + Rule LocalRule - + Rule ForallRule - + Rule ChooseRule - + Rule IterateRule - + Rule BlockRule - + Rule SequenceRule - + Rule UpdateRule - + Rule CallRule - + Rule WhileRule - + SkipRule "skip" - + ConditionalRule "if" @@ -476,7 +601,7 @@ Rule - + ConditionalRule "if" @@ -487,7 +612,7 @@ Rule - + CaseRule "case" @@ -498,7 +623,7 @@ "}" - + CaseRule "case" @@ -509,20 +634,20 @@ "}" - + CaseLabels CaseLabels CaseLabel - + CaseLabels CaseLabel - + CaseLabel "default" @@ -530,7 +655,7 @@ Rule - + CaseLabel "_" @@ -538,7 +663,7 @@ Rule - + CaseLabel Term @@ -546,7 +671,7 @@ Rule - + LetRule "let" @@ -555,7 +680,7 @@ Rule - + LocalRule "local" @@ -564,7 +689,7 @@ Rule - + ForallRule "forall" @@ -575,7 +700,7 @@ Rule - + ForallRule "forall" @@ -588,7 +713,7 @@ Rule - + ChooseRule "choose" @@ -599,14 +724,14 @@ Rule - + IterateRule "iterate" Rule - + BlockRule "{" @@ -614,7 +739,7 @@ "}" - + BlockRule "par" @@ -622,7 +747,7 @@ "endpar" - + BlockRule "{" @@ -630,7 +755,7 @@ "}" - + BlockRule "par" @@ -638,7 +763,7 @@ "endpar" - + SequenceRule "{|" @@ -646,7 +771,7 @@ "|}" - + SequenceRule "seq" @@ -654,7 +779,7 @@ "endseq" - + SequenceRule "{|" @@ -662,7 +787,7 @@ "|}" - + SequenceRule "seq" @@ -670,7 +795,7 @@ "endseq" - + UpdateRule DirectCallExpression @@ -678,13 +803,13 @@ Term - + CallRule CallExpression - + WhileRule "while" @@ -693,7 +818,7 @@ Rule - + Terms Terms @@ -701,67 +826,67 @@ Term - + Terms Term - + Term SimpleOrClaspedTerm - + Term TypeCastingExpression - + Term OperatorExpression - + Term LetExpression - + Term ConditionalExpression - + Term ChooseExpression - + Term UniversalQuantifierExpression - + Term ExistentialQuantifierExpression - + Term CardinalityExpression - + SimpleOrClaspedTerm "(" @@ -769,7 +894,7 @@ ")" - + SimpleOrClaspedTerm "(" @@ -777,39 +902,39 @@ ")" - + SimpleOrClaspedTerm CallExpression - + SimpleOrClaspedTerm LiteralCallExpression - + SimpleOrClaspedTerm Literal - + SimpleOrClaspedTerm "+" SimpleOrClaspedTerm - + SimpleOrClaspedTerm "-" SimpleOrClaspedTerm - + OperatorExpression Term @@ -817,7 +942,7 @@ Term - + OperatorExpression Term @@ -825,7 +950,7 @@ Term - + OperatorExpression Term @@ -833,7 +958,7 @@ Term - + OperatorExpression Term @@ -841,7 +966,7 @@ Term - + OperatorExpression Term @@ -849,7 +974,7 @@ Term - + OperatorExpression Term @@ -857,7 +982,7 @@ Term - + OperatorExpression Term @@ -865,7 +990,7 @@ Term - + OperatorExpression Term @@ -873,7 +998,7 @@ Term - + OperatorExpression Term @@ -881,7 +1006,7 @@ Term - + OperatorExpression Term @@ -889,7 +1014,7 @@ Term - + OperatorExpression Term @@ -897,7 +1022,7 @@ Term - + OperatorExpression Term @@ -905,7 +1030,7 @@ Term - + OperatorExpression Term @@ -913,7 +1038,7 @@ Term - + OperatorExpression Term @@ -921,7 +1046,7 @@ Term - + OperatorExpression Term @@ -929,7 +1054,7 @@ Term - + OperatorExpression Term @@ -937,7 +1062,7 @@ Term - + OperatorExpression Term @@ -945,38 +1070,38 @@ Term - + OperatorExpression "not" Term - + CallExpression DirectCallExpression - + CallExpression MethodCallExpression - + CallExpression IndirectCallExpression - + DirectCallExpression IdentifierPath - + DirectCallExpression IdentifierPath @@ -984,7 +1109,7 @@ ")" - + DirectCallExpression IdentifierPath @@ -993,7 +1118,7 @@ ")" - + DirectCallExpression IdentifierPath @@ -1002,7 +1127,7 @@ ")" - + MethodCallExpression SimpleOrClaspedTerm @@ -1010,7 +1135,7 @@ Identifier - + MethodCallExpression SimpleOrClaspedTerm @@ -1020,7 +1145,7 @@ ")" - + MethodCallExpression SimpleOrClaspedTerm @@ -1031,7 +1156,7 @@ ")" - + MethodCallExpression SimpleOrClaspedTerm @@ -1042,7 +1167,7 @@ ")" - + LiteralCallExpression SimpleOrClaspedTerm @@ -1050,7 +1175,7 @@ IntegerLiteral - + IndirectCallExpression CallExpression @@ -1058,7 +1183,7 @@ ")" - + IndirectCallExpression CallExpression @@ -1067,7 +1192,7 @@ ")" - + IndirectCallExpression CallExpression @@ -1076,7 +1201,7 @@ ")" - + TypeCastingExpression SimpleOrClaspedTerm @@ -1084,7 +1209,7 @@ Type - + LetExpression "let" @@ -1093,7 +1218,7 @@ Term - + ConditionalExpression "if" @@ -1104,7 +1229,7 @@ Term - + ChooseExpression "choose" @@ -1115,7 +1240,7 @@ Term - + UniversalQuantifierExpression "forall" @@ -1126,7 +1251,7 @@ Term - + ExistentialQuantifierExpression "exists" @@ -1137,7 +1262,7 @@ Term - + CardinalityExpression "|" @@ -1145,147 +1270,147 @@ "|" - + Literal UndefinedLiteral - + Literal BooleanLiteral - + Literal IntegerLiteral - + Literal RationalLiteral - + Literal DecimalLiteral - + Literal BinaryLiteral - + Literal StringLiteral - + Literal ReferenceLiteral - + Literal ListLiteral - + Literal RangeLiteral - + Literal TupleLiteral - + Literal RecordLiteral - + UndefinedLiteral "undef" - + BooleanLiteral "true" - + BooleanLiteral "false" - + IntegerLiteral "integer" - + RationalLiteral "rational" - + DecimalLiteral "decimal" - + BinaryLiteral "binary" - + BinaryLiteral "hexadecimal" - + StringLiteral "string" - + ReferenceLiteral "@" IdentifierPath - + ListLiteral "[" "]" - + ListLiteral "[" @@ -1293,7 +1418,7 @@ "]" - + ListLiteral "[" @@ -1301,7 +1426,7 @@ "]" - + RangeLiteral "[" @@ -1311,7 +1436,7 @@ "]" - + TupleLiteral "(" @@ -1321,7 +1446,7 @@ ")" - + RecordLiteral "(" @@ -1329,7 +1454,7 @@ ")" - + Assignments Assignments @@ -1337,13 +1462,13 @@ Assignment - + Assignments Assignment - + Assignment Identifier @@ -1351,7 +1476,7 @@ Term - + Types Types @@ -1359,55 +1484,55 @@ Type - + Types Type - + Type BasicType - + Type TupleType - + Type RecordType - + Type TemplateType - + Type RelationType - + Type FixedSizedType - + BasicType IdentifierPath - + TupleType "(" @@ -1417,7 +1542,7 @@ ")" - + RecordType "(" @@ -1427,7 +1552,7 @@ ")" - + TemplateType IdentifierPath @@ -1436,7 +1561,7 @@ ">" - + RelationType IdentifierPath @@ -1447,7 +1572,7 @@ ">" - + FixedSizedType IdentifierPath @@ -1455,7 +1580,7 @@ Term - + FunctionParameters FunctionParameters @@ -1463,25 +1588,25 @@ Type - + FunctionParameters Type - + MaybeFunctionParameters FunctionParameters - + MaybeFunctionParameters - + Parameters Parameters @@ -1489,13 +1614,13 @@ TypedAttributedVariable - + Parameters TypedAttributedVariable - + MaybeDefined "defined" @@ -1504,13 +1629,13 @@ "}" - + MaybeDefined - + MaybeInitially "=" @@ -1519,13 +1644,13 @@ "}" - + MaybeInitially - + Initializers Initializers @@ -1533,19 +1658,19 @@ Initializer - + Initializers Initializer - + Initializer Term - + Initializer "(" @@ -1555,7 +1680,7 @@ Term - + Initializer TupleLiteral @@ -1563,19 +1688,19 @@ Term - + Identifier "identifier" - + Identifier "in" - + IdentifierPath IdentifierPath @@ -1583,25 +1708,25 @@ Identifier - + IdentifierPath Identifier - + Variable TypedVariable - + Variable Identifier - + AttributedVariables AttributedVariables @@ -1609,13 +1734,13 @@ AttributedVariable - + AttributedVariables AttributedVariable - + TypedVariables TypedVariables @@ -1623,13 +1748,13 @@ TypedVariable - + TypedVariables TypedVariable - + TypedVariable Identifier @@ -1637,33 +1762,33 @@ Type - + AttributedVariable Attributes Variable - + AttributedVariable Variable - + TypedAttributedVariable Attributes TypedVariable - + TypedAttributedVariable TypedVariable - + VariableBindings VariableBindings @@ -1671,13 +1796,13 @@ VariableBinding - + VariableBindings VariableBinding - + VariableBinding AttributedVariable @@ -1685,7 +1810,7 @@ Term - + LocalFunctionDefinitions LocalFunctionDefinitions @@ -1693,32 +1818,32 @@ AttributedLocalFunctionDefinition - + LocalFunctionDefinitions AttributedLocalFunctionDefinition - + AttributedLocalFunctionDefinition Attributes LocalFunctionDefinition - + AttributedLocalFunctionDefinition LocalFunctionDefinition - + AttributedLocalFunctionDefinition error - + LocalFunctionDefinition Identifier @@ -1730,20 +1855,20 @@ MaybeInitially - + Attributes Attributes Attribute - + Attributes Attribute - + Attribute "[" @@ -1751,7 +1876,7 @@ "]" - + Attribute "[" @@ -1759,7 +1884,7 @@ "]" - + Attribute "[" @@ -1767,84 +1892,19 @@ "]" - + BasicAttribute Identifier - + ExpressionAttribute Identifier Term - - FeatureDefinition - - "feature" - Identifier - "=" - "{" - FeatureDeclarationsAndDefinitions - "}" - - - - FeatureDeclarationOrDefinition - - DeclarationDefinition - - - - FeatureDeclarationOrDefinition - - DerivedDefinition - - - - FeatureDeclarationOrDefinition - - RuleDefinition - - - - FeatureDeclarationsAndDefinitions - - FeatureDeclarationsAndDefinitions - "," - FeatureDeclarationOrDefinition - - - - FeatureDeclarationsAndDefinitions - - FeatureDeclarationOrDefinition - - - - DeclarationDefinition - - "derived" - Identifier - ":" - MaybeFunctionParameters - "->" - Type - - - - DeclarationDefinition - - "rule" - Identifier - ":" - MaybeFunctionParameters - "->" - Type - - @@ -1858,189 +1918,194 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2052,11 +2117,11 @@ - - - - - + + + + + @@ -2089,13 +2154,13 @@ - - - - - - - + + + + + + + @@ -2157,18 +2222,23 @@ - - + + - - - - - + + + + + + + + + + @@ -2181,22 +2251,26 @@ - + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -2208,16 +2282,16 @@ - - - - + + + + - + - + @@ -2227,13 +2301,13 @@ - + - + @@ -2241,11 +2315,11 @@ - + - + @@ -2255,13 +2329,13 @@ - + - + @@ -2269,13 +2343,13 @@ - + - + @@ -2283,22 +2357,6 @@ - - - - - - - - - - - - - - - - @@ -2367,76 +2425,92 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + "]" - + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -2444,11 +2518,11 @@ - + - + @@ -2458,11 +2532,11 @@ - + - + @@ -2500,20 +2574,20 @@ - - - - - - + + + + + + - + - - + + @@ -2523,17 +2597,17 @@ - - - - + + + + - + @@ -2543,15 +2617,15 @@ - - - + + + - + @@ -2561,20 +2635,20 @@ - - - - + + + + - + @@ -2584,20 +2658,20 @@ - - - - - - + + + + + + - - + + @@ -2607,15 +2681,15 @@ - - - + + + - + @@ -2625,19 +2699,19 @@ - - - - - - + + + + + + - - + + @@ -2647,15 +2721,15 @@ - - - + + + - + @@ -2665,15 +2739,15 @@ - - - + + + - + @@ -2682,6 +2756,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2715,18 +2849,23 @@ - - + + - - - - - + + + + + + + + + + @@ -2739,21 +2878,25 @@ - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -2764,7 +2907,7 @@ - + @@ -2778,7 +2921,7 @@ - + @@ -2792,7 +2935,7 @@ - + @@ -2806,7 +2949,7 @@ - + @@ -2820,7 +2963,7 @@ - + @@ -2834,7 +2977,7 @@ - + @@ -2848,7 +2991,7 @@ - + @@ -2862,7 +3005,7 @@ - + @@ -2876,7 +3019,7 @@ - + @@ -2890,7 +3033,7 @@ - + @@ -2904,7 +3047,7 @@ - + @@ -2918,7 +3061,7 @@ - + @@ -2932,7 +3075,35 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2958,17 +3129,22 @@ - - + + - - - - + + + + + + + + + @@ -2980,20 +3156,24 @@ - + + + - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -3001,7 +3181,7 @@ - + @@ -3015,65 +3195,65 @@ - + - + - + - + - + - + - + - - - - - - - - - + - - + + + + + + + + + + - - - - - - - + + + + + + + @@ -3082,35 +3262,35 @@ - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - + + + + + + @@ -3119,35 +3299,35 @@ - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - + + + + + + @@ -3156,24 +3336,8 @@ - + - - - - - - - - - - - - - - - - @@ -3210,7 +3374,6 @@ - @@ -3227,6 +3390,7 @@ + @@ -3243,66 +3407,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3310,35 +3490,35 @@ - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - + + + + + + @@ -3347,66 +3527,50 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - @@ -3425,7 +3589,6 @@ - @@ -3442,6 +3605,7 @@ + @@ -3476,66 +3640,82 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3543,31 +3723,22 @@ - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -3577,13 +3748,6 @@ - - - - - - - @@ -3596,50 +3760,66 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -3647,31 +3827,22 @@ - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -3681,13 +3852,6 @@ - - - - - - - @@ -3700,50 +3864,66 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -3751,26 +3931,8 @@ - + - - - - - - - - - - - - - - - - - - @@ -3783,7 +3945,9 @@ + + @@ -3840,76 +4004,92 @@ - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3917,24 +4097,8 @@ - + - - - - - - - - - - - - - - - - @@ -4000,110 +4164,116 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -4113,13 +4283,7 @@ - - - - - - - + @@ -4132,50 +4296,66 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -4183,20 +4363,20 @@ - + - - - - - + + + + + - - + + @@ -4204,110 +4384,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + "]" @@ -4315,35 +4495,35 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - + "end of file" error @@ -4355,6 +4535,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -4424,43 +4606,43 @@ "identifier" - - - - - - + + + + + + - - + + - + - + - + - + - + - + "end of file" error @@ -4472,6 +4654,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -4542,377 +4726,377 @@ "identifier" - - - + + + - + - + - CALL < "(" + CALL < "(" - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + "end of file" error @@ -4924,6 +5108,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -4995,73 +5181,57 @@ "identifier" - - - - + + + + - - + + - + - CALL_WITHOUT_ARGS < "(" + CALL_WITHOUT_ARGS < "(" - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - + @@ -5130,73 +5300,89 @@ - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5204,9 +5390,9 @@ - + - + "end of file" error @@ -5218,34 +5404,36 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "[" - + - + - + - + - - + + - - + + @@ -5253,13 +5441,13 @@ - + - + - + @@ -5267,20 +5455,20 @@ - + - - + + - - - + + + @@ -5288,10 +5476,10 @@ - + - - + + "end of file" error @@ -5303,6 +5491,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "[" "::" @@ -5311,19 +5501,19 @@ - + - + - + - + "end of file" error @@ -5335,32 +5525,34 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "[" - - + + - + - + - + - + - + @@ -5368,9 +5560,9 @@ - + - + "end of file" error @@ -5382,33 +5574,35 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "[" - - + + - - + + - + - + - + - + @@ -5416,13 +5610,13 @@ - + - + - + @@ -5430,9 +5624,199 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "=" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5444,7 +5828,7 @@ - + @@ -5458,64 +5842,64 @@ - + - + "in" "=" "," - + - + - + - + - + - + - + - + - + - + - + - + @@ -5523,15 +5907,15 @@ - + - - + + - - + + @@ -5539,42 +5923,42 @@ - + - + - + - + - - - - - - - + + + + - - + + + + + - - - - + + + + @@ -5582,15 +5966,15 @@ - + - - + + - - + + @@ -5598,29 +5982,29 @@ - + - + - + - + - - + + - - + + @@ -5628,47 +6012,47 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5676,15 +6060,15 @@ - + - - + + - - + + @@ -5692,29 +6076,29 @@ - + - - - - - - - - - - - - - - - - - - - "end of file" - error + + + + + + + + + + + + + + + + + + + "end of file" + error "init" "derived" "enumeration" @@ -5723,6 +6107,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -5797,33 +6183,33 @@ - + - "and" < "not" - "or" < "not" - "xor" < "not" - "implies" < "not" - "+" < "not" - "-" < "not" - "=" < "not" - "<" < "not" - ">" < "not" - "*" < "not" - "/" < "not" - "%" < "not" - "^" < "not" - "=>" < "not" - "!=" < "not" - "<=" < "not" - ">=" < "not" + "and" < "not" + "or" < "not" + "xor" < "not" + "implies" < "not" + "+" < "not" + "-" < "not" + "=" < "not" + "<" < "not" + ">" < "not" + "*" < "not" + "/" < "not" + "%" < "not" + "^" < "not" + "=>" < "not" + "!=" < "not" + "<=" < "not" + ">=" < "not" - + - + "end of file" error @@ -5835,6 +6221,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -5906,27 +6294,27 @@ "identifier" - - - - - + + + + + - + - "." < UPLUS + "." < UPLUS - + - + "end of file" error @@ -5938,6 +6326,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -6009,31 +6399,31 @@ "identifier" - - - - - + + + + + - + - "." < UMINUS + "." < UMINUS - + - + - + @@ -6041,14 +6431,14 @@ - + - - + + - + @@ -6056,70 +6446,70 @@ - + - + "," - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + - - + + - - + + @@ -6127,24 +6517,24 @@ - + - + - + - + - - + + "as" "and" @@ -6174,23 +6564,23 @@ - + - + - + - + - + @@ -6198,29 +6588,29 @@ - + - + - + - + - - + + - - + + @@ -6228,75 +6618,75 @@ - + - + "]" "," - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + - - - - - - + + + + + + - - + + @@ -6304,9 +6694,9 @@ - + - + "end of file" error @@ -6318,6 +6708,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -6389,38 +6781,22 @@ "identifier" - + - + - + - + - - - - - - - - - - - - - - - - @@ -6436,7 +6812,6 @@ - @@ -6453,6 +6828,7 @@ + @@ -6490,66 +6866,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6557,24 +6949,8 @@ - + - - - - - - - - - - - - - - - - @@ -6588,7 +6964,6 @@ - @@ -6605,6 +6980,7 @@ + @@ -6644,91 +7020,91 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6743,7 +7119,6 @@ - @@ -6760,6 +7135,7 @@ + @@ -6798,66 +7174,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6865,24 +7257,8 @@ - + - - - - - - - - - - - - - - - - @@ -6900,7 +7276,6 @@ - @@ -6917,6 +7292,7 @@ + @@ -6952,66 +7328,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7019,26 +7411,9 @@ - + - - - - - - - - - - - - - - - - - @@ -7055,6 +7430,7 @@ + @@ -7106,66 +7482,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7173,27 +7565,10 @@ - + - - - - - - - - - - - - - - - - - @@ -7210,6 +7585,7 @@ + @@ -7260,66 +7636,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7327,24 +7719,8 @@ - + - - - - - - - - - - - - - - - - @@ -7353,7 +7729,6 @@ - @@ -7370,6 +7745,7 @@ + @@ -7414,66 +7790,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7481,24 +7873,8 @@ - + - - - - - - - - - - - - - - - - @@ -7508,7 +7884,6 @@ - @@ -7525,6 +7900,7 @@ + @@ -7568,66 +7944,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7635,24 +8027,8 @@ - + - - - - - - - - - - - - - - - - @@ -7663,7 +8039,6 @@ - @@ -7680,6 +8055,7 @@ + @@ -7722,66 +8098,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7789,28 +8181,11 @@ - + - - - - - - - - - - - - - - - - - @@ -7827,6 +8202,7 @@ + @@ -7876,66 +8252,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -7943,29 +8335,12 @@ - + - - - - - - - - - - - - - - - - - @@ -7982,6 +8357,7 @@ + @@ -8030,66 +8406,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8097,30 +8489,13 @@ - + - - - - - - - - - - - - - - - - - @@ -8137,6 +8512,7 @@ + @@ -8184,66 +8560,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8251,31 +8643,14 @@ - + - - - - - - - - - - - - - - - - - @@ -8292,6 +8667,7 @@ + @@ -8338,91 +8714,91 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8439,7 +8815,6 @@ - @@ -8456,6 +8831,7 @@ + @@ -8492,66 +8868,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8559,24 +8951,8 @@ - + - - - - - - - - - - - - - - - - @@ -8584,7 +8960,6 @@ - @@ -8601,6 +8976,7 @@ + @@ -8646,66 +9022,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8713,24 +9105,8 @@ - + - - - - - - - - - - - - - - - - @@ -8742,7 +9118,6 @@ - @@ -8759,6 +9134,7 @@ + @@ -8800,66 +9176,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -8867,24 +9259,8 @@ - + - - - - - - - - - - - - - - - - @@ -8897,7 +9273,6 @@ - @@ -8914,6 +9289,7 @@ + @@ -8954,66 +9330,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9021,40 +9413,40 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + + - + - - - - - - - - - + + + + + + + + + @@ -9062,24 +9454,24 @@ - + - - - - - - - - + + + + + + + + - + - - + + @@ -9087,24 +9479,8 @@ - + - - - - - - - - - - - - - - - - @@ -9138,11 +9514,8 @@ - - - @@ -9157,8 +9530,11 @@ + + + @@ -9178,69 +9554,85 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9248,24 +9640,8 @@ - + - - - - - - - - - - - - - - - - @@ -9291,11 +9667,8 @@ - - - @@ -9310,8 +9683,11 @@ + + + @@ -9339,69 +9715,85 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9409,17 +9801,17 @@ - + - - - + + + - + @@ -9427,26 +9819,8 @@ - + - - - - - - - - - - - - - - - - - - @@ -9459,7 +9833,9 @@ + + @@ -9516,77 +9892,93 @@ - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9594,26 +9986,26 @@ - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + "}" "," @@ -9622,35 +10014,35 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - + "as" "and" @@ -9675,29 +10067,29 @@ ">=" - + - + - + - + - - + + - - + + @@ -9705,48 +10097,48 @@ - + - + - + - + - - - - - - - - - - - + + + + + + - - + + + + + + + - + - - - - - + + + + + @@ -9755,40 +10147,40 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + + - + - - - - - - - - - + + + + + + + + + @@ -9796,13 +10188,13 @@ - + - + - + @@ -9810,27 +10202,16 @@ - + - - - - - - - - - - - - - - - - - + + + + + + @@ -9842,34 +10223,36 @@ - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -9879,13 +10262,6 @@ - - - - - - - @@ -9898,77 +10274,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9976,36 +10368,36 @@ - + - - - - - - - - - - - + + + + + + - - + + + + + + + - + - - - - - + + + + + @@ -10014,40 +10406,40 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + + - + - - - - - - - - - + + + + + + + + + @@ -10055,40 +10447,40 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + + - + - - - - - - - - - + + + + + + + + + @@ -10096,19 +10488,19 @@ - + - - - - + + + + - + - + @@ -10116,25 +10508,9 @@ - + - - - - - - - - - - - - - - - - - + @@ -10203,66 +10579,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10270,17 +10662,17 @@ - + - - - + + + - + @@ -10288,13 +10680,13 @@ - + - + - + @@ -10302,93 +10694,28 @@ - + - - - - - - - - - - - - - - - - - - - "->" - - - - - - + - - - - - - - - - - - - - - + - - - + - + - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - + @@ -10396,343 +10723,226 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + "::" + "," + "<" + "'" + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + - + - - - - - - - - + + + "end of file" + error + "init" + "derived" + "enumeration" + "rule" + "using" + "invariant" + "import" + "structure" + "feature" + "implements" + "function" + "defined" + "seq" + "endseq" + "par" + "endpar" + "skip" + "let" + "local" + "in" + "forall" + "choose" + "iterate" + "do" + "if" + "then" + "else" + "case" + "of" + "default" + "holds" + "exists" + "with" + "while" + "undef" + "false" + "true" + "and" + "or" + "xor" + "implies" + "not" + "+" + "-" + "=" + "(" + ")" + "[" + "]" + "{" + "}" + ":" + "_" + "|" + "@" + "," + ">" + "*" + "/" + "%" + "^" + ".." + "->" + "=>" + "!=" + "<=" + ">=" + "{|" + "|}" + "binary" + "hexadecimal" + "integer" + "rational" + "decimal" + "string" + "identifier" + + + + + + + + + + + + + + + + + + + + BASIC_TYPE < "<" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + - + - - - - - - - + + + + + + + + + @@ -10740,38 +10950,65 @@ - + - + + + + + + + + + + + + + + + + + + + + + + "->" + + + + + + - + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - @@ -10810,7 +11047,6 @@ - @@ -10841,66 +11077,83 @@ - - - - + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10908,33 +11161,93 @@ - + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + "->" + + + + + + + + - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10942,24 +11255,8 @@ - + - - - - - - - - - - - - - - - - @@ -10997,7 +11294,6 @@ - @@ -11029,66 +11325,83 @@ - - - - + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11096,24 +11409,8 @@ - + - - - - - - - - - - - - - - - - @@ -11150,7 +11447,6 @@ - @@ -11166,6 +11462,7 @@ + @@ -11183,66 +11480,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11250,24 +11563,58 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - @@ -11307,7 +11654,6 @@ - @@ -11323,6 +11669,7 @@ + @@ -11337,66 +11684,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11404,39 +11767,42 @@ - + - + + + + + + + + + + + + + - + + + + + + + + + + + - - - + - + - - - - - - - - - - - - - - - - - @@ -11490,6 +11856,7 @@ + @@ -11504,116 +11871,83 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11621,24 +11955,8 @@ - + - - - - - - - - - - - - - - - - @@ -11691,6 +12009,7 @@ + @@ -11707,67 +12026,82 @@ - - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11775,53 +12109,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - @@ -11877,6 +12166,7 @@ + @@ -11890,66 +12180,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -11957,24 +12263,23 @@ - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -12041,69 +12346,85 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -12111,166 +12432,576 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - "end of file" - error - "init" - "derived" - "enumeration" - "rule" - "using" - "invariant" - "import" - "structure" - "function" - "defined" - "seq" - "endseq" - "par" - "endpar" - "skip" - "let" - "local" - "in" - "forall" - "choose" - "iterate" - "do" - "if" - "then" - "else" - "case" - "of" - "default" - "holds" - "exists" - "with" - "while" - "undef" - "false" - "true" - "and" - "or" - "xor" - "implies" - "not" - "(" - ")" - "[" - "]" - "{" - "}" - ":" - "_" - "|" - "@" - "," - ".." - "->" - "=>" - "{|" - "|}" - "binary" - "hexadecimal" - "integer" - "rational" - "decimal" - "string" - "identifier" - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - %left "and" - "or" < "and" - "xor" < "and" - "implies" < "and" - "and" < "+" - "and" < "-" - "and" < "=" - "and" < "<" - "and" < ">" - "and" < "*" - "and" < "/" - "and" < "%" - "and" < "^" - "=>" < "and" - "and" < "!=" - "and" < "<=" - "and" < ">=" - + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + "end of file" error @@ -12282,6 +13013,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -12309,7 +13042,9 @@ "undef" "false" "true" + "and" "or" + "xor" "implies" "not" "(" @@ -12337,71 +13072,66 @@ "identifier" - - - - + + - - - - - - - - - - - - - - + + + + + + + + + + + + - + - "or" < "and" - %left "or" - "or" < "xor" - "implies" < "or" - "or" < "+" - "or" < "-" - "or" < "=" - "or" < "<" - "or" < ">" - "or" < "*" - "or" < "/" - "or" < "%" - "or" < "^" - "=>" < "or" - "or" < "!=" - "or" < "<=" - "or" < ">=" + %left "and" + "or" < "and" + "xor" < "and" + "implies" < "and" + "and" < "+" + "and" < "-" + "and" < "=" + "and" < "<" + "and" < ">" + "and" < "*" + "and" < "/" + "and" < "%" + "and" < "^" + "=>" < "and" + "and" < "!=" + "and" < "<=" + "and" < ">=" - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + "end of file" error @@ -12413,6 +13143,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -12441,7 +13173,6 @@ "false" "true" "or" - "xor" "implies" "not" "(" @@ -12469,72 +13200,71 @@ "identifier" - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - "xor" < "and" - "or" < "xor" - %left "xor" - "implies" < "xor" - "xor" < "+" - "xor" < "-" - "xor" < "=" - "xor" < "<" - "xor" < ">" - "xor" < "*" - "xor" < "/" - "xor" < "%" - "xor" < "^" - "=>" < "xor" - "xor" < "!=" - "xor" < "<=" - "xor" < ">=" + "or" < "and" + %left "or" + "or" < "xor" + "implies" < "or" + "or" < "+" + "or" < "-" + "or" < "=" + "or" < "<" + "or" < ">" + "or" < "*" + "or" < "/" + "or" < "%" + "or" < "^" + "=>" < "or" + "or" < "!=" + "or" < "<=" + "or" < ">=" - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + "end of file" error @@ -12546,6 +13276,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -12573,6 +13305,8 @@ "undef" "false" "true" + "or" + "xor" "implies" "not" "(" @@ -12600,55 +13334,72 @@ "identifier" + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + - + - "implies" < "and" - "implies" < "or" - "implies" < "xor" - %left "implies" - "implies" < "+" - "implies" < "-" - "implies" < "=" - "implies" < "<" - "implies" < ">" - "implies" < "*" - "implies" < "/" - "implies" < "%" - "implies" < "^" - %left "=>" - "implies" < "!=" - "implies" < "<=" - "implies" < ">=" + "xor" < "and" + "or" < "xor" + %left "xor" + "implies" < "xor" + "xor" < "+" + "xor" < "-" + "xor" < "=" + "xor" < "<" + "xor" < ">" + "xor" < "*" + "xor" < "/" + "xor" < "%" + "xor" < "^" + "=>" < "xor" + "xor" < "!=" + "xor" < "<=" + "xor" < ">=" - + - - + + + + + + + + + + + + + + + + + + "end of file" error @@ -12660,6 +13411,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -12687,14 +13440,8 @@ "undef" "false" "true" - "and" - "or" - "xor" "implies" "not" - "+" - "-" - "=" "(" ")" "[" @@ -12706,14 +13453,9 @@ "|" "@" "," - "<" - ">" ".." "->" "=>" - "!=" - "<=" - ">=" "{|" "|}" "binary" @@ -12725,61 +13467,55 @@ "identifier" - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - "and" < "+" - "or" < "+" - "xor" < "+" - "implies" < "+" - %left "+" - %left "-" - "=" < "+" - "<" < "+" - ">" < "+" - "+" < "*" - "+" < "/" - "+" < "%" - "+" < "^" - "=>" < "+" - "!=" < "+" - "<=" < "+" - ">=" < "+" + "implies" < "and" + "implies" < "or" + "implies" < "xor" + %left "implies" + "implies" < "+" + "implies" < "-" + "implies" < "=" + "implies" < "<" + "implies" < ">" + "implies" < "*" + "implies" < "/" + "implies" < "%" + "implies" < "^" + %left "=>" + "implies" < "!=" + "implies" < "<=" + "implies" < ">=" - + - - - + + "end of file" error @@ -12791,6 +13527,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -12856,66 +13594,61 @@ "identifier" - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - + + + + - + - "and" < "-" - "or" < "-" - "xor" < "-" - "implies" < "-" - %left "+" - %left "-" - "=" < "-" - "<" < "-" - ">" < "-" - "-" < "*" - "-" < "/" - "-" < "%" - "-" < "^" - "=>" < "-" - "!=" < "-" - "<=" < "-" - ">=" < "-" + "and" < "+" + "or" < "+" + "xor" < "+" + "implies" < "+" + %left "+" + %left "-" + "=" < "+" + "<" < "+" + ">" < "+" + "+" < "*" + "+" < "/" + "+" < "%" + "+" < "^" + "=>" < "+" + "!=" < "+" + "<=" < "+" + ">=" < "+" - + - - - - - - - - - + + + "end of file" error @@ -12927,6 +13660,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -12959,6 +13694,8 @@ "xor" "implies" "not" + "+" + "-" "=" "(" ")" @@ -12971,10 +13708,14 @@ "|" "@" "," + "<" + ">" ".." "->" "=>" "!=" + "<=" + ">=" "{|" "|}" "binary" @@ -12986,67 +13727,66 @@ "identifier" - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - + + + + - + - "and" < "=" - "or" < "=" - "xor" < "=" - "implies" < "=" - "=" < "+" - "=" < "-" - %left "=" - "=" < "<" - "=" < ">" - "=" < "*" - "=" < "/" - "=" < "%" - "=" < "^" - "=>" < "=" - %left "!=" - "=" < "<=" - "=" < ">=" + "and" < "-" + "or" < "-" + "xor" < "-" + "implies" < "-" + %left "+" + %left "-" + "=" < "-" + "<" < "-" + ">" < "-" + "-" < "*" + "-" < "/" + "-" < "%" + "-" < "^" + "=>" < "-" + "!=" < "-" + "<=" < "-" + ">=" < "-" - + - - - - - - - - - - + + + + + + + + + "end of file" error @@ -13058,6 +13798,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -13102,14 +13844,10 @@ "|" "@" "," - "<" - ">" ".." "->" "=>" "!=" - "<=" - ">=" "{|" "|}" "binary" @@ -13121,63 +13859,67 @@ "identifier" - - - - - - - - + + + + + + + + + - - - - - - + + + + + + + + + + - + - "and" < "<" - "or" < "<" - "xor" < "<" - "implies" < "<" - "<" < "+" - "<" < "-" - "=" < "<" - %left "<" - %left ">" - "<" < "*" - "<" < "/" - "<" < "%" - "<" < "^" - "=>" < "<" - "!=" < "<" - %left "<=" - %left ">=" + "and" < "=" + "or" < "=" + "xor" < "=" + "implies" < "=" + "=" < "+" + "=" < "-" + %left "=" + "=" < "<" + "=" < ">" + "=" < "*" + "=" < "/" + "=" < "%" + "=" < "^" + "=>" < "=" + %left "!=" + "=" < "<=" + "=" < ">=" - + - - - - - - - - - - - + + + + + + + + + + "end of file" error @@ -13189,6 +13931,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -13252,55 +13996,63 @@ "identifier" - - - - - - - + + + + + + + + - - - - - - + + + + + + - + - "and" < ">" - "or" < ">" - "xor" < ">" - "implies" < ">" - ">" < "+" - ">" < "-" - "=" < ">" - %left "<" - %left ">" - ">" < "*" - ">" < "/" - ">" < "%" - ">" < "^" - "=>" < ">" - "!=" < ">" - %left "<=" - %left ">=" + "and" < "<" + "or" < "<" + "xor" < "<" + "implies" < "<" + "<" < "+" + "<" < "-" + "=" < "<" + %left "<" + %left ">" + "<" < "*" + "<" < "/" + "<" < "%" + "<" < "^" + "=>" < "<" + "!=" < "<" + %left "<=" + %left ">=" - + - - - - + + + + + + + + + + + "end of file" error @@ -13312,6 +14064,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -13344,8 +14098,6 @@ "xor" "implies" "not" - "+" - "-" "=" "(" ")" @@ -13360,9 +14112,6 @@ "," "<" ">" - "*" - "/" - "%" ".." "->" "=>" @@ -13380,58 +14129,55 @@ "identifier" - - - - - - - - - - - - - - + + + + + + + - + + + + + + - + - "and" < "*" - "or" < "*" - "xor" < "*" - "implies" < "*" - "+" < "*" - "-" < "*" - "=" < "*" - "<" < "*" - ">" < "*" - %left "*" - %left "/" - %left "%" - "*" < "^" - "=>" < "*" - "!=" < "*" - "<=" < "*" - ">=" < "*" + "and" < ">" + "or" < ">" + "xor" < ">" + "implies" < ">" + ">" < "+" + ">" < "-" + "=" < ">" + %left "<" + %left ">" + ">" < "*" + ">" < "/" + ">" < "%" + ">" < "^" + "=>" < ">" + "!=" < ">" + %left "<=" + %left ">=" - + - - - - - + + + + "end of file" error @@ -13443,6 +14189,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -13511,58 +14259,58 @@ "identifier" - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - "and" < "/" - "or" < "/" - "xor" < "/" - "implies" < "/" - "+" < "/" - "-" < "/" - "=" < "/" - "<" < "/" - ">" < "/" - %left "*" - %left "/" - %left "%" - "/" < "^" - "=>" < "/" - "!=" < "/" - "<=" < "/" - ">=" < "/" + "and" < "*" + "or" < "*" + "xor" < "*" + "implies" < "*" + "+" < "*" + "-" < "*" + "=" < "*" + "<" < "*" + ">" < "*" + %left "*" + %left "/" + %left "%" + "*" < "^" + "=>" < "*" + "!=" < "*" + "<=" < "*" + ">=" < "*" - + - - - - - - + + + + + "end of file" error @@ -13574,6 +14322,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -13642,58 +14392,58 @@ "identifier" - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - "and" < "%" - "or" < "%" - "xor" < "%" - "implies" < "%" - "+" < "%" - "-" < "%" - "=" < "%" - "<" < "%" - ">" < "%" - %left "*" - %left "/" - %left "%" - "%" < "^" - "=>" < "%" - "!=" < "%" - "<=" < "%" - ">=" < "%" + "and" < "/" + "or" < "/" + "xor" < "/" + "implies" < "/" + "+" < "/" + "-" < "/" + "=" < "/" + "<" < "/" + ">" < "/" + %left "*" + %left "/" + %left "%" + "/" < "^" + "=>" < "/" + "!=" < "/" + "<=" < "/" + ">=" < "/" - + - - - - - - - + + + + + + "end of file" error @@ -13705,6 +14455,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -13756,7 +14508,6 @@ "*" "/" "%" - "^" ".." "->" "=>" @@ -13774,65 +14525,58 @@ "identifier" - - - - - - - - - - - + + + + + + + + + + + + - + + + - + - "and" < "^" - "or" < "^" - "xor" < "^" - "implies" < "^" - "+" < "^" - "-" < "^" - "=" < "^" - "<" < "^" - ">" < "^" - "*" < "^" - "/" < "^" - "%" < "^" - %left "^" - "=>" < "^" - "!=" < "^" - "<=" < "^" - ">=" < "^" + "and" < "%" + "or" < "%" + "xor" < "%" + "implies" < "%" + "+" < "%" + "-" < "%" + "=" < "%" + "<" < "%" + ">" < "%" + %left "*" + %left "/" + %left "%" + "%" < "^" + "=>" < "%" + "!=" < "%" + "<=" < "%" + ">=" < "%" - + - - - - - - - - - - - - - - - - - + + + + + + + "end of file" error @@ -13844,6 +14588,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -13871,8 +14617,14 @@ "undef" "false" "true" + "and" + "or" + "xor" "implies" "not" + "+" + "-" + "=" "(" ")" "[" @@ -13884,9 +14636,18 @@ "|" "@" "," + "<" + ">" + "*" + "/" + "%" + "^" ".." "->" "=>" + "!=" + "<=" + ">=" "{|" "|}" "binary" @@ -13898,62 +14659,65 @@ "identifier" - + + + + + + + + + + + - - - - - - - - - - - - - - - - - + - + - "=>" < "and" - "=>" < "or" - "=>" < "xor" - %left "implies" - "=>" < "+" - "=>" < "-" - "=>" < "=" - "=>" < "<" - "=>" < ">" - "=>" < "*" - "=>" < "/" - "=>" < "%" - "=>" < "^" - %left "=>" - "=>" < "!=" - "=>" < "<=" - "=>" < ">=" + "and" < "^" + "or" < "^" + "xor" < "^" + "implies" < "^" + "+" < "^" + "-" < "^" + "=" < "^" + "<" < "^" + ">" < "^" + "*" < "^" + "/" < "^" + "%" < "^" + %left "^" + "=>" < "^" + "!=" < "^" + "<=" < "^" + ">=" < "^" - + - - - - - - - - + + + + + + + + + + + + + + + + + "end of file" error @@ -13965,6 +14729,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -13992,12 +14758,8 @@ "undef" "false" "true" - "and" - "or" - "xor" "implies" "not" - "=" "(" ")" "[" @@ -14012,7 +14774,6 @@ ".." "->" "=>" - "!=" "{|" "|}" "binary" @@ -14024,70 +14785,62 @@ "identifier" - - - - - - - - - - + - - - - - - - - - - + + + + + + + + + + + + + + + - + - "and" < "!=" - "or" < "!=" - "xor" < "!=" - "implies" < "!=" - "!=" < "+" - "!=" < "-" - %left "=" - "!=" < "<" - "!=" < ">" - "!=" < "*" - "!=" < "/" - "!=" < "%" - "!=" < "^" - "=>" < "!=" - %left "!=" - "!=" < "<=" - "!=" < ">=" + "=>" < "and" + "=>" < "or" + "=>" < "xor" + %left "implies" + "=>" < "+" + "=>" < "-" + "=>" < "=" + "=>" < "<" + "=>" < ">" + "=>" < "*" + "=>" < "/" + "=>" < "%" + "=>" < "^" + %left "=>" + "=>" < "!=" + "=>" < "<=" + "=>" < ">=" - + - - - - - - - - - - - - + + + + + + + + "end of file" error @@ -14099,6 +14852,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -14143,14 +14898,10 @@ "|" "@" "," - "<" - ">" ".." "->" "=>" "!=" - "<=" - ">=" "{|" "|}" "binary" @@ -14162,63 +14913,70 @@ "identifier" - - - - - - + + + + + + + + + + - - - - - - + + + + + + + + + + - + - "and" < "<=" - "or" < "<=" - "xor" < "<=" - "implies" < "<=" - "<=" < "+" - "<=" < "-" - "=" < "<=" - %left "<" - %left ">" - "<=" < "*" - "<=" < "/" - "<=" < "%" - "<=" < "^" - "=>" < "<=" - "!=" < "<=" - %left "<=" - %left ">=" + "and" < "!=" + "or" < "!=" + "xor" < "!=" + "implies" < "!=" + "!=" < "+" + "!=" < "-" + %left "=" + "!=" < "<" + "!=" < ">" + "!=" < "*" + "!=" < "/" + "!=" < "%" + "!=" < "^" + "=>" < "!=" + %left "!=" + "!=" < "<=" + "!=" < ">=" - + - - - - - - - - - - - - - + + + + + + + + + + + + "end of file" error @@ -14230,6 +14988,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -14293,198 +15053,63 @@ "identifier" - - - - - + + + + + + - - - - - - + + + + + + - + - "and" < ">=" - "or" < ">=" - "xor" < ">=" - "implies" < ">=" - ">=" < "+" - ">=" < "-" - "=" < ">=" - %left "<" - %left ">" - ">=" < "*" - ">=" < "/" - ">=" < "%" - ">=" < "^" - "=>" < ">=" - "!=" < ">=" - %left "<=" - %left ">=" + "and" < "<=" + "or" < "<=" + "xor" < "<=" + "implies" < "<=" + "<=" < "+" + "<=" < "-" + "=" < "<=" + %left "<" + %left ">" + "<=" < "*" + "<=" < "/" + "<=" < "%" + "<=" < "^" + "=>" < "<=" + "!=" < "<=" + %left "<=" + %left ">=" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + "end of file" error @@ -14496,6 +15121,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -14528,8 +15155,6 @@ "xor" "implies" "not" - "+" - "-" "=" "(" ")" @@ -14542,11 +15167,8 @@ "|" "@" "," + "<" ">" - "*" - "/" - "%" - "^" ".." "->" "=>" @@ -14564,44 +15186,78 @@ "identifier" - - - - + + + + + - - - + + + + + + - + - BASIC_TYPE < "<" + "and" < ">=" + "or" < ">=" + "xor" < ">=" + "implies" < ">=" + ">=" < "+" + ">=" < "-" + "=" < ">=" + %left "<" + %left ">" + ">=" < "*" + ">=" < "/" + ">=" < "%" + ">=" < "^" + "=>" < ">=" + "!=" < ">=" + %left "<=" + %left ">=" - + - + - + - + - + + + + + + + + + + + + + + + "end of file" error @@ -14613,6 +15269,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -14683,31 +15341,31 @@ "identifier" - - - + + + - + - + - CALL_WITHOUT_ARGS < "(" + CALL_WITHOUT_ARGS < "(" - + - + - + @@ -14715,29 +15373,29 @@ - + - + - + - + - - + + - - + + @@ -14745,67 +15403,67 @@ - + - + ")" "," - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - + - + @@ -14813,29 +15471,29 @@ - + - + - + - + - - + + - - + + @@ -14843,94 +15501,78 @@ - + - + - + - + - + "," - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - @@ -14999,67 +15641,83 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15067,38 +15725,22 @@ - + - + - + - + - - - - - - - - - - - - - - - - @@ -15167,71 +15809,87 @@ - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15239,13 +15897,13 @@ - + - + - + @@ -15253,15 +15911,15 @@ - + - - + + - - + + @@ -15269,13 +15927,13 @@ - + - + - + @@ -15283,53 +15941,53 @@ - + - + - + - + - + - + - + - - - - - + + - - + + + + + - - - + + + @@ -15337,13 +15995,13 @@ - + - + - + @@ -15351,32 +16009,32 @@ - + - - - + - - - - - - - + + + + + + + + + - + - - - - + + + + @@ -15385,28 +16043,17 @@ - + - - - - - - - - - - - - - - - - + + + + + @@ -15418,36 +16065,38 @@ - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -15457,13 +16106,6 @@ - - - - - - - @@ -15476,79 +16118,95 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15556,28 +16214,17 @@ - + - - - - - - - - - - - - - - - - + + + + + @@ -15586,39 +16233,41 @@ - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -15628,13 +16277,6 @@ - - - - - - - @@ -15647,79 +16289,95 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -15727,51 +16385,51 @@ - + - + - + - + - - - - - - - - - + - - + + + + + + + + + + - - - - - - - + + + + + + + @@ -15780,34 +16438,34 @@ - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - - - - + + + + + @@ -15816,36 +16474,36 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + + @@ -15854,35 +16512,35 @@ - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - + + + + + + @@ -15891,66 +16549,57 @@ - + - - - - - - - - - - - - - - - - + + + + + - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -15960,13 +16609,6 @@ - - - - - - - @@ -15979,77 +16621,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16057,26 +16715,10 @@ - + - - - - - - - - - - - - - - - - - - + + @@ -16145,66 +16787,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16212,26 +16870,10 @@ - + - - - - - - - - - - - - - - - - - - + + @@ -16300,66 +16942,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16367,25 +17025,9 @@ - + - - - - - - - - - - - - - - - - - + @@ -16454,66 +17096,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16521,28 +17179,17 @@ - + - - - - - - - - - - - - - - - - + + + + + @@ -16550,40 +17197,42 @@ - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -16593,13 +17242,6 @@ - - - - - - - @@ -16612,79 +17254,95 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16692,28 +17350,17 @@ - + - - - - - - - - - - - - - - - - + + + + + @@ -16725,52 +17372,47 @@ - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + @@ -16783,79 +17425,95 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16863,213 +17521,213 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + @@ -17077,9 +17735,9 @@ - + - + "end of file" error @@ -17091,6 +17749,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "seq" "endseq" @@ -17132,34 +17792,34 @@ "identifier" - + "." - - - + + + - + - - + + - CALL < "(" + CALL < "(" - + - - + + "end of file" error @@ -17171,6 +17831,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "seq" "endseq" @@ -17217,24 +17879,24 @@ - + - + - + - - + + - + @@ -17242,16 +17904,16 @@ - + - - - + + + - - + + @@ -17259,13 +17921,13 @@ - + - + - + @@ -17273,37 +17935,37 @@ - + - + - + - + - + - + - + - + "end of file" error @@ -17315,79 +17977,180 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "[" - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + - - - + - + - - + + + + + - - + + + + @@ -17395,48 +18158,61 @@ - + - + + + + + + + + + + + + + + - + + + + + + + + - - - + - + - - - - "->" - - + - + - - - + - + - + + - + + @@ -17444,94 +18220,88 @@ - + - + + + "," + ">" + + + + + "*" + "->" + + - + + + - + - - - - - - - - - - - - - - - - - - + + - "in" - "," + "->" - - - - - - - - - - - - - - - - - + - + - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + "end of file" error @@ -17543,6 +18313,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -17570,7 +18342,14 @@ "undef" "false" "true" + "and" + "or" + "xor" + "implies" "not" + "+" + "-" + "=" "(" ")" "[" @@ -17582,8 +18361,18 @@ "|" "@" "," + "<" + ">" + "*" + "/" + "%" + "^" ".." "->" + "=>" + "!=" + "<=" + ">=" "{|" "|}" "binary" @@ -17597,106 +18386,54 @@ - - - - - - - - - - - - - - - - - - - + - + - "in" < "and" - "in" < "or" - "in" < "xor" - "in" < "implies" - "in" < "+" - "in" < "-" - "in" < "=" - "in" < "<" - "in" < ">" - "in" < "*" - "in" < "/" - "in" < "%" - "in" < "^" - "in" < "=>" - "in" < "!=" - "in" < "<=" - "in" < ">=" + "and" < "'" + "or" < "'" + "xor" < "'" + "implies" < "'" + "+" < "'" + "-" < "'" + "=" < "'" + "<" < "'" + ">" < "'" + "*" < "'" + "/" < "'" + "%" < "'" + "^" < "'" + "=>" < "'" + "!=" < "'" + "<=" < "'" + ">=" < "'" - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + @@ -17704,240 +18441,261 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + "in" + "," + + + + + + + + + + + + + + + + + + + + + + - + + + - + - + + + + + + + + + + + + + + + + + + + "end of file" + error + "init" + "derived" + "enumeration" + "rule" + "using" + "invariant" + "import" + "structure" + "feature" + "implements" + "function" + "defined" + "seq" + "endseq" + "par" + "endpar" + "skip" + "let" + "local" + "in" + "forall" + "choose" + "iterate" + "do" + "if" + "then" + "else" + "case" + "of" + "default" + "holds" + "exists" + "with" + "while" + "undef" + "false" + "true" + "not" + "(" + ")" + "[" + "]" + "{" + "}" + ":" + "_" + "|" + "@" "," + ".." + "->" + "{|" + "|}" + "binary" + "hexadecimal" + "integer" + "rational" + "decimal" + "string" + "identifier" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + + "in" < "and" + "in" < "or" + "in" < "xor" + "in" < "implies" + "in" < "+" + "in" < "-" + "in" < "=" + "in" < "<" + "in" < ">" + "in" < "*" + "in" < "/" + "in" < "%" + "in" < "^" + "in" < "=>" + "in" < "!=" + "in" < "<=" + "in" < ">=" + - + - + - + - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -17945,156 +18703,109 @@ - + - - - - - - - - - - - - - - - - - - - - ")" - "," - - + - - - - - - - - - - - - - - - - - - - + - + - + - - - ")" - "]" - "," - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -18102,14 +18813,47 @@ - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -18117,52 +18861,82 @@ - + - + + + "," + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + - + - + - - - "::" - "," - "<" - "'" - - - + - - - + - + - + - - + - + @@ -18170,224 +18944,156 @@ - + - + + + + + + + + + + + + + + + + + + + + ")" + "," + + - + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - + - "->" + ")" + "]" + "," - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -18395,24 +19101,8 @@ - + - - - - - - - - - - - - - - - - @@ -18442,11 +19132,8 @@ - - - @@ -18461,8 +19148,11 @@ + + + @@ -18486,69 +19176,85 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -18556,65 +19262,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + "as" "and" @@ -18639,40 +19345,40 @@ ">=" - + - + - + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + "}" "," @@ -18681,53 +19387,53 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + @@ -18735,13 +19441,13 @@ - + - + - + @@ -18749,29 +19455,29 @@ - + - - - - - - - - + + + - - + + + + + + + - - - - + + + + @@ -18780,39 +19486,23 @@ - + - + - + - + - - - - - - - - - - - - - - - - - + @@ -18881,66 +19571,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -18948,43 +19654,43 @@ - + - + - + - + - + - + - + - - + + - - + + @@ -18992,37 +19698,37 @@ - + - + - + - + - - - - - - - + + + + + + + - - + + @@ -19030,41 +19736,30 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -19076,35 +19771,37 @@ - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -19114,13 +19811,6 @@ - - - - - - - @@ -19133,78 +19823,94 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -19212,27 +19918,27 @@ - + - + - + - + - + - + @@ -19240,27 +19946,16 @@ - + - - - - - - - - - - - - - - - - - + + + + + + @@ -19269,38 +19964,40 @@ - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -19310,13 +20007,6 @@ - - - - - - - @@ -19329,78 +20019,94 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -19408,15 +20114,15 @@ - + - - + + - - + + @@ -19424,27 +20130,27 @@ - + - + - + - + - + - + @@ -19452,15 +20158,15 @@ - + - - + + - - + + @@ -19468,53 +20174,70 @@ - + - + - + - + - + - + - + - - - - - - - - + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + @@ -19522,16 +20245,15 @@ - + - - - + + - - + + @@ -19539,15 +20261,62 @@ - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + @@ -19555,62 +20324,96 @@ - + - + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + - - - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -19618,48 +20421,13 @@ - + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + @@ -19667,47 +20435,167 @@ - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -19715,13 +20603,13 @@ - + - + - + @@ -19729,27 +20617,16 @@ - + - - - - - - - - - - - - - - - - - + + + + + + @@ -19757,39 +20634,41 @@ - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -19799,13 +20678,6 @@ - - - - - - - @@ -19818,92 +20690,94 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -19911,52 +20785,27 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -19972,6 +20821,13 @@ + + + + + + + @@ -20000,78 +20856,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -20079,9 +20939,62 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -20089,24 +21002,13 @@ - - - - - - - - - - - - - - - - - - + + + + + + + @@ -20114,24 +21016,6 @@ - - - - - - - - - - - - - - - - - - @@ -20147,13 +21031,6 @@ - - - - - - - @@ -20166,82 +21043,358 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "," + + + + + + + + + + + + + + + + + + + + + + "," + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + @@ -20249,15 +21402,13 @@ - + - - + - - + @@ -20265,165 +21416,40 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + @@ -20431,54 +21457,54 @@ - + - + - - - + - + + + - + - - - - - - - - - - - - - + + + + + + + + + + + - - - + + + + + - + - - - - - - - - - + + + + + + + + + @@ -20486,40 +21512,40 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + + - + - - - - - - - - - + + + + + + + + + @@ -20527,24 +21553,49 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - @@ -20583,7 +21634,6 @@ - @@ -20600,6 +21650,7 @@ + @@ -20614,66 +21665,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -20681,24 +21748,8 @@ - + - - - - - - - - - - - - - - - - @@ -20736,7 +21787,6 @@ - @@ -20753,6 +21803,7 @@ + @@ -20768,66 +21819,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -20835,24 +21902,8 @@ - + - - - - - - - - - - - - - - - - @@ -20889,7 +21940,6 @@ - @@ -20906,6 +21956,7 @@ + @@ -20922,66 +21973,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -20989,24 +22056,8 @@ - + - - - - - - - - - - - - - - - - @@ -21046,7 +22097,6 @@ - @@ -21063,6 +22113,7 @@ + @@ -21076,104 +22127,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + @@ -21182,251 +22140,111 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - "," - ">" - - - - - "*" - "->" - - - - - - - - - - - + - + - + - - - + - + + + - + - - - - - - - - - - - - - - - - - - - - "end of file" - error - "init" - "derived" - "enumeration" - "rule" - "using" - "invariant" - "import" - "structure" - "function" - "defined" - "seq" - "endseq" - "par" - "endpar" - "skip" - "let" - "local" - "in" - "forall" - "choose" - "iterate" - "do" - "if" - "then" - "else" - "case" - "of" - "default" - "holds" - "exists" - "with" - "while" - "undef" - "false" - "true" - "and" - "or" - "xor" - "implies" - "not" - "+" - "-" - "=" - "(" - ")" - "[" - "]" - "{" - "}" - ":" - "_" - "|" - "@" - "," - "<" - ">" - "*" - "/" - "%" - "^" - ".." - "->" - "=>" - "!=" - "<=" - ">=" - "{|" - "|}" - "binary" - "hexadecimal" - "integer" - "rational" - "decimal" - "string" - "identifier" - - + - + - - "and" < "'" - "or" < "'" - "xor" < "'" - "implies" < "'" - "+" < "'" - "-" < "'" - "=" < "'" - "<" < "'" - ">" < "'" - "*" < "'" - "/" < "'" - "%" < "'" - "^" < "'" - "=>" < "'" - "!=" < "'" - "<=" < "'" - ">=" < "'" - + - + - + - + @@ -21434,29 +22252,29 @@ - + - + - + - + - - + + - - + + @@ -21464,24 +22282,8 @@ - + - - - - - - - - - - - - - - - - @@ -21550,67 +22352,83 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -21618,40 +22436,40 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + + - + - - - - - - - - - + + + + + + + + + @@ -21659,40 +22477,40 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + + - + - - - - - - - - - + + + + + + + + + @@ -21700,23 +22518,23 @@ - + - + - + - + - + "end of file" error @@ -21728,93 +22546,96 @@ "invariant" "import" "structure" + "feature" + "implements" "function" - "[" - - - - - - - - - - - - - - - - - - + "[" + "}" + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - + - + - + - - - - - - - - - - + + + + + + + + + + - + - - - + + + @@ -21823,112 +22644,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + - @@ -21939,34 +22748,37 @@ - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -21976,13 +22788,6 @@ - - - - - - - @@ -21995,77 +22800,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -22073,82 +22894,70 @@ - + - - - - - - - - - - - - - - - - - - "->" - - + + + + + + + + + + + - + + + "->" + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - + + + + + - @@ -22158,34 +22967,37 @@ - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -22195,13 +23007,6 @@ - - - - - - - @@ -22214,77 +23019,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -22292,31 +23113,31 @@ - + - - - - - - - - - - - - + + + + + + + + + + + + - + - - - - + + + + @@ -22325,40 +23146,24 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - + + @@ -22427,66 +23232,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -22494,25 +23315,9 @@ - + - - - - - - - - - - - - - - - - - + @@ -22581,66 +23386,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -22648,28 +23469,15 @@ - + - - - - - - - - - - - - - - - - - - + + + + + @@ -22678,37 +23486,41 @@ + + - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -22718,13 +23530,6 @@ - - - - - - - @@ -22737,77 +23542,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -22815,14 +23636,14 @@ - + - - + + - + @@ -22830,26 +23651,15 @@ - + - - - - - - - - - - - - - - - - + + + + + @@ -22861,35 +23671,37 @@ - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -22899,13 +23711,6 @@ - - - - - - - @@ -22918,77 +23723,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -22996,65 +23817,65 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + "end of file" error @@ -23066,6 +23887,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "seq" "endseq" @@ -23106,76 +23929,65 @@ "identifier" - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - ":=" < "+" - ":=" < "-" + ":=" < "+" + ":=" < "-" - + - - - - - - - - - - - - - - - - - + + + + + + @@ -23187,34 +23999,36 @@ - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -23224,13 +24038,6 @@ - - - - - - - @@ -23242,78 +24049,94 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -23321,40 +24144,40 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + + - - - + + + + - + - - - - - - - - - + + + + + + + + + @@ -23362,27 +24185,16 @@ - + - - - - - - - - - - - - - - - - - + + + + + + @@ -23394,34 +24206,36 @@ - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -23431,13 +24245,6 @@ - - - - - - - @@ -23450,172 +24257,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + - + - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - + - + + + - + - + - + - + - + - + - + - + - + - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "end of file" error @@ -23627,6 +24636,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "=" "[" @@ -23636,37 +24647,37 @@ - - + + - + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + "end of file" error @@ -23678,6 +24689,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -23733,70 +24746,70 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - "holds" < "and" - "holds" < "or" - "holds" < "xor" - "holds" < "implies" - "holds" < "+" - "holds" < "-" - "holds" < "=" - "holds" < "<" - "holds" < ">" - "holds" < "*" - "holds" < "/" - "holds" < "%" - "holds" < "^" - "holds" < "=>" - "holds" < "!=" - "holds" < "<=" - "holds" < ">=" + "holds" < "and" + "holds" < "or" + "holds" < "xor" + "holds" < "implies" + "holds" < "+" + "holds" < "-" + "holds" < "=" + "holds" < "<" + "holds" < ">" + "holds" < "*" + "holds" < "/" + "holds" < "%" + "holds" < "^" + "holds" < "=>" + "holds" < "!=" + "holds" < "<=" + "holds" < ">=" - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + "end of file" error @@ -23808,6 +24821,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -23863,70 +24878,70 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - "do" < "and" - "do" < "or" - "do" < "xor" - "do" < "implies" - "do" < "+" - "do" < "-" - "do" < "=" - "do" < "<" - "do" < ">" - "do" < "*" - "do" < "/" - "do" < "%" - "do" < "^" - "do" < "=>" - "do" < "!=" - "do" < "<=" - "do" < ">=" + "do" < "and" + "do" < "or" + "do" < "xor" + "do" < "implies" + "do" < "+" + "do" < "-" + "do" < "=" + "do" < "<" + "do" < ">" + "do" < "*" + "do" < "/" + "do" < "%" + "do" < "^" + "do" < "=>" + "do" < "!=" + "do" < "<=" + "do" < ">=" - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + "end of file" error @@ -23938,6 +24953,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -23993,70 +25010,70 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - "else" < "and" - "else" < "or" - "else" < "xor" - "else" < "implies" - "else" < "+" - "else" < "-" - "else" < "=" - "else" < "<" - "else" < ">" - "else" < "*" - "else" < "/" - "else" < "%" - "else" < "^" - "else" < "=>" - "else" < "!=" - "else" < "<=" - "else" < ">=" - - - - - - - - - - - - - - - - - - - - - + + + + + "else" < "and" + "else" < "or" + "else" < "xor" + "else" < "implies" + "else" < "+" + "else" < "-" + "else" < "=" + "else" < "<" + "else" < ">" + "else" < "*" + "else" < "/" + "else" < "%" + "else" < "^" + "else" < "=>" + "else" < "!=" + "else" < "<=" + "else" < ">=" + + + + + - + + + + + + + + + + + + + + + + + "end of file" error @@ -24068,6 +25085,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "defined" "seq" @@ -24123,236 +25142,98 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - "with" < "and" - "with" < "or" - "with" < "xor" - "with" < "implies" - "with" < "+" - "with" < "-" - "with" < "=" - "with" < "<" - "with" < ">" - "with" < "*" - "with" < "/" - "with" < "%" - "with" < "^" - "with" < "=>" - "with" < "!=" - "with" < "<=" - "with" < ">=" + "with" < "and" + "with" < "or" + "with" < "xor" + "with" < "implies" + "with" < "+" + "with" < "-" + "with" < "=" + "with" < "<" + "with" < ">" + "with" < "*" + "with" < "/" + "with" < "%" + "with" < "^" + "with" < "=>" + "with" < "!=" + "with" < "<=" + "with" < ">=" - - - - - "," - - - - - - - - - - - - - - - - - - - - - - "," - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + "}" "," @@ -24361,39 +25242,39 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - + - + @@ -24401,13 +25282,13 @@ - + - + - + @@ -24415,41 +25296,41 @@ - + - + - + - + - + - + - + - + - + @@ -24457,77 +25338,77 @@ - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -24535,47 +25416,47 @@ - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -24583,9 +25464,9 @@ - + - + "end of file" error @@ -24597,6 +25478,8 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "seq" "endseq" @@ -24638,47 +25521,31 @@ "identifier" - + - + - + - "then" < "else" + "then" < "else" - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + @@ -24747,71 +25614,87 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -24819,41 +25702,41 @@ - + - + - + - + - + - + - + - + - + @@ -24861,27 +25744,27 @@ - + - + - + - + - + - + @@ -24889,130 +25772,211 @@ - + - + + + + + + + + + + + + + + + + + + + "->" + + + + + + - + + + + + + + + + + + + + + - + + + - + - + + + + + - + + + + + + + + + + + - "end of file" - error - "init" - "derived" - "enumeration" - "rule" - "using" - "invariant" - "import" - "structure" - "function" - "[" - "}" + "->" + + + + - - + + + + + + + + + + + + + + - + - + - + + + + + + + + + + + + + - + + + + + + + + - - - + - + - + - + - + - + - + + + - - - + - + - + + + + + "end of file" + error + "init" + "derived" + "enumeration" + "rule" + "using" + "invariant" + "import" + "structure" + "feature" + "implements" + "function" + "[" + "}" + + - + + - + + + - + - - - - - - - - - - - - - - - - - + @@ -25081,66 +26045,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -25148,25 +26128,9 @@ - + - - - - - - - - - - - - - - - - - + @@ -25235,66 +26199,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -25302,40 +26282,40 @@ - + - - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + + - + - - - - - - - - - + + + + + + + + + @@ -25343,30 +26323,18 @@ - + - - - - - - - - - - - - - - - - + + + + + - @@ -25375,34 +26343,37 @@ - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -25412,13 +26383,6 @@ - - - - - - - @@ -25431,77 +26395,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -25509,25 +26489,9 @@ - + - - - - - - - - - - - - - - - - - + @@ -25596,66 +26560,82 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -25663,66 +26643,57 @@ - + - - - - - - - - - - - - - - - - + + + + + - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -25732,13 +26703,6 @@ - - - - - - - @@ -25751,77 +26715,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -25829,27 +26809,15 @@ - + - - - - - - - - - - - - - - - - - + + + + + @@ -25859,36 +26827,39 @@ + - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -25898,13 +26869,6 @@ - - - - - - - @@ -25917,77 +26881,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -25995,13 +26975,13 @@ - + - + - + @@ -26009,13 +26989,13 @@ - + - + - + @@ -26023,13 +27003,13 @@ - + - + - + @@ -26037,29 +27017,13 @@ - + - - - - - - - - - - - - - - - - - - - - - + + + + + @@ -26128,70 +27092,86 @@ - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -26199,61 +27179,61 @@ - + - + - + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -26261,27 +27241,16 @@ - + - - - - - - - - - - - - - - - - - + + + + + + @@ -26293,34 +27262,36 @@ - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -26330,13 +27301,6 @@ - - - - - - - @@ -26349,77 +27313,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -26427,27 +27407,16 @@ - + - - - - - - - - - - - - - - - - - + + + + + + @@ -26459,34 +27428,36 @@ - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -26496,13 +27467,6 @@ - - - - - - - @@ -26515,77 +27479,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -26593,24 +27573,50 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - @@ -26679,67 +27685,83 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -26747,13 +27769,13 @@ - + - + - + @@ -26761,37 +27783,23 @@ - - - - - - - - - - - - - - - + - + - + - + - + "end of file" error @@ -26803,59 +27811,62 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "[" + "}" - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - + "end of file" error @@ -26867,136 +27878,139 @@ "invariant" "import" "structure" + "feature" + "implements" "function" "[" + "}" - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - - + + "in" "=" "," - + - - + + - + - + - + - + - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -27004,69 +28018,57 @@ - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - + + + + + @@ -27078,34 +28080,37 @@ - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -27115,13 +28120,6 @@ - - - - - - - @@ -27134,77 +28132,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -27212,27 +28226,15 @@ - + - - - - - - - - - - - - - - - - - + + + + + @@ -27244,34 +28246,37 @@ - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -27281,13 +28286,6 @@ - - - - - - - @@ -27300,77 +28298,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -27378,55 +28392,43 @@ - + - + - + - + - + - + - + - - - - - - - - - - - - - - - - - + + + + + @@ -27438,34 +28440,37 @@ - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -27475,13 +28480,6 @@ - - - - - - - @@ -27494,77 +28492,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -27572,7 +28586,21 @@ - + + + + + + + + + + + + + + + @@ -27586,61 +28614,129 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -27648,24 +28744,8 @@ - + - - - - - - - - - - - - - - - - @@ -27734,74 +28814,90 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -27809,55 +28905,43 @@ - + - - + + "in" "," - + - - + + - + - + - - - - - - - - - - - - - - - - + + + + + - @@ -27865,34 +28949,37 @@ - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + @@ -27902,13 +28989,6 @@ - - - - - - - @@ -27921,77 +29001,93 @@ - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -27999,71 +29095,99 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + @@ -28071,43 +29195,43 @@ - + - + - + - + - + - + - + - + - + diff --git a/src/various/GrammarToken.h b/src/various/GrammarToken.h index 75d6b0a9..c375eec3 100644 --- a/src/various/GrammarToken.h +++ b/src/various/GrammarToken.h @@ -66,71 +66,74 @@ namespace libcasm_fe /* 8 */ IMPORT, /* 9 */ STRUCTURE, /* 10 */ FEATURE, - /* 11 */ FUNCTION, - /* 12 */ DEFINED, - /* 13 */ SEQ, - /* 14 */ ENDSEQ, - /* 15 */ PAR, - /* 16 */ ENDPAR, - /* 17 */ SKIP, - /* 18 */ LET, - /* 19 */ LOCAL, - /* 20 */ IN, - /* 21 */ FORALL, - /* 22 */ CHOOSE, - /* 23 */ ITERATE, - /* 24 */ DO, - /* 25 */ IF, - /* 26 */ THEN, - /* 27 */ ELSE, - /* 28 */ CASE, - /* 29 */ OF, - /* 30 */ DEFAULT, - /* 31 */ HOLDS, - /* 32 */ EXISTS, - /* 33 */ WITH, - /* 34 */ AS, - /* 35 */ WHILE, - /* 36 */ UNDEF, - /* 37 */ FALSE, - /* 38 */ TRUE, - /* 39 */ AND, - /* 40 */ OR, - /* 41 */ XOR, - /* 42 */ IMPLIES, - /* 43 */ NOT, - /* 44 */ PLUS, - /* 45 */ MINUS, - /* 46 */ EQUAL, - /* 47 */ LPAREN, - /* 48 */ RPAREN, - /* 49 */ LSQPAREN, - /* 50 */ RSQPAREN, - /* 51 */ LCURPAREN, - /* 52 */ RCURPAREN, - /* 53 */ COLON, - /* 54 */ DOUBLECOLON, - /* 55 */ UNDERLINE, - /* 56 */ VERTICAL_BAR, - /* 57 */ AT, - /* 58 */ COMMA, - /* 59 */ LESSER, - /* 60 */ GREATER, - /* 61 */ ASTERIX, - /* 62 */ SLASH, - /* 63 */ PERCENT, - /* 64 */ CARET, - /* 65 */ MARK, - /* 66 */ DOTDOT, - /* 67 */ DOT, - /* 68 */ MAPS, - /* 69 */ ARROW, - /* 70 */ UPDATE, - /* 71 */ NEQUAL, - /* 72 */ LESSEQ, - /* 73 */ GREATEREQ, - /* 74 */ SEQ_BRACKET, - /* 75 */ ENDSEQ_BRACKET, + /* 11 */ IMPLEMENTS, + /* 12 */ FOR, + /* 13 */ THIS, + /* 14 */ FUNCTION, + /* 15 */ DEFINED, + /* 16 */ SEQ, + /* 17 */ ENDSEQ, + /* 18 */ PAR, + /* 19 */ ENDPAR, + /* 20 */ SKIP, + /* 21 */ LET, + /* 22 */ LOCAL, + /* 23 */ IN, + /* 24 */ FORALL, + /* 25 */ CHOOSE, + /* 26 */ ITERATE, + /* 27 */ DO, + /* 28 */ IF, + /* 29 */ THEN, + /* 30 */ ELSE, + /* 31 */ CASE, + /* 32 */ OF, + /* 33 */ DEFAULT, + /* 34 */ HOLDS, + /* 35 */ EXISTS, + /* 36 */ WITH, + /* 37 */ AS, + /* 38 */ WHILE, + /* 39 */ UNDEF, + /* 40 */ FALSE, + /* 41 */ TRUE, + /* 42 */ AND, + /* 43 */ OR, + /* 44 */ XOR, + /* 45 */ IMPLIES, + /* 46 */ NOT, + /* 47 */ PLUS, + /* 48 */ MINUS, + /* 49 */ EQUAL, + /* 50 */ LPAREN, + /* 51 */ RPAREN, + /* 52 */ LSQPAREN, + /* 53 */ RSQPAREN, + /* 54 */ LCURPAREN, + /* 55 */ RCURPAREN, + /* 56 */ COLON, + /* 57 */ DOUBLECOLON, + /* 58 */ UNDERLINE, + /* 59 */ VERTICAL_BAR, + /* 60 */ AT, + /* 61 */ COMMA, + /* 62 */ LESSER, + /* 63 */ GREATER, + /* 64 */ ASTERIX, + /* 65 */ SLASH, + /* 66 */ PERCENT, + /* 67 */ CARET, + /* 68 */ MARK, + /* 69 */ DOTDOT, + /* 70 */ DOT, + /* 71 */ MAPS, + /* 72 */ ARROW, + /* 73 */ UPDATE, + /* 74 */ NEQUAL, + /* 75 */ LESSEQ, + /* 76 */ GREATEREQ, + /* 77 */ SEQ_BRACKET, + /* 78 */ ENDSEQ_BRACKET, }; static std::string tokenAsString( const Token token ) @@ -181,263 +184,275 @@ namespace libcasm_fe { return "feature"; } - case /* 11 */ Token::FUNCTION: + case /* 11 */ Token::IMPLEMENTS: + { + return "implements"; + } + case /* 12 */ Token::FOR: + { + return "for"; + } + case /* 13 */ Token::THIS: + { + return "this"; + } + case /* 14 */ Token::FUNCTION: { return "function"; } - case /* 12 */ Token::DEFINED: + case /* 15 */ Token::DEFINED: { return "defined"; } - case /* 13 */ Token::SEQ: + case /* 16 */ Token::SEQ: { return "seq"; } - case /* 14 */ Token::ENDSEQ: + case /* 17 */ Token::ENDSEQ: { return "endseq"; } - case /* 15 */ Token::PAR: + case /* 18 */ Token::PAR: { return "par"; } - case /* 16 */ Token::ENDPAR: + case /* 19 */ Token::ENDPAR: { return "endpar"; } - case /* 17 */ Token::SKIP: + case /* 20 */ Token::SKIP: { return "skip"; } - case /* 18 */ Token::LET: + case /* 21 */ Token::LET: { return "let"; } - case /* 19 */ Token::LOCAL: + case /* 22 */ Token::LOCAL: { return "local"; } - case /* 20 */ Token::IN: + case /* 23 */ Token::IN: { return "in"; } - case /* 21 */ Token::FORALL: + case /* 24 */ Token::FORALL: { return "forall"; } - case /* 22 */ Token::CHOOSE: + case /* 25 */ Token::CHOOSE: { return "choose"; } - case /* 23 */ Token::ITERATE: + case /* 26 */ Token::ITERATE: { return "iterate"; } - case /* 24 */ Token::DO: + case /* 27 */ Token::DO: { return "do"; } - case /* 25 */ Token::IF: + case /* 28 */ Token::IF: { return "if"; } - case /* 26 */ Token::THEN: + case /* 29 */ Token::THEN: { return "then"; } - case /* 27 */ Token::ELSE: + case /* 30 */ Token::ELSE: { return "else"; } - case /* 28 */ Token::CASE: + case /* 31 */ Token::CASE: { return "case"; } - case /* 29 */ Token::OF: + case /* 32 */ Token::OF: { return "of"; } - case /* 30 */ Token::DEFAULT: + case /* 33 */ Token::DEFAULT: { return "default"; } - case /* 31 */ Token::HOLDS: + case /* 34 */ Token::HOLDS: { return "holds"; } - case /* 32 */ Token::EXISTS: + case /* 35 */ Token::EXISTS: { return "exists"; } - case /* 33 */ Token::WITH: + case /* 36 */ Token::WITH: { return "with"; } - case /* 34 */ Token::AS: + case /* 37 */ Token::AS: { return "as"; } - case /* 35 */ Token::WHILE: + case /* 38 */ Token::WHILE: { return "while"; } - case /* 36 */ Token::UNDEF: + case /* 39 */ Token::UNDEF: { return "undef"; } - case /* 37 */ Token::FALSE: + case /* 40 */ Token::FALSE: { return "false"; } - case /* 38 */ Token::TRUE: + case /* 41 */ Token::TRUE: { return "true"; } - case /* 39 */ Token::AND: + case /* 42 */ Token::AND: { return "and"; } - case /* 40 */ Token::OR: + case /* 43 */ Token::OR: { return "or"; } - case /* 41 */ Token::XOR: + case /* 44 */ Token::XOR: { return "xor"; } - case /* 42 */ Token::IMPLIES: + case /* 45 */ Token::IMPLIES: { return "implies"; } - case /* 43 */ Token::NOT: + case /* 46 */ Token::NOT: { return "not"; } - case /* 44 */ Token::PLUS: + case /* 47 */ Token::PLUS: { return "+"; } - case /* 45 */ Token::MINUS: + case /* 48 */ Token::MINUS: { return "-"; } - case /* 46 */ Token::EQUAL: + case /* 49 */ Token::EQUAL: { return "="; } - case /* 47 */ Token::LPAREN: + case /* 50 */ Token::LPAREN: { return "("; } - case /* 48 */ Token::RPAREN: + case /* 51 */ Token::RPAREN: { return ")"; } - case /* 49 */ Token::LSQPAREN: + case /* 52 */ Token::LSQPAREN: { return "["; } - case /* 50 */ Token::RSQPAREN: + case /* 53 */ Token::RSQPAREN: { return "]"; } - case /* 51 */ Token::LCURPAREN: + case /* 54 */ Token::LCURPAREN: { return "{"; } - case /* 52 */ Token::RCURPAREN: + case /* 55 */ Token::RCURPAREN: { return "}"; } - case /* 53 */ Token::COLON: + case /* 56 */ Token::COLON: { return ":"; } - case /* 54 */ Token::DOUBLECOLON: + case /* 57 */ Token::DOUBLECOLON: { return "::"; } - case /* 55 */ Token::UNDERLINE: + case /* 58 */ Token::UNDERLINE: { return "_"; } - case /* 56 */ Token::VERTICAL_BAR: + case /* 59 */ Token::VERTICAL_BAR: { return "|"; } - case /* 57 */ Token::AT: + case /* 60 */ Token::AT: { return "@"; } - case /* 58 */ Token::COMMA: + case /* 61 */ Token::COMMA: { return ","; } - case /* 59 */ Token::LESSER: + case /* 62 */ Token::LESSER: { return "<"; } - case /* 60 */ Token::GREATER: + case /* 63 */ Token::GREATER: { return ">"; } - case /* 61 */ Token::ASTERIX: + case /* 64 */ Token::ASTERIX: { return "*"; } - case /* 62 */ Token::SLASH: + case /* 65 */ Token::SLASH: { return "/"; } - case /* 63 */ Token::PERCENT: + case /* 66 */ Token::PERCENT: { return "%"; } - case /* 64 */ Token::CARET: + case /* 67 */ Token::CARET: { return "^"; } - case /* 65 */ Token::MARK: + case /* 68 */ Token::MARK: { return "'"; } - case /* 66 */ Token::DOTDOT: + case /* 69 */ Token::DOTDOT: { return ".."; } - case /* 67 */ Token::DOT: + case /* 70 */ Token::DOT: { return "."; } - case /* 68 */ Token::MAPS: + case /* 71 */ Token::MAPS: { return "->"; } - case /* 69 */ Token::ARROW: + case /* 72 */ Token::ARROW: { return "=>"; } - case /* 70 */ Token::UPDATE: + case /* 73 */ Token::UPDATE: { return ":="; } - case /* 71 */ Token::NEQUAL: + case /* 74 */ Token::NEQUAL: { return "!="; } - case /* 72 */ Token::LESSEQ: + case /* 75 */ Token::LESSEQ: { return "<="; } - case /* 73 */ Token::GREATEREQ: + case /* 76 */ Token::GREATEREQ: { return ">="; } - case /* 74 */ Token::SEQ_BRACKET: + case /* 77 */ Token::SEQ_BRACKET: { return "{|"; } - case /* 75 */ Token::ENDSEQ_BRACKET: + case /* 78 */ Token::ENDSEQ_BRACKET: { return "|}"; }