2 releases
0.1.1 | Jun 21, 2023 |
---|---|
0.1.0 | May 8, 2023 |
#2465 in Parser implementations
21 downloads per month
91KB
2K
SLoC
PDDL Parser
Parser for PDDL (Planning Domain Definition Language) files.
Usage
Add this to your Cargo.toml
:
pddl-parser = "0.1.0"
Example
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));
}
PDDL Requirements supported
- :strips
- :typing
- :equality
- :fluents
- :adl
- :durative-actions
- :derived-predicates
- :numeric-fluents
- :preferences
- :constraints
- :action-costs
- :conditional-effects
- :probabilistic-effects
- :reward-effects
Contributing
TODO
-
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
Dependencies
~4–16MB
~163K SLoC