
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: §wip/atl/Jess/extracted
Source used for this grammar: Guillaume Doux, Jess 1.0, Jess.ecore, 2008/04/08
LocatedElement, Root, Expression, Integ, Floa, Str, Ident, ValidIdentifier, SlotName, JessVariable, TemplateExpression, SlotOp, DefinitionExp, GlobalDefinition, VarDefinition, FunctionDefinition, AdviceDefinition, UnDefAdvice, FactDefinition, RuleDefinition, DeclareRule, ModuleDefinition, QueryDefinition, DeclareVar, TemplateDefinition, DeclareBloc, ASlotDef, SlotDef, MultiSlotDef, SlotOptions, UseFuncExp, WhileExp, ForExp, ForeachExp, FuncCall, EngineExp, ExitExp, IfExpression, ConditionAction, ElifConditionAction, Advice, Boolean, Integer, String), 0 root (—), 1 top (LocatedElement), 1 bottom (Double).[expressions] 5, [val] 6, [templateName] 2, [firstSlot], [slotOp], [slotIdent], [operator], [exp], [varDef], [jessVar], [eq], [expression], [funcName] 2, [parameters], [direction], [op] 2, [advice], [factName], [documentation] 5, [fact], [ruleName], [declare] 2, [conditions], [functionCall], [salience], [nodeIndexHash], [autoFocus], [noLoop], [moduleName], [queryName], [var] 2, [node], [max], [inherits], [declareBloc], [slotDef], [slotSpecific], [backchainReaction], [fromClass], [includeVariable], [order], [slotName] 3, [optionals] 3, [type], [def], [defaultDyn], [allowedValues], [hasDo], [boolExp], [actions] 2, [initializer], [condition] 2, [increment], [list], [funcParam], [ifthen], [elifthen], [else], [condAct], [before], [after].LocatedElement ::= Root
LocatedElement ::= Expression
LocatedElement ::= SlotOp
LocatedElement ::= VarDefinition
LocatedElement ::= DeclareRule
LocatedElement ::= DeclareVar
LocatedElement ::= DeclareBloc
LocatedElement ::= ASlotDef
LocatedElement ::= SlotOptions
LocatedElement ::= ConditionAction
LocatedElement ::= ElifConditionAction
Root ::=
[expressions]::ExpressionExpression ::= Integ
Expression ::= Floa
Expression ::= Str
Expression ::= Ident
Expression ::= TemplateExpression
Expression ::= DefinitionExp
Expression ::= UseFuncExp
Integ ::= [val]::Integer
Floa ::= [val]::Double
Str ::= [val]::String
Ident ::= ValidIdentifier
Ident ::= SlotName
Ident ::= JessVariable
ValidIdentifier ::= [val]::String
SlotName ::= [val]::String
JessVariable ::= [val]::String
TemplateExpression ::=
[templateName]::ValidIdentifier [firstSlot]::SlotOp [slotOp]::SlotOpSlotOp ::= [slotIdent]::SlotName [operator]::ValidIdentifier [exp]::Expression
DefinitionExp ::= GlobalDefinition
DefinitionExp ::= FunctionDefinition
DefinitionExp ::= AdviceDefinition
DefinitionExp ::= UnDefAdvice
DefinitionExp ::= FactDefinition
DefinitionExp ::= RuleDefinition
DefinitionExp ::= ModuleDefinition
DefinitionExp ::= QueryDefinition
DefinitionExp ::= TemplateDefinition
GlobalDefinition ::=
[varDef]::VarDefinitionVarDefinition ::= [jessVar]::JessVariable [eq]::ValidIdentifier [expression]::Expression
FunctionDefinition ::= [funcName]::ValidIdentifier [parameters]::JessVariable [expressions]::Expression
AdviceDefinition ::=
[direction]::Advice [op]::Ident [advice]::ExpressionUnDefAdvice ::= [op]::Expression
FactDefinition ::=
[factName]::ValidIdentifier [documentation]::Str [fact]::ExpressionRuleDefinition ::= [ruleName]::ValidIdentifier [documentation]::Str [declare]::DeclareRule [conditions]::Expression [functionCall]::UseFuncExp
DeclareRule ::= [salience]::Expression [nodeIndexHash]::Expression [autoFocus]::ValidIdentifier [noLoop]::ValidIdentifier
ModuleDefinition ::= [moduleName]::ValidIdentifier [documentation]::Str
QueryDefinition ::=
[queryName]::ValidIdentifier [documentation]::Str [declare]::DeclareVar [expressions]::ExpressionDeclareVar ::=
[var]::JessVariable [node]::Expression [max]::ExpressionTemplateDefinition ::= [templateName]::ValidIdentifier [inherits]::ValidIdentifier [documentation]::Str [declareBloc]::DeclareBloc [slotDef]::ASlotDef
DeclareBloc ::= [slotSpecific]::ValidIdentifier [backchainReaction]::ValidIdentifier [fromClass]::ValidIdentifier [includeVariable]::ValidIdentifier [order]::ValidIdentifier
ASlotDef ::= SlotDef
ASlotDef ::= MultiSlotDef
ASlotDef ::=
[slotName]::SlotName [optionals]::SlotOptionsSlotDef ::=
[slotName]::SlotName [optionals]::SlotOptionsMultiSlotDef ::=
[slotName]::SlotName [optionals]::SlotOptionsSlotOptions ::=
[type]::ValidIdentifier [def]::Expression [defaultDyn]::Expression [allowedValues]::ExpressionUseFuncExp ::= WhileExp
UseFuncExp ::= ForExp
UseFuncExp ::= ForeachExp
UseFuncExp ::= FuncCall
UseFuncExp ::= EngineExp
UseFuncExp ::= ExitExp
UseFuncExp ::= IfExpression
WhileExp ::=
[hasDo]::Boolean [boolExp]::Expression [actions]::ExpressionForExp ::=
[initializer]::Expression [condition]::Expression [increment]::Expression [expressions]::ExpressionForeachExp ::=
[var]::JessVariable [list]::Expression [expressions]::ExpressionFuncCall ::=
[funcName]::ValidIdentifier [funcParam]::ExpressionEngineExp ::= ε
ExitExp ::= ε
IfExpression ::= [ifthen]::ConditionAction [elifthen]::ElifConditionAction [else]::Expression
ConditionAction ::=
[condition]::Expression [actions]::ExpressionElifConditionAction ::= [condAct]::ConditionAction
Advice ::= [before]::ε [after]::ε
Boolean ::= "true" "false"
Integer ::= integer
String ::= string