nom的“$ i”宏观论点来自何处?

问题描述 投票:5回答:1

我试图理解Rust宏如何捕获工作并且正在查看nom解析器库。

位置nom/src/bytes.rs宣布宏tag!($i:expr, $tag: expr)捕获。然而,在使用tag!的地方,只使用一个参数,即tag!("+")。示例:nom-lua52/op.rs。我读过有关宏的tutorials,但这个结构似乎很特别。

似乎输入$i是以某种方式隐含的?

macros rust nom
1个回答
6
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.