
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: dsl/simulation/abs/hats/rascal/extracted
SqlAttrDefList, ABSGoal, Guard, ModuleNameDecl, DataConstructorList, Literal, AnnotationList, DeclList, BlockWithoutAnnotations, FeatureList, Featvar, ExportList, MlitExp, DatatypeparamListDecl, ParamDecls, SqlOrderingAttributes, StmtList, FieldDecl, EqualityExp, VarOrFieldRef, Appcond, FeatureDecl, MfactorExp, ImplementInterfacesRemove, CaseExp, MultExp, Name, SqlAggregateFunction, IDENTIFIER, ParamDecl, Mexp, AfterCondition, Fextension, SqlAttrDef, FunctionDecl, ModuleModifierList, DatatypeDecl, TYPE_IDENTIFIER, Product, Decl, Feature, SimpleTypeName, PureExpPrefix, DeltaId, CaseBranchList, ExpFunctionDef, AsyncCall, ConstructorArgList, SqlOrderingAttributeList, InfModifierFragmentList, AndExp, WhenCondition, MethodsigList, SqlAttrAssignment, OoModifier, MimplExp, SqlTupleCaseBranches, TypesynDecl, IfnameList, FnodeList, ImportList, ProductList, LocationExp, SqlAttrRefList, DeltaParamDecl, ConstructorArg, FunctionalModifier, EffExp, FnappListExp, LetExp, ClassDecl, DeltaDeclList, PatternList, SqlTupleScalarFunctionSum, InfModifierFragment, DeltaParamDecls, MainBlock, DeltaparamList, CompoundStmt, Methodsig, SqlTupleConstantList, NewlocExp, DeltaclauseList, PureExpNoIf, DatatypeuseList, OptfeatureList, ListLiteralExp, MaddExp, DeltaList, ConstructorPattern, FactorAppcond, SqlStringLiteral, VarDecl, Group, ModifierFragment, QualifiedInterfaceDecl, DeltaDecl, TypeExp, Block, SqlRelationRef, AnyName, AttrAssignments, FromCondition, AdaptationList, SqlTupleConstant, NewExp, WhileStmt, ModuleModifier, QualifiedTypeName, SqlExp, CorefeatureList, Delta, ImplementInterfacesAdd, MeqExp, ModifierFragmentList, IfExp, SqlAttrAssignmentList, AttributeConstraintList, AnyNameList, ExtendsInterfaces, SqlAtomicRelationRef, AttrAssignment, IncompleteExp, ImplementInterfaces, IfThenElseStmt, SyncCall, CompilationUnit, Import, HasCondition, SqlTupleScalarFunctionQuotient, Export, SqlAndCondition, DataConstructor, SqlTupleScalarFunctionProduct, SqlAttrsDef, AddExp, DeltaAccessList, PureExp, ConstructorExp, INTLITERAL, IntLiteral, MmultExp, OriginalCall, SqlOrCondition, Stmt, Deltaparam, ParamDeclList, SqlTupleScalarFunctionConcat, DataExp, Exp, TypeName, SqlTupleCaseFunction, Datatypeuse, FatherExp, Method, AndAppcond, IntList, SqlCondition, SqlGroupingAttributes, Datatypeparam, PatternParams, ModuleDeclList, CaseBranch, Deltaparams, DeltaAccess, OrExp, SqlOrderingAttribute, QualifiedClassDecl, DeltaClause, QualifiedName, FnappExp, OptSqlCondition, LAYOUT, ModuleName, Adaptation, DataExpList, StringLiteral, SqlTupleScalarFunction, MethodList, Featuremodeldecl, InitBlock, DatatypeparamList, StmtWithoutAnnotations, BoundaryInt, OrAppcond, Annotation, SqlTupleCaseBranch, Ifname, Fnode, AtomicSqlTupleScalarFunction, RelationalExp, ModuleDecl, SqlAttrRef, MandExp, Deltaspec, MrelExp, DeltaParamDeclList, Cog, FieldDeclList, ProductLine, InterfaceDecl, Cardinality, Factor, DataConstructorParams, SqlComparisonRelation, Pattern, AttrAssignmentList, SimpleName), 0 root (—), 2 top (ABSGoal, LAYOUT), 134 bottom (CRITICAL, CORE, GROUP 2, PRIME, HASINTERFACE, COLON 6, NOTEQ 3, Comment, SKIP, EXTENSION, UNTIL 4, QMARK, THIS 6, STRINGLITERAL, LPAREN 43, USCORE, ONEOF, THEN 2, IF 3, Component 3, SUSPEND, DISTINCT, LBRACKET 7, RIGHT, AFTER, FATHER, SELECT 2, COREFEATURES, COG, HASMETHOD, TO, LET, END, WHEN 2, TYPE, DOTORIGINAL 2, EXCLUDE, PLUS 3, INSERT, GTEQ 3, ELSE 3, INTERFACE 3, EXTENDS, DELTA 2, MODIFIES 5, RPAREN 43, ALLOF, EQEQ 2, BANG 4, CLASS 4, RARROW, AND, Attributes, IMPLIES, BY 3, TYPE_IDENTIFIER_OLD, RBRACKET 7, GET, Constraints, AWAIT, EQUIV, COMMA 23, CONCAT, EXPORT 4, DURATION 2, LTEQ 3, OPT, BAR 3, NOT, GUARDAND, ADDS 9, AS, DESC, ORIGINAL, DIV 4, WHILE, ASC, IFOUT, SEMICOLON 44, MULT 11, RETURN, MINUS 10, OPTFEATURES, IMPLEMENTS, CASE 2, REBIND 2, SQLSTRINGLITERAL, ASSIGN 15, COUNT, PRODUCT 2, REMOVES 5, ORDER, SQL, TRUE, GT 6, USES, MODULE, EQ 2, DATA 2, FROM 7, JOIN 3, IS, DOT 10, UPDATE, LT 6, LBRACE 15, NULL 2, WHERE, LEFT, ASSERT, OROR 3, MOVECOGTO, DEF 4, IMPORT 3, NEGATION 3, REQUIRE, IN 4, FALSE, OR, PRODUCTLINE, BUILTIN 2, IFIN, MOD 2, VALUES, ROOT, SET, RBRACE 15, PORT 2, ANDAND 3, LOC 2, HASFIELD, INTO, NEW 3, SUBLOC).[a] 24, [l] 72, [cu], [e] 32, [r] 10, [min] 2, [max] 2, [g1], [g2], [n] 15, [i] 51, [s] 8, [t] 27, [f] 36, [id] 32, [an] 5, [e1] 31, [e2] 28, [callee] 8, [b] 12, [method] 7, [d] 5, [g] 4, [acl] 11, [caseterm], [branches], [fun], [al] 15, [fn] 4, [p] 17, [ef] 3, [m] 14, [attrs] 2, [delta] 2, [params] 12, [ac] 5, [fragments] 2, [ifacedecl], [ifadd], [ifremove], [classdecl], [lhs] 2, [rhs] 2, [param] 2, [c] 17, [u] 2, [typesyndecl] 2, [datatypedecl] 2, [functiondecl], [var], [val], [exp] 3, [annotations] 3, [fields] 2, [initBlock] 2, [methods] 2, [f1] 9, [f2] 9, [ms] 6, [returntype], [dc], [co] 2, [fs], [uses], [modifiers], [r1] 3, [r2] 3, [ad] 2, [s1] 3, [qn] 2, [v] 2, [o] 3, [b1] 2, [b2] 2, [il] 4, [s2], [pl], [fm], [c1] 2, [op] 2, [c2] 2, [fid], [aid], [ac1] 2, [ac2] 2, [w], [product], [update], [ext], [field] 2, [obj], [vd], [sub], [father], [type], [el], [dl], [i1], [i2].SqlAttrDefList ::= [a]::SqlAttrDef
SqlAttrDefList ::= [l]::SqlAttrDefList COMMA [a]::SqlAttrDef
ABSGoal ::= [cu]::CompilationUnit
Guard ::= [e]::DataExp
Guard ::= [r]::VarOrFieldRef QMARK
Guard ::= BAR [e]::Exp BAR
Guard ::= DURATION LPAREN [min]::DataExp COMMA [max]::DataExp RPAREN
Guard ::= [g1]::Guard GUARDAND [g2]::Guard
ModuleNameDecl ::= MODULE [n]::ModuleName SEMICOLON
DataConstructorList ::= [i]::DataConstructor
DataConstructorList ::= [l]::DataConstructorList BAR [i]::DataConstructor
Literal ::= [i]::IntLiteral
Literal ::= [s]::StringLiteral
AnnotationList ::= [l]::AnnotationList [a]::Annotation
AnnotationList ::= [a]::Annotation
DeclList ::= [l]::DeclList [t]::Decl
DeclList ::= [t]::Decl
BlockWithoutAnnotations ::=
LBRACE [s]::StmtList RBRACEFeatureList ::= [f]::Feature
FeatureList ::= [l]::FeatureList COMMA [f]::Feature
Featvar ::= [f]::TYPE_IDENTIFIER
ExportList ::= [t]::Export
ExportList ::= [l]::ExportList [t]::Export
MlitExp ::= [i]::INTLITERAL
MlitExp ::= [id]::IDENTIFIER
MlitExp ::= [f]::TYPE_IDENTIFIER DOT [a]::IDENTIFIER
MlitExp ::= [id]::TYPE_IDENTIFIER
DatatypeparamListDecl ::= LT [l]::DatatypeparamList GT
ParamDecls ::=
LPAREN [f]::ParamDeclList RPARENSqlOrderingAttributes ::= ε
SqlOrderingAttributes ::= ORDER BY [l]::SqlOrderingAttributeList
StmtList ::= [l]::StmtList [i]::Stmt
StmtList ::= [i]::Stmt
FieldDecl ::=
[an]::AnnotationList PORT [t]::TypeExp [i]::IDENTIFIERFieldDecl ::=
[an]::AnnotationList [t]::TypeExp [i]::IDENTIFIERFieldDecl ::=
[an]::AnnotationList PORT [t]::TypeExp [i]::IDENTIFIER ASSIGN [e]::DataExpFieldDecl ::=
[an]::AnnotationList [t]::TypeExp [i]::IDENTIFIER ASSIGN [e]::DataExpEqualityExp ::= [e1]::EqualityExp EQEQ [e2]::RelationalExp
EqualityExp ::= RelationalExp
EqualityExp ::= [e1]::EqualityExp NOTEQ [e2]::RelationalExp
VarOrFieldRef ::=
[callee]::THIS [b]::BANG [method]::IDENTIFIERVarOrFieldRef ::= [n]::IDENTIFIER
VarOrFieldRef ::= [callee]::THIS [d]::DOT
VarOrFieldRef ::= THIS DOT [id]::IDENTIFIER
Appcond ::= OrAppcond
FeatureDecl ::= [f]::TYPE_IDENTIFIER
FeatureDecl ::=
[f]::TYPE_IDENTIFIER LBRACE [g]::Group [acl]::AttributeConstraintList RBRACEMfactorExp ::= MINUS [e]::MfactorExp
MfactorExp ::= MlitExp
MfactorExp ::= NEGATION [e]::MfactorExp
MfactorExp ::= LPAREN [e]::Mexp RPAREN
ImplementInterfacesRemove ::= REMOVES [i]::IfnameList
CaseExp ::=
CASE [caseterm]::DataExp LBRACE [branches]::CaseBranchList RBRACEMultExp ::= [e1]::MultExp MULT [e2]::Factor
MultExp ::= [e1]::MultExp MOD [e2]::Factor
MultExp ::= [f]::Factor
MultExp ::= [e1]::MultExp DIV [e2]::Factor
Name ::= SimpleName
Name ::= QualifiedName
SqlAggregateFunction ::= COUNT LPAREN MULT RPAREN
SqlAggregateFunction ::= [f]::SqlTupleScalarFunction
SqlAggregateFunction ::= [i]::IDENTIFIER LPAREN [f]::SqlTupleScalarFunction RPAREN
IDENTIFIER ::= ε
ParamDecl ::=
[an]::AnnotationList [t]::TypeExp [i]::IDENTIFIERMexp ::= [e1]::Mexp OROR [e2]::MandExp
Mexp ::= MandExp
AfterCondition ::= AFTER [l]::DeltaList
Fextension ::=
[f]::TYPE_IDENTIFIER LBRACE [g]::Group [acl]::AttributeConstraintList RBRACESqlAttrDef ::= [fun]::SqlAggregateFunction AS [e]::DataExp
SqlAttrDef ::= [f]::Factor
FunctionDecl ::= [al]::AnnotationList DEF [t]::Datatypeuse [fn]::IDENTIFIER [p]::DatatypeparamListDecl LPAREN [l]::ParamDeclList RPAREN ASSIGN [ef]::ExpFunctionDef SEMICOLON
FunctionDecl ::= [al]::AnnotationList DEF [t]::Datatypeuse [fn]::IDENTIFIER LPAREN [l]::ParamDeclList RPAREN ASSIGN [ef]::ExpFunctionDef SEMICOLON
FunctionDecl ::= [al]::AnnotationList DEF [t]::Datatypeuse [fn]::IDENTIFIER LPAREN [l]::ParamDeclList RPAREN ASSIGN BUILTIN SEMICOLON
FunctionDecl ::= [al]::AnnotationList DEF [t]::Datatypeuse [fn]::IDENTIFIER [p]::DatatypeparamListDecl LPAREN [l]::ParamDeclList RPAREN ASSIGN BUILTIN SEMICOLON
ModuleModifierList ::= [l]::ModuleModifierList [m]::ModuleModifier
ModuleModifierList ::= [m]::ModuleModifier
DatatypeDecl ::= [al]::AnnotationList DATA [id]::TYPE_IDENTIFIER [p]::DatatypeparamListDecl SEMICOLON
DatatypeDecl ::= [al]::AnnotationList DATA [id]::TYPE_IDENTIFIER [p]::DatatypeparamListDecl ASSIGN [l]::DataConstructorList SEMICOLON
TYPE_IDENTIFIER ::= TYPE_IDENTIFIER_OLD
Product ::=
PRODUCT [id]::TYPE_IDENTIFIER LPAREN [l]::FeatureList RPAREN SEMICOLONProduct ::=
PRODUCT [id]::TYPE_IDENTIFIER LPAREN [l]::FeatureList RPAREN LBRACE [al]::AdaptationList RBRACEDecl ::= DatatypeDecl
Decl ::= FunctionDecl
Decl ::= TypesynDecl
Decl ::= ClassDecl
Decl ::= InterfaceDecl
Feature ::=
[id]::TYPE_IDENTIFIER PRIME [attrs]::AttrAssignmentsFeature ::=
[id]::TYPE_IDENTIFIER [attrs]::AttrAssignmentsSimpleTypeName ::= [id]::TYPE_IDENTIFIER
PureExpPrefix ::= LPAREN [e]::IfExp RPAREN
PureExpPrefix ::= PureExpNoIf
DeltaId ::= [delta]::TYPE_IDENTIFIER
CaseBranchList ::= [l]::CaseBranchList [b]::CaseBranch
CaseBranchList ::= [b]::CaseBranch
ExpFunctionDef ::= [ef]::DataExp
AsyncCall ::=
[callee]::PureExpPrefix BANG [method]::IDENTIFIER LPAREN [params]::DataExpList RPARENAsyncCall ::=
[callee]::THIS BANG [method]::IDENTIFIER LPAREN [params]::DataExpList RPARENConstructorArgList ::= [l]::ConstructorArgList COMMA [a]::ConstructorArg
ConstructorArgList ::= [a]::ConstructorArg
SqlOrderingAttributeList ::= [l]::SqlOrderingAttributeList COMMA [a]::SqlOrderingAttribute
SqlOrderingAttributeList ::= [a]::SqlOrderingAttribute
InfModifierFragmentList ::= [l]::InfModifierFragmentList [f]::InfModifierFragment
InfModifierFragmentList ::= [f]::InfModifierFragment
AndExp ::= [e1]::AndExp ANDAND [e2]::EqualityExp
AndExp ::= EqualityExp
WhenCondition ::= TO [ac]::Appcond
WhenCondition ::= WHEN [ac]::Appcond
MethodsigList ::= [m]::Methodsig SEMICOLON
MethodsigList ::= [l]::MethodsigList [m]::Methodsig SEMICOLON
SqlAttrAssignment ::= [e]::DataExp EQ [f]::SqlTupleScalarFunction
OoModifier ::= REMOVES CLASS [id]::TypeName SEMICOLON
OoModifier ::=
MODIFIES INTERFACE [id]::TypeName LBRACE [fragments]::InfModifierFragmentList RBRACEOoModifier ::= ADDS [ifacedecl]::QualifiedInterfaceDecl
OoModifier ::= MODIFIES CLASS [id]::TypeName [ifadd]::ImplementInterfacesAdd [ifremove]::ImplementInterfacesRemove LBRACE [fragments]::ModifierFragmentList RBRACE
OoModifier ::= ADDS [classdecl]::QualifiedClassDecl
MimplExp ::= MeqExp
MimplExp ::= [e1]::MimplExp IMPLIES [e2]::MeqExp
MimplExp ::= [e1]::MimplExp EQUIV [e2]::MeqExp
SqlTupleCaseBranches ::= [l]::SqlTupleCaseBranches [b]::SqlTupleCaseBranch
SqlTupleCaseBranches ::= [b]::SqlTupleCaseBranch
TypesynDecl ::=
[al]::AnnotationList TYPE [lhs]::TYPE_IDENTIFIER ASSIGN [rhs]::Datatypeuse SEMICOLONIfnameList ::= [l]::IfnameList COMMA [i]::Ifname
IfnameList ::= [i]::Ifname
FnodeList ::= ε
FnodeList ::= [l]::FnodeList COMMA [f]::Fnode
FnodeList ::= [f]::Fnode
ImportList ::= [t]::Import
ImportList ::= [l]::ImportList [t]::Import
ProductList ::= [p]::Product
ProductList ::= [l]::ProductList [p]::Product
LocationExp ::= LOC LPAREN [param]::PureExp RPAREN
SqlAttrRefList ::= [l]::SqlAttrRefList COMMA [a]::SqlAttrRef
SqlAttrRefList ::= [a]::SqlAttrRef
DeltaParamDecl ::= [p]::ParamDecl
DeltaParamDecl ::= [id]::TYPE_IDENTIFIER [c]::HasCondition
ConstructorArg ::= [u]::Datatypeuse
ConstructorArg ::= [u]::Datatypeuse [id]::IDENTIFIER
FunctionalModifier ::= ADDS [typesyndecl]::TypesynDecl
FunctionalModifier ::= MODIFIES [typesyndecl]::TypesynDecl
FunctionalModifier ::= ADDS [datatypedecl]::DatatypeDecl
FunctionalModifier ::= ADDS [functiondecl]::FunctionDecl
FunctionalModifier ::= MODIFIES [datatypedecl]::DatatypeDecl
EffExp ::= AsyncCall
EffExp ::= NewlocExp "/" Component "/"
EffExp ::= NewExp
EffExp ::= IncompleteExp
EffExp ::= SyncCall
EffExp ::= SQL LPAREN [e]::SqlExp RPAREN
EffExp ::= OriginalCall
EffExp ::= [p]::PureExpPrefix DOT GET
FnappListExp ::= [f]::Name [l]::ListLiteralExp
LetExp ::= LET LPAREN [var]::ParamDecl RPAREN ASSIGN [val]::DataExp IN [exp]::DataExp
ClassDecl ::= [annotations]::AnnotationList CLASS [id]::TYPE_IDENTIFIER [params]::ParamDecls [i]::ImplementInterfaces LBRACE [fields]::FieldDeclList [initBlock]::InitBlock [methods]::MethodList RBRACE
DeltaDeclList ::= [t]::DeltaDecl
DeltaDeclList ::= [l]::DeltaDeclList [t]::DeltaDecl
PatternList ::= [l]::PatternList COMMA [i]::Pattern
PatternList ::= [i]::Pattern
SqlTupleScalarFunctionSum ::= [f1]::SqlTupleScalarFunctionSum MINUS [f2]::SqlTupleScalarFunctionProduct
SqlTupleScalarFunctionSum ::= [f1]::SqlTupleScalarFunctionSum PLUS [f2]::SqlTupleScalarFunctionProduct
SqlTupleScalarFunctionSum ::= [f1]::SqlTupleScalarFunctionSum MINUS LPAREN [f2]::SqlTupleScalarFunctionSum RPAREN
SqlTupleScalarFunctionSum ::= SqlTupleScalarFunctionProduct
InfModifierFragment ::= REMOVES [ms]::Methodsig SEMICOLON
InfModifierFragment ::= ADDS [ms]::Methodsig SEMICOLON
DeltaParamDecls ::=
LPAREN [f]::DeltaParamDeclList RPARENMainBlock ::= [al]::AnnotationList LBRACE [s]::StmtList RBRACE
DeltaparamList ::= [l]::DeltaparamList COMMA [p]::Deltaparam
DeltaparamList ::= [p]::Deltaparam
CompoundStmt ::= IfThenElseStmt
CompoundStmt ::= BlockWithoutAnnotations
CompoundStmt ::= WhileStmt
Methodsig ::= [al]::AnnotationList [returntype]::TypeExp [id]::IDENTIFIER LPAREN [params]::ParamDeclList RPAREN
SqlTupleConstantList ::= [c]::SqlTupleConstant
SqlTupleConstantList ::= [l]::SqlTupleConstantList COMMA [c]::SqlTupleConstant
NewlocExp ::= NEW LOC
DeltaclauseList ::= ε
DeltaclauseList ::= [l]::DeltaclauseList [dc]::DeltaClause SEMICOLON
PureExpNoIf ::= ConstructorExp
PureExpNoIf ::= NULL
PureExpNoIf ::= FnappExp
PureExpNoIf ::= CaseExp
PureExpNoIf ::= VarOrFieldRef
PureExpNoIf ::= THIS
PureExpNoIf ::= FnappListExp
PureExpNoIf ::= LetExp
DatatypeuseList ::= [i]::Datatypeuse
DatatypeuseList ::= [l]::DatatypeuseList COMMA [i]::Datatypeuse
OptfeatureList ::= OPTFEATURES [l]::FeatureList SEMICOLON
OptfeatureList ::= ε
ListLiteralExp ::=
LBRACKET [l]::DataExpList RBRACKETMaddExp ::= [e1]::MaddExp MINUS [e2]::MmultExp
MaddExp ::= [e]::MmultExp
MaddExp ::= [e1]::MaddExp PLUS [e2]::MmultExp
DeltaList ::= [l]::DeltaList COMMA [id]::Delta
DeltaList ::= [id]::Delta
ConstructorPattern ::=
[co]::TypeName [p]::PatternParamsFactorAppcond ::= LPAREN [ac]::Appcond RPAREN
FactorAppcond ::= [f]::Feature
FactorAppcond ::= NEGATION [ac]::FactorAppcond
SqlStringLiteral ::= [s]::SQLSTRINGLITERAL
VarDecl ::= [t]::TypeExp [i]::IDENTIFIER ASSIGN [e]::Exp
VarDecl ::= [t]::TypeExp [i]::IDENTIFIER
Group ::= GROUP [c]::Cardinality LBRACE [fs]::FnodeList RBRACE
ModifierFragment ::= REMOVES [f]::FieldDecl SEMICOLON
ModifierFragment ::= MODIFIES [m]::Method
ModifierFragment ::= ADDS [f]::FieldDecl SEMICOLON
ModifierFragment ::= REMOVES [ms]::Methodsig SEMICOLON
ModifierFragment ::= ADDS [m]::Method
QualifiedInterfaceDecl ::= [al]::AnnotationList INTERFACE [id]::TypeName [i]::ExtendsInterfaces LBRACE [l]::MethodsigList RBRACE
DeltaDecl ::= DELTA [id]::TYPE_IDENTIFIER [params]::DeltaParamDecls SEMICOLON [uses]::DeltaAccessList [modifiers]::ModuleModifierList
TypeExp ::= [n]::TypeName
TypeExp ::= [n]::TypeName LT [p]::DatatypeuseList GT
Block ::=
[al]::AnnotationList [b]::BlockWithoutAnnotationsSqlRelationRef ::= [r1]::SqlRelationRef JOIN [r2]::SqlAtomicRelationRef
SqlRelationRef ::= [r1]::SqlRelationRef RIGHT JOIN [r2]::SqlAtomicRelationRef
SqlRelationRef ::= SqlAtomicRelationRef
SqlRelationRef ::= [r1]::SqlRelationRef LEFT JOIN [r2]::SqlAtomicRelationRef
AnyName ::= TypeName
AnyName ::= Name
AttrAssignments ::= LBRACE [l]::AttrAssignmentList RBRACE
FromCondition ::= FROM [ac]::Appcond
AdaptationList ::= [l]::AdaptationList [ad]::Adaptation
AdaptationList ::= [ad]::Adaptation
SqlTupleConstant ::= [i]::IntLiteral
SqlTupleConstant ::= [s]::SqlStringLiteral
SqlTupleConstant ::= TRUE
SqlTupleConstant ::= MINUS [i]::IntLiteral
SqlTupleConstant ::= FALSE
SqlTupleConstant ::= [r]::VarOrFieldRef
NewExp ::= NEW [c]::Cog [i]::TypeName LPAREN [l]::DataExpList RPAREN
WhileStmt ::= WHILE LPAREN [e1]::DataExp RPAREN [s1]::Stmt
ModuleModifier ::= [m]::OoModifier
ModuleModifier ::= [m]::FunctionalModifier
QualifiedTypeName ::= [qn]::TypeName DOT [n]::TYPE_IDENTIFIER
SqlExp ::= INSERT INTO [r]::SqlRelationRef LPAREN [a]::SqlAttrRefList RPAREN VALUES LPAREN [v]::SqlTupleConstantList RPAREN
SqlExp ::= UPDATE [r]::SqlRelationRef SET [a]::SqlAttrAssignmentList [c]::OptSqlCondition
SqlExp ::= SELECT [a]::SqlAttrsDef FROM [r]::SqlRelationRef [c]::OptSqlCondition [g]::SqlGroupingAttributes [o]::SqlOrderingAttributes
SqlExp ::= SELECT DISTINCT [a]::SqlAttrsDef FROM [r]::SqlRelationRef [c]::OptSqlCondition [g]::SqlGroupingAttributes [o]::SqlOrderingAttributes
CorefeatureList ::= ε
CorefeatureList ::= COREFEATURES [l]::FeatureList SEMICOLON
Delta ::= [id]::TYPE_IDENTIFIER
ImplementInterfacesAdd ::= ADDS [i]::IfnameList
MeqExp ::= MrelExp
MeqExp ::= [e1]::MeqExp NOTEQ [e2]::MrelExp
MeqExp ::= [e1]::MeqExp EQEQ [e2]::MrelExp
ModifierFragmentList ::= [f]::ModifierFragment
ModifierFragmentList ::= [l]::ModifierFragmentList [f]::ModifierFragment
IfExp ::= IF [e]::DataExp THEN [c]::DataExp ELSE [a]::DataExp
SqlAttrAssignmentList ::= [a]::SqlAttrAssignment
SqlAttrAssignmentList ::= [l]::SqlAttrAssignmentList COMMA [a]::SqlAttrAssignment
AttributeConstraintList ::= [acl]::AttributeConstraintList [t]::TYPE_IDENTIFIER [id]::IDENTIFIER IN LBRACKET [b1]::BoundaryInt UNTIL [b2]::BoundaryInt RBRACKET SEMICOLON
AttributeConstraintList ::= [acl]::AttributeConstraintList [t]::TYPE_IDENTIFIER [id]::IDENTIFIER SEMICOLON "/" Constraints "/"
AttributeConstraintList ::= [acl]::AttributeConstraintList EXCLUDE COLON [f]::Featvar SEMICOLON
AttributeConstraintList ::= [acl]::AttributeConstraintList [t]::TYPE_IDENTIFIER [id]::IDENTIFIER IN LBRACE [il]::IntList RBRACE SEMICOLON
AttributeConstraintList ::= [acl]::AttributeConstraintList [t]::TYPE_IDENTIFIER LBRACKET [b1]::BoundaryInt UNTIL [b2]::BoundaryInt RBRACKET [id]::IDENTIFIER SEMICOLON
AttributeConstraintList ::= [acl]::AttributeConstraintList [e]::Mexp SEMICOLON
AttributeConstraintList ::= "/" Attributes "/"
AttributeConstraintList ::= [acl]::AttributeConstraintList REQUIRE COLON [f]::Featvar SEMICOLON
AttributeConstraintList ::= [acl]::AttributeConstraintList IFIN COLON [e]::Mexp SEMICOLON
AttributeConstraintList ::= [acl]::AttributeConstraintList IFOUT COLON [e]::Mexp SEMICOLON
AnyNameList ::= [n]::AnyName
AnyNameList ::= [l]::AnyNameList COMMA [n]::AnyName
ExtendsInterfaces ::= EXTENDS [i]::IfnameList
SqlAtomicRelationRef ::= [r]::StringLiteral
SqlAtomicRelationRef ::= [r]::VarOrFieldRef
AttrAssignment ::= [n]::IDENTIFIER ASSIGN [i]::INTLITERAL
AttrAssignment ::= [n]::IDENTIFIER ASSIGN [c]::TYPE_IDENTIFIER
IncompleteExp ::=
[callee]::PureExpPrefix [b]::BANG [method]::IDENTIFIERIncompleteExp ::=
[callee]::PureExpPrefix [d]::DOT [method]::IDENTIFIERIncompleteExp ::=
NEW [c]::CogImplementInterfaces ::= IMPLEMENTS [i]::IfnameList
IfThenElseStmt ::= IF LPAREN [e1]::DataExp RPAREN [s1]::Stmt ELSE [s2]::Stmt
IfThenElseStmt ::= IF LPAREN [e1]::DataExp RPAREN [s1]::Stmt
SyncCall ::=
[callee]::PureExpPrefix DOT [method]::IDENTIFIER LPAREN [params]::DataExpList RPARENSyncCall ::=
[callee]::THIS DOT [method]::IDENTIFIER LPAREN [params]::DataExpList RPARENCompilationUnit ::= [m]::ModuleDeclList [d]::DeltaDeclList [pl]::ProductLine [p]::ProductList [fm]::Featuremodeldecl
Import ::= IMPORT [l]::AnyNameList FROM [m]::ModuleName SEMICOLON
Import ::= IMPORT [l]::AnyNameList SEMICOLON
Import ::= IMPORT MULT FROM [m]::ModuleName SEMICOLON
HasCondition ::= HASFIELD [f]::FieldDecl
HasCondition ::= HASMETHOD [ms]::Methodsig
HasCondition ::= HASINTERFACE [n]::TypeName
SqlTupleScalarFunctionQuotient ::= [f1]::SqlTupleScalarFunctionQuotient DIV LPAREN [f2]::SqlTupleScalarFunctionSum RPAREN
SqlTupleScalarFunctionQuotient ::= [f1]::SqlTupleScalarFunctionQuotient DIV [f2]::AtomicSqlTupleScalarFunction
SqlTupleScalarFunctionQuotient ::= AtomicSqlTupleScalarFunction
Export ::= EXPORT MULT SEMICOLON
Export ::= EXPORT [l]::AnyNameList SEMICOLON
Export ::= EXPORT MULT FROM [m]::ModuleName SEMICOLON
Export ::= EXPORT [l]::AnyNameList FROM [m]::ModuleName SEMICOLON
SqlAndCondition ::= [c1]::SqlAndCondition [op]::AND [c2]::SqlCondition
SqlAndCondition ::= SqlCondition
DataConstructor ::=
[co]::TYPE_IDENTIFIER [p]::DataConstructorParamsSqlTupleScalarFunctionProduct ::= [f1]::SqlTupleScalarFunctionProduct MULT [f2]::SqlTupleScalarFunctionQuotient
SqlTupleScalarFunctionProduct ::= SqlTupleScalarFunctionQuotient
SqlTupleScalarFunctionProduct ::= [f1]::SqlTupleScalarFunctionProduct MULT LPAREN [f2]::SqlTupleScalarFunctionSum RPAREN
SqlAttrsDef ::= MULT
SqlAttrsDef ::= [l]::SqlAttrDefList
AddExp ::= [e1]::AddExp PLUS [e2]::MultExp
AddExp ::= [e]::MultExp
AddExp ::= [e1]::AddExp MINUS [e2]::MultExp
DeltaAccessList ::= [t]::DeltaAccess
DeltaAccessList ::= [l]::DeltaAccessList [t]::DeltaAccess
PureExp ::= FatherExp "/" Component "/"
PureExp ::= LocationExp "/" Component "/"
PureExp ::= IfExp
PureExp ::= PureExpNoIf
ConstructorExp ::= [f]::TypeName
ConstructorExp ::=
[f]::TypeName LPAREN [l]::DataExpList RPARENINTLITERAL ::= ε
IntLiteral ::= [i]::INTLITERAL
MmultExp ::= [e1]::MmultExp MULT [e2]::MfactorExp
MmultExp ::= [e]::MfactorExp
MmultExp ::= [e1]::MmultExp DIV [e2]::MfactorExp
MmultExp ::= [e1]::MmultExp MOD [e2]::MfactorExp
OriginalCall ::=
ORIGINAL LPAREN [params]::DataExpList RPARENOriginalCall ::=
[delta]::DeltaId DOTORIGINAL LPAREN [params]::DataExpList RPARENOriginalCall ::=
CORE DOTORIGINAL LPAREN [params]::DataExpList RPARENSqlOrCondition ::= [c1]::SqlOrCondition [op]::OR [c2]::SqlAndCondition
SqlOrCondition ::= SqlAndCondition
Stmt ::=
[al]::AnnotationList [s]::CompoundStmtStmt ::=
[al]::AnnotationList [s]::StmtWithoutAnnotations SEMICOLONDeltaparam ::= [i]::INTLITERAL
Deltaparam ::= [c]::TYPE_IDENTIFIER
Deltaparam ::= [fid]::TYPE_IDENTIFIER DOT [aid]::IDENTIFIER
ParamDeclList ::= [l]::ParamDeclList COMMA [i]::ParamDecl
ParamDeclList ::= [i]::ParamDecl
SqlTupleScalarFunctionConcat ::= [f1]::SqlTupleScalarFunctionConcat CONCAT [f2]::SqlTupleScalarFunctionSum
SqlTupleScalarFunctionConcat ::= SqlTupleScalarFunctionSum
DataExp ::= OrExp
Exp ::= [e]::DataExp
Exp ::= [e]::EffExp
TypeName ::= QualifiedTypeName
TypeName ::= SimpleTypeName
SqlTupleCaseFunction ::= CASE [b]::SqlTupleCaseBranches ELSE [f]::SqlTupleScalarFunction END
Datatypeuse ::=
[l]::AnnotationList [n]::TypeName LT [p]::DatatypeuseList GTDatatypeuse ::=
[l]::AnnotationList [n]::TypeNameFatherExp ::= FATHER LPAREN [param]::PureExp RPAREN
Method ::= CRITICAL [ms]::Methodsig [b]::Block
Method ::= [ms]::Methodsig [b]::Block
AndAppcond ::= [ac1]::AndAppcond ANDAND [ac2]::FactorAppcond
AndAppcond ::= FactorAppcond
IntList ::= MINUS [i]::INTLITERAL
IntList ::= [il]::IntList COMMA MINUS [i]::INTLITERAL
IntList ::= [il]::IntList COMMA [i]::INTLITERAL
IntList ::= [i]::INTLITERAL
SqlCondition ::= NOT [c]::SqlCondition
SqlCondition ::= [f1]::SqlTupleScalarFunction [r]::SqlComparisonRelation [f2]::SqlTupleScalarFunction
SqlCondition ::= [a]::StringLiteral IS NULL
SqlCondition ::= LPAREN [c]::SqlOrCondition RPAREN
SqlGroupingAttributes ::= ε
SqlGroupingAttributes ::= GROUP BY [a]::SqlAttrRefList
Datatypeparam ::= [id]::TYPE_IDENTIFIER
PatternParams ::=
LPAREN [l]::PatternList RPARENModuleDeclList ::= [l]::ModuleDeclList [t]::ModuleDecl
ModuleDeclList ::= [t]::ModuleDecl
CaseBranch ::= [lhs]::Pattern RARROW [rhs]::DataExp SEMICOLON
Deltaparams ::= LPAREN [l]::DeltaparamList RPAREN
DeltaAccess ::= USES [m]::ModuleName SEMICOLON
OrExp ::= AndExp
OrExp ::= [e1]::OrExp OROR [e2]::AndExp
SqlOrderingAttribute ::= [e]::DataExp DESC
SqlOrderingAttribute ::= [e]::DataExp
SqlOrderingAttribute ::= [e]::DataExp ASC
QualifiedClassDecl ::= [annotations]::AnnotationList CLASS [id]::TypeName [params]::ParamDecls [i]::ImplementInterfaces LBRACE [fields]::FieldDeclList [initBlock]::InitBlock [methods]::MethodList RBRACE
DeltaClause ::= DELTA [d]::Deltaspec [a]::AfterCondition [f]::FromCondition [w]::WhenCondition
QualifiedName ::= [qn]::TypeName DOT [n]::IDENTIFIER
FnappExp ::=
[f]::Name LPAREN [l]::DataExpList RPARENOptSqlCondition ::= WHERE [c]::SqlOrCondition
OptSqlCondition ::= ε
LAYOUT ::= Comment
LAYOUT ::= ε
ModuleName ::= TypeName
Adaptation ::= [product]::TYPE_IDENTIFIER BY [update]::TYPE_IDENTIFIER SEMICOLON
DataExpList ::= [l]::DataExpList COMMA [i]::DataExp
DataExpList ::= [i]::DataExp
StringLiteral ::= [s]::STRINGLITERAL
SqlTupleScalarFunction ::= SqlTupleScalarFunctionConcat
MethodList ::= [l]::MethodList [i]::Method
MethodList ::= [i]::Method
Featuremodeldecl ::= [l]::Featuremodeldecl EXTENSION [ext]::Fextension
Featuremodeldecl ::= [l]::Featuremodeldecl ROOT [f]::FeatureDecl
Featuremodeldecl ::= ε
InitBlock ::= Block
DatatypeparamList ::= [l]::DatatypeparamList COMMA [p]::Datatypeparam
DatatypeparamList ::= [p]::Datatypeparam
StmtWithoutAnnotations ::= REBIND [field]::IDENTIFIER ASSIGN [e]::Exp
StmtWithoutAnnotations ::= [r]::VarOrFieldRef ASSIGN [e]::Exp
StmtWithoutAnnotations ::= SKIP
StmtWithoutAnnotations ::= REBIND [obj]::Exp COLON [field]::IDENTIFIER ASSIGN [e]::Exp
StmtWithoutAnnotations ::= [e]::EffExp
StmtWithoutAnnotations ::= [vd]::VarDecl
StmtWithoutAnnotations ::= DURATION LPAREN [min]::DataExp COMMA [max]::DataExp RPAREN
StmtWithoutAnnotations ::= SUBLOC [sub]::PureExp IN [father]::PureExp
StmtWithoutAnnotations ::= ASSERT [e]::DataExp
StmtWithoutAnnotations ::= AWAIT Guard
StmtWithoutAnnotations ::= SUSPEND
StmtWithoutAnnotations ::= RETURN [e]::Exp
StmtWithoutAnnotations ::= MOVECOGTO DataExp
BoundaryInt ::= [i]::INTLITERAL
BoundaryInt ::= MULT
BoundaryInt ::= MINUS [i]::INTLITERAL
OrAppcond ::= [ac1]::OrAppcond OROR [ac2]::AndAppcond
OrAppcond ::= AndAppcond
Annotation ::= LBRACKET [type]::TypeExp COLON [exp]::DataExp RBRACKET
Annotation ::= LBRACKET [exp]::DataExp RBRACKET
SqlTupleCaseBranch ::= WHEN [c]::SqlOrCondition THEN [f]::SqlTupleScalarFunction
Ifname ::= [n]::TypeName
Fnode ::= OPT [f]::FeatureDecl
Fnode ::= [f]::FeatureDecl
AtomicSqlTupleScalarFunction ::= [a]::StringLiteral
AtomicSqlTupleScalarFunction ::= SqlTupleConstant
AtomicSqlTupleScalarFunction ::= SqlTupleCaseFunction
RelationalExp ::= [e1]::RelationalExp LTEQ [e2]::AddExp
RelationalExp ::= AddExp
RelationalExp ::= [e1]::RelationalExp LT [e2]::AddExp
RelationalExp ::= [e1]::RelationalExp GT [e2]::AddExp
RelationalExp ::= [e1]::RelationalExp GTEQ [e2]::AddExp
ModuleDecl ::= [n]::ModuleNameDecl [el]::ExportList [il]::ImportList [dl]::DeclList [b]::MainBlock
SqlAttrRef ::= DataExp
MandExp ::= MimplExp
MandExp ::= [e1]::MandExp ANDAND [e2]::MimplExp
Deltaspec ::=
[id]::TYPE_IDENTIFIER [params]::DeltaparamsMrelExp ::= [e1]::MrelExp GTEQ [e2]::MaddExp
MrelExp ::= [e1]::MrelExp GT [e2]::MaddExp
MrelExp ::= [e1]::MrelExp LT [e2]::MaddExp
MrelExp ::= MaddExp
MrelExp ::= [e1]::MrelExp LTEQ [e2]::MaddExp
DeltaParamDeclList ::= [i]::DeltaParamDecl
DeltaParamDeclList ::= [l]::DeltaParamDeclList COMMA [i]::DeltaParamDecl
Cog ::=
[annotations]::AnnotationList COGFieldDeclList ::= [i]::FieldDecl SEMICOLON
FieldDeclList ::= [l]::FieldDeclList [i]::FieldDecl SEMICOLON
ProductLine ::= PRODUCTLINE [id]::TYPE_IDENTIFIER SEMICOLON [o]::OptfeatureList [c]::CorefeatureList [d]::DeltaclauseList
InterfaceDecl ::= [al]::AnnotationList INTERFACE [id]::TYPE_IDENTIFIER [i]::ExtendsInterfaces LBRACE [l]::MethodsigList RBRACE
Cardinality ::= ONEOF
Cardinality ::= LBRACKET [i1]::INTLITERAL UNTIL [i2]::INTLITERAL RBRACKET
Cardinality ::= ALLOF
Cardinality ::= LBRACKET [i]::INTLITERAL UNTIL MULT RBRACKET
Factor ::= NEGATION [b]::Factor
Factor ::= MINUS [e]::Factor
Factor ::= Literal
Factor ::= PureExp
Factor ::= LPAREN [e]::OrExp RPAREN
DataConstructorParams ::=
LPAREN [l]::ConstructorArgList RPARENSqlComparisonRelation ::= LT
SqlComparisonRelation ::= LTEQ
SqlComparisonRelation ::= GTEQ
SqlComparisonRelation ::= NOTEQ
SqlComparisonRelation ::= EQ
SqlComparisonRelation ::= GT
Pattern ::= USCORE
Pattern ::= [l]::Literal
Pattern ::= [v]::IDENTIFIER
Pattern ::= ConstructorPattern
AttrAssignmentList ::= [a]::AttrAssignment
AttrAssignmentList ::= [l]::AttrAssignmentList COMMA [a]::AttrAssignment
SimpleName ::= [id]::IDENTIFIER