#parser #parser-combinator #regex #macro

已删除 非正式

基于宏的解析器组合库

4.1.1 2021年2月7日
4.0.0 2021年2月7日
3.1.0 2021年1月31日
2.1.0 2021年1月24日
1.0.2 2021年1月17日

#144#parser-combinator

Download history 1/week @ 2024-06-26 33/week @ 2024-07-03 47/week @ 2024-07-24 12/week @ 2024-07-31

59 每月下载量

0BSD 许可证

28KB
511 代码行

非正式

这是一个基于宏的解析器组合库。


lib.rs:

非正式是一个库,可以帮助您使用几个简单的声明性宏来构建自己的解析器。

每个宏都会转换为具有以下类型的函数:fn (String, usize) -> ParseResult

使用方法

informal 中的宏主要是编写解析函数的语法糖,因此它们最终看起来像简化的函数声明。

informal 宏将接受一个标识符,然后是一个包含该解析器的一个或多个子解析器的代码块,具体取决于宏。

示例

例如,通过调用如下所示的 just! 宏来解析终端符号

just!( pub plus { "+"; } ); 

注意,您可以像常规函数一样指定 pub 可见性。

上述宏调用声明了一个函数,可以使用您提供的相同标识符通过 Stringusize 作为参数来调用。

assert!( plus ( String::from("+"), 0 ).is_ok() );

依赖关系

~2–3MB
~53K SLoC