#peg-parser #peg #parser #ast #grammar #parser-generator

peginator_macro

peginator(PEG解析生成器)的便捷宏

12个版本

0.7.0 2024年2月11日
0.6.0 2022年11月28日
0.5.1 2022年11月28日
0.2.0 2022年7月17日

#54 in #peg


3 个crate中使用了(通过 bpf-script

MIT 许可证

275KB
6.5K SLoC

Peginator宏

peginator的proc-macro支持。请查阅主项目的文档和其他资源。

用法

use peginator_macro::peginate;
use peginator::PegParser;

peginate!("
@export
PizzaRule =
    'Pizza' 'with'
    toppings:Topping
    {',' toppings:Topping}
    ['and' toppings:Topping]
;
@string
Topping = 'sausage' | 'pineapple' | 'bacon' | 'cheese';
");

fn main() {
    let result = PizzaRule::parse("Pizza with sausage, bacon and cheese").unwrap();
    println!("{:?}", result.toppings);
}

依赖关系

~0.5–11MB
~74K SLoC