001/**
002 *
003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved.
004 *
005 * This library is free software; you can redistribute it and/or
006 * modify it under the terms of the GNU Lesser General Public
007 * License as published by the Free Software Foundation; either 
008 * version 2.1 of the License, or (at your option) any later version.
009 * 
010 * This library is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013 * Lesser General Public License for more details.
014 * 
015 * You should have received a copy of the GNU Lesser General Public 
016 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
017 * 
018 **/
019
020package lucee.runtime.sql.old;
021
022import java.io.DataInputStream;
023import java.io.FileInputStream;
024import java.io.FileNotFoundException;
025import java.io.InputStream;
026import java.io.Reader;
027import java.util.Enumeration;
028import java.util.Vector;
029
030
031// Referenced classes of package Zql:
032//            ParseException, ZTransactStmt, ZLockTable, ZUpdate, 
033//            ZInsert, ZExpression, ZDelete, ZQuery, 
034//            ZSelectItem, ZFromItem, ZGroupBy, ZOrderBy, 
035//            ZConstant, SimpleCharStream, ZqlJJParserTokenManager, Token, 
036//            ZqlJJParserConstants, ZUtils, ZStatement, ZExp
037
038public final class ZqlJJParser
039    implements ZqlJJParserConstants
040{
041    static final class JJCalls
042    {
043
044        int gen;
045        Token first;
046        int arg;
047        JJCalls next;
048
049        JJCalls()
050        {
051        }
052    }
053
054
055    public static void main(String args[])
056        throws ParseException
057    {
058        ZqlJJParser zqljjparser = null;
059        if(args.length < 1)
060        {
061            System.out.println("Reading from stdin (exit; to finish)");
062            zqljjparser = new ZqlJJParser(System.in);
063        } else
064        {
065            try
066            {
067                zqljjparser = new ZqlJJParser(new DataInputStream(new FileInputStream(args[0])));
068            }
069            catch(FileNotFoundException filenotfoundexception)
070            {
071                System.out.println("File " + args[0] + " not found. Reading from stdin");
072                zqljjparser = new ZqlJJParser(System.in);
073            }
074        }
075        if(args.length > 0)
076            System.out.println(args[0]);
077        for(ZStatement zstatement = null; (zstatement = zqljjparser.SQLStatement()) != null;)
078            System.out.println(zstatement.toString());
079
080        System.out.println("Parse Successful");
081    }
082
083    public final void BasicDataTypeDeclaration()
084        throws ParseException
085    {
086        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
087        {
088        case 15: // '\017'
089        case 27: // '\033'
090        case 34: // '"'
091        case 44: // ','
092        case 48: // '0'
093        case 56: // '8'
094        case 70: // 'F'
095        case 71: // 'G'
096            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
097            {
098            case 15: // '\017'
099                jj_consume_token(15);
100                break;
101
102            case 71: // 'G'
103                jj_consume_token(71);
104                break;
105
106            case 70: // 'F'
107                jj_consume_token(70);
108                break;
109
110            case 34: // '"'
111                jj_consume_token(34);
112                break;
113
114            case 48: // '0'
115                jj_consume_token(48);
116                break;
117
118            case 44: // ','
119                jj_consume_token(44);
120                break;
121
122            case 56: // '8'
123                jj_consume_token(56);
124                break;
125
126            case 27: // '\033'
127                jj_consume_token(27);
128                break;
129
130            default:
131                jj_la1[0] = jj_gen;
132                jj_consume_token(-1);
133                throw new ParseException();
134            }
135            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
136            {
137            case 88: // 'X'
138                jj_consume_token(88);
139                jj_consume_token(76);
140                switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
141                {
142                case 89: // 'Y'
143                    jj_consume_token(89);
144                    jj_consume_token(76);
145                    break;
146
147                default:
148                    jj_la1[1] = jj_gen;
149                    break;
150                }
151                jj_consume_token(90);
152                break;
153
154            default:
155                jj_la1[2] = jj_gen;
156                break;
157            }
158            break;
159
160        case 20: // '\024'
161            jj_consume_token(20);
162            break;
163
164        case 12: // '\f'
165            jj_consume_token(12);
166            break;
167
168        case 13: // '\r'
169            jj_consume_token(13);
170            break;
171
172        default:
173            jj_la1[3] = jj_gen;
174            jj_consume_token(-1);
175            throw new ParseException();
176        }
177    }
178
179    public final Vector SQLStatements()
180        throws ParseException
181    {
182        Vector vector = new Vector();
183label0:
184        do
185        {
186            ZStatement zstatement = SQLStatement();
187            if(zstatement == null)
188                return vector;
189            vector.addElement(zstatement);
190            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
191            {
192            case 17: // '\021'
193            case 21: // '\025'
194            case 26: // '\032'
195            case 33: // '!'
196            case 39: // '\''
197            case 54: // '6'
198            case 57: // '9'
199            case 59: // ';'
200            case 60: // '<'
201            case 68: // 'D'
202                break;
203
204            default:
205                jj_la1[4] = jj_gen;
206                break label0;
207            }
208        } while(true);
209        return vector;
210    }
211
212    public final ZStatement SQLStatement()
213        throws ParseException
214    {
215        //Object obj = null;
216        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
217        {
218        case 17: // '\021'
219            ZTransactStmt ztransactstmt = CommitStatement();
220            return ztransactstmt;
221
222        case 21: // '\025'
223            ZDelete zdelete = DeleteStatement();
224            return zdelete;
225
226        case 33: // '!'
227            ZInsert zinsert = InsertStatement();
228            return zinsert;
229
230        case 39: // '\''
231            ZLockTable zlocktable = LockTableStatement();
232            return zlocktable;
233
234        case 57: // '9'
235            ZTransactStmt ztransactstmt1 = RollbackStatement();
236            return ztransactstmt1;
237
238        case 59: // ';'
239            ZQuery zquery = QueryStatement();
240            return zquery;
241
242        case 60: // '<'
243            ZTransactStmt ztransactstmt2 = SetTransactionStatement();
244            return ztransactstmt2;
245
246        case 68: // 'D'
247            ZUpdate zupdate = UpdateStatement();
248            return zupdate;
249
250        case 26: // '\032'
251        case 54: // '6'
252            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
253            {
254            case 26: // '\032'
255                jj_consume_token(26);
256                break;
257
258            case 54: // '6'
259                jj_consume_token(54);
260                break;
261
262            default:
263                jj_la1[5] = jj_gen;
264                jj_consume_token(-1);
265                throw new ParseException();
266            }
267            jj_consume_token(91);
268            return null;
269        }
270        jj_la1[6] = jj_gen;
271        jj_consume_token(-1);
272        throw new ParseException();
273    }
274
275    public final ZTransactStmt CommitStatement()
276        throws ParseException
277    {
278        ZTransactStmt ztransactstmt = new ZTransactStmt("COMMIT");
279        jj_consume_token(17);
280        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
281        {
282        case 74: // 'J'
283            jj_consume_token(74);
284            break;
285
286        default:
287            jj_la1[7] = jj_gen;
288            break;
289        }
290        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
291        {
292        case 16: // '\020'
293            jj_consume_token(16);
294            Token token1 = jj_consume_token(86);
295            ztransactstmt.setComment(token1.toString());
296            break;
297
298        default:
299            jj_la1[8] = jj_gen;
300            break;
301        }
302        jj_consume_token(91);
303        return ztransactstmt;
304    }
305
306    public final ZLockTable LockTableStatement()
307        throws ParseException
308    {
309        ZLockTable zlocktable = new ZLockTable();
310        Vector vector = new Vector();
311        jj_consume_token(39);
312        jj_consume_token(65);
313        String s = TableReference();
314        vector.addElement(s);
315label0:
316        do
317            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
318            {
319            default:
320                jj_la1[9] = jj_gen;
321                break label0;
322
323            case 89: // 'Y'
324                jj_consume_token(89);
325                s = TableReference();
326                vector.addElement(s);
327                break;
328            }
329        while(true);
330        jj_consume_token(32);
331        s = LockMode();
332        zlocktable.setLockMode(s);
333        jj_consume_token(43);
334        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
335        {
336        case 46: // '.'
337            jj_consume_token(46);
338            zlocktable.nowait_ = true;
339            break;
340
341        default:
342            jj_la1[10] = jj_gen;
343            break;
344        }
345        jj_consume_token(91);
346        zlocktable.addTables(vector);
347        return zlocktable;
348    }
349
350    public final ZTransactStmt RollbackStatement()
351        throws ParseException
352    {
353        ZTransactStmt ztransactstmt = new ZTransactStmt("ROLLBACK");
354        jj_consume_token(57);
355        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
356        {
357        case 74: // 'J'
358            jj_consume_token(74);
359            break;
360
361        default:
362            jj_la1[11] = jj_gen;
363            break;
364        }
365        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
366        {
367        case 16: // '\020'
368            jj_consume_token(16);
369            Token token1 = jj_consume_token(86);
370            ztransactstmt.setComment(token1.toString());
371            break;
372
373        default:
374            jj_la1[12] = jj_gen;
375            break;
376        }
377        jj_consume_token(91);
378        return ztransactstmt;
379    }
380
381    public final ZTransactStmt SetTransactionStatement()
382        throws ParseException
383    {
384        ZTransactStmt ztransactstmt = new ZTransactStmt("SET TRANSACTION");
385        boolean flag = false;
386        jj_consume_token(60);
387        jj_consume_token(66);
388        jj_consume_token(55);
389        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
390        {
391        case 50: // '2'
392            jj_consume_token(50);
393            flag = true;
394            break;
395
396        case 75: // 'K'
397            jj_consume_token(75);
398            break;
399
400        default:
401            jj_la1[13] = jj_gen;
402            jj_consume_token(-1);
403            throw new ParseException();
404        }
405        jj_consume_token(91);
406        ztransactstmt.readOnly_ = flag;
407        return ztransactstmt;
408    }
409
410    public final String LockMode()
411        throws ParseException
412    {
413        StringBuffer stringbuffer = new StringBuffer();
414        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
415        {
416        case 58: // ':'
417            jj_consume_token(58);
418            stringbuffer.append("ROW ");
419            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
420            {
421            case 61: // '='
422                jj_consume_token(61);
423                stringbuffer.append("SHARE");
424                break;
425
426            case 24: // '\030'
427                jj_consume_token(24);
428                stringbuffer.append("EXCLUSIVE");
429                break;
430
431            default:
432                jj_la1[14] = jj_gen;
433                jj_consume_token(-1);
434                throw new ParseException();
435            }
436            return stringbuffer.toString();
437
438        case 61: // '='
439            jj_consume_token(61);
440            stringbuffer.append("SHARE");
441            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
442            {
443            case 58: // ':'
444            case 68: // 'D'
445                switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
446                {
447                case 68: // 'D'
448                    jj_consume_token(68);
449                    stringbuffer.append(" UPDATE");
450                    break;
451
452                case 58: // ':'
453                    jj_consume_token(58);
454                    jj_consume_token(24);
455                    stringbuffer.append(" ROW EXCLUSIVE");
456                    break;
457
458                default:
459                    jj_la1[15] = jj_gen;
460                    jj_consume_token(-1);
461                    throw new ParseException();
462                }
463                break;
464
465            default:
466                jj_la1[16] = jj_gen;
467                break;
468            }
469            return stringbuffer.toString();
470
471        case 24: // '\030'
472            jj_consume_token(24);
473            return new String("EXCLUSIVE");
474        }
475        jj_la1[17] = jj_gen;
476        jj_consume_token(-1);
477        throw new ParseException();
478    }
479
480    public final ZUpdate UpdateStatement()
481        throws ParseException
482    {
483        jj_consume_token(68);
484        String s = TableReference();
485        ZUpdate zupdate = new ZUpdate(s);
486        jj_consume_token(60);
487        ColumnValues(zupdate);
488        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
489        {
490        case 72: // 'H'
491            jj_consume_token(72);
492            ZExp zexp = SQLExpression();
493            zupdate.addWhere(zexp);
494            break;
495
496        default:
497            jj_la1[18] = jj_gen;
498            break;
499        }
500        jj_consume_token(91);
501        return zupdate;
502    }
503
504    public final void ColumnValues(ZUpdate zupdate)
505        throws ParseException
506    {
507        String s = TableColumn();
508        jj_consume_token(92);
509        ZExp zexp = UpdatedValue();
510        zupdate.addColumnUpdate(s, zexp);
511label0:
512        do
513            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
514            {
515            default:
516                jj_la1[19] = jj_gen;
517                break label0;
518
519            case 89: // 'Y'
520                jj_consume_token(89);
521                String s1 = TableColumn();
522                jj_consume_token(92);
523                ZExp zexp1 = UpdatedValue();
524                zupdate.addColumnUpdate(s1, zexp1);
525                break;
526            }
527        while(true);
528    }
529
530    public final ZExp UpdatedValue()
531        throws ParseException
532    {
533        if(jj_2_1(0x7fffffff))
534        {
535            jj_consume_token(88);
536            ZQuery zquery = SelectStatement();
537            jj_consume_token(90);
538            return zquery;
539        }
540        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
541        {
542        case 10: // '\n'
543        case 19: // '\023'
544        case 25: // '\031'
545        case 40: // '('
546        case 41: // ')'
547        case 45: // '-'
548        case 47: // '/'
549        case 53: // '5'
550        case 64: // '@'
551        case 76: // 'L'
552        case 82: // 'R'
553        case 85: // 'U'
554        case 86: // 'V'
555        case 87: // 'W'
556        case 88: // 'X'
557        case 101: // 'e'
558        case 102: // 'f'
559            ZExp zexp = SQLExpression();
560            return zexp;
561
562        case 105: // 'i'
563            ZExp zexp1 = PreparedCol();
564            return zexp1;
565        }
566        jj_la1[20] = jj_gen;
567        jj_consume_token(-1);
568        throw new ParseException();
569    }
570
571    public final ZInsert InsertStatement()
572        throws ParseException
573    {
574        jj_consume_token(33);
575        jj_consume_token(36);
576        String s = TableReference();
577        ZInsert zinsert = new ZInsert(s);
578        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
579        {
580        case 88: // 'X'
581            jj_consume_token(88);
582            String s1 = TableColumn();
583            Vector vector = new Vector();
584            vector.addElement(s1);
585label0:
586            do
587                switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
588                {
589                default:
590                    jj_la1[21] = jj_gen;
591                    break label0;
592
593                case 89: // 'Y'
594                    jj_consume_token(89);
595                    String s2 = TableColumn();
596                    vector.addElement(s2);
597                    break;
598                }
599            while(true);
600            jj_consume_token(90);
601            zinsert.addColumns(vector);
602            break;
603
604        default:
605            jj_la1[22] = jj_gen;
606            break;
607        }
608        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
609        {
610        case 69: // 'E'
611            jj_consume_token(69);
612            jj_consume_token(88);
613            Vector vector1 = SQLExpressionList();
614            jj_consume_token(90);
615            ZExpression zexpression = new ZExpression(",");
616            zexpression.setOperands(vector1);
617            zinsert.addValueSpec(zexpression);
618            break;
619
620        case 59: // ';'
621            ZQuery zquery = SelectStatement();
622            zinsert.addValueSpec(zquery);
623            break;
624
625        default:
626            jj_la1[23] = jj_gen;
627            jj_consume_token(-1);
628            throw new ParseException();
629        }
630        jj_consume_token(91);
631        return zinsert;
632    }
633
634    public final ZDelete DeleteStatement()
635        throws ParseException
636    {
637        jj_consume_token(21);
638        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
639        {
640        case 29: // '\035'
641            jj_consume_token(29);
642            break;
643
644        default:
645            jj_la1[24] = jj_gen;
646            break;
647        }
648        String s = TableReference();
649        ZDelete zdelete = new ZDelete(s);
650        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
651        {
652        case 72: // 'H'
653            jj_consume_token(72);
654            ZExp zexp = SQLExpression();
655            zdelete.addWhere(zexp);
656            break;
657
658        default:
659            jj_la1[25] = jj_gen;
660            break;
661        }
662        jj_consume_token(91);
663        return zdelete;
664    }
665
666    public final ZQuery QueryStatement()
667        throws ParseException
668    {
669        ZQuery zquery = SelectStatement();
670        jj_consume_token(91);
671        return zquery;
672    }
673
674    public final String TableColumn()
675        throws ParseException
676    {
677        StringBuffer stringbuffer = new StringBuffer();
678        String s = OracleObjectName();
679        stringbuffer.append(s);
680        
681        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
682        {
683        case 93: // ']'
684            jj_consume_token(93);
685            String s1 = OracleObjectName();
686            
687            stringbuffer.append("." + s1);
688            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
689            {
690            case 93: // ']'
691                jj_consume_token(93);
692                String s2 = OracleObjectName();
693                stringbuffer.append("." + s2);
694                break;
695
696            default:
697                jj_la1[26] = jj_gen;
698                break;
699            }
700            break;
701
702        default:
703            jj_la1[27] = jj_gen;
704            break;
705        }
706        return stringbuffer.toString();
707    }
708
709    public final String OracleObjectName()
710        throws ParseException
711    {
712        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
713        {
714        case 82: // 'R'
715            Token token1 = jj_consume_token(82);
716                return token1.toString();
717
718        case 87: // 'W'
719            Token token2 = jj_consume_token(87);
720                return token2.toString();
721        }
722
723        Token token1 = jj_consume_token(82);
724        return token1.toString();
725
726        //MOD jj_la1[28] = jj_gen;
727        //MOD jj_consume_token(-1);
728        //MOD throw new ParseException();
729    }
730
731    public final String Relop()
732        throws ParseException
733    {
734        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
735        {
736        case 92: // '\\'
737            Token token1 = jj_consume_token(92);
738            return token1.toString();
739
740        case 94: // '^'
741            Token token2 = jj_consume_token(94);
742            return token2.toString();
743
744        case 95: // '_'
745            Token token3 = jj_consume_token(95);
746            return token3.toString();
747
748        case 96: // '`'
749            Token token4 = jj_consume_token(96);
750            return token4.toString();
751
752        case 97: // 'a'
753            Token token5 = jj_consume_token(97);
754            return token5.toString();
755
756        case 98: // 'b'
757            Token token6 = jj_consume_token(98);
758            return token6.toString();
759
760        case 99: // 'c'
761            Token token7 = jj_consume_token(99);
762            return token7.toString();
763
764        case 100: // 'd'
765            Token token8 = jj_consume_token(100);
766            return token8.toString();
767
768        case 93: // ']'
769        default:
770            jj_la1[29] = jj_gen;
771            jj_consume_token(-1);
772            throw new ParseException();
773        }
774    }
775
776    public final String TableReference()
777        throws ParseException
778    {
779        StringBuffer stringbuffer = new StringBuffer();
780        String s = OracleObjectName();
781        
782        stringbuffer.append(s);
783        /*
784changed by mic
785        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
786        {
787        case 93: // ']'
788            jj_consume_token(93);
789            String s1 = OracleObjectName();
790            stringbuffer.append("." + s1);
791            break;
792
793        default:
794            jj_la1[30] = jj_gen;
795            break;
796        }
797        */
798        while(true) {
799                if((jj_ntk != -1 ? jj_ntk : jj_ntk())==93) {
800                    jj_consume_token(93);
801                    String s1 = OracleObjectName();
802                    stringbuffer.append("." + s1);
803                }
804                else {
805                        jj_la1[30] = jj_gen;
806                        break;
807                }
808        }
809        
810        return stringbuffer.toString();
811    }
812
813    public final void NumOrID()
814        throws ParseException
815    {
816        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
817        {
818        case 82: // 'R'
819            jj_consume_token(82);
820            break;
821
822        case 76: // 'L'
823        case 101: // 'e'
824        case 102: // 'f'
825            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
826            {
827            case 101: // 'e'
828            case 102: // 'f'
829                switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
830                {
831                case 101: // 'e'
832                    jj_consume_token(101);
833                    break;
834
835                case 102: // 'f'
836                    jj_consume_token(102);
837                    break;
838
839                default:
840                    jj_la1[31] = jj_gen;
841                    jj_consume_token(-1);
842                    throw new ParseException();
843                }
844                break;
845
846            default:
847                jj_la1[32] = jj_gen;
848                break;
849            }
850            jj_consume_token(76);
851            break;
852
853        default:
854            jj_la1[33] = jj_gen;
855            jj_consume_token(-1);
856            throw new ParseException();
857        }
858    }
859
860    public final ZQuery SelectStatement()
861        throws ParseException
862    {
863        ZQuery zquery = SelectWithoutOrder();
864        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
865        {
866        case 52: // '4'
867            Vector vector = OrderByClause();
868            zquery.addOrderBy(vector);
869            break;
870
871        default:
872            jj_la1[34] = jj_gen;
873            break;
874        }
875        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
876        {
877        case 28: // '\034'
878            ForUpdateClause();
879            zquery.forupdate_ = true;
880            break;
881
882        default:
883            jj_la1[35] = jj_gen;
884            break;
885        }
886        return zquery;
887    }
888
889    public final ZQuery SelectWithoutOrder()
890        throws ParseException
891    {
892        ZQuery zquery = new ZQuery();
893        ZExp zexp = null;
894        ZGroupBy zgroupby = null;
895        ZExpression zexpression = null;
896        jj_consume_token(59);
897        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
898        {
899        case 5: // '\005'
900        case 23: // '\027'
901            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
902            {
903            case 5: // '\005'
904                jj_consume_token(5);
905                break;
906
907            case 23: // '\027'
908                jj_consume_token(23);
909                zquery.distinct_ = true;
910                break;
911
912            default:
913                jj_la1[36] = jj_gen;
914                jj_consume_token(-1);
915                throw new ParseException();
916            }
917            break;
918
919        default:
920            jj_la1[37] = jj_gen;
921            break;
922        }
923        Vector vector = SelectList();
924        Vector vector1 = FromClause();
925        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
926        {
927        case 72: // 'H'
928            zexp = WhereClause();
929            break;
930
931        default:
932            jj_la1[38] = jj_gen;
933            break;
934        }
935        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
936        {
937        case 18: // '\022'
938        case 63: // '?'
939            ConnectClause();
940            break;
941
942        default:
943            jj_la1[39] = jj_gen;
944            break;
945        }
946        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
947        {
948        case 30: // '\036'
949            zgroupby = GroupByClause();
950            break;
951
952        default:
953            jj_la1[40] = jj_gen;
954            break;
955        }
956        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
957        {
958        case 35: // '#'
959        case 42: // '*'
960        case 67: // 'C'
961            zexpression = SetClause();
962            break;
963
964        default:
965            jj_la1[41] = jj_gen;
966            break;
967        }
968        zquery.addSelect(vector);
969        zquery.addFrom(vector1);
970        zquery.addWhere(zexp);
971        zquery.addGroupBy(zgroupby);
972        zquery.addSet(zexpression);
973        return zquery;
974    }
975
976    public final Vector SelectList() throws ParseException      {
977        Vector vector = new Vector(8);
978        int i=jj_ntk != -1 ? jj_ntk : jj_ntk();
979        //print.out("i:"+i);
980        
981        switch(i)       {
982                
983    
984        case 103: // 'g'
985            jj_consume_token(103);
986            vector.addElement(new ZSelectItem("*"));
987            return vector;
988
989        //case 15: token.kind=82;    
990        
991        case 10: // '\n'
992        case 19: // '\023'
993        case 40: // '('
994        case 41: // ')'
995        case 47: // '/'
996        case 64: // '@'
997        case 76: // 'L'
998        case 82: // 'R'
999        case 85: // 'U'
1000        case 86: // 'V'
1001        case 87: // 'W'
1002        case 88: // 'X'
1003        case 101: // 'e'
1004        case 102: // 'f'
1005        //default:
1006            ZSelectItem zselectitem = SelectItem();
1007            vector.addElement(zselectitem);
1008            //print.out("sel:"+zselectitem.column_+"::"+zselectitem.alias_);
1009            label0:do
1010                switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1011                {
1012                default:
1013                    jj_la1[42] = jj_gen;
1014                    break label0;
1015
1016                case 89: // 'Y'
1017                    jj_consume_token(89);
1018                    ZSelectItem zselectitem1 = SelectItem();
1019                    vector.addElement(zselectitem1);
1020                    break;
1021                }
1022            while(true);
1023            
1024            return vector;
1025        }
1026        jj_la1[43] = jj_gen;
1027        jj_consume_token(-1);
1028        throw new ParseException();
1029    }
1030
1031    public final ZSelectItem SelectItem()
1032        throws ParseException
1033    {
1034        if(jj_2_2(0x7fffffff))
1035        {
1036            String s = SelectStar();
1037            return new ZSelectItem(s);
1038        }
1039        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1040        {
1041        //case 15: token.kind=82;
1042        case 10: // '\n'
1043        case 19: // '\023'
1044        case 40: // '('
1045        case 41: // ')'
1046        case 47: // '/'
1047        case 64: // '@'
1048        case 76: // 'L'
1049        case 82: // 'R'
1050        case 85: // 'U'
1051        case 86: // 'V'
1052        case 87: // 'W'
1053        case 88: // 'X'
1054        case 101: // 'e'
1055        case 102: // 'f'
1056        //default:
1057            ZExp zexp = SQLSimpleExpression();
1058            ZSelectItem zselectitem = new ZSelectItem(zexp.toString());
1059            zselectitem.setExpression(zexp);
1060            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1061            {
1062            case 8: // '\b'
1063            case 82: // 'R'
1064                String s1 = SelectAlias();
1065                zselectitem.setAlias(s1);
1066                break;
1067
1068            default:
1069                jj_la1[44] = jj_gen;
1070                break;
1071            }
1072            return zselectitem;
1073        }
1074        jj_la1[45] = jj_gen;
1075        jj_consume_token(-1);
1076        throw new ParseException();
1077    }
1078
1079    public final String SelectAlias()
1080        throws ParseException
1081    {
1082        StringBuffer stringbuffer = new StringBuffer();
1083        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1084        {
1085        case 8: // '\b'
1086            jj_consume_token(8);
1087            break;
1088
1089        default:
1090            jj_la1[46] = jj_gen;
1091            break;
1092        }
1093label0:
1094        do
1095        {
1096            Token token1 = jj_consume_token(82);
1097            stringbuffer.append(token1.toString().trim() + " ");
1098            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1099            {
1100            case 82: // 'R'
1101                break;
1102
1103            default:
1104                jj_la1[47] = jj_gen;
1105                break label0;
1106            }
1107        } while(true);
1108        return stringbuffer.toString().trim();
1109    }
1110
1111    public final String SelectStar()
1112        throws ParseException
1113    {
1114        if(jj_2_3(2))
1115        {
1116            String s = OracleObjectName();
1117            jj_consume_token(104);
1118            return new String(s + ".*");
1119        }
1120        if(jj_2_4(4))
1121        {
1122            String s1 = OracleObjectName();
1123            jj_consume_token(93);
1124            String s2 = OracleObjectName();
1125            jj_consume_token(104);
1126            return new String(s1 + "." + s2 + ".*");
1127        }
1128        jj_consume_token(-1);
1129        throw new ParseException();
1130        
1131    }
1132
1133    public final Vector FromClause()
1134        throws ParseException
1135    {
1136        Vector vector = new Vector(8);
1137        jj_consume_token(29);
1138        ZFromItem zfromitem = FromItem();
1139        vector.addElement(zfromitem);
1140label0:
1141        do
1142            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1143            {
1144            default:
1145                jj_la1[48] = jj_gen;
1146                break label0;
1147
1148            case 89: // 'Y'
1149                jj_consume_token(89);
1150                ZFromItem zfromitem1 = FromItem();
1151                vector.addElement(zfromitem1);
1152                break;
1153            }
1154        while(true);
1155        return vector;
1156    }
1157
1158    public final ZFromItem FromItem()
1159        throws ParseException
1160    {
1161        String s = TableReference();
1162        
1163        ZFromItem zfromitem = new ZFromItem(s);
1164        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1165        {
1166        case 82: // 'R'
1167            Token token1 = jj_consume_token(82);
1168            zfromitem.setAlias(token1.toString());
1169            break;
1170
1171        default:
1172            jj_la1[49] = jj_gen;
1173            break;
1174        }
1175        return zfromitem;
1176    }
1177
1178    public final ZExp WhereClause()
1179        throws ParseException
1180    {
1181        jj_consume_token(72);
1182        ZExp zexp = SQLExpression();
1183        return zexp;
1184    }
1185
1186    public final void ConnectClause()
1187        throws ParseException
1188    {
1189        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1190        {
1191        case 63: // '?'
1192            jj_consume_token(63);
1193            jj_consume_token(73);
1194            SQLExpression();
1195            break;
1196
1197        default:
1198            jj_la1[50] = jj_gen;
1199            break;
1200        }
1201        jj_consume_token(18);
1202        jj_consume_token(14);
1203        SQLExpression();
1204        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1205        {
1206        case 63: // '?'
1207            jj_consume_token(63);
1208            jj_consume_token(73);
1209            SQLExpression();
1210            break;
1211
1212        default:
1213            jj_la1[51] = jj_gen;
1214            break;
1215        }
1216    }
1217
1218    public final ZGroupBy GroupByClause()
1219        throws ParseException
1220    {
1221        ZGroupBy zgroupby = null;
1222        jj_consume_token(30);
1223        jj_consume_token(14);
1224        Vector vector = SQLExpressionList();
1225        zgroupby = new ZGroupBy(vector);
1226        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1227        {
1228        case 31: // '\037'
1229            jj_consume_token(31);
1230            ZExp zexp = SQLExpression();
1231            zgroupby.setHaving(zexp);
1232            break;
1233
1234        default:
1235            jj_la1[52] = jj_gen;
1236            break;
1237        }
1238        return zgroupby;
1239    }
1240
1241    public final ZExpression SetClause()
1242        throws ParseException
1243    {
1244        Token token1;
1245        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1246        {
1247        case 67: // 'C'
1248            token1 = jj_consume_token(67);
1249            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1250            {
1251            case 5: // '\005'
1252                jj_consume_token(5);
1253                break;
1254
1255            default:
1256                jj_la1[53] = jj_gen;
1257                break;
1258            }
1259            break;
1260
1261        case 35: // '#'
1262            token1 = jj_consume_token(35);
1263            break;
1264
1265        case 42: // '*'
1266            token1 = jj_consume_token(42);
1267            break;
1268
1269        default:
1270            jj_la1[54] = jj_gen;
1271            jj_consume_token(-1);
1272            throw new ParseException();
1273        }
1274        ZExpression zexpression = new ZExpression(token1.toString());
1275        if(jj_2_5(0x7fffffff))
1276        {
1277            jj_consume_token(88);
1278            ZQuery zquery = SelectWithoutOrder();
1279            zexpression.addOperand(zquery);
1280            jj_consume_token(90);
1281        } else
1282        {
1283            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1284            {
1285            case 59: // ';'
1286                ZQuery zquery1 = SelectWithoutOrder();
1287                zexpression.addOperand(zquery1);
1288                break;
1289
1290            default:
1291                jj_la1[55] = jj_gen;
1292                jj_consume_token(-1);
1293                throw new ParseException();
1294            }
1295        }
1296        return zexpression;
1297    }
1298
1299    public final Vector OrderByClause()
1300        throws ParseException
1301    {
1302        Vector vector = new Vector();
1303        jj_consume_token(52);
1304        jj_consume_token(14);
1305        ZExp zexp = SQLSimpleExpression();
1306        ZOrderBy zorderby = new ZOrderBy(zexp);
1307        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1308        {
1309        case 9: // '\t'
1310        case 22: // '\026'
1311            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1312            {
1313            case 9: // '\t'
1314                jj_consume_token(9);
1315                break;
1316
1317            case 22: // '\026'
1318                jj_consume_token(22);
1319                zorderby.setAscOrder(false);
1320                break;
1321
1322            default:
1323                jj_la1[56] = jj_gen;
1324                jj_consume_token(-1);
1325                throw new ParseException();
1326            }
1327            break;
1328
1329        default:
1330            jj_la1[57] = jj_gen;
1331            break;
1332        }
1333        vector.addElement(zorderby);
1334label0:
1335        do
1336            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1337            {
1338            default:
1339                jj_la1[58] = jj_gen;
1340                break label0;
1341
1342            case 89: // 'Y'
1343                jj_consume_token(89);
1344                ZExp zexp1 = SQLSimpleExpression();
1345                ZOrderBy zorderby1 = new ZOrderBy(zexp1);
1346                switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1347                {
1348                case 9: // '\t'
1349                case 22: // '\026'
1350                    switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1351                    {
1352                    case 9: // '\t'
1353                        jj_consume_token(9);
1354                        break;
1355
1356                    case 22: // '\026'
1357                        jj_consume_token(22);
1358                        zorderby1.setAscOrder(false);
1359                        break;
1360
1361                    default:
1362                        jj_la1[59] = jj_gen;
1363                        jj_consume_token(-1);
1364                        throw new ParseException();
1365                    }
1366                    break;
1367
1368                default:
1369                    jj_la1[60] = jj_gen;
1370                    break;
1371                }
1372                vector.addElement(zorderby1);
1373                break;
1374            }
1375        while(true);
1376        return vector;
1377    }
1378
1379    public final void ForUpdateClause()
1380        throws ParseException
1381    {
1382        jj_consume_token(28);
1383        jj_consume_token(68);
1384label0:
1385        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1386        {
1387        case 49: // '1'
1388            jj_consume_token(49);
1389            TableColumn();
1390            do
1391                switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1392                {
1393                default:
1394                    jj_la1[61] = jj_gen;
1395                    break label0;
1396
1397                case 89: // 'Y'
1398                    jj_consume_token(89);
1399                    TableColumn();
1400                    break;
1401                }
1402            while(true);
1403
1404        default:
1405            jj_la1[62] = jj_gen;
1406            break;
1407        }
1408    }
1409
1410    public final ZExp SQLExpression()
1411        throws ParseException
1412    {
1413        ZExpression zexpression = null;
1414        boolean flag = true;
1415        ZExp zexp = SQLAndExpression();
1416label0:
1417        do
1418            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1419            {
1420            default:
1421                jj_la1[63] = jj_gen;
1422                break label0;
1423
1424            case 51: // '3'
1425                jj_consume_token(51);
1426                ZExp zexp1 = SQLAndExpression();
1427                if(flag)
1428                    zexpression = new ZExpression("OR", zexp);
1429                flag = false;
1430                zexpression.addOperand(zexp1);
1431                break;
1432            }
1433        while(true);
1434        return ( (flag ? zexp : zexpression));
1435    }
1436
1437    public final ZExp SQLAndExpression()
1438        throws ParseException
1439    {
1440        ZExpression zexpression = null;
1441        boolean flag = true;
1442        ZExp zexp = SQLUnaryLogicalExpression();
1443label0:
1444        do
1445            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1446            {
1447            default:
1448                jj_la1[64] = jj_gen;
1449                break label0;
1450
1451            case 6: // '\006'
1452                jj_consume_token(6);
1453                ZExp zexp1 = SQLUnaryLogicalExpression();
1454                if(flag)
1455                    zexpression = new ZExpression("AND", zexp);
1456                flag = false;
1457                zexpression.addOperand(zexp1);
1458                break;
1459            }
1460        while(true);
1461        return ( (flag ? zexp : zexpression));
1462    }
1463
1464    public final ZExp SQLUnaryLogicalExpression()
1465        throws ParseException
1466    {
1467        boolean flag = false;
1468        if(jj_2_6(2))
1469        {
1470            ZExpression zexpression = ExistsClause();
1471            return zexpression;
1472        }
1473        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1474        {
1475        case 10: // '\n'
1476        case 19: // '\023'
1477        case 40: // '('
1478        case 41: // ')'
1479        case 45: // '-'
1480        case 47: // '/'
1481        case 53: // '5'
1482        case 64: // '@'
1483        case 76: // 'L'
1484        case 82: // 'R'
1485        case 85: // 'U'
1486        case 86: // 'V'
1487        case 87: // 'W'
1488        case 88: // 'X'
1489        case 101: // 'e'
1490        case 102: // 'f'
1491            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1492            {
1493            case 45: // '-'
1494                jj_consume_token(45);
1495                flag = true;
1496                break;
1497
1498            default:
1499                jj_la1[65] = jj_gen;
1500                break;
1501            }
1502            ZExp zexp = SQLRelationalExpression();
1503            Object obj;
1504            if(flag)
1505                obj = new ZExpression("NOT", zexp);
1506            else
1507                obj = zexp;
1508            return ((ZExp) (obj));
1509        }
1510        jj_la1[66] = jj_gen;
1511        jj_consume_token(-1);
1512        throw new ParseException();
1513    }
1514
1515    public final ZExpression ExistsClause()
1516        throws ParseException
1517    {
1518        boolean flag = false;
1519        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1520        {
1521        case 45: // '-'
1522            jj_consume_token(45);
1523            flag = true;
1524            break;
1525
1526        default:
1527            jj_la1[67] = jj_gen;
1528            break;
1529        }
1530        jj_consume_token(25);
1531        jj_consume_token(88);
1532        ZQuery zquery = SubQuery();
1533        jj_consume_token(90);
1534        ZExpression zexpression1 = new ZExpression("EXISTS", zquery);
1535        ZExpression zexpression;
1536        if(flag)
1537            zexpression = new ZExpression("NOT", zexpression1);
1538        else
1539            zexpression = zexpression1;
1540        return zexpression;
1541    }
1542
1543    public final ZExp SQLRelationalExpression()
1544        throws ParseException
1545    {
1546        ZExpression zexpression = null;
1547        boolean flag = false;
1548        Object obj;
1549        if(jj_2_7(0x7fffffff))
1550        {
1551            jj_consume_token(88);
1552            Vector vector = SQLExpressionList();
1553            jj_consume_token(90);
1554            obj = new ZExpression(",");
1555            ((ZExpression)obj).setOperands(vector);
1556        } else
1557        {
1558            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1559            {
1560            case 10: // '\n'
1561            case 19: // '\023'
1562            case 40: // '('
1563            case 41: // ')'
1564            case 47: // '/'
1565            case 53: // '5'
1566            case 64: // '@'
1567            case 76: // 'L'
1568            case 82: // 'R'
1569            case 85: // 'U'
1570            case 86: // 'V'
1571            case 87: // 'W'
1572            case 88: // 'X'
1573            case 101: // 'e'
1574            case 102: // 'f'
1575                switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1576                {
1577                case 53: // '5'
1578                    jj_consume_token(53);
1579                    flag = true;
1580                    break;
1581
1582                default:
1583                    jj_la1[68] = jj_gen;
1584                    break;
1585                }
1586                ZExp zexp = SQLSimpleExpression();
1587                if(flag)
1588                    obj = new ZExpression("PRIOR", zexp);
1589                else
1590                    obj = zexp;
1591                break;
1592
1593            default:
1594                jj_la1[69] = jj_gen;
1595                jj_consume_token(-1);
1596                throw new ParseException();
1597            }
1598        }
1599        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1600        {
1601        case 11: // '\013'
1602        case 32: // ' '
1603        case 37: // '%'
1604        case 38: // '&'
1605        case 45: // '-'
1606        case 92: // '\\'
1607        case 94: // '^'
1608        case 95: // '_'
1609        case 96: // '`'
1610        case 97: // 'a'
1611        case 98: // 'b'
1612        case 99: // 'c'
1613        case 100: // 'd'
1614            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1615            {
1616            case 92: // '\\'
1617            case 94: // '^'
1618            case 95: // '_'
1619            case 96: // '`'
1620            case 97: // 'a'
1621            case 98: // 'b'
1622            case 99: // 'c'
1623            case 100: // 'd'
1624                zexpression = SQLRelationalOperatorExpression();
1625                break;
1626
1627            case 93: // ']'
1628            default:
1629                jj_la1[70] = jj_gen;
1630                if(jj_2_8(2))
1631                    zexpression = SQLInClause();
1632                else
1633                if(jj_2_9(2))
1634                    zexpression = SQLBetweenClause();
1635                else
1636                if(jj_2_10(2))
1637                    zexpression = SQLLikeClause();
1638                else
1639                    switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1640                    {
1641                    case 37: // '%'
1642                        zexpression = IsNullClause();
1643                        break;
1644
1645                    default:
1646                        jj_la1[71] = jj_gen;
1647                        jj_consume_token(-1);
1648                        throw new ParseException();
1649                    }
1650                break;
1651            }
1652            break;
1653
1654        default:
1655            jj_la1[72] = jj_gen;
1656            break;
1657        }
1658        if(zexpression == null)
1659            return ((ZExp) (obj));
1660        Vector vector1 = zexpression.getOperands();
1661        if(vector1 == null)
1662            vector1 = new Vector();
1663        vector1.insertElementAt(obj, 0);
1664        zexpression.setOperands(vector1);
1665        return zexpression;
1666    }
1667
1668    public final Vector SQLExpressionList()
1669        throws ParseException
1670    {
1671        Vector vector = new Vector(8);
1672        ZExp zexp = SQLSimpleExpressionOrPreparedCol();
1673        vector.addElement(zexp);
1674label0:
1675        do
1676            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1677            {
1678            default:
1679                jj_la1[73] = jj_gen;
1680                break label0;
1681
1682            case 89: // 'Y'
1683                jj_consume_token(89);
1684                ZExp zexp1 = SQLSimpleExpressionOrPreparedCol();
1685                vector.addElement(zexp1);
1686                break;
1687            }
1688        while(true);
1689        return vector;
1690    }
1691
1692    public final ZExpression SQLRelationalOperatorExpression()
1693        throws ParseException
1694    {
1695        String s1 = null;
1696        String s = Relop();
1697        ZExpression zexpression = new ZExpression(s);
1698        Object obj;
1699        if(jj_2_11(0x7fffffff))
1700        {
1701            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1702            {
1703            case 5: // '\005'
1704            case 7: // '\007'
1705                switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1706                {
1707                case 5: // '\005'
1708                    jj_consume_token(5);
1709                    s1 = "ALL";
1710                    break;
1711
1712                case 7: // '\007'
1713                    jj_consume_token(7);
1714                    s1 = "ANY";
1715                    break;
1716
1717                default:
1718                    jj_la1[74] = jj_gen;
1719                    jj_consume_token(-1);
1720                    throw new ParseException();
1721                }
1722                break;
1723
1724            default:
1725                jj_la1[75] = jj_gen;
1726                break;
1727            }
1728            jj_consume_token(88);
1729            ZQuery zquery = SubQuery();
1730            jj_consume_token(90);
1731            if(s1 == null)
1732                obj = zquery;
1733            else
1734                obj = new ZExpression(s1, zquery);
1735        } else
1736        {
1737            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1738            {
1739            case 10: // '\n'
1740            case 19: // '\023'
1741            case 40: // '('
1742            case 41: // ')'
1743            case 47: // '/'
1744            case 53: // '5'
1745            case 64: // '@'
1746            case 76: // 'L'
1747            case 82: // 'R'
1748            case 85: // 'U'
1749            case 86: // 'V'
1750            case 87: // 'W'
1751            case 88: // 'X'
1752            case 101: // 'e'
1753            case 102: // 'f'
1754            case 105: // 'i'
1755                switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1756                {
1757                case 53: // '5'
1758                    jj_consume_token(53);
1759                    s1 = "PRIOR";
1760                    break;
1761
1762                default:
1763                    jj_la1[76] = jj_gen;
1764                    break;
1765                }
1766                ZExp zexp = SQLSimpleExpressionOrPreparedCol();
1767                if(s1 == null)
1768                    obj = zexp;
1769                else
1770                    obj = new ZExpression(s1, zexp);
1771                break;
1772
1773            default:
1774                jj_la1[77] = jj_gen;
1775                jj_consume_token(-1);
1776                throw new ParseException();
1777            }
1778        }
1779        zexpression.addOperand(((ZExp) (obj)));
1780        return zexpression;
1781    }
1782
1783    public final ZExp SQLSimpleExpressionOrPreparedCol()
1784        throws ParseException
1785    {
1786        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1787        {
1788        case 10: // '\n'
1789        case 19: // '\023'
1790        case 40: // '('
1791        case 41: // ')'
1792        case 47: // '/'
1793        case 64: // '@'
1794        case 76: // 'L'
1795        case 82: // 'R'
1796        case 85: // 'U'
1797        case 86: // 'V'
1798        case 87: // 'W'
1799        case 88: // 'X'
1800        case 101: // 'e'
1801        case 102: // 'f'
1802            ZExp zexp = SQLSimpleExpression();
1803            return zexp;
1804
1805        case 105: // 'i'
1806            ZExp zexp1 = PreparedCol();
1807            return zexp1;
1808        }
1809        jj_la1[78] = jj_gen;
1810        jj_consume_token(-1);
1811        throw new ParseException();
1812    }
1813
1814    public final ZExp PreparedCol()
1815        throws ParseException
1816    {
1817        jj_consume_token(105);
1818        return new ZExpression("?");
1819    }
1820
1821    public final ZExpression SQLInClause()
1822        throws ParseException
1823    {
1824        boolean flag = false;
1825        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1826        {
1827        case 45: // '-'
1828            jj_consume_token(45);
1829            flag = true;
1830            break;
1831
1832        default:
1833            jj_la1[79] = jj_gen;
1834            break;
1835        }
1836        jj_consume_token(32);
1837        ZExpression zexpression = new ZExpression(flag ? "NOT IN" : "IN");
1838        jj_consume_token(88);
1839        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1840        {
1841        case 10: // '\n'
1842        case 19: // '\023'
1843        case 40: // '('
1844        case 41: // ')'
1845        case 47: // '/'
1846        case 64: // '@'
1847        case 76: // 'L'
1848        case 82: // 'R'
1849        case 85: // 'U'
1850        case 86: // 'V'
1851        case 87: // 'W'
1852        case 88: // 'X'
1853        case 101: // 'e'
1854        case 102: // 'f'
1855        case 105: // 'i'
1856            Vector vector = SQLExpressionList();
1857            zexpression.setOperands(vector);
1858            break;
1859
1860        case 59: // ';'
1861            ZQuery zquery = SubQuery();
1862            zexpression.addOperand(zquery);
1863            break;
1864
1865        default:
1866            jj_la1[80] = jj_gen;
1867            jj_consume_token(-1);
1868            throw new ParseException();
1869        }
1870        jj_consume_token(90);
1871        return zexpression;
1872    }
1873
1874    public final ZExpression SQLBetweenClause()
1875        throws ParseException
1876    {
1877        boolean flag = false;
1878        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1879        {
1880        case 45: // '-'
1881            jj_consume_token(45);
1882            flag = true;
1883            break;
1884
1885        default:
1886            jj_la1[81] = jj_gen;
1887            break;
1888        }
1889        jj_consume_token(11);
1890        ZExp zexp = SQLSimpleExpression();
1891        jj_consume_token(6);
1892        ZExp zexp1 = SQLSimpleExpression();
1893        ZExpression zexpression;
1894        if(flag)
1895            zexpression = new ZExpression("NOT BETWEEN", zexp, zexp1);
1896        else
1897            zexpression = new ZExpression("BETWEEN", zexp, zexp1);
1898        return zexpression;
1899    }
1900
1901    public final ZExpression SQLLikeClause()
1902        throws ParseException
1903    {
1904        boolean flag = false;
1905        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1906        {
1907        case 45: // '-'
1908            jj_consume_token(45);
1909            flag = true;
1910            break;
1911
1912        default:
1913            jj_la1[82] = jj_gen;
1914            break;
1915        }
1916        jj_consume_token(38);
1917        ZExp zexp = SQLSimpleExpression();
1918        ZExpression zexpression;
1919        if(flag)
1920            zexpression = new ZExpression("NOT LIKE", zexp);
1921        else
1922            zexpression = new ZExpression("LIKE", zexp);
1923        return zexpression;
1924    }
1925
1926    public final ZExpression IsNullClause()
1927        throws ParseException
1928    {
1929        boolean flag = false;
1930        jj_consume_token(37);
1931        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1932        {
1933        case 45: // '-'
1934            jj_consume_token(45);
1935            flag = true;
1936            break;
1937
1938        default:
1939            jj_la1[83] = jj_gen;
1940            break;
1941        }
1942        jj_consume_token(47);
1943        return flag ? new ZExpression("IS NOT NULL") : new ZExpression("IS NULL");
1944    }
1945
1946    public final ZExp SQLSimpleExpression()
1947        throws ParseException
1948    {
1949        //Object obj1 = null;
1950        Object obj = SQLMultiplicativeExpression();
1951label0:
1952        do
1953            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1954            {
1955            default:
1956                jj_la1[84] = jj_gen;
1957                break label0;
1958
1959            case 101: // 'e'
1960            case 102: // 'f'
1961            case 106: // 'j'
1962                Token token1;
1963                switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
1964                {
1965                case 101: // 'e'
1966                    token1 = jj_consume_token(101);
1967                    break;
1968
1969                case 102: // 'f'
1970                    token1 = jj_consume_token(102);
1971                    break;
1972
1973                case 106: // 'j'
1974                    token1 = jj_consume_token(106);
1975                    break;
1976
1977                default:
1978                    jj_la1[85] = jj_gen;
1979                    jj_consume_token(-1);
1980                    throw new ParseException();
1981                }
1982                ZExp zexp = SQLMultiplicativeExpression();
1983                ZExpression zexpression = new ZExpression(token1.toString(), ((ZExp) (obj)));
1984                zexpression.addOperand(zexp);
1985                obj = zexpression;
1986                break;
1987            }
1988        while(true);
1989        return ((ZExp) (obj));
1990    }
1991
1992    public final ZExp SQLMultiplicativeExpression()
1993        throws ParseException
1994    {
1995        //Object obj1 = null;
1996        Object obj = SQLExpotentExpression();
1997label0:
1998        do
1999            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
2000            {
2001            default:
2002                jj_la1[86] = jj_gen;
2003                break label0;
2004
2005            case 103: // 'g'
2006            case 107: // 'k'
2007                Token token1;
2008                switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
2009                {
2010                case 103: // 'g'
2011                    token1 = jj_consume_token(103);
2012                    break;
2013
2014                case 107: // 'k'
2015                    token1 = jj_consume_token(107);
2016                    break;
2017
2018                default:
2019                    jj_la1[87] = jj_gen;
2020                    jj_consume_token(-1);
2021                    throw new ParseException();
2022                }
2023                ZExp zexp = SQLExpotentExpression();
2024                ZExpression zexpression = new ZExpression(token1.toString(), ((ZExp) (obj)));
2025                zexpression.addOperand(zexp);
2026                obj = zexpression;
2027                break;
2028            }
2029        while(true);
2030        return ((ZExp) (obj));
2031    }
2032
2033    public final ZExp SQLExpotentExpression()
2034        throws ParseException
2035    {
2036        ZExpression zexpression = null;
2037        boolean flag = true;
2038        ZExp zexp = SQLUnaryExpression();
2039label0:
2040        do
2041            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
2042            {
2043            default:
2044                jj_la1[88] = jj_gen;
2045                break label0;
2046
2047            case 108: // 'l'
2048                Token token1 = jj_consume_token(108);
2049                ZExp zexp1 = SQLUnaryExpression();
2050                if(flag)
2051                    zexpression = new ZExpression(token1.toString(), zexp);
2052                flag = false;
2053                zexpression.addOperand(zexp1);
2054                break;
2055            }
2056        while(true);
2057        return ( (flag ? zexp : zexpression));
2058    }
2059
2060    public final ZExp SQLUnaryExpression()
2061        throws ParseException
2062    {
2063        Token token1 = null;
2064        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
2065        {
2066        case 101: // 'e'
2067        case 102: // 'f'
2068            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
2069            {
2070            case 101: // 'e'
2071                token1 = jj_consume_token(101);
2072                break;
2073
2074            case 102: // 'f'
2075                token1 = jj_consume_token(102);
2076                break;
2077
2078            default:
2079                jj_la1[89] = jj_gen;
2080                jj_consume_token(-1);
2081                throw new ParseException();
2082            }
2083            break;
2084
2085        default:
2086            jj_la1[90] = jj_gen;
2087            break;
2088        }
2089        ZExp zexp = SQLPrimaryExpression();
2090        Object obj;
2091        if(token1 == null)
2092            obj = zexp;
2093        else
2094            obj = new ZExpression(token1.toString(), zexp);
2095        return ((ZExp) (obj));
2096    }
2097
2098    public final ZExp SQLPrimaryExpression()
2099        throws ParseException
2100    {
2101        String s4 = "";
2102        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
2103        {
2104        case 47: // '/'
2105            jj_consume_token(47);
2106            return new ZConstant("NULL", 1);
2107        }
2108        jj_la1[93] = jj_gen;
2109        if(jj_2_12(0x7fffffff))
2110        {
2111            OuterJoinExpression();
2112            return new ZExpression("_NOT_SUPPORTED");
2113        }
2114        if(jj_2_13(3))
2115        {
2116            jj_consume_token(19);
2117            jj_consume_token(88);
2118            jj_consume_token(103);
2119            jj_consume_token(90);
2120            return new ZExpression("COUNT", new ZConstant("*", 0));
2121        }
2122        if(jj_2_14(2))
2123        {
2124            String s = AggregateFunc();
2125            jj_consume_token(88);
2126            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
2127            {
2128            case 5: // '\005'
2129            case 23: // '\027'
2130                switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
2131                {
2132                case 5: // '\005'
2133                    jj_consume_token(5);
2134                    s4 = "all ";
2135                    break;
2136
2137                case 23: // '\027'
2138                    jj_consume_token(23);
2139                    s4 = "distinct ";
2140                    break;
2141
2142                default:
2143                    jj_la1[91] = jj_gen;
2144                    jj_consume_token(-1);
2145                    throw new ParseException();
2146                }
2147                break;
2148
2149            default:
2150                jj_la1[92] = jj_gen;
2151                break;
2152            }
2153            String s3 = TableColumn();
2154            jj_consume_token(90);
2155            return new ZExpression(s, new ZConstant(s4 + s3, 0));
2156        }
2157        if(jj_2_15(0x7fffffff))
2158        {
2159            ZExpression zexpression = FunctionCall();
2160            return zexpression;
2161        }
2162        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
2163        {
2164        case 82: // 'R'
2165        case 87: // 'W'
2166            String s1 = TableColumn();
2167            return new ZConstant(s1, 0);
2168
2169        case 76: // 'L'
2170            Token token1 = jj_consume_token(76);
2171            return new ZConstant(token1.toString(), 2);
2172
2173        case 86: // 'V'
2174            Token token2 = jj_consume_token(86);
2175            String s2 = token2.toString();
2176            if(s2.startsWith("'"))
2177                s2 = s2.substring(1);
2178            if(s2.endsWith("'"))
2179                s2 = s2.substring(0, s2.length() - 1);
2180            return new ZConstant(s2, 3);
2181
2182        case 85: // 'U'
2183            Token token3 = jj_consume_token(85);
2184            return new ZConstant(token3.toString(), 3);
2185
2186        case 88: // 'X'
2187            jj_consume_token(88);
2188            ZExp zexp = SQLExpression();
2189            jj_consume_token(90);
2190            return zexp;
2191
2192        case 77: // 'M'
2193        case 78: // 'N'
2194        case 79: // 'O'
2195        case 80: // 'P'
2196        case 81: // 'Q'
2197        case 83: // 'S'
2198        case 84: // 'T'
2199        default:
2200            jj_la1[94] = jj_gen;
2201            jj_consume_token(-1);
2202            throw new ParseException();
2203        }
2204    }
2205
2206    public final String AggregateFunc()
2207        throws ParseException
2208    {
2209        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
2210        {
2211        case 64: // '@'
2212            Token token1 = jj_consume_token(64);
2213            return token1.toString();
2214
2215        case 10: // '\n'
2216            Token token2 = jj_consume_token(10);
2217            return token2.toString();
2218
2219        case 40: // '('
2220            Token token3 = jj_consume_token(40);
2221            return token3.toString();
2222
2223        case 41: // ')'
2224            Token token4 = jj_consume_token(41);
2225            return token4.toString();
2226
2227        case 19: // '\023'
2228            Token token5 = jj_consume_token(19);
2229            return token5.toString();
2230        }
2231        jj_la1[95] = jj_gen;
2232        jj_consume_token(-1);
2233        throw new ParseException();
2234    }
2235
2236    public final ZExpression FunctionCall() throws ParseException {
2237        Token token1 = jj_consume_token(82);
2238        jj_consume_token(88);
2239        Vector vector = SQLExpressionList();
2240        jj_consume_token(90);
2241        int i = ZUtils.isCustomFunction(token1.toString());
2242        if(i <= 0)
2243            throw new ParseException("Undefined function: " + token1.toString());
2244        if(false && vector.size() != i)  {
2245            throw new ParseException("Function " + token1.toString() + " should have " + i + " parameter(s)");
2246        } 
2247        //else  {
2248            ZExpression zexpression = new ZExpression(token1.toString());
2249            zexpression.setOperands(vector);
2250            return zexpression;
2251        //}
2252    }
2253
2254    public final void OuterJoinExpression()
2255        throws ParseException
2256    {
2257        OracleObjectName();
2258        switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
2259        {
2260        case 93: // ']'
2261            jj_consume_token(93);
2262            OracleObjectName();
2263            switch(jj_ntk != -1 ? jj_ntk : jj_ntk())
2264            {
2265            case 93: // ']'
2266                jj_consume_token(93);
2267                OracleObjectName();
2268                break;
2269
2270            default:
2271                jj_la1[96] = jj_gen;
2272                break;
2273            }
2274            break;
2275
2276        default:
2277            jj_la1[97] = jj_gen;
2278            break;
2279        }
2280        jj_consume_token(88);
2281        jj_consume_token(101);
2282        jj_consume_token(90);
2283    }
2284
2285    public final ZQuery SubQuery()
2286        throws ParseException
2287    {
2288        ZQuery zquery = SelectWithoutOrder();
2289        return zquery;
2290    }
2291
2292    private final boolean jj_2_1(int i)
2293    {
2294        jj_la = i;
2295        jj_lastpos = jj_scanpos = token;
2296        boolean flag = !jj_3_1();
2297        jj_save(0, i);
2298        return flag;
2299    }
2300
2301    private final boolean jj_2_2(int i)
2302    {
2303        jj_la = i;
2304        jj_lastpos = jj_scanpos = token;
2305        boolean flag = !jj_3_2();
2306        jj_save(1, i);
2307        return flag;
2308    }
2309
2310    private final boolean jj_2_3(int i)
2311    {
2312        jj_la = i;
2313        jj_lastpos = jj_scanpos = token;
2314        boolean flag = !jj_3_3();
2315        jj_save(2, i);
2316        return flag;
2317    }
2318
2319    private final boolean jj_2_4(int i)
2320    {
2321        jj_la = i;
2322        jj_lastpos = jj_scanpos = token;
2323        boolean flag = !jj_3_4();
2324        jj_save(3, i);
2325        return flag;
2326    }
2327
2328    private final boolean jj_2_5(int i)
2329    {
2330        jj_la = i;
2331        jj_lastpos = jj_scanpos = token;
2332        boolean flag = !jj_3_5();
2333        jj_save(4, i);
2334        return flag;
2335    }
2336
2337    private final boolean jj_2_6(int i)
2338    {
2339        jj_la = i;
2340        jj_lastpos = jj_scanpos = token;
2341        boolean flag = !jj_3_6();
2342        jj_save(5, i);
2343        return flag;
2344    }
2345
2346    private final boolean jj_2_7(int i)
2347    {
2348        jj_la = i;
2349        jj_lastpos = jj_scanpos = token;
2350        boolean flag = !jj_3_7();
2351        jj_save(6, i);
2352        return flag;
2353    }
2354
2355    private final boolean jj_2_8(int i)
2356    {
2357        jj_la = i;
2358        jj_lastpos = jj_scanpos = token;
2359        boolean flag = !jj_3_8();
2360        jj_save(7, i);
2361        return flag;
2362    }
2363
2364    private final boolean jj_2_9(int i)
2365    {
2366        jj_la = i;
2367        jj_lastpos = jj_scanpos = token;
2368        boolean flag = !jj_3_9();
2369        jj_save(8, i);
2370        return flag;
2371    }
2372
2373    private final boolean jj_2_10(int i)
2374    {
2375        jj_la = i;
2376        jj_lastpos = jj_scanpos = token;
2377        boolean flag = !jj_3_10();
2378        jj_save(9, i);
2379        return flag;
2380    }
2381
2382    private final boolean jj_2_11(int i)
2383    {
2384        jj_la = i;
2385        jj_lastpos = jj_scanpos = token;
2386        boolean flag = !jj_3_11();
2387        jj_save(10, i);
2388        return flag;
2389    }
2390
2391    private final boolean jj_2_12(int i)
2392    {
2393        jj_la = i;
2394        jj_lastpos = jj_scanpos = token;
2395        boolean flag = !jj_3_12();
2396        jj_save(11, i);
2397        return flag;
2398    }
2399
2400    private final boolean jj_2_13(int i)
2401    {
2402        jj_la = i;
2403        jj_lastpos = jj_scanpos = token;
2404        boolean flag = !jj_3_13();
2405        jj_save(12, i);
2406        return flag;
2407    }
2408
2409    private final boolean jj_2_14(int i)
2410    {
2411        jj_la = i;
2412        jj_lastpos = jj_scanpos = token;
2413        boolean flag = !jj_3_14();
2414        jj_save(13, i);
2415        return flag;
2416    }
2417
2418    private final boolean jj_2_15(int i)
2419    {
2420        jj_la = i;
2421        jj_lastpos = jj_scanpos = token;
2422        boolean flag = !jj_3_15();
2423        jj_save(14, i);
2424        return flag;
2425    }
2426
2427    private final boolean jj_3_7()
2428    {
2429        if(jj_scan_token(88))
2430            return true;
2431        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2432            return false;
2433        if(jj_3R_20())
2434            return true;
2435        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2436            return false;
2437        if(jj_scan_token(89))
2438            return true;
2439        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2440    }
2441
2442    private final boolean jj_3R_91()
2443    {
2444        if(jj_scan_token(53))
2445            return true;
2446        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2447    }
2448
2449    private final boolean jj_3R_88()
2450    {
2451        Token token1 = jj_scanpos;
2452        if(jj_3R_91())
2453            jj_scanpos = token1;
2454        else
2455        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2456            return false;
2457        if(jj_3R_20())
2458            return true;
2459        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2460    }
2461
2462    private final boolean jj_3R_87()
2463    {
2464        if(jj_scan_token(88))
2465            return true;
2466        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2467            return false;
2468        if(jj_3R_72())
2469            return true;
2470        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2471            return false;
2472        if(jj_scan_token(90))
2473            return true;
2474        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2475    }
2476
2477    private final boolean jj_3R_85()
2478    {
2479        Token token1 = jj_scanpos;
2480        if(jj_3R_87())
2481        {
2482            jj_scanpos = token1;
2483            if(jj_3R_88())
2484                return true;
2485            if(jj_la == 0 && jj_scanpos == jj_lastpos)
2486                return false;
2487        } else
2488        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2489            return false;
2490        token1 = jj_scanpos;
2491        if(jj_3R_89())
2492            jj_scanpos = token1;
2493        else
2494        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2495            return false;
2496        return false;
2497    }
2498
2499    private final boolean jj_3R_16()
2500    {
2501        if(jj_scan_token(88))
2502            return true;
2503        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2504    }
2505
2506    private final boolean jj_3_1()
2507    {
2508        if(jj_3R_16())
2509            return true;
2510        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2511            return false;
2512        do
2513        {
2514            Token token1 = jj_scanpos;
2515            if(jj_3R_16())
2516            {
2517                jj_scanpos = token1;
2518                break;
2519            }
2520            if(jj_la == 0 && jj_scanpos == jj_lastpos)
2521                return false;
2522        } while(true);
2523        if(jj_scan_token(59))
2524            return true;
2525        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2526    }
2527
2528    private final boolean jj_3R_31()
2529    {
2530        if(jj_scan_token(45))
2531            return true;
2532        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2533    }
2534
2535    private final boolean jj_3R_19()
2536    {
2537        Token token1 = jj_scanpos;
2538        if(jj_3R_31())
2539            jj_scanpos = token1;
2540        else
2541        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2542            return false;
2543        if(jj_scan_token(25))
2544            return true;
2545        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2546            return false;
2547        if(jj_scan_token(88))
2548            return true;
2549        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2550            return false;
2551        if(jj_3R_86())
2552            return true;
2553        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2554            return false;
2555        if(jj_scan_token(90))
2556            return true;
2557        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2558    }
2559
2560    private final boolean jj_3R_84()
2561    {
2562        if(jj_scan_token(45))
2563            return true;
2564        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2565    }
2566
2567    private final boolean jj_3R_82()
2568    {
2569        Token token1 = jj_scanpos;
2570        if(jj_3R_84())
2571            jj_scanpos = token1;
2572        else
2573        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2574            return false;
2575        if(jj_3R_85())
2576            return true;
2577        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2578    }
2579
2580    private final boolean jj_3_6()
2581    {
2582        if(jj_3R_19())
2583            return true;
2584        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2585    }
2586
2587    private final boolean jj_3R_78()
2588    {
2589        Token token1 = jj_scanpos;
2590        if(jj_3_6())
2591        {
2592            jj_scanpos = token1;
2593            if(jj_3R_82())
2594                return true;
2595            if(jj_la == 0 && jj_scanpos == jj_lastpos)
2596                return false;
2597        } else
2598        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2599            return false;
2600        return false;
2601    }
2602
2603    private final boolean jj_3R_48()
2604    {
2605        if(jj_scan_token(93))
2606            return true;
2607        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2608            return false;
2609        if(jj_3R_18())
2610            return true;
2611        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2612    }
2613
2614    private final boolean jj_3R_79()
2615    {
2616        if(jj_scan_token(6))
2617            return true;
2618        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2619            return false;
2620        if(jj_3R_78())
2621            return true;
2622        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2623    }
2624
2625    private final boolean jj_3R_73()
2626    {
2627        if(jj_3R_78())
2628            return true;
2629        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2630            return false;
2631        do
2632        {
2633            Token token1 = jj_scanpos;
2634            if(jj_3R_79())
2635            {
2636                jj_scanpos = token1;
2637                break;
2638            }
2639            if(jj_la == 0 && jj_scanpos == jj_lastpos)
2640                return false;
2641        } while(true);
2642        return false;
2643    }
2644
2645    private final boolean jj_3R_128()
2646    {
2647        if(jj_scan_token(42))
2648            return true;
2649        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2650    }
2651
2652    private final boolean jj_3R_37()
2653    {
2654        if(jj_scan_token(93))
2655            return true;
2656        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2657            return false;
2658        if(jj_3R_18())
2659            return true;
2660        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2661            return false;
2662        Token token1 = jj_scanpos;
2663        if(jj_3R_48())
2664            jj_scanpos = token1;
2665        else
2666        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2667            return false;
2668        return false;
2669    }
2670
2671    private final boolean jj_3R_74()
2672    {
2673        if(jj_scan_token(51))
2674            return true;
2675        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2676            return false;
2677        if(jj_3R_73())
2678            return true;
2679        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2680    }
2681
2682    private final boolean jj_3R_68()
2683    {
2684        if(jj_3R_73())
2685            return true;
2686        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2687            return false;
2688        do
2689        {
2690            Token token1 = jj_scanpos;
2691            if(jj_3R_74())
2692            {
2693                jj_scanpos = token1;
2694                break;
2695            }
2696            if(jj_la == 0 && jj_scanpos == jj_lastpos)
2697                return false;
2698        } while(true);
2699        return false;
2700    }
2701
2702    private final boolean jj_3R_86()
2703    {
2704        if(jj_3R_90())
2705            return true;
2706        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2707    }
2708
2709    private final boolean jj_3R_127()
2710    {
2711        if(jj_scan_token(35))
2712            return true;
2713        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2714    }
2715
2716    private final boolean jj_3R_27()
2717    {
2718        if(jj_3R_18())
2719            return true;
2720        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2721            return false;
2722        Token token1 = jj_scanpos;
2723        if(jj_3R_37())
2724            jj_scanpos = token1;
2725        else
2726        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2727            return false;
2728        if(jj_scan_token(88))
2729            return true;
2730        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2731            return false;
2732        if(jj_scan_token(101))
2733            return true;
2734        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2735            return false;
2736        if(jj_scan_token(90))
2737            return true;
2738        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2739    }
2740
2741    private final boolean jj_3R_144()
2742    {
2743        if(jj_scan_token(5))
2744            return true;
2745        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2746    }
2747
2748    private final boolean jj_3_5()
2749    {
2750        if(jj_scan_token(88))
2751            return true;
2752        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2753    }
2754
2755    private final boolean jj_3R_130()
2756    {
2757        if(jj_3R_90())
2758            return true;
2759        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2760    }
2761
2762    private final boolean jj_3R_129()
2763    {
2764        if(jj_scan_token(88))
2765            return true;
2766        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2767            return false;
2768        if(jj_3R_90())
2769            return true;
2770        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2771            return false;
2772        if(jj_scan_token(90))
2773            return true;
2774        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2775    }
2776
2777    private final boolean jj_3R_67()
2778    {
2779        if(jj_scan_token(82))
2780            return true;
2781        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2782            return false;
2783        if(jj_scan_token(88))
2784            return true;
2785        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2786            return false;
2787        if(jj_3R_72())
2788            return true;
2789        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2790            return false;
2791        if(jj_scan_token(90))
2792            return true;
2793        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2794    }
2795
2796    private final boolean jj_3R_126()
2797    {
2798        if(jj_scan_token(67))
2799            return true;
2800        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2801            return false;
2802        Token token1 = jj_scanpos;
2803        if(jj_3R_144())
2804            jj_scanpos = token1;
2805        else
2806        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2807            return false;
2808        return false;
2809    }
2810
2811    private final boolean jj_3R_112()
2812    {
2813        Token token1 = jj_scanpos;
2814        if(jj_3R_126())
2815        {
2816            jj_scanpos = token1;
2817            if(jj_3R_127())
2818            {
2819                jj_scanpos = token1;
2820                if(jj_3R_128())
2821                    return true;
2822                if(jj_la == 0 && jj_scanpos == jj_lastpos)
2823                    return false;
2824            } else
2825            if(jj_la == 0 && jj_scanpos == jj_lastpos)
2826                return false;
2827        } else
2828        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2829            return false;
2830        token1 = jj_scanpos;
2831        if(jj_3R_129())
2832        {
2833            jj_scanpos = token1;
2834            if(jj_3R_130())
2835                return true;
2836            if(jj_la == 0 && jj_scanpos == jj_lastpos)
2837                return false;
2838        } else
2839        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2840            return false;
2841        return false;
2842    }
2843
2844    private final boolean jj_3R_70()
2845    {
2846        if(jj_scan_token(23))
2847            return true;
2848        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2849    }
2850
2851    private final boolean jj_3R_42()
2852    {
2853        if(jj_scan_token(19))
2854            return true;
2855        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2856    }
2857
2858    private final boolean jj_3R_41()
2859    {
2860        if(jj_scan_token(41))
2861            return true;
2862        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2863    }
2864
2865    private final boolean jj_3R_40()
2866    {
2867        if(jj_scan_token(40))
2868            return true;
2869        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2870    }
2871
2872    private final boolean jj_3R_39()
2873    {
2874        if(jj_scan_token(10))
2875            return true;
2876        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2877    }
2878
2879    private final boolean jj_3R_125()
2880    {
2881        if(jj_scan_token(31))
2882            return true;
2883        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2884            return false;
2885        if(jj_3R_68())
2886            return true;
2887        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2888    }
2889
2890    private final boolean jj_3R_38()
2891    {
2892        if(jj_scan_token(64))
2893            return true;
2894        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2895    }
2896
2897    private final boolean jj_3R_28()
2898    {
2899        Token token1 = jj_scanpos;
2900        if(jj_3R_38())
2901        {
2902            jj_scanpos = token1;
2903            if(jj_3R_39())
2904            {
2905                jj_scanpos = token1;
2906                if(jj_3R_40())
2907                {
2908                    jj_scanpos = token1;
2909                    if(jj_3R_41())
2910                    {
2911                        jj_scanpos = token1;
2912                        if(jj_3R_42())
2913                            return true;
2914                        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2915                            return false;
2916                    } else
2917                    if(jj_la == 0 && jj_scanpos == jj_lastpos)
2918                        return false;
2919                } else
2920                if(jj_la == 0 && jj_scanpos == jj_lastpos)
2921                    return false;
2922            } else
2923            if(jj_la == 0 && jj_scanpos == jj_lastpos)
2924                return false;
2925        } else
2926        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2927            return false;
2928        return false;
2929    }
2930
2931    private final boolean jj_3R_111()
2932    {
2933        if(jj_scan_token(30))
2934            return true;
2935        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2936            return false;
2937        if(jj_scan_token(14))
2938            return true;
2939        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2940            return false;
2941        if(jj_3R_72())
2942            return true;
2943        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2944            return false;
2945        Token token1 = jj_scanpos;
2946        if(jj_3R_125())
2947            jj_scanpos = token1;
2948        else
2949        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2950            return false;
2951        return false;
2952    }
2953
2954    private final boolean jj_3_15()
2955    {
2956        if(jj_scan_token(82))
2957            return true;
2958        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2959            return false;
2960        if(jj_scan_token(88))
2961            return true;
2962        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2963    }
2964
2965    private final boolean jj_3R_124()
2966    {
2967        if(jj_scan_token(63))
2968            return true;
2969        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2970            return false;
2971        if(jj_scan_token(73))
2972            return true;
2973        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2974            return false;
2975        if(jj_3R_68())
2976            return true;
2977        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2978    }
2979
2980    private final boolean jj_3R_64()
2981    {
2982        if(jj_scan_token(88))
2983            return true;
2984        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2985            return false;
2986        if(jj_3R_68())
2987            return true;
2988        if(jj_la == 0 && jj_scanpos == jj_lastpos)
2989            return false;
2990        if(jj_scan_token(90))
2991            return true;
2992        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
2993    }
2994
2995    private final boolean jj_3R_123()
2996    {
2997        if(jj_scan_token(63))
2998            return true;
2999        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3000            return false;
3001        if(jj_scan_token(73))
3002            return true;
3003        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3004            return false;
3005        if(jj_3R_68())
3006            return true;
3007        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3008    }
3009
3010    private final boolean jj_3R_63()
3011    {
3012        if(jj_scan_token(85))
3013            return true;
3014        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3015    }
3016
3017    private final boolean jj_3R_110()
3018    {
3019        Token token1 = jj_scanpos;
3020        if(jj_3R_123())
3021            jj_scanpos = token1;
3022        else
3023        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3024            return false;
3025        if(jj_scan_token(18))
3026            return true;
3027        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3028            return false;
3029        if(jj_scan_token(14))
3030            return true;
3031        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3032            return false;
3033        if(jj_3R_68())
3034            return true;
3035        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3036            return false;
3037        token1 = jj_scanpos;
3038        if(jj_3R_124())
3039            jj_scanpos = token1;
3040        else
3041        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3042            return false;
3043        return false;
3044    }
3045
3046    private final boolean jj_3R_62()
3047    {
3048        if(jj_scan_token(86))
3049            return true;
3050        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3051    }
3052
3053    private final boolean jj_3R_61()
3054    {
3055        if(jj_scan_token(76))
3056            return true;
3057        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3058    }
3059
3060    private final boolean jj_3R_60()
3061    {
3062        if(jj_3R_66())
3063            return true;
3064        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3065    }
3066
3067    private final boolean jj_3R_69()
3068    {
3069        if(jj_scan_token(5))
3070            return true;
3071        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3072    }
3073
3074    private final boolean jj_3R_65()
3075    {
3076        Token token1 = jj_scanpos;
3077        if(jj_3R_69())
3078        {
3079            jj_scanpos = token1;
3080            if(jj_3R_70())
3081                return true;
3082            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3083                return false;
3084        } else
3085        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3086            return false;
3087        return false;
3088    }
3089
3090    private final boolean jj_3R_59()
3091    {
3092        if(jj_3R_67())
3093            return true;
3094        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3095    }
3096
3097    private final boolean jj_3_12()
3098    {
3099        if(jj_3R_27())
3100            return true;
3101        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3102    }
3103
3104    private final boolean jj_3R_109()
3105    {
3106        if(jj_scan_token(72))
3107            return true;
3108        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3109            return false;
3110        if(jj_3R_68())
3111            return true;
3112        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3113    }
3114
3115    private final boolean jj_3_14()
3116    {
3117        if(jj_3R_28())
3118            return true;
3119        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3120            return false;
3121        if(jj_scan_token(88))
3122            return true;
3123        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3124            return false;
3125        Token token1 = jj_scanpos;
3126        if(jj_3R_65())
3127            jj_scanpos = token1;
3128        else
3129        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3130            return false;
3131        if(jj_3R_66())
3132            return true;
3133        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3134            return false;
3135        if(jj_scan_token(90))
3136            return true;
3137        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3138    }
3139
3140    private final boolean jj_3_13()
3141    {
3142        if(jj_scan_token(19))
3143            return true;
3144        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3145            return false;
3146        if(jj_scan_token(88))
3147            return true;
3148        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3149            return false;
3150        if(jj_scan_token(103))
3151            return true;
3152        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3153            return false;
3154        if(jj_scan_token(90))
3155            return true;
3156        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3157    }
3158
3159    private final boolean jj_3R_58()
3160    {
3161        if(jj_3R_27())
3162            return true;
3163        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3164    }
3165
3166    private final boolean jj_3R_122()
3167    {
3168        if(jj_scan_token(82))
3169            return true;
3170        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3171    }
3172
3173    private final boolean jj_3R_57()
3174    {
3175        if(jj_scan_token(47))
3176            return true;
3177        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3178    }
3179
3180    private final boolean jj_3R_54()
3181    {
3182        Token token1 = jj_scanpos;
3183        if(jj_3R_57())
3184        {
3185            jj_scanpos = token1;
3186            if(jj_3R_58())
3187            {
3188                jj_scanpos = token1;
3189                if(jj_3_13())
3190                {
3191                    jj_scanpos = token1;
3192                    if(jj_3_14())
3193                    {
3194                        jj_scanpos = token1;
3195                        if(jj_3R_59())
3196                        {
3197                            jj_scanpos = token1;
3198                            if(jj_3R_60())
3199                            {
3200                                jj_scanpos = token1;
3201                                if(jj_3R_61())
3202                                {
3203                                    jj_scanpos = token1;
3204                                    if(jj_3R_62())
3205                                    {
3206                                        jj_scanpos = token1;
3207                                        if(jj_3R_63())
3208                                        {
3209                                            jj_scanpos = token1;
3210                                            if(jj_3R_64())
3211                                                return true;
3212                                            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3213                                                return false;
3214                                        } else
3215                                        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3216                                            return false;
3217                                    } else
3218                                    if(jj_la == 0 && jj_scanpos == jj_lastpos)
3219                                        return false;
3220                                } else
3221                                if(jj_la == 0 && jj_scanpos == jj_lastpos)
3222                                    return false;
3223                            } else
3224                            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3225                                return false;
3226                        } else
3227                        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3228                            return false;
3229                    } else
3230                    if(jj_la == 0 && jj_scanpos == jj_lastpos)
3231                        return false;
3232                } else
3233                if(jj_la == 0 && jj_scanpos == jj_lastpos)
3234                    return false;
3235            } else
3236            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3237                return false;
3238        } else
3239        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3240            return false;
3241        return false;
3242    }
3243
3244    private final boolean jj_3R_107()
3245    {
3246        if(jj_3R_121())
3247            return true;
3248        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3249            return false;
3250        Token token1 = jj_scanpos;
3251        if(jj_3R_122())
3252            jj_scanpos = token1;
3253        else
3254        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3255            return false;
3256        return false;
3257    }
3258
3259    private final boolean jj_3R_108()
3260    {
3261        if(jj_scan_token(89))
3262            return true;
3263        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3264            return false;
3265        if(jj_3R_107())
3266            return true;
3267        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3268    }
3269
3270    private final boolean jj_3R_56()
3271    {
3272        if(jj_scan_token(102))
3273            return true;
3274        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3275    }
3276
3277    private final boolean jj_3R_96()
3278    {
3279        if(jj_scan_token(29))
3280            return true;
3281        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3282            return false;
3283        if(jj_3R_107())
3284            return true;
3285        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3286            return false;
3287        do
3288        {
3289            Token token1 = jj_scanpos;
3290            if(jj_3R_108())
3291            {
3292                jj_scanpos = token1;
3293                break;
3294            }
3295            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3296                return false;
3297        } while(true);
3298        return false;
3299    }
3300
3301    private final boolean jj_3R_55()
3302    {
3303        if(jj_scan_token(101))
3304            return true;
3305        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3306    }
3307
3308    private final boolean jj_3R_53()
3309    {
3310        Token token1 = jj_scanpos;
3311        if(jj_3R_55())
3312        {
3313            jj_scanpos = token1;
3314            if(jj_3R_56())
3315                return true;
3316            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3317                return false;
3318        } else
3319        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3320            return false;
3321        return false;
3322    }
3323
3324    private final boolean jj_3R_49()
3325    {
3326        Token token1 = jj_scanpos;
3327        if(jj_3R_53())
3328            jj_scanpos = token1;
3329        else
3330        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3331            return false;
3332        if(jj_3R_54())
3333            return true;
3334        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3335    }
3336
3337    private final boolean jj_3_4()
3338    {
3339        if(jj_3R_18())
3340            return true;
3341        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3342            return false;
3343        if(jj_scan_token(93))
3344            return true;
3345        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3346            return false;
3347        if(jj_3R_18())
3348            return true;
3349        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3350            return false;
3351        if(jj_scan_token(104))
3352            return true;
3353        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3354    }
3355
3356    private final boolean jj_3R_17()
3357    {
3358        Token token1 = jj_scanpos;
3359        if(jj_3_3())
3360        {
3361            jj_scanpos = token1;
3362            if(jj_3_4())
3363                return true;
3364            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3365                return false;
3366        } else
3367        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3368            return false;
3369        return false;
3370    }
3371
3372    private final boolean jj_3_3()
3373    {
3374        if(jj_3R_18())
3375            return true;
3376        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3377            return false;
3378        if(jj_scan_token(104))
3379            return true;
3380        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3381    }
3382
3383    private final boolean jj_3R_150()
3384    {
3385        if(jj_scan_token(82))
3386            return true;
3387        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3388    }
3389
3390    private final boolean jj_3R_50()
3391    {
3392        if(jj_scan_token(108))
3393            return true;
3394        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3395            return false;
3396        if(jj_3R_49())
3397            return true;
3398        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3399    }
3400
3401    private final boolean jj_3R_149()
3402    {
3403        if(jj_scan_token(8))
3404            return true;
3405        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3406    }
3407
3408    private final boolean jj_3R_43()
3409    {
3410        if(jj_3R_49())
3411            return true;
3412        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3413            return false;
3414        do
3415        {
3416            Token token1 = jj_scanpos;
3417            if(jj_3R_50())
3418            {
3419                jj_scanpos = token1;
3420                break;
3421            }
3422            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3423                return false;
3424        } while(true);
3425        return false;
3426    }
3427
3428    private final boolean jj_3R_148()
3429    {
3430        Token token1 = jj_scanpos;
3431        if(jj_3R_149())
3432            jj_scanpos = token1;
3433        else
3434        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3435            return false;
3436        if(jj_3R_150())
3437            return true;
3438        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3439            return false;
3440        do
3441        {
3442            Token token2 = jj_scanpos;
3443            if(jj_3R_150())
3444            {
3445                jj_scanpos = token2;
3446                break;
3447            }
3448            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3449                return false;
3450        } while(true);
3451        return false;
3452    }
3453
3454    private final boolean jj_3R_52()
3455    {
3456        if(jj_scan_token(107))
3457            return true;
3458        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3459    }
3460
3461    private final boolean jj_3R_147()
3462    {
3463        if(jj_3R_148())
3464            return true;
3465        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3466    }
3467
3468    private final boolean jj_3_2()
3469    {
3470        if(jj_3R_17())
3471            return true;
3472        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3473    }
3474
3475    private final boolean jj_3R_47()
3476    {
3477        if(jj_scan_token(106))
3478            return true;
3479        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3480    }
3481
3482    private final boolean jj_3R_51()
3483    {
3484        if(jj_scan_token(103))
3485            return true;
3486        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3487    }
3488
3489    private final boolean jj_3R_44()
3490    {
3491        Token token1 = jj_scanpos;
3492        if(jj_3R_51())
3493        {
3494            jj_scanpos = token1;
3495            if(jj_3R_52())
3496                return true;
3497            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3498                return false;
3499        } else
3500        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3501            return false;
3502        if(jj_3R_43())
3503            return true;
3504        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3505    }
3506
3507    private final boolean jj_3R_142()
3508    {
3509        if(jj_3R_20())
3510            return true;
3511        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3512            return false;
3513        Token token1 = jj_scanpos;
3514        if(jj_3R_147())
3515            jj_scanpos = token1;
3516        else
3517        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3518            return false;
3519        return false;
3520    }
3521
3522    private final boolean jj_3R_32()
3523    {
3524        if(jj_3R_43())
3525            return true;
3526        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3527            return false;
3528        do
3529        {
3530            Token token1 = jj_scanpos;
3531            if(jj_3R_44())
3532            {
3533                jj_scanpos = token1;
3534                break;
3535            }
3536            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3537                return false;
3538        } while(true);
3539        return false;
3540    }
3541
3542    private final boolean jj_3R_119()
3543    {
3544        Token token1 = jj_scanpos;
3545        if(jj_3R_141())
3546        {
3547            jj_scanpos = token1;
3548            if(jj_3R_142())
3549                return true;
3550            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3551                return false;
3552        } else
3553        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3554            return false;
3555        return false;
3556    }
3557
3558    private final boolean jj_3R_141()
3559    {
3560        if(jj_3R_17())
3561            return true;
3562        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3563    }
3564
3565    private final boolean jj_3R_46()
3566    {
3567        if(jj_scan_token(102))
3568            return true;
3569        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3570    }
3571
3572    private final boolean jj_3R_45()
3573    {
3574        if(jj_scan_token(101))
3575            return true;
3576        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3577    }
3578
3579    private final boolean jj_3R_120()
3580    {
3581        if(jj_scan_token(89))
3582            return true;
3583        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3584            return false;
3585        if(jj_3R_119())
3586            return true;
3587        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3588    }
3589
3590    private final boolean jj_3R_33()
3591    {
3592        Token token1 = jj_scanpos;
3593        if(jj_3R_45())
3594        {
3595            jj_scanpos = token1;
3596            if(jj_3R_46())
3597            {
3598                jj_scanpos = token1;
3599                if(jj_3R_47())
3600                    return true;
3601                if(jj_la == 0 && jj_scanpos == jj_lastpos)
3602                    return false;
3603            } else
3604            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3605                return false;
3606        } else
3607        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3608            return false;
3609        if(jj_3R_32())
3610            return true;
3611        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3612    }
3613
3614    private final boolean jj_3R_106()
3615    {
3616        if(jj_3R_119())
3617            return true;
3618        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3619            return false;
3620        do
3621        {
3622            Token token1 = jj_scanpos;
3623            if(jj_3R_120())
3624            {
3625                jj_scanpos = token1;
3626                break;
3627            }
3628            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3629                return false;
3630        } while(true);
3631        return false;
3632    }
3633
3634    private final boolean jj_3R_20()
3635    {
3636        if(jj_3R_32())
3637            return true;
3638        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3639            return false;
3640        do
3641        {
3642            Token token1 = jj_scanpos;
3643            if(jj_3R_33())
3644            {
3645                jj_scanpos = token1;
3646                break;
3647            }
3648            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3649                return false;
3650        } while(true);
3651        return false;
3652    }
3653
3654    private final boolean jj_3R_95()
3655    {
3656        Token token1 = jj_scanpos;
3657        if(jj_3R_105())
3658        {
3659            jj_scanpos = token1;
3660            if(jj_3R_106())
3661                return true;
3662            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3663                return false;
3664        } else
3665        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3666            return false;
3667        return false;
3668    }
3669
3670    private final boolean jj_3R_105()
3671    {
3672        if(jj_scan_token(103))
3673            return true;
3674        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3675    }
3676
3677    private final boolean jj_3R_118()
3678    {
3679        if(jj_scan_token(45))
3680            return true;
3681        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3682    }
3683
3684    private final boolean jj_3R_104()
3685    {
3686        if(jj_scan_token(23))
3687            return true;
3688        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3689    }
3690
3691    private final boolean jj_3R_102()
3692    {
3693        if(jj_scan_token(37))
3694            return true;
3695        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3696            return false;
3697        Token token1 = jj_scanpos;
3698        if(jj_3R_118())
3699            jj_scanpos = token1;
3700        else
3701        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3702            return false;
3703        if(jj_scan_token(47))
3704            return true;
3705        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3706    }
3707
3708    private final boolean jj_3R_94()
3709    {
3710        Token token1 = jj_scanpos;
3711        if(jj_3R_103())
3712        {
3713            jj_scanpos = token1;
3714            if(jj_3R_104())
3715                return true;
3716            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3717                return false;
3718        } else
3719        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3720            return false;
3721        return false;
3722    }
3723
3724    private final boolean jj_3R_103()
3725    {
3726        if(jj_scan_token(5))
3727            return true;
3728        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3729    }
3730
3731    private final boolean jj_3R_100()
3732    {
3733        if(jj_3R_112())
3734            return true;
3735        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3736    }
3737
3738    private final boolean jj_3R_99()
3739    {
3740        if(jj_3R_111())
3741            return true;
3742        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3743    }
3744
3745    private final boolean jj_3R_98()
3746    {
3747        if(jj_3R_110())
3748            return true;
3749        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3750    }
3751
3752    private final boolean jj_3R_97()
3753    {
3754        if(jj_3R_109())
3755            return true;
3756        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3757    }
3758
3759    private final boolean jj_3R_36()
3760    {
3761        if(jj_scan_token(45))
3762            return true;
3763        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3764    }
3765
3766    private final boolean jj_3R_23()
3767    {
3768        Token token1 = jj_scanpos;
3769        if(jj_3R_36())
3770            jj_scanpos = token1;
3771        else
3772        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3773            return false;
3774        if(jj_scan_token(38))
3775            return true;
3776        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3777            return false;
3778        if(jj_3R_20())
3779            return true;
3780        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3781    }
3782
3783    private final boolean jj_3R_90()
3784    {
3785        if(jj_scan_token(59))
3786            return true;
3787        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3788            return false;
3789        Token token1 = jj_scanpos;
3790        if(jj_3R_94())
3791            jj_scanpos = token1;
3792        else
3793        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3794            return false;
3795        if(jj_3R_95())
3796            return true;
3797        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3798            return false;
3799        if(jj_3R_96())
3800            return true;
3801        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3802            return false;
3803        token1 = jj_scanpos;
3804        if(jj_3R_97())
3805            jj_scanpos = token1;
3806        else
3807        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3808            return false;
3809        token1 = jj_scanpos;
3810        if(jj_3R_98())
3811            jj_scanpos = token1;
3812        else
3813        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3814            return false;
3815        token1 = jj_scanpos;
3816        if(jj_3R_99())
3817            jj_scanpos = token1;
3818        else
3819        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3820            return false;
3821        token1 = jj_scanpos;
3822        if(jj_3R_100())
3823            jj_scanpos = token1;
3824        else
3825        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3826            return false;
3827        return false;
3828    }
3829
3830    private final boolean jj_3R_35()
3831    {
3832        if(jj_scan_token(45))
3833            return true;
3834        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3835    }
3836
3837    private final boolean jj_3R_22()
3838    {
3839        Token token1 = jj_scanpos;
3840        if(jj_3R_35())
3841            jj_scanpos = token1;
3842        else
3843        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3844            return false;
3845        if(jj_scan_token(11))
3846            return true;
3847        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3848            return false;
3849        if(jj_3R_20())
3850            return true;
3851        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3852            return false;
3853        if(jj_scan_token(6))
3854            return true;
3855        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3856            return false;
3857        if(jj_3R_20())
3858            return true;
3859        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3860    }
3861
3862    private final boolean jj_3R_30()
3863    {
3864        if(jj_scan_token(87))
3865            return true;
3866        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3867    }
3868
3869    private final boolean jj_3R_116()
3870    {
3871        if(jj_3R_72())
3872            return true;
3873        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3874    }
3875
3876    private final boolean jj_3R_117()
3877    {
3878        if(jj_3R_86())
3879            return true;
3880        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3881    }
3882
3883    private final boolean jj_3R_34()
3884    {
3885        if(jj_scan_token(45))
3886            return true;
3887        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3888    }
3889
3890    private final boolean jj_3R_21()
3891    {
3892        Token token1 = jj_scanpos;
3893        if(jj_3R_34())
3894            jj_scanpos = token1;
3895        else
3896        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3897            return false;
3898        if(jj_scan_token(32))
3899            return true;
3900        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3901            return false;
3902        if(jj_scan_token(88))
3903            return true;
3904        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3905            return false;
3906        token1 = jj_scanpos;
3907        if(jj_3R_116())
3908        {
3909            jj_scanpos = token1;
3910            if(jj_3R_117())
3911                return true;
3912            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3913                return false;
3914        } else
3915        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3916            return false;
3917        if(jj_scan_token(90))
3918            return true;
3919        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3920    }
3921
3922    private final boolean jj_3R_146()
3923    {
3924        if(jj_scan_token(7))
3925            return true;
3926        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3927    }
3928
3929    private final boolean jj_3R_143()
3930    {
3931        if(jj_scan_token(93))
3932            return true;
3933        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3934            return false;
3935        if(jj_3R_18())
3936            return true;
3937        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3938    }
3939
3940    private final boolean jj_3R_26()
3941    {
3942        if(jj_scan_token(88))
3943            return true;
3944        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3945            return false;
3946        if(jj_scan_token(59))
3947            return true;
3948        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3949    }
3950
3951    private final boolean jj_3R_121()
3952    {
3953        if(jj_3R_18())
3954            return true;
3955        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3956            return false;
3957        Token token1 = jj_scanpos;
3958        if(jj_3R_143())
3959            jj_scanpos = token1;
3960        else
3961        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3962            return false;
3963        return false;
3964    }
3965
3966    private final boolean jj_3R_83()
3967    {
3968        if(jj_scan_token(105))
3969            return true;
3970        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3971    }
3972
3973    private final boolean jj_3R_25()
3974    {
3975        if(jj_scan_token(5))
3976            return true;
3977        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3978    }
3979
3980    private final boolean jj_3R_81()
3981    {
3982        if(jj_3R_83())
3983            return true;
3984        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
3985    }
3986
3987    private final boolean jj_3R_76()
3988    {
3989        Token token1 = jj_scanpos;
3990        if(jj_3R_80())
3991        {
3992            jj_scanpos = token1;
3993            if(jj_3R_81())
3994                return true;
3995            if(jj_la == 0 && jj_scanpos == jj_lastpos)
3996                return false;
3997        } else
3998        if(jj_la == 0 && jj_scanpos == jj_lastpos)
3999            return false;
4000        return false;
4001    }
4002
4003    private final boolean jj_3R_80()
4004    {
4005        if(jj_3R_20())
4006            return true;
4007        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4008    }
4009
4010    private final boolean jj_3R_138()
4011    {
4012        if(jj_scan_token(100))
4013            return true;
4014        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4015    }
4016
4017    private final boolean jj_3R_137()
4018    {
4019        if(jj_scan_token(99))
4020            return true;
4021        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4022    }
4023
4024    private final boolean jj_3R_136()
4025    {
4026        if(jj_scan_token(98))
4027            return true;
4028        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4029    }
4030
4031    private final boolean jj_3R_135()
4032    {
4033        if(jj_scan_token(97))
4034            return true;
4035        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4036    }
4037
4038    private final boolean jj_3R_134()
4039    {
4040        if(jj_scan_token(96))
4041            return true;
4042        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4043    }
4044
4045    private final boolean jj_3_11()
4046    {
4047        Token token1 = jj_scanpos;
4048        if(jj_3R_24())
4049        {
4050            jj_scanpos = token1;
4051            if(jj_3R_25())
4052            {
4053                jj_scanpos = token1;
4054                if(jj_3R_26())
4055                    return true;
4056                if(jj_la == 0 && jj_scanpos == jj_lastpos)
4057                    return false;
4058            } else
4059            if(jj_la == 0 && jj_scanpos == jj_lastpos)
4060                return false;
4061        } else
4062        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4063            return false;
4064        return false;
4065    }
4066
4067    private final boolean jj_3R_24()
4068    {
4069        if(jj_scan_token(7))
4070            return true;
4071        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4072    }
4073
4074    private final boolean jj_3R_133()
4075    {
4076        if(jj_scan_token(95))
4077            return true;
4078        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4079    }
4080
4081    private final boolean jj_3R_140()
4082    {
4083        if(jj_scan_token(53))
4084            return true;
4085        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4086    }
4087
4088    private final boolean jj_3R_132()
4089    {
4090        if(jj_scan_token(94))
4091            return true;
4092        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4093    }
4094
4095    private final boolean jj_3R_115()
4096    {
4097        Token token1 = jj_scanpos;
4098        if(jj_3R_140())
4099            jj_scanpos = token1;
4100        else
4101        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4102            return false;
4103        if(jj_3R_76())
4104            return true;
4105        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4106    }
4107
4108    private final boolean jj_3R_113()
4109    {
4110        Token token1 = jj_scanpos;
4111        if(jj_3R_131())
4112        {
4113            jj_scanpos = token1;
4114            if(jj_3R_132())
4115            {
4116                jj_scanpos = token1;
4117                if(jj_3R_133())
4118                {
4119                    jj_scanpos = token1;
4120                    if(jj_3R_134())
4121                    {
4122                        jj_scanpos = token1;
4123                        if(jj_3R_135())
4124                        {
4125                            jj_scanpos = token1;
4126                            if(jj_3R_136())
4127                            {
4128                                jj_scanpos = token1;
4129                                if(jj_3R_137())
4130                                {
4131                                    jj_scanpos = token1;
4132                                    if(jj_3R_138())
4133                                        return true;
4134                                    if(jj_la == 0 && jj_scanpos == jj_lastpos)
4135                                        return false;
4136                                } else
4137                                if(jj_la == 0 && jj_scanpos == jj_lastpos)
4138                                    return false;
4139                            } else
4140                            if(jj_la == 0 && jj_scanpos == jj_lastpos)
4141                                return false;
4142                        } else
4143                        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4144                            return false;
4145                    } else
4146                    if(jj_la == 0 && jj_scanpos == jj_lastpos)
4147                        return false;
4148                } else
4149                if(jj_la == 0 && jj_scanpos == jj_lastpos)
4150                    return false;
4151            } else
4152            if(jj_la == 0 && jj_scanpos == jj_lastpos)
4153                return false;
4154        } else
4155        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4156            return false;
4157        return false;
4158    }
4159
4160    private final boolean jj_3R_131()
4161    {
4162        if(jj_scan_token(92))
4163            return true;
4164        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4165    }
4166
4167    private final boolean jj_3R_145()
4168    {
4169        if(jj_scan_token(5))
4170            return true;
4171        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4172    }
4173
4174    private final boolean jj_3R_139()
4175    {
4176        Token token1 = jj_scanpos;
4177        if(jj_3R_145())
4178        {
4179            jj_scanpos = token1;
4180            if(jj_3R_146())
4181                return true;
4182            if(jj_la == 0 && jj_scanpos == jj_lastpos)
4183                return false;
4184        } else
4185        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4186            return false;
4187        return false;
4188    }
4189
4190    private final boolean jj_3R_18()
4191    {
4192        Token token1 = jj_scanpos;
4193        if(jj_3R_29())
4194        {
4195            jj_scanpos = token1;
4196            if(jj_3R_30())
4197                return true;
4198            if(jj_la == 0 && jj_scanpos == jj_lastpos)
4199                return false;
4200        } else
4201        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4202            return false;
4203        return false;
4204    }
4205
4206    private final boolean jj_3R_29()
4207    {
4208        if(jj_scan_token(82))
4209            return true;
4210        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4211    }
4212
4213    private final boolean jj_3R_114()
4214    {
4215        Token token1 = jj_scanpos;
4216        if(jj_3R_139())
4217            jj_scanpos = token1;
4218        else
4219        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4220            return false;
4221        if(jj_scan_token(88))
4222            return true;
4223        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4224            return false;
4225        if(jj_3R_86())
4226            return true;
4227        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4228            return false;
4229        if(jj_scan_token(90))
4230            return true;
4231        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4232    }
4233
4234    private final boolean jj_3R_75()
4235    {
4236        if(jj_scan_token(93))
4237            return true;
4238        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4239            return false;
4240        if(jj_3R_18())
4241            return true;
4242        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4243    }
4244
4245    private final boolean jj_3R_71()
4246    {
4247        if(jj_scan_token(93))
4248            return true;
4249        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4250            return false;
4251        if(jj_3R_18())
4252            return true;
4253        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4254            return false;
4255        Token token1 = jj_scanpos;
4256        if(jj_3R_75())
4257            jj_scanpos = token1;
4258        else
4259        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4260            return false;
4261        return false;
4262    }
4263
4264    private final boolean jj_3R_101()
4265    {
4266        if(jj_3R_113())
4267            return true;
4268        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4269            return false;
4270        Token token1 = jj_scanpos;
4271        if(jj_3R_114())
4272        {
4273            jj_scanpos = token1;
4274            if(jj_3R_115())
4275                return true;
4276            if(jj_la == 0 && jj_scanpos == jj_lastpos)
4277                return false;
4278        } else
4279        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4280            return false;
4281        return false;
4282    }
4283
4284    private final boolean jj_3R_66()
4285    {
4286        if(jj_3R_18())
4287            return true;
4288        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4289            return false;
4290        Token token1 = jj_scanpos;
4291        if(jj_3R_71())
4292            jj_scanpos = token1;
4293        else
4294        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4295            return false;
4296        return false;
4297    }
4298
4299    private final boolean jj_3R_77()
4300    {
4301        if(jj_scan_token(89))
4302            return true;
4303        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4304            return false;
4305        if(jj_3R_76())
4306            return true;
4307        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4308    }
4309
4310    private final boolean jj_3R_72()
4311    {
4312        if(jj_3R_76())
4313            return true;
4314        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4315            return false;
4316        do
4317        {
4318            Token token1 = jj_scanpos;
4319            if(jj_3R_77())
4320            {
4321                jj_scanpos = token1;
4322                break;
4323            }
4324            if(jj_la == 0 && jj_scanpos == jj_lastpos)
4325                return false;
4326        } while(true);
4327        return false;
4328    }
4329
4330    private final boolean jj_3R_93()
4331    {
4332        if(jj_3R_102())
4333            return true;
4334        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4335    }
4336
4337    private final boolean jj_3_10()
4338    {
4339        if(jj_3R_23())
4340            return true;
4341        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4342    }
4343
4344    private final boolean jj_3_9()
4345    {
4346        if(jj_3R_22())
4347            return true;
4348        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4349    }
4350
4351    private final boolean jj_3_8()
4352    {
4353        if(jj_3R_21())
4354            return true;
4355        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4356    }
4357
4358    private final boolean jj_3R_89()
4359    {
4360        Token token1 = jj_scanpos;
4361        if(jj_3R_92())
4362        {
4363            jj_scanpos = token1;
4364            if(jj_3_8())
4365            {
4366                jj_scanpos = token1;
4367                if(jj_3_9())
4368                {
4369                    jj_scanpos = token1;
4370                    if(jj_3_10())
4371                    {
4372                        jj_scanpos = token1;
4373                        if(jj_3R_93())
4374                            return true;
4375                        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4376                            return false;
4377                    } else
4378                    if(jj_la == 0 && jj_scanpos == jj_lastpos)
4379                        return false;
4380                } else
4381                if(jj_la == 0 && jj_scanpos == jj_lastpos)
4382                    return false;
4383            } else
4384            if(jj_la == 0 && jj_scanpos == jj_lastpos)
4385                return false;
4386        } else
4387        if(jj_la == 0 && jj_scanpos == jj_lastpos)
4388            return false;
4389        return false;
4390    }
4391
4392    private final boolean jj_3R_92()
4393    {
4394        if(jj_3R_101())
4395            return true;
4396        return jj_la != 0 || jj_scanpos != jj_lastpos ? false : false;
4397    }
4398
4399    public ZqlJJParser(InputStream inputstream)
4400    {
4401        lookingAhead = false;
4402        jj_la1 = new int[98];
4403        jj_2_rtns = new JJCalls[15];
4404        jj_rescan = false;
4405        jj_gc = 0;
4406        jj_expentries = new Vector();
4407        jj_kind = -1;
4408        jj_lasttokens = new int[100];
4409        jj_input_stream = new SimpleCharStream(inputstream, 1, 1);
4410        token_source = new ZqlJJParserTokenManager(jj_input_stream);
4411        token = new Token();
4412        jj_ntk = -1;
4413        jj_gen = 0;
4414        for(int i = 0; i < 98; i++)
4415            jj_la1[i] = -1;
4416
4417        for(int j = 0; j < jj_2_rtns.length; j++)
4418            jj_2_rtns[j] = new JJCalls();
4419
4420    }
4421
4422    public void ReInit(InputStream inputstream)
4423    {
4424        jj_input_stream.ReInit(inputstream, 1, 1);
4425        token_source.ReInit(jj_input_stream);
4426        token = new Token();
4427        jj_ntk = -1;
4428        jj_gen = 0;
4429        for(int i = 0; i < 98; i++)
4430            jj_la1[i] = -1;
4431
4432        for(int j = 0; j < jj_2_rtns.length; j++)
4433            jj_2_rtns[j] = new JJCalls();
4434
4435    }
4436
4437    public ZqlJJParser(Reader reader)
4438    {
4439        lookingAhead = false;
4440        jj_la1 = new int[98];
4441        jj_2_rtns = new JJCalls[15];
4442        jj_rescan = false;
4443        jj_gc = 0;
4444        jj_expentries = new Vector();
4445        jj_kind = -1;
4446        jj_lasttokens = new int[100];
4447        jj_input_stream = new SimpleCharStream(reader, 1, 1);
4448        token_source = new ZqlJJParserTokenManager(jj_input_stream);
4449        token = new Token();
4450        jj_ntk = -1;
4451        jj_gen = 0;
4452        for(int i = 0; i < 98; i++)
4453            jj_la1[i] = -1;
4454
4455        for(int j = 0; j < jj_2_rtns.length; j++)
4456            jj_2_rtns[j] = new JJCalls();
4457
4458    }
4459
4460    public void ReInit(Reader reader)
4461    {
4462        jj_input_stream.ReInit(reader, 1, 1);
4463        token_source.ReInit(jj_input_stream);
4464        token = new Token();
4465        jj_ntk = -1;
4466        jj_gen = 0;
4467        for(int i = 0; i < 98; i++)
4468            jj_la1[i] = -1;
4469
4470        for(int j = 0; j < jj_2_rtns.length; j++)
4471            jj_2_rtns[j] = new JJCalls();
4472
4473    }
4474
4475    public ZqlJJParser(ZqlJJParserTokenManager zqljjparsertokenmanager)
4476    {
4477        lookingAhead = false;
4478        jj_la1 = new int[98];
4479        jj_2_rtns = new JJCalls[15];
4480        jj_rescan = false;
4481        jj_gc = 0;
4482        jj_expentries = new Vector();
4483        jj_kind = -1;
4484        jj_lasttokens = new int[100];
4485        token_source = zqljjparsertokenmanager;
4486        token = new Token();
4487        jj_ntk = -1;
4488        jj_gen = 0;
4489        for(int i = 0; i < 98; i++)
4490            jj_la1[i] = -1;
4491
4492        for(int j = 0; j < jj_2_rtns.length; j++)
4493            jj_2_rtns[j] = new JJCalls();
4494
4495    }
4496
4497    public void ReInit(ZqlJJParserTokenManager zqljjparsertokenmanager)
4498    {
4499        token_source = zqljjparsertokenmanager;
4500        token = new Token();
4501        jj_ntk = -1;
4502        jj_gen = 0;
4503        for(int i = 0; i < 98; i++)
4504            jj_la1[i] = -1;
4505
4506        for(int j = 0; j < jj_2_rtns.length; j++)
4507            jj_2_rtns[j] = new JJCalls();
4508
4509    }
4510
4511    private final Token jj_consume_token(int i)
4512        throws ParseException
4513    {
4514        
4515        //System.out.println("char:"+((char)i));
4516        Token token1;
4517        if((token1 = token).next != null)
4518            token = token.next;
4519        else
4520            token = token.next = token_source.getNextToken();
4521        jj_ntk = -1;
4522        //print.out("img:"+token.image+"+"+token.kind);
4523        if(token.kind == i)
4524        {
4525            jj_gen++;
4526            if(++jj_gc > 100)
4527            {
4528                jj_gc = 0;
4529                for(int j = 0; j < jj_2_rtns.length; j++)
4530                {
4531                    for(JJCalls jjcalls = jj_2_rtns[j]; jjcalls != null; jjcalls = jjcalls.next)
4532                        if(jjcalls.gen < jj_gen)
4533                            jjcalls.first = null;
4534
4535                }
4536
4537            }
4538            return token;
4539        }
4540        //else{
4541            token = token1;
4542            jj_kind = i;
4543            throw generateParseException();
4544        //}
4545    }
4546
4547    private final boolean jj_scan_token(int i)
4548    {
4549        if(jj_scanpos == jj_lastpos)
4550        {
4551            jj_la--;
4552            if(jj_scanpos.next == null)
4553                jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
4554            else
4555                jj_lastpos = jj_scanpos = jj_scanpos.next;
4556        } else
4557        {
4558            jj_scanpos = jj_scanpos.next;
4559        }
4560        if(jj_rescan)
4561        {
4562            int j = 0;
4563            Token token1;
4564            for(token1 = token; token1 != null && token1 != jj_scanpos; token1 = token1.next)
4565                j++;
4566
4567            if(token1 != null)
4568                jj_add_error_token(i, j);
4569        }
4570        return jj_scanpos.kind != i;
4571    }
4572
4573    public final Token getNextToken()
4574    {
4575        if(token.next != null)
4576            token = token.next;
4577        else
4578            token = token.next = token_source.getNextToken();
4579        jj_ntk = -1;
4580        jj_gen++;
4581        return token;
4582    }
4583
4584    public final Token getToken(int i)
4585    {
4586        Token token1 = lookingAhead ? jj_scanpos : token;
4587        for(int j = 0; j < i; j++)
4588            if(token1.next != null)
4589                token1 = token1.next;
4590            else
4591                token1 = token1.next = token_source.getNextToken();
4592
4593        return token1;
4594    }
4595
4596    private final int jj_ntk()
4597    {
4598        if((jj_nt = token.next) == null) {
4599                token.next = token_source.getNextToken();
4600                return jj_ntk = (token.next).kind;
4601        }
4602        return jj_ntk = jj_nt.kind;
4603    }
4604
4605    private void jj_add_error_token(int i, int j)
4606    {
4607        if(j >= 100)
4608            return;
4609        if(j == jj_endpos + 1)
4610            jj_lasttokens[jj_endpos++] = i;
4611        else
4612        if(jj_endpos != 0)
4613        {
4614            jj_expentry = new int[jj_endpos];
4615            for(int k = 0; k < jj_endpos; k++)
4616                jj_expentry[k] = jj_lasttokens[k];
4617
4618            boolean flag = false;
4619            Enumeration enumeration = jj_expentries.elements();
4620            while(enumeration.hasMoreElements()) 
4621            {
4622                int ai[] = (int[])enumeration.nextElement();
4623                if(ai.length != jj_expentry.length)
4624                    continue;
4625                flag = true;
4626                for(int l = 0; l < jj_expentry.length; l++)
4627                {
4628                    if(ai[l] == jj_expentry[l])
4629                        continue;
4630                    flag = false;
4631                    break;
4632                }
4633
4634                if(flag)
4635                    break;
4636            }
4637            if(!flag)
4638                jj_expentries.addElement(jj_expentry);
4639            if(j != 0)
4640                jj_lasttokens[(jj_endpos = j) - 1] = i;
4641        }
4642    }
4643
4644    public final ParseException generateParseException()
4645    {
4646        jj_expentries.removeAllElements();
4647        boolean aflag[] = new boolean[109];
4648        for(int i = 0; i < 109; i++)
4649            aflag[i] = false;
4650
4651        if(jj_kind >= 0)
4652        {
4653            aflag[jj_kind] = true;
4654            jj_kind = -1;
4655        }
4656        for(int j = 0; j < 98; j++)
4657            if(jj_la1[j] == jj_gen)
4658            {
4659                for(int k = 0; k < 32; k++)
4660                {
4661                    if((jj_la1_0[j] & 1 << k) != 0)
4662                        aflag[k] = true;
4663                    if((jj_la1_1[j] & 1 << k) != 0)
4664                        aflag[32 + k] = true;
4665                    if((jj_la1_2[j] & 1 << k) != 0)
4666                        aflag[64 + k] = true;
4667                    if((jj_la1_3[j] & 1 << k) != 0)
4668                        aflag[96 + k] = true;
4669                }
4670
4671            }
4672
4673        for(int l = 0; l < 109; l++)
4674            if(aflag[l])
4675            {
4676                jj_expentry = new int[1];
4677                jj_expentry[0] = l;
4678                jj_expentries.addElement(jj_expentry);
4679            }
4680
4681        jj_endpos = 0;
4682        jj_rescan_token();
4683        jj_add_error_token(0, 0);
4684        int ai[][] = new int[jj_expentries.size()][];
4685        for(int i1 = 0; i1 < jj_expentries.size(); i1++)
4686            ai[i1] = (int[])jj_expentries.elementAt(i1);
4687
4688        return new ParseException(token, ai, ZqlJJParserConstants.tokenImage);
4689    }
4690
4691    public final void enable_tracing()
4692    {
4693    }
4694
4695    public final void disable_tracing()
4696    {
4697    }
4698
4699    private final void jj_rescan_token()
4700    {
4701        jj_rescan = true;
4702        for(int i = 0; i < 15; i++)
4703        {
4704            JJCalls jjcalls = jj_2_rtns[i];
4705            do
4706            {
4707                if(jjcalls.gen > jj_gen)
4708                {
4709                    jj_la = jjcalls.arg;
4710                    jj_lastpos = jj_scanpos = jjcalls.first;
4711                    switch(i)
4712                    {
4713                    case 0: // '\0'
4714                        jj_3_1();
4715                        break;
4716
4717                    case 1: // '\001'
4718                        jj_3_2();
4719                        break;
4720
4721                    case 2: // '\002'
4722                        jj_3_3();
4723                        break;
4724
4725                    case 3: // '\003'
4726                        jj_3_4();
4727                        break;
4728
4729                    case 4: // '\004'
4730                        jj_3_5();
4731                        break;
4732
4733                    case 5: // '\005'
4734                        jj_3_6();
4735                        break;
4736
4737                    case 6: // '\006'
4738                        jj_3_7();
4739                        break;
4740
4741                    case 7: // '\007'
4742                        jj_3_8();
4743                        break;
4744
4745                    case 8: // '\b'
4746                        jj_3_9();
4747                        break;
4748
4749                    case 9: // '\t'
4750                        jj_3_10();
4751                        break;
4752
4753                    case 10: // '\n'
4754                        jj_3_11();
4755                        break;
4756
4757                    case 11: // '\013'
4758                        jj_3_12();
4759                        break;
4760
4761                    case 12: // '\f'
4762                        jj_3_13();
4763                        break;
4764
4765                    case 13: // '\r'
4766                        jj_3_14();
4767                        break;
4768
4769                    case 14: // '\016'
4770                        jj_3_15();
4771                        break;
4772                    }
4773                }
4774                jjcalls = jjcalls.next;
4775            } while(jjcalls != null);
4776        }
4777
4778        jj_rescan = false;
4779    }
4780
4781    private final void jj_save(int i, int j)
4782    {
4783        JJCalls jjcalls;
4784        for(jjcalls = jj_2_rtns[i]; jjcalls.gen > jj_gen; jjcalls = jjcalls.next)
4785        {
4786            if(jjcalls.next != null)
4787                continue;
4788            jjcalls = jjcalls.next = new JJCalls();
4789            break;
4790        }
4791
4792        jjcalls.gen = (jj_gen + j) - jj_la;
4793        jjcalls.first = token;
4794        jjcalls.arg = j;
4795    }
4796
4797    public ZqlJJParserTokenManager token_source;
4798    SimpleCharStream jj_input_stream;
4799    public Token token;
4800    public Token jj_nt;
4801    private int jj_ntk;
4802    private Token jj_scanpos;
4803    private Token jj_lastpos;
4804    private int jj_la;
4805    public boolean lookingAhead;
4806    //private boolean jj_semLA;
4807    private int jj_gen;
4808    private final int jj_la1[];
4809    private final int jj_la1_0[] = {
4810        0x8008000, 0, 0, 0x810b000, 0x4220000, 0x4000000, 0x4220000, 0, 0x10000, 0, 
4811        0, 0, 0x10000, 0, 0x1000000, 0, 0, 0x1000000, 0, 0, 
4812        0x2080400, 0, 0, 0, 0x20000000, 0, 0, 0, 0, 0, 
4813        0, 0, 0, 0, 0, 0x10000000, 0x800020, 0x800020, 0, 0x40000, 
4814        0x40000000, 0, 0, 0x80400, 256, 0x80400, 256, 0, 0, 0, 
4815        0, 0, 0x80000000, 32, 0, 0, 0x400200, 0x400200, 0, 0x400200, 
4816        0x400200, 0, 0, 0, 64, 0, 0x80400, 0, 0, 0x80400, 
4817        0, 0, 2048, 0, 160, 160, 0, 0x80400, 0x80400, 0, 
4818        0x80400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
4819        0, 0x800020, 0x800020, 0, 0, 0x80400, 0, 0
4820    };
4821    private final int jj_la1_1[] = {
4822        0x1011004, 0, 0, 0x1011004, 0x1a400082, 0x400000, 0x1a400082, 0, 0, 0, 
4823        16384, 0, 0, 0x40000, 0x20000000, 0x4000000, 0x4000000, 0x24000000, 0, 0, 
4824        0x20a300, 0, 0, 0x8000000, 0, 0, 0, 0, 0, 0, 
4825        0, 0, 0, 0, 0x100000, 0, 0, 0, 0, 0x80000000, 
4826        0, 1032, 0, 33536, 0, 33536, 0, 0, 0, 0, 
4827        0x80000000, 0x80000000, 0, 0, 1032, 0x8000000, 0, 0, 0, 0, 
4828        0, 0, 0x20000, 0x80000, 0, 8192, 0x20a300, 8192, 0x200000, 0x208300, 
4829        0, 32, 8289, 0, 0, 0, 0x200000, 0x208300, 33536, 8192, 
4830        0x8008300, 8192, 8192, 8192, 0, 0, 0, 0, 0, 0, 
4831        0, 0, 0, 32768, 0, 768, 0, 0
4832    };
4833    private final int jj_la1_2[] = {
4834        192, 0x2000000, 0x1000000, 192, 16, 0, 16, 1024, 0, 0x2000000, 
4835        0, 1024, 0, 2048, 0, 16, 16, 0, 256, 0x2000000, 
4836        0x1e41001, 0x2000000, 0x1000000, 32, 0, 256, 0x20000000, 0x20000000, 0x840000, 0xd0000000, 
4837        0x20000000, 0, 0, 0x41000, 0, 0, 0, 0, 256, 0, 
4838        0, 8, 0x2000000, 0x1e41001, 0x40000, 0x1e41001, 0, 0x40000, 0x2000000, 0x40000, 
4839        0, 0, 0, 0, 8, 0, 0, 0, 0x2000000, 0, 
4840        0, 0x2000000, 0, 0, 0, 0, 0x1e41001, 0, 0, 0x1e41001, 
4841        0xd0000000, 0, 0xd0000000, 0x2000000, 0, 0, 0, 0x1e41001, 0x1e41001, 0, 
4842        0x1e41001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
4843        0, 0, 0, 0, 0x1e41000, 1, 0x20000000, 0x20000000
4844    };
4845    private final int jj_la1_3[] = {
4846        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
4847        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
4848        608, 0, 0, 0, 0, 0, 0, 0, 0, 31, 
4849        0, 96, 96, 96, 0, 0, 0, 0, 0, 0, 
4850        0, 0, 0, 224, 0, 96, 0, 0, 0, 0, 
4851        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
4852        0, 0, 0, 0, 0, 0, 96, 0, 0, 96, 
4853        31, 0, 31, 0, 0, 0, 0, 608, 608, 0, 
4854        608, 0, 0, 0, 1120, 1120, 2176, 2176, 4096, 96, 
4855        96, 0, 0, 0, 0, 0, 0, 0
4856    };
4857    private final JJCalls jj_2_rtns[];
4858    private boolean jj_rescan;
4859    private int jj_gc;
4860    private Vector jj_expentries;
4861    private int jj_expentry[];
4862    private int jj_kind;
4863    private int jj_lasttokens[];
4864    private int jj_endpos;
4865}