
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: ml/ocaml/amble/extracted
Source used for this grammar: David Touzet, Amble.ecore, 2005/05/30
Boolean, String, Integer, Element, Program, Process, State, Transition, Trans, Strans, Transall, Guard, Action, Network, Channel, Message, Variable), 0 root (—), 1 top (Element), 0 bottom (—).[processes], [networks], [minId], [maxId], [instancesNb], [states], [transitions], [initial], [variables], [connectedTo], [isInitial], [incoming], [outgoing], [waitFor] 2, [guard], [action], [source] 2, [target] 2, [name] 3, [channels], [messages], [type], [initValue].Boolean ::= "true" "false"
String ::= string
Integer ::= integer
Element ::= Program
Element ::= Process
Element ::= State
Element ::= Guard
Element ::= Action
Element ::= Network
Element ::= Channel
Element ::= Message
Element ::= Variable
Program ::= [processes]::Process [networks]::Network
Process ::= [minId]::Integer [maxId]::Integer [instancesNb]::Integer [states]::State [transitions]::Transition [initial]::Action [variables]::Variable [connectedTo]::Network
State ::= [isInitial]::Boolean [incoming]::Transition [outgoing]::Transition
Transition ::= Trans
Transition ::= Strans
Transition ::= Transall
Trans ::= [waitFor]::Message
Strans ::= [guard]::Guard [action]::Action [source]::State [target]::State
Transall ::= [waitFor]::Message
Guard ::= [name]::String
Action ::= [name]::String
Network ::=
[channels]::ChannelChannel ::=
[messages]::Message [source]::Process [target]::ProcessMessage ::= [name]::String
Variable ::= [type]::String [initValue]::String