没有合适的资源?快使用搜索试试~ 我知道了~
用于 Rust 的左递归 PEG
共31个文件
peg:11个
rs:11个
toml:4个
需积分: 5 0 下载量 109 浏览量
2021-06-28
19:05:27
上传
评论
收藏 24KB ZIP 举报
温馨提示
左递归解析表达式语法 (PEG)lrpeg 允许左递归规则,并使用ratpack 解析来提高速度。我写了一篇博文介绍lrpeg的思想。现有的 Rust PEG 解析器生成器不允许左递归,这使得编写语法变得非常尴尬。可以编写一个允许左递归的 PEG 解析器生成器,就像python 现在使用的一样。见IRP语法一个完整的lrpeg语法和处理的IRP 。如何使用 lrpeg在 build-dependencies 中将 lrpeg 添加到 Cargo.toml 中:[build-dependencies] lrpeg = "0" [dependencies] regex = "1" unicode-xid = "0.2"现在将build.rs添加到项目的根目录,包含:use std::path::PathBuf; fn main() { lrpeg::process_files(&PathBuf::from("src")); }编写您的 peg 语法,并将其放入以.peg结尾的文件中,例如src/calculator.peg :calculator <- expr EOI;
资源推荐
资源详情
资源评论
收起资源包目录
seanyoung-lrpeg.zip (31个子文件)
lrpeg-main
lrpeg-example
build.rs 175B
src
main.rs 3KB
calculator.peg 232B
Cargo.toml 203B
.github
workflows
test.yml 628B
LICENSE 1KB
Cargo.toml 69B
.gitignore 18B
lrpeg-test
build.rs 175B
src
lang.peg 147B
test2.peg 69B
calculator.peg 145B
direct_left_recursive.peg 29B
test1.peg 30B
repeat.peg 92B
lib.rs 6KB
irp.peg 3KB
indirect_left_recursive.peg 48B
Cargo.toml 236B
broken.peg 28B
lrpeg
src
utils.rs 1KB
bin
lrpeg.rs 402B
ast.rs 769B
peg.rs 29KB
peg.peg 584B
lib.rs 28KB
parser.rs 5KB
check.rs 2KB
Cargo.toml 395B
.gitignore 16B
README.md 6KB
共 31 条
- 1
资源评论
weixin_38516956
- 粉丝: 6
- 资源: 973
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功