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