Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: §wip/atl/MonitorProgram/extracted
Source used for this grammar: Frédéric Jouault, Monitor Program 1.1, MonitorProgram.ecore
, 2005/05/09
LocatedElement
, NamedElement
, Structure
, ProcContainerElement
, Program
, Monitor
, Procedure
, VariableDeclaration
, Parameter
, Direction
, Type
, Expression
, VariableExp
, PropertyCallExp
, OperatorCallExp
, AttributeCallExp
, ProcedureCallExp
, LiteralExp
, BooleanExp
, IntegerExp
, Statement
, AssignmentStat
, ConditionalStat
, WhileStat
, ExpressionStat
, Boolean
, Integer
, String
), 0 root (—), 1 top (LocatedElement
), 0 bottom (—).[monitors]
, [program]
, [container]
, [parameters]
, [statements]
, [type]
, [initialValue]
, [structure]
, [direction]
, [procedure]
, [in]
, [out]
, [name]
2, [declaration]
, [right]
, [source]
, [arguments]
, [symbol]
2, [target]
, [value]
, [condition]
2, [thenStats]
, [elseStats]
, [doStats]
, [expression]
.LocatedElement ::= NamedElement
LocatedElement ::= Expression
LocatedElement ::= Statement
NamedElement ::= Structure
NamedElement ::= VariableDeclaration
NamedElement ::= Type
Structure ::= ProcContainerElement
Structure ::= Procedure
ProcContainerElement ::= Program
ProcContainerElement ::= Monitor
Program ::=
[monitors]::Monitor
Monitor ::= [program]::Program
Procedure ::= [container]::ProcContainerElement [parameters]::Parameter[statements]::Statement
VariableDeclaration ::= Parameter
VariableDeclaration ::= [type]::Type [initialValue]::Expression [structure]::Structure
Parameter ::= [direction]::Direction [procedure]::Procedure
Direction ::= [in]::ε [out]::ε
Type ::= [name]::String
Expression ::= VariableExp
Expression ::= PropertyCallExp
Expression ::= LiteralExp
VariableExp ::= [declaration]::VariableDeclaration
PropertyCallExp ::= OperatorCallExp
PropertyCallExp ::= AttributeCallExp
PropertyCallExp ::= ProcedureCallExp
OperatorCallExp ::= [right]::Expression
AttributeCallExp ::= [source]::Expression [name]::String
ProcedureCallExp ::=
[arguments]::Expression
LiteralExp ::= BooleanExp
LiteralExp ::= IntegerExp
BooleanExp ::= [symbol]::Boolean
IntegerExp ::= [symbol]::Integer
Statement ::= AssignmentStat
Statement ::= ConditionalStat
Statement ::= WhileStat
Statement ::= ExpressionStat
AssignmentStat ::= [target]::VariableExp [value]::Expression
ConditionalStat ::= [condition]::Expression [thenStats]::Statement[elseStats]::Statement
WhileStat ::=
[condition]::Expression [doStats]::Statement
ExpressionStat ::= [expression]::Expression
Boolean ::= "true" "false"
Integer ::= integer
String ::= string