addTraceString.h
00001 #ifndef ADDTRACESTRING_H 00002 #define ADDTRACESTRING_H 00003 00004 #include <stdio.h> 00005 #include <vector> 00006 #include <string> 00007 #include <map> 00008 #include "traceString.h" 00009 class CxxScanner; 00010 class IO; 00011 class Token; 00012 class State; 00013 class Options; 00014 //==================================================== 00033 //==================================================== 00034 class AddTraceString 00035 { 00036 public: 00037 //==================================================== 00045 //==================================================== 00046 AddTraceString(); 00047 00048 ~AddTraceString(); 00049 00050 00051 //==================================================== 00068 //==================================================== 00069 void addTraceString(const char* fileName); 00070 00071 00072 //==================================================== 00076 //==================================================== 00077 void lpSet(int i) { m_lp = i; } 00078 00079 //==================================================== 00083 //==================================================== 00084 void lpAdd(int i) { m_lp += i; } 00085 00086 //==================================================== 00090 //==================================================== 00091 int lp() { return m_lp; } 00092 00093 //==================================================== 00097 //==================================================== 00098 void lbSet(int i) { m_lb = i; } 00099 00100 //==================================================== 00104 //==================================================== 00105 void lbAdd(int i) { m_lb += i; } 00106 00107 //==================================================== 00111 //==================================================== 00112 int lb() { return m_lb; } 00113 00114 //==================================================== 00118 //==================================================== 00119 void setFuncName(const char* fdec) { m_fdec.assign(fdec); } 00120 00121 //==================================================== 00125 //==================================================== 00126 std::string& funcName() { return m_fdec; } 00127 00128 //==================================================== 00132 //==================================================== 00133 void setFuncArgs(const char* s) { m_funcArgs.assign(s); } 00134 00135 //==================================================== 00139 //==================================================== 00140 void funcArgsAppend(const char* s) { m_funcArgs += s; } 00141 00142 //==================================================== 00146 //==================================================== 00147 std::string& funcArgs() { return m_funcArgs; } 00148 00149 //==================================================== 00153 //==================================================== 00154 void changeState(State* s); 00155 00156 //==================================================== 00160 //==================================================== 00161 Tbl& buildTbl(); 00162 00163 //==================================================== 00167 //==================================================== 00168 void namespacePop(); 00169 00170 //==================================================== 00174 //==================================================== 00175 void namespaceAppend(const char* s); 00176 00177 00178 //==================================================== 00182 //==================================================== 00183 void defineMacro(CxxScanner& scanner, Token& t); 00184 00185 //==================================================== 00189 //==================================================== 00190 void nameSpace(CxxScanner& scanner, Token& t); 00191 00192 //==================================================== 00197 //==================================================== 00198 void klass(CxxScanner& scanner, Token& t); 00199 00200 //==================================================== 00204 //==================================================== 00205 void enumDef(CxxScanner& scanner, Token& t); 00206 00207 //==================================================== 00211 //==================================================== 00212 void trace(CxxScanner& scanner, Token& t); 00213 00214 //==================================================== 00219 //==================================================== 00220 void templateBlk(CxxScanner& scanner, Token& t); 00221 00222 //==================================================== 00227 //==================================================== 00228 void structDef(CxxScanner& scanner, Token& t); 00229 00230 00231 private: 00232 //==================================================== 00236 //==================================================== 00237 int m_lp; 00238 00239 //==================================================== 00243 //==================================================== 00244 int m_lb; 00245 00246 //==================================================== 00250 //==================================================== 00251 State* mp_state; 00252 00253 00254 //==================================================== 00261 //==================================================== 00262 Tbl m_tbl; 00263 00264 //==================================================== 00268 //==================================================== 00269 std::string m_fdec; 00270 00271 //==================================================== 00275 //==================================================== 00276 std::string m_funcArgs; 00277 00278 //==================================================== 00282 //==================================================== 00283 std::string m_fqName; 00284 00285 //==================================================== 00289 //==================================================== 00290 std::string m_className; 00291 00292 //==================================================== 00296 //==================================================== 00297 std::string m_buffer; 00298 00299 00300 //==================================================== 00304 //==================================================== 00305 std::vector<char*> m_namespaceA; 00306 00307 }; 00308 00309 00310 00311 #endif //ADDTRACESTRING_H 00312