使用包含的文本作为宏参数

时间:2019-02-10 04:25:38

标签: rust rust-macros

我正在尝试在编译时解析C头文件的可能性(并生成一堆数字常量以供其他代码使用)。我不需要解析所有的头文件结构,因为我控制了它的内容并且知道该文件中仅包含#define。所以我尝试了以下方法:

macro_rules! parse_defines {
    ($(#define $x:ident $v:expr)+) => {$(
        const $x: isize = $v;
    )+};
}

它可以when I write #defines in the code itself使用,但是当我使用include!时不能使用,因为include!宏没有在我的宏被扩展之前被扩展,并且它失败了,并且“没有期望令牌的规则”错误。有什么解决方法吗,还是我必须使用proc宏?

0 个答案:

没有答案