-
Notifications
You must be signed in to change notification settings - Fork 2
Constraints
Victor Mataré edited this page Dec 19, 2020
·
19 revisions
With the taptenc semantics, we can process constraints of the following forms:
Constraint ::= ActionFormula ":" StateFormula
ActionFormula ::= Hook "(" ActionSpec ")"
| ActionFormula "|" ActionFormula
| "during" "(" ActionSpec ")"
Hook ::= "start" | "end" | "finish" | "fail" | "cancel"
ActionSpec ::= ActionName "(" [ ActionArgs ] ")"
ActionArgs ::= "*" | Value [ "," ActionArgs ]
StateFormula ::= AtomicSF
| UnaryOp AtomicSF
| AtomicSF BinaryOp AtomicSF
AtomicSF ::= "state" "(" Component ")"
| AtomicSF "|" AtomicSF
| "!" AtomicSF
UnaryOp ::= "future" | "past"
BinaryOp ::= "until" | "since"
Note that the general golog++ constraint syntax is less restrictive than this, so more powerful platform semantics can be implemented without extending the parser.