1 //
2 // File: OracleParser.cc
3 // This code was produced by the dragon parser generator
4 //
5 #include "OracleParser.h"
6 #include <lfcbase/Exception.h>
7 #include <lfcbase/StackT.h>
8
ScannerStateEntry()9 OracleParser::ScannerStateEntry::ScannerStateEntry()
10 {
11 }
12
ScannerStateEntry(int state,ScannerStateType type)13 OracleParser::ScannerStateEntry::ScannerStateEntry(int state, ScannerStateType type)
14 {
15 _state = state;
16 _type = type;
17 }
18
operator =(const OracleParser::ScannerStateEntry & s)19 OracleParser::ScannerStateEntry& OracleParser::ScannerStateEntry::operator = (const OracleParser::ScannerStateEntry& s)
20 {
21 _state = s._state;
22 _type = s._type;
23 return(*this);
24 }
25
operator ==(const OracleParser::ScannerStateEntry & s)26 bool OracleParser::ScannerStateEntry::operator == (const OracleParser::ScannerStateEntry& s)
27 {
28 if ( _state == s._state )
29 return true;
30 return false;
31 }
32
getType()33 OracleParser::ScannerStateType OracleParser::ScannerStateEntry::getType()
34 {
35 return _type;
36 }
getState()37 int OracleParser::ScannerStateEntry::getState()
38 {
39 return _state;
40 }
41
42
ScannerTransEntry()43 OracleParser::ScannerTransEntry::ScannerTransEntry()
44 {
45 }
46
ScannerTransEntry(int state,char c)47 OracleParser::ScannerTransEntry::ScannerTransEntry(int state, char c)
48 {
49 _state = state;
50 _c = c;
51 }
52
ScannerTransEntry(int state,char c,int fstate)53 OracleParser::ScannerTransEntry::ScannerTransEntry(int state, char c, int fstate)
54 {
55 _state = state;
56 _c = c;
57 _fstate = fstate;
58 }
59
operator =(const OracleParser::ScannerTransEntry & s)60 OracleParser::ScannerTransEntry& OracleParser::ScannerTransEntry::operator = (const OracleParser::ScannerTransEntry& s)
61 {
62 _state = s._state;
63 _c = s._c;
64 _fstate = s._fstate;
65 return(*this);
66 }
67
operator ==(const OracleParser::ScannerTransEntry & s)68 bool OracleParser::ScannerTransEntry::operator == (const OracleParser::ScannerTransEntry& s)
69 {
70 if ( _state == s._state && _c == s._c)
71 return true;
72 return false;
73 }
74
getFState()75 int OracleParser::ScannerTransEntry::getFState()
76 {
77 return _fstate;
78 }
79
80
Scanner()81 OracleParser::Scanner::Scanner()
82 {
83 }
84
85
Scanner(Token t)86 OracleParser::Scanner::Scanner(Token t)
87 {
88 _token = t;
89 }
90
getToken()91 OracleParser::Token OracleParser::Scanner::getToken()
92 {
93 return _token;
94 }
95
addState(ScannerStateEntry s)96 void OracleParser::Scanner::addState(ScannerStateEntry s)
97 {
98 _stateList.Insert(s);
99 }
100
addTransition(ScannerTransEntry t)101 void OracleParser::Scanner::addTransition(ScannerTransEntry t)
102 {
103 _transList.Insert(t);
104 }
105
checkPattern(const Chain & p)106 bool OracleParser::Scanner::checkPattern(const Chain& p)
107 {
108 unsigned long state = 0;
109 ScannerStateEntry* pS = _stateList.First();
110 while (pS)
111 {
112 if (pS->getType() == START || pS->getType() == ANY)
113 {
114 state = pS->getState();
115 pS = 0;
116 }
117 else
118 {
119 pS = _stateList.Next();
120 }
121 }
122 unsigned long i = 0;
123 ScannerTransEntry* pT =
124 _transList.Find(ScannerTransEntry(state, p[i]));
125 while (pT)
126 {
127 ScannerStateEntry* pS = _stateList.Find(ScannerStateEntry(pT->getFState()));
128 if (pS)
129 {
130 if ( ( i == p.length()-2 ) && ( pS->getType() == FINAL || pS->getType() == ANY))
131 {
132 return true;
133 }
134 else
135 {
136 state = pT->getFState();
137 }
138 }
139 else
140 {
141 return false;
142 }
143 i++;
144 pT = _transList.Find(ScannerTransEntry(state, p[i]));
145 }
146 return false;
147 }
StackEntry()148 OracleParser::StackEntry::StackEntry()
149 {
150 _symbol = NONE;
151 }
152
StackEntry(Symbol symbol,int num,int state,Chain tval)153 OracleParser::StackEntry::StackEntry(Symbol symbol, int num, int state, Chain tval)
154 {
155 _symbol=symbol;
156 _num=num;
157 _state=state;
158 _tval=tval;
159 }
160
operator =(const OracleParser::StackEntry & se)161 OracleParser::StackEntry& OracleParser::StackEntry::operator = (const OracleParser::StackEntry& se)
162 {
163 _symbol=se._symbol;
164 _num=se._num;
165 _state=se._state;
166 _tval=se._tval;
167 return(*this);
168 }
169
getState()170 int OracleParser::StackEntry::getState()
171 {
172 return _state;
173 }
getSymbol()174 OracleParser::Symbol OracleParser::StackEntry::getSymbol()
175 {
176 return _symbol;
177 }
getTval()178 Chain& OracleParser::StackEntry::getTval()
179 {
180 return _tval;
181 }
182
ActionEntry()183 OracleParser::ActionEntry::ActionEntry()
184 {
185 _action=NULLACTION;
186 }
187
ActionEntry(Action action,int num)188 OracleParser::ActionEntry::ActionEntry(Action action , int num)
189 {
190 _action=action;
191 _num=num;
192 }
193
operator ==(const OracleParser::ActionEntry & ae)194 bool OracleParser::ActionEntry::operator == (const OracleParser::ActionEntry& ae)
195 {
196 if (_action == ae._action && _num == ae._num)
197 return true;
198 return false;
199 }
200
operator =(const OracleParser::ActionEntry & ae)201 OracleParser::ActionEntry& OracleParser::ActionEntry::operator = (const OracleParser::ActionEntry& ae)
202 {
203 _action=ae._action;
204 _num=ae._num;
205 return(*this);
206 }
207
getAction()208 OracleParser::Action OracleParser::ActionEntry::getAction()
209 {
210 return _action;
211 }
212
getNum()213 int OracleParser::ActionEntry::getNum()
214 {
215 return _num;
216 }
217
ProdEntry()218 OracleParser::ProdEntry::ProdEntry()
219 {
220 }
221
ProdEntry(int id)222 OracleParser::ProdEntry::ProdEntry(int id)
223 {
224 _id = id;
225 }
226
ProdEntry(int id,Production prod,int numSymbol)227 OracleParser::ProdEntry::ProdEntry(int id, Production prod, int numSymbol)
228 {
229 _id = id;
230 _prod = prod;
231 _numSymbol = numSymbol;
232 }
233
operator ==(const OracleParser::ProdEntry & pe)234 bool OracleParser::ProdEntry::operator == (const OracleParser::ProdEntry& pe)
235 {
236 if (_id == pe._id)
237 return true;
238 return false;
239 }
240
operator =(const OracleParser::ProdEntry & pe)241 OracleParser::ProdEntry& OracleParser::ProdEntry::operator = (const OracleParser::ProdEntry& pe)
242 {
243 _id = pe._id;
244 _prod = pe._prod;
245 _numSymbol = pe._numSymbol;
246 return(*this);
247 }
248
249
getId()250 int OracleParser::ProdEntry::getId()
251 {
252 return _id;
253 }
254
getProd()255 OracleParser::Production OracleParser::ProdEntry::getProd()
256 {
257 return _prod;
258 }
259
getNumSymbol()260 int OracleParser::ProdEntry::getNumSymbol()
261 {
262 return _numSymbol;
263 }
loadScanner()264 void OracleParser::loadScanner()
265 {
266 Scanner s0(BOOL);
267 s0.addState(ScannerStateEntry(0 ,INTERMEDIATE));
268 s0.addState(ScannerStateEntry(1 ,INTERMEDIATE));
269 s0.addState(ScannerStateEntry(2 ,START));
270 s0.addState(ScannerStateEntry(3 ,INTERMEDIATE));
271 s0.addState(ScannerStateEntry(4 ,FINAL));
272 s0.addTransition(ScannerTransEntry(0 ,'o' ,1));
273 s0.addTransition(ScannerTransEntry(1 ,'o' ,3));
274 s0.addTransition(ScannerTransEntry(2 ,'b' ,0));
275 s0.addTransition(ScannerTransEntry(3 ,'l' ,4));
276 _scannerList.Insert(s0);
277
278 Scanner s1(CREATE);
279 s1.addState(ScannerStateEntry(0 ,INTERMEDIATE));
280 s1.addState(ScannerStateEntry(1 ,INTERMEDIATE));
281 s1.addState(ScannerStateEntry(2 ,START));
282 s1.addState(ScannerStateEntry(3 ,INTERMEDIATE));
283 s1.addState(ScannerStateEntry(4 ,INTERMEDIATE));
284 s1.addState(ScannerStateEntry(5 ,INTERMEDIATE));
285 s1.addState(ScannerStateEntry(6 ,FINAL));
286 s1.addTransition(ScannerTransEntry(0 ,'r' ,1));
287 s1.addTransition(ScannerTransEntry(1 ,'e' ,3));
288 s1.addTransition(ScannerTransEntry(2 ,'c' ,0));
289 s1.addTransition(ScannerTransEntry(3 ,'a' ,4));
290 s1.addTransition(ScannerTransEntry(4 ,'t' ,5));
291 s1.addTransition(ScannerTransEntry(5 ,'e' ,6));
292 _scannerList.Insert(s1);
293
294 Scanner s2(DATETIME);
295 s2.addState(ScannerStateEntry(0 ,INTERMEDIATE));
296 s2.addState(ScannerStateEntry(1 ,INTERMEDIATE));
297 s2.addState(ScannerStateEntry(2 ,START));
298 s2.addState(ScannerStateEntry(3 ,INTERMEDIATE));
299 s2.addState(ScannerStateEntry(4 ,INTERMEDIATE));
300 s2.addState(ScannerStateEntry(5 ,INTERMEDIATE));
301 s2.addState(ScannerStateEntry(6 ,INTERMEDIATE));
302 s2.addState(ScannerStateEntry(7 ,INTERMEDIATE));
303 s2.addState(ScannerStateEntry(8 ,FINAL));
304 s2.addTransition(ScannerTransEntry(0 ,'a' ,1));
305 s2.addTransition(ScannerTransEntry(1 ,'t' ,3));
306 s2.addTransition(ScannerTransEntry(2 ,'d' ,0));
307 s2.addTransition(ScannerTransEntry(3 ,'e' ,4));
308 s2.addTransition(ScannerTransEntry(4 ,'t' ,5));
309 s2.addTransition(ScannerTransEntry(5 ,'i' ,6));
310 s2.addTransition(ScannerTransEntry(6 ,'m' ,7));
311 s2.addTransition(ScannerTransEntry(7 ,'e' ,8));
312 _scannerList.Insert(s2);
313
314 Scanner s3(DECIMAL);
315 s3.addState(ScannerStateEntry(0 ,INTERMEDIATE));
316 s3.addState(ScannerStateEntry(1 ,INTERMEDIATE));
317 s3.addState(ScannerStateEntry(2 ,START));
318 s3.addState(ScannerStateEntry(3 ,INTERMEDIATE));
319 s3.addState(ScannerStateEntry(4 ,INTERMEDIATE));
320 s3.addState(ScannerStateEntry(5 ,INTERMEDIATE));
321 s3.addState(ScannerStateEntry(6 ,INTERMEDIATE));
322 s3.addState(ScannerStateEntry(7 ,FINAL));
323 s3.addTransition(ScannerTransEntry(0 ,'e' ,1));
324 s3.addTransition(ScannerTransEntry(1 ,'c' ,3));
325 s3.addTransition(ScannerTransEntry(2 ,'d' ,0));
326 s3.addTransition(ScannerTransEntry(3 ,'i' ,4));
327 s3.addTransition(ScannerTransEntry(4 ,'m' ,5));
328 s3.addTransition(ScannerTransEntry(5 ,'a' ,6));
329 s3.addTransition(ScannerTransEntry(6 ,'l' ,7));
330 _scannerList.Insert(s3);
331
332 Scanner s4(DEFAULT);
333 s4.addState(ScannerStateEntry(0 ,INTERMEDIATE));
334 s4.addState(ScannerStateEntry(1 ,INTERMEDIATE));
335 s4.addState(ScannerStateEntry(2 ,START));
336 s4.addState(ScannerStateEntry(3 ,INTERMEDIATE));
337 s4.addState(ScannerStateEntry(4 ,INTERMEDIATE));
338 s4.addState(ScannerStateEntry(5 ,INTERMEDIATE));
339 s4.addState(ScannerStateEntry(6 ,INTERMEDIATE));
340 s4.addState(ScannerStateEntry(7 ,FINAL));
341 s4.addTransition(ScannerTransEntry(0 ,'e' ,1));
342 s4.addTransition(ScannerTransEntry(1 ,'f' ,3));
343 s4.addTransition(ScannerTransEntry(2 ,'d' ,0));
344 s4.addTransition(ScannerTransEntry(3 ,'a' ,4));
345 s4.addTransition(ScannerTransEntry(4 ,'u' ,5));
346 s4.addTransition(ScannerTransEntry(5 ,'l' ,6));
347 s4.addTransition(ScannerTransEntry(6 ,'t' ,7));
348 _scannerList.Insert(s4);
349
350 Scanner s5(DOUBLE);
351 s5.addState(ScannerStateEntry(0 ,INTERMEDIATE));
352 s5.addState(ScannerStateEntry(1 ,INTERMEDIATE));
353 s5.addState(ScannerStateEntry(2 ,START));
354 s5.addState(ScannerStateEntry(3 ,INTERMEDIATE));
355 s5.addState(ScannerStateEntry(4 ,INTERMEDIATE));
356 s5.addState(ScannerStateEntry(5 ,INTERMEDIATE));
357 s5.addState(ScannerStateEntry(6 ,FINAL));
358 s5.addTransition(ScannerTransEntry(0 ,'o' ,1));
359 s5.addTransition(ScannerTransEntry(1 ,'u' ,3));
360 s5.addTransition(ScannerTransEntry(2 ,'d' ,0));
361 s5.addTransition(ScannerTransEntry(3 ,'b' ,4));
362 s5.addTransition(ScannerTransEntry(4 ,'l' ,5));
363 s5.addTransition(ScannerTransEntry(5 ,'e' ,6));
364 _scannerList.Insert(s5);
365
366 Scanner s6(DROP);
367 s6.addState(ScannerStateEntry(0 ,INTERMEDIATE));
368 s6.addState(ScannerStateEntry(1 ,INTERMEDIATE));
369 s6.addState(ScannerStateEntry(2 ,START));
370 s6.addState(ScannerStateEntry(3 ,INTERMEDIATE));
371 s6.addState(ScannerStateEntry(4 ,FINAL));
372 s6.addTransition(ScannerTransEntry(0 ,'r' ,1));
373 s6.addTransition(ScannerTransEntry(1 ,'o' ,3));
374 s6.addTransition(ScannerTransEntry(2 ,'d' ,0));
375 s6.addTransition(ScannerTransEntry(3 ,'p' ,4));
376 _scannerList.Insert(s6);
377
378 Scanner s7(ENUM);
379 s7.addState(ScannerStateEntry(0 ,INTERMEDIATE));
380 s7.addState(ScannerStateEntry(1 ,INTERMEDIATE));
381 s7.addState(ScannerStateEntry(2 ,START));
382 s7.addState(ScannerStateEntry(3 ,INTERMEDIATE));
383 s7.addState(ScannerStateEntry(4 ,FINAL));
384 s7.addTransition(ScannerTransEntry(0 ,'n' ,1));
385 s7.addTransition(ScannerTransEntry(1 ,'u' ,3));
386 s7.addTransition(ScannerTransEntry(2 ,'e' ,0));
387 s7.addTransition(ScannerTransEntry(3 ,'m' ,4));
388 _scannerList.Insert(s7);
389
390 Scanner s8(ENGINE);
391 s8.addState(ScannerStateEntry(0 ,INTERMEDIATE));
392 s8.addState(ScannerStateEntry(1 ,INTERMEDIATE));
393 s8.addState(ScannerStateEntry(2 ,START));
394 s8.addState(ScannerStateEntry(3 ,INTERMEDIATE));
395 s8.addState(ScannerStateEntry(4 ,INTERMEDIATE));
396 s8.addState(ScannerStateEntry(5 ,INTERMEDIATE));
397 s8.addState(ScannerStateEntry(6 ,FINAL));
398 s8.addTransition(ScannerTransEntry(0 ,'n' ,1));
399 s8.addTransition(ScannerTransEntry(1 ,'g' ,3));
400 s8.addTransition(ScannerTransEntry(2 ,'e' ,0));
401 s8.addTransition(ScannerTransEntry(3 ,'i' ,4));
402 s8.addTransition(ScannerTransEntry(4 ,'n' ,5));
403 s8.addTransition(ScannerTransEntry(5 ,'e' ,6));
404 _scannerList.Insert(s8);
405
406 Scanner s9(EXISTS);
407 s9.addState(ScannerStateEntry(0 ,INTERMEDIATE));
408 s9.addState(ScannerStateEntry(1 ,INTERMEDIATE));
409 s9.addState(ScannerStateEntry(2 ,START));
410 s9.addState(ScannerStateEntry(3 ,INTERMEDIATE));
411 s9.addState(ScannerStateEntry(4 ,INTERMEDIATE));
412 s9.addState(ScannerStateEntry(5 ,INTERMEDIATE));
413 s9.addState(ScannerStateEntry(6 ,FINAL));
414 s9.addTransition(ScannerTransEntry(0 ,'x' ,1));
415 s9.addTransition(ScannerTransEntry(1 ,'i' ,3));
416 s9.addTransition(ScannerTransEntry(2 ,'e' ,0));
417 s9.addTransition(ScannerTransEntry(3 ,'s' ,4));
418 s9.addTransition(ScannerTransEntry(4 ,'t' ,5));
419 s9.addTransition(ScannerTransEntry(5 ,'s' ,6));
420 _scannerList.Insert(s9);
421
422 Scanner s10(FALSEVAL);
423 s10.addState(ScannerStateEntry(0 ,INTERMEDIATE));
424 s10.addState(ScannerStateEntry(1 ,INTERMEDIATE));
425 s10.addState(ScannerStateEntry(2 ,START));
426 s10.addState(ScannerStateEntry(3 ,INTERMEDIATE));
427 s10.addState(ScannerStateEntry(4 ,INTERMEDIATE));
428 s10.addState(ScannerStateEntry(5 ,FINAL));
429 s10.addTransition(ScannerTransEntry(0 ,'a' ,1));
430 s10.addTransition(ScannerTransEntry(1 ,'l' ,3));
431 s10.addTransition(ScannerTransEntry(2 ,'f' ,0));
432 s10.addTransition(ScannerTransEntry(3 ,'s' ,4));
433 s10.addTransition(ScannerTransEntry(4 ,'e' ,5));
434 _scannerList.Insert(s10);
435
436 Scanner s11(FLOAT);
437 s11.addState(ScannerStateEntry(0 ,INTERMEDIATE));
438 s11.addState(ScannerStateEntry(1 ,INTERMEDIATE));
439 s11.addState(ScannerStateEntry(2 ,START));
440 s11.addState(ScannerStateEntry(3 ,INTERMEDIATE));
441 s11.addState(ScannerStateEntry(4 ,INTERMEDIATE));
442 s11.addState(ScannerStateEntry(5 ,FINAL));
443 s11.addTransition(ScannerTransEntry(0 ,'l' ,1));
444 s11.addTransition(ScannerTransEntry(1 ,'o' ,3));
445 s11.addTransition(ScannerTransEntry(2 ,'f' ,0));
446 s11.addTransition(ScannerTransEntry(3 ,'a' ,4));
447 s11.addTransition(ScannerTransEntry(4 ,'t' ,5));
448 _scannerList.Insert(s11);
449
450 Scanner s12(FOREIGN);
451 s12.addState(ScannerStateEntry(0 ,INTERMEDIATE));
452 s12.addState(ScannerStateEntry(1 ,INTERMEDIATE));
453 s12.addState(ScannerStateEntry(2 ,START));
454 s12.addState(ScannerStateEntry(3 ,INTERMEDIATE));
455 s12.addState(ScannerStateEntry(4 ,INTERMEDIATE));
456 s12.addState(ScannerStateEntry(5 ,INTERMEDIATE));
457 s12.addState(ScannerStateEntry(6 ,INTERMEDIATE));
458 s12.addState(ScannerStateEntry(7 ,FINAL));
459 s12.addTransition(ScannerTransEntry(0 ,'o' ,1));
460 s12.addTransition(ScannerTransEntry(1 ,'r' ,3));
461 s12.addTransition(ScannerTransEntry(2 ,'f' ,0));
462 s12.addTransition(ScannerTransEntry(3 ,'e' ,4));
463 s12.addTransition(ScannerTransEntry(4 ,'i' ,5));
464 s12.addTransition(ScannerTransEntry(5 ,'g' ,6));
465 s12.addTransition(ScannerTransEntry(6 ,'n' ,7));
466 _scannerList.Insert(s12);
467
468 Scanner s13(IF);
469 s13.addState(ScannerStateEntry(0 ,INTERMEDIATE));
470 s13.addState(ScannerStateEntry(1 ,FINAL));
471 s13.addState(ScannerStateEntry(2 ,START));
472 s13.addTransition(ScannerTransEntry(0 ,'f' ,1));
473 s13.addTransition(ScannerTransEntry(2 ,'i' ,0));
474 _scannerList.Insert(s13);
475
476 Scanner s14(INDEX);
477 s14.addState(ScannerStateEntry(0 ,INTERMEDIATE));
478 s14.addState(ScannerStateEntry(1 ,INTERMEDIATE));
479 s14.addState(ScannerStateEntry(2 ,START));
480 s14.addState(ScannerStateEntry(3 ,INTERMEDIATE));
481 s14.addState(ScannerStateEntry(4 ,INTERMEDIATE));
482 s14.addState(ScannerStateEntry(5 ,FINAL));
483 s14.addTransition(ScannerTransEntry(0 ,'n' ,1));
484 s14.addTransition(ScannerTransEntry(1 ,'d' ,3));
485 s14.addTransition(ScannerTransEntry(2 ,'i' ,0));
486 s14.addTransition(ScannerTransEntry(3 ,'e' ,4));
487 s14.addTransition(ScannerTransEntry(4 ,'x' ,5));
488 _scannerList.Insert(s14);
489
490 Scanner s15(INT);
491 s15.addState(ScannerStateEntry(0 ,INTERMEDIATE));
492 s15.addState(ScannerStateEntry(1 ,INTERMEDIATE));
493 s15.addState(ScannerStateEntry(2 ,START));
494 s15.addState(ScannerStateEntry(3 ,FINAL));
495 s15.addTransition(ScannerTransEntry(0 ,'n' ,1));
496 s15.addTransition(ScannerTransEntry(1 ,'t' ,3));
497 s15.addTransition(ScannerTransEntry(2 ,'i' ,0));
498 _scannerList.Insert(s15);
499
500 Scanner s16(INTO);
501 s16.addState(ScannerStateEntry(0 ,INTERMEDIATE));
502 s16.addState(ScannerStateEntry(1 ,INTERMEDIATE));
503 s16.addState(ScannerStateEntry(2 ,START));
504 s16.addState(ScannerStateEntry(3 ,INTERMEDIATE));
505 s16.addState(ScannerStateEntry(4 ,FINAL));
506 s16.addTransition(ScannerTransEntry(0 ,'n' ,1));
507 s16.addTransition(ScannerTransEntry(1 ,'t' ,3));
508 s16.addTransition(ScannerTransEntry(2 ,'i' ,0));
509 s16.addTransition(ScannerTransEntry(3 ,'o' ,4));
510 _scannerList.Insert(s16);
511
512 Scanner s17(INSERT);
513 s17.addState(ScannerStateEntry(0 ,INTERMEDIATE));
514 s17.addState(ScannerStateEntry(1 ,INTERMEDIATE));
515 s17.addState(ScannerStateEntry(2 ,START));
516 s17.addState(ScannerStateEntry(3 ,INTERMEDIATE));
517 s17.addState(ScannerStateEntry(4 ,INTERMEDIATE));
518 s17.addState(ScannerStateEntry(5 ,INTERMEDIATE));
519 s17.addState(ScannerStateEntry(6 ,FINAL));
520 s17.addTransition(ScannerTransEntry(0 ,'n' ,1));
521 s17.addTransition(ScannerTransEntry(1 ,'s' ,3));
522 s17.addTransition(ScannerTransEntry(2 ,'i' ,0));
523 s17.addTransition(ScannerTransEntry(3 ,'e' ,4));
524 s17.addTransition(ScannerTransEntry(4 ,'r' ,5));
525 s17.addTransition(ScannerTransEntry(5 ,'t' ,6));
526 _scannerList.Insert(s17);
527
528 Scanner s18(KEY);
529 s18.addState(ScannerStateEntry(0 ,INTERMEDIATE));
530 s18.addState(ScannerStateEntry(1 ,INTERMEDIATE));
531 s18.addState(ScannerStateEntry(2 ,START));
532 s18.addState(ScannerStateEntry(3 ,FINAL));
533 s18.addTransition(ScannerTransEntry(0 ,'e' ,1));
534 s18.addTransition(ScannerTransEntry(1 ,'y' ,3));
535 s18.addTransition(ScannerTransEntry(2 ,'k' ,0));
536 _scannerList.Insert(s18);
537
538 Scanner s19(LOCK);
539 s19.addState(ScannerStateEntry(0 ,INTERMEDIATE));
540 s19.addState(ScannerStateEntry(1 ,INTERMEDIATE));
541 s19.addState(ScannerStateEntry(2 ,START));
542 s19.addState(ScannerStateEntry(3 ,INTERMEDIATE));
543 s19.addState(ScannerStateEntry(4 ,FINAL));
544 s19.addTransition(ScannerTransEntry(0 ,'o' ,1));
545 s19.addTransition(ScannerTransEntry(1 ,'c' ,3));
546 s19.addTransition(ScannerTransEntry(2 ,'l' ,0));
547 s19.addTransition(ScannerTransEntry(3 ,'k' ,4));
548 _scannerList.Insert(s19);
549
550 Scanner s20(LONGBLOB);
551 s20.addState(ScannerStateEntry(0 ,INTERMEDIATE));
552 s20.addState(ScannerStateEntry(1 ,INTERMEDIATE));
553 s20.addState(ScannerStateEntry(2 ,START));
554 s20.addState(ScannerStateEntry(3 ,INTERMEDIATE));
555 s20.addState(ScannerStateEntry(4 ,INTERMEDIATE));
556 s20.addState(ScannerStateEntry(5 ,INTERMEDIATE));
557 s20.addState(ScannerStateEntry(6 ,INTERMEDIATE));
558 s20.addState(ScannerStateEntry(7 ,INTERMEDIATE));
559 s20.addState(ScannerStateEntry(8 ,FINAL));
560 s20.addTransition(ScannerTransEntry(0 ,'o' ,1));
561 s20.addTransition(ScannerTransEntry(1 ,'n' ,3));
562 s20.addTransition(ScannerTransEntry(2 ,'l' ,0));
563 s20.addTransition(ScannerTransEntry(3 ,'g' ,4));
564 s20.addTransition(ScannerTransEntry(4 ,'b' ,5));
565 s20.addTransition(ScannerTransEntry(5 ,'l' ,6));
566 s20.addTransition(ScannerTransEntry(6 ,'o' ,7));
567 s20.addTransition(ScannerTransEntry(7 ,'b' ,8));
568 _scannerList.Insert(s20);
569
570 Scanner s21(MEDIUMTEXT);
571 s21.addState(ScannerStateEntry(0 ,INTERMEDIATE));
572 s21.addState(ScannerStateEntry(1 ,INTERMEDIATE));
573 s21.addState(ScannerStateEntry(2 ,START));
574 s21.addState(ScannerStateEntry(3 ,INTERMEDIATE));
575 s21.addState(ScannerStateEntry(4 ,INTERMEDIATE));
576 s21.addState(ScannerStateEntry(5 ,INTERMEDIATE));
577 s21.addState(ScannerStateEntry(6 ,INTERMEDIATE));
578 s21.addState(ScannerStateEntry(7 ,INTERMEDIATE));
579 s21.addState(ScannerStateEntry(8 ,INTERMEDIATE));
580 s21.addState(ScannerStateEntry(9 ,INTERMEDIATE));
581 s21.addState(ScannerStateEntry(10 ,FINAL));
582 s21.addTransition(ScannerTransEntry(0 ,'e' ,1));
583 s21.addTransition(ScannerTransEntry(1 ,'d' ,3));
584 s21.addTransition(ScannerTransEntry(2 ,'m' ,0));
585 s21.addTransition(ScannerTransEntry(3 ,'i' ,4));
586 s21.addTransition(ScannerTransEntry(4 ,'u' ,5));
587 s21.addTransition(ScannerTransEntry(5 ,'m' ,6));
588 s21.addTransition(ScannerTransEntry(6 ,'t' ,7));
589 s21.addTransition(ScannerTransEntry(7 ,'e' ,8));
590 s21.addTransition(ScannerTransEntry(8 ,'x' ,9));
591 s21.addTransition(ScannerTransEntry(9 ,'t' ,10));
592 _scannerList.Insert(s21);
593
594 Scanner s22(NOT);
595 s22.addState(ScannerStateEntry(0 ,INTERMEDIATE));
596 s22.addState(ScannerStateEntry(1 ,INTERMEDIATE));
597 s22.addState(ScannerStateEntry(2 ,START));
598 s22.addState(ScannerStateEntry(3 ,FINAL));
599 s22.addTransition(ScannerTransEntry(0 ,'o' ,1));
600 s22.addTransition(ScannerTransEntry(1 ,'t' ,3));
601 s22.addTransition(ScannerTransEntry(2 ,'n' ,0));
602 _scannerList.Insert(s22);
603
604 Scanner s23(NULLTOKEN);
605 s23.addState(ScannerStateEntry(0 ,INTERMEDIATE));
606 s23.addState(ScannerStateEntry(1 ,INTERMEDIATE));
607 s23.addState(ScannerStateEntry(2 ,START));
608 s23.addState(ScannerStateEntry(3 ,INTERMEDIATE));
609 s23.addState(ScannerStateEntry(4 ,FINAL));
610 s23.addTransition(ScannerTransEntry(0 ,'u' ,1));
611 s23.addTransition(ScannerTransEntry(1 ,'l' ,3));
612 s23.addTransition(ScannerTransEntry(2 ,'n' ,0));
613 s23.addTransition(ScannerTransEntry(3 ,'l' ,4));
614 _scannerList.Insert(s23);
615
616 Scanner s24(PRIMARY);
617 s24.addState(ScannerStateEntry(0 ,INTERMEDIATE));
618 s24.addState(ScannerStateEntry(1 ,INTERMEDIATE));
619 s24.addState(ScannerStateEntry(2 ,START));
620 s24.addState(ScannerStateEntry(3 ,INTERMEDIATE));
621 s24.addState(ScannerStateEntry(4 ,INTERMEDIATE));
622 s24.addState(ScannerStateEntry(5 ,INTERMEDIATE));
623 s24.addState(ScannerStateEntry(6 ,INTERMEDIATE));
624 s24.addState(ScannerStateEntry(7 ,FINAL));
625 s24.addTransition(ScannerTransEntry(0 ,'r' ,1));
626 s24.addTransition(ScannerTransEntry(1 ,'i' ,3));
627 s24.addTransition(ScannerTransEntry(2 ,'p' ,0));
628 s24.addTransition(ScannerTransEntry(3 ,'m' ,4));
629 s24.addTransition(ScannerTransEntry(4 ,'a' ,5));
630 s24.addTransition(ScannerTransEntry(5 ,'r' ,6));
631 s24.addTransition(ScannerTransEntry(6 ,'y' ,7));
632 _scannerList.Insert(s24);
633
634 Scanner s25(SET);
635 s25.addState(ScannerStateEntry(0 ,INTERMEDIATE));
636 s25.addState(ScannerStateEntry(1 ,INTERMEDIATE));
637 s25.addState(ScannerStateEntry(2 ,START));
638 s25.addState(ScannerStateEntry(3 ,FINAL));
639 s25.addTransition(ScannerTransEntry(0 ,'e' ,1));
640 s25.addTransition(ScannerTransEntry(1 ,'t' ,3));
641 s25.addTransition(ScannerTransEntry(2 ,'s' ,0));
642 _scannerList.Insert(s25);
643
644 Scanner s26(TABLE);
645 s26.addState(ScannerStateEntry(0 ,INTERMEDIATE));
646 s26.addState(ScannerStateEntry(1 ,INTERMEDIATE));
647 s26.addState(ScannerStateEntry(2 ,START));
648 s26.addState(ScannerStateEntry(3 ,INTERMEDIATE));
649 s26.addState(ScannerStateEntry(4 ,INTERMEDIATE));
650 s26.addState(ScannerStateEntry(5 ,FINAL));
651 s26.addTransition(ScannerTransEntry(0 ,'a' ,1));
652 s26.addTransition(ScannerTransEntry(1 ,'b' ,3));
653 s26.addTransition(ScannerTransEntry(2 ,'t' ,0));
654 s26.addTransition(ScannerTransEntry(3 ,'l' ,4));
655 s26.addTransition(ScannerTransEntry(4 ,'e' ,5));
656 _scannerList.Insert(s26);
657
658 Scanner s27(TABLES);
659 s27.addState(ScannerStateEntry(0 ,INTERMEDIATE));
660 s27.addState(ScannerStateEntry(1 ,INTERMEDIATE));
661 s27.addState(ScannerStateEntry(2 ,START));
662 s27.addState(ScannerStateEntry(3 ,INTERMEDIATE));
663 s27.addState(ScannerStateEntry(4 ,INTERMEDIATE));
664 s27.addState(ScannerStateEntry(5 ,INTERMEDIATE));
665 s27.addState(ScannerStateEntry(6 ,FINAL));
666 s27.addTransition(ScannerTransEntry(0 ,'a' ,1));
667 s27.addTransition(ScannerTransEntry(1 ,'b' ,3));
668 s27.addTransition(ScannerTransEntry(2 ,'t' ,0));
669 s27.addTransition(ScannerTransEntry(3 ,'l' ,4));
670 s27.addTransition(ScannerTransEntry(4 ,'e' ,5));
671 s27.addTransition(ScannerTransEntry(5 ,'s' ,6));
672 _scannerList.Insert(s27);
673
674 Scanner s28(TEXT);
675 s28.addState(ScannerStateEntry(0 ,INTERMEDIATE));
676 s28.addState(ScannerStateEntry(1 ,INTERMEDIATE));
677 s28.addState(ScannerStateEntry(2 ,START));
678 s28.addState(ScannerStateEntry(3 ,INTERMEDIATE));
679 s28.addState(ScannerStateEntry(4 ,FINAL));
680 s28.addTransition(ScannerTransEntry(0 ,'e' ,1));
681 s28.addTransition(ScannerTransEntry(1 ,'x' ,3));
682 s28.addTransition(ScannerTransEntry(2 ,'t' ,0));
683 s28.addTransition(ScannerTransEntry(3 ,'t' ,4));
684 _scannerList.Insert(s28);
685
686 Scanner s29(TIMESTAMP);
687 s29.addState(ScannerStateEntry(0 ,INTERMEDIATE));
688 s29.addState(ScannerStateEntry(1 ,INTERMEDIATE));
689 s29.addState(ScannerStateEntry(2 ,START));
690 s29.addState(ScannerStateEntry(3 ,INTERMEDIATE));
691 s29.addState(ScannerStateEntry(4 ,INTERMEDIATE));
692 s29.addState(ScannerStateEntry(5 ,INTERMEDIATE));
693 s29.addState(ScannerStateEntry(6 ,INTERMEDIATE));
694 s29.addState(ScannerStateEntry(7 ,INTERMEDIATE));
695 s29.addState(ScannerStateEntry(8 ,INTERMEDIATE));
696 s29.addState(ScannerStateEntry(9 ,FINAL));
697 s29.addTransition(ScannerTransEntry(0 ,'i' ,1));
698 s29.addTransition(ScannerTransEntry(1 ,'m' ,3));
699 s29.addTransition(ScannerTransEntry(2 ,'t' ,0));
700 s29.addTransition(ScannerTransEntry(3 ,'e' ,4));
701 s29.addTransition(ScannerTransEntry(4 ,'s' ,5));
702 s29.addTransition(ScannerTransEntry(5 ,'t' ,6));
703 s29.addTransition(ScannerTransEntry(6 ,'a' ,7));
704 s29.addTransition(ScannerTransEntry(7 ,'m' ,8));
705 s29.addTransition(ScannerTransEntry(8 ,'p' ,9));
706 _scannerList.Insert(s29);
707
708 Scanner s30(UNLOCK);
709 s30.addState(ScannerStateEntry(0 ,INTERMEDIATE));
710 s30.addState(ScannerStateEntry(1 ,INTERMEDIATE));
711 s30.addState(ScannerStateEntry(2 ,START));
712 s30.addState(ScannerStateEntry(3 ,INTERMEDIATE));
713 s30.addState(ScannerStateEntry(4 ,INTERMEDIATE));
714 s30.addState(ScannerStateEntry(5 ,INTERMEDIATE));
715 s30.addState(ScannerStateEntry(6 ,FINAL));
716 s30.addTransition(ScannerTransEntry(0 ,'n' ,1));
717 s30.addTransition(ScannerTransEntry(1 ,'l' ,3));
718 s30.addTransition(ScannerTransEntry(2 ,'u' ,0));
719 s30.addTransition(ScannerTransEntry(3 ,'o' ,4));
720 s30.addTransition(ScannerTransEntry(4 ,'c' ,5));
721 s30.addTransition(ScannerTransEntry(5 ,'k' ,6));
722 _scannerList.Insert(s30);
723
724 Scanner s31(UNIQUE);
725 s31.addState(ScannerStateEntry(0 ,INTERMEDIATE));
726 s31.addState(ScannerStateEntry(1 ,INTERMEDIATE));
727 s31.addState(ScannerStateEntry(2 ,START));
728 s31.addState(ScannerStateEntry(3 ,INTERMEDIATE));
729 s31.addState(ScannerStateEntry(4 ,INTERMEDIATE));
730 s31.addState(ScannerStateEntry(5 ,INTERMEDIATE));
731 s31.addState(ScannerStateEntry(6 ,FINAL));
732 s31.addTransition(ScannerTransEntry(0 ,'n' ,1));
733 s31.addTransition(ScannerTransEntry(1 ,'i' ,3));
734 s31.addTransition(ScannerTransEntry(2 ,'u' ,0));
735 s31.addTransition(ScannerTransEntry(3 ,'q' ,4));
736 s31.addTransition(ScannerTransEntry(4 ,'u' ,5));
737 s31.addTransition(ScannerTransEntry(5 ,'e' ,6));
738 _scannerList.Insert(s31);
739
740 Scanner s32(UNSIGNED);
741 s32.addState(ScannerStateEntry(0 ,INTERMEDIATE));
742 s32.addState(ScannerStateEntry(1 ,INTERMEDIATE));
743 s32.addState(ScannerStateEntry(2 ,START));
744 s32.addState(ScannerStateEntry(3 ,INTERMEDIATE));
745 s32.addState(ScannerStateEntry(4 ,INTERMEDIATE));
746 s32.addState(ScannerStateEntry(5 ,INTERMEDIATE));
747 s32.addState(ScannerStateEntry(6 ,INTERMEDIATE));
748 s32.addState(ScannerStateEntry(7 ,INTERMEDIATE));
749 s32.addState(ScannerStateEntry(8 ,FINAL));
750 s32.addTransition(ScannerTransEntry(0 ,'n' ,1));
751 s32.addTransition(ScannerTransEntry(1 ,'s' ,3));
752 s32.addTransition(ScannerTransEntry(2 ,'u' ,0));
753 s32.addTransition(ScannerTransEntry(3 ,'i' ,4));
754 s32.addTransition(ScannerTransEntry(4 ,'g' ,5));
755 s32.addTransition(ScannerTransEntry(5 ,'n' ,6));
756 s32.addTransition(ScannerTransEntry(6 ,'e' ,7));
757 s32.addTransition(ScannerTransEntry(7 ,'d' ,8));
758 _scannerList.Insert(s32);
759
760 Scanner s33(VALUES);
761 s33.addState(ScannerStateEntry(0 ,INTERMEDIATE));
762 s33.addState(ScannerStateEntry(1 ,INTERMEDIATE));
763 s33.addState(ScannerStateEntry(2 ,START));
764 s33.addState(ScannerStateEntry(3 ,INTERMEDIATE));
765 s33.addState(ScannerStateEntry(4 ,INTERMEDIATE));
766 s33.addState(ScannerStateEntry(5 ,INTERMEDIATE));
767 s33.addState(ScannerStateEntry(6 ,FINAL));
768 s33.addTransition(ScannerTransEntry(0 ,'a' ,1));
769 s33.addTransition(ScannerTransEntry(1 ,'l' ,3));
770 s33.addTransition(ScannerTransEntry(2 ,'v' ,0));
771 s33.addTransition(ScannerTransEntry(3 ,'u' ,4));
772 s33.addTransition(ScannerTransEntry(4 ,'e' ,5));
773 s33.addTransition(ScannerTransEntry(5 ,'s' ,6));
774 _scannerList.Insert(s33);
775
776 Scanner s34(VARCHAR);
777 s34.addState(ScannerStateEntry(0 ,INTERMEDIATE));
778 s34.addState(ScannerStateEntry(1 ,INTERMEDIATE));
779 s34.addState(ScannerStateEntry(2 ,START));
780 s34.addState(ScannerStateEntry(3 ,INTERMEDIATE));
781 s34.addState(ScannerStateEntry(4 ,INTERMEDIATE));
782 s34.addState(ScannerStateEntry(5 ,INTERMEDIATE));
783 s34.addState(ScannerStateEntry(6 ,INTERMEDIATE));
784 s34.addState(ScannerStateEntry(7 ,FINAL));
785 s34.addTransition(ScannerTransEntry(0 ,'a' ,1));
786 s34.addTransition(ScannerTransEntry(1 ,'r' ,3));
787 s34.addTransition(ScannerTransEntry(2 ,'v' ,0));
788 s34.addTransition(ScannerTransEntry(3 ,'c' ,4));
789 s34.addTransition(ScannerTransEntry(4 ,'h' ,5));
790 s34.addTransition(ScannerTransEntry(5 ,'a' ,6));
791 s34.addTransition(ScannerTransEntry(6 ,'r' ,7));
792 _scannerList.Insert(s34);
793
794 Scanner s35(WRITE);
795 s35.addState(ScannerStateEntry(0 ,INTERMEDIATE));
796 s35.addState(ScannerStateEntry(1 ,INTERMEDIATE));
797 s35.addState(ScannerStateEntry(2 ,START));
798 s35.addState(ScannerStateEntry(3 ,INTERMEDIATE));
799 s35.addState(ScannerStateEntry(4 ,INTERMEDIATE));
800 s35.addState(ScannerStateEntry(5 ,FINAL));
801 s35.addTransition(ScannerTransEntry(0 ,'r' ,1));
802 s35.addTransition(ScannerTransEntry(1 ,'i' ,3));
803 s35.addTransition(ScannerTransEntry(2 ,'w' ,0));
804 s35.addTransition(ScannerTransEntry(3 ,'t' ,4));
805 s35.addTransition(ScannerTransEntry(4 ,'e' ,5));
806 _scannerList.Insert(s35);
807
808 Scanner s36(MINUS);
809 s36.addState(ScannerStateEntry(0 ,START));
810 s36.addState(ScannerStateEntry(1 ,FINAL));
811 s36.addTransition(ScannerTransEntry(0 ,'-' ,1));
812 _scannerList.Insert(s36);
813
814 Scanner s37(EQU);
815 s37.addState(ScannerStateEntry(0 ,START));
816 s37.addState(ScannerStateEntry(1 ,FINAL));
817 s37.addTransition(ScannerTransEntry(0 ,'=' ,1));
818 _scannerList.Insert(s37);
819
820 Scanner s38(KSEP);
821 s38.addState(ScannerStateEntry(0 ,START));
822 s38.addState(ScannerStateEntry(1 ,FINAL));
823 s38.addTransition(ScannerTransEntry(0 ,',' ,1));
824 _scannerList.Insert(s38);
825
826 Scanner s39(LB);
827 s39.addState(ScannerStateEntry(0 ,START));
828 s39.addState(ScannerStateEntry(1 ,FINAL));
829 s39.addTransition(ScannerTransEntry(0 ,'(' ,1));
830 _scannerList.Insert(s39);
831
832 Scanner s40(RB);
833 s40.addState(ScannerStateEntry(0 ,START));
834 s40.addState(ScannerStateEntry(1 ,FINAL));
835 s40.addTransition(ScannerTransEntry(0 ,')' ,1));
836 _scannerList.Insert(s40);
837
838 Scanner s41(SEMICOLON);
839 s41.addState(ScannerStateEntry(0 ,START));
840 s41.addState(ScannerStateEntry(1 ,FINAL));
841 s41.addTransition(ScannerTransEntry(0 ,';' ,1));
842 _scannerList.Insert(s41);
843
844 Scanner s42(INTVAL);
845 s42.addState(ScannerStateEntry(0 ,START));
846 s42.addState(ScannerStateEntry(1 ,FINAL));
847 s42.addState(ScannerStateEntry(2 ,FINAL));
848 s42.addTransition(ScannerTransEntry(0 ,'1' ,1));
849 s42.addTransition(ScannerTransEntry(0 ,'2' ,1));
850 s42.addTransition(ScannerTransEntry(0 ,'3' ,1));
851 s42.addTransition(ScannerTransEntry(0 ,'4' ,1));
852 s42.addTransition(ScannerTransEntry(0 ,'5' ,1));
853 s42.addTransition(ScannerTransEntry(0 ,'6' ,1));
854 s42.addTransition(ScannerTransEntry(0 ,'7' ,1));
855 s42.addTransition(ScannerTransEntry(0 ,'8' ,1));
856 s42.addTransition(ScannerTransEntry(0 ,'9' ,1));
857 s42.addTransition(ScannerTransEntry(0 ,'0' ,2));
858 s42.addTransition(ScannerTransEntry(1 ,'0' ,1));
859 s42.addTransition(ScannerTransEntry(1 ,'1' ,1));
860 s42.addTransition(ScannerTransEntry(1 ,'2' ,1));
861 s42.addTransition(ScannerTransEntry(1 ,'3' ,1));
862 s42.addTransition(ScannerTransEntry(1 ,'4' ,1));
863 s42.addTransition(ScannerTransEntry(1 ,'5' ,1));
864 s42.addTransition(ScannerTransEntry(1 ,'6' ,1));
865 s42.addTransition(ScannerTransEntry(1 ,'7' ,1));
866 s42.addTransition(ScannerTransEntry(1 ,'8' ,1));
867 s42.addTransition(ScannerTransEntry(1 ,'9' ,1));
868 _scannerList.Insert(s42);
869
870 Scanner s43(FLOATVAL);
871 s43.addState(ScannerStateEntry(0 ,START));
872 s43.addState(ScannerStateEntry(1 ,INTERMEDIATE));
873 s43.addState(ScannerStateEntry(2 ,INTERMEDIATE));
874 s43.addState(ScannerStateEntry(3 ,FINAL));
875 s43.addTransition(ScannerTransEntry(0 ,'1' ,1));
876 s43.addTransition(ScannerTransEntry(0 ,'2' ,1));
877 s43.addTransition(ScannerTransEntry(0 ,'3' ,1));
878 s43.addTransition(ScannerTransEntry(0 ,'4' ,1));
879 s43.addTransition(ScannerTransEntry(0 ,'5' ,1));
880 s43.addTransition(ScannerTransEntry(0 ,'6' ,1));
881 s43.addTransition(ScannerTransEntry(0 ,'7' ,1));
882 s43.addTransition(ScannerTransEntry(0 ,'8' ,1));
883 s43.addTransition(ScannerTransEntry(0 ,'9' ,1));
884 s43.addTransition(ScannerTransEntry(0 ,'0' ,2));
885 s43.addTransition(ScannerTransEntry(1 ,'0' ,1));
886 s43.addTransition(ScannerTransEntry(1 ,'1' ,1));
887 s43.addTransition(ScannerTransEntry(1 ,'2' ,1));
888 s43.addTransition(ScannerTransEntry(1 ,'3' ,1));
889 s43.addTransition(ScannerTransEntry(1 ,'4' ,1));
890 s43.addTransition(ScannerTransEntry(1 ,'5' ,1));
891 s43.addTransition(ScannerTransEntry(1 ,'6' ,1));
892 s43.addTransition(ScannerTransEntry(1 ,'7' ,1));
893 s43.addTransition(ScannerTransEntry(1 ,'8' ,1));
894 s43.addTransition(ScannerTransEntry(1 ,'9' ,1));
895 s43.addTransition(ScannerTransEntry(1 ,'.' ,3));
896 s43.addTransition(ScannerTransEntry(2 ,'.' ,3));
897 s43.addTransition(ScannerTransEntry(3 ,'0' ,3));
898 s43.addTransition(ScannerTransEntry(3 ,'1' ,3));
899 s43.addTransition(ScannerTransEntry(3 ,'2' ,3));
900 s43.addTransition(ScannerTransEntry(3 ,'3' ,3));
901 s43.addTransition(ScannerTransEntry(3 ,'4' ,3));
902 s43.addTransition(ScannerTransEntry(3 ,'5' ,3));
903 s43.addTransition(ScannerTransEntry(3 ,'6' ,3));
904 s43.addTransition(ScannerTransEntry(3 ,'7' ,3));
905 s43.addTransition(ScannerTransEntry(3 ,'8' ,3));
906 s43.addTransition(ScannerTransEntry(3 ,'9' ,3));
907 _scannerList.Insert(s43);
908
909 Scanner s44(QIDENTIFIER);
910 s44.addState(ScannerStateEntry(0 ,INTERMEDIATE));
911 s44.addState(ScannerStateEntry(1 ,INTERMEDIATE));
912 s44.addState(ScannerStateEntry(2 ,START));
913 s44.addState(ScannerStateEntry(3 ,FINAL));
914 s44.addTransition(ScannerTransEntry(0 ,'$' ,1));
915 s44.addTransition(ScannerTransEntry(0 ,'A' ,1));
916 s44.addTransition(ScannerTransEntry(0 ,'B' ,1));
917 s44.addTransition(ScannerTransEntry(0 ,'C' ,1));
918 s44.addTransition(ScannerTransEntry(0 ,'D' ,1));
919 s44.addTransition(ScannerTransEntry(0 ,'E' ,1));
920 s44.addTransition(ScannerTransEntry(0 ,'F' ,1));
921 s44.addTransition(ScannerTransEntry(0 ,'G' ,1));
922 s44.addTransition(ScannerTransEntry(0 ,'H' ,1));
923 s44.addTransition(ScannerTransEntry(0 ,'I' ,1));
924 s44.addTransition(ScannerTransEntry(0 ,'J' ,1));
925 s44.addTransition(ScannerTransEntry(0 ,'K' ,1));
926 s44.addTransition(ScannerTransEntry(0 ,'L' ,1));
927 s44.addTransition(ScannerTransEntry(0 ,'M' ,1));
928 s44.addTransition(ScannerTransEntry(0 ,'N' ,1));
929 s44.addTransition(ScannerTransEntry(0 ,'O' ,1));
930 s44.addTransition(ScannerTransEntry(0 ,'P' ,1));
931 s44.addTransition(ScannerTransEntry(0 ,'Q' ,1));
932 s44.addTransition(ScannerTransEntry(0 ,'R' ,1));
933 s44.addTransition(ScannerTransEntry(0 ,'S' ,1));
934 s44.addTransition(ScannerTransEntry(0 ,'T' ,1));
935 s44.addTransition(ScannerTransEntry(0 ,'U' ,1));
936 s44.addTransition(ScannerTransEntry(0 ,'V' ,1));
937 s44.addTransition(ScannerTransEntry(0 ,'W' ,1));
938 s44.addTransition(ScannerTransEntry(0 ,'X' ,1));
939 s44.addTransition(ScannerTransEntry(0 ,'Y' ,1));
940 s44.addTransition(ScannerTransEntry(0 ,'Z' ,1));
941 s44.addTransition(ScannerTransEntry(0 ,'a' ,1));
942 s44.addTransition(ScannerTransEntry(0 ,'b' ,1));
943 s44.addTransition(ScannerTransEntry(0 ,'c' ,1));
944 s44.addTransition(ScannerTransEntry(0 ,'d' ,1));
945 s44.addTransition(ScannerTransEntry(0 ,'e' ,1));
946 s44.addTransition(ScannerTransEntry(0 ,'f' ,1));
947 s44.addTransition(ScannerTransEntry(0 ,'g' ,1));
948 s44.addTransition(ScannerTransEntry(0 ,'h' ,1));
949 s44.addTransition(ScannerTransEntry(0 ,'i' ,1));
950 s44.addTransition(ScannerTransEntry(0 ,'j' ,1));
951 s44.addTransition(ScannerTransEntry(0 ,'k' ,1));
952 s44.addTransition(ScannerTransEntry(0 ,'l' ,1));
953 s44.addTransition(ScannerTransEntry(0 ,'m' ,1));
954 s44.addTransition(ScannerTransEntry(0 ,'n' ,1));
955 s44.addTransition(ScannerTransEntry(0 ,'o' ,1));
956 s44.addTransition(ScannerTransEntry(0 ,'p' ,1));
957 s44.addTransition(ScannerTransEntry(0 ,'q' ,1));
958 s44.addTransition(ScannerTransEntry(0 ,'r' ,1));
959 s44.addTransition(ScannerTransEntry(0 ,'s' ,1));
960 s44.addTransition(ScannerTransEntry(0 ,'t' ,1));
961 s44.addTransition(ScannerTransEntry(0 ,'u' ,1));
962 s44.addTransition(ScannerTransEntry(0 ,'v' ,1));
963 s44.addTransition(ScannerTransEntry(0 ,'w' ,1));
964 s44.addTransition(ScannerTransEntry(0 ,'x' ,1));
965 s44.addTransition(ScannerTransEntry(0 ,'y' ,1));
966 s44.addTransition(ScannerTransEntry(0 ,'z' ,1));
967 s44.addTransition(ScannerTransEntry(1 ,'0' ,1));
968 s44.addTransition(ScannerTransEntry(1 ,'1' ,1));
969 s44.addTransition(ScannerTransEntry(1 ,'2' ,1));
970 s44.addTransition(ScannerTransEntry(1 ,'3' ,1));
971 s44.addTransition(ScannerTransEntry(1 ,'4' ,1));
972 s44.addTransition(ScannerTransEntry(1 ,'5' ,1));
973 s44.addTransition(ScannerTransEntry(1 ,'6' ,1));
974 s44.addTransition(ScannerTransEntry(1 ,'7' ,1));
975 s44.addTransition(ScannerTransEntry(1 ,'8' ,1));
976 s44.addTransition(ScannerTransEntry(1 ,'9' ,1));
977 s44.addTransition(ScannerTransEntry(1 ,'A' ,1));
978 s44.addTransition(ScannerTransEntry(1 ,'B' ,1));
979 s44.addTransition(ScannerTransEntry(1 ,'C' ,1));
980 s44.addTransition(ScannerTransEntry(1 ,'D' ,1));
981 s44.addTransition(ScannerTransEntry(1 ,'E' ,1));
982 s44.addTransition(ScannerTransEntry(1 ,'F' ,1));
983 s44.addTransition(ScannerTransEntry(1 ,'G' ,1));
984 s44.addTransition(ScannerTransEntry(1 ,'H' ,1));
985 s44.addTransition(ScannerTransEntry(1 ,'I' ,1));
986 s44.addTransition(ScannerTransEntry(1 ,'J' ,1));
987 s44.addTransition(ScannerTransEntry(1 ,'K' ,1));
988 s44.addTransition(ScannerTransEntry(1 ,'L' ,1));
989 s44.addTransition(ScannerTransEntry(1 ,'M' ,1));
990 s44.addTransition(ScannerTransEntry(1 ,'N' ,1));
991 s44.addTransition(ScannerTransEntry(1 ,'O' ,1));
992 s44.addTransition(ScannerTransEntry(1 ,'P' ,1));
993 s44.addTransition(ScannerTransEntry(1 ,'Q' ,1));
994 s44.addTransition(ScannerTransEntry(1 ,'R' ,1));
995 s44.addTransition(ScannerTransEntry(1 ,'S' ,1));
996 s44.addTransition(ScannerTransEntry(1 ,'T' ,1));
997 s44.addTransition(ScannerTransEntry(1 ,'U' ,1));
998 s44.addTransition(ScannerTransEntry(1 ,'V' ,1));
999 s44.addTransition(ScannerTransEntry(1 ,'W' ,1));
1000 s44.addTransition(ScannerTransEntry(1 ,'X' ,1));
1001 s44.addTransition(ScannerTransEntry(1 ,'Y' ,1));
1002 s44.addTransition(ScannerTransEntry(1 ,'Z' ,1));
1003 s44.addTransition(ScannerTransEntry(1 ,'_' ,1));
1004 s44.addTransition(ScannerTransEntry(1 ,'a' ,1));
1005 s44.addTransition(ScannerTransEntry(1 ,'b' ,1));
1006 s44.addTransition(ScannerTransEntry(1 ,'c' ,1));
1007 s44.addTransition(ScannerTransEntry(1 ,'d' ,1));
1008 s44.addTransition(ScannerTransEntry(1 ,'e' ,1));
1009 s44.addTransition(ScannerTransEntry(1 ,'f' ,1));
1010 s44.addTransition(ScannerTransEntry(1 ,'g' ,1));
1011 s44.addTransition(ScannerTransEntry(1 ,'h' ,1));
1012 s44.addTransition(ScannerTransEntry(1 ,'i' ,1));
1013 s44.addTransition(ScannerTransEntry(1 ,'j' ,1));
1014 s44.addTransition(ScannerTransEntry(1 ,'k' ,1));
1015 s44.addTransition(ScannerTransEntry(1 ,'l' ,1));
1016 s44.addTransition(ScannerTransEntry(1 ,'m' ,1));
1017 s44.addTransition(ScannerTransEntry(1 ,'n' ,1));
1018 s44.addTransition(ScannerTransEntry(1 ,'o' ,1));
1019 s44.addTransition(ScannerTransEntry(1 ,'p' ,1));
1020 s44.addTransition(ScannerTransEntry(1 ,'q' ,1));
1021 s44.addTransition(ScannerTransEntry(1 ,'r' ,1));
1022 s44.addTransition(ScannerTransEntry(1 ,'s' ,1));
1023 s44.addTransition(ScannerTransEntry(1 ,'t' ,1));
1024 s44.addTransition(ScannerTransEntry(1 ,'u' ,1));
1025 s44.addTransition(ScannerTransEntry(1 ,'v' ,1));
1026 s44.addTransition(ScannerTransEntry(1 ,'w' ,1));
1027 s44.addTransition(ScannerTransEntry(1 ,'x' ,1));
1028 s44.addTransition(ScannerTransEntry(1 ,'y' ,1));
1029 s44.addTransition(ScannerTransEntry(1 ,'z' ,1));
1030 s44.addTransition(ScannerTransEntry(1 ,'`' ,3));
1031 s44.addTransition(ScannerTransEntry(2 ,'`' ,0));
1032 _scannerList.Insert(s44);
1033
1034 Scanner s45(IDENTIFIER);
1035 s45.addState(ScannerStateEntry(0 ,START));
1036 s45.addState(ScannerStateEntry(1 ,FINAL));
1037 s45.addTransition(ScannerTransEntry(0 ,'@' ,1));
1038 s45.addTransition(ScannerTransEntry(0 ,'A' ,1));
1039 s45.addTransition(ScannerTransEntry(0 ,'B' ,1));
1040 s45.addTransition(ScannerTransEntry(0 ,'C' ,1));
1041 s45.addTransition(ScannerTransEntry(0 ,'D' ,1));
1042 s45.addTransition(ScannerTransEntry(0 ,'E' ,1));
1043 s45.addTransition(ScannerTransEntry(0 ,'F' ,1));
1044 s45.addTransition(ScannerTransEntry(0 ,'G' ,1));
1045 s45.addTransition(ScannerTransEntry(0 ,'H' ,1));
1046 s45.addTransition(ScannerTransEntry(0 ,'I' ,1));
1047 s45.addTransition(ScannerTransEntry(0 ,'J' ,1));
1048 s45.addTransition(ScannerTransEntry(0 ,'K' ,1));
1049 s45.addTransition(ScannerTransEntry(0 ,'L' ,1));
1050 s45.addTransition(ScannerTransEntry(0 ,'M' ,1));
1051 s45.addTransition(ScannerTransEntry(0 ,'N' ,1));
1052 s45.addTransition(ScannerTransEntry(0 ,'O' ,1));
1053 s45.addTransition(ScannerTransEntry(0 ,'P' ,1));
1054 s45.addTransition(ScannerTransEntry(0 ,'Q' ,1));
1055 s45.addTransition(ScannerTransEntry(0 ,'R' ,1));
1056 s45.addTransition(ScannerTransEntry(0 ,'S' ,1));
1057 s45.addTransition(ScannerTransEntry(0 ,'T' ,1));
1058 s45.addTransition(ScannerTransEntry(0 ,'U' ,1));
1059 s45.addTransition(ScannerTransEntry(0 ,'V' ,1));
1060 s45.addTransition(ScannerTransEntry(0 ,'W' ,1));
1061 s45.addTransition(ScannerTransEntry(0 ,'X' ,1));
1062 s45.addTransition(ScannerTransEntry(0 ,'Y' ,1));
1063 s45.addTransition(ScannerTransEntry(0 ,'Z' ,1));
1064 s45.addTransition(ScannerTransEntry(0 ,'a' ,1));
1065 s45.addTransition(ScannerTransEntry(0 ,'b' ,1));
1066 s45.addTransition(ScannerTransEntry(0 ,'c' ,1));
1067 s45.addTransition(ScannerTransEntry(0 ,'d' ,1));
1068 s45.addTransition(ScannerTransEntry(0 ,'e' ,1));
1069 s45.addTransition(ScannerTransEntry(0 ,'f' ,1));
1070 s45.addTransition(ScannerTransEntry(0 ,'g' ,1));
1071 s45.addTransition(ScannerTransEntry(0 ,'h' ,1));
1072 s45.addTransition(ScannerTransEntry(0 ,'i' ,1));
1073 s45.addTransition(ScannerTransEntry(0 ,'j' ,1));
1074 s45.addTransition(ScannerTransEntry(0 ,'k' ,1));
1075 s45.addTransition(ScannerTransEntry(0 ,'l' ,1));
1076 s45.addTransition(ScannerTransEntry(0 ,'m' ,1));
1077 s45.addTransition(ScannerTransEntry(0 ,'n' ,1));
1078 s45.addTransition(ScannerTransEntry(0 ,'o' ,1));
1079 s45.addTransition(ScannerTransEntry(0 ,'p' ,1));
1080 s45.addTransition(ScannerTransEntry(0 ,'q' ,1));
1081 s45.addTransition(ScannerTransEntry(0 ,'r' ,1));
1082 s45.addTransition(ScannerTransEntry(0 ,'s' ,1));
1083 s45.addTransition(ScannerTransEntry(0 ,'t' ,1));
1084 s45.addTransition(ScannerTransEntry(0 ,'u' ,1));
1085 s45.addTransition(ScannerTransEntry(0 ,'v' ,1));
1086 s45.addTransition(ScannerTransEntry(0 ,'w' ,1));
1087 s45.addTransition(ScannerTransEntry(0 ,'x' ,1));
1088 s45.addTransition(ScannerTransEntry(0 ,'y' ,1));
1089 s45.addTransition(ScannerTransEntry(0 ,'z' ,1));
1090 s45.addTransition(ScannerTransEntry(1 ,'0' ,1));
1091 s45.addTransition(ScannerTransEntry(1 ,'1' ,1));
1092 s45.addTransition(ScannerTransEntry(1 ,'2' ,1));
1093 s45.addTransition(ScannerTransEntry(1 ,'3' ,1));
1094 s45.addTransition(ScannerTransEntry(1 ,'4' ,1));
1095 s45.addTransition(ScannerTransEntry(1 ,'5' ,1));
1096 s45.addTransition(ScannerTransEntry(1 ,'6' ,1));
1097 s45.addTransition(ScannerTransEntry(1 ,'7' ,1));
1098 s45.addTransition(ScannerTransEntry(1 ,'8' ,1));
1099 s45.addTransition(ScannerTransEntry(1 ,'9' ,1));
1100 s45.addTransition(ScannerTransEntry(1 ,'@' ,1));
1101 s45.addTransition(ScannerTransEntry(1 ,'A' ,1));
1102 s45.addTransition(ScannerTransEntry(1 ,'B' ,1));
1103 s45.addTransition(ScannerTransEntry(1 ,'C' ,1));
1104 s45.addTransition(ScannerTransEntry(1 ,'D' ,1));
1105 s45.addTransition(ScannerTransEntry(1 ,'E' ,1));
1106 s45.addTransition(ScannerTransEntry(1 ,'F' ,1));
1107 s45.addTransition(ScannerTransEntry(1 ,'G' ,1));
1108 s45.addTransition(ScannerTransEntry(1 ,'H' ,1));
1109 s45.addTransition(ScannerTransEntry(1 ,'I' ,1));
1110 s45.addTransition(ScannerTransEntry(1 ,'J' ,1));
1111 s45.addTransition(ScannerTransEntry(1 ,'K' ,1));
1112 s45.addTransition(ScannerTransEntry(1 ,'L' ,1));
1113 s45.addTransition(ScannerTransEntry(1 ,'M' ,1));
1114 s45.addTransition(ScannerTransEntry(1 ,'N' ,1));
1115 s45.addTransition(ScannerTransEntry(1 ,'O' ,1));
1116 s45.addTransition(ScannerTransEntry(1 ,'P' ,1));
1117 s45.addTransition(ScannerTransEntry(1 ,'Q' ,1));
1118 s45.addTransition(ScannerTransEntry(1 ,'R' ,1));
1119 s45.addTransition(ScannerTransEntry(1 ,'S' ,1));
1120 s45.addTransition(ScannerTransEntry(1 ,'T' ,1));
1121 s45.addTransition(ScannerTransEntry(1 ,'U' ,1));
1122 s45.addTransition(ScannerTransEntry(1 ,'V' ,1));
1123 s45.addTransition(ScannerTransEntry(1 ,'W' ,1));
1124 s45.addTransition(ScannerTransEntry(1 ,'X' ,1));
1125 s45.addTransition(ScannerTransEntry(1 ,'Y' ,1));
1126 s45.addTransition(ScannerTransEntry(1 ,'Z' ,1));
1127 s45.addTransition(ScannerTransEntry(1 ,'_' ,1));
1128 s45.addTransition(ScannerTransEntry(1 ,'a' ,1));
1129 s45.addTransition(ScannerTransEntry(1 ,'b' ,1));
1130 s45.addTransition(ScannerTransEntry(1 ,'c' ,1));
1131 s45.addTransition(ScannerTransEntry(1 ,'d' ,1));
1132 s45.addTransition(ScannerTransEntry(1 ,'e' ,1));
1133 s45.addTransition(ScannerTransEntry(1 ,'f' ,1));
1134 s45.addTransition(ScannerTransEntry(1 ,'g' ,1));
1135 s45.addTransition(ScannerTransEntry(1 ,'h' ,1));
1136 s45.addTransition(ScannerTransEntry(1 ,'i' ,1));
1137 s45.addTransition(ScannerTransEntry(1 ,'j' ,1));
1138 s45.addTransition(ScannerTransEntry(1 ,'k' ,1));
1139 s45.addTransition(ScannerTransEntry(1 ,'l' ,1));
1140 s45.addTransition(ScannerTransEntry(1 ,'m' ,1));
1141 s45.addTransition(ScannerTransEntry(1 ,'n' ,1));
1142 s45.addTransition(ScannerTransEntry(1 ,'o' ,1));
1143 s45.addTransition(ScannerTransEntry(1 ,'p' ,1));
1144 s45.addTransition(ScannerTransEntry(1 ,'q' ,1));
1145 s45.addTransition(ScannerTransEntry(1 ,'r' ,1));
1146 s45.addTransition(ScannerTransEntry(1 ,'s' ,1));
1147 s45.addTransition(ScannerTransEntry(1 ,'t' ,1));
1148 s45.addTransition(ScannerTransEntry(1 ,'u' ,1));
1149 s45.addTransition(ScannerTransEntry(1 ,'v' ,1));
1150 s45.addTransition(ScannerTransEntry(1 ,'w' ,1));
1151 s45.addTransition(ScannerTransEntry(1 ,'x' ,1));
1152 s45.addTransition(ScannerTransEntry(1 ,'y' ,1));
1153 s45.addTransition(ScannerTransEntry(1 ,'z' ,1));
1154 _scannerList.Insert(s45);
1155
1156 }
loadParser0()1157 void OracleParser::loadParser0()
1158 {
1159 _actionMap[107][UNSIGNED] = ActionEntry(REDUCE, 49);
1160 _actionMap[107][NULLTOKEN] = ActionEntry(REDUCE, 49);
1161 _actionMap[107][NOT] = ActionEntry(REDUCE, 49);
1162 _actionMap[107][DEFAULT] = ActionEntry(REDUCE, 49);
1163 _actionMap[107][RB] = ActionEntry(REDUCE, 49);
1164 _actionMap[107][KSEP] = ActionEntry(REDUCE, 49);
1165 _actionMap[103][KSEP] = ActionEntry(REDUCE, 23);
1166 _actionMap[103][RB] = ActionEntry(REDUCE, 23);
1167 _actionMap[104][KSEP] = ActionEntry(REDUCE, 21);
1168 _actionMap[104][RB] = ActionEntry(REDUCE, 21);
1169 _actionMap[105][RB] = ActionEntry(SHIFT, 107);
1170 _actionMap[106][KSEP] = ActionEntry(REDUCE, 42);
1171 _actionMap[106][RB] = ActionEntry(REDUCE, 42);
1172 _actionMap[93][QIDENTIFIER] = ActionEntry(SHIFT, 103);
1173 _actionMap[94][KSEP] = ActionEntry(REDUCE, 22);
1174 _actionMap[94][RB] = ActionEntry(REDUCE, 22);
1175 _actionMap[95][KSEP] = ActionEntry(REDUCE, 20);
1176 _actionMap[95][RB] = ActionEntry(REDUCE, 20);
1177 _actionMap[96][RB] = ActionEntry(SHIFT, 104);
1178 _actionMap[96][KSEP] = ActionEntry(SHIFT, 93);
1179 _actionMap[97][KSEP] = ActionEntry(REDUCE, 17);
1180 _actionMap[97][RB] = ActionEntry(REDUCE, 17);
1181 _actionMap[98][INTVAL] = ActionEntry(SHIFT, 105);
1182 _actionMap[99][INTVAL] = ActionEntry(SHIFT, 36);
1183 _actionMap[99][MINUS] = ActionEntry(SHIFT, 35);
1184 _actionMap[99][STRINGVAL] = ActionEntry(SHIFT, 33);
1185 _actionMap[99][NULLTOKEN] = ActionEntry(SHIFT, 34);
1186 _jumpMap[99][Constant] = 106;
1187 _actionMap[100][NULLTOKEN] = ActionEntry(REDUCE, 41);
1188 _actionMap[100][NOT] = ActionEntry(REDUCE, 41);
1189 _actionMap[100][DEFAULT] = ActionEntry(REDUCE, 41);
1190 _actionMap[100][RB] = ActionEntry(REDUCE, 41);
1191 _actionMap[100][KSEP] = ActionEntry(REDUCE, 41);
1192 _actionMap[101][UNSIGNED] = ActionEntry(REDUCE, 48);
1193 _actionMap[101][NULLTOKEN] = ActionEntry(REDUCE, 48);
1194 _actionMap[101][NOT] = ActionEntry(REDUCE, 48);
1195 _actionMap[101][DEFAULT] = ActionEntry(REDUCE, 48);
1196 _actionMap[101][RB] = ActionEntry(REDUCE, 48);
1197 _actionMap[101][KSEP] = ActionEntry(REDUCE, 48);
1198 _actionMap[102][NULLTOKEN] = ActionEntry(REDUCE, 35);
1199 _actionMap[102][NOT] = ActionEntry(REDUCE, 35);
1200 _actionMap[102][DEFAULT] = ActionEntry(REDUCE, 35);
1201 _actionMap[102][RB] = ActionEntry(REDUCE, 35);
1202 _actionMap[102][KSEP] = ActionEntry(REDUCE, 35);
1203 _actionMap[77][RB] = ActionEntry(SHIFT, 94);
1204 _actionMap[77][KSEP] = ActionEntry(SHIFT, 93);
1205 _actionMap[78][KSEP] = ActionEntry(REDUCE, 24);
1206 _actionMap[78][RB] = ActionEntry(REDUCE, 24);
1207 _actionMap[79][RB] = ActionEntry(SHIFT, 95);
1208 _actionMap[79][KSEP] = ActionEntry(SHIFT, 93);
1209 }
loadParser1()1210 void OracleParser::loadParser1()
1211 {
1212 _actionMap[80][QIDENTIFIER] = ActionEntry(SHIFT, 78);
1213 _jumpMap[80][KeyList] = 96;
1214 _actionMap[81][KSEP] = ActionEntry(REDUCE, 12);
1215 _actionMap[81][RB] = ActionEntry(REDUCE, 12);
1216 _actionMap[82][KSEP] = ActionEntry(REDUCE, 18);
1217 _actionMap[82][RB] = ActionEntry(REDUCE, 18);
1218 _actionMap[83][INTVAL] = ActionEntry(SHIFT, 36);
1219 _actionMap[83][MINUS] = ActionEntry(SHIFT, 35);
1220 _actionMap[83][STRINGVAL] = ActionEntry(SHIFT, 33);
1221 _actionMap[83][NULLTOKEN] = ActionEntry(SHIFT, 34);
1222 _jumpMap[83][Constant] = 97;
1223 _actionMap[84][DEFAULT] = ActionEntry(REDUCE, 14);
1224 _actionMap[84][RB] = ActionEntry(REDUCE, 14);
1225 _actionMap[84][KSEP] = ActionEntry(REDUCE, 14);
1226 _actionMap[85][NULLTOKEN] = ActionEntry(REDUCE, 34);
1227 _actionMap[85][NOT] = ActionEntry(REDUCE, 34);
1228 _actionMap[85][DEFAULT] = ActionEntry(REDUCE, 34);
1229 _actionMap[85][RB] = ActionEntry(REDUCE, 34);
1230 _actionMap[85][KSEP] = ActionEntry(REDUCE, 34);
1231 _actionMap[86][NULLTOKEN] = ActionEntry(REDUCE, 50);
1232 _actionMap[86][NOT] = ActionEntry(REDUCE, 50);
1233 _actionMap[86][DEFAULT] = ActionEntry(REDUCE, 50);
1234 _actionMap[86][RB] = ActionEntry(REDUCE, 50);
1235 _actionMap[86][KSEP] = ActionEntry(REDUCE, 50);
1236 _actionMap[87][KSEP] = ActionEntry(SHIFT, 98);
1237 _actionMap[88][RB] = ActionEntry(SHIFT, 100);
1238 _actionMap[88][KSEP] = ActionEntry(SHIFT, 99);
1239 _actionMap[89][KSEP] = ActionEntry(REDUCE, 43);
1240 _actionMap[89][RB] = ActionEntry(REDUCE, 43);
1241 _actionMap[90][NULLTOKEN] = ActionEntry(REDUCE, 33);
1242 _actionMap[90][NOT] = ActionEntry(REDUCE, 33);
1243 _actionMap[90][DEFAULT] = ActionEntry(REDUCE, 33);
1244 _actionMap[90][RB] = ActionEntry(REDUCE, 33);
1245 _actionMap[90][KSEP] = ActionEntry(REDUCE, 33);
1246 _actionMap[91][RB] = ActionEntry(SHIFT, 101);
1247 _actionMap[92][RB] = ActionEntry(SHIFT, 102);
1248 _actionMap[62][KSEP] = ActionEntry(REDUCE, 29);
1249 _actionMap[62][RB] = ActionEntry(REDUCE, 29);
1250 _actionMap[63][KSEP] = ActionEntry(REDUCE, 10);
1251 _actionMap[63][RB] = ActionEntry(REDUCE, 10);
1252 _actionMap[64][QIDENTIFIER] = ActionEntry(SHIFT, 78);
1253 _jumpMap[64][KeyList] = 77;
1254 _actionMap[65][QIDENTIFIER] = ActionEntry(SHIFT, 78);
1255 _jumpMap[65][KeyList] = 79;
1256 _actionMap[66][LB] = ActionEntry(SHIFT, 80);
1257 _actionMap[67][KSEP] = ActionEntry(REDUCE, 19);
1258 _actionMap[67][DEFAULT] = ActionEntry(SHIFT, 83);
1259 _actionMap[67][RB] = ActionEntry(REDUCE, 19);
1260 _jumpMap[67][DefaultDefOpt] = 82;
1261 _jumpMap[67][DefaultOpt] = 81;
1262 }
loadParser2()1263 void OracleParser::loadParser2()
1264 {
1265 _actionMap[68][DEFAULT] = ActionEntry(REDUCE, 15);
1266 _actionMap[68][RB] = ActionEntry(REDUCE, 15);
1267 _actionMap[68][KSEP] = ActionEntry(REDUCE, 15);
1268 _actionMap[69][NULLTOKEN] = ActionEntry(SHIFT, 84);
1269 _actionMap[70][DEFAULT] = ActionEntry(REDUCE, 13);
1270 _actionMap[70][RB] = ActionEntry(REDUCE, 13);
1271 _actionMap[70][KSEP] = ActionEntry(REDUCE, 13);
1272 _actionMap[71][UNSIGNED] = ActionEntry(SHIFT, 86);
1273 _actionMap[71][NULLTOKEN] = ActionEntry(REDUCE, 51);
1274 _actionMap[71][NOT] = ActionEntry(REDUCE, 51);
1275 _actionMap[71][DEFAULT] = ActionEntry(REDUCE, 51);
1276 _actionMap[71][RB] = ActionEntry(REDUCE, 51);
1277 _actionMap[71][KSEP] = ActionEntry(REDUCE, 51);
1278 _jumpMap[71][UnsignedOpt] = 85;
1279 _actionMap[72][INTVAL] = ActionEntry(SHIFT, 87);
1280 _actionMap[73][INTVAL] = ActionEntry(SHIFT, 36);
1281 _actionMap[73][MINUS] = ActionEntry(SHIFT, 35);
1282 _actionMap[73][STRINGVAL] = ActionEntry(SHIFT, 33);
1283 _actionMap[73][NULLTOKEN] = ActionEntry(SHIFT, 34);
1284 _jumpMap[73][Constant] = 89;
1285 _jumpMap[73][ConstList] = 88;
1286 _actionMap[74][UNSIGNED] = ActionEntry(SHIFT, 86);
1287 _actionMap[74][NULLTOKEN] = ActionEntry(REDUCE, 51);
1288 _actionMap[74][NOT] = ActionEntry(REDUCE, 51);
1289 _actionMap[74][DEFAULT] = ActionEntry(REDUCE, 51);
1290 _actionMap[74][RB] = ActionEntry(REDUCE, 51);
1291 _actionMap[74][KSEP] = ActionEntry(REDUCE, 51);
1292 _jumpMap[74][UnsignedOpt] = 90;
1293 _actionMap[75][INTVAL] = ActionEntry(SHIFT, 91);
1294 _actionMap[76][INTVAL] = ActionEntry(SHIFT, 92);
1295 _actionMap[43][SEMICOLON] = ActionEntry(REDUCE, 26);
1296 _actionMap[43][KSEP] = ActionEntry(REDUCE, 26);
1297 _actionMap[44][INTVAL] = ActionEntry(SHIFT, 36);
1298 _actionMap[44][MINUS] = ActionEntry(SHIFT, 35);
1299 _actionMap[44][STRINGVAL] = ActionEntry(SHIFT, 33);
1300 _actionMap[44][NULLTOKEN] = ActionEntry(SHIFT, 34);
1301 _jumpMap[44][Constant] = 62;
1302 _actionMap[45][SEMICOLON] = ActionEntry(REDUCE, 28);
1303 _actionMap[45][KSEP] = ActionEntry(REDUCE, 28);
1304 _actionMap[46][KSEP] = ActionEntry(REDUCE, 45);
1305 _actionMap[46][RB] = ActionEntry(REDUCE, 45);
1306 _actionMap[47][QIDENTIFIER] = ActionEntry(SHIFT, 42);
1307 _actionMap[47][PRIMARY] = ActionEntry(SHIFT, 40);
1308 _actionMap[47][UNIQUE] = ActionEntry(SHIFT, 41);
1309 _actionMap[47][KEY] = ActionEntry(SHIFT, 39);
1310 _jumpMap[47][ColumnDesc] = 63;
1311 _actionMap[48][SEMICOLON] = ActionEntry(REDUCE, 6);
1312 _actionMap[49][LB] = ActionEntry(SHIFT, 64);
1313 _actionMap[50][LB] = ActionEntry(SHIFT, 65);
1314 _actionMap[51][QIDENTIFIER] = ActionEntry(SHIFT, 66);
1315 }
loadParser3()1316 void OracleParser::loadParser3()
1317 {
1318 _actionMap[52][KSEP] = ActionEntry(REDUCE, 16);
1319 _actionMap[52][RB] = ActionEntry(REDUCE, 16);
1320 _actionMap[52][DEFAULT] = ActionEntry(REDUCE, 16);
1321 _actionMap[52][NULLTOKEN] = ActionEntry(SHIFT, 70);
1322 _actionMap[52][NOT] = ActionEntry(SHIFT, 69);
1323 _jumpMap[52][DefaultNullOpt] = 68;
1324 _jumpMap[52][NullOpt] = 67;
1325 _actionMap[53][NULLTOKEN] = ActionEntry(REDUCE, 37);
1326 _actionMap[53][NOT] = ActionEntry(REDUCE, 37);
1327 _actionMap[53][DEFAULT] = ActionEntry(REDUCE, 37);
1328 _actionMap[53][RB] = ActionEntry(REDUCE, 37);
1329 _actionMap[53][KSEP] = ActionEntry(REDUCE, 37);
1330 _actionMap[54][LB] = ActionEntry(SHIFT, 72);
1331 _jumpMap[54][DecimalDimOpt] = 71;
1332 _actionMap[55][LB] = ActionEntry(SHIFT, 73);
1333 _actionMap[56][LB] = ActionEntry(SHIFT, 75);
1334 _jumpMap[56][DimOpt] = 74;
1335 _actionMap[57][NULLTOKEN] = ActionEntry(REDUCE, 38);
1336 _actionMap[57][NOT] = ActionEntry(REDUCE, 38);
1337 _actionMap[57][DEFAULT] = ActionEntry(REDUCE, 38);
1338 _actionMap[57][RB] = ActionEntry(REDUCE, 38);
1339 _actionMap[57][KSEP] = ActionEntry(REDUCE, 38);
1340 _actionMap[58][NULLTOKEN] = ActionEntry(REDUCE, 39);
1341 _actionMap[58][NOT] = ActionEntry(REDUCE, 39);
1342 _actionMap[58][DEFAULT] = ActionEntry(REDUCE, 39);
1343 _actionMap[58][RB] = ActionEntry(REDUCE, 39);
1344 _actionMap[58][KSEP] = ActionEntry(REDUCE, 39);
1345 _actionMap[59][NULLTOKEN] = ActionEntry(REDUCE, 40);
1346 _actionMap[59][NOT] = ActionEntry(REDUCE, 40);
1347 _actionMap[59][DEFAULT] = ActionEntry(REDUCE, 40);
1348 _actionMap[59][RB] = ActionEntry(REDUCE, 40);
1349 _actionMap[59][KSEP] = ActionEntry(REDUCE, 40);
1350 _actionMap[60][NULLTOKEN] = ActionEntry(REDUCE, 36);
1351 _actionMap[60][NOT] = ActionEntry(REDUCE, 36);
1352 _actionMap[60][DEFAULT] = ActionEntry(REDUCE, 36);
1353 _actionMap[60][RB] = ActionEntry(REDUCE, 36);
1354 _actionMap[60][KSEP] = ActionEntry(REDUCE, 36);
1355 _actionMap[61][LB] = ActionEntry(SHIFT, 76);
1356 _actionMap[30][LB] = ActionEntry(SHIFT, 26);
1357 _jumpMap[30][InsertValueSpec] = 43;
1358 _actionMap[31][RB] = ActionEntry(SHIFT, 45);
1359 _actionMap[31][KSEP] = ActionEntry(SHIFT, 44);
1360 _actionMap[32][KSEP] = ActionEntry(REDUCE, 30);
1361 _actionMap[32][RB] = ActionEntry(REDUCE, 30);
1362 _actionMap[33][KSEP] = ActionEntry(REDUCE, 46);
1363 _actionMap[33][RB] = ActionEntry(REDUCE, 46);
1364 _actionMap[34][KSEP] = ActionEntry(REDUCE, 47);
1365 _actionMap[34][RB] = ActionEntry(REDUCE, 47);
1366 _actionMap[35][INTVAL] = ActionEntry(SHIFT, 46);
1367 _actionMap[36][KSEP] = ActionEntry(REDUCE, 44);
1368 }
loadParser4()1369 void OracleParser::loadParser4()
1370 {
1371 _actionMap[36][RB] = ActionEntry(REDUCE, 44);
1372 _actionMap[37][RB] = ActionEntry(SHIFT, 48);
1373 _actionMap[37][KSEP] = ActionEntry(SHIFT, 47);
1374 _actionMap[38][KSEP] = ActionEntry(REDUCE, 11);
1375 _actionMap[38][RB] = ActionEntry(REDUCE, 11);
1376 _actionMap[39][QIDENTIFIER] = ActionEntry(SHIFT, 49);
1377 _actionMap[40][KEY] = ActionEntry(SHIFT, 50);
1378 _actionMap[41][KEY] = ActionEntry(SHIFT, 51);
1379 _actionMap[42][INT] = ActionEntry(SHIFT, 56);
1380 _actionMap[42][DECIMAL] = ActionEntry(SHIFT, 54);
1381 _actionMap[42][VARCHAR] = ActionEntry(SHIFT, 61);
1382 _actionMap[42][TIMESTAMP] = ActionEntry(SHIFT, 60);
1383 _actionMap[42][DATETIME] = ActionEntry(SHIFT, 53);
1384 _actionMap[42][LONGBLOB] = ActionEntry(SHIFT, 57);
1385 _actionMap[42][MEDIUMTEXT] = ActionEntry(SHIFT, 58);
1386 _actionMap[42][TEXT] = ActionEntry(SHIFT, 59);
1387 _actionMap[42][ENUM] = ActionEntry(SHIFT, 55);
1388 _jumpMap[42][DataTypeProd] = 52;
1389 _actionMap[24][KSEP] = ActionEntry(SHIFT, 30);
1390 _actionMap[24][SEMICOLON] = ActionEntry(REDUCE, 25);
1391 _actionMap[25][SEMICOLON] = ActionEntry(REDUCE, 27);
1392 _actionMap[25][KSEP] = ActionEntry(REDUCE, 27);
1393 _actionMap[26][INTVAL] = ActionEntry(SHIFT, 36);
1394 _actionMap[26][MINUS] = ActionEntry(SHIFT, 35);
1395 _actionMap[26][STRINGVAL] = ActionEntry(SHIFT, 33);
1396 _actionMap[26][NULLTOKEN] = ActionEntry(SHIFT, 34);
1397 _jumpMap[26][Constant] = 32;
1398 _jumpMap[26][InsertValueList] = 31;
1399 _actionMap[27][QIDENTIFIER] = ActionEntry(SHIFT, 42);
1400 _actionMap[27][PRIMARY] = ActionEntry(SHIFT, 40);
1401 _actionMap[27][UNIQUE] = ActionEntry(SHIFT, 41);
1402 _actionMap[27][KEY] = ActionEntry(SHIFT, 39);
1403 _jumpMap[27][ColumnDesc] = 38;
1404 _jumpMap[27][ColumnList] = 37;
1405 _actionMap[28][QIDENTIFIER] = ActionEntry(REDUCE, 9);
1406 _actionMap[29][SEMICOLON] = ActionEntry(REDUCE, 4);
1407 _actionMap[19][SEMICOLON] = ActionEntry(REDUCE, 1);
1408 _actionMap[19][SET] = ActionEntry(REDUCE, 1);
1409 _actionMap[19][CREATE] = ActionEntry(REDUCE, 1);
1410 _actionMap[19][DROP] = ActionEntry(REDUCE, 1);
1411 _actionMap[19][INSERT] = ActionEntry(REDUCE, 1);
1412 _actionMap[19][ENDTOKEN] = ActionEntry(REDUCE, 1);
1413 _actionMap[20][LB] = ActionEntry(SHIFT, 26);
1414 _jumpMap[20][InsertValueSpec] = 25;
1415 _jumpMap[20][InsertValueSpecList] = 24;
1416 _actionMap[21][LB] = ActionEntry(SHIFT, 27);
1417 _actionMap[22][EXISTS] = ActionEntry(SHIFT, 28);
1418 _actionMap[23][IDENTIFIER] = ActionEntry(SHIFT, 29);
1419 _actionMap[10][SEMICOLON] = ActionEntry(SHIFT, 19);
1420 _actionMap[11][SEMICOLON] = ActionEntry(REDUCE, 2);
1421 }
loadParser5()1422 void OracleParser::loadParser5()
1423 {
1424 _actionMap[11][SET] = ActionEntry(REDUCE, 2);
1425 _actionMap[11][CREATE] = ActionEntry(REDUCE, 2);
1426 _actionMap[11][DROP] = ActionEntry(REDUCE, 2);
1427 _actionMap[11][INSERT] = ActionEntry(REDUCE, 2);
1428 _actionMap[11][ENDTOKEN] = ActionEntry(REDUCE, 2);
1429 _actionMap[12][SEMICOLON] = ActionEntry(REDUCE, 7);
1430 _actionMap[13][VALUES] = ActionEntry(REDUCE, 32);
1431 _actionMap[13][SEMICOLON] = ActionEntry(REDUCE, 32);
1432 _actionMap[13][LB] = ActionEntry(REDUCE, 32);
1433 _actionMap[14][VALUES] = ActionEntry(SHIFT, 20);
1434 _actionMap[15][QIDENTIFIER] = ActionEntry(SHIFT, 13);
1435 _jumpMap[15][Table] = 21;
1436 _actionMap[16][IF] = ActionEntry(SHIFT, 22);
1437 _actionMap[16][QIDENTIFIER] = ActionEntry(REDUCE, 8);
1438 _actionMap[17][QIDENTIFIER] = ActionEntry(REDUCE, 31);
1439 _actionMap[18][EQU] = ActionEntry(SHIFT, 23);
1440 _actionMap[1][ENDTOKEN] = ActionEntry(ACCEPT, 0);
1441 _actionMap[1][INSERT] = ActionEntry(SHIFT, 8);
1442 _actionMap[1][DROP] = ActionEntry(SHIFT, 7);
1443 _actionMap[1][SEMICOLON] = ActionEntry(REDUCE, 3);
1444 _actionMap[1][SET] = ActionEntry(SHIFT, 9);
1445 _actionMap[1][CREATE] = ActionEntry(SHIFT, 6);
1446 _jumpMap[1][InsertPrefix] = 5;
1447 _jumpMap[1][InsertStatement] = 4;
1448 _jumpMap[1][DropOpt] = 3;
1449 _jumpMap[1][Statement] = 10;
1450 _actionMap[2][SEMICOLON] = ActionEntry(SHIFT, 11);
1451 _actionMap[3][QIDENTIFIER] = ActionEntry(SHIFT, 13);
1452 _jumpMap[3][Table] = 12;
1453 _actionMap[4][SEMICOLON] = ActionEntry(REDUCE, 5);
1454 _actionMap[5][QIDENTIFIER] = ActionEntry(SHIFT, 13);
1455 _jumpMap[5][Table] = 14;
1456 _actionMap[6][TABLE] = ActionEntry(SHIFT, 15);
1457 _actionMap[7][TABLE] = ActionEntry(SHIFT, 16);
1458 _actionMap[8][INTO] = ActionEntry(SHIFT, 17);
1459 _actionMap[9][IDENTIFIER] = ActionEntry(SHIFT, 18);
1460 _actionMap[0][INSERT] = ActionEntry(SHIFT, 8);
1461 _actionMap[0][DROP] = ActionEntry(SHIFT, 7);
1462 _actionMap[0][SEMICOLON] = ActionEntry(REDUCE, 3);
1463 _actionMap[0][SET] = ActionEntry(SHIFT, 9);
1464 _actionMap[0][CREATE] = ActionEntry(SHIFT, 6);
1465 _jumpMap[0][InsertPrefix] = 5;
1466 _jumpMap[0][InsertStatement] = 4;
1467 _jumpMap[0][DropOpt] = 3;
1468 _jumpMap[0][Statement] = 2;
1469 _jumpMap[0][StatementList] = 1;
1470 }
loadParser6()1471 void OracleParser::loadParser6()
1472 {
1473 _prodInfo.Insert(ProdEntry(51, UnsignedOpt, 0));
1474 _prodInfo.Insert(ProdEntry(50, UnsignedOpt, 1));
1475 _prodInfo.Insert(ProdEntry(49, DecimalDimOpt, 5));
1476 _prodInfo.Insert(ProdEntry(48, DimOpt, 3));
1477 _prodInfo.Insert(ProdEntry(47, Constant, 1));
1478 _prodInfo.Insert(ProdEntry(46, Constant, 1));
1479 _prodInfo.Insert(ProdEntry(45, Constant, 2));
1480 _prodInfo.Insert(ProdEntry(44, Constant, 1));
1481 _prodInfo.Insert(ProdEntry(43, ConstList, 1));
1482 _prodInfo.Insert(ProdEntry(42, ConstList, 3));
1483 _prodInfo.Insert(ProdEntry(41, DataTypeProd, 4));
1484 _prodInfo.Insert(ProdEntry(40, DataTypeProd, 1));
1485 _prodInfo.Insert(ProdEntry(39, DataTypeProd, 1));
1486 _prodInfo.Insert(ProdEntry(38, DataTypeProd, 1));
1487 _prodInfo.Insert(ProdEntry(37, DataTypeProd, 1));
1488 _prodInfo.Insert(ProdEntry(36, DataTypeProd, 1));
1489 _prodInfo.Insert(ProdEntry(35, DataTypeProd, 4));
1490 _prodInfo.Insert(ProdEntry(34, DataTypeProd, 3));
1491 _prodInfo.Insert(ProdEntry(33, DataTypeProd, 3));
1492 _prodInfo.Insert(ProdEntry(32, Table, 1));
1493 _prodInfo.Insert(ProdEntry(31, InsertPrefix, 2));
1494 _prodInfo.Insert(ProdEntry(30, InsertValueList, 1));
1495 _prodInfo.Insert(ProdEntry(29, InsertValueList, 3));
1496 _prodInfo.Insert(ProdEntry(28, InsertValueSpec, 3));
1497 _prodInfo.Insert(ProdEntry(27, InsertValueSpecList, 1));
1498 _prodInfo.Insert(ProdEntry(26, InsertValueSpecList, 3));
1499 _prodInfo.Insert(ProdEntry(25, InsertStatement, 4));
1500 _prodInfo.Insert(ProdEntry(24, KeyList, 1));
1501 _prodInfo.Insert(ProdEntry(23, KeyList, 3));
1502 _prodInfo.Insert(ProdEntry(22, ColumnDesc, 5));
1503 _prodInfo.Insert(ProdEntry(21, ColumnDesc, 6));
1504 _prodInfo.Insert(ProdEntry(20, ColumnDesc, 5));
1505 _prodInfo.Insert(ProdEntry(19, DefaultDefOpt, 0));
1506 _prodInfo.Insert(ProdEntry(18, DefaultOpt, 1));
1507 _prodInfo.Insert(ProdEntry(17, DefaultOpt, 2));
1508 _prodInfo.Insert(ProdEntry(16, DefaultNullOpt, 0));
1509 _prodInfo.Insert(ProdEntry(15, NullOpt, 1));
1510 _prodInfo.Insert(ProdEntry(14, NullOpt, 2));
1511 _prodInfo.Insert(ProdEntry(13, NullOpt, 1));
1512 _prodInfo.Insert(ProdEntry(12, ColumnDesc, 4));
1513 _prodInfo.Insert(ProdEntry(11, ColumnList, 1));
1514 _prodInfo.Insert(ProdEntry(10, ColumnList, 3));
1515 _prodInfo.Insert(ProdEntry(9, DropOpt, 4));
1516 _prodInfo.Insert(ProdEntry(8, DropOpt, 2));
1517 _prodInfo.Insert(ProdEntry(7, Statement, 2));
1518 _prodInfo.Insert(ProdEntry(6, Statement, 6));
1519 _prodInfo.Insert(ProdEntry(5, Statement, 1));
1520 _prodInfo.Insert(ProdEntry(4, Statement, 4));
1521 _prodInfo.Insert(ProdEntry(3, Statement, 0));
1522 _prodInfo.Insert(ProdEntry(2, StatementList, 2));
1523 _prodInfo.Insert(ProdEntry(1, StatementList, 3));
1524 _prodInfo.Insert(ProdEntry(0, Start, 1));
1525 }
1526
OracleParser()1527 OracleParser::OracleParser()
1528 {
1529 loadScanner();
1530 for ( int i=0; i < 108; i++)
1531 {
1532 int j;
1533 for ( j = 0; j < 48; j++)
1534 _actionMap[i][j] = ActionEntry();
1535 for ( j = 0; j < 24; j++)
1536 _jumpMap[i][j] = -1;
1537 }
1538 loadParser0();
1539 loadParser1();
1540 loadParser2();
1541 loadParser3();
1542 loadParser4();
1543 loadParser5();
1544 loadParser6();
1545 _isReserved = false;
1546 }
1547
~OracleParser()1548 OracleParser::~OracleParser()
1549 {
1550 }
1551
parse()1552 void OracleParser::parse()
1553 {
1554 StackT<StackEntry> s;
1555 StackEntry se(NONE, 0, 0);
1556 s.Push(se);
1557 _isReserved = false;
1558 if ( shiftToken() == false )
1559 {
1560 Chain msg = "Parse error at token <" + Chain(_tokenVal) + ">.";
1561 throw Exception(EXLOC, msg);
1562 }
1563 while ( true )
1564 {
1565 Action a;
1566 int num;
1567 if ( getAction(s.getTop()->getState(), _token, a, num) )
1568 {
1569 switch (a)
1570 {
1571 case SHIFT:
1572 {
1573 StackEntry se(TOKEN, _token, num, _tokenVal);
1574 s.Push(se);
1575 if ( shiftToken() == false )
1576 {
1577 Chain msg = "Parse error at token <" + Chain(_tokenVal) + ">.";
1578 throw Exception(EXLOC, msg);
1579 }
1580 break;
1581 }
1582 case REDUCE:
1583 {
1584 _tokenList.Empty();
1585 ProdEntry* pPE = _prodInfo.Find(num);
1586 for (int i=0; i<pPE->getNumSymbol();i++)
1587 {
1588 StackEntry se;
1589 s.Pop(se);
1590 if (se.getSymbol() == TOKEN)
1591 _tokenList.Insert(se.getTval());
1592 }
1593 int fstate;
1594 if (getJump(s.getTop()->getState(), pPE->getProd(), fstate))
1595 {
1596 StackEntry se(PROD, pPE->getId(), fstate, _tokenVal);
1597 s.Push(se);
1598 }
1599 else
1600 {
1601 Chain msg = "Cannot reduce after token <" + Chain(_tokenVal) + ">.";
1602 throw Exception(EXLOC, msg);
1603 }
1604 switch (num)
1605 {
1606 case 50:
1607 storeUnsignedType();
1608 break;
1609 case 49:
1610 storeDecimalDim();
1611 break;
1612 case 48:
1613 storeDim();
1614 break;
1615 case 47:
1616 storeNullValue();
1617 break;
1618 case 46:
1619 storeVarcharValue();
1620 break;
1621 case 45:
1622 storeNegIntValue();
1623 break;
1624 case 44:
1625 storeIntValue();
1626 break;
1627 case 41:
1628 storeEnumType();
1629 break;
1630 case 40:
1631 storeMediumTextType();
1632 break;
1633 case 39:
1634 storeMediumTextType();
1635 break;
1636 case 37:
1637 storeDatetimeType();
1638 break;
1639 case 36:
1640 storeTimestampType();
1641 break;
1642 case 35:
1643 storeVarcharType();
1644 break;
1645 case 34:
1646 storeDecimalType();
1647 break;
1648 case 33:
1649 storeIntType();
1650 break;
1651 case 32:
1652 storeTable();
1653 break;
1654 case 31:
1655 insertPreAction();
1656 break;
1657 case 30:
1658 insertConstValue();
1659 break;
1660 case 29:
1661 insertConstValue();
1662 break;
1663 case 28:
1664 execInsert();
1665 break;
1666 case 25:
1667 insertPostAction();
1668 break;
1669 case 24:
1670 storeKeyColumn();
1671 break;
1672 case 23:
1673 storeKeyColumn();
1674 break;
1675 case 22:
1676 storeKey();
1677 break;
1678 case 21:
1679 storeUniqueKey();
1680 break;
1681 case 20:
1682 storePrimaryKey();
1683 break;
1684 case 18:
1685 storeDefaultNullOpt();
1686 break;
1687 case 17:
1688 storeDefaultOpt();
1689 break;
1690 case 15:
1691 storeNullOpt();
1692 break;
1693 case 14:
1694 storeNotNullOpt();
1695 break;
1696 case 13:
1697 storeNullOpt();
1698 break;
1699 case 12:
1700 storeAttrColumn();
1701 break;
1702 case 9:
1703 dropOpt2();
1704 break;
1705 case 8:
1706 dropOpt1();
1707 break;
1708 case 7:
1709 execDrop();
1710 break;
1711 case 6:
1712 execCreate();
1713 break;
1714 }
1715 break;
1716 }
1717 case ACCEPT:
1718 {
1719 postAction();
1720 return;
1721 }
1722 default:
1723 break;
1724 }
1725 }
1726 else
1727 {
1728 Chain msg = "Parse error at token <" + Chain(_tokenVal) + ">.";
1729 throw Exception(EXLOC, msg);
1730 }
1731 }
1732 }
1733
1734
getAction(int state,OracleParser::Token token,OracleParser::Action & a,int & num)1735 bool OracleParser::getAction(int state, OracleParser::Token token, OracleParser::Action& a, int& num)
1736 {
1737 if (_actionMap[state][token].getAction() != NULLACTION )
1738 {
1739 a = _actionMap[state][token].getAction();
1740 num = _actionMap[state][token].getNum();
1741 return true;
1742 }
1743 else
1744 {
1745 return false;
1746 }
1747 }
1748
getJump(int state,Production prod,int & fstate)1749 bool OracleParser::getJump(int state, Production prod, int& fstate)
1750 {
1751 if ( _jumpMap[state][prod] > 0 )
1752 {
1753 fstate = _jumpMap[state][prod];
1754 return true;
1755 }
1756 else
1757 {
1758 return false;
1759 }
1760 }
1761
isSepSign(char c)1762 bool OracleParser::isSepSign(char c)
1763 {
1764 if (c == ';') return true;
1765 if (c == ',') return true;
1766 if (c == '=') return true;
1767 if (c == '<') return true;
1768 if (c == '>') return true;
1769 if (c == ')') return true;
1770 if (c == '(') return true;
1771 if (c == '[') return true;
1772 if (c == ']') return true;
1773 if (c == '+') return true;
1774 if (c == '-') return true;
1775 if (c == '|') return true;
1776 return false;
1777 }
isSepIgnore(char c)1778 bool OracleParser::isSepIgnore(char c)
1779 {
1780 if (c == '\t') return true;
1781 if (c == ' ') return true;
1782 if (c == '\n') return true;
1783 if (c == '\r') return true;
1784 return false;
1785 }
shiftToken()1786 bool OracleParser::shiftToken()
1787 {
1788 unsigned long i=0;
1789 char c;
1790 while ( isSepIgnore(c = nextChar()) && ! _isReserved );
1791 if ( _isReserved )
1792 {
1793 _token = _reservedToken;
1794 _isReserved = false;
1795 return true;
1796 }
1797 if (c == 0)
1798 {
1799 _token = ENDTOKEN;
1800 return true;
1801 }
1802 if (isSepSign(c))
1803 {
1804 _tokenVal[i]=c;
1805 i++;
1806 }
1807 else
1808 {
1809 while (c && ! isSepIgnore(c) && ! ( isSepSign(c) && i>0 ) )
1810 {
1811 _tokenVal[i]=c;
1812 i++;
1813 c = nextChar();
1814 }
1815 if (isSepSign(c)) backChar();
1816 }
1817 _tokenVal[i]=0;
1818 Scanner* pS = _scannerList.First();
1819 while (pS)
1820 {
1821 if (pS->checkPattern(_tokenVal))
1822 {
1823 _token = pS->getToken();
1824 return true;
1825 }
1826 pS=_scannerList.Next();
1827 }
1828 return false;
1829 }
setReserved(Token t)1830 void OracleParser::setReserved(Token t)
1831 {
1832 _reservedToken = t;
1833 _isReserved = true;
1834 }
1835