MrRobb / pddl-parser

Parser for PDDL (Planning Domain Definition Language) files.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Parser for PDDL (Planning Domain Definition Language) files.


Languages

Language:PDDL 77.5%Language:Rust 22.5%