大量性能优化
针对真实文法持续优化隐式值、状态、规则查找、缓存和 Unicode 热路径。
pegtool 是一个使用 Go 编写的 PEG(Parsing Expression Grammar)解析器生成器,可以从同一套文法生成 Go、Haxe、TypeScript、C#、C99 和 Rust 源码。项目在 2024 年从 Pigeon 分叉,基线包含 Pigeon 2023 年 v1.2.x 发布线;此后文法和运行时已经独立演进。这个 fork 的首要原因是改善原版 Pigeon 在实际文法中的性能,围绕这一目标进行了大量优化;部分优化不得不调整文法和值语义,早期分析见 Pigeon #151。
pegtool -t go -o parser.go grammar.peg
pegtool -t hx -o Parser.hx grammar.peg
pegtool -t ts -o parser.ts grammar.peg
pegtool -t cs -o Parser.cs grammar.peg
pegtool -t c -o parser.c grammar.peg
pegtool -t rust -o parser.rs grammar.peg先保持默认
除非基准测试证明同一命名规则在同一输入位置被反复求值,否则先不要启用 memo。除非生成文件不参与代码审阅,否则先不要启用规则索引优化。