Использовать включенный текст в качестве аргумента макроса
Я пытаюсь создать возможность для анализа файла заголовка C во время компиляции (и генерировать набор числовых констант для использования в другом коде). Мне не нужно анализировать все конструкции файла заголовка, так как я контролирую его содержимое и знаю, что этот файл будет иметь только #define
в этом. Поэтому я попробовал следующее:
macro_rules! parse_defines {
($(#define $x:ident $v:expr)+) => {$(
const $x: isize = $v;
)+};
}
Работает когда пишу #define
s в самом коде, но не когда я использую include!
, так как include!
макрос не раскрывается до моего макроса, и он завершается с ошибкой "нет правил, ожидающих токен". Есть ли обходной путь для этого, или я должен пойти на макрос proc?