1 个不稳定发布
0.1.0 | 2024年1月31日 |
---|
#8 在 #pddl
61KB
1.5K SLoC
Spingus
一个简单、快速且健壮的PDDL解析器
Spingus 有三个目标
- 健壮 - 在常用的PDDL域和问题上进行过测试
- 快速 - 优化并基准测试以尽可能快
- 简单 - 为了易于使用而避免使用不常用的PDDL语法
示例
use spingus::problem::objects::Object;
let input = "(define (problem prob)
(:objects o1)
(:init (p o1))
(:goal (not (p o3)))
)";
let problem = spingus::problem::parse(&input);
assert_eq!(problem.name, Some("prob"));
assert_eq!(problem.domain, None);
assert_eq!(problem.objects, Some(vec![Object { name: "o1", type_name: None }]));
//...
基准测试
在i5-13600k上使用 Criterion 进行基准测试
吞吐量 | 解析时间(见 此处) | |
---|---|---|
域 | 96 MiB/s | 4 µs |
问题 | 726 MiB/s | 726 ns |
计划 | 727 MiB/s | 378 ns |
依赖项
~3MB
~23K SLoC