【问题标题】:Where does nom's "$i" macro argument come from?nom 的 "$i" 宏参数从何而来?
【发布时间】:2018-12-24 08:28:11
【问题描述】:

我正在尝试了解 Rust 宏捕获是如何工作的,并且正在查看 nom 解析器库。

位置nom/src/bytes.rs 声明宏tag! 使用($i:expr, $tag: expr) 捕获。 然而,在使用tag! 的所有地方,它只与一个参数一起使用,即tag!("+")。 示例:nom-lua52/op.rs。我已经阅读了tutorials 关于宏的信息,但是这个结构似乎很特别。

似乎输入$i 是某种隐式

【问题讨论】:

    标签: macros rust nom


    【解决方案1】:

    诀窍在于tag!() 宏调用在value! 宏内部,它将与tag! 匹配并传递一个附加参数。这在文件implementing tag! 中有描述。

    【讨论】:

      猜你喜欢
      • 2018-11-05
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 2018-09-09
      • 2015-11-09
      • 1970-01-01
      • 1970-01-01
      • 2017-05-14
      相关资源
      最近更新 更多