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