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