30 #ifndef s4g_preprocessor_h 31 #define s4g_preprocessor_h 33 #include <common/sxtypes.h> 34 #include <common/string.h> 35 #include <common/array.h> 36 #include <common/assotiativearray.h> 46 void define(
const char * def,
int len = 0,
bool bTemp =
false);
48 void undef(
const String & def);
53 String
process(
const char * src,
const char * file=0);
58 const char * getError();
79 AssotiativeArray<String, _define> m_mDefs;
80 Array<_include_path> m_vIncludes;
81 AssotiativeArray<String, _include> m_mIncludes;
86 bool isTrue(
const String & expr);
89 typedef AssotiativeArray<String, bool> ReplList;
91 String makeExpansion(
const String & expr);
92 String makeExpansion(
const String & expr, ReplList & rlist);
94 String replArgs(
const String & tok,
const _define * pDef,
const Array<String> & szArgs);
96 String checkDefines(
const String & expr);
98 String stringify(
const String & expr);
100 String getInclude(
const String & name, String * path = 0);
void define(const char *def, int len=0, bool bTemp=false)
Обьявляет новый дефайн
Definition: s4g_preprocessor.cpp:91
препроцессор
Definition: s4g_preprocessor.h:39
bool isDefined(const String &def)
Объявлен ли дефайн?
Definition: s4g_preprocessor.cpp:518
String process(const char *src, const char *file=0)
Запускает препроцессор для кода
Definition: s4g_preprocessor.cpp:212
void undef(const String &def)
Удаляет указанный дефайн
Definition: s4g_preprocessor.cpp:189
void undefTemp()
Уничтожает временные дефайны
Definition: s4g_preprocessor.cpp:201
void addIncPath(const String &s)
Добавляет путь поиска включаемых файлов
Definition: s4g_preprocessor.cpp:196