BNF for NSParser.jj

NON-TERMINALS

script ::= ( namespaceDeclaration )* ( plan | kStoreDecl )* <EOF>
namespaceDeclaration ::= <USE> ( <NSDEFAULT> | <WORD> <FOR> ) ( <QUALIFIED_NAME> | <LT> <URI> <URI_GT> ) <DOT>
plan ::= <PLAN> ( identifierValue )? ( planElement )* <END> <DOT>
planElement ::= planWeight
| planComment
| planLabel
| planPostCondition
| planTrigger
| planBody
| planWithIntention
planWeight ::= <WEIGHT> <INTEGER_LITERAL>
planComment ::= <COMMENT> stringValue
planLabel ::= <LABEL> stringValue
planPostCondition ::= <POSTCONDITION> ksSentence
planTrigger ::= <TRIGGER> trigger
planWithIntention ::= <WITH> <INTENTION> ( ksVar | ksSymbol ) ( <VARS> ksVar ( <COMMA> ksVar )* )?
planBody ::= <DO> planStep0
planStep0 ::= planStep1 ( <PIPE> planStep0 )*
planStep1 ::= planStep2 ( <SEMICOLON> planStep1 )*
planStep2 ::= step
| <LPAREN> planStep0 <RPAREN>
step ::= ( printlnAct | printAct | shutdownAct | commitAct | failAct | maintainAct | postAct | intendAct | performAct | dropIntentionAct | invokeAct | assertAct | assertStrategyTermAct | retractAct | denyAct | sendAct | suspendAct | resumeAct | dispatchAct | agentNameAct | substituteVarsAct | evalExpression | holdsTest | occurredTest | hasPlanTest | unificationTest )
printAct ::= <PRINT> <LPAREN> ( logValueSeries )? <RPAREN>
printlnAct ::= <PRINTLN> <LPAREN> ( logValueSeries )? <RPAREN>
shutdownAct ::= <SHUTDOWN>
commitAct ::= <COMMIT>
failAct ::= <FAIL>
maintainAct ::= <MAINTAIN> ksSentence
postAct ::= <POST> ksEvent
intendAct ::= <INTEND> ( <THAT> ksSentence | <GOAL> ksIdentifierOrVar | ksIdentifierOrVar ) ( <AS> ksVar )?
invokeAct ::= <INVOKE> ksIdentifierOrVar
agentNameAct ::= <AGENTNAME> <LPAREN> ksVar <RPAREN>
substituteVarsAct ::= <SUBSTITUTE_VARS> <LPAREN> ( ksVar | stringLiteral ) <COMMA> ( ksVar | stringLiteral ) <RPAREN>
evalExpression ::= ( ksVar | intLiteral | doubleLiteral ) <IS> arithExpression
hasPlanTest ::= <HASPLAN> ksIdentifierOrVar
unificationTest ::= ksValue ( <EQUALS_EQUALS> | <NOT_EQUALS> ) ksValue
dropIntentionAct ::= <DROP> ( <INTEND> ( <THAT> ksSentence | <GOAL> ksIdentifierOrVar | ksIdentifierOrVar ) | <REFERENCE> ksSymbolOrVar )
performAct ::= <AT> ( <LBRACKET> ( <TYPE> <EQUALS> ksSymbol | ksSymbol ) ( <COMMA> ksSymbol <EQUALS> ksValue )* <RBRACKET> )? identifierValue
sendAct ::= <SEND> ksMessage
assertAct ::= <ASSERT> ksSentence ( ( <USING> <CONTEXT> ksSymbol ) | ( <IN> ksSymbol ) )?
assertStrategyTermAct ::= <ASSERT> ( <GOAL> | <STRATEGY> ) ( ksIdentifierOrVar )? ( <OUTCOME> ksSentence )? ( <STRATEGY> ksSymbolOrVar )? ( <PLAN> ksIdentifierOrVar )? ( <AS> ksSymbolOrVar )?
retractAct ::= <RETRACT> ksSentence ( ( <USING> <CONTEXT> ksSymbol ) | ( <IN> ksSymbol ) )?
denyAct ::= <DENY> ksSentence ( ( <USING> <CONTEXT> ksSymbol ) | ( <IN> ksSymbol ) )?
resumeAct ::= <RESUME> trigger
suspendAct ::= <SUSPEND> ( <FOR> duration )?
dispatchAct ::= <DISPATCH> ( ( ksSymbol ( <INTEGER_LITERAL> )? ) | ( <NS> ksSymbol ) )? <TO> ( ksSymbol ) ( <PRIORITY> <INTEGER_LITERAL> )? ( <IN> ksSymbol )?
holdsTest ::= <HOLDS> ( <PREMISE> )? ksSentence ( ( <USING> <CONTEXT> ksSymbol ) | ( <IN> ksSymbol ) )?
occurredTest ::= <OCCURRED> occurredExpr
kStoreDecl ::= <AXIOMS> ( identifierValue )? ( <STANDARDISED> )? ( <ONTOLOGY> ontologySpecification ( <COMMA> ontologySpecification )* )? ( <CONTAINS> axiomSpecification )? <END> <DOT>
ontologySpecification ::= ksSymbol
axiomSpecification ::= ( ksSentence <DOT> )*
sentences ::= ( ksSentence ( <DOT> ksSentence )* )? ( <DOT> )? <EOF>
ksSentence ::= ( sentenceTerm ( <LOG_AND> ksSentence | <LOG_OR> ksSentence | <LOG_IMPLIES> ksSentence | ) )
sentenceTerm ::= ( predicate | <LPAREN> ksSentence <RPAREN> | <NOT> sentenceTerm | <EXISTS> quantVars <COLON> ksSentence | <FORALL> quantVars <COLON> ksSentence | ksValue <EQUALS> ksValue | <B> ksSymbolOrVar <COLON> ksSentence | <I> ( ksSymbolOrVar )? <COLON> ksSentence | <I_THAT> ( ksSymbolOrVar )? <COLON> ksSentence | <D> ( ksSymbolOrVar )? <COLON> ksSentence )
quantVars ::= <IND_VARIABLE> ( <COMMA> <IND_VARIABLE> )*
predicate ::= ksSymbol <LPAREN> ( logValueSeries )? <RPAREN>
logicalLiteral ::= ( <NOT> )? predicate
ksValue ::= ( intLiteral | doubleLiteral | stringLiteral | booleanLiteral | ksVar | identifierValue | list | ksEvent | ksAction | ksMessage | ksReification | ksReference ) ( <FIELD_DEREF> ( ksSymbol ) )?
intLiteral ::= <INTEGER_LITERAL>
doubleLiteral ::= <DOUBLE_LITERAL>
stringLiteral ::= stringValue
stringValue ::= <STRING_LITERAL>
booleanLiteral ::= <TRUE>
| <FALSE>
ksVar ::= <IND_VARIABLE>
ksSymbol ::= ( <QUALIFIED_NAME> | <LT> <URI> <URI_GT> | <WORD> )
list ::= <LBRACKET> ( logValueSeries )? <RBRACKET>
term ::= ksSymbol <LPAREN> ( logValueSeries )? <RPAREN>
ksIdentifierOrVar ::= ( identifierValue | ksVar )
identifierValue ::= ksSymbol ( <LPAREN> ( logValueSeries )? <RPAREN> ( namedArgsList )? )?
fixedSymbolicValue ::= ksSymbol ( <LPAREN> ( logValueSeries )? <RPAREN> )?
ksEventOrMessage ::= ( ksEvent | ksMessage )
ksEvent ::= <EVENT> identifierValue
ksAction ::= <ACTION> identifierValue
ksMessage ::= <MESSAGE> ( identifierValue | namedArgsList )
namedArgsList ::= <LBRACE> ( namedPair )? ( <COMMA> namedPair )* <RBRACE>
namedPair ::= ksSymbol <EQUALS> ksValue
ksReification ::= <SENTENCE> <LPAREN> ksSentence <RPAREN>
ksReference ::= ( <IOTA> | <ALL> | <ANY> ) <LPAREN> ksValue <COMMA> ksSentence <RPAREN>
logValueSeries ::= ksValue ( <COMMA> ksValue )*
ksSymbolOrVar ::= ( ksVar | ksSymbol )
trigger ::= triggerTerm ( ( <LOG_AND> trigger ) | ( <LOG_OR> trigger ) )?
triggerTerm ::= ( <ON> triggerExpr | <AFTER> triggerExpr | <LPAREN> trigger <RPAREN> )
triggerExpr ::= ( ksVar <AS> )? ( <ANY> <EVENT> | <ANY> <MESSAGE> | ksEventOrMessage ( <TAG> triggerTag )? )
triggerTag ::= ( intLiteral | ksVar )
occurredExpr ::= triggerExpr ( ( <LOG_AND> occurredExpr ) | ( <LOG_OR> occurredExpr ) )?
duration ::= <INTEGER_LITERAL> <MS>
| <INTEGER_LITERAL> <S>
| <INTEGER_LITERAL> <MIN>
| <INTEGER_LITERAL> <H>
| <INTEGER_LITERAL> <COLON> <INTEGER_LITERAL> <COLON> <INTEGER_LITERAL> ( <DOT> <INTEGER_LITERAL> )?
namedParameterList ::= <LBRACE> ( ksSymbol <TILDE> ksValue ( <COMMA> ksSymbol <TILDE> ksValue )* )? <RBRACE>
arithExpression ::= expression1 ( ( <PLUS> arithExpression ) | ( <MINUS> arithExpression ) )?
expression1 ::= expression2 ( ( <TIMES> expression1 ) | ( <DIVIDE> expression1 ) | ( <REMAIN> expression1 ) )?
expression2 ::= ksValue
| <LPAREN> arithExpression <RPAREN>
| ksSymbol <LPAREN> arithExpression <RPAREN>
| ksSymbol <LPAREN> arithExpression <COMMA> arithExpression <RPAREN>