У меня есть исходный файл C/C++ с условной компиляцией. Прежде чем отправлять его клиентам, я хочу удалить большинство операторов #if, так что моим клиентам не нужно беспокоиться о передаче правильных опций -D компилятору.Parsing C++ preprocessor #if statements
У меня это реализовано и работает в Python, но оно обрабатывает только инструкции #ifdef и #ifndef. Мне нужно добавить поддержку операторов #if, но синтаксис #if намного сложнее. (Например, вы можете использовать & &, ||,!, Скобки, реляционные операторы, арифметические и т. Д.).
Есть ли какой-либо существующий открытый код для анализа и оценки операторов #if? (Желательно на Python).
Единственная реализация, которую я знаю, это GCC, и это слишком сложно для этой задачи.
Насколько я могу судить, это поддерживает только подмножество синтаксиса #if. (Довольно большое подмножество, но я надеялся на полную поддержку, чтобы избежать риска будущих «ошибок», потому что инструмент делает вещи по-разному », - сказал Майк) – user9876 2008-11-28 15:02:36