Использовать включенный текст в качестве аргумента макроса

Я пытаюсь создать возможность для анализа файла заголовка C во время компиляции (и генерировать набор числовых констант для использования в другом коде). Мне не нужно анализировать все конструкции файла заголовка, так как я контролирую его содержимое и знаю, что этот файл будет иметь только #define в этом. Поэтому я попробовал следующее:

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

Работает когда пишу #define s в самом коде, но не когда я использую include!, так как include! макрос не раскрывается до моего макроса, и он завершается с ошибкой "нет правил, ожидающих токен". Есть ли обходной путь для этого, или я должен пойти на макрос proc?

0 ответов

Другие вопросы по тегам