Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: atl/acg/extracted
Source used for this grammar: Frédéric Jouault, ACG.ecore
, 2007/07/25
LocatedElement
, ACG
, ACGElement
, Function
, Attribute
, Parameter
, Node
, ASMNode
, CodeNode
, SimpleNode
, StatementBlock
, Statement
, CompoundStat
, ForEachStat
, OnceStat
, VariableStat
, OperationStat
, ConditionalStat
, LetStat
, AnalyzeStat
, ReportStat
, Severity
, FieldStat
, ParamStat
, EmitStat
, LabelStat
, NewStat
, DupStat
, DupX1Stat
, PopStat
, SwapStat
, IterateStat
, EndIterateStat
, GetAsmStat
, FindMEStat
, PushTStat
, PushFStat
, EmitWithOperandStat
, PushStat
, PushIStat
, PushDStat
, LoadStat
, StoreStat
, CallStat
, PCallStat
, SuperCallStat
, GetStat
, SetStat
, EmitWithLabelRefStat
, IfStat
, GotoStat
, VariableDecl
, Expression
, VariableExp
, SelfExp
, LastExp
, IfExp
, IsAExp
, LetExp
, PropertyCallExp
, NavigationExp
, IteratorExp
, OperationCallExp
, OperatorCallExp
, LiteralExp
, OclUndefinedExp
, CollectionExp
, SequenceExp
, BooleanExp
, IntegerExp
, StringExp
, Boolean
, Integer
, String
), 0 root (—), 1 top (LocatedElement
), 0 bottom (—).[metamodel]
, [startsWith]
, [elements]
2, [context]
3, [name]
11, [parameters]
, [body]
3, [element]
2, [mode]
3, [guard]
2, [iterator]
2, [collection]
, [definition]
, [condition]
2, [elseStatements]
, [variable]
3, [value]
5, [target]
, [severity]
, [message]
, [critic]
, [error]
, [warning]
, [type]
3, [id]
, [operand]
10, [label]
2, [thenExp]
, [elseExp]
, [source]
2, [in]
, [arguments]
2.LocatedElement ::= ACG
LocatedElement ::= ACGElement
LocatedElement ::= StatementBlock
LocatedElement ::= Statement
LocatedElement ::= VariableDecl
LocatedElement ::= Expression
ACG ::=
[metamodel]::String [startsWith]::String [elements]::ACGElement
ACGElement ::= Function
ACGElement ::= Attribute
ACGElement ::= Node
Function ::=
[context]::String [name]::String [parameters]::Parameter
[body]::ExpressionAttribute ::= [context]::String [name]::String [body]::Expression
Parameter ::= [name]::String
Node ::= ASMNode
Node ::= CodeNode
Node ::= SimpleNode
ASMNode ::= [name]::Expression
CodeNode ::= [element]::String [mode]::String [guard]::Expression
SimpleNode ::= [element]::String [mode]::String [guard]::Expression
StatementBlock ::= Node
StatementBlock ::= CompoundStat
Statement ::= ReportStat
Statement ::= FieldStat
Statement ::= ParamStat
Statement ::= EmitStat
Statement ::= CompoundStat
CompoundStat ::= ForEachStat
CompoundStat ::= OnceStat
CompoundStat ::= VariableStat
CompoundStat ::= OperationStat
CompoundStat ::= ConditionalStat
CompoundStat ::= LetStat
CompoundStat ::= AnalyzeStat
ForEachStat ::= [iterator]::VariableDecl [collection]::Expression
OnceStat ::= ε
VariableStat ::= [definition]::Expression [name]::Expression
OperationStat ::= [context]::Expression [name]::Expression
ConditionalStat ::=
[condition]::Expression [elseStatements]::Statement
LetStat ::= [variable]::VariableDecl [value]::Expression
AnalyzeStat ::= [target]::Expression [mode]::String
ReportStat ::= [severity]::Severity [message]::Expression
Severity ::= [critic]::ε [error]::ε [warning]::ε
FieldStat ::= [name]::Expression [type]::Expression
ParamStat ::= [name]::Expression [type]::Expression
EmitStat ::= LabelStat
EmitStat ::= NewStat
EmitStat ::= DupStat
EmitStat ::= DupX1Stat
EmitStat ::= PopStat
EmitStat ::= SwapStat
EmitStat ::= IterateStat
EmitStat ::= EndIterateStat
EmitStat ::= GetAsmStat
EmitStat ::= FindMEStat
EmitStat ::= PushTStat
EmitStat ::= PushFStat
EmitStat ::= EmitWithOperandStat
EmitStat ::= EmitWithLabelRefStat
LabelStat ::= [name]::String [id]::Expression
NewStat ::= ε
DupStat ::= ε
DupX1Stat ::= ε
PopStat ::= ε
SwapStat ::= ε
IterateStat ::= ε
EndIterateStat ::= ε
GetAsmStat ::= ε
FindMEStat ::= ε
PushTStat ::= ε
PushFStat ::= ε
EmitWithOperandStat ::= PushStat
EmitWithOperandStat ::= PushIStat
EmitWithOperandStat ::= PushDStat
EmitWithOperandStat ::= LoadStat
EmitWithOperandStat ::= StoreStat
EmitWithOperandStat ::= CallStat
EmitWithOperandStat ::= PCallStat
EmitWithOperandStat ::= SuperCallStat
EmitWithOperandStat ::= GetStat
EmitWithOperandStat ::= SetStat
PushStat ::= [operand]::Expression
PushIStat ::= [operand]::Expression
PushDStat ::= [operand]::Expression
LoadStat ::= [operand]::Expression
StoreStat ::= [operand]::Expression
CallStat ::= [operand]::Expression
PCallStat ::= [operand]::Expression
SuperCallStat ::= [operand]::Expression
GetStat ::= [operand]::Expression
SetStat ::= [operand]::Expression
EmitWithLabelRefStat ::= IfStat
EmitWithLabelRefStat ::= GotoStat
IfStat ::= [label]::LabelStat
GotoStat ::= [label]::LabelStat
VariableDecl ::= Parameter
VariableDecl ::= [name]::String
Expression ::= VariableExp
Expression ::= SelfExp
Expression ::= LastExp
Expression ::= IfExp
Expression ::= IsAExp
Expression ::= LetExp
Expression ::= PropertyCallExp
Expression ::= LiteralExp
VariableExp ::= [variable]::VariableDecl
SelfExp ::= ε
LastExp ::= ε
IfExp ::= [condition]::Expression [thenExp]::Expression [elseExp]::Expression
IsAExp ::= [source]::Expression [type]::String
LetExp ::= [variable]::VariableDecl [value]::Expression [in]::Expression
PropertyCallExp ::= NavigationExp
PropertyCallExp ::= IteratorExp
PropertyCallExp ::= OperationCallExp
NavigationExp ::= [source]::Expression [name]::String
IteratorExp ::= [iterator]::VariableDecl [body]::Expression
OperationCallExp ::= OperatorCallExp
OperationCallExp ::=
[arguments]::Expression
OperatorCallExp ::=
[arguments]::Expression
LiteralExp ::= OclUndefinedExp
LiteralExp ::= CollectionExp
LiteralExp ::= BooleanExp
LiteralExp ::= IntegerExp
LiteralExp ::= StringExp
OclUndefinedExp ::= ε
CollectionExp ::= SequenceExp
SequenceExp ::=
[elements]::Expression
BooleanExp ::= [value]::Boolean
IntegerExp ::= [value]::Integer
StringExp ::= [value]::String
Boolean ::= "true" "false"
Integer ::= integer
String ::= string