Sophie

Sophie

distrib > Fedora > 14 > i386 > by-pkgid > abc3709154006bddd98f4d8af5d9d690 > files > 44

ant-antlr3-20110110-3.fc14.noarch.rpm

// $ANTLR 3.2 Sep 23, 2009 12:02:23 F:\\tmp\\antlr3-task - Kopie\\examples\\polydiff-netbeans\\polydiff\\grammar\\PolyDifferentiator.g 2011-01-08 18:26:14

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


public class PolyDifferentiator extends TreeParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "MULT", "INT", "ID", "WS", "'+'", "'^'"
    };
    public static final int WS=7;
    public static final int INT=5;
    public static final int MULT=4;
    public static final int ID=6;
    public static final int EOF=-1;
    public static final int T__9=9;
    public static final int T__8=8;

    // delegates
    // delegators


        public PolyDifferentiator(TreeNodeStream input) {
            this(input, new RecognizerSharedState());
        }
        public PolyDifferentiator(TreeNodeStream 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 PolyDifferentiator.tokenNames; }
    public String getGrammarFileName() { return "F:\\tmp\\antlr3-task - Kopie\\examples\\polydiff-netbeans\\polydiff\\grammar\\PolyDifferentiator.g"; }


    public static class poly_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "poly"
    // F:\\tmp\\antlr3-task - Kopie\\examples\\polydiff-netbeans\\polydiff\\grammar\\PolyDifferentiator.g:9:1: poly : ( ^( '+' poly poly ) | ^( MULT INT ID ) -> INT | ^( MULT c= INT ^( '^' ID e= INT ) ) -> ^( MULT[\"*\"] INT[c2] ^( '^' ID INT[e2] ) ) | ^( '^' ID e= INT ) -> ^( MULT[\"*\"] INT[c2] ^( '^' ID INT[e2] ) ) | INT -> INT[\"0\"] | ID -> INT[\"1\"] );
    public final PolyDifferentiator.poly_return poly() throws RecognitionException {
        PolyDifferentiator.poly_return retval = new PolyDifferentiator.poly_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree c=null;
        CommonTree e=null;
        CommonTree char_literal1=null;
        CommonTree MULT4=null;
        CommonTree INT5=null;
        CommonTree ID6=null;
        CommonTree MULT7=null;
        CommonTree char_literal8=null;
        CommonTree ID9=null;
        CommonTree char_literal10=null;
        CommonTree ID11=null;
        CommonTree INT12=null;
        CommonTree ID13=null;
        PolyDifferentiator.poly_return poly2 = null;

        PolyDifferentiator.poly_return poly3 = null;


        CommonTree c_tree=null;
        CommonTree e_tree=null;
        CommonTree char_literal1_tree=null;
        CommonTree MULT4_tree=null;
        CommonTree INT5_tree=null;
        CommonTree ID6_tree=null;
        CommonTree MULT7_tree=null;
        CommonTree char_literal8_tree=null;
        CommonTree ID9_tree=null;
        CommonTree char_literal10_tree=null;
        CommonTree ID11_tree=null;
        CommonTree INT12_tree=null;
        CommonTree ID13_tree=null;
        RewriteRuleNodeStream stream_INT=new RewriteRuleNodeStream(adaptor,"token INT");
        RewriteRuleNodeStream stream_MULT=new RewriteRuleNodeStream(adaptor,"token MULT");
        RewriteRuleNodeStream stream_ID=new RewriteRuleNodeStream(adaptor,"token ID");
        RewriteRuleNodeStream stream_9=new RewriteRuleNodeStream(adaptor,"token 9");

        try {
            // F:\\tmp\\antlr3-task - Kopie\\examples\\polydiff-netbeans\\polydiff\\grammar\\PolyDifferentiator.g:9:5: ( ^( '+' poly poly ) | ^( MULT INT ID ) -> INT | ^( MULT c= INT ^( '^' ID e= INT ) ) -> ^( MULT[\"*\"] INT[c2] ^( '^' ID INT[e2] ) ) | ^( '^' ID e= INT ) -> ^( MULT[\"*\"] INT[c2] ^( '^' ID INT[e2] ) ) | INT -> INT[\"0\"] | ID -> INT[\"1\"] )
            int alt1=6;
            alt1 = dfa1.predict(input);
            switch (alt1) {
                case 1 :
                    // F:\\tmp\\antlr3-task - Kopie\\examples\\polydiff-netbeans\\polydiff\\grammar\\PolyDifferentiator.g:9:7: ^( '+' poly poly )
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    char_literal1=(CommonTree)match(input,8,FOLLOW_8_in_poly35); 
                    char_literal1_tree = (CommonTree)adaptor.dupNode(char_literal1);

                    root_1 = (CommonTree)adaptor.becomeRoot(char_literal1_tree, root_1);



                    match(input, Token.DOWN, null); 
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_poly_in_poly37);
                    poly2=poly();

                    state._fsp--;

                    adaptor.addChild(root_1, poly2.getTree());
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_poly_in_poly39);
                    poly3=poly();

                    state._fsp--;

                    adaptor.addChild(root_1, poly3.getTree());

                    match(input, Token.UP, null); adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    }
                    break;
                case 2 :
                    // F:\\tmp\\antlr3-task - Kopie\\examples\\polydiff-netbeans\\polydiff\\grammar\\PolyDifferentiator.g:10:4: ^( MULT INT ID )
                    {
                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    MULT4=(CommonTree)match(input,MULT,FOLLOW_MULT_in_poly46);  
                    stream_MULT.add(MULT4);



                    match(input, Token.DOWN, null); 
                    _last = (CommonTree)input.LT(1);
                    INT5=(CommonTree)match(input,INT,FOLLOW_INT_in_poly48);  
                    stream_INT.add(INT5);

                    _last = (CommonTree)input.LT(1);
                    ID6=(CommonTree)match(input,ID,FOLLOW_ID_in_poly50);  
                    stream_ID.add(ID6);


                    match(input, Token.UP, null); adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }



                    // AST REWRITE
                    // elements: INT
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    // wildcard labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 10:20: -> INT
                    {
                        adaptor.addChild(root_0, stream_INT.nextNode());

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 3 :
                    // F:\\tmp\\antlr3-task - Kopie\\examples\\polydiff-netbeans\\polydiff\\grammar\\PolyDifferentiator.g:11:4: ^( MULT c= INT ^( '^' ID e= INT ) )
                    {
                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    MULT7=(CommonTree)match(input,MULT,FOLLOW_MULT_in_poly62);  
                    stream_MULT.add(MULT7);



                    match(input, Token.DOWN, null); 
                    _last = (CommonTree)input.LT(1);
                    c=(CommonTree)match(input,INT,FOLLOW_INT_in_poly66);  
                    stream_INT.add(c);

                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_2 = _last;
                    CommonTree _first_2 = null;
                    CommonTree root_2 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    char_literal8=(CommonTree)match(input,9,FOLLOW_9_in_poly69);  
                    stream_9.add(char_literal8);



                    match(input, Token.DOWN, null); 
                    _last = (CommonTree)input.LT(1);
                    ID9=(CommonTree)match(input,ID,FOLLOW_ID_in_poly71);  
                    stream_ID.add(ID9);

                    _last = (CommonTree)input.LT(1);
                    e=(CommonTree)match(input,INT,FOLLOW_INT_in_poly75);  
                    stream_INT.add(e);


                    match(input, Token.UP, null); adaptor.addChild(root_1, root_2);_last = _save_last_2;
                    }


                    match(input, Token.UP, null); adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    		String c2 = String.valueOf((c!=null?Integer.valueOf(c.getText()):0)*(e!=null?Integer.valueOf(e.getText()):0));
                    		String e2 = String.valueOf((e!=null?Integer.valueOf(e.getText()):0)-1);
                    		


                    // AST REWRITE
                    // elements: INT, 9, MULT, ID, INT
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    // wildcard labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 16:8: -> ^( MULT[\"*\"] INT[c2] ^( '^' ID INT[e2] ) )
                    {
                        // F:\\tmp\\antlr3-task - Kopie\\examples\\polydiff-netbeans\\polydiff\\grammar\\PolyDifferentiator.g:16:11: ^( MULT[\"*\"] INT[c2] ^( '^' ID INT[e2] ) )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MULT, "*"), root_1);

                        adaptor.addChild(root_1, (CommonTree)adaptor.create(INT, c2));
                        // F:\\tmp\\antlr3-task - Kopie\\examples\\polydiff-netbeans\\polydiff\\grammar\\PolyDifferentiator.g:16:31: ^( '^' ID INT[e2] )
                        {
                        CommonTree root_2 = (CommonTree)adaptor.nil();
                        root_2 = (CommonTree)adaptor.becomeRoot(stream_9.nextNode(), root_2);

                        adaptor.addChild(root_2, stream_ID.nextNode());
                        adaptor.addChild(root_2, (CommonTree)adaptor.create(INT, e2));

                        adaptor.addChild(root_1, root_2);
                        }

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 4 :
                    // F:\\tmp\\antlr3-task - Kopie\\examples\\polydiff-netbeans\\polydiff\\grammar\\PolyDifferentiator.g:17:4: ^( '^' ID e= INT )
                    {
                    _last = (CommonTree)input.LT(1);
                    {
                    CommonTree _save_last_1 = _last;
                    CommonTree _first_1 = null;
                    CommonTree root_1 = (CommonTree)adaptor.nil();_last = (CommonTree)input.LT(1);
                    char_literal10=(CommonTree)match(input,9,FOLLOW_9_in_poly113);  
                    stream_9.add(char_literal10);



                    match(input, Token.DOWN, null); 
                    _last = (CommonTree)input.LT(1);
                    ID11=(CommonTree)match(input,ID,FOLLOW_ID_in_poly115);  
                    stream_ID.add(ID11);

                    _last = (CommonTree)input.LT(1);
                    e=(CommonTree)match(input,INT,FOLLOW_INT_in_poly119);  
                    stream_INT.add(e);


                    match(input, Token.UP, null); adaptor.addChild(root_0, root_1);_last = _save_last_1;
                    }


                    		String c2 = String.valueOf((e!=null?Integer.valueOf(e.getText()):0));
                    		String e2 = String.valueOf((e!=null?Integer.valueOf(e.getText()):0)-1);
                    		


                    // AST REWRITE
                    // elements: INT, ID, INT, 9
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    // wildcard labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 22:8: -> ^( MULT[\"*\"] INT[c2] ^( '^' ID INT[e2] ) )
                    {
                        // F:\\tmp\\antlr3-task - Kopie\\examples\\polydiff-netbeans\\polydiff\\grammar\\PolyDifferentiator.g:22:11: ^( MULT[\"*\"] INT[c2] ^( '^' ID INT[e2] ) )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MULT, "*"), root_1);

                        adaptor.addChild(root_1, (CommonTree)adaptor.create(INT, c2));
                        // F:\\tmp\\antlr3-task - Kopie\\examples\\polydiff-netbeans\\polydiff\\grammar\\PolyDifferentiator.g:22:31: ^( '^' ID INT[e2] )
                        {
                        CommonTree root_2 = (CommonTree)adaptor.nil();
                        root_2 = (CommonTree)adaptor.becomeRoot(stream_9.nextNode(), root_2);

                        adaptor.addChild(root_2, stream_ID.nextNode());
                        adaptor.addChild(root_2, (CommonTree)adaptor.create(INT, e2));

                        adaptor.addChild(root_1, root_2);
                        }

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 5 :
                    // F:\\tmp\\antlr3-task - Kopie\\examples\\polydiff-netbeans\\polydiff\\grammar\\PolyDifferentiator.g:23:4: INT
                    {
                    _last = (CommonTree)input.LT(1);
                    INT12=(CommonTree)match(input,INT,FOLLOW_INT_in_poly155);  
                    stream_INT.add(INT12);



                    // AST REWRITE
                    // elements: INT
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    // wildcard labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 23:12: -> INT[\"0\"]
                    {
                        adaptor.addChild(root_0, (CommonTree)adaptor.create(INT, "0"));

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 6 :
                    // F:\\tmp\\antlr3-task - Kopie\\examples\\polydiff-netbeans\\polydiff\\grammar\\PolyDifferentiator.g:24:4: ID
                    {
                    _last = (CommonTree)input.LT(1);
                    ID13=(CommonTree)match(input,ID,FOLLOW_ID_in_poly169);  
                    stream_ID.add(ID13);



                    // AST REWRITE
                    // elements: 
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    // wildcard labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 24:11: -> INT[\"1\"]
                    {
                        adaptor.addChild(root_0, (CommonTree)adaptor.create(INT, "1"));

                    }

                    retval.tree = root_0;
                    }
                    break;

            }
            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "poly"

    // Delegated rules


    protected DFA1 dfa1 = new DFA1(this);
    static final String DFA1_eotS =
        "\12\uffff";
    static final String DFA1_eofS =
        "\12\uffff";
    static final String DFA1_minS =
        "\1\4\1\uffff\1\2\3\uffff\1\5\1\6\2\uffff";
    static final String DFA1_maxS =
        "\1\11\1\uffff\1\2\3\uffff\1\5\1\11\2\uffff";
    static final String DFA1_acceptS =
        "\1\uffff\1\1\1\uffff\1\4\1\5\1\6\2\uffff\1\2\1\3";
    static final String DFA1_specialS =
        "\12\uffff}>";
    static final String[] DFA1_transitionS = {
            "\1\2\1\4\1\5\1\uffff\1\1\1\3",
            "",
            "\1\6",
            "",
            "",
            "",
            "\1\7",
            "\1\10\2\uffff\1\11",
            "",
            ""
    };

    static final short[] DFA1_eot = DFA.unpackEncodedString(DFA1_eotS);
    static final short[] DFA1_eof = DFA.unpackEncodedString(DFA1_eofS);
    static final char[] DFA1_min = DFA.unpackEncodedStringToUnsignedChars(DFA1_minS);
    static final char[] DFA1_max = DFA.unpackEncodedStringToUnsignedChars(DFA1_maxS);
    static final short[] DFA1_accept = DFA.unpackEncodedString(DFA1_acceptS);
    static final short[] DFA1_special = DFA.unpackEncodedString(DFA1_specialS);
    static final short[][] DFA1_transition;

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

    class DFA1 extends DFA {

        public DFA1(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 1;
            this.eot = DFA1_eot;
            this.eof = DFA1_eof;
            this.min = DFA1_min;
            this.max = DFA1_max;
            this.accept = DFA1_accept;
            this.special = DFA1_special;
            this.transition = DFA1_transition;
        }
        public String getDescription() {
            return "9:1: poly : ( ^( '+' poly poly ) | ^( MULT INT ID ) -> INT | ^( MULT c= INT ^( '^' ID e= INT ) ) -> ^( MULT[\"*\"] INT[c2] ^( '^' ID INT[e2] ) ) | ^( '^' ID e= INT ) -> ^( MULT[\"*\"] INT[c2] ^( '^' ID INT[e2] ) ) | INT -> INT[\"0\"] | ID -> INT[\"1\"] );";
        }
    }
 

    public static final BitSet FOLLOW_8_in_poly35 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_poly_in_poly37 = new BitSet(new long[]{0x0000000000000370L});
    public static final BitSet FOLLOW_poly_in_poly39 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MULT_in_poly46 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_INT_in_poly48 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ID_in_poly50 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MULT_in_poly62 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_INT_in_poly66 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_9_in_poly69 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_ID_in_poly71 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_INT_in_poly75 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_9_in_poly113 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_ID_in_poly115 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_INT_in_poly119 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_INT_in_poly155 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ID_in_poly169 = new BitSet(new long[]{0x0000000000000002L});

}