#regex #nfa #automata #macro #proc-macro #gregex

macro gregex-macros

gregex crate 的 Proc-Macros

1 个不稳定版本

0.1.1 2024年7月4日

#19#nfa

Download history 119/week @ 2024-07-04 2/week @ 2024-07-11 2/week @ 2024-07-18 5/week @ 2024-07-25

128 每月下载量
用于 gregex

MIT 许可证

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