-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathforge.bnf
24 lines (20 loc) · 1.73 KB
/
forge.bnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<s> ::= [?xml version=%1.0% encoding=%UTF-8%?]<root>
<root> ::= <sequence> | <selector>
<sequence> ::= [Sequence]<ppa>[/Sequence] | [Sequence]<root><root>[/Sequence] | [Sequence]<sequence> <root>[/Sequence]
<selector> ::= [Selector]<ppa>[/Selector] | [Selector]<root><root>[/Selector] | [Selector]<selector> <root>[/Selector]
<ppa> ::= [Selector]<postconditions><ppasequence>[/Selector]
<postconditions>::= <SuccessNode> | <ppa> | [Sequence]<postcondition>[/Sequence]
<postcondition> ::= <postcondition>[PostCnd]<postconditiont>[/PostCnd]|[PostCnd]<postconditiont>[/PostCnd]
<postconditiont> ::= NeighbourObjects_<objects>|NeighbourObjects_<sobjects>|NeighbourObjects_<dobjects>|IsCarrying_<dobjects>|IsVisitedBefore_<sobjects>
<ppasequence> ::= [Sequence]<preconditions>[Act]<action>[/Act][/Sequence]|[Sequence]<constraints>[Act]<action>[/Act][/Sequence]|[Sequence]<preconditions><constraints>[Act]<action>[/Act][/Sequence]
<preconditions> ::= [Sequence]<precondition>[/Sequence]
<precondition> ::= <precondition>[PreCnd]<preconditiont>[/PreCnd]|[PreCnd]<preconditiont>[/PreCnd]
<preconditiont> ::=IsDropable_<sobjects>|NeighbourObjects_<objects>|NeighbourObjects_<objects>_invert|IsVisitedBefore_<sobjects>|IsVisitedBefore_<sobjects>_invert|IsCarrying_<dobjects>|IsCarrying_<dobjects>_invert
<constraints> ::= [Sequence]<constraint>[/Sequence]
<constraint> ::= <constraint>[Cnstr]<constraintt>[/Cnstr]|[Cnstr]<constraintt>[/Cnstr]
<constraintt> ::=CanMove|IsCarryable_<dobjects>|IsDropable_<sobjects>
<action> ::= MoveTowards_<sobjects>_Avoid|Explore_0_Avoid|MoveAway_<sobjects>_Avoid|CompositeSingleCarry_<dobjects>|CompositeDrop_<dobjects>
<sobjects>::=Hub|Sites
<dobjects>::=Food
<objects>::=<sobjects>|<dobjects>
<SuccessNode> ::= [PostCnd]DummyNode[/PostCnd]