.developing preprocesor

git-svn-id: svn://ultimatepp.org/upp/trunk@8155 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2015-02-08 18:06:59 +00:00
parent 5018b1906a
commit c635cd80d2
11 changed files with 176 additions and 43 deletions

View file

@ -15,14 +15,18 @@ public:
struct CppMacro : Moveable<CppMacro> {
String body;
Index<String> param;
bool flag;
bool variadic;
bool flag; // used when expanding macros to mark those use; MT incompatible (!)
String Expand(const Vector<String>& p);
CppMacro() { flag = false; }
String ToString() const;
CppMacro() { flag = variadic = false; }
};
struct Cpp {
bool incomment;
VectorMap<String, CppMacro> macro;
void Define(const char *s);
@ -31,6 +35,8 @@ struct Cpp {
void ParamAdd(Vector<String>& param, const char *b, const char *e);
String Expand(const char *s);
String Preprocess(Stream& in, bool needresult = true);
};