https://github.com/mrrobb/pddl-parser
Parser for PDDL (Planning Domain Definition Language) files.
https://github.com/mrrobb/pddl-parser
Last synced: 6 months ago
JSON representation
Parser for PDDL (Planning Domain Definition Language) files.
- Host: GitHub
- URL: https://github.com/mrrobb/pddl-parser
- Owner: MrRobb
- Created: 2023-01-09T17:29:56.000Z (over 3 years ago)
- Default Branch: nom
- Last Pushed: 2024-02-12T10:40:50.000Z (over 2 years ago)
- Last Synced: 2025-02-28T11:16:55.142Z (over 1 year ago)
- Language: PDDL
- Homepage:
- Size: 250 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

[](https://codecov.io/gh/MrRobb/pddl-parser)
# 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 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
- [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] Add tests for all PDDL files in [pddl-instances](https://github.com/potassco/pddl-instances)
- [x] Error handling:
- [x] Custom errors (using [thiserror](https://crates.io/crates/thiserror))
- [x] Forbid unwrap
- [x] Check that all of the input has been consumed
- [ ] Documentation:
- [ ] Add documentation for all public items