#planning #parser #language #pddl #token

pddl-parser

A Rust 库用于解析 PDDL 文件

6 个版本

0.2.3 2024年2月12日
0.2.2 2024年2月7日
0.2.1 2024年1月31日
0.1.1 2023年6月21日
0.1.0 2023年5月8日

#942 in 解析器实现

Download history 1/week @ 2024-06-01 41/week @ 2024-06-29 60/week @ 2024-07-27

每月下载量 98

MIT/Apache

145KB
3K SLoC

Workflow codecov

PDDL 解析器

PDDL (规划领域定义语言) 文件的解析器。

使用方法

将以下内容添加到您的 Cargo.toml

pddl-parser = "0.1.0"

示例

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 需求

  • :strips
  • :typing
  • :equality
  • :fluents
  • :adl
  • :durative-actions
  • :derived-predicates
  • :numeric-fluents
  • :preferences
  • :constraints
  • :action-costs
  • :conditional-effects
  • :probabilistic-effects
  • :reward-effects

贡献

待办事项

  • 解析

    • 支持 PDDL 领域解析
    • 支持 PDDL 问题解析
    • 支持 PDDL 计划解析
  • PDDL 功能

    • 更好地支持类型(为变量分配类型等)
  • 测试

  • 错误处理

    • 自定义错误(使用 thiserror
    • 禁止 unwrap
    • 检查是否已消费所有输入
  • 文档

    • 为所有公共项添加文档

依赖项

~3.5MB
~44K SLoC