#ifndef _cpp_cpp_h_ #define _cpp_cpp_h_ #include using namespace Upp; struct CppMacro : Moveable { String body; Index param; bool variadic; bool flag; // used when expanding macros to mark those use; MT incompatible (!) String Expand(const Vector& p); String ToString() const; CppMacro() { flag = variadic = false; } }; struct Cpp { bool incomment; VectorMap macro; void Define(const char *s); static const char *SkipString(const char *s); void ParamAdd(Vector& param, const char *b, const char *e); String Expand(const char *s); String Preprocess(Stream& in, bool needresult = true); }; #endif