1 // 2 // File: CegoAdm.h 3 // This code was produced by the dragon parser generator 4 // 5 #include <lfcbase/Exception.h> 6 #include <lfcbase/Chain.h> 7 #include <lfcbase/ListT.h> 8 #define MAXTOKENVAL 100 9 10 class CegoAdm 11 { 12 13 public: 14 15 CegoAdm(); 16 virtual ~CegoAdm(); 17 18 void parse(); getTokenList()19 ListT<Chain>& getTokenList() { return _tokenList; } 20 21 protected: 22 23 virtual char nextChar() = 0; 24 virtual void backChar() = 0; 25 virtual void statementAction() = 0; 26 virtual void poolInfoAction() = 0; 27 virtual void parameterInfoAction() = 0; 28 virtual void tableSetInfoAction() = 0; 29 virtual void poolEntryListAction() = 0; 30 virtual void rawModeOn() = 0; 31 virtual void rawModeOff() = 0; 32 virtual void lockInfoAction() = 0; 33 virtual void listTableSetAction() = 0; 34 virtual void dataFileInfoAction() = 0; 35 virtual void archLogInfoAction() = 0; 36 virtual void logInfoAction() = 0; 37 virtual void objInfoAction() = 0; 38 virtual void listNodeAction() = 0; 39 virtual void dbSessionInfoAction() = 0; 40 virtual void buFileInfoAction() = 0; 41 virtual void buStatInfoAction() = 0; 42 virtual void buStatResetAction() = 0; 43 virtual void threadInfoAction() = 0; 44 virtual void lockStatAction() = 0; 45 virtual void dbThreadInfoAction() = 0; 46 virtual void dbThreadLastQueryAction() = 0; 47 virtual void admThreadInfoAction() = 0; 48 virtual void logThreadInfoAction() = 0; 49 virtual void copyInfoAction() = 0; 50 virtual void transactionInfoAction() = 0; 51 virtual void abortDbThreadAction() = 0; 52 virtual void retrieveTableSetAction() = 0; 53 virtual void defineTableSetAction() = 0; 54 virtual void createTableSetAction() = 0; 55 virtual void startTableSetAction() = 0; 56 virtual void stopTableSetAction() = 0; 57 virtual void copyTableSetAction() = 0; 58 virtual void switchTableSetAction() = 0; 59 virtual void switchSecondaryAction() = 0; 60 virtual void switchMediatorAction() = 0; 61 virtual void relocateSecondaryAction() = 0; 62 virtual void relocateMediatorAction() = 0; 63 virtual void dropTableSetAction() = 0; 64 virtual void removeTableSetAction() = 0; 65 virtual void resetTableSetAction() = 0; 66 virtual void addDataFileAction() = 0; 67 virtual void checkTableSetAction() = 0; 68 virtual void verifyTableSetAction() = 0; 69 virtual void correctTableSetAction() = 0; 70 virtual void addUserAction() = 0; 71 virtual void listUserAction() = 0; 72 virtual void removeUserAction() = 0; 73 virtual void changePwdAction() = 0; 74 virtual void assignRoleAction() = 0; 75 virtual void removeRoleAction() = 0; 76 virtual void listRoleAction() = 0; 77 virtual void showRoleAction() = 0; 78 virtual void createRoleAction() = 0; 79 virtual void dropRoleAction() = 0; 80 virtual void setPermAction() = 0; 81 virtual void setTableSetPerm() = 0; 82 virtual void setFilterPerm() = 0; 83 virtual void setRightPerm() = 0; 84 virtual void removePermAction() = 0; 85 virtual void traceOnAction() = 0; 86 virtual void traceOffAction() = 0; 87 virtual void enableArchLogAction() = 0; 88 virtual void disableArchLogAction() = 0; 89 virtual void addArchLogAction() = 0; 90 virtual void removeArchLogAction() = 0; 91 virtual void beginBackupAction() = 0; 92 virtual void executeBackupAction() = 0; 93 virtual void endBackupAction() = 0; 94 virtual void listBackupAction() = 0; 95 virtual void syncTableSetAction() = 0; 96 virtual void restoreTableSetAction() = 0; 97 virtual void recoverTableSetAction() = 0; 98 virtual void setLogMngAction() = 0; 99 virtual void setBackupMngAction() = 0; 100 virtual void showLogMngAction() = 0; 101 virtual void showBackupMngAction() = 0; 102 virtual void setTSInitFileAction() = 0; 103 virtual void setCheckpointAction() = 0; 104 virtual void setTSSysSizeAction() = 0; 105 virtual void setTSTmpSizeAction() = 0; 106 virtual void setTSAppSizeAction() = 0; 107 virtual void setTSRootPathAction() = 0; 108 virtual void setTSLogNumAction() = 0; 109 virtual void setTSLogSizeAction() = 0; 110 virtual void setTSSortAreaSizeAction() = 0; 111 virtual void setTSLogUserAction() = 0; 112 virtual void enableAutoCorrectAction() = 0; 113 virtual void disableAutoCorrectAction() = 0; 114 virtual void enableTableCacheAction() = 0; 115 virtual void disableTableCacheAction() = 0; 116 virtual void enableQueryCacheAction() = 0; 117 virtual void disableQueryCacheAction() = 0; 118 virtual void listQueryCacheAction() = 0; 119 virtual void cleanQueryCacheAction() = 0; 120 virtual void setQueryCacheParamAction() = 0; 121 virtual void setQueryCacheMaxEntry() = 0; 122 virtual void setQueryCacheMaxSize() = 0; 123 virtual void setQueryCacheHashRange() = 0; 124 virtual void listTableCacheAction() = 0; 125 virtual void cleanTableCacheAction() = 0; 126 virtual void setTableCacheEntryAction() = 0; 127 virtual void setTableCacheSizeAction() = 0; 128 virtual void exportTableAction() = 0; 129 virtual void exportTableSetAction() = 0; 130 virtual void exportTableSetStructureAction() = 0; 131 virtual void importTableAction() = 0; 132 virtual void importTableSetAction() = 0; 133 virtual void importTableSetStructureAction() = 0; 134 virtual void keepTicketAction() = 0; 135 virtual void syncCmdAction() = 0; 136 virtual void timeoutAction() = 0; 137 virtual void msgAction() = 0; 138 virtual void cleanupAction() = 0; 139 virtual void forceloadAction() = 0; 140 virtual void cpDumpAction() = 0; 141 virtual void noInitAction() = 0; 142 virtual void xmlModeAction() = 0; 143 virtual void binModeAction() = 0; 144 virtual void plainModeAction() = 0; 145 virtual void storePrimaryAttr() = 0; 146 virtual void storeSecondaryAttr() = 0; 147 virtual void storeSysSizeAttr() = 0; 148 virtual void storeTmpSizeAttr() = 0; 149 virtual void storeLogSizeAttr() = 0; 150 virtual void storeLogNumAttr() = 0; 151 virtual void storeAppSizeAttr() = 0; 152 virtual void storeSortAreaAttr() = 0; 153 virtual void storeTSRootAttr() = 0; 154 virtual void storePit() = 0; 155 virtual void getDbSpecAction() = 0; 156 virtual void getDbInfoAction() = 0; 157 virtual void setTableSetNodeAction() = 0; 158 virtual void copyFileAction() = 0; 159 virtual void dumpTable() = 0; 160 virtual void dumpUIndex() = 0; 161 162 enum Token { 163 IDENTIFIER, 164 INTVAL, 165 EQU, 166 SEMICOLON, 167 KSEP, 168 XML, 169 WITH, 170 VERIFY, 171 USER, 172 TSROOT, 173 TRANSACTION, 174 TRACE, 175 TO, 176 TMPSIZE, 177 THREADINFO, 178 THREAD, 179 TIMEOUT, 180 TABLESET, 181 TABLECACHE, 182 TABLE, 183 SYSSIZE, 184 SYNC, 185 SWITCH, 186 STOP_TOK, 187 START_TOK, 188 SHOW, 189 STRUCTURE, 190 SORTAREASIZE, 191 SIZE, 192 SETTSNODEINFO, 193 SET, 194 SESSION, 195 SECONDARY, 196 ROLE, 197 RIGHT, 198 RETRIEVE, 199 RESTORE, 200 RESET, 201 RECOVER, 202 REMOVE, 203 RELOCATE, 204 RAWMODE, 205 QUIT, 206 QUERYCACHE, 207 PRIMARY, 208 POOL, 209 PLAIN, 210 PERMISSION, 211 PASSWD, 212 PATH, 213 PARAMETER, 214 ON, 215 OFF, 216 OBJECT, 217 NOINIT, 218 NODE, 219 MESSAGE, 220 MEDIATOR, 221 MAXSIZE, 222 UINDEX, 223 IDENTIFIED, 224 LOGUSER, 225 LOGSIZE, 226 LOGNUM, 227 LOGMNG, 228 LOGFILE, 229 LOG, 230 LOCKSTAT, 231 LOCK, 232 LIST, 233 KEEP, 234 INITFILE, 235 IMPORT, 236 HASHRANGE, 237 GETDBINFO, 238 GETNODELIST, 239 GETTSLIST, 240 GETDBSPEC, 241 FROM, 242 FORCELOAD, 243 FOR, 244 FILTER, 245 FILE, 246 EXPORT, 247 MAXENTRY, 248 END_TOKEN, 249 ENABLE, 250 DUMP, 251 DROP, 252 DISABLE, 253 DEFINE, 254 DB, 255 DATAFILE, 256 CREATE, 257 CPDUMP, 258 CORRECT, 259 COPY, 260 CONNECT, 261 CLOSE, 262 CLEANUP, 263 CLEAN, 264 CHECKPOINT, 265 CHECK, 266 BY, 267 TSTICKET, 268 BUSTAT, 269 BUFILE, 270 BINARY, 271 BEGIN_TOKEN, 272 BACKUPMNG, 273 BACKUP, 274 AUTOCORRECT, 275 ASSIGN, 276 ARCHLOG, 277 APPSIZE, 278 ADM, 279 ADD, 280 ABORT, 281 STRINGVAL, 282 ENDTOKEN 283 }; 284 void setReserved(Token t); 285 286 private: 287 288 enum Symbol { PROD, TOKEN, NONE }; 289 enum ScannerStateType { START, INTERMEDIATE, FINAL, ANY }; 290 enum Action { SHIFT, REDUCE, ACCEPT, NULLACTION }; 291 enum Production { 292 Start, 293 PermList, 294 PermEntry, 295 QueryCacheParamList, 296 QueryCacheParam, 297 KeepTicketOpt, 298 SyncCmdOption, 299 TimeoutOpt, 300 MsgOption, 301 StartOptList, 302 StartOpt, 303 XPMode, 304 AttrList, 305 Attr, 306 PitOption, 307 Statement 308 }; 309 void loadScanner(); 310 void loadParser0(); 311 void loadParser1(); 312 void loadParser2(); 313 void loadParser3(); 314 void loadParser4(); 315 void loadParser5(); 316 void loadParser6(); 317 void loadParser7(); 318 void loadParser8(); 319 void loadParser9(); 320 void loadParser10(); 321 void loadParser11(); 322 void loadParser12(); 323 void loadParser13(); 324 void loadParser14(); 325 void loadParser15(); 326 327 class ScannerStateEntry { 328 329 public: 330 331 ScannerStateEntry(); 332 ScannerStateEntry(int state, ScannerStateType type = INTERMEDIATE); 333 ScannerStateEntry& operator = (const ScannerStateEntry& s); 334 bool operator == (const ScannerStateEntry& s); 335 336 int getState(); 337 ScannerStateType getType(); 338 339 private: 340 341 int _state; 342 ScannerStateType _type; 343 }; 344 345 class ScannerTransEntry { 346 347 public: 348 349 ScannerTransEntry(); 350 ScannerTransEntry(int state, char c); 351 ScannerTransEntry(int state, char c, int fstate); 352 ScannerTransEntry& operator = (const ScannerTransEntry& s); 353 bool operator == (const ScannerTransEntry& s); 354 355 int getFState(); 356 357 private: 358 359 int _state; 360 char _c; 361 int _fstate; 362 }; 363 364 class Scanner { 365 366 public: 367 368 Scanner(); 369 Scanner(Token t); 370 371 Token getToken(); 372 void addState(ScannerStateEntry s); 373 void addTransition(ScannerTransEntry t); 374 bool checkPattern(const Chain& pattern); 375 376 private: 377 378 Token _token; 379 ListT<ScannerStateEntry> _stateList; 380 ListT<ScannerTransEntry> _transList; 381 }; 382 383 ListT<Scanner> _scannerList; 384 class StackEntry { 385 386 public: 387 388 StackEntry(); 389 StackEntry(Symbol prod, int num, int state, Chain tval = ""); 390 StackEntry& operator = (const StackEntry& a); 391 392 int getState(); 393 Symbol getSymbol(); 394 Chain& getTval(); 395 396 private: 397 398 Symbol _symbol; 399 int _num; 400 int _state; 401 Chain _tval; 402 }; 403 404 class ActionEntry { 405 406 public: 407 408 ActionEntry(); 409 ActionEntry(Action action, int num); 410 bool operator == (const ActionEntry& a); 411 ActionEntry& operator = (const ActionEntry& a); 412 413 Action getAction(); 414 int getNum(); 415 416 private: 417 418 Action _action; 419 int _num; 420 }; 421 422 ActionEntry _actionMap[430][120]; 423 int _jumpMap[430][17]; 424 425 class ProdEntry { 426 427 public: 428 429 ProdEntry(); 430 ProdEntry(int id); 431 ProdEntry(int id, Production prod, int numSymbol); 432 bool operator == (const ProdEntry& a); 433 ProdEntry& operator = (const ProdEntry& a); 434 435 int getId(); 436 Production getProd(); 437 int getNumSymbol(); 438 439 private: 440 441 int _id; 442 Production _prod; 443 int _numSymbol; 444 445 }; 446 447 ListT<ProdEntry> _prodInfo; 448 449 bool isSepIgnore(char c); 450 bool isSepSign(char c); 451 bool shiftToken(); 452 453 bool getAction(int state, Token token, Action& a, int& num); 454 bool getJump(int state, Production prod, int& fstate); 455 456 Token _reservedToken; 457 bool _isReserved; 458 Token _token; 459 char _tokenVal[MAXTOKENVAL]; 460 ListT<Chain> _tokenList; 461 462 }; 463