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]::IDENTIFIER
VarOrFieldRef ::= [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]::AnnotationListDEF [t]::Datatypeuse [fn]::IDENTIFIER [p]::DatatypeparamListDecl LPAREN [l]::ParamDeclList RPAREN ASSIGN [ef]::ExpFunctionDef SEMICOLON
FunctionDecl ::= [al]::AnnotationListDEF [t]::Datatypeuse [fn]::IDENTIFIER LPAREN [l]::ParamDeclList RPAREN ASSIGN [ef]::ExpFunctionDef SEMICOLON
FunctionDecl ::= [al]::AnnotationListDEF [t]::Datatypeuse [fn]::IDENTIFIER LPAREN [l]::ParamDeclList RPAREN ASSIGN BUILTIN SEMICOLON
FunctionDecl ::= [al]::AnnotationListDEF [t]::Datatypeuse [fn]::IDENTIFIER [p]::DatatypeparamListDecl LPAREN [l]::ParamDeclList RPAREN ASSIGN BUILTIN SEMICOLON
ModuleModifierList ::= [l]::ModuleModifierList [m]::ModuleModifier
ModuleModifierList ::= [m]::ModuleModifier
DatatypeDecl ::= [al]::AnnotationListDATA [id]::TYPE_IDENTIFIER [p]::DatatypeparamListDecl SEMICOLON
DatatypeDecl ::= [al]::AnnotationListDATA [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]::AttrAssignments
Feature ::=
[id]::TYPE_IDENTIFIER [attrs]::AttrAssignments
SimpleTypeName ::= [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]::AnnotationListCLASS [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]::AnnotationListLBRACE [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]::PatternParams
FactorAppcond ::= 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]::AnnotationListINTERFACE [id]::TypeName [i]::ExtendsInterfaces LBRACE [l]::MethodsigList RBRACE
DeltaDecl ::= DELTA [id]::TYPE_IDENTIFIER [params]::DeltaParamDeclsSEMICOLON [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]::IDENTIFIER
IncompleteExp ::=
[callee]::PureExpPrefix [d]::DOT [method]::IDENTIFIER
IncompleteExp ::=
NEW [c]::Cog
ImplementInterfaces ::= 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]::DataConstructorParams
SqlTupleScalarFunctionProduct ::= [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]::AnnotationListCLASS [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]::Deltaparams
MrelExp ::= [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]::AnnotationListINTERFACE [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