1 个不稳定版本
0.1.1 | 2024年7月4日 |
---|
#19 在 #nfa
128 每月下载量
用于 gregex
35KB
751 行
Gregex 宏
包含所有 gregex 函数的宏接口。
没有这些,用户将不得不依赖于生成节点树的函数。为了解释这一点,我们可以先看一个例子。
让我们看看正则表达式 a*
。
在我们的情况下,节点树将是,
Node::Operation(
Operator::Production,
Box::new(Node::Terminal('a', 0u32)),
None,
)
虽然我们可以将这个用函数或 macro_rules!
宏包装起来,但生成的代码相当庞大。我们可以在编译期间完成这项艰苦的工作,即把我们正则表达式转换为最终的 NFA。
目前无法转换为 NFA,但这个 crate 可以将其转换为节点树的中间形式。
依赖项
~1.5MB
~35K SLoC