Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: §wip/atl/METAH/extracted
Source used for this grammar: Julien Baudry, MetaH 1.0, METAH.ecore
, 2006/05/27
METAHFile
, METAHEntry
, Package
, PackageImplementation
, Data
, Attribute
, ProcessDeclaration
, ProcessImplementation
, ProcessAttribute
, Process
, Port
, Connection
, MacroDeclaration
, MacroImplementation
, Boolean
, Integer
, String
), 0 root (—), 2 top (METAHFile
, Boolean
), 0 bottom (—).[entries]
, [packName]
, [data]
, [implementationName]
, [implements]
, [attributes]
, [dataName]
, [attName]
2, [attValue]
2, [attValueType]
2, [attType]
, [procDecName]
, [ports]
2, [procImpName]
, [declaration]
3, [processAttributes]
, [procName]
, [periodic]
, [implementation]
, [portName]
, [portCom]
, [portPackage]
, [portType]
, [compSrc]
, [portSrc]
, [compDest]
, [portDest]
, [name]
, [macroImpName]
, [process]
, [connections]
.METAHFile ::=
[entries]::METAHEntry
METAHEntry ::= Package
METAHEntry ::= PackageImplementation
METAHEntry ::= ProcessDeclaration
METAHEntry ::= ProcessImplementation
METAHEntry ::= Connection
METAHEntry ::= MacroDeclaration
METAHEntry ::= MacroImplementation
Package ::=
[packName]::String [data]::Data
PackageImplementation ::=
[implementationName]::String [implements]::String [attributes]::Attribute
Data ::= [dataName]::String
Attribute ::= [attName]::String [attValue]::Integer [attValueType]::String [attType]::String
ProcessDeclaration ::=
[procDecName]::String [ports]::Port
ProcessImplementation ::=
[procImpName]::String [declaration]::String [processAttributes]::ProcessAttribute
ProcessAttribute ::= [attName]::String [attValue]::Integer [attValueType]::String
Process ::= [procName]::String [periodic]::String [declaration]::String [implementation]::String
Port ::= [portName]::String [portCom]::String [portPackage]::String [portType]::String
Connection ::= [compSrc]::String [portSrc]::String [compDest]::String [portDest]::String
MacroDeclaration ::=
[name]::String [ports]::Port
MacroImplementation ::= [macroImpName]::String [declaration]::String [process]::Process[connections]::Connection
Boolean ::= "true" "false"
Integer ::= integer
String ::= string