SQLParser.java

// $ANTLR 3.2 Sep 23, 2009 12:02:23 SQL.g 2010-03-01 02:47:54

package edu.hawaii.ics.yucheng;

import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;


import org.antlr.runtime.tree.*;

public class SQLParser extends Parser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "B", "A", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "EXPONENT", "HEX_DIGIT", "UNICODE_ESC", "OCTAL_ESC", "ESC_SEQ", "DIGIT", "SQLBIGINT", "SQLBLOB", "SQLCHAR", "SQLCREATE", "SQLDATE", "SQLDATETIME", "SQLDECIMAL", "SQLDOUBLE", "SQLFLOAT", "SQLFROM", "SQLINT", "SQLKEY", "SQLLONGBLOB", "SQLLONGTEXT", "SQLMEDIUMBLOB", "SQLMEDIUMINT", "SQLMEDIUMTEXT", "SQLNOT", "SQLNULL", "SQLPRIMARY", "SQLSELECT", "SQLSMALLINT", "SQLTABLE", "SQLTEXT", "SQLTIME", "SQLTIMESTAMP", "SQLTINYINT", "SQLTINYTEXT", "SQLVARCHAR", "SQLWHERE", "SQLYEAR", "ID", "INT", "FLOAT", "COMMENT", "STRING", "WS", "CHAR", "NONSEMICOLON", "'('", "')'", "','", "'*'", "';'"
    };
    public static final int EXPONENT=30;
    public static final int SQLTIME=60;
    public static final int SQLNOT=53;
    public static final int SQLTABLE=58;
    public static final int SQLDATE=40;
    public static final int OCTAL_ESC=33;
    public static final int NONSEMICOLON=74;
    public static final int CHAR=73;
    public static final int SQLTINYINT=62;
    public static final int SQLTEXT=59;
    public static final int SQLPRIMARY=55;
    public static final int FLOAT=69;
    public static final int SQLKEY=47;
    public static final int ID=67;
    public static final int EOF=-1;
    public static final int SQLINT=46;
    public static final int SQLSELECT=56;
    public static final int ESC_SEQ=34;
    public static final int SQLDATETIME=41;
    public static final int SQLTINYTEXT=63;
    public static final int SQLMEDIUMINT=51;
    public static final int SQLSMALLINT=57;
    public static final int SQLYEAR=66;
    public static final int SQLNULL=54;
    public static final int DIGIT=35;
    public static final int COMMENT=70;
    public static final int D=7;
    public static final int SQLVARCHAR=64;
    public static final int E=8;
    public static final int SQLDECIMAL=42;
    public static final int F=9;
    public static final int G=10;
    public static final int SQLLONGBLOB=48;
    public static final int A=5;
    public static final int B=4;
    public static final int SQLBIGINT=36;
    public static final int SQLLONGTEXT=49;
    public static final int C=6;
    public static final int L=15;
    public static final int M=16;
    public static final int N=17;
    public static final int O=18;
    public static final int SQLFROM=45;
    public static final int H=11;
    public static final int I=12;
    public static final int UNICODE_ESC=32;
    public static final int J=13;
    public static final int K=14;
    public static final int U=24;
    public static final int T=23;
    public static final int W=26;
    public static final int HEX_DIGIT=31;
    public static final int V=25;
    public static final int INT=68;
    public static final int Q=20;
    public static final int SQLCHAR=38;
    public static final int P=19;
    public static final int S=22;
    public static final int R=21;
    public static final int SQLCREATE=39;
    public static final int Y=28;
    public static final int X=27;
    public static final int SQLWHERE=65;
    public static final int Z=29;
    public static final int SQLFLOAT=44;
    public static final int WS=72;
    public static final int SQLTIMESTAMP=61;
    public static final int SQLBLOB=37;
    public static final int SQLMEDIUMTEXT=52;
    public static final int T__76=76;
    public static final int SQLMEDIUMBLOB=50;
    public static final int T__75=75;
    public static final int SQLDOUBLE=43;
    public static final int T__79=79;
    public static final int STRING=71;
    public static final int T__78=78;
    public static final int T__77=77;

    // delegates
    // delegators


        public SQLParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public SQLParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        
    protected TreeAdaptor adaptor = new CommonTreeAdaptor();

    public void setTreeAdaptor(TreeAdaptor adaptor) {
        this.adaptor = adaptor;
    }
    public TreeAdaptor getTreeAdaptor() {
        return adaptor;
    }

    public String[] getTokenNames() { return SQLParser.tokenNames; }
    public String getGrammarFileName() { return "SQL.g"; }

    protected Object recoverFromMismatchedToken(final IntStream input, final int expecting, final BitSet follow) throws RecognitionException {
        throw new MismatchedTokenException(expecting, input);
    }

    public static class columnConstraint_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "columnConstraint"
    // SQL.g:197:1: columnConstraint : ( SQLNOT SQLNULL | SQLPRIMARY SQLKEY );
    public final SQLParser.columnConstraint_return columnConstraint() throws RecognitionException {
        SQLParser.columnConstraint_return retval = new SQLParser.columnConstraint_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SQLNOT1=null;
        Token SQLNULL2=null;
        Token SQLPRIMARY3=null;
        Token SQLKEY4=null;

        Object SQLNOT1_tree=null;
        Object SQLNULL2_tree=null;
        Object SQLPRIMARY3_tree=null;
        Object SQLKEY4_tree=null;

        try {
            // SQL.g:197:25: ( SQLNOT SQLNULL | SQLPRIMARY SQLKEY )
            int alt1=2;
            int LA1_0 = input.LA(1);

            if ( (LA1_0==SQLNOT) ) {
                alt1=1;
            }
            else if ( (LA1_0==SQLPRIMARY) ) {
                alt1=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;
            }
            switch (alt1) {
                case 1 :
                    // SQL.g:197:27: SQLNOT SQLNULL
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLNOT1=(Token)match(input,SQLNOT,FOLLOW_SQLNOT_in_columnConstraint3688); 
                    SQLNOT1_tree = (Object)adaptor.create(SQLNOT1);
                    adaptor.addChild(root_0, SQLNOT1_tree);

                    SQLNULL2=(Token)match(input,SQLNULL,FOLLOW_SQLNULL_in_columnConstraint3690); 
                    SQLNULL2_tree = (Object)adaptor.create(SQLNULL2);
                    adaptor.addChild(root_0, SQLNULL2_tree);


                    }
                    break;
                case 2 :
                    // SQL.g:198:27: SQLPRIMARY SQLKEY
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLPRIMARY3=(Token)match(input,SQLPRIMARY,FOLLOW_SQLPRIMARY_in_columnConstraint3718); 
                    SQLPRIMARY3_tree = (Object)adaptor.create(SQLPRIMARY3);
                    adaptor.addChild(root_0, SQLPRIMARY3_tree);

                    SQLKEY4=(Token)match(input,SQLKEY,FOLLOW_SQLKEY_in_columnConstraint3720); 
                    SQLKEY4_tree = (Object)adaptor.create(SQLKEY4);
                    adaptor.addChild(root_0, SQLKEY4_tree);


                    }
                    break;

            }
            retval.stop = input.LT(-1);

            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
    	retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);

        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "columnConstraint"

    public static class columnType_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "columnType"
    // SQL.g:201:1: columnType : ( SQLBIGINT | SQLBIGINT '(' INT ')' | SQLBLOB | SQLCHAR | SQLCHAR '(' INT ')' | SQLDATE | SQLDATETIME | SQLDECIMAL | SQLDECIMAL '(' INT ',' INT ')' | SQLDOUBLE | SQLDOUBLE '(' INT ',' INT ')' | SQLFLOAT | SQLFLOAT '(' INT ',' INT ')' | SQLINT | SQLINT '(' INT ')' | SQLLONGBLOB | SQLLONGTEXT | SQLMEDIUMBLOB | SQLMEDIUMINT | SQLMEDIUMINT '(' INT ')' | SQLMEDIUMTEXT | SQLSMALLINT | SQLSMALLINT '(' INT ')' | SQLTEXT | SQLTIMESTAMP | SQLTINYINT | SQLTINYINT '(' INT ')' | SQLTINYTEXT | SQLVARCHAR | SQLVARCHAR '(' INT ')' | SQLYEAR | );
    public final SQLParser.columnType_return columnType() throws RecognitionException {
        SQLParser.columnType_return retval = new SQLParser.columnType_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SQLBIGINT5=null;
        Token SQLBIGINT6=null;
        Token char_literal7=null;
        Token INT8=null;
        Token char_literal9=null;
        Token SQLBLOB10=null;
        Token SQLCHAR11=null;
        Token SQLCHAR12=null;
        Token char_literal13=null;
        Token INT14=null;
        Token char_literal15=null;
        Token SQLDATE16=null;
        Token SQLDATETIME17=null;
        Token SQLDECIMAL18=null;
        Token SQLDECIMAL19=null;
        Token char_literal20=null;
        Token INT21=null;
        Token char_literal22=null;
        Token INT23=null;
        Token char_literal24=null;
        Token SQLDOUBLE25=null;
        Token SQLDOUBLE26=null;
        Token char_literal27=null;
        Token INT28=null;
        Token char_literal29=null;
        Token INT30=null;
        Token char_literal31=null;
        Token SQLFLOAT32=null;
        Token SQLFLOAT33=null;
        Token char_literal34=null;
        Token INT35=null;
        Token char_literal36=null;
        Token INT37=null;
        Token char_literal38=null;
        Token SQLINT39=null;
        Token SQLINT40=null;
        Token char_literal41=null;
        Token INT42=null;
        Token char_literal43=null;
        Token SQLLONGBLOB44=null;
        Token SQLLONGTEXT45=null;
        Token SQLMEDIUMBLOB46=null;
        Token SQLMEDIUMINT47=null;
        Token SQLMEDIUMINT48=null;
        Token char_literal49=null;
        Token INT50=null;
        Token char_literal51=null;
        Token SQLMEDIUMTEXT52=null;
        Token SQLSMALLINT53=null;
        Token SQLSMALLINT54=null;
        Token char_literal55=null;
        Token INT56=null;
        Token char_literal57=null;
        Token SQLTEXT58=null;
        Token SQLTIMESTAMP59=null;
        Token SQLTINYINT60=null;
        Token SQLTINYINT61=null;
        Token char_literal62=null;
        Token INT63=null;
        Token char_literal64=null;
        Token SQLTINYTEXT65=null;
        Token SQLVARCHAR66=null;
        Token SQLVARCHAR67=null;
        Token char_literal68=null;
        Token INT69=null;
        Token char_literal70=null;
        Token SQLYEAR71=null;

        Object SQLBIGINT5_tree=null;
        Object SQLBIGINT6_tree=null;
        Object char_literal7_tree=null;
        Object INT8_tree=null;
        Object char_literal9_tree=null;
        Object SQLBLOB10_tree=null;
        Object SQLCHAR11_tree=null;
        Object SQLCHAR12_tree=null;
        Object char_literal13_tree=null;
        Object INT14_tree=null;
        Object char_literal15_tree=null;
        Object SQLDATE16_tree=null;
        Object SQLDATETIME17_tree=null;
        Object SQLDECIMAL18_tree=null;
        Object SQLDECIMAL19_tree=null;
        Object char_literal20_tree=null;
        Object INT21_tree=null;
        Object char_literal22_tree=null;
        Object INT23_tree=null;
        Object char_literal24_tree=null;
        Object SQLDOUBLE25_tree=null;
        Object SQLDOUBLE26_tree=null;
        Object char_literal27_tree=null;
        Object INT28_tree=null;
        Object char_literal29_tree=null;
        Object INT30_tree=null;
        Object char_literal31_tree=null;
        Object SQLFLOAT32_tree=null;
        Object SQLFLOAT33_tree=null;
        Object char_literal34_tree=null;
        Object INT35_tree=null;
        Object char_literal36_tree=null;
        Object INT37_tree=null;
        Object char_literal38_tree=null;
        Object SQLINT39_tree=null;
        Object SQLINT40_tree=null;
        Object char_literal41_tree=null;
        Object INT42_tree=null;
        Object char_literal43_tree=null;
        Object SQLLONGBLOB44_tree=null;
        Object SQLLONGTEXT45_tree=null;
        Object SQLMEDIUMBLOB46_tree=null;
        Object SQLMEDIUMINT47_tree=null;
        Object SQLMEDIUMINT48_tree=null;
        Object char_literal49_tree=null;
        Object INT50_tree=null;
        Object char_literal51_tree=null;
        Object SQLMEDIUMTEXT52_tree=null;
        Object SQLSMALLINT53_tree=null;
        Object SQLSMALLINT54_tree=null;
        Object char_literal55_tree=null;
        Object INT56_tree=null;
        Object char_literal57_tree=null;
        Object SQLTEXT58_tree=null;
        Object SQLTIMESTAMP59_tree=null;
        Object SQLTINYINT60_tree=null;
        Object SQLTINYINT61_tree=null;
        Object char_literal62_tree=null;
        Object INT63_tree=null;
        Object char_literal64_tree=null;
        Object SQLTINYTEXT65_tree=null;
        Object SQLVARCHAR66_tree=null;
        Object SQLVARCHAR67_tree=null;
        Object char_literal68_tree=null;
        Object INT69_tree=null;
        Object char_literal70_tree=null;
        Object SQLYEAR71_tree=null;

        try {
            // SQL.g:201:25: ( SQLBIGINT | SQLBIGINT '(' INT ')' | SQLBLOB | SQLCHAR | SQLCHAR '(' INT ')' | SQLDATE | SQLDATETIME | SQLDECIMAL | SQLDECIMAL '(' INT ',' INT ')' | SQLDOUBLE | SQLDOUBLE '(' INT ',' INT ')' | SQLFLOAT | SQLFLOAT '(' INT ',' INT ')' | SQLINT | SQLINT '(' INT ')' | SQLLONGBLOB | SQLLONGTEXT | SQLMEDIUMBLOB | SQLMEDIUMINT | SQLMEDIUMINT '(' INT ')' | SQLMEDIUMTEXT | SQLSMALLINT | SQLSMALLINT '(' INT ')' | SQLTEXT | SQLTIMESTAMP | SQLTINYINT | SQLTINYINT '(' INT ')' | SQLTINYTEXT | SQLVARCHAR | SQLVARCHAR '(' INT ')' | SQLYEAR | )
            int alt2=32;
            alt2 = dfa2.predict(input);
            switch (alt2) {
                case 1 :
                    // SQL.g:201:27: SQLBIGINT
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLBIGINT5=(Token)match(input,SQLBIGINT,FOLLOW_SQLBIGINT_in_columnType3766); 
                    SQLBIGINT5_tree = (Object)adaptor.create(SQLBIGINT5);
                    adaptor.addChild(root_0, SQLBIGINT5_tree);


                    }
                    break;
                case 2 :
                    // SQL.g:202:27: SQLBIGINT '(' INT ')'
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLBIGINT6=(Token)match(input,SQLBIGINT,FOLLOW_SQLBIGINT_in_columnType3794); 
                    SQLBIGINT6_tree = (Object)adaptor.create(SQLBIGINT6);
                    adaptor.addChild(root_0, SQLBIGINT6_tree);

                    char_literal7=(Token)match(input,75,FOLLOW_75_in_columnType3796); 
                    char_literal7_tree = (Object)adaptor.create(char_literal7);
                    adaptor.addChild(root_0, char_literal7_tree);

                    INT8=(Token)match(input,INT,FOLLOW_INT_in_columnType3798); 
                    INT8_tree = (Object)adaptor.create(INT8);
                    adaptor.addChild(root_0, INT8_tree);

                    char_literal9=(Token)match(input,76,FOLLOW_76_in_columnType3800); 
                    char_literal9_tree = (Object)adaptor.create(char_literal9);
                    adaptor.addChild(root_0, char_literal9_tree);


                    }
                    break;
                case 3 :
                    // SQL.g:203:27: SQLBLOB
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLBLOB10=(Token)match(input,SQLBLOB,FOLLOW_SQLBLOB_in_columnType3828); 
                    SQLBLOB10_tree = (Object)adaptor.create(SQLBLOB10);
                    adaptor.addChild(root_0, SQLBLOB10_tree);


                    }
                    break;
                case 4 :
                    // SQL.g:204:27: SQLCHAR
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLCHAR11=(Token)match(input,SQLCHAR,FOLLOW_SQLCHAR_in_columnType3856); 
                    SQLCHAR11_tree = (Object)adaptor.create(SQLCHAR11);
                    adaptor.addChild(root_0, SQLCHAR11_tree);


                    }
                    break;
                case 5 :
                    // SQL.g:205:27: SQLCHAR '(' INT ')'
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLCHAR12=(Token)match(input,SQLCHAR,FOLLOW_SQLCHAR_in_columnType3884); 
                    SQLCHAR12_tree = (Object)adaptor.create(SQLCHAR12);
                    adaptor.addChild(root_0, SQLCHAR12_tree);

                    char_literal13=(Token)match(input,75,FOLLOW_75_in_columnType3886); 
                    char_literal13_tree = (Object)adaptor.create(char_literal13);
                    adaptor.addChild(root_0, char_literal13_tree);

                    INT14=(Token)match(input,INT,FOLLOW_INT_in_columnType3888); 
                    INT14_tree = (Object)adaptor.create(INT14);
                    adaptor.addChild(root_0, INT14_tree);

                    char_literal15=(Token)match(input,76,FOLLOW_76_in_columnType3890); 
                    char_literal15_tree = (Object)adaptor.create(char_literal15);
                    adaptor.addChild(root_0, char_literal15_tree);


                    }
                    break;
                case 6 :
                    // SQL.g:206:27: SQLDATE
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLDATE16=(Token)match(input,SQLDATE,FOLLOW_SQLDATE_in_columnType3918); 
                    SQLDATE16_tree = (Object)adaptor.create(SQLDATE16);
                    adaptor.addChild(root_0, SQLDATE16_tree);


                    }
                    break;
                case 7 :
                    // SQL.g:207:27: SQLDATETIME
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLDATETIME17=(Token)match(input,SQLDATETIME,FOLLOW_SQLDATETIME_in_columnType3946); 
                    SQLDATETIME17_tree = (Object)adaptor.create(SQLDATETIME17);
                    adaptor.addChild(root_0, SQLDATETIME17_tree);


                    }
                    break;
                case 8 :
                    // SQL.g:208:27: SQLDECIMAL
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLDECIMAL18=(Token)match(input,SQLDECIMAL,FOLLOW_SQLDECIMAL_in_columnType3974); 
                    SQLDECIMAL18_tree = (Object)adaptor.create(SQLDECIMAL18);
                    adaptor.addChild(root_0, SQLDECIMAL18_tree);


                    }
                    break;
                case 9 :
                    // SQL.g:209:27: SQLDECIMAL '(' INT ',' INT ')'
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLDECIMAL19=(Token)match(input,SQLDECIMAL,FOLLOW_SQLDECIMAL_in_columnType4002); 
                    SQLDECIMAL19_tree = (Object)adaptor.create(SQLDECIMAL19);
                    adaptor.addChild(root_0, SQLDECIMAL19_tree);

                    char_literal20=(Token)match(input,75,FOLLOW_75_in_columnType4004); 
                    char_literal20_tree = (Object)adaptor.create(char_literal20);
                    adaptor.addChild(root_0, char_literal20_tree);

                    INT21=(Token)match(input,INT,FOLLOW_INT_in_columnType4006); 
                    INT21_tree = (Object)adaptor.create(INT21);
                    adaptor.addChild(root_0, INT21_tree);

                    char_literal22=(Token)match(input,77,FOLLOW_77_in_columnType4008); 
                    char_literal22_tree = (Object)adaptor.create(char_literal22);
                    adaptor.addChild(root_0, char_literal22_tree);

                    INT23=(Token)match(input,INT,FOLLOW_INT_in_columnType4010); 
                    INT23_tree = (Object)adaptor.create(INT23);
                    adaptor.addChild(root_0, INT23_tree);

                    char_literal24=(Token)match(input,76,FOLLOW_76_in_columnType4012); 
                    char_literal24_tree = (Object)adaptor.create(char_literal24);
                    adaptor.addChild(root_0, char_literal24_tree);


                    }
                    break;
                case 10 :
                    // SQL.g:210:27: SQLDOUBLE
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLDOUBLE25=(Token)match(input,SQLDOUBLE,FOLLOW_SQLDOUBLE_in_columnType4040); 
                    SQLDOUBLE25_tree = (Object)adaptor.create(SQLDOUBLE25);
                    adaptor.addChild(root_0, SQLDOUBLE25_tree);


                    }
                    break;
                case 11 :
                    // SQL.g:211:27: SQLDOUBLE '(' INT ',' INT ')'
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLDOUBLE26=(Token)match(input,SQLDOUBLE,FOLLOW_SQLDOUBLE_in_columnType4068); 
                    SQLDOUBLE26_tree = (Object)adaptor.create(SQLDOUBLE26);
                    adaptor.addChild(root_0, SQLDOUBLE26_tree);

                    char_literal27=(Token)match(input,75,FOLLOW_75_in_columnType4070); 
                    char_literal27_tree = (Object)adaptor.create(char_literal27);
                    adaptor.addChild(root_0, char_literal27_tree);

                    INT28=(Token)match(input,INT,FOLLOW_INT_in_columnType4072); 
                    INT28_tree = (Object)adaptor.create(INT28);
                    adaptor.addChild(root_0, INT28_tree);

                    char_literal29=(Token)match(input,77,FOLLOW_77_in_columnType4074); 
                    char_literal29_tree = (Object)adaptor.create(char_literal29);
                    adaptor.addChild(root_0, char_literal29_tree);

                    INT30=(Token)match(input,INT,FOLLOW_INT_in_columnType4076); 
                    INT30_tree = (Object)adaptor.create(INT30);
                    adaptor.addChild(root_0, INT30_tree);

                    char_literal31=(Token)match(input,76,FOLLOW_76_in_columnType4078); 
                    char_literal31_tree = (Object)adaptor.create(char_literal31);
                    adaptor.addChild(root_0, char_literal31_tree);


                    }
                    break;
                case 12 :
                    // SQL.g:212:27: SQLFLOAT
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLFLOAT32=(Token)match(input,SQLFLOAT,FOLLOW_SQLFLOAT_in_columnType4106); 
                    SQLFLOAT32_tree = (Object)adaptor.create(SQLFLOAT32);
                    adaptor.addChild(root_0, SQLFLOAT32_tree);


                    }
                    break;
                case 13 :
                    // SQL.g:213:27: SQLFLOAT '(' INT ',' INT ')'
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLFLOAT33=(Token)match(input,SQLFLOAT,FOLLOW_SQLFLOAT_in_columnType4134); 
                    SQLFLOAT33_tree = (Object)adaptor.create(SQLFLOAT33);
                    adaptor.addChild(root_0, SQLFLOAT33_tree);

                    char_literal34=(Token)match(input,75,FOLLOW_75_in_columnType4136); 
                    char_literal34_tree = (Object)adaptor.create(char_literal34);
                    adaptor.addChild(root_0, char_literal34_tree);

                    INT35=(Token)match(input,INT,FOLLOW_INT_in_columnType4138); 
                    INT35_tree = (Object)adaptor.create(INT35);
                    adaptor.addChild(root_0, INT35_tree);

                    char_literal36=(Token)match(input,77,FOLLOW_77_in_columnType4140); 
                    char_literal36_tree = (Object)adaptor.create(char_literal36);
                    adaptor.addChild(root_0, char_literal36_tree);

                    INT37=(Token)match(input,INT,FOLLOW_INT_in_columnType4142); 
                    INT37_tree = (Object)adaptor.create(INT37);
                    adaptor.addChild(root_0, INT37_tree);

                    char_literal38=(Token)match(input,76,FOLLOW_76_in_columnType4144); 
                    char_literal38_tree = (Object)adaptor.create(char_literal38);
                    adaptor.addChild(root_0, char_literal38_tree);


                    }
                    break;
                case 14 :
                    // SQL.g:214:27: SQLINT
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLINT39=(Token)match(input,SQLINT,FOLLOW_SQLINT_in_columnType4172); 
                    SQLINT39_tree = (Object)adaptor.create(SQLINT39);
                    adaptor.addChild(root_0, SQLINT39_tree);


                    }
                    break;
                case 15 :
                    // SQL.g:215:27: SQLINT '(' INT ')'
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLINT40=(Token)match(input,SQLINT,FOLLOW_SQLINT_in_columnType4200); 
                    SQLINT40_tree = (Object)adaptor.create(SQLINT40);
                    adaptor.addChild(root_0, SQLINT40_tree);

                    char_literal41=(Token)match(input,75,FOLLOW_75_in_columnType4202); 
                    char_literal41_tree = (Object)adaptor.create(char_literal41);
                    adaptor.addChild(root_0, char_literal41_tree);

                    INT42=(Token)match(input,INT,FOLLOW_INT_in_columnType4204); 
                    INT42_tree = (Object)adaptor.create(INT42);
                    adaptor.addChild(root_0, INT42_tree);

                    char_literal43=(Token)match(input,76,FOLLOW_76_in_columnType4206); 
                    char_literal43_tree = (Object)adaptor.create(char_literal43);
                    adaptor.addChild(root_0, char_literal43_tree);


                    }
                    break;
                case 16 :
                    // SQL.g:216:27: SQLLONGBLOB
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLLONGBLOB44=(Token)match(input,SQLLONGBLOB,FOLLOW_SQLLONGBLOB_in_columnType4234); 
                    SQLLONGBLOB44_tree = (Object)adaptor.create(SQLLONGBLOB44);
                    adaptor.addChild(root_0, SQLLONGBLOB44_tree);


                    }
                    break;
                case 17 :
                    // SQL.g:217:27: SQLLONGTEXT
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLLONGTEXT45=(Token)match(input,SQLLONGTEXT,FOLLOW_SQLLONGTEXT_in_columnType4262); 
                    SQLLONGTEXT45_tree = (Object)adaptor.create(SQLLONGTEXT45);
                    adaptor.addChild(root_0, SQLLONGTEXT45_tree);


                    }
                    break;
                case 18 :
                    // SQL.g:218:27: SQLMEDIUMBLOB
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLMEDIUMBLOB46=(Token)match(input,SQLMEDIUMBLOB,FOLLOW_SQLMEDIUMBLOB_in_columnType4290); 
                    SQLMEDIUMBLOB46_tree = (Object)adaptor.create(SQLMEDIUMBLOB46);
                    adaptor.addChild(root_0, SQLMEDIUMBLOB46_tree);


                    }
                    break;
                case 19 :
                    // SQL.g:219:27: SQLMEDIUMINT
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLMEDIUMINT47=(Token)match(input,SQLMEDIUMINT,FOLLOW_SQLMEDIUMINT_in_columnType4318); 
                    SQLMEDIUMINT47_tree = (Object)adaptor.create(SQLMEDIUMINT47);
                    adaptor.addChild(root_0, SQLMEDIUMINT47_tree);


                    }
                    break;
                case 20 :
                    // SQL.g:220:27: SQLMEDIUMINT '(' INT ')'
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLMEDIUMINT48=(Token)match(input,SQLMEDIUMINT,FOLLOW_SQLMEDIUMINT_in_columnType4346); 
                    SQLMEDIUMINT48_tree = (Object)adaptor.create(SQLMEDIUMINT48);
                    adaptor.addChild(root_0, SQLMEDIUMINT48_tree);

                    char_literal49=(Token)match(input,75,FOLLOW_75_in_columnType4348); 
                    char_literal49_tree = (Object)adaptor.create(char_literal49);
                    adaptor.addChild(root_0, char_literal49_tree);

                    INT50=(Token)match(input,INT,FOLLOW_INT_in_columnType4350); 
                    INT50_tree = (Object)adaptor.create(INT50);
                    adaptor.addChild(root_0, INT50_tree);

                    char_literal51=(Token)match(input,76,FOLLOW_76_in_columnType4352); 
                    char_literal51_tree = (Object)adaptor.create(char_literal51);
                    adaptor.addChild(root_0, char_literal51_tree);


                    }
                    break;
                case 21 :
                    // SQL.g:221:27: SQLMEDIUMTEXT
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLMEDIUMTEXT52=(Token)match(input,SQLMEDIUMTEXT,FOLLOW_SQLMEDIUMTEXT_in_columnType4380); 
                    SQLMEDIUMTEXT52_tree = (Object)adaptor.create(SQLMEDIUMTEXT52);
                    adaptor.addChild(root_0, SQLMEDIUMTEXT52_tree);


                    }
                    break;
                case 22 :
                    // SQL.g:222:27: SQLSMALLINT
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLSMALLINT53=(Token)match(input,SQLSMALLINT,FOLLOW_SQLSMALLINT_in_columnType4408); 
                    SQLSMALLINT53_tree = (Object)adaptor.create(SQLSMALLINT53);
                    adaptor.addChild(root_0, SQLSMALLINT53_tree);


                    }
                    break;
                case 23 :
                    // SQL.g:223:27: SQLSMALLINT '(' INT ')'
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLSMALLINT54=(Token)match(input,SQLSMALLINT,FOLLOW_SQLSMALLINT_in_columnType4436); 
                    SQLSMALLINT54_tree = (Object)adaptor.create(SQLSMALLINT54);
                    adaptor.addChild(root_0, SQLSMALLINT54_tree);

                    char_literal55=(Token)match(input,75,FOLLOW_75_in_columnType4438); 
                    char_literal55_tree = (Object)adaptor.create(char_literal55);
                    adaptor.addChild(root_0, char_literal55_tree);

                    INT56=(Token)match(input,INT,FOLLOW_INT_in_columnType4440); 
                    INT56_tree = (Object)adaptor.create(INT56);
                    adaptor.addChild(root_0, INT56_tree);

                    char_literal57=(Token)match(input,76,FOLLOW_76_in_columnType4442); 
                    char_literal57_tree = (Object)adaptor.create(char_literal57);
                    adaptor.addChild(root_0, char_literal57_tree);


                    }
                    break;
                case 24 :
                    // SQL.g:224:27: SQLTEXT
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLTEXT58=(Token)match(input,SQLTEXT,FOLLOW_SQLTEXT_in_columnType4470); 
                    SQLTEXT58_tree = (Object)adaptor.create(SQLTEXT58);
                    adaptor.addChild(root_0, SQLTEXT58_tree);


                    }
                    break;
                case 25 :
                    // SQL.g:225:27: SQLTIMESTAMP
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLTIMESTAMP59=(Token)match(input,SQLTIMESTAMP,FOLLOW_SQLTIMESTAMP_in_columnType4498); 
                    SQLTIMESTAMP59_tree = (Object)adaptor.create(SQLTIMESTAMP59);
                    adaptor.addChild(root_0, SQLTIMESTAMP59_tree);


                    }
                    break;
                case 26 :
                    // SQL.g:226:27: SQLTINYINT
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLTINYINT60=(Token)match(input,SQLTINYINT,FOLLOW_SQLTINYINT_in_columnType4526); 
                    SQLTINYINT60_tree = (Object)adaptor.create(SQLTINYINT60);
                    adaptor.addChild(root_0, SQLTINYINT60_tree);


                    }
                    break;
                case 27 :
                    // SQL.g:227:27: SQLTINYINT '(' INT ')'
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLTINYINT61=(Token)match(input,SQLTINYINT,FOLLOW_SQLTINYINT_in_columnType4554); 
                    SQLTINYINT61_tree = (Object)adaptor.create(SQLTINYINT61);
                    adaptor.addChild(root_0, SQLTINYINT61_tree);

                    char_literal62=(Token)match(input,75,FOLLOW_75_in_columnType4556); 
                    char_literal62_tree = (Object)adaptor.create(char_literal62);
                    adaptor.addChild(root_0, char_literal62_tree);

                    INT63=(Token)match(input,INT,FOLLOW_INT_in_columnType4558); 
                    INT63_tree = (Object)adaptor.create(INT63);
                    adaptor.addChild(root_0, INT63_tree);

                    char_literal64=(Token)match(input,76,FOLLOW_76_in_columnType4560); 
                    char_literal64_tree = (Object)adaptor.create(char_literal64);
                    adaptor.addChild(root_0, char_literal64_tree);


                    }
                    break;
                case 28 :
                    // SQL.g:228:27: SQLTINYTEXT
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLTINYTEXT65=(Token)match(input,SQLTINYTEXT,FOLLOW_SQLTINYTEXT_in_columnType4588); 
                    SQLTINYTEXT65_tree = (Object)adaptor.create(SQLTINYTEXT65);
                    adaptor.addChild(root_0, SQLTINYTEXT65_tree);


                    }
                    break;
                case 29 :
                    // SQL.g:229:27: SQLVARCHAR
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLVARCHAR66=(Token)match(input,SQLVARCHAR,FOLLOW_SQLVARCHAR_in_columnType4616); 
                    SQLVARCHAR66_tree = (Object)adaptor.create(SQLVARCHAR66);
                    adaptor.addChild(root_0, SQLVARCHAR66_tree);


                    }
                    break;
                case 30 :
                    // SQL.g:230:27: SQLVARCHAR '(' INT ')'
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLVARCHAR67=(Token)match(input,SQLVARCHAR,FOLLOW_SQLVARCHAR_in_columnType4644); 
                    SQLVARCHAR67_tree = (Object)adaptor.create(SQLVARCHAR67);
                    adaptor.addChild(root_0, SQLVARCHAR67_tree);

                    char_literal68=(Token)match(input,75,FOLLOW_75_in_columnType4646); 
                    char_literal68_tree = (Object)adaptor.create(char_literal68);
                    adaptor.addChild(root_0, char_literal68_tree);

                    INT69=(Token)match(input,INT,FOLLOW_INT_in_columnType4648); 
                    INT69_tree = (Object)adaptor.create(INT69);
                    adaptor.addChild(root_0, INT69_tree);

                    char_literal70=(Token)match(input,76,FOLLOW_76_in_columnType4650); 
                    char_literal70_tree = (Object)adaptor.create(char_literal70);
                    adaptor.addChild(root_0, char_literal70_tree);


                    }
                    break;
                case 31 :
                    // SQL.g:231:27: SQLYEAR
                    {
                    root_0 = (Object)adaptor.nil();

                    SQLYEAR71=(Token)match(input,SQLYEAR,FOLLOW_SQLYEAR_in_columnType4678); 
                    SQLYEAR71_tree = (Object)adaptor.create(SQLYEAR71);
                    adaptor.addChild(root_0, SQLYEAR71_tree);


                    }
                    break;
                case 32 :
                    // SQL.g:232:27: 
                    {
                    root_0 = (Object)adaptor.nil();

                    }
                    break;

            }
            retval.stop = input.LT(-1);

            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
    	retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);

        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "columnType"

    public static class columnNameList_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "columnNameList"
    // SQL.g:234:1: columnNameList : ( '*' | ID ( ',' ID )* );
    public final SQLParser.columnNameList_return columnNameList() throws RecognitionException {
        SQLParser.columnNameList_return retval = new SQLParser.columnNameList_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token char_literal72=null;
        Token ID73=null;
        Token char_literal74=null;
        Token ID75=null;

        Object char_literal72_tree=null;
        Object ID73_tree=null;
        Object char_literal74_tree=null;
        Object ID75_tree=null;

        try {
            // SQL.g:234:25: ( '*' | ID ( ',' ID )* )
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==78) ) {
                alt4=1;
            }
            else if ( (LA4_0==ID) ) {
                alt4=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 4, 0, input);

                throw nvae;
            }
            switch (alt4) {
                case 1 :
                    // SQL.g:234:27: '*'
                    {
                    root_0 = (Object)adaptor.nil();

                    char_literal72=(Token)match(input,78,FOLLOW_78_in_columnNameList4722); 
                    char_literal72_tree = (Object)adaptor.create(char_literal72);
                    adaptor.addChild(root_0, char_literal72_tree);


                    }
                    break;
                case 2 :
                    // SQL.g:235:27: ID ( ',' ID )*
                    {
                    root_0 = (Object)adaptor.nil();

                    ID73=(Token)match(input,ID,FOLLOW_ID_in_columnNameList4750); 
                    ID73_tree = (Object)adaptor.create(ID73);
                    adaptor.addChild(root_0, ID73_tree);

                    // SQL.g:235:30: ( ',' ID )*
                    loop3:
                    do {
                        int alt3=2;
                        int LA3_0 = input.LA(1);

                        if ( (LA3_0==77) ) {
                            alt3=1;
                        }


                        switch (alt3) {
                    	case 1 :
                    	    // SQL.g:235:31: ',' ID
                    	    {
                    	    char_literal74=(Token)match(input,77,FOLLOW_77_in_columnNameList4753); 
                    	    char_literal74_tree = (Object)adaptor.create(char_literal74);
                    	    adaptor.addChild(root_0, char_literal74_tree);

                    	    ID75=(Token)match(input,ID,FOLLOW_ID_in_columnNameList4755); 
                    	    ID75_tree = (Object)adaptor.create(ID75);
                    	    adaptor.addChild(root_0, ID75_tree);


                    	    }
                    	    break;

                    	default :
                    	    break loop3;
                        }
                    } while (true);


                    }
                    break;

            }
            retval.stop = input.LT(-1);

            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
    	retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);

        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "columnNameList"

    public static class conditionSpecifierList_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "conditionSpecifierList"
    // SQL.g:238:1: conditionSpecifierList : ( NONSEMICOLON )* ( ';' )? ;
    public final SQLParser.conditionSpecifierList_return conditionSpecifierList() throws RecognitionException {
        SQLParser.conditionSpecifierList_return retval = new SQLParser.conditionSpecifierList_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token NONSEMICOLON76=null;
        Token char_literal77=null;

        Object NONSEMICOLON76_tree=null;
        Object char_literal77_tree=null;

        try {
            // SQL.g:238:25: ( ( NONSEMICOLON )* ( ';' )? )
            // SQL.g:238:27: ( NONSEMICOLON )* ( ';' )?
            {
            root_0 = (Object)adaptor.nil();

            // SQL.g:238:27: ( NONSEMICOLON )*
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( (LA5_0==NONSEMICOLON) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // SQL.g:238:28: NONSEMICOLON
            	    {
            	    NONSEMICOLON76=(Token)match(input,NONSEMICOLON,FOLLOW_NONSEMICOLON_in_conditionSpecifierList4792); 
            	    NONSEMICOLON76_tree = (Object)adaptor.create(NONSEMICOLON76);
            	    adaptor.addChild(root_0, NONSEMICOLON76_tree);


            	    }
            	    break;

            	default :
            	    break loop5;
                }
            } while (true);

            // SQL.g:238:43: ( ';' )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==79) ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // SQL.g:238:43: ';'
                    {
                    char_literal77=(Token)match(input,79,FOLLOW_79_in_conditionSpecifierList4796); 
                    char_literal77_tree = (Object)adaptor.create(char_literal77);
                    adaptor.addChild(root_0, char_literal77_tree);


                    }
                    break;

            }


            }

            retval.stop = input.LT(-1);

            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
    	retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);

        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "conditionSpecifierList"

    public static class selectStatement_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "selectStatement"
    // SQL.g:241:1: selectStatement : SQLSELECT columnNameList SQLFROM ID ( SQLWHERE conditionSpecifierList )? ;
    public final SQLParser.selectStatement_return selectStatement() throws RecognitionException {
        SQLParser.selectStatement_return retval = new SQLParser.selectStatement_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SQLSELECT78=null;
        Token SQLFROM80=null;
        Token ID81=null;
        Token SQLWHERE82=null;
        SQLParser.columnNameList_return columnNameList79 = null;

        SQLParser.conditionSpecifierList_return conditionSpecifierList83 = null;


        Object SQLSELECT78_tree=null;
        Object SQLFROM80_tree=null;
        Object ID81_tree=null;
        Object SQLWHERE82_tree=null;

        try {
            // SQL.g:241:25: ( SQLSELECT columnNameList SQLFROM ID ( SQLWHERE conditionSpecifierList )? )
            // SQL.g:241:27: SQLSELECT columnNameList SQLFROM ID ( SQLWHERE conditionSpecifierList )?
            {
            root_0 = (Object)adaptor.nil();

            SQLSELECT78=(Token)match(input,SQLSELECT,FOLLOW_SQLSELECT_in_selectStatement4838); 
            SQLSELECT78_tree = (Object)adaptor.create(SQLSELECT78);
            adaptor.addChild(root_0, SQLSELECT78_tree);

            pushFollow(FOLLOW_columnNameList_in_selectStatement4840);
            columnNameList79=columnNameList();

            state._fsp--;

            adaptor.addChild(root_0, columnNameList79.getTree());
            SQLFROM80=(Token)match(input,SQLFROM,FOLLOW_SQLFROM_in_selectStatement4842); 
            SQLFROM80_tree = (Object)adaptor.create(SQLFROM80);
            adaptor.addChild(root_0, SQLFROM80_tree);

            ID81=(Token)match(input,ID,FOLLOW_ID_in_selectStatement4844); 
            ID81_tree = (Object)adaptor.create(ID81);
            adaptor.addChild(root_0, ID81_tree);

            // SQL.g:241:63: ( SQLWHERE conditionSpecifierList )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==SQLWHERE) ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // SQL.g:241:64: SQLWHERE conditionSpecifierList
                    {
                    SQLWHERE82=(Token)match(input,SQLWHERE,FOLLOW_SQLWHERE_in_selectStatement4847); 
                    SQLWHERE82_tree = (Object)adaptor.create(SQLWHERE82);
                    adaptor.addChild(root_0, SQLWHERE82_tree);

                    pushFollow(FOLLOW_conditionSpecifierList_in_selectStatement4849);
                    conditionSpecifierList83=conditionSpecifierList();

                    state._fsp--;

                    adaptor.addChild(root_0, conditionSpecifierList83.getTree());

                    }
                    break;

            }


            }

            retval.stop = input.LT(-1);

            retval.tree = (Object)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
    	retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);

        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "selectStatement"

    // Delegated rules


    protected DFA2 dfa2 = new DFA2(this);
    static final String DFA2_eotS =
        "\53\uffff";
    static final String DFA2_eofS =
        "\1\26\1\30\1\uffff\1\32\2\uffff\1\34\1\36\1\40\1\42\3\uffff\1\44"+
        "\1\uffff\1\46\2\uffff\1\50\1\uffff\1\52\26\uffff";
    static final String DFA2_minS =
        "\1\44\1\113\1\uffff\1\113\2\uffff\4\113\3\uffff\1\113\1\uffff\1"+
        "\113\2\uffff\1\113\1\uffff\1\113\26\uffff";
    static final String DFA2_maxS =
        "\1\102\1\113\1\uffff\1\113\2\uffff\4\113\3\uffff\1\113\1\uffff"+
        "\1\113\2\uffff\1\113\1\uffff\1\113\26\uffff";
    static final String DFA2_acceptS =
        "\2\uffff\1\3\1\uffff\1\6\1\7\4\uffff\1\20\1\21\1\22\1\uffff\1\25"+
        "\1\uffff\1\30\1\31\1\uffff\1\34\1\uffff\1\37\1\40\1\2\1\1\1\5\1"+
        "\4\1\11\1\10\1\13\1\12\1\15\1\14\1\17\1\16\1\24\1\23\1\27\1\26\1"+
        "\33\1\32\1\36\1\35";
    static final String DFA2_specialS =
        "\53\uffff}>";
    static final String[] DFA2_transitionS = {
            "\1\1\1\2\1\3\1\uffff\1\4\1\5\1\6\1\7\1\10\1\uffff\1\11\1\uffff"+
            "\1\12\1\13\1\14\1\15\1\16\4\uffff\1\17\1\uffff\1\20\1\uffff"+
            "\1\21\1\22\1\23\1\24\1\uffff\1\25",
            "\1\27",
            "",
            "\1\31",
            "",
            "",
            "\1\33",
            "\1\35",
            "\1\37",
            "\1\41",
            "",
            "",
            "",
            "\1\43",
            "",
            "\1\45",
            "",
            "",
            "\1\47",
            "",
            "\1\51",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA2_eot = DFA.unpackEncodedString(DFA2_eotS);
    static final short[] DFA2_eof = DFA.unpackEncodedString(DFA2_eofS);
    static final char[] DFA2_min = DFA.unpackEncodedStringToUnsignedChars(DFA2_minS);
    static final char[] DFA2_max = DFA.unpackEncodedStringToUnsignedChars(DFA2_maxS);
    static final short[] DFA2_accept = DFA.unpackEncodedString(DFA2_acceptS);
    static final short[] DFA2_special = DFA.unpackEncodedString(DFA2_specialS);
    static final short[][] DFA2_transition;

    static {
        int numStates = DFA2_transitionS.length;
        DFA2_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA2_transition[i] = DFA.unpackEncodedString(DFA2_transitionS[i]);
        }
    }

    class DFA2 extends DFA {

        public DFA2(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 2;
            this.eot = DFA2_eot;
            this.eof = DFA2_eof;
            this.min = DFA2_min;
            this.max = DFA2_max;
            this.accept = DFA2_accept;
            this.special = DFA2_special;
            this.transition = DFA2_transition;
        }
        public String getDescription() {
            return "201:1: columnType : ( SQLBIGINT | SQLBIGINT '(' INT ')' | SQLBLOB | SQLCHAR | SQLCHAR '(' INT ')' | SQLDATE | SQLDATETIME | SQLDECIMAL | SQLDECIMAL '(' INT ',' INT ')' | SQLDOUBLE | SQLDOUBLE '(' INT ',' INT ')' | SQLFLOAT | SQLFLOAT '(' INT ',' INT ')' | SQLINT | SQLINT '(' INT ')' | SQLLONGBLOB | SQLLONGTEXT | SQLMEDIUMBLOB | SQLMEDIUMINT | SQLMEDIUMINT '(' INT ')' | SQLMEDIUMTEXT | SQLSMALLINT | SQLSMALLINT '(' INT ')' | SQLTEXT | SQLTIMESTAMP | SQLTINYINT | SQLTINYINT '(' INT ')' | SQLTINYTEXT | SQLVARCHAR | SQLVARCHAR '(' INT ')' | SQLYEAR | );";
        }
    }
 

    public static final BitSet FOLLOW_SQLNOT_in_columnConstraint3688 = new BitSet(new long[]{0x0040000000000000L});
    public static final BitSet FOLLOW_SQLNULL_in_columnConstraint3690 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLPRIMARY_in_columnConstraint3718 = new BitSet(new long[]{0x0000800000000000L});
    public static final BitSet FOLLOW_SQLKEY_in_columnConstraint3720 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLBIGINT_in_columnType3766 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLBIGINT_in_columnType3794 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_75_in_columnType3796 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_INT_in_columnType3798 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_76_in_columnType3800 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLBLOB_in_columnType3828 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLCHAR_in_columnType3856 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLCHAR_in_columnType3884 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_75_in_columnType3886 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_INT_in_columnType3888 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_76_in_columnType3890 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLDATE_in_columnType3918 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLDATETIME_in_columnType3946 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLDECIMAL_in_columnType3974 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLDECIMAL_in_columnType4002 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_75_in_columnType4004 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_INT_in_columnType4006 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
    public static final BitSet FOLLOW_77_in_columnType4008 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_INT_in_columnType4010 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_76_in_columnType4012 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLDOUBLE_in_columnType4040 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLDOUBLE_in_columnType4068 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_75_in_columnType4070 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_INT_in_columnType4072 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
    public static final BitSet FOLLOW_77_in_columnType4074 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_INT_in_columnType4076 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_76_in_columnType4078 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLFLOAT_in_columnType4106 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLFLOAT_in_columnType4134 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_75_in_columnType4136 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_INT_in_columnType4138 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
    public static final BitSet FOLLOW_77_in_columnType4140 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_INT_in_columnType4142 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_76_in_columnType4144 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLINT_in_columnType4172 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLINT_in_columnType4200 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_75_in_columnType4202 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_INT_in_columnType4204 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_76_in_columnType4206 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLLONGBLOB_in_columnType4234 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLLONGTEXT_in_columnType4262 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLMEDIUMBLOB_in_columnType4290 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLMEDIUMINT_in_columnType4318 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLMEDIUMINT_in_columnType4346 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_75_in_columnType4348 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_INT_in_columnType4350 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_76_in_columnType4352 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLMEDIUMTEXT_in_columnType4380 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLSMALLINT_in_columnType4408 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLSMALLINT_in_columnType4436 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_75_in_columnType4438 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_INT_in_columnType4440 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_76_in_columnType4442 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLTEXT_in_columnType4470 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLTIMESTAMP_in_columnType4498 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLTINYINT_in_columnType4526 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLTINYINT_in_columnType4554 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_75_in_columnType4556 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_INT_in_columnType4558 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_76_in_columnType4560 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLTINYTEXT_in_columnType4588 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLVARCHAR_in_columnType4616 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLVARCHAR_in_columnType4644 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
    public static final BitSet FOLLOW_75_in_columnType4646 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
    public static final BitSet FOLLOW_INT_in_columnType4648 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
    public static final BitSet FOLLOW_76_in_columnType4650 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLYEAR_in_columnType4678 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_78_in_columnNameList4722 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ID_in_columnNameList4750 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002000L});
    public static final BitSet FOLLOW_77_in_columnNameList4753 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_ID_in_columnNameList4755 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002000L});
    public static final BitSet FOLLOW_NONSEMICOLON_in_conditionSpecifierList4792 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008400L});
    public static final BitSet FOLLOW_79_in_conditionSpecifierList4796 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SQLSELECT_in_selectStatement4838 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004008L});
    public static final BitSet FOLLOW_columnNameList_in_selectStatement4840 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_SQLFROM_in_selectStatement4842 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
    public static final BitSet FOLLOW_ID_in_selectStatement4844 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
    public static final BitSet FOLLOW_SQLWHERE_in_selectStatement4847 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008400L});
    public static final BitSet FOLLOW_conditionSpecifierList_in_selectStatement4849 = new BitSet(new long[]{0x0000000000000002L});

}
Valid HTML 4.01 Valid CSS