Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: automata/xasm/extracted
Source used for this grammar: Davide Di Ruscio, ASM.ecore
, 2006/05/1
String
, Integer
, Boolean
, LocatedElement
, XAsmFile
, XAsmSpec
, Asm
, Signature
, Argument
, Body
, MetaInformation
, AccessUpdateFunction
, Declaration
, Function
, Parameter
, Universe
, Initialization
, Term
, Constant
, FunctionOrVariableTerm
, OperatorTerm
, BooleanConstant
, IntegerConstant
, StringConstant
, UndefConstant
, Rule
, SkipRule
, AsmInvocation
, UpdateRule
, ChooseRule
, DoForallRule
, ConditionalRule
, ElseIf
, ExtendRule
, ElementDecl
, VariableDecl
, Extension
, ReturnRule
, AccessUpdateType
, AsmType
), 0 root (—), 1 top (LocatedElement
), 0 bottom (—).[Asm]
, [signature]
, [returnType]
2, [metaInformation]
, [body]
, [isMain]
, [name]
3, [arguments]
2, [type]
3, [declarations]
, [initialization]
, [rules]
3, [usedAsIn]
, [usedAs]
, [accessUpdateFunctions]
, [functions]
, [parameters]
, [initTerm]
, [isExternal]
, [contents]
, [superUniverses]
, [declaration]
, [terms]
, [opName]
, [leftExp]
, [rightExp]
, [value]
3, [inSequence]
, [asmName]
, [function]
2, [updateTerm]
, [chooseId]
, [inSet]
2, [guard]
, [ifChoosenRules]
, [ifNotChoosenRule]
, [id]
, [condition]
3, [doRule]
, [thenRule]
2, [elseRule]
2, [elseIfRule]
2, [extensions]
, [elements]
, [universe]
, [term]
, [access]
, [update]
, [subasm]
.String ::= string
Integer ::= integer
Boolean ::= "true" "false"
LocatedElement ::= XAsmFile
LocatedElement ::= Asm
LocatedElement ::= Signature
LocatedElement ::= MetaInformation
LocatedElement ::= AccessUpdateFunction
LocatedElement ::= Declaration
LocatedElement ::= Parameter
LocatedElement ::= Initialization
LocatedElement ::= Term
LocatedElement ::= Rule
LocatedElement ::= ElseIf
LocatedElement ::= ElementDecl
LocatedElement ::= Extension
XAsmFile ::= XAsmSpec
XAsmFile ::= Body
XAsmSpec ::=
[Asm]::Asm
Asm ::= [signature]::Signature [returnType]::String [metaInformation]::MetaInformation [body]::Body
Signature ::=
[isMain]::Boolean [name]::String [arguments]::Argument
Argument ::= [type]::String
Body ::= [declarations]::Declaration[initialization]::Initialization [rules]::Rule
MetaInformation ::= [usedAsIn]::Signature[usedAs]::AsmType [accessUpdateFunctions]::AccessUpdateFunction
AccessUpdateFunction ::=
[type]::AccessUpdateType [functions]::Function
Declaration ::= Universe
Declaration ::= Function
Function ::=
[parameters]::Parameter
[returnType]::String [initTerm]::Term [isExternal]::BooleanParameter ::= [name]::String [type]::String
Universe ::= [name]::String [contents]::String[superUniverses]::Universe
Initialization ::=
[rules]::Rule
Term ::= Constant
Term ::= FunctionOrVariableTerm
Term ::= OperatorTerm
Constant ::= BooleanConstant
Constant ::= IntegerConstant
Constant ::= StringConstant
Constant ::= UndefConstant
FunctionOrVariableTerm ::=
[declaration]::ElementDecl [terms]::Term
OperatorTerm ::= [opName]::String [leftExp]::Term [rightExp]::Term
BooleanConstant ::= [value]::Boolean
IntegerConstant ::= [value]::Integer
StringConstant ::= [value]::String
UndefConstant ::= ε
Rule ::= SkipRule
Rule ::= AsmInvocation
Rule ::= UpdateRule
Rule ::= ChooseRule
Rule ::= DoForallRule
Rule ::= ConditionalRule
Rule ::= ExtendRule
Rule ::= ReturnRule
SkipRule ::= [inSequence]::Boolean
AsmInvocation ::=
[asmName]::String [arguments]::Term
UpdateRule ::= [function]::FunctionOrVariableTerm [updateTerm]::Term
ChooseRule ::=
[chooseId]::VariableDecl [inSet]::Universe [guard]::Term [ifChoosenRules]::Rule
[ifNotChoosenRule]::RuleDoForallRule ::=
[id]::VariableDecl [inSet]::Universe [condition]::Term [doRule]::Rule
ConditionalRule ::=
[condition]::Term [thenRule]::Rule
[elseRule]::Rule [elseIfRule]::ElseIfElseIf ::=
[condition]::Term [thenRule]::Rule
[elseRule]::Rule [elseIfRule]::ElseIfExtendRule ::= [extensions]::Extension[rules]::Rule
ElementDecl ::= VariableDecl
ElementDecl ::= Function
VariableDecl ::= Argument
Extension ::=
[elements]::VariableDecl
[universe]::UniverseReturnRule ::= [term]::Term
AccessUpdateType ::= [access]::ε [update]::ε
AsmType ::= [function]::ε [subasm]::ε