
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]::ACGElementACGElement ::= 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]::StatementLetStat ::= [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]::ExpressionOperatorCallExp ::=
[arguments]::ExpressionLiteralExp ::= OclUndefinedExp
LiteralExp ::= CollectionExp
LiteralExp ::= BooleanExp
LiteralExp ::= IntegerExp
LiteralExp ::= StringExp
OclUndefinedExp ::= ε
CollectionExp ::= SequenceExp
SequenceExp ::=
[elements]::ExpressionBooleanExp ::= [value]::Boolean
IntegerExp ::= [value]::Integer
StringExp ::= [value]::String
Boolean ::= "true" "false"
Integer ::= integer
String ::= string