// $ANTLR 3.0.1 Cql.g3 2012-10-29 21:37:07

	package eu.dnetlib.utils.cql;


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

public class CqlLexer extends Lexer {
    public static final int PROX=7;
    public static final int WHITESPACE=13;
    public static final int NOT=6;
    public static final int AND=4;
    public static final int Tokens=23;
    public static final int EOF=-1;
    public static final int T22=22;
    public static final int T21=21;
    public static final int T20=20;
    public static final int QUOTE=12;
    public static final int IDENTIFIER=10;
    public static final int OR=5;
    public static final int WITHIN=8;
    public static final int EXACT=9;
    public static final int T14=14;
    public static final int T15=15;
    public static final int T16=16;
    public static final int T17=17;
    public static final int T18=18;
    public static final int T19=19;
    public static final int STRING=11;

      @Override
      public void reportError(RecognitionException e) {
        throw new CqlRuntimeException("Lexer Error", e);
      }

    public CqlLexer() {;} 
    public CqlLexer(CharStream input) {
        super(input);
    }
    public String getGrammarFileName() { return "Cql.g3"; }

    // $ANTLR start T14
    public final void mT14() throws RecognitionException {
        try {
            int _type = T14;
            // Cql.g3:16:5: ( '>' )
            // Cql.g3:16:7: '>'
            {
            match('>'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T14

    // $ANTLR start T15
    public final void mT15() throws RecognitionException {
        try {
            int _type = T15;
            // Cql.g3:17:5: ( '=' )
            // Cql.g3:17:7: '='
            {
            match('='); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T15

    // $ANTLR start T16
    public final void mT16() throws RecognitionException {
        try {
            int _type = T16;
            // Cql.g3:18:5: ( '/' )
            // Cql.g3:18:7: '/'
            {
            match('/'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T16

    // $ANTLR start T17
    public final void mT17() throws RecognitionException {
        try {
            int _type = T17;
            // Cql.g3:19:5: ( '(' )
            // Cql.g3:19:7: '('
            {
            match('('); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T17

    // $ANTLR start T18
    public final void mT18() throws RecognitionException {
        try {
            int _type = T18;
            // Cql.g3:20:5: ( ')' )
            // Cql.g3:20:7: ')'
            {
            match(')'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T18

    // $ANTLR start T19
    public final void mT19() throws RecognitionException {
        try {
            int _type = T19;
            // Cql.g3:21:5: ( '<' )
            // Cql.g3:21:7: '<'
            {
            match('<'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T19

    // $ANTLR start T20
    public final void mT20() throws RecognitionException {
        try {
            int _type = T20;
            // Cql.g3:22:5: ( '>=' )
            // Cql.g3:22:7: '>='
            {
            match(">="); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T20

    // $ANTLR start T21
    public final void mT21() throws RecognitionException {
        try {
            int _type = T21;
            // Cql.g3:23:5: ( '<=' )
            // Cql.g3:23:7: '<='
            {
            match("<="); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T21

    // $ANTLR start T22
    public final void mT22() throws RecognitionException {
        try {
            int _type = T22;
            // Cql.g3:24:5: ( '<>' )
            // Cql.g3:24:7: '<>'
            {
            match("<>"); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end T22

    // $ANTLR start QUOTE
    public final void mQUOTE() throws RecognitionException {
        try {
            int _type = QUOTE;
            // Cql.g3:116:7: ( '\"' )
            // Cql.g3:116:9: '\"'
            {
            match('\"'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end QUOTE

    // $ANTLR start WHITESPACE
    public final void mWHITESPACE() throws RecognitionException {
        try {
            int _type = WHITESPACE;
            // Cql.g3:117:12: ( ( ' ' | '\\t' | '\\r' | '\\n' | '\\f' ) )
            // Cql.g3:117:14: ( ' ' | '\\t' | '\\r' | '\\n' | '\\f' )
            {
            if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||(input.LA(1)>='\f' && input.LA(1)<='\r')||input.LA(1)==' ' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            skip();

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end WHITESPACE

    // $ANTLR start STRING
    public final void mSTRING() throws RecognitionException {
        try {
            int _type = STRING;
            // Cql.g3:127:8: ( QUOTE ( '\\\\' QUOTE | ~ ( QUOTE ) )* QUOTE )
            // Cql.g3:128:3: QUOTE ( '\\\\' QUOTE | ~ ( QUOTE ) )* QUOTE
            {
            mQUOTE(); 
            // Cql.g3:128:10: ( '\\\\' QUOTE | ~ ( QUOTE ) )*
            loop1:
            do {
                int alt1=3;
                int LA1_0 = input.LA(1);

                if ( (LA1_0=='\\') ) {
                    int LA1_2 = input.LA(2);

                    if ( (LA1_2=='\"') ) {
                        int LA1_4 = input.LA(3);

                        if ( ((LA1_4>='\u0000' && LA1_4<='\uFFFE')) ) {
                            alt1=1;
                        }

                        else {
                            alt1=2;
                        }

                    }
                    else if ( ((LA1_2>='\u0000' && LA1_2<='!')||(LA1_2>='#' && LA1_2<='\uFFFE')) ) {
                        alt1=2;
                    }


                }
                else if ( ((LA1_0>='\u0000' && LA1_0<='!')||(LA1_0>='#' && LA1_0<='[')||(LA1_0>=']' && LA1_0<='\uFFFE')) ) {
                    alt1=2;
                }


                switch (alt1) {
            	case 1 :
            	    // Cql.g3:128:12: '\\\\' QUOTE
            	    {
            	    match('\\'); 
            	    mQUOTE(); 

            	    }
            	    break;
            	case 2 :
            	    // Cql.g3:128:26: ~ ( QUOTE )
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='\uFFFE') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse =
            	            new MismatchedSetException(null,input);
            	        recover(mse);    throw mse;
            	    }


            	    }
            	    break;

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

            mQUOTE(); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end STRING

    // $ANTLR start AND
    public final void mAND() throws RecognitionException {
        try {
            int _type = AND;
            // Cql.g3:130:5: ( ( 'A' | 'a' ) ( 'N' | 'n' ) ( 'D' | 'd' ) )
            // Cql.g3:130:7: ( 'A' | 'a' ) ( 'N' | 'n' ) ( 'D' | 'd' )
            {
            if ( input.LA(1)=='A'||input.LA(1)=='a' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='N'||input.LA(1)=='n' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='D'||input.LA(1)=='d' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end AND

    // $ANTLR start OR
    public final void mOR() throws RecognitionException {
        try {
            int _type = OR;
            // Cql.g3:131:4: ( ( 'O' | 'o' ) ( 'R' | 'r' ) )
            // Cql.g3:131:6: ( 'O' | 'o' ) ( 'R' | 'r' )
            {
            if ( input.LA(1)=='O'||input.LA(1)=='o' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='R'||input.LA(1)=='r' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end OR

    // $ANTLR start NOT
    public final void mNOT() throws RecognitionException {
        try {
            int _type = NOT;
            // Cql.g3:132:5: ( ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'T' | 't' ) )
            // Cql.g3:132:7: ( 'N' | 'n' ) ( 'O' | 'o' ) ( 'T' | 't' )
            {
            if ( input.LA(1)=='N'||input.LA(1)=='n' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='O'||input.LA(1)=='o' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='T'||input.LA(1)=='t' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end NOT

    // $ANTLR start PROX
    public final void mPROX() throws RecognitionException {
        try {
            int _type = PROX;
            // Cql.g3:133:6: ( ( 'P' | 'p' ) ( 'R' | 'r' ) ( 'O' | 'o' ) ( 'X' | 'x' ) )
            // Cql.g3:133:8: ( 'P' | 'p' ) ( 'R' | 'r' ) ( 'O' | 'o' ) ( 'X' | 'x' )
            {
            if ( input.LA(1)=='P'||input.LA(1)=='p' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='R'||input.LA(1)=='r' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='O'||input.LA(1)=='o' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='X'||input.LA(1)=='x' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end PROX

    // $ANTLR start WITHIN
    public final void mWITHIN() throws RecognitionException {
        try {
            int _type = WITHIN;
            // Cql.g3:134:8: ( ( 'W' | 'w' ) ( 'I' | 'i' ) ( 'T' | 't' ) ( 'H' | 'h' ) ( 'I' | 'i' ) ( 'N' | 'n' ) )
            // Cql.g3:134:10: ( 'W' | 'w' ) ( 'I' | 'i' ) ( 'T' | 't' ) ( 'H' | 'h' ) ( 'I' | 'i' ) ( 'N' | 'n' )
            {
            if ( input.LA(1)=='W'||input.LA(1)=='w' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='I'||input.LA(1)=='i' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='T'||input.LA(1)=='t' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='H'||input.LA(1)=='h' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='I'||input.LA(1)=='i' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='N'||input.LA(1)=='n' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end WITHIN

    // $ANTLR start EXACT
    public final void mEXACT() throws RecognitionException {
        try {
            int _type = EXACT;
            // Cql.g3:136:7: ( ( 'E' | 'e' ) ( 'X' | 'x' ) ( 'A' | 'a' ) ( 'C' | 'c' ) ( 'T' | 't' ) )
            // Cql.g3:136:9: ( 'E' | 'e' ) ( 'X' | 'x' ) ( 'A' | 'a' ) ( 'C' | 'c' ) ( 'T' | 't' )
            {
            if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='X'||input.LA(1)=='x' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='A'||input.LA(1)=='a' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='C'||input.LA(1)=='c' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

            if ( input.LA(1)=='T'||input.LA(1)=='t' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end EXACT

    // $ANTLR start IDENTIFIER
    public final void mIDENTIFIER() throws RecognitionException {
        try {
            int _type = IDENTIFIER;
            // Cql.g3:150:12: ( (~ ( ' ' | '\\t' | '\\r' | '\\n' | '\\f' | '(' | ')' | '=' | '<' | '>' | '/' | '\"' ) )+ )
            // Cql.g3:151:3: (~ ( ' ' | '\\t' | '\\r' | '\\n' | '\\f' | '(' | ')' | '=' | '<' | '>' | '/' | '\"' ) )+
            {
            // Cql.g3:151:3: (~ ( ' ' | '\\t' | '\\r' | '\\n' | '\\f' | '(' | ')' | '=' | '<' | '>' | '/' | '\"' ) )+
            int cnt2=0;
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( ((LA2_0>='\u0000' && LA2_0<='\b')||LA2_0=='\u000B'||(LA2_0>='\u000E' && LA2_0<='\u001F')||LA2_0=='!'||(LA2_0>='#' && LA2_0<='\'')||(LA2_0>='*' && LA2_0<='.')||(LA2_0>='0' && LA2_0<=';')||(LA2_0>='?' && LA2_0<='\uFFFE')) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // Cql.g3:151:5: ~ ( ' ' | '\\t' | '\\r' | '\\n' | '\\f' | '(' | ')' | '=' | '<' | '>' | '/' | '\"' )
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\b')||input.LA(1)=='\u000B'||(input.LA(1)>='\u000E' && input.LA(1)<='\u001F')||input.LA(1)=='!'||(input.LA(1)>='#' && input.LA(1)<='\'')||(input.LA(1)>='*' && input.LA(1)<='.')||(input.LA(1)>='0' && input.LA(1)<=';')||(input.LA(1)>='?' && input.LA(1)<='\uFFFE') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse =
            	            new MismatchedSetException(null,input);
            	        recover(mse);    throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt2 >= 1 ) break loop2;
                        EarlyExitException eee =
                            new EarlyExitException(2, input);
                        throw eee;
                }
                cnt2++;
            } while (true);


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end IDENTIFIER

    public void mTokens() throws RecognitionException {
        // Cql.g3:1:8: ( T14 | T15 | T16 | T17 | T18 | T19 | T20 | T21 | T22 | QUOTE | WHITESPACE | STRING | AND | OR | NOT | PROX | WITHIN | EXACT | IDENTIFIER )
        int alt3=19;
        int LA3_0 = input.LA(1);

        if ( (LA3_0=='>') ) {
            int LA3_1 = input.LA(2);

            if ( (LA3_1=='=') ) {
                alt3=7;
            }
            else {
                alt3=1;}
        }
        else if ( (LA3_0=='=') ) {
            alt3=2;
        }
        else if ( (LA3_0=='/') ) {
            alt3=3;
        }
        else if ( (LA3_0=='(') ) {
            alt3=4;
        }
        else if ( (LA3_0==')') ) {
            alt3=5;
        }
        else if ( (LA3_0=='<') ) {
            switch ( input.LA(2) ) {
            case '=':
                {
                alt3=8;
                }
                break;
            case '>':
                {
                alt3=9;
                }
                break;
            default:
                alt3=6;}

        }
        else if ( (LA3_0=='\"') ) {
            int LA3_7 = input.LA(2);

            if ( ((LA3_7>='\u0000' && LA3_7<='\uFFFE')) ) {
                alt3=12;
            }
            else {
                alt3=10;}
        }
        else if ( ((LA3_0>='\t' && LA3_0<='\n')||(LA3_0>='\f' && LA3_0<='\r')||LA3_0==' ') ) {
            alt3=11;
        }
        else if ( (LA3_0=='A'||LA3_0=='a') ) {
            int LA3_9 = input.LA(2);

            if ( (LA3_9=='N'||LA3_9=='n') ) {
                int LA3_23 = input.LA(3);

                if ( (LA3_23=='D'||LA3_23=='d') ) {
                    int LA3_29 = input.LA(4);

                    if ( ((LA3_29>='\u0000' && LA3_29<='\b')||LA3_29=='\u000B'||(LA3_29>='\u000E' && LA3_29<='\u001F')||LA3_29=='!'||(LA3_29>='#' && LA3_29<='\'')||(LA3_29>='*' && LA3_29<='.')||(LA3_29>='0' && LA3_29<=';')||(LA3_29>='?' && LA3_29<='\uFFFE')) ) {
                        alt3=19;
                    }
                    else {
                        alt3=13;}
                }
                else {
                    alt3=19;}
            }
            else {
                alt3=19;}
        }
        else if ( (LA3_0=='O'||LA3_0=='o') ) {
            int LA3_10 = input.LA(2);

            if ( (LA3_10=='R'||LA3_10=='r') ) {
                int LA3_24 = input.LA(3);

                if ( ((LA3_24>='\u0000' && LA3_24<='\b')||LA3_24=='\u000B'||(LA3_24>='\u000E' && LA3_24<='\u001F')||LA3_24=='!'||(LA3_24>='#' && LA3_24<='\'')||(LA3_24>='*' && LA3_24<='.')||(LA3_24>='0' && LA3_24<=';')||(LA3_24>='?' && LA3_24<='\uFFFE')) ) {
                    alt3=19;
                }
                else {
                    alt3=14;}
            }
            else {
                alt3=19;}
        }
        else if ( (LA3_0=='N'||LA3_0=='n') ) {
            int LA3_11 = input.LA(2);

            if ( (LA3_11=='O'||LA3_11=='o') ) {
                int LA3_25 = input.LA(3);

                if ( (LA3_25=='T'||LA3_25=='t') ) {
                    int LA3_31 = input.LA(4);

                    if ( ((LA3_31>='\u0000' && LA3_31<='\b')||LA3_31=='\u000B'||(LA3_31>='\u000E' && LA3_31<='\u001F')||LA3_31=='!'||(LA3_31>='#' && LA3_31<='\'')||(LA3_31>='*' && LA3_31<='.')||(LA3_31>='0' && LA3_31<=';')||(LA3_31>='?' && LA3_31<='\uFFFE')) ) {
                        alt3=19;
                    }
                    else {
                        alt3=15;}
                }
                else {
                    alt3=19;}
            }
            else {
                alt3=19;}
        }
        else if ( (LA3_0=='P'||LA3_0=='p') ) {
            int LA3_12 = input.LA(2);

            if ( (LA3_12=='R'||LA3_12=='r') ) {
                int LA3_26 = input.LA(3);

                if ( (LA3_26=='O'||LA3_26=='o') ) {
                    int LA3_32 = input.LA(4);

                    if ( (LA3_32=='X'||LA3_32=='x') ) {
                        int LA3_37 = input.LA(5);

                        if ( ((LA3_37>='\u0000' && LA3_37<='\b')||LA3_37=='\u000B'||(LA3_37>='\u000E' && LA3_37<='\u001F')||LA3_37=='!'||(LA3_37>='#' && LA3_37<='\'')||(LA3_37>='*' && LA3_37<='.')||(LA3_37>='0' && LA3_37<=';')||(LA3_37>='?' && LA3_37<='\uFFFE')) ) {
                            alt3=19;
                        }
                        else {
                            alt3=16;}
                    }
                    else {
                        alt3=19;}
                }
                else {
                    alt3=19;}
            }
            else {
                alt3=19;}
        }
        else if ( (LA3_0=='W'||LA3_0=='w') ) {
            int LA3_13 = input.LA(2);

            if ( (LA3_13=='I'||LA3_13=='i') ) {
                int LA3_27 = input.LA(3);

                if ( (LA3_27=='T'||LA3_27=='t') ) {
                    int LA3_33 = input.LA(4);

                    if ( (LA3_33=='H'||LA3_33=='h') ) {
                        int LA3_38 = input.LA(5);

                        if ( (LA3_38=='I'||LA3_38=='i') ) {
                            int LA3_41 = input.LA(6);

                            if ( (LA3_41=='N'||LA3_41=='n') ) {
                                int LA3_43 = input.LA(7);

                                if ( ((LA3_43>='\u0000' && LA3_43<='\b')||LA3_43=='\u000B'||(LA3_43>='\u000E' && LA3_43<='\u001F')||LA3_43=='!'||(LA3_43>='#' && LA3_43<='\'')||(LA3_43>='*' && LA3_43<='.')||(LA3_43>='0' && LA3_43<=';')||(LA3_43>='?' && LA3_43<='\uFFFE')) ) {
                                    alt3=19;
                                }
                                else {
                                    alt3=17;}
                            }
                            else {
                                alt3=19;}
                        }
                        else {
                            alt3=19;}
                    }
                    else {
                        alt3=19;}
                }
                else {
                    alt3=19;}
            }
            else {
                alt3=19;}
        }
        else if ( (LA3_0=='E'||LA3_0=='e') ) {
            int LA3_14 = input.LA(2);

            if ( (LA3_14=='X'||LA3_14=='x') ) {
                int LA3_28 = input.LA(3);

                if ( (LA3_28=='A'||LA3_28=='a') ) {
                    int LA3_34 = input.LA(4);

                    if ( (LA3_34=='C'||LA3_34=='c') ) {
                        int LA3_39 = input.LA(5);

                        if ( (LA3_39=='T'||LA3_39=='t') ) {
                            int LA3_42 = input.LA(6);

                            if ( ((LA3_42>='\u0000' && LA3_42<='\b')||LA3_42=='\u000B'||(LA3_42>='\u000E' && LA3_42<='\u001F')||LA3_42=='!'||(LA3_42>='#' && LA3_42<='\'')||(LA3_42>='*' && LA3_42<='.')||(LA3_42>='0' && LA3_42<=';')||(LA3_42>='?' && LA3_42<='\uFFFE')) ) {
                                alt3=19;
                            }
                            else {
                                alt3=18;}
                        }
                        else {
                            alt3=19;}
                    }
                    else {
                        alt3=19;}
                }
                else {
                    alt3=19;}
            }
            else {
                alt3=19;}
        }
        else if ( ((LA3_0>='\u0000' && LA3_0<='\b')||LA3_0=='\u000B'||(LA3_0>='\u000E' && LA3_0<='\u001F')||LA3_0=='!'||(LA3_0>='#' && LA3_0<='\'')||(LA3_0>='*' && LA3_0<='.')||(LA3_0>='0' && LA3_0<=';')||(LA3_0>='?' && LA3_0<='@')||(LA3_0>='B' && LA3_0<='D')||(LA3_0>='F' && LA3_0<='M')||(LA3_0>='Q' && LA3_0<='V')||(LA3_0>='X' && LA3_0<='`')||(LA3_0>='b' && LA3_0<='d')||(LA3_0>='f' && LA3_0<='m')||(LA3_0>='q' && LA3_0<='v')||(LA3_0>='x' && LA3_0<='\uFFFE')) ) {
            alt3=19;
        }
        else {
            NoViableAltException nvae =
                new NoViableAltException("1:1: Tokens : ( T14 | T15 | T16 | T17 | T18 | T19 | T20 | T21 | T22 | QUOTE | WHITESPACE | STRING | AND | OR | NOT | PROX | WITHIN | EXACT | IDENTIFIER );", 3, 0, input);

            throw nvae;
        }
        switch (alt3) {
            case 1 :
                // Cql.g3:1:10: T14
                {
                mT14(); 

                }
                break;
            case 2 :
                // Cql.g3:1:14: T15
                {
                mT15(); 

                }
                break;
            case 3 :
                // Cql.g3:1:18: T16
                {
                mT16(); 

                }
                break;
            case 4 :
                // Cql.g3:1:22: T17
                {
                mT17(); 

                }
                break;
            case 5 :
                // Cql.g3:1:26: T18
                {
                mT18(); 

                }
                break;
            case 6 :
                // Cql.g3:1:30: T19
                {
                mT19(); 

                }
                break;
            case 7 :
                // Cql.g3:1:34: T20
                {
                mT20(); 

                }
                break;
            case 8 :
                // Cql.g3:1:38: T21
                {
                mT21(); 

                }
                break;
            case 9 :
                // Cql.g3:1:42: T22
                {
                mT22(); 

                }
                break;
            case 10 :
                // Cql.g3:1:46: QUOTE
                {
                mQUOTE(); 

                }
                break;
            case 11 :
                // Cql.g3:1:52: WHITESPACE
                {
                mWHITESPACE(); 

                }
                break;
            case 12 :
                // Cql.g3:1:63: STRING
                {
                mSTRING(); 

                }
                break;
            case 13 :
                // Cql.g3:1:70: AND
                {
                mAND(); 

                }
                break;
            case 14 :
                // Cql.g3:1:74: OR
                {
                mOR(); 

                }
                break;
            case 15 :
                // Cql.g3:1:77: NOT
                {
                mNOT(); 

                }
                break;
            case 16 :
                // Cql.g3:1:81: PROX
                {
                mPROX(); 

                }
                break;
            case 17 :
                // Cql.g3:1:86: WITHIN
                {
                mWITHIN(); 

                }
                break;
            case 18 :
                // Cql.g3:1:93: EXACT
                {
                mEXACT(); 

                }
                break;
            case 19 :
                // Cql.g3:1:99: IDENTIFIER
                {
                mIDENTIFIER(); 

                }
                break;

        }

    }


 

}