A PDDL 3.1 parser implementation in Rust.
Parsers were implemented for the following elements listed in the paper:
"Complete BNF description of PDDL 3.1 (completely corrected)", Daniel L. Kovacs
-
<domain>
-
<require-def>
-
<require-key>
-
<types-def>
-
<constants-def>
-
<predicates-def>
-
<atomic formula skeleton>
-
<predicate>
-
<variable>
-
<atomic function skeleton>
-
<function-symbol>
-
<functions-def>
-
<function typed list (x)>
-
<function type>
-
<constraints>
-
<structure-def>
-
<typed list (x)>
-
<primitive-type>
-
<type>
-
<emptyOr (x)>
-
<action-def>
-
<action-symbol>
-
<action-def body>
-
<pre-GD>
-
<pref-GD>
-
<pref-name>
-
<GD>
-
<f-comp>
-
<literal(t)>
-
<atomic formula(t)>
-
<term>
-
<function-term>
-
<f-exp>
-
<f-head>
-
<binary-op>
-
<multi-op>
-
<binary-comp>
-
<name>
-
<letter>
-
<any char>
-
<number>
-
<digit>
-
<decimal>
-
<effect>
-
<c-effect>
(partially implemented; missing:conditional-effects
variant) -
<p-effect>
(partially implemented; missing:numeric-fluents
and:object-fluents
variants) -
<cond-effect>
-
<assign-op>
-
<durative-action-def>
-
<da-symbol>
-
<da-def body>
-
<da-GD>
-
<pref-timed-GD>
-
<timed-GD>
-
<time-specifier>
-
<interval>
-
<duration-constraint>
-
<simple-duration-constraint>
-
<d-op>
-
<d-value>
-
<da-effect>
-
<timed-effect>
-
<f-assign-da>
-
<f-exp-da>
-
<assign-op-t>
-
<f-exp-t>
-
<derived-def>
-
<problem>
-
<object declaration>
-
<init>
-
<init-el>
-
<basic-function-term>
-
<goal>
-
<constraints>
-
<pref-con-GD>
-
<con-GD>
-
<metric-spec>
-
<optimization>
-
<metric-f-exp>
-
<length-spec>
-
<con-GD>
-
<con2-GD>
The following requirements can be parsed. Note that all requirement specific features are parsed unconditionally. A planner needs to ensure that it accepts or rejects a plan accordingly based on the stated domain requirements.
-
:strips
-
:typing
-
:negative-preconditions
-
:disjunctive-preconditions
-
:equality
-
:existential-preconditions
-
:universal-preconditions
-
:quantified-preconditions
-
:conditional-effects
-
:fluents
-
:numeric-fluents
-
:adl
-
:durative-actions
-
:duration-inequalities
-
:continuous-effects
-
:derived-predicates
-
:timed-initial-literals
-
:preferences
-
:constraints
-
:action-costs