Skip to content

MrRobb/pddl-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published