Parser for PDDL (Planning Domain Definition Language) files.
Add this to your Cargo.toml
:
pddl-parser = "0.1.0"
use pddl_parser::domain::Domain;
fn main() {
let domain_file = include_str!("../tests/domain.pddl");
let domain = Domain::parse(domain_file);
domain.predicates.iter().for_each(|p| println!("{:?}", p.name));
}
- :strips
- :typing
- :equality
- :fluents
- :adl
- :durative-actions
- :derived-predicates
- :numeric-fluents
- :preferences
- :constraints
- :action-costs
- :conditional-effects
- :probabilistic-effects
- :reward-effects
-
Parsing:
- Support PDDL domain parsing
- Support PDDL problem parsing
- Support PDDL plan parsing
-
PDDL Features
- Better support for types (assign types to variables, etc.)
-
Testing:
- Add tests for all PDDL files in pddl-instances
-
Error handling:
- Custom errors (using thiserror)
- Forbid unwrap
- Check that all of the input has been consumed
-
Documentation:
- Add documentation for all public items