pddl-parser

Crates.iopddl-parser
lib.rspddl-parser
version0.2.3
sourcesrc
created_at2023-05-08 16:15:30.821334
updated_at2024-02-12 10:41:22.738406
descriptionA Rust library for parsing PDDL files
homepage
repositoryhttps://github.com/MrRobb/pddl-parser
max_upload_size
id859911
size679,547
Mr.Robb (MrRobb)

documentation

https://docs.rs/pddl-parser

README

Workflow codecov

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:

  • Error handling:

    • Custom errors (using thiserror)
    • Forbid unwrap
    • Check that all of the input has been consumed
  • Documentation:

    • Add documentation for all public items
Commit count: 152

cargo fmt