// $ANTLR 3.3 Nov 30, 2010 12:45:30 /home/luca/NetBeansProjects/10.14/Calc_java.g 2011-02-05 02:10:38

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

public class Calc_javaLexer extends Lexer {
    public static final int EOF=-1;
    public static final int T__9=9;
    public static final int T__10=10;
    public static final int T__11=11;
    public static final int T__12=12;
    public static final int T__13=13;
    public static final int T__14=14;
    public static final int T__15=15;
    public static final int EXPR=4;
    public static final int PRINT=5;
    public static final int NUMBER=6;
    public static final int ID=7;
    public static final int WS=8;

    // delegates
    // delegators

    public Calc_javaLexer() {;} 
    public Calc_javaLexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public Calc_javaLexer(CharStream input, RecognizerSharedState state) {
        super(input,state);

    }
    public String getGrammarFileName() { return "/home/luca/NetBeansProjects/10.14/Calc_java.g"; }

    // $ANTLR start "T__9"
    public final void mT__9() throws RecognitionException {
        try {
            int _type = T__9;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:7:6: ( '+' )
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:7:8: '+'
            {
            match('+'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__9"

    // $ANTLR start "T__10"
    public final void mT__10() throws RecognitionException {
        try {
            int _type = T__10;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:8:7: ( '-' )
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:8:9: '-'
            {
            match('-'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__10"

    // $ANTLR start "T__11"
    public final void mT__11() throws RecognitionException {
        try {
            int _type = T__11;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:9:7: ( '*' )
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:9:9: '*'
            {
            match('*'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__11"

    // $ANTLR start "T__12"
    public final void mT__12() throws RecognitionException {
        try {
            int _type = T__12;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:10:7: ( '/' )
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:10:9: '/'
            {
            match('/'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__12"

    // $ANTLR start "T__13"
    public final void mT__13() throws RecognitionException {
        try {
            int _type = T__13;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:11:7: ( '(' )
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:11:9: '('
            {
            match('('); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__13"

    // $ANTLR start "T__14"
    public final void mT__14() throws RecognitionException {
        try {
            int _type = T__14;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:12:7: ( ')' )
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:12:9: ')'
            {
            match(')'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__14"

    // $ANTLR start "T__15"
    public final void mT__15() throws RecognitionException {
        try {
            int _type = T__15;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:13:7: ( '=' )
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:13:9: '='
            {
            match('='); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__15"

    // $ANTLR start "ID"
    public final void mID() throws RecognitionException {
        try {
            int _type = ID;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:56:4: ( ( 'a' .. 'z' | 'A' .. 'Z' )+ )
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:56:8: ( 'a' .. 'z' | 'A' .. 'Z' )+
            {
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:56:8: ( 'a' .. 'z' | 'A' .. 'Z' )+
            int cnt1=0;
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( ((LA1_0>='A' && LA1_0<='Z')||(LA1_0>='a' && LA1_0<='z')) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // /home/luca/NetBeansProjects/10.14/Calc_java.g:
            	    {
            	    if ( (input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) {
            	        input.consume();

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


            	    }
            	    break;

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


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ID"

    // $ANTLR start "NUMBER"
    public final void mNUMBER() throws RecognitionException {
        try {
            int _type = NUMBER;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:57:8: ( ( ( '0' .. '9' )* '.' )? ( '0' .. '9' )+ )
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:57:11: ( ( '0' .. '9' )* '.' )? ( '0' .. '9' )+
            {
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:57:11: ( ( '0' .. '9' )* '.' )?
            int alt3=2;
            alt3 = dfa3.predict(input);
            switch (alt3) {
                case 1 :
                    // /home/luca/NetBeansProjects/10.14/Calc_java.g:57:12: ( '0' .. '9' )* '.'
                    {
                    // /home/luca/NetBeansProjects/10.14/Calc_java.g:57:12: ( '0' .. '9' )*
                    loop2:
                    do {
                        int alt2=2;
                        int LA2_0 = input.LA(1);

                        if ( ((LA2_0>='0' && LA2_0<='9')) ) {
                            alt2=1;
                        }


                        switch (alt2) {
                    	case 1 :
                    	    // /home/luca/NetBeansProjects/10.14/Calc_java.g:57:13: '0' .. '9'
                    	    {
                    	    matchRange('0','9'); 

                    	    }
                    	    break;

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

                    match('.'); 

                    }
                    break;

            }

            // /home/luca/NetBeansProjects/10.14/Calc_java.g:57:31: ( '0' .. '9' )+
            int cnt4=0;
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

                if ( ((LA4_0>='0' && LA4_0<='9')) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // /home/luca/NetBeansProjects/10.14/Calc_java.g:57:32: '0' .. '9'
            	    {
            	    matchRange('0','9'); 

            	    }
            	    break;

            	default :
            	    if ( cnt4 >= 1 ) break loop4;
                        EarlyExitException eee =
                            new EarlyExitException(4, input);
                        throw eee;
                }
                cnt4++;
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NUMBER"

    // $ANTLR start "PRINT"
    public final void mPRINT() throws RecognitionException {
        try {
            int _type = PRINT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:58:7: ( ( ( '\\r' )? '\\n' ) | ';' )
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0=='\n'||LA6_0=='\r') ) {
                alt6=1;
            }
            else if ( (LA6_0==';') ) {
                alt6=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }
            switch (alt6) {
                case 1 :
                    // /home/luca/NetBeansProjects/10.14/Calc_java.g:58:9: ( ( '\\r' )? '\\n' )
                    {
                    // /home/luca/NetBeansProjects/10.14/Calc_java.g:58:9: ( ( '\\r' )? '\\n' )
                    // /home/luca/NetBeansProjects/10.14/Calc_java.g:58:10: ( '\\r' )? '\\n'
                    {
                    // /home/luca/NetBeansProjects/10.14/Calc_java.g:58:10: ( '\\r' )?
                    int alt5=2;
                    int LA5_0 = input.LA(1);

                    if ( (LA5_0=='\r') ) {
                        alt5=1;
                    }
                    switch (alt5) {
                        case 1 :
                            // /home/luca/NetBeansProjects/10.14/Calc_java.g:58:10: '\\r'
                            {
                            match('\r'); 

                            }
                            break;

                    }

                    match('\n'); 

                    }


                    }
                    break;
                case 2 :
                    // /home/luca/NetBeansProjects/10.14/Calc_java.g:58:24: ';'
                    {
                    match(';'); 

                    }
                    break;

            }
            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "PRINT"

    // $ANTLR start "WS"
    public final void mWS() throws RecognitionException {
        try {
            int _type = WS;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:59:4: ( ( ' ' | '\\t' )+ )
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:59:8: ( ' ' | '\\t' )+
            {
            // /home/luca/NetBeansProjects/10.14/Calc_java.g:59:8: ( ' ' | '\\t' )+
            int cnt7=0;
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( (LA7_0=='\t'||LA7_0==' ') ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // /home/luca/NetBeansProjects/10.14/Calc_java.g:
            	    {
            	    if ( input.LA(1)=='\t'||input.LA(1)==' ' ) {
            	        input.consume();

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


            	    }
            	    break;

            	default :
            	    if ( cnt7 >= 1 ) break loop7;
                        EarlyExitException eee =
                            new EarlyExitException(7, input);
                        throw eee;
                }
                cnt7++;
            } while (true);

            skip();

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WS"

    public void mTokens() throws RecognitionException {
        // /home/luca/NetBeansProjects/10.14/Calc_java.g:1:8: ( T__9 | T__10 | T__11 | T__12 | T__13 | T__14 | T__15 | ID | NUMBER | PRINT | WS )
        int alt8=11;
        switch ( input.LA(1) ) {
        case '+':
            {
            alt8=1;
            }
            break;
        case '-':
            {
            alt8=2;
            }
            break;
        case '*':
            {
            alt8=3;
            }
            break;
        case '/':
            {
            alt8=4;
            }
            break;
        case '(':
            {
            alt8=5;
            }
            break;
        case ')':
            {
            alt8=6;
            }
            break;
        case '=':
            {
            alt8=7;
            }
            break;
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z':
            {
            alt8=8;
            }
            break;
        case '.':
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
            {
            alt8=9;
            }
            break;
        case '\n':
        case '\r':
        case ';':
            {
            alt8=10;
            }
            break;
        case '\t':
        case ' ':
            {
            alt8=11;
            }
            break;
        default:
            NoViableAltException nvae =
                new NoViableAltException("", 8, 0, input);

            throw nvae;
        }

        switch (alt8) {
            case 1 :
                // /home/luca/NetBeansProjects/10.14/Calc_java.g:1:10: T__9
                {
                mT__9(); 

                }
                break;
            case 2 :
                // /home/luca/NetBeansProjects/10.14/Calc_java.g:1:15: T__10
                {
                mT__10(); 

                }
                break;
            case 3 :
                // /home/luca/NetBeansProjects/10.14/Calc_java.g:1:21: T__11
                {
                mT__11(); 

                }
                break;
            case 4 :
                // /home/luca/NetBeansProjects/10.14/Calc_java.g:1:27: T__12
                {
                mT__12(); 

                }
                break;
            case 5 :
                // /home/luca/NetBeansProjects/10.14/Calc_java.g:1:33: T__13
                {
                mT__13(); 

                }
                break;
            case 6 :
                // /home/luca/NetBeansProjects/10.14/Calc_java.g:1:39: T__14
                {
                mT__14(); 

                }
                break;
            case 7 :
                // /home/luca/NetBeansProjects/10.14/Calc_java.g:1:45: T__15
                {
                mT__15(); 

                }
                break;
            case 8 :
                // /home/luca/NetBeansProjects/10.14/Calc_java.g:1:51: ID
                {
                mID(); 

                }
                break;
            case 9 :
                // /home/luca/NetBeansProjects/10.14/Calc_java.g:1:54: NUMBER
                {
                mNUMBER(); 

                }
                break;
            case 10 :
                // /home/luca/NetBeansProjects/10.14/Calc_java.g:1:61: PRINT
                {
                mPRINT(); 

                }
                break;
            case 11 :
                // /home/luca/NetBeansProjects/10.14/Calc_java.g:1:67: WS
                {
                mWS(); 

                }
                break;

        }

    }


    protected DFA3 dfa3 = new DFA3(this);
    static final String DFA3_eotS =
        "\1\uffff\1\3\2\uffff";
    static final String DFA3_eofS =
        "\4\uffff";
    static final String DFA3_minS =
        "\2\56\2\uffff";
    static final String DFA3_maxS =
        "\2\71\2\uffff";
    static final String DFA3_acceptS =
        "\2\uffff\1\1\1\2";
    static final String DFA3_specialS =
        "\4\uffff}>";
    static final String[] DFA3_transitionS = {
            "\1\2\1\uffff\12\1",
            "\1\2\1\uffff\12\1",
            "",
            ""
    };

    static final short[] DFA3_eot = DFA.unpackEncodedString(DFA3_eotS);
    static final short[] DFA3_eof = DFA.unpackEncodedString(DFA3_eofS);
    static final char[] DFA3_min = DFA.unpackEncodedStringToUnsignedChars(DFA3_minS);
    static final char[] DFA3_max = DFA.unpackEncodedStringToUnsignedChars(DFA3_maxS);
    static final short[] DFA3_accept = DFA.unpackEncodedString(DFA3_acceptS);
    static final short[] DFA3_special = DFA.unpackEncodedString(DFA3_specialS);
    static final short[][] DFA3_transition;

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

    class DFA3 extends DFA {

        public DFA3(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 3;
            this.eot = DFA3_eot;
            this.eof = DFA3_eof;
            this.min = DFA3_min;
            this.max = DFA3_max;
            this.accept = DFA3_accept;
            this.special = DFA3_special;
            this.transition = DFA3_transition;
        }
        public String getDescription() {
            return "57:11: ( ( '0' .. '9' )* '.' )?";
        }
    }
 

}