
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]::AsmAsm ::= [signature]::Signature [returnType]::String [metaInformation]::MetaInformation [body]::Body
Signature ::=
[isMain]::Boolean [name]::String [arguments]::ArgumentArgument ::= [type]::String
Body ::= [declarations]::Declaration [initialization]::Initialization [rules]::Rule
MetaInformation ::= [usedAsIn]::Signature [usedAs]::AsmType [accessUpdateFunctions]::AccessUpdateFunction
AccessUpdateFunction ::=
[type]::AccessUpdateType [functions]::FunctionDeclaration ::= 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]::RuleTerm ::= Constant
Term ::= FunctionOrVariableTerm
Term ::= OperatorTerm
Constant ::= BooleanConstant
Constant ::= IntegerConstant
Constant ::= StringConstant
Constant ::= UndefConstant
FunctionOrVariableTerm ::=
[declaration]::ElementDecl [terms]::TermOperatorTerm ::= [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]::TermUpdateRule ::= [function]::FunctionOrVariableTerm [updateTerm]::Term
ChooseRule ::=
[chooseId]::VariableDecl [inSet]::Universe [guard]::Term [ifChoosenRules]::Rule [ifNotChoosenRule]::RuleDoForallRule ::=
[id]::VariableDecl [inSet]::Universe [condition]::Term [doRule]::RuleConditionalRule ::=
[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]::ε