1个不稳定版本
0.0.1 | 2021年12月27日 |
---|
#58 in #peg
33KB
846 行
p-( ㅅ )
— 不优雅的解析器
p-arse
是一个专注于可读性和类型安全的PEG解析器库 • 它尽可能地遵循原始论文的语法 • 解析器是无参数的(它们通常是变量,而不是函数),与nom
的解析器相反,后者是函数或函数的组合 • 这鼓励用户绑定并命名许多中间解析器 • 在这方面与pest
相似
警告:项目处于早期阶段
示例
let parse_hex_dd = |s: &str| {
u8::from_str_radix(s, 16).unwrap()
};
let construct_color = |(r, g, b)| Color { r, g, b };
let hex_d = ('0'.to('9')).or('a'.to('f'));
let hex_dd = (hex_d, hex_d).maps(parse_hex_dd);
let color = ("#", hex_dd, hex_dd, hex_dd).r0().map(construct_color);
let (color, _tail) = color.p_arse("#defec8").unwrap();
查看其他示例:示例 • 我有一些来自其他解析器库的复制示例,例如 nom
的十六进制颜色 (我的), pest
的标识列表 (我的) 和 pom
的json (我的)
待办事项
- 添加文档
- 添加详细错误消息
- 允许访问解析器捕获的字符串切片(其子捕获的连接)(有点工作,除了使用
.rn()
的情况)