
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: §wip/ocl/expressions/extracted
Source used for this grammar: Julien Baudry, OCL_Expressions.ecore, 2006/07/10
OclExpression, SelfExp, ResultExp, VariableExp, VariableDeclaration, VariableInitialisation, ForAllExp, ExistsExp, SelectExp, RejectExp, CollectExp, IterateExp, Boolean, Integer, String), 0 root (—), 7 top (ForAllExp, ExistsExp, SelectExp, RejectExp, CollectExp, Boolean, Integer), 3 bottom (Type 3, OperationExp, QueryExp 6).[queryArg] 2, [querySrc] 2, [resultType] 2, [varDec] 3, [varInit] 4, [var] 2, [varType], [oclExpression], [queryExp], [initExpression], [iterateExp].OclExpression ::= SelfExp
OclExpression ::= ResultExp
OclExpression ::= VariableExp
OclExpression ::= OperationExp
OclExpression ::= QueryExp
SelfExp ::= [queryArg]::QueryExp [querySrc]::QueryExp [resultType]::Type [varDec]::VariableDeclaration [varInit]::VariableInitialisation
ResultExp ::= [queryArg]::QueryExp [querySrc]::QueryExp [resultType]::Type [varDec]::VariableDeclaration [varInit]::VariableInitialisation
VariableExp ::= [var]::String
VariableDeclaration ::= [var]::String [varType]::Type [oclExpression]::OclExpression [queryExp]::QueryExp [varInit]::VariableInitialisation
VariableInitialisation ::= [initExpression]::OclExpression [varDec]::VariableDeclaration [iterateExp]::IterateExp
ForAllExp ::= ε
ExistsExp ::= ε
SelectExp ::= ε
RejectExp ::= ε
CollectExp ::= ε
IterateExp ::= [varInit]::VariableInitialisation
Boolean ::= "true" "false"
Integer ::= integer
String ::= string