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