public void CheckRRSubtreeStreamBehaviourWithElements()
        {
            RewriteRuleSubtreeStream subtreeTest =
                new RewriteRuleSubtreeStream(CreateTreeAdaptor(),
                                             "RewriteRuleSubtreeStream test");

            IToken token1 = CreateToken(1, "test token without any real context");
            ITree  tree1  = CreateTree(token1);

            // Test Add()
            subtreeTest.Add(tree1);
            Assert.AreEqual(1, subtreeTest.Size(), "subtreeTest should have the size 1 (1).");
            Assert.IsTrue(subtreeTest.HasNext(), "HasNext() should be true here (1).");

            // Test NextNode()
            Assert.AreEqual(tree1, (ITree)subtreeTest.NextNode(),
                            "The returned tree should be equal to the given tree (1).");
            Assert.AreEqual(1, subtreeTest.Size(), "subtreeTest should have the size 1 (2).");
            Assert.IsFalse(subtreeTest.HasNext(), "HasNext() should be false here (1).");
            subtreeTest.Reset();
            Assert.AreEqual(1, subtreeTest.Size(), "subtreeTest should have the size 1 (3).");
            Assert.IsTrue(subtreeTest.HasNext(), "HasNext() should be true here (2).");

            // Test NextTree()
            CommonTree returnedTree = (CommonTree)subtreeTest.NextTree();

            Assert.AreEqual(token1, returnedTree.Token,
                            "The returned token should be equal to the given token (3).");
            Assert.AreEqual(1, subtreeTest.Size(), "subtreeTest should have the size 1 (4).");
            Assert.IsFalse(subtreeTest.HasNext(), "HasNext() should be false here (2).");
            subtreeTest.Reset();
            Assert.AreEqual(1, subtreeTest.Size(), "subtreeTest should have the size 1 (5).");
            Assert.IsTrue(subtreeTest.HasNext(), "HasNext() should be true here (3).");

            // Test, what happens with two elements
            IToken token2 = CreateToken(2, "test token without any real context");
            ITree  tree2  = CreateTree(token2);

            subtreeTest.Add(tree2);
            Assert.AreEqual(2, subtreeTest.Size(), "subtreeTest should have the size 2 (1).");
            Assert.IsTrue(subtreeTest.HasNext(), "HasNext() should be true here (4).");
            returnedTree = (CommonTree)subtreeTest.NextTree();
            Assert.AreEqual(token1, returnedTree.Token,
                            "The returned token should be equal to the given token (4).");
            Assert.AreEqual(2, subtreeTest.Size(), "subtreeTest should have the size 2 (2).");
            Assert.IsTrue(subtreeTest.HasNext(), "HasNext() should be true here (5).");
            returnedTree = (CommonTree)subtreeTest.NextTree();
            Assert.AreEqual(token2, returnedTree.Token,
                            "The returned token should be equal to the given token (5).");
            Assert.IsFalse(subtreeTest.HasNext(), "HasNext() should be false here (3).");

            // Test exception
            subtreeTest.NextTree();
        }
        public void CheckRRSubtreeStreamBehaviourWhileEmpty1()
        {
            string description = "RewriteRuleSubtreeStream test";
            RewriteRuleSubtreeStream subtreeTest =
                new RewriteRuleSubtreeStream(CreateTreeAdaptor(), description);

            Assert.IsFalse(subtreeTest.HasNext(), "HasNext() has to give back false here.");
            Assert.AreEqual(description.ToString(), subtreeTest.Description,
                            "Description strings should be equal.");
            Assert.AreEqual(0, subtreeTest.Size(), "The number of elements should be zero.");
            subtreeTest.Reset();
            Assert.IsTrue(true, "Reset() shouldn't make any problems here.");
            Assert.AreEqual(0, subtreeTest.Size(),
                            "The number of elements should be still zero.");
            subtreeTest.NextNode();
        }
Beispiel #3
0
    // $ANTLR start "concat"
    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:83:1: concat : ^(head= Concat {...}? (e+= . )* ) -> ( $e)* ;
    public NadirASTOptimizer.concat_return concat() // throws RecognitionException [1]
    {   
        NadirASTOptimizer.concat_return retval = new NadirASTOptimizer.concat_return();
        retval.Start = input.LT(1);

        NadirAST root_0 = null;

        NadirAST _first_0 = null;
        NadirAST _last = null;

        NadirAST head = null;
        NadirAST e = null;
        IList list_e = null;

        NadirAST head_tree=null;
        NadirAST e_tree=null;
        RewriteRuleNodeStream stream_Concat = new RewriteRuleNodeStream(adaptor,"token Concat");

        try 
    	{
            // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:84:9: ( ^(head= Concat {...}? (e+= . )* ) -> ( $e)* )
            // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:84:17: ^(head= Concat {...}? (e+= . )* )
            {
            	_last = (NadirAST)input.LT(1);
            	{
            	NadirAST _save_last_1 = _last;
            	NadirAST _first_1 = null;
            	_last = (NadirAST)input.LT(1);
            	head=(NadirAST)Match(input,Concat,FOLLOW_Concat_in_concat1001); if (state.failed) return retval; 
            	if ( (state.backtracking == 1) ) stream_Concat.Add(head);


            	if ( (state.backtracking == 1) )
            	if ( _first_0==null ) _first_0 = head;
            	if ( input.LA(1) == Token.DOWN )
            	{
            	    Match(input, Token.DOWN, null); if (state.failed) return retval;
            	    if ( !(( ParentIsOfType(head, Concat) || DegenerateNumberOfChildren(head) )) ) 
            	    {
            	        if ( state.backtracking > 0 ) {state.failed = true; return retval;}
            	        throw new FailedPredicateException(input, "concat", " ParentIsOfType($head, Concat) || DegenerateNumberOfChildren($head) ");
            	    }
            	    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:84:122: (e+= . )*
            	    do 
            	    {
            	        int alt11 = 2;
            	        int LA11_0 = input.LA(1);

            	        if ( ((LA11_0 >= TokenFirst && LA11_0 <= 250)) )
            	        {
            	            alt11 = 1;
            	        }


            	        switch (alt11) 
            	    	{
            	    		case 1 :
            	    		    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:0:0: e+= .
            	    		    {
            	    		    	_last = (NadirAST)input.LT(1);
            	    		    	e = (NadirAST)input.LT(1);
            	    		    	MatchAny(input); if (state.failed) return retval;
            	    		    	 
            	    		    	if ( (state.backtracking == 1) )
            	    		    	if ( _first_1==null ) _first_1 = e;
            	    		    	if (list_e == null) list_e = new ArrayList();
            	    		    	list_e.Add(e);


            	    		    	if ( (state.backtracking == 1) ) {
            	    		    	retval.Tree = (NadirAST)_first_0;
            	    		    	if ( adaptor.GetParent(retval.Tree)!=null && adaptor.IsNil( adaptor.GetParent(retval.Tree) ) )
            	    		    	    retval.Tree = (NadirAST)adaptor.GetParent(retval.Tree);}
            	    		    }
            	    		    break;

            	    		default:
            	    		    goto loop11;
            	        }
            	    } while (true);

            	    loop11:
            	    	;	// Stops C# compiler whining that label 'loop11' has no statements


            	    Match(input, Token.UP, null); if (state.failed) return retval;
            	}_last = _save_last_1;
            	}



            	// AST REWRITE
            	// elements:          e
            	// token labels:      
            	// rule labels:       retval
            	// token list labels: 
            	// rule list labels:  
            	// wildcard labels: e
            	if ( (state.backtracking == 1) ) {
            	retval.Tree = root_0;
            	RewriteRuleSubtreeStream stream_e = new RewriteRuleSubtreeStream(adaptor,"wildcard e",list_e);
            	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

            	root_0 = (NadirAST)adaptor.GetNilNode();
            	// 84:129: -> ( $e)*
            	{
            	    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:84:132: ( $e)*
            	    while ( stream_e.HasNext() )
            	    {
            	        adaptor.AddChild(root_0, stream_e.NextTree());

            	    }
            	    stream_e.Reset();

            	}

            	retval.Tree = (NadirAST)adaptor.RulePostProcessing(root_0);
            	input.ReplaceChildren(adaptor.GetParent(retval.Start),
            	                      adaptor.GetChildIndex(retval.Start),
            	                      adaptor.GetChildIndex(_last),
            	                      retval.Tree);}
            }

        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return retval;
    }
Beispiel #4
0
    // throws RecognitionException [1]
    // $ANTLR start "tikzpicture"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:242:1: tikzpicture : ( ( tikzpicture_start ( tikz_options )? ( tikzbody )? tikzpicture_end ) -> ^( IM_PICTURE tikzpicture_start ( tikz_options )? ( tikzbody )? tikzpicture_end ) | ( tikz_start ( tikz_options )? '{' ( tikzbody2 )? roundbr_end ) -> ^( IM_PICTURE tikz_start ( tikz_options )? ( tikzbody2 )? roundbr_end ) );
    public simpletikzParser.tikzpicture_return tikzpicture()
    {
        simpletikzParser.tikzpicture_return retval = new simpletikzParser.tikzpicture_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal89 = null;
        simpletikzParser.tikzpicture_start_return tikzpicture_start83 = default(simpletikzParser.tikzpicture_start_return);

        simpletikzParser.tikz_options_return tikz_options84 = default(simpletikzParser.tikz_options_return);

        simpletikzParser.tikzbody_return tikzbody85 = default(simpletikzParser.tikzbody_return);

        simpletikzParser.tikzpicture_end_return tikzpicture_end86 = default(simpletikzParser.tikzpicture_end_return);

        simpletikzParser.tikz_start_return tikz_start87 = default(simpletikzParser.tikz_start_return);

        simpletikzParser.tikz_options_return tikz_options88 = default(simpletikzParser.tikz_options_return);

        simpletikzParser.tikzbody2_return tikzbody290 = default(simpletikzParser.tikzbody2_return);

        simpletikzParser.roundbr_end_return roundbr_end91 = default(simpletikzParser.roundbr_end_return);

        object char_literal89_tree=null;
        RewriteRuleTokenStream stream_43 = new RewriteRuleTokenStream(adaptor,"token 43");
        RewriteRuleSubtreeStream stream_tikzbody2 = new RewriteRuleSubtreeStream(adaptor,"rule tikzbody2");
        RewriteRuleSubtreeStream stream_tikzpicture_end = new RewriteRuleSubtreeStream(adaptor,"rule tikzpicture_end");
        RewriteRuleSubtreeStream stream_tikzpicture_start = new RewriteRuleSubtreeStream(adaptor,"rule tikzpicture_start");
        RewriteRuleSubtreeStream stream_tikz_start = new RewriteRuleSubtreeStream(adaptor,"rule tikz_start");
        RewriteRuleSubtreeStream stream_roundbr_end = new RewriteRuleSubtreeStream(adaptor,"rule roundbr_end");
        RewriteRuleSubtreeStream stream_tikzbody = new RewriteRuleSubtreeStream(adaptor,"rule tikzbody");
        RewriteRuleSubtreeStream stream_tikz_options = new RewriteRuleSubtreeStream(adaptor,"rule tikz_options");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:243:2: ( ( tikzpicture_start ( tikz_options )? ( tikzbody )? tikzpicture_end ) -> ^( IM_PICTURE tikzpicture_start ( tikz_options )? ( tikzbody )? tikzpicture_end ) | ( tikz_start ( tikz_options )? '{' ( tikzbody2 )? roundbr_end ) -> ^( IM_PICTURE tikz_start ( tikz_options )? ( tikzbody2 )? roundbr_end ) )
            int alt32 = 2;
            int LA32_0 = input.LA(1);

            if ( (LA32_0 == 39) )
            {
                alt32 = 1;
            }
            else if ( (LA32_0 == 42) )
            {
                alt32 = 2;
            }
            else
            {
                if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                NoViableAltException nvae_d32s0 =
                    new NoViableAltException("", 32, 0, input);

                throw nvae_d32s0;
            }
            switch (alt32)
            {
                case 1 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:243:7: ( tikzpicture_start ( tikz_options )? ( tikzbody )? tikzpicture_end )
                    {
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:243:7: ( tikzpicture_start ( tikz_options )? ( tikzbody )? tikzpicture_end )
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:243:9: tikzpicture_start ( tikz_options )? ( tikzbody )? tikzpicture_end
                        {
                            PushFollow(FOLLOW_tikzpicture_start_in_tikzpicture1015);
                            tikzpicture_start83 = tikzpicture_start();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_tikzpicture_start.Add(tikzpicture_start83.Tree);
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:243:27: ( tikz_options )?
                            int alt28 = 2;
                            int LA28_0 = input.LA(1);

                            if ( (LA28_0 == 54) )
                            {
                                alt28 = 1;
                            }
                            switch (alt28)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:243:27: tikz_options
                                    {
                                        PushFollow(FOLLOW_tikz_options_in_tikzpicture1017);
                                        tikz_options84 = tikz_options();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_tikz_options.Add(tikz_options84.Tree);

                                    }
                                    break;

                            }

                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:243:41: ( tikzbody )?
                            int alt29 = 2;
                            int LA29_0 = input.LA(1);

                            if ( ((LA29_0 >= IM_PATH && LA29_0 <= 53) || (LA29_0 >= 55 && LA29_0 <= 62) || (LA29_0 >= 64 && LA29_0 <= 94)) )
                            {
                                alt29 = 1;
                            }
                            else if ( (LA29_0 == 63) )
                            {
                                int LA29_2 = input.LA(2);

                                if ( (LA29_2 == 43) )
                                {
                                    int LA29_3 = input.LA(3);

                                    if ( (LA29_3 == ID) )
                                    {
                                        alt29 = 1;
                                    }
                                }
                            }
                            switch (alt29)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:243:41: tikzbody
                                    {
                                        PushFollow(FOLLOW_tikzbody_in_tikzpicture1020);
                                        tikzbody85 = tikzbody();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_tikzbody.Add(tikzbody85.Tree);

                                    }
                                    break;

                            }

                            PushFollow(FOLLOW_tikzpicture_end_in_tikzpicture1023);
                            tikzpicture_end86 = tikzpicture_end();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_tikzpicture_end.Add(tikzpicture_end86.Tree);

                        }

                        // AST REWRITE
                        // elements:          tikzpicture_end, tikzbody, tikzpicture_start, tikz_options
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 243:68: -> ^( IM_PICTURE tikzpicture_start ( tikz_options )? ( tikzbody )? tikzpicture_end )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:243:71: ^( IM_PICTURE tikzpicture_start ( tikz_options )? ( tikzbody )? tikzpicture_end )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_PICTURE, "IM_PICTURE"), root_1);

                            adaptor.AddChild(root_1, stream_tikzpicture_start.NextTree());
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:243:102: ( tikz_options )?
                            if ( stream_tikz_options.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_tikz_options.NextTree());

                            }
                            stream_tikz_options.Reset();
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:243:116: ( tikzbody )?
                            if ( stream_tikzbody.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_tikzbody.NextTree());

                            }
                            stream_tikzbody.Reset();
                            adaptor.AddChild(root_1, stream_tikzpicture_end.NextTree());

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 2 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:244:5: ( tikz_start ( tikz_options )? '{' ( tikzbody2 )? roundbr_end )
                    {
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:244:5: ( tikz_start ( tikz_options )? '{' ( tikzbody2 )? roundbr_end )
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:244:7: tikz_start ( tikz_options )? '{' ( tikzbody2 )? roundbr_end
                        {
                            PushFollow(FOLLOW_tikz_start_in_tikzpicture1048);
                            tikz_start87 = tikz_start();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_tikz_start.Add(tikz_start87.Tree);
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:244:19: ( tikz_options )?
                            int alt30 = 2;
                            int LA30_0 = input.LA(1);

                            if ( (LA30_0 == 54) )
                            {
                                alt30 = 1;
                            }
                            switch (alt30)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:244:19: tikz_options
                                    {
                                        PushFollow(FOLLOW_tikz_options_in_tikzpicture1051);
                                        tikz_options88 = tikz_options();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_tikz_options.Add(tikz_options88.Tree);

                                    }
                                    break;

                            }

                            char_literal89=(IToken)Match(input,43,FOLLOW_43_in_tikzpicture1054); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_43.Add(char_literal89);

                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:244:37: ( tikzbody2 )?
                            int alt31 = 2;
                            int LA31_0 = input.LA(1);

                            if ( ((LA31_0 >= IM_PATH && LA31_0 <= 42) || (LA31_0 >= 45 && LA31_0 <= 53) || (LA31_0 >= 55 && LA31_0 <= 94)) )
                            {
                                alt31 = 1;
                            }
                            switch (alt31)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:244:37: tikzbody2
                                    {
                                        PushFollow(FOLLOW_tikzbody2_in_tikzpicture1056);
                                        tikzbody290 = tikzbody2();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_tikzbody2.Add(tikzbody290.Tree);

                                    }
                                    break;

                            }

                            PushFollow(FOLLOW_roundbr_end_in_tikzpicture1059);
                            roundbr_end91 = roundbr_end();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_roundbr_end.Add(roundbr_end91.Tree);

                        }

                        // AST REWRITE
                        // elements:          roundbr_end, tikzbody2, tikz_start, tikz_options
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 244:63: -> ^( IM_PICTURE tikz_start ( tikz_options )? ( tikzbody2 )? roundbr_end )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:244:66: ^( IM_PICTURE tikz_start ( tikz_options )? ( tikzbody2 )? roundbr_end )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_PICTURE, "IM_PICTURE"), root_1);

                            adaptor.AddChild(root_1, stream_tikz_start.NextTree());
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:244:90: ( tikz_options )?
                            if ( stream_tikz_options.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_tikz_options.NextTree());

                            }
                            stream_tikz_options.Reset();
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:244:104: ( tikzbody2 )?
                            if ( stream_tikzbody2.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_tikzbody2.NextTree());

                            }
                            stream_tikzbody2.Reset();
                            adaptor.AddChild(root_1, stream_roundbr_end.NextTree());

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #5
0
    // throws RecognitionException [1]
    // $ANTLR start "tikzpath"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:310:1: tikzpath : path_start ( tikzpath_element )* semicolon_end -> ^( IM_PATH path_start ( tikzpath_element )* semicolon_end ) ;
    public simpletikzParser.tikzpath_return tikzpath()
    {
        simpletikzParser.tikzpath_return retval = new simpletikzParser.tikzpath_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        simpletikzParser.path_start_return path_start148 = default(simpletikzParser.path_start_return);

        simpletikzParser.tikzpath_element_return tikzpath_element149 = default(simpletikzParser.tikzpath_element_return);

        simpletikzParser.semicolon_end_return semicolon_end150 = default(simpletikzParser.semicolon_end_return);

        RewriteRuleSubtreeStream stream_tikzpath_element = new RewriteRuleSubtreeStream(adaptor,"rule tikzpath_element");
        RewriteRuleSubtreeStream stream_path_start = new RewriteRuleSubtreeStream(adaptor,"rule path_start");
        RewriteRuleSubtreeStream stream_semicolon_end = new RewriteRuleSubtreeStream(adaptor,"rule semicolon_end");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:311:2: ( path_start ( tikzpath_element )* semicolon_end -> ^( IM_PATH path_start ( tikzpath_element )* semicolon_end ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:311:4: path_start ( tikzpath_element )* semicolon_end
            {
                PushFollow(FOLLOW_path_start_in_tikzpath1765);
                path_start148 = path_start();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_path_start.Add(path_start148.Tree);
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:311:15: ( tikzpath_element )*
                do
                {
                    int alt39 = 2;
                    int LA39_0 = input.LA(1);

                    if ( ((LA39_0 >= ID && LA39_0 <= COMMAND) || LA39_0 == 43 || LA39_0 == 45 || LA39_0 == 52 || LA39_0 == 54 || LA39_0 == 58 || LA39_0 == 77 || (LA39_0 >= 79 && LA39_0 <= 80) || (LA39_0 >= 82 && LA39_0 <= 91)) )
                    {
                        alt39 = 1;
                    }

                    switch (alt39)
                    {
                        case 1 :
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:311:15: tikzpath_element
                            {
                                PushFollow(FOLLOW_tikzpath_element_in_tikzpath1767);
                                tikzpath_element149 = tikzpath_element();
                                state.followingStackPointer--;
                                if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_tikzpath_element.Add(tikzpath_element149.Tree);

                            }
                            break;

                        default:
                            goto loop39;
                    }
                } while (true);

                loop39:
                    ;	// Stops C# compiler whining that label 'loop39' has no statements

                PushFollow(FOLLOW_semicolon_end_in_tikzpath1770);
                semicolon_end150 = semicolon_end();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_semicolon_end.Add(semicolon_end150.Tree);

                // AST REWRITE
                // elements:          path_start, semicolon_end, tikzpath_element
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 311:47: -> ^( IM_PATH path_start ( tikzpath_element )* semicolon_end )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:311:50: ^( IM_PATH path_start ( tikzpath_element )* semicolon_end )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_PATH, "IM_PATH"), root_1);

                    adaptor.AddChild(root_1, stream_path_start.NextTree());
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:311:71: ( tikzpath_element )*
                    while ( stream_tikzpath_element.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_tikzpath_element.NextTree());

                    }
                    stream_tikzpath_element.Reset();
                    adaptor.AddChild(root_1, stream_semicolon_end.NextTree());

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #6
0
    // throws RecognitionException [1]
    // $ANTLR start "tikznode_core"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:377:1: tikznode_core : ( tikznode_decorator )* tikzstring -> ^( IM_NODE ( tikznode_decorator )* tikzstring ) ;
    public simpletikzParser.tikznode_core_return tikznode_core()
    {
        simpletikzParser.tikznode_core_return retval = new simpletikzParser.tikznode_core_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        simpletikzParser.tikznode_decorator_return tikznode_decorator197 = default(simpletikzParser.tikznode_decorator_return);

        simpletikzParser.tikzstring_return tikzstring198 = default(simpletikzParser.tikzstring_return);

        RewriteRuleSubtreeStream stream_tikzstring = new RewriteRuleSubtreeStream(adaptor,"rule tikzstring");
        RewriteRuleSubtreeStream stream_tikznode_decorator = new RewriteRuleSubtreeStream(adaptor,"rule tikznode_decorator");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:378:2: ( ( tikznode_decorator )* tikzstring -> ^( IM_NODE ( tikznode_decorator )* tikzstring ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:378:4: ( tikznode_decorator )* tikzstring
            {
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:378:4: ( tikznode_decorator )*
                do
                {
                    int alt51 = 2;
                    int LA51_0 = input.LA(1);

                    if ( (LA51_0 == 52 || LA51_0 == 54 || LA51_0 == 81) )
                    {
                        alt51 = 1;
                    }

                    switch (alt51)
                    {
                        case 1 :
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:378:4: tikznode_decorator
                            {
                                PushFollow(FOLLOW_tikznode_decorator_in_tikznode_core2317);
                                tikznode_decorator197 = tikznode_decorator();
                                state.followingStackPointer--;
                                if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_tikznode_decorator.Add(tikznode_decorator197.Tree);

                            }
                            break;

                        default:
                            goto loop51;
                    }
                } while (true);

                loop51:
                    ;	// Stops C# compiler whining that label 'loop51' has no statements

                PushFollow(FOLLOW_tikzstring_in_tikznode_core2320);
                tikzstring198 = tikzstring();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_tikzstring.Add(tikzstring198.Tree);

                // AST REWRITE
                // elements:          tikzstring, tikznode_decorator
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 378:36: -> ^( IM_NODE ( tikznode_decorator )* tikzstring )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:378:39: ^( IM_NODE ( tikznode_decorator )* tikzstring )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_NODE, "IM_NODE"), root_1);

                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:378:49: ( tikznode_decorator )*
                    while ( stream_tikznode_decorator.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_tikznode_decorator.NextTree());

                    }
                    stream_tikznode_decorator.Reset();
                    adaptor.AddChild(root_1, stream_tikzstring.NextTree());

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #7
0
    // throws RecognitionException [1]
    // $ANTLR start "tikzdocument"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:140:1: tikzdocument : ( dontcare_preamble | tikz_styleorsetorcmd | otherbegin )* tikzpicture ( . )* -> ^( IM_DOCUMENT ( tikz_styleorsetorcmd )* tikzpicture ) ;
    public simpletikzParser.tikzdocument_return tikzdocument()
    {
        simpletikzParser.tikzdocument_return retval = new simpletikzParser.tikzdocument_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken wildcard5 = null;
        simpletikzParser.dontcare_preamble_return dontcare_preamble1 = default(simpletikzParser.dontcare_preamble_return);

        simpletikzParser.tikz_styleorsetorcmd_return tikz_styleorsetorcmd2 = default(simpletikzParser.tikz_styleorsetorcmd_return);

        simpletikzParser.otherbegin_return otherbegin3 = default(simpletikzParser.otherbegin_return);

        simpletikzParser.tikzpicture_return tikzpicture4 = default(simpletikzParser.tikzpicture_return);

        // object wildcard5_tree=null;
        RewriteRuleSubtreeStream stream_dontcare_preamble = new RewriteRuleSubtreeStream(adaptor,"rule dontcare_preamble");
        RewriteRuleSubtreeStream stream_tikzpicture = new RewriteRuleSubtreeStream(adaptor,"rule tikzpicture");
        RewriteRuleSubtreeStream stream_otherbegin = new RewriteRuleSubtreeStream(adaptor,"rule otherbegin");
        RewriteRuleSubtreeStream stream_tikz_styleorsetorcmd = new RewriteRuleSubtreeStream(adaptor,"rule tikz_styleorsetorcmd");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:141:2: ( ( dontcare_preamble | tikz_styleorsetorcmd | otherbegin )* tikzpicture ( . )* -> ^( IM_DOCUMENT ( tikz_styleorsetorcmd )* tikzpicture ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:141:4: ( dontcare_preamble | tikz_styleorsetorcmd | otherbegin )* tikzpicture ( . )*
            {
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:141:4: ( dontcare_preamble | tikz_styleorsetorcmd | otherbegin )*
                do
                {
                    int alt1 = 4;
                    switch ( input.LA(1) )
                    {
                    case 39:
                        {
                        int LA1_1 = input.LA(2);

                        if ( (LA1_1 == 43) )
                        {
                            int LA1_5 = input.LA(3);

                            if ( (LA1_5 == ID) )
                            {
                                alt1 = 3;
                            }

                        }

                        }
                        break;
                    case IM_PATH:
                    case IM_NODE:
                    case IM_COORD:
                    case IM_SIZE:
                    case IM_NODENAME:
                    case IM_NUMBERUNIT:
                    case IM_PICTURE:
                    case IM_DOCUMENT:
                    case IM_SCOPE:
                    case IM_STARTTAG:
                    case IM_ENDTAG:
                    case IM_OPTIONS:
                    case IM_OPTION_STYLE:
                    case IM_OPTION_KV:
                    case IM_ID:
                    case IM_TIKZSET:
                    case IM_USETIKZLIB:
                    case IM_STRING:
                    case IM_STYLE:
                    case IM_CONTROLS:
                    case IM_TIKZEDT_CMD:
                    case IM_DONTCARE:
                    case IM_ARC:
                    case ID:
                    case COMMAND:
                    case FLOAT_WO_EXP:
                    case INT:
                    case WS:
                    case COMMENT:
                    case EXPONENT:
                    case ESC_SEQ:
                    case MATHSTRING:
                    case SOMETHING:
                    case SOMETHING1:
                    case 43:
                    case 44:
                    case 45:
                    case 46:
                    case 47:
                    case 48:
                    case 49:
                    case 50:
                    case 51:
                    case 52:
                    case 53:
                    case 54:
                    case 55:
                    case 56:
                    case 57:
                    case 58:
                    case 59:
                    case 60:
                    case 61:
                    case 62:
                    case 63:
                    case 64:
                    case 65:
                    case 66:
                    case 67:
                    case 68:
                    case 69:
                    case 70:
                    case 71:
                    case 72:
                    case 73:
                    case 74:
                    case 75:
                    case 76:
                    case 77:
                    case 78:
                    case 79:
                    case 80:
                    case 81:
                    case 82:
                    case 83:
                    case 84:
                    case 85:
                    case 86:
                    case 87:
                    case 88:
                    case 89:
                    case 90:
                    case 91:
                    case 92:
                    case 93:
                    case 94:
                        {
                        alt1 = 1;
                        }
                        break;
                    case TIKZEDT_CMD_COMMENT:
                    case 40:
                    case 41:
                        {
                        alt1 = 2;
                        }
                        break;

                    }

                    switch (alt1)
                    {
                        case 1 :
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:141:5: dontcare_preamble
                            {
                                PushFollow(FOLLOW_dontcare_preamble_in_tikzdocument257);
                                dontcare_preamble1 = dontcare_preamble();
                                state.followingStackPointer--;
                                if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_dontcare_preamble.Add(dontcare_preamble1.Tree);

                            }
                            break;
                        case 2 :
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:141:25: tikz_styleorsetorcmd
                            {
                                PushFollow(FOLLOW_tikz_styleorsetorcmd_in_tikzdocument261);
                                tikz_styleorsetorcmd2 = tikz_styleorsetorcmd();
                                state.followingStackPointer--;
                                if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_tikz_styleorsetorcmd.Add(tikz_styleorsetorcmd2.Tree);

                            }
                            break;
                        case 3 :
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:141:48: otherbegin
                            {
                                PushFollow(FOLLOW_otherbegin_in_tikzdocument265);
                                otherbegin3 = otherbegin();
                                state.followingStackPointer--;
                                if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_otherbegin.Add(otherbegin3.Tree);

                            }
                            break;

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

                loop1:
                    ;	// Stops C# compiler whining that label 'loop1' has no statements

                PushFollow(FOLLOW_tikzpicture_in_tikzdocument270);
                tikzpicture4 = tikzpicture();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_tikzpicture.Add(tikzpicture4.Tree);
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:141:74: ( . )*
                do
                {
                    int alt2 = 2;
                    int LA2_0 = input.LA(1);

                    if ( ((LA2_0 >= IM_PATH && LA2_0 <= 94)) )
                    {
                        alt2 = 1;
                    }
                    else if ( (LA2_0 == EOF) )
                    {
                        alt2 = 2;
                    }

                    switch (alt2)
                    {
                        case 1 :
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:141:74: .
                            {
                                wildcard5 = (IToken)input.LT(1);
                                MatchAny(input); if (state.failed) return retval;

                            }
                            break;

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

                loop2:
                    ;	// Stops C# compiler whining that label 'loop2' has no statements

                // AST REWRITE
                // elements:          tikzpicture, tikz_styleorsetorcmd
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 141:77: -> ^( IM_DOCUMENT ( tikz_styleorsetorcmd )* tikzpicture )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:141:80: ^( IM_DOCUMENT ( tikz_styleorsetorcmd )* tikzpicture )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_DOCUMENT, "IM_DOCUMENT"), root_1);

                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:141:94: ( tikz_styleorsetorcmd )*
                    while ( stream_tikz_styleorsetorcmd.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_tikz_styleorsetorcmd.NextTree());

                    }
                    stream_tikz_styleorsetorcmd.Reset();
                    adaptor.AddChild(root_1, stream_tikzpicture.NextTree());

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #8
0
    // throws RecognitionException [1]
    // $ANTLR start "size"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:432:1: size : '(' numberunit ( 'and' numberunit )? ')' -> ^( IM_SIZE ( numberunit )* ) ;
    public simpletikzParser.size_return size()
    {
        simpletikzParser.size_return retval = new simpletikzParser.size_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal245 = null;
        IToken string_literal247 = null;
        IToken char_literal249 = null;
        simpletikzParser.numberunit_return numberunit246 = default(simpletikzParser.numberunit_return);

        simpletikzParser.numberunit_return numberunit248 = default(simpletikzParser.numberunit_return);

        object char_literal245_tree=null;
        object string_literal247_tree=null;
        object char_literal249_tree=null;
        RewriteRuleTokenStream stream_78 = new RewriteRuleTokenStream(adaptor,"token 78");
        RewriteRuleTokenStream stream_52 = new RewriteRuleTokenStream(adaptor,"token 52");
        RewriteRuleTokenStream stream_53 = new RewriteRuleTokenStream(adaptor,"token 53");
        RewriteRuleSubtreeStream stream_numberunit = new RewriteRuleSubtreeStream(adaptor,"rule numberunit");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:433:2: ( '(' numberunit ( 'and' numberunit )? ')' -> ^( IM_SIZE ( numberunit )* ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:433:6: '(' numberunit ( 'and' numberunit )? ')'
            {
                char_literal245=(IToken)Match(input,52,FOLLOW_52_in_size2702); if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_52.Add(char_literal245);

                PushFollow(FOLLOW_numberunit_in_size2704);
                numberunit246 = numberunit();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_numberunit.Add(numberunit246.Tree);
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:433:21: ( 'and' numberunit )?
                int alt61 = 2;
                int LA61_0 = input.LA(1);

                if ( (LA61_0 == 78) )
                {
                    alt61 = 1;
                }
                switch (alt61)
                {
                    case 1 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:433:22: 'and' numberunit
                        {
                            string_literal247=(IToken)Match(input,78,FOLLOW_78_in_size2707); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_78.Add(string_literal247);

                            PushFollow(FOLLOW_numberunit_in_size2709);
                            numberunit248 = numberunit();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_numberunit.Add(numberunit248.Tree);

                        }
                        break;

                }

                char_literal249=(IToken)Match(input,53,FOLLOW_53_in_size2713); if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_53.Add(char_literal249);

                // AST REWRITE
                // elements:          numberunit
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 433:46: -> ^( IM_SIZE ( numberunit )* )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:433:49: ^( IM_SIZE ( numberunit )* )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_SIZE, "IM_SIZE"), root_1);

                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:433:59: ( numberunit )*
                    while ( stream_numberunit.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_numberunit.NextTree());

                    }
                    stream_numberunit.Reset();

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #9
0
    // throws RecognitionException [1]
    // $ANTLR start "option_kv"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:176:1: option_kv : idd ( '=' iddornumberunitorstringorrange )? -> ^( IM_OPTION_KV idd ( iddornumberunitorstringorrange )? ) ;
    public simpletikzParser.option_kv_return option_kv()
    {
        simpletikzParser.option_kv_return retval = new simpletikzParser.option_kv_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal36 = null;
        simpletikzParser.idd_return idd35 = default(simpletikzParser.idd_return);

        simpletikzParser.iddornumberunitorstringorrange_return iddornumberunitorstringorrange37 = default(simpletikzParser.iddornumberunitorstringorrange_return);

        object char_literal36_tree=null;
        RewriteRuleTokenStream stream_45 = new RewriteRuleTokenStream(adaptor,"token 45");
        RewriteRuleSubtreeStream stream_iddornumberunitorstringorrange = new RewriteRuleSubtreeStream(adaptor,"rule iddornumberunitorstringorrange");
        RewriteRuleSubtreeStream stream_idd = new RewriteRuleSubtreeStream(adaptor,"rule idd");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:177:2: ( idd ( '=' iddornumberunitorstringorrange )? -> ^( IM_OPTION_KV idd ( iddornumberunitorstringorrange )? ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:177:4: idd ( '=' iddornumberunitorstringorrange )?
            {
                PushFollow(FOLLOW_idd_in_option_kv524);
                idd35 = idd();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_idd.Add(idd35.Tree);
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:177:8: ( '=' iddornumberunitorstringorrange )?
                int alt11 = 2;
                int LA11_0 = input.LA(1);

                if ( (LA11_0 == 45) )
                {
                    alt11 = 1;
                }
                switch (alt11)
                {
                    case 1 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:177:9: '=' iddornumberunitorstringorrange
                        {
                            char_literal36=(IToken)Match(input,45,FOLLOW_45_in_option_kv527); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_45.Add(char_literal36);

                            PushFollow(FOLLOW_iddornumberunitorstringorrange_in_option_kv529);
                            iddornumberunitorstringorrange37 = iddornumberunitorstringorrange();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_iddornumberunitorstringorrange.Add(iddornumberunitorstringorrange37.Tree);

                        }
                        break;

                }

                // AST REWRITE
                // elements:          idd, iddornumberunitorstringorrange
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 177:47: -> ^( IM_OPTION_KV idd ( iddornumberunitorstringorrange )? )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:177:50: ^( IM_OPTION_KV idd ( iddornumberunitorstringorrange )? )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_OPTION_KV, "IM_OPTION_KV"), root_1);

                    adaptor.AddChild(root_1, stream_idd.NextTree());
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:177:69: ( iddornumberunitorstringorrange )?
                    if ( stream_iddornumberunitorstringorrange.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_iddornumberunitorstringorrange.NextTree());

                    }
                    stream_iddornumberunitorstringorrange.Reset();

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #10
0
    // $ANTLR start "typeDeclarations"
    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:132:1: typeDeclarations : ( structDeclaration )* -> ^( TYPE_DECLARATIONS ( structDeclaration )* ) ;
    public PsimulexParser.typeDeclarations_return typeDeclarations() // throws RecognitionException [1]
    {   
        PsimulexParser.typeDeclarations_return retval = new PsimulexParser.typeDeclarations_return();
        retval.Start = input.LT(1);
        int typeDeclarations_StartIndex = input.Index();
        CommonTree root_0 = null;

        PsimulexParser.structDeclaration_return structDeclaration12 = default(PsimulexParser.structDeclaration_return);


        RewriteRuleSubtreeStream stream_structDeclaration = new RewriteRuleSubtreeStream(adaptor,"rule structDeclaration");
        try 
    	{
    	    if ( (state.backtracking > 0) && AlreadyParsedRule(input, 6) ) 
    	    {
    	    	return retval; 
    	    }
            // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:133:5: ( ( structDeclaration )* -> ^( TYPE_DECLARATIONS ( structDeclaration )* ) )
            // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:133:9: ( structDeclaration )*
            {
            	// C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:133:9: ( structDeclaration )*
            	do 
            	{
            	    int alt5 = 2;
            	    int LA5_0 = input.LA(1);

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


            	    switch (alt5) 
            		{
            			case 1 :
            			    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:0:0: structDeclaration
            			    {
            			    	PushFollow(FOLLOW_structDeclaration_in_typeDeclarations519);
            			    	structDeclaration12 = structDeclaration();
            			    	state.followingStackPointer--;
            			    	if (state.failed) return retval;
            			    	if ( (state.backtracking==0) ) stream_structDeclaration.Add(structDeclaration12.Tree);

            			    }
            			    break;

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

            	loop5:
            		;	// Stops C# compiler whining that label 'loop5' has no statements



            	// AST REWRITE
            	// elements:          structDeclaration
            	// token labels:      
            	// rule labels:       retval
            	// token list labels: 
            	// rule list labels:  
            	// wildcard labels: 
            	if ( (state.backtracking==0) ) {
            	retval.Tree = root_0;
            	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

            	root_0 = (CommonTree)adaptor.GetNilNode();
            	// 133:28: -> ^( TYPE_DECLARATIONS ( structDeclaration )* )
            	{
            	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:133:31: ^( TYPE_DECLARATIONS ( structDeclaration )* )
            	    {
            	    CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
            	    root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(TYPE_DECLARATIONS, "TYPE_DECLARATIONS"), root_1);

            	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:133:52: ( structDeclaration )*
            	    while ( stream_structDeclaration.HasNext() )
            	    {
            	        adaptor.AddChild(root_1, stream_structDeclaration.NextTree());

            	    }
            	    stream_structDeclaration.Reset();

            	    adaptor.AddChild(root_0, root_1);
            	    }

            	}

            	retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( (state.backtracking==0) )
            {	retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
            if ( state.backtracking > 0 ) 
            {
            	Memoize(input, 6, typeDeclarations_StartIndex); 
            }
        }
        return retval;
    }
Beispiel #11
0
    // $ANTLR start "elseIfBranches"
    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:531:1: elseIfBranches : ( ElseIf condition core )* -> ^( ELSEIFBRANCHES ( ^( CONDITIONALBRANCH condition core ) )* ) ;
    public PsimulexParser.elseIfBranches_return elseIfBranches() // throws RecognitionException [1]
    {   
        PsimulexParser.elseIfBranches_return retval = new PsimulexParser.elseIfBranches_return();
        retval.Start = input.LT(1);
        int elseIfBranches_StartIndex = input.Index();
        CommonTree root_0 = null;

        IToken ElseIf218 = null;
        PsimulexParser.condition_return condition219 = default(PsimulexParser.condition_return);

        PsimulexParser.core_return core220 = default(PsimulexParser.core_return);


        CommonTree ElseIf218_tree=null;
        RewriteRuleTokenStream stream_ElseIf = new RewriteRuleTokenStream(adaptor,"token ElseIf");
        RewriteRuleSubtreeStream stream_condition = new RewriteRuleSubtreeStream(adaptor,"rule condition");
        RewriteRuleSubtreeStream stream_core = new RewriteRuleSubtreeStream(adaptor,"rule core");
        try 
    	{
    	    if ( (state.backtracking > 0) && AlreadyParsedRule(input, 69) ) 
    	    {
    	    	return retval; 
    	    }
            // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:531:17: ( ( ElseIf condition core )* -> ^( ELSEIFBRANCHES ( ^( CONDITIONALBRANCH condition core ) )* ) )
            // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:531:19: ( ElseIf condition core )*
            {
            	// C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:531:19: ( ElseIf condition core )*
            	do 
            	{
            	    int alt52 = 2;
            	    int LA52_0 = input.LA(1);

            	    if ( (LA52_0 == ElseIf) )
            	    {
            	        alt52 = 1;
            	    }


            	    switch (alt52) 
            		{
            			case 1 :
            			    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:531:21: ElseIf condition core
            			    {
            			    	ElseIf218=(IToken)Match(input,ElseIf,FOLLOW_ElseIf_in_elseIfBranches2882); if (state.failed) return retval; 
            			    	if ( (state.backtracking==0) ) stream_ElseIf.Add(ElseIf218);

            			    	PushFollow(FOLLOW_condition_in_elseIfBranches2884);
            			    	condition219 = condition();
            			    	state.followingStackPointer--;
            			    	if (state.failed) return retval;
            			    	if ( (state.backtracking==0) ) stream_condition.Add(condition219.Tree);
            			    	PushFollow(FOLLOW_core_in_elseIfBranches2886);
            			    	core220 = core();
            			    	state.followingStackPointer--;
            			    	if (state.failed) return retval;
            			    	if ( (state.backtracking==0) ) stream_core.Add(core220.Tree);

            			    }
            			    break;

            			default:
            			    goto loop52;
            	    }
            	} while (true);

            	loop52:
            		;	// Stops C# compiler whining that label 'loop52' has no statements



            	// AST REWRITE
            	// elements:          core, condition
            	// token labels:      
            	// rule labels:       retval
            	// token list labels: 
            	// rule list labels:  
            	// wildcard labels: 
            	if ( (state.backtracking==0) ) {
            	retval.Tree = root_0;
            	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

            	root_0 = (CommonTree)adaptor.GetNilNode();
            	// 531:46: -> ^( ELSEIFBRANCHES ( ^( CONDITIONALBRANCH condition core ) )* )
            	{
            	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:531:49: ^( ELSEIFBRANCHES ( ^( CONDITIONALBRANCH condition core ) )* )
            	    {
            	    CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
            	    root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(ELSEIFBRANCHES, "ELSEIFBRANCHES"), root_1);

            	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:531:67: ( ^( CONDITIONALBRANCH condition core ) )*
            	    while ( stream_core.HasNext() || stream_condition.HasNext() )
            	    {
            	        // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:531:69: ^( CONDITIONALBRANCH condition core )
            	        {
            	        CommonTree root_2 = (CommonTree)adaptor.GetNilNode();
            	        root_2 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(CONDITIONALBRANCH, "CONDITIONALBRANCH"), root_2);

            	        adaptor.AddChild(root_2, stream_condition.NextTree());
            	        adaptor.AddChild(root_2, stream_core.NextTree());

            	        adaptor.AddChild(root_1, root_2);
            	        }

            	    }
            	    stream_core.Reset();
            	    stream_condition.Reset();

            	    adaptor.AddChild(root_0, root_1);
            	    }

            	}

            	retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( (state.backtracking==0) )
            {	retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
            if ( state.backtracking > 0 ) 
            {
            	Memoize(input, 69, elseIfBranches_StartIndex); 
            }
        }
        return retval;
    }
Beispiel #12
0
    // $ANTLR start "statement"
    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:504:1: statement : ( ifStatement -> ^( IFSTATEMENT ifStatement ) | ( forStatement | pForStatement ) | ( forEachStatement | pForEachStatement ) | loopStatement | whileStatement | doStatement | PDo block -> ^( PDOSTATEMENT block ) | Async block -> ^( ASYNCSTATEMENT block ) | Lock '(' Identifier ')' block -> ^( LOCKSTATEMENT Identifier block ) | Return ( expression )? ';' -> ^( RETURN_STATEMENT Return ( expression )? ) | Break ';' | ';' | expression ';' -> ^( EXPRESSION_STATEMENT expression ) | localVariableDeclaration ';' -> ^( VARIABLE_DECLARATION_STATEMENT localVariableDeclaration ) );
    public PsimulexParser.statement_return statement() // throws RecognitionException [1]
    {   
        PsimulexParser.statement_return retval = new PsimulexParser.statement_return();
        retval.Start = input.LT(1);
        int statement_StartIndex = input.Index();
        CommonTree root_0 = null;

        IToken PDo185 = null;
        IToken Async187 = null;
        IToken Lock189 = null;
        IToken char_literal190 = null;
        IToken Identifier191 = null;
        IToken char_literal192 = null;
        IToken Return194 = null;
        IToken char_literal196 = null;
        IToken Break197 = null;
        IToken char_literal198 = null;
        IToken char_literal199 = null;
        IToken char_literal201 = null;
        IToken char_literal203 = null;
        PsimulexParser.ifStatement_return ifStatement177 = default(PsimulexParser.ifStatement_return);

        PsimulexParser.forStatement_return forStatement178 = default(PsimulexParser.forStatement_return);

        PsimulexParser.pForStatement_return pForStatement179 = default(PsimulexParser.pForStatement_return);

        PsimulexParser.forEachStatement_return forEachStatement180 = default(PsimulexParser.forEachStatement_return);

        PsimulexParser.pForEachStatement_return pForEachStatement181 = default(PsimulexParser.pForEachStatement_return);

        PsimulexParser.loopStatement_return loopStatement182 = default(PsimulexParser.loopStatement_return);

        PsimulexParser.whileStatement_return whileStatement183 = default(PsimulexParser.whileStatement_return);

        PsimulexParser.doStatement_return doStatement184 = default(PsimulexParser.doStatement_return);

        PsimulexParser.block_return block186 = default(PsimulexParser.block_return);

        PsimulexParser.block_return block188 = default(PsimulexParser.block_return);

        PsimulexParser.block_return block193 = default(PsimulexParser.block_return);

        PsimulexParser.expression_return expression195 = default(PsimulexParser.expression_return);

        PsimulexParser.expression_return expression200 = default(PsimulexParser.expression_return);

        PsimulexParser.localVariableDeclaration_return localVariableDeclaration202 = default(PsimulexParser.localVariableDeclaration_return);


        CommonTree PDo185_tree=null;
        CommonTree Async187_tree=null;
        CommonTree Lock189_tree=null;
        CommonTree char_literal190_tree=null;
        CommonTree Identifier191_tree=null;
        CommonTree char_literal192_tree=null;
        CommonTree Return194_tree=null;
        CommonTree char_literal196_tree=null;
        CommonTree Break197_tree=null;
        CommonTree char_literal198_tree=null;
        CommonTree char_literal199_tree=null;
        CommonTree char_literal201_tree=null;
        CommonTree char_literal203_tree=null;
        RewriteRuleTokenStream stream_143 = new RewriteRuleTokenStream(adaptor,"token 143");
        RewriteRuleTokenStream stream_Async = new RewriteRuleTokenStream(adaptor,"token Async");
        RewriteRuleTokenStream stream_150 = new RewriteRuleTokenStream(adaptor,"token 150");
        RewriteRuleTokenStream stream_149 = new RewriteRuleTokenStream(adaptor,"token 149");
        RewriteRuleTokenStream stream_Return = new RewriteRuleTokenStream(adaptor,"token Return");
        RewriteRuleTokenStream stream_Lock = new RewriteRuleTokenStream(adaptor,"token Lock");
        RewriteRuleTokenStream stream_Identifier = new RewriteRuleTokenStream(adaptor,"token Identifier");
        RewriteRuleTokenStream stream_PDo = new RewriteRuleTokenStream(adaptor,"token PDo");
        RewriteRuleSubtreeStream stream_expression = new RewriteRuleSubtreeStream(adaptor,"rule expression");
        RewriteRuleSubtreeStream stream_block = new RewriteRuleSubtreeStream(adaptor,"rule block");
        RewriteRuleSubtreeStream stream_localVariableDeclaration = new RewriteRuleSubtreeStream(adaptor,"rule localVariableDeclaration");
        RewriteRuleSubtreeStream stream_ifStatement = new RewriteRuleSubtreeStream(adaptor,"rule ifStatement");
        try 
    	{
    	    if ( (state.backtracking > 0) && AlreadyParsedRule(input, 65) ) 
    	    {
    	    	return retval; 
    	    }
            // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:505:5: ( ifStatement -> ^( IFSTATEMENT ifStatement ) | ( forStatement | pForStatement ) | ( forEachStatement | pForEachStatement ) | loopStatement | whileStatement | doStatement | PDo block -> ^( PDOSTATEMENT block ) | Async block -> ^( ASYNCSTATEMENT block ) | Lock '(' Identifier ')' block -> ^( LOCKSTATEMENT Identifier block ) | Return ( expression )? ';' -> ^( RETURN_STATEMENT Return ( expression )? ) | Break ';' | ';' | expression ';' -> ^( EXPRESSION_STATEMENT expression ) | localVariableDeclaration ';' -> ^( VARIABLE_DECLARATION_STATEMENT localVariableDeclaration ) )
            int alt47 = 14;
            alt47 = dfa47.Predict(input);
            switch (alt47) 
            {
                case 1 :
                    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:505:7: ifStatement
                    {
                    	PushFollow(FOLLOW_ifStatement_in_statement2466);
                    	ifStatement177 = ifStatement();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( (state.backtracking==0) ) stream_ifStatement.Add(ifStatement177.Tree);


                    	// AST REWRITE
                    	// elements:          ifStatement
                    	// token labels:      
                    	// rule labels:       retval
                    	// token list labels: 
                    	// rule list labels:  
                    	// wildcard labels: 
                    	if ( (state.backtracking==0) ) {
                    	retval.Tree = root_0;
                    	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

                    	root_0 = (CommonTree)adaptor.GetNilNode();
                    	// 505:19: -> ^( IFSTATEMENT ifStatement )
                    	{
                    	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:505:22: ^( IFSTATEMENT ifStatement )
                    	    {
                    	    CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
                    	    root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(IFSTATEMENT, "IFSTATEMENT"), root_1);

                    	    adaptor.AddChild(root_1, stream_ifStatement.NextTree());

                    	    adaptor.AddChild(root_0, root_1);
                    	    }

                    	}

                    	retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 2 :
                    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:506:7: ( forStatement | pForStatement )
                    {
                    	root_0 = (CommonTree)adaptor.GetNilNode();

                    	// C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:506:7: ( forStatement | pForStatement )
                    	int alt44 = 2;
                    	int LA44_0 = input.LA(1);

                    	if ( (LA44_0 == For) )
                    	{
                    	    alt44 = 1;
                    	}
                    	else if ( (LA44_0 == PFor) )
                    	{
                    	    alt44 = 2;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    	    NoViableAltException nvae_d44s0 =
                    	        new NoViableAltException("", 44, 0, input);

                    	    throw nvae_d44s0;
                    	}
                    	switch (alt44) 
                    	{
                    	    case 1 :
                    	        // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:506:9: forStatement
                    	        {
                    	        	PushFollow(FOLLOW_forStatement_in_statement2486);
                    	        	forStatement178 = forStatement();
                    	        	state.followingStackPointer--;
                    	        	if (state.failed) return retval;
                    	        	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, forStatement178.Tree);

                    	        }
                    	        break;
                    	    case 2 :
                    	        // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:506:24: pForStatement
                    	        {
                    	        	PushFollow(FOLLOW_pForStatement_in_statement2490);
                    	        	pForStatement179 = pForStatement();
                    	        	state.followingStackPointer--;
                    	        	if (state.failed) return retval;
                    	        	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, pForStatement179.Tree);

                    	        }
                    	        break;

                    	}


                    }
                    break;
                case 3 :
                    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:507:9: ( forEachStatement | pForEachStatement )
                    {
                    	root_0 = (CommonTree)adaptor.GetNilNode();

                    	// C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:507:9: ( forEachStatement | pForEachStatement )
                    	int alt45 = 2;
                    	int LA45_0 = input.LA(1);

                    	if ( (LA45_0 == ForEach) )
                    	{
                    	    alt45 = 1;
                    	}
                    	else if ( (LA45_0 == PForEach) )
                    	{
                    	    alt45 = 2;
                    	}
                    	else 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    	    NoViableAltException nvae_d45s0 =
                    	        new NoViableAltException("", 45, 0, input);

                    	    throw nvae_d45s0;
                    	}
                    	switch (alt45) 
                    	{
                    	    case 1 :
                    	        // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:507:11: forEachStatement
                    	        {
                    	        	PushFollow(FOLLOW_forEachStatement_in_statement2504);
                    	        	forEachStatement180 = forEachStatement();
                    	        	state.followingStackPointer--;
                    	        	if (state.failed) return retval;
                    	        	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, forEachStatement180.Tree);

                    	        }
                    	        break;
                    	    case 2 :
                    	        // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:507:30: pForEachStatement
                    	        {
                    	        	PushFollow(FOLLOW_pForEachStatement_in_statement2508);
                    	        	pForEachStatement181 = pForEachStatement();
                    	        	state.followingStackPointer--;
                    	        	if (state.failed) return retval;
                    	        	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, pForEachStatement181.Tree);

                    	        }
                    	        break;

                    	}


                    }
                    break;
                case 4 :
                    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:508:9: loopStatement
                    {
                    	root_0 = (CommonTree)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_loopStatement_in_statement2520);
                    	loopStatement182 = loopStatement();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, loopStatement182.Tree);

                    }
                    break;
                case 5 :
                    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:509:9: whileStatement
                    {
                    	root_0 = (CommonTree)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_whileStatement_in_statement2530);
                    	whileStatement183 = whileStatement();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, whileStatement183.Tree);

                    }
                    break;
                case 6 :
                    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:510:9: doStatement
                    {
                    	root_0 = (CommonTree)adaptor.GetNilNode();

                    	PushFollow(FOLLOW_doStatement_in_statement2540);
                    	doStatement184 = doStatement();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( state.backtracking == 0 ) adaptor.AddChild(root_0, doStatement184.Tree);

                    }
                    break;
                case 7 :
                    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:511:9: PDo block
                    {
                    	PDo185=(IToken)Match(input,PDo,FOLLOW_PDo_in_statement2553); if (state.failed) return retval; 
                    	if ( (state.backtracking==0) ) stream_PDo.Add(PDo185);

                    	PushFollow(FOLLOW_block_in_statement2555);
                    	block186 = block();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( (state.backtracking==0) ) stream_block.Add(block186.Tree);


                    	// AST REWRITE
                    	// elements:          block
                    	// token labels:      
                    	// rule labels:       retval
                    	// token list labels: 
                    	// rule list labels:  
                    	// wildcard labels: 
                    	if ( (state.backtracking==0) ) {
                    	retval.Tree = root_0;
                    	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

                    	root_0 = (CommonTree)adaptor.GetNilNode();
                    	// 511:19: -> ^( PDOSTATEMENT block )
                    	{
                    	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:511:22: ^( PDOSTATEMENT block )
                    	    {
                    	    CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
                    	    root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(PDOSTATEMENT, "PDOSTATEMENT"), root_1);

                    	    adaptor.AddChild(root_1, stream_block.NextTree());

                    	    adaptor.AddChild(root_0, root_1);
                    	    }

                    	}

                    	retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 8 :
                    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:512:9: Async block
                    {
                    	Async187=(IToken)Match(input,Async,FOLLOW_Async_in_statement2584); if (state.failed) return retval; 
                    	if ( (state.backtracking==0) ) stream_Async.Add(Async187);

                    	PushFollow(FOLLOW_block_in_statement2586);
                    	block188 = block();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( (state.backtracking==0) ) stream_block.Add(block188.Tree);


                    	// AST REWRITE
                    	// elements:          block
                    	// token labels:      
                    	// rule labels:       retval
                    	// token list labels: 
                    	// rule list labels:  
                    	// wildcard labels: 
                    	if ( (state.backtracking==0) ) {
                    	retval.Tree = root_0;
                    	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

                    	root_0 = (CommonTree)adaptor.GetNilNode();
                    	// 512:21: -> ^( ASYNCSTATEMENT block )
                    	{
                    	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:512:24: ^( ASYNCSTATEMENT block )
                    	    {
                    	    CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
                    	    root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(ASYNCSTATEMENT, "ASYNCSTATEMENT"), root_1);

                    	    adaptor.AddChild(root_1, stream_block.NextTree());

                    	    adaptor.AddChild(root_0, root_1);
                    	    }

                    	}

                    	retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 9 :
                    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:513:9: Lock '(' Identifier ')' block
                    {
                    	Lock189=(IToken)Match(input,Lock,FOLLOW_Lock_in_statement2614); if (state.failed) return retval; 
                    	if ( (state.backtracking==0) ) stream_Lock.Add(Lock189);

                    	char_literal190=(IToken)Match(input,149,FOLLOW_149_in_statement2616); if (state.failed) return retval; 
                    	if ( (state.backtracking==0) ) stream_149.Add(char_literal190);

                    	Identifier191=(IToken)Match(input,Identifier,FOLLOW_Identifier_in_statement2618); if (state.failed) return retval; 
                    	if ( (state.backtracking==0) ) stream_Identifier.Add(Identifier191);

                    	char_literal192=(IToken)Match(input,150,FOLLOW_150_in_statement2620); if (state.failed) return retval; 
                    	if ( (state.backtracking==0) ) stream_150.Add(char_literal192);

                    	PushFollow(FOLLOW_block_in_statement2622);
                    	block193 = block();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( (state.backtracking==0) ) stream_block.Add(block193.Tree);


                    	// AST REWRITE
                    	// elements:          Identifier, block
                    	// token labels:      
                    	// rule labels:       retval
                    	// token list labels: 
                    	// rule list labels:  
                    	// wildcard labels: 
                    	if ( (state.backtracking==0) ) {
                    	retval.Tree = root_0;
                    	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

                    	root_0 = (CommonTree)adaptor.GetNilNode();
                    	// 513:39: -> ^( LOCKSTATEMENT Identifier block )
                    	{
                    	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:513:42: ^( LOCKSTATEMENT Identifier block )
                    	    {
                    	    CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
                    	    root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(LOCKSTATEMENT, "LOCKSTATEMENT"), root_1);

                    	    adaptor.AddChild(root_1, stream_Identifier.NextNode());
                    	    adaptor.AddChild(root_1, stream_block.NextTree());

                    	    adaptor.AddChild(root_0, root_1);
                    	    }

                    	}

                    	retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 10 :
                    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:514:9: Return ( expression )? ';'
                    {
                    	Return194=(IToken)Match(input,Return,FOLLOW_Return_in_statement2645); if (state.failed) return retval; 
                    	if ( (state.backtracking==0) ) stream_Return.Add(Return194);

                    	// C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:514:16: ( expression )?
                    	int alt46 = 2;
                    	int LA46_0 = input.LA(1);

                    	if ( (LA46_0 == StringLiteral || LA46_0 == Identifier || LA46_0 == Reference || LA46_0 == Minus || (LA46_0 >= LogicalNot && LA46_0 <= New) || LA46_0 == 149) )
                    	{
                    	    alt46 = 1;
                    	}
                    	switch (alt46) 
                    	{
                    	    case 1 :
                    	        // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:0:0: expression
                    	        {
                    	        	PushFollow(FOLLOW_expression_in_statement2647);
                    	        	expression195 = expression();
                    	        	state.followingStackPointer--;
                    	        	if (state.failed) return retval;
                    	        	if ( (state.backtracking==0) ) stream_expression.Add(expression195.Tree);

                    	        }
                    	        break;

                    	}

                    	char_literal196=(IToken)Match(input,143,FOLLOW_143_in_statement2650); if (state.failed) return retval; 
                    	if ( (state.backtracking==0) ) stream_143.Add(char_literal196);



                    	// AST REWRITE
                    	// elements:          expression, Return
                    	// token labels:      
                    	// rule labels:       retval
                    	// token list labels: 
                    	// rule list labels:  
                    	// wildcard labels: 
                    	if ( (state.backtracking==0) ) {
                    	retval.Tree = root_0;
                    	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

                    	root_0 = (CommonTree)adaptor.GetNilNode();
                    	// 514:32: -> ^( RETURN_STATEMENT Return ( expression )? )
                    	{
                    	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:514:35: ^( RETURN_STATEMENT Return ( expression )? )
                    	    {
                    	    CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
                    	    root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(RETURN_STATEMENT, "RETURN_STATEMENT"), root_1);

                    	    adaptor.AddChild(root_1, stream_Return.NextNode());
                    	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:514:62: ( expression )?
                    	    if ( stream_expression.HasNext() )
                    	    {
                    	        adaptor.AddChild(root_1, stream_expression.NextTree());

                    	    }
                    	    stream_expression.Reset();

                    	    adaptor.AddChild(root_0, root_1);
                    	    }

                    	}

                    	retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 11 :
                    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:515:9: Break ';'
                    {
                    	root_0 = (CommonTree)adaptor.GetNilNode();

                    	Break197=(IToken)Match(input,Break,FOLLOW_Break_in_statement2673); if (state.failed) return retval;
                    	if ( state.backtracking == 0 )
                    	{Break197_tree = (CommonTree)adaptor.Create(Break197);
                    		adaptor.AddChild(root_0, Break197_tree);
                    	}
                    	char_literal198=(IToken)Match(input,143,FOLLOW_143_in_statement2675); if (state.failed) return retval;

                    }
                    break;
                case 12 :
                    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:517:9: ';'
                    {
                    	root_0 = (CommonTree)adaptor.GetNilNode();

                    	char_literal199=(IToken)Match(input,143,FOLLOW_143_in_statement2687); if (state.failed) return retval;

                    }
                    break;
                case 13 :
                    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:518:9: expression ';'
                    {
                    	PushFollow(FOLLOW_expression_in_statement2698);
                    	expression200 = expression();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( (state.backtracking==0) ) stream_expression.Add(expression200.Tree);
                    	char_literal201=(IToken)Match(input,143,FOLLOW_143_in_statement2700); if (state.failed) return retval; 
                    	if ( (state.backtracking==0) ) stream_143.Add(char_literal201);



                    	// AST REWRITE
                    	// elements:          expression
                    	// token labels:      
                    	// rule labels:       retval
                    	// token list labels: 
                    	// rule list labels:  
                    	// wildcard labels: 
                    	if ( (state.backtracking==0) ) {
                    	retval.Tree = root_0;
                    	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

                    	root_0 = (CommonTree)adaptor.GetNilNode();
                    	// 518:24: -> ^( EXPRESSION_STATEMENT expression )
                    	{
                    	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:518:27: ^( EXPRESSION_STATEMENT expression )
                    	    {
                    	    CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
                    	    root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(EXPRESSION_STATEMENT, "EXPRESSION_STATEMENT"), root_1);

                    	    adaptor.AddChild(root_1, stream_expression.NextTree());

                    	    adaptor.AddChild(root_0, root_1);
                    	    }

                    	}

                    	retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 14 :
                    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:519:7: localVariableDeclaration ';'
                    {
                    	PushFollow(FOLLOW_localVariableDeclaration_in_statement2718);
                    	localVariableDeclaration202 = localVariableDeclaration();
                    	state.followingStackPointer--;
                    	if (state.failed) return retval;
                    	if ( (state.backtracking==0) ) stream_localVariableDeclaration.Add(localVariableDeclaration202.Tree);
                    	char_literal203=(IToken)Match(input,143,FOLLOW_143_in_statement2720); if (state.failed) return retval; 
                    	if ( (state.backtracking==0) ) stream_143.Add(char_literal203);



                    	// AST REWRITE
                    	// elements:          localVariableDeclaration
                    	// token labels:      
                    	// rule labels:       retval
                    	// token list labels: 
                    	// rule list labels:  
                    	// wildcard labels: 
                    	if ( (state.backtracking==0) ) {
                    	retval.Tree = root_0;
                    	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

                    	root_0 = (CommonTree)adaptor.GetNilNode();
                    	// 519:36: -> ^( VARIABLE_DECLARATION_STATEMENT localVariableDeclaration )
                    	{
                    	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:519:39: ^( VARIABLE_DECLARATION_STATEMENT localVariableDeclaration )
                    	    {
                    	    CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
                    	    root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(VARIABLE_DECLARATION_STATEMENT, "VARIABLE_DECLARATION_STATEMENT"), root_1);

                    	    adaptor.AddChild(root_1, stream_localVariableDeclaration.NextTree());

                    	    adaptor.AddChild(root_0, root_1);
                    	    }

                    	}

                    	retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;

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

            if ( (state.backtracking==0) )
            {	retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
            if ( state.backtracking > 0 ) 
            {
            	Memoize(input, 65, statement_StartIndex); 
            }
        }
        return retval;
    }
Beispiel #13
0
    // $ANTLR start "block"
    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:496:1: block : '{' ( statement )* '}' -> ^( BLOCK ( ^( STATEMENT statement ) )* ) ;
    public PsimulexParser.block_return block() // throws RecognitionException [1]
    {   
        PsimulexParser.block_return retval = new PsimulexParser.block_return();
        retval.Start = input.LT(1);
        int block_StartIndex = input.Index();
        CommonTree root_0 = null;

        IToken char_literal172 = null;
        IToken char_literal174 = null;
        PsimulexParser.statement_return statement173 = default(PsimulexParser.statement_return);


        CommonTree char_literal172_tree=null;
        CommonTree char_literal174_tree=null;
        RewriteRuleTokenStream stream_144 = new RewriteRuleTokenStream(adaptor,"token 144");
        RewriteRuleTokenStream stream_145 = new RewriteRuleTokenStream(adaptor,"token 145");
        RewriteRuleSubtreeStream stream_statement = new RewriteRuleSubtreeStream(adaptor,"rule statement");
        try 
    	{
    	    if ( (state.backtracking > 0) && AlreadyParsedRule(input, 63) ) 
    	    {
    	    	return retval; 
    	    }
            // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:497:5: ( '{' ( statement )* '}' -> ^( BLOCK ( ^( STATEMENT statement ) )* ) )
            // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:497:9: '{' ( statement )* '}'
            {
            	char_literal172=(IToken)Match(input,144,FOLLOW_144_in_block2398); if (state.failed) return retval; 
            	if ( (state.backtracking==0) ) stream_144.Add(char_literal172);

            	// C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:497:13: ( statement )*
            	do 
            	{
            	    int alt42 = 2;
            	    int LA42_0 = input.LA(1);

            	    if ( (LA42_0 == StringLiteral || LA42_0 == Identifier || (LA42_0 >= Reference && LA42_0 <= Iterator) || LA42_0 == Minus || (LA42_0 >= LogicalNot && LA42_0 <= If) || (LA42_0 >= For && LA42_0 <= ForEach) || LA42_0 == Loop || LA42_0 == 143 || LA42_0 == 149) )
            	    {
            	        alt42 = 1;
            	    }


            	    switch (alt42) 
            		{
            			case 1 :
            			    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:0:0: statement
            			    {
            			    	PushFollow(FOLLOW_statement_in_block2400);
            			    	statement173 = statement();
            			    	state.followingStackPointer--;
            			    	if (state.failed) return retval;
            			    	if ( (state.backtracking==0) ) stream_statement.Add(statement173.Tree);

            			    }
            			    break;

            			default:
            			    goto loop42;
            	    }
            	} while (true);

            	loop42:
            		;	// Stops C# compiler whining that label 'loop42' has no statements

            	char_literal174=(IToken)Match(input,145,FOLLOW_145_in_block2403); if (state.failed) return retval; 
            	if ( (state.backtracking==0) ) stream_145.Add(char_literal174);



            	// AST REWRITE
            	// elements:          statement
            	// token labels:      
            	// rule labels:       retval
            	// token list labels: 
            	// rule list labels:  
            	// wildcard labels: 
            	if ( (state.backtracking==0) ) {
            	retval.Tree = root_0;
            	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

            	root_0 = (CommonTree)adaptor.GetNilNode();
            	// 497:28: -> ^( BLOCK ( ^( STATEMENT statement ) )* )
            	{
            	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:497:31: ^( BLOCK ( ^( STATEMENT statement ) )* )
            	    {
            	    CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
            	    root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(BLOCK, "BLOCK"), root_1);

            	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:497:40: ( ^( STATEMENT statement ) )*
            	    while ( stream_statement.HasNext() )
            	    {
            	        // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:497:40: ^( STATEMENT statement )
            	        {
            	        CommonTree root_2 = (CommonTree)adaptor.GetNilNode();
            	        root_2 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(STATEMENT, "STATEMENT"), root_2);

            	        adaptor.AddChild(root_2, stream_statement.NextTree());

            	        adaptor.AddChild(root_1, root_2);
            	        }

            	    }
            	    stream_statement.Reset();

            	    adaptor.AddChild(root_0, root_1);
            	    }

            	}

            	retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( (state.backtracking==0) )
            {	retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
            if ( state.backtracking > 0 ) 
            {
            	Memoize(input, 63, block_StartIndex); 
            }
        }
        return retval;
    }
Beispiel #14
0
    // $ANTLR start "constantArrayInitializer"
    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:453:1: constantArrayInitializer : New dataType '[' constantData ( ',' constantData )* ']' -> ^( ARRAY_INITIALIZER dataType constantData ( constantData )* ) ;
    public PsimulexParser.constantArrayInitializer_return constantArrayInitializer() // throws RecognitionException [1]
    {   
        PsimulexParser.constantArrayInitializer_return retval = new PsimulexParser.constantArrayInitializer_return();
        retval.Start = input.LT(1);
        int constantArrayInitializer_StartIndex = input.Index();
        CommonTree root_0 = null;

        IToken New165 = null;
        IToken char_literal167 = null;
        IToken char_literal169 = null;
        IToken char_literal171 = null;
        PsimulexParser.dataType_return dataType166 = default(PsimulexParser.dataType_return);

        PsimulexParser.constantData_return constantData168 = default(PsimulexParser.constantData_return);

        PsimulexParser.constantData_return constantData170 = default(PsimulexParser.constantData_return);


        CommonTree New165_tree=null;
        CommonTree char_literal167_tree=null;
        CommonTree char_literal169_tree=null;
        CommonTree char_literal171_tree=null;
        RewriteRuleTokenStream stream_146 = new RewriteRuleTokenStream(adaptor,"token 146");
        RewriteRuleTokenStream stream_147 = new RewriteRuleTokenStream(adaptor,"token 147");
        RewriteRuleTokenStream stream_148 = new RewriteRuleTokenStream(adaptor,"token 148");
        RewriteRuleTokenStream stream_New = new RewriteRuleTokenStream(adaptor,"token New");
        RewriteRuleSubtreeStream stream_constantData = new RewriteRuleSubtreeStream(adaptor,"rule constantData");
        RewriteRuleSubtreeStream stream_dataType = new RewriteRuleSubtreeStream(adaptor,"rule dataType");
        try 
    	{
    	    if ( (state.backtracking > 0) && AlreadyParsedRule(input, 62) ) 
    	    {
    	    	return retval; 
    	    }
            // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:454:2: ( New dataType '[' constantData ( ',' constantData )* ']' -> ^( ARRAY_INITIALIZER dataType constantData ( constantData )* ) )
            // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:454:4: New dataType '[' constantData ( ',' constantData )* ']'
            {
            	New165=(IToken)Match(input,New,FOLLOW_New_in_constantArrayInitializer2329); if (state.failed) return retval; 
            	if ( (state.backtracking==0) ) stream_New.Add(New165);

            	PushFollow(FOLLOW_dataType_in_constantArrayInitializer2331);
            	dataType166 = dataType();
            	state.followingStackPointer--;
            	if (state.failed) return retval;
            	if ( (state.backtracking==0) ) stream_dataType.Add(dataType166.Tree);
            	char_literal167=(IToken)Match(input,146,FOLLOW_146_in_constantArrayInitializer2333); if (state.failed) return retval; 
            	if ( (state.backtracking==0) ) stream_146.Add(char_literal167);

            	PushFollow(FOLLOW_constantData_in_constantArrayInitializer2335);
            	constantData168 = constantData();
            	state.followingStackPointer--;
            	if (state.failed) return retval;
            	if ( (state.backtracking==0) ) stream_constantData.Add(constantData168.Tree);
            	// C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:454:34: ( ',' constantData )*
            	do 
            	{
            	    int alt41 = 2;
            	    int LA41_0 = input.LA(1);

            	    if ( (LA41_0 == 147) )
            	    {
            	        alt41 = 1;
            	    }


            	    switch (alt41) 
            		{
            			case 1 :
            			    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:454:36: ',' constantData
            			    {
            			    	char_literal169=(IToken)Match(input,147,FOLLOW_147_in_constantArrayInitializer2339); if (state.failed) return retval; 
            			    	if ( (state.backtracking==0) ) stream_147.Add(char_literal169);

            			    	PushFollow(FOLLOW_constantData_in_constantArrayInitializer2341);
            			    	constantData170 = constantData();
            			    	state.followingStackPointer--;
            			    	if (state.failed) return retval;
            			    	if ( (state.backtracking==0) ) stream_constantData.Add(constantData170.Tree);

            			    }
            			    break;

            			default:
            			    goto loop41;
            	    }
            	} while (true);

            	loop41:
            		;	// Stops C# compiler whining that label 'loop41' has no statements

            	char_literal171=(IToken)Match(input,148,FOLLOW_148_in_constantArrayInitializer2346); if (state.failed) return retval; 
            	if ( (state.backtracking==0) ) stream_148.Add(char_literal171);



            	// AST REWRITE
            	// elements:          constantData, constantData, dataType
            	// token labels:      
            	// rule labels:       retval
            	// token list labels: 
            	// rule list labels:  
            	// wildcard labels: 
            	if ( (state.backtracking==0) ) {
            	retval.Tree = root_0;
            	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

            	root_0 = (CommonTree)adaptor.GetNilNode();
            	// 454:60: -> ^( ARRAY_INITIALIZER dataType constantData ( constantData )* )
            	{
            	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:454:63: ^( ARRAY_INITIALIZER dataType constantData ( constantData )* )
            	    {
            	    CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
            	    root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(ARRAY_INITIALIZER, "ARRAY_INITIALIZER"), root_1);

            	    adaptor.AddChild(root_1, stream_dataType.NextTree());
            	    adaptor.AddChild(root_1, stream_constantData.NextTree());
            	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:454:106: ( constantData )*
            	    while ( stream_constantData.HasNext() )
            	    {
            	        adaptor.AddChild(root_1, stream_constantData.NextTree());

            	    }
            	    stream_constantData.Reset();

            	    adaptor.AddChild(root_0, root_1);
            	    }

            	}

            	retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( (state.backtracking==0) )
            {	retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
            if ( state.backtracking > 0 ) 
            {
            	Memoize(input, 62, constantArrayInitializer_StartIndex); 
            }
        }
        return retval;
    }
Beispiel #15
0
    // $ANTLR start "constantCollectionInitializer"
    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:449:1: constantCollectionInitializer : New collectionType '{' constantData ( ',' constantData )* '}' -> ^( COLLECTION_INITIALIZER collectionType constantData ( constantData )* ) ;
    public PsimulexParser.constantCollectionInitializer_return constantCollectionInitializer() // throws RecognitionException [1]
    {   
        PsimulexParser.constantCollectionInitializer_return retval = new PsimulexParser.constantCollectionInitializer_return();
        retval.Start = input.LT(1);
        int constantCollectionInitializer_StartIndex = input.Index();
        CommonTree root_0 = null;

        IToken New158 = null;
        IToken char_literal160 = null;
        IToken char_literal162 = null;
        IToken char_literal164 = null;
        PsimulexParser.collectionType_return collectionType159 = default(PsimulexParser.collectionType_return);

        PsimulexParser.constantData_return constantData161 = default(PsimulexParser.constantData_return);

        PsimulexParser.constantData_return constantData163 = default(PsimulexParser.constantData_return);


        CommonTree New158_tree=null;
        CommonTree char_literal160_tree=null;
        CommonTree char_literal162_tree=null;
        CommonTree char_literal164_tree=null;
        RewriteRuleTokenStream stream_144 = new RewriteRuleTokenStream(adaptor,"token 144");
        RewriteRuleTokenStream stream_145 = new RewriteRuleTokenStream(adaptor,"token 145");
        RewriteRuleTokenStream stream_147 = new RewriteRuleTokenStream(adaptor,"token 147");
        RewriteRuleTokenStream stream_New = new RewriteRuleTokenStream(adaptor,"token New");
        RewriteRuleSubtreeStream stream_collectionType = new RewriteRuleSubtreeStream(adaptor,"rule collectionType");
        RewriteRuleSubtreeStream stream_constantData = new RewriteRuleSubtreeStream(adaptor,"rule constantData");
        try 
    	{
    	    if ( (state.backtracking > 0) && AlreadyParsedRule(input, 61) ) 
    	    {
    	    	return retval; 
    	    }
            // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:450:2: ( New collectionType '{' constantData ( ',' constantData )* '}' -> ^( COLLECTION_INITIALIZER collectionType constantData ( constantData )* ) )
            // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:450:4: New collectionType '{' constantData ( ',' constantData )* '}'
            {
            	New158=(IToken)Match(input,New,FOLLOW_New_in_constantCollectionInitializer2282); if (state.failed) return retval; 
            	if ( (state.backtracking==0) ) stream_New.Add(New158);

            	PushFollow(FOLLOW_collectionType_in_constantCollectionInitializer2284);
            	collectionType159 = collectionType();
            	state.followingStackPointer--;
            	if (state.failed) return retval;
            	if ( (state.backtracking==0) ) stream_collectionType.Add(collectionType159.Tree);
            	char_literal160=(IToken)Match(input,144,FOLLOW_144_in_constantCollectionInitializer2286); if (state.failed) return retval; 
            	if ( (state.backtracking==0) ) stream_144.Add(char_literal160);

            	PushFollow(FOLLOW_constantData_in_constantCollectionInitializer2288);
            	constantData161 = constantData();
            	state.followingStackPointer--;
            	if (state.failed) return retval;
            	if ( (state.backtracking==0) ) stream_constantData.Add(constantData161.Tree);
            	// C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:450:40: ( ',' constantData )*
            	do 
            	{
            	    int alt40 = 2;
            	    int LA40_0 = input.LA(1);

            	    if ( (LA40_0 == 147) )
            	    {
            	        alt40 = 1;
            	    }


            	    switch (alt40) 
            		{
            			case 1 :
            			    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:450:42: ',' constantData
            			    {
            			    	char_literal162=(IToken)Match(input,147,FOLLOW_147_in_constantCollectionInitializer2292); if (state.failed) return retval; 
            			    	if ( (state.backtracking==0) ) stream_147.Add(char_literal162);

            			    	PushFollow(FOLLOW_constantData_in_constantCollectionInitializer2294);
            			    	constantData163 = constantData();
            			    	state.followingStackPointer--;
            			    	if (state.failed) return retval;
            			    	if ( (state.backtracking==0) ) stream_constantData.Add(constantData163.Tree);

            			    }
            			    break;

            			default:
            			    goto loop40;
            	    }
            	} while (true);

            	loop40:
            		;	// Stops C# compiler whining that label 'loop40' has no statements

            	char_literal164=(IToken)Match(input,145,FOLLOW_145_in_constantCollectionInitializer2299); if (state.failed) return retval; 
            	if ( (state.backtracking==0) ) stream_145.Add(char_literal164);



            	// AST REWRITE
            	// elements:          constantData, collectionType, constantData
            	// token labels:      
            	// rule labels:       retval
            	// token list labels: 
            	// rule list labels:  
            	// wildcard labels: 
            	if ( (state.backtracking==0) ) {
            	retval.Tree = root_0;
            	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

            	root_0 = (CommonTree)adaptor.GetNilNode();
            	// 450:66: -> ^( COLLECTION_INITIALIZER collectionType constantData ( constantData )* )
            	{
            	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:450:69: ^( COLLECTION_INITIALIZER collectionType constantData ( constantData )* )
            	    {
            	    CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
            	    root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(COLLECTION_INITIALIZER, "COLLECTION_INITIALIZER"), root_1);

            	    adaptor.AddChild(root_1, stream_collectionType.NextTree());
            	    adaptor.AddChild(root_1, stream_constantData.NextTree());
            	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:450:123: ( constantData )*
            	    while ( stream_constantData.HasNext() )
            	    {
            	        adaptor.AddChild(root_1, stream_constantData.NextTree());

            	    }
            	    stream_constantData.Reset();

            	    adaptor.AddChild(root_0, root_1);
            	    }

            	}

            	retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( (state.backtracking==0) )
            {	retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
            if ( state.backtracking > 0 ) 
            {
            	Memoize(input, 61, constantCollectionInitializer_StartIndex); 
            }
        }
        return retval;
    }
Beispiel #16
0
    // $ANTLR start "globalVariableDeclarations"
    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:111:1: globalVariableDeclarations : ( memberDeclaration )* -> ^( GLOBAL_VARIABLE_DECLARATIONS ( memberDeclaration )* ) ;
    public PsimulexParser.globalVariableDeclarations_return globalVariableDeclarations() // throws RecognitionException [1]
    {   
        PsimulexParser.globalVariableDeclarations_return retval = new PsimulexParser.globalVariableDeclarations_return();
        retval.Start = input.LT(1);
        int globalVariableDeclarations_StartIndex = input.Index();
        CommonTree root_0 = null;

        PsimulexParser.memberDeclaration_return memberDeclaration8 = default(PsimulexParser.memberDeclaration_return);


        RewriteRuleSubtreeStream stream_memberDeclaration = new RewriteRuleSubtreeStream(adaptor,"rule memberDeclaration");
        try 
    	{
    	    if ( (state.backtracking > 0) && AlreadyParsedRule(input, 4) ) 
    	    {
    	    	return retval; 
    	    }
            // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:112:2: ( ( memberDeclaration )* -> ^( GLOBAL_VARIABLE_DECLARATIONS ( memberDeclaration )* ) )
            // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:112:4: ( memberDeclaration )*
            {
            	// C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:112:4: ( memberDeclaration )*
            	do 
            	{
            	    int alt3 = 2;
            	    alt3 = dfa3.Predict(input);
            	    switch (alt3) 
            		{
            			case 1 :
            			    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:0:0: memberDeclaration
            			    {
            			    	PushFollow(FOLLOW_memberDeclaration_in_globalVariableDeclarations442);
            			    	memberDeclaration8 = memberDeclaration();
            			    	state.followingStackPointer--;
            			    	if (state.failed) return retval;
            			    	if ( (state.backtracking==0) ) stream_memberDeclaration.Add(memberDeclaration8.Tree);

            			    }
            			    break;

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

            	loop3:
            		;	// Stops C# compiler whining that label 'loop3' has no statements



            	// AST REWRITE
            	// elements:          memberDeclaration
            	// token labels:      
            	// rule labels:       retval
            	// token list labels: 
            	// rule list labels:  
            	// wildcard labels: 
            	if ( (state.backtracking==0) ) {
            	retval.Tree = root_0;
            	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

            	root_0 = (CommonTree)adaptor.GetNilNode();
            	// 112:23: -> ^( GLOBAL_VARIABLE_DECLARATIONS ( memberDeclaration )* )
            	{
            	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:112:26: ^( GLOBAL_VARIABLE_DECLARATIONS ( memberDeclaration )* )
            	    {
            	    CommonTree root_1 = (CommonTree)adaptor.GetNilNode();
            	    root_1 = (CommonTree)adaptor.BecomeRoot((CommonTree)adaptor.Create(GLOBAL_VARIABLE_DECLARATIONS, "GLOBAL_VARIABLE_DECLARATIONS"), root_1);

            	    // C:\\Works\\Psimulex\\VapeTeam.Psimulex\\VapeTeam.Psimulex.Compiler.Antlr\\Grammar\\Psimulex.g:112:58: ( memberDeclaration )*
            	    while ( stream_memberDeclaration.HasNext() )
            	    {
            	        adaptor.AddChild(root_1, stream_memberDeclaration.NextTree());

            	    }
            	    stream_memberDeclaration.Reset();

            	    adaptor.AddChild(root_0, root_1);
            	    }

            	}

            	retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( (state.backtracking==0) )
            {	retval.Tree = (CommonTree)adaptor.RulePostProcessing(root_0);
            	adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
    	// Conversion of the second argument necessary, but harmless
    	retval.Tree = (CommonTree)adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally 
    	{
            if ( state.backtracking > 0 ) 
            {
            	Memoize(input, 4, globalVariableDeclarations_StartIndex); 
            }
        }
        return retval;
    }
Beispiel #17
0
    // throws RecognitionException [1]
    // $ANTLR start "numberunit"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:223:1: numberunit : number ( unit )? -> ^( IM_NUMBERUNIT number ( unit )? ) ;
    public simpletikzParser.numberunit_return numberunit()
    {
        simpletikzParser.numberunit_return retval = new simpletikzParser.numberunit_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        simpletikzParser.number_return number73 = default(simpletikzParser.number_return);

        simpletikzParser.unit_return unit74 = default(simpletikzParser.unit_return);

        RewriteRuleSubtreeStream stream_unit = new RewriteRuleSubtreeStream(adaptor,"rule unit");
        RewriteRuleSubtreeStream stream_number = new RewriteRuleSubtreeStream(adaptor,"rule number");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:224:2: ( number ( unit )? -> ^( IM_NUMBERUNIT number ( unit )? ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:224:4: number ( unit )?
            {
                PushFollow(FOLLOW_number_in_numberunit883);
                number73 = number();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_number.Add(number73.Tree);
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:224:11: ( unit )?
                int alt24 = 2;
                int LA24_0 = input.LA(1);

                if ( ((LA24_0 >= 57 && LA24_0 <= 62)) )
                {
                    alt24 = 1;
                }
                switch (alt24)
                {
                    case 1 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:224:11: unit
                        {
                            PushFollow(FOLLOW_unit_in_numberunit885);
                            unit74 = unit();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_unit.Add(unit74.Tree);

                        }
                        break;

                }

                // AST REWRITE
                // elements:          number, unit
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 224:17: -> ^( IM_NUMBERUNIT number ( unit )? )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:224:20: ^( IM_NUMBERUNIT number ( unit )? )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_NUMBERUNIT, "IM_NUMBERUNIT"), root_1);

                    adaptor.AddChild(root_1, stream_number.NextTree());
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:224:43: ( unit )?
                    if ( stream_unit.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_unit.NextTree());

                    }
                    stream_unit.Reset();

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #18
0
    // throws RecognitionException [1]
    // $ANTLR start "tikz_options"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:167:1: tikz_options : squarebr_start ( option ( ',' option )* ( ',' )? )? ( tikzstring )? squarebr_end -> ^( IM_OPTIONS squarebr_start ( option )* squarebr_end ) ;
    public simpletikzParser.tikz_options_return tikz_options()
    {
        simpletikzParser.tikz_options_return retval = new simpletikzParser.tikz_options_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal28 = null;
        IToken char_literal30 = null;
        simpletikzParser.squarebr_start_return squarebr_start26 = default(simpletikzParser.squarebr_start_return);

        simpletikzParser.option_return option27 = default(simpletikzParser.option_return);

        simpletikzParser.option_return option29 = default(simpletikzParser.option_return);

        simpletikzParser.tikzstring_return tikzstring31 = default(simpletikzParser.tikzstring_return);

        simpletikzParser.squarebr_end_return squarebr_end32 = default(simpletikzParser.squarebr_end_return);

        object char_literal28_tree=null;
        object char_literal30_tree=null;
        RewriteRuleTokenStream stream_47 = new RewriteRuleTokenStream(adaptor,"token 47");
        RewriteRuleSubtreeStream stream_squarebr_start = new RewriteRuleSubtreeStream(adaptor,"rule squarebr_start");
        RewriteRuleSubtreeStream stream_tikzstring = new RewriteRuleSubtreeStream(adaptor,"rule tikzstring");
        RewriteRuleSubtreeStream stream_squarebr_end = new RewriteRuleSubtreeStream(adaptor,"rule squarebr_end");
        RewriteRuleSubtreeStream stream_option = new RewriteRuleSubtreeStream(adaptor,"rule option");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:168:2: ( squarebr_start ( option ( ',' option )* ( ',' )? )? ( tikzstring )? squarebr_end -> ^( IM_OPTIONS squarebr_start ( option )* squarebr_end ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:168:5: squarebr_start ( option ( ',' option )* ( ',' )? )? ( tikzstring )? squarebr_end
            {
                PushFollow(FOLLOW_squarebr_start_in_tikz_options456);
                squarebr_start26 = squarebr_start();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_squarebr_start.Add(squarebr_start26.Tree);
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:168:20: ( option ( ',' option )* ( ',' )? )?
                int alt8 = 2;
                int LA8_0 = input.LA(1);

                if ( ((LA8_0 >= IM_PATH && LA8_0 <= 42) || LA8_0 == 46 || LA8_0 == 51 || (LA8_0 >= 57 && LA8_0 <= 94)) )
                {
                    alt8 = 1;
                }
                switch (alt8)
                {
                    case 1 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:168:21: option ( ',' option )* ( ',' )?
                        {
                            PushFollow(FOLLOW_option_in_tikz_options459);
                            option27 = option();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_option.Add(option27.Tree);
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:168:28: ( ',' option )*
                            do
                            {
                                int alt6 = 2;
                                int LA6_0 = input.LA(1);

                                if ( (LA6_0 == 47) )
                                {
                                    int LA6_1 = input.LA(2);

                                    if ( ((LA6_1 >= IM_PATH && LA6_1 <= 42) || LA6_1 == 46 || LA6_1 == 51 || (LA6_1 >= 57 && LA6_1 <= 94)) )
                                    {
                                        alt6 = 1;
                                    }

                                }

                                switch (alt6)
                                {
                                    case 1 :
                                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:168:29: ',' option
                                        {
                                            char_literal28=(IToken)Match(input,47,FOLLOW_47_in_tikz_options462); if (state.failed) return retval;
                                            if ( state.backtracking==0 ) stream_47.Add(char_literal28);

                                            PushFollow(FOLLOW_option_in_tikz_options464);
                                            option29 = option();
                                            state.followingStackPointer--;
                                            if (state.failed) return retval;
                                            if ( state.backtracking==0 ) stream_option.Add(option29.Tree);

                                        }
                                        break;

                                    default:
                                        goto loop6;
                                }
                            } while (true);

                            loop6:
                                ;	// Stops C# compiler whining that label 'loop6' has no statements

                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:168:42: ( ',' )?
                            int alt7 = 2;
                            int LA7_0 = input.LA(1);

                            if ( (LA7_0 == 47) )
                            {
                                alt7 = 1;
                            }
                            switch (alt7)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:168:42: ','
                                    {
                                        char_literal30=(IToken)Match(input,47,FOLLOW_47_in_tikz_options468); if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_47.Add(char_literal30);

                                    }
                                    break;

                            }

                        }
                        break;

                }

                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:168:49: ( tikzstring )?
                int alt9 = 2;
                int LA9_0 = input.LA(1);

                if ( (LA9_0 == 43) )
                {
                    alt9 = 1;
                }
                switch (alt9)
                {
                    case 1 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:168:49: tikzstring
                        {
                            PushFollow(FOLLOW_tikzstring_in_tikz_options473);
                            tikzstring31 = tikzstring();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_tikzstring.Add(tikzstring31.Tree);

                        }
                        break;

                }

                PushFollow(FOLLOW_squarebr_end_in_tikz_options476);
                squarebr_end32 = squarebr_end();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_squarebr_end.Add(squarebr_end32.Tree);

                // AST REWRITE
                // elements:          squarebr_end, squarebr_start, option
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 168:75: -> ^( IM_OPTIONS squarebr_start ( option )* squarebr_end )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:168:78: ^( IM_OPTIONS squarebr_start ( option )* squarebr_end )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_OPTIONS, "IM_OPTIONS"), root_1);

                    adaptor.AddChild(root_1, stream_squarebr_start.NextTree());
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:168:106: ( option )*
                    while ( stream_option.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_option.NextTree());

                    }
                    stream_option.Reset();
                    adaptor.AddChild(root_1, stream_squarebr_end.NextTree());

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #19
0
    // throws RecognitionException [1]
    // $ANTLR start "option_style"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:196:1: option_style : idd ( '/.style' | ( '/.append' 'style' ) ) '=' '{' ( option_kv ( ',' option_kv )* )? ( ',' )? '}' -> ^( IM_OPTION_STYLE idd ( option_kv )* ) ;
    public simpletikzParser.option_style_return option_style()
    {
        simpletikzParser.option_style_return retval = new simpletikzParser.option_style_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal58 = null;
        IToken string_literal59 = null;
        IToken string_literal60 = null;
        IToken char_literal61 = null;
        IToken char_literal62 = null;
        IToken char_literal64 = null;
        IToken char_literal66 = null;
        IToken char_literal67 = null;
        simpletikzParser.idd_return idd57 = default(simpletikzParser.idd_return);

        simpletikzParser.option_kv_return option_kv63 = default(simpletikzParser.option_kv_return);

        simpletikzParser.option_kv_return option_kv65 = default(simpletikzParser.option_kv_return);

        object string_literal58_tree=null;
        object string_literal59_tree=null;
        object string_literal60_tree=null;
        object char_literal61_tree=null;
        object char_literal62_tree=null;
        object char_literal64_tree=null;
        object char_literal66_tree=null;
        object char_literal67_tree=null;
        RewriteRuleTokenStream stream_49 = new RewriteRuleTokenStream(adaptor,"token 49");
        RewriteRuleTokenStream stream_43 = new RewriteRuleTokenStream(adaptor,"token 43");
        RewriteRuleTokenStream stream_45 = new RewriteRuleTokenStream(adaptor,"token 45");
        RewriteRuleTokenStream stream_44 = new RewriteRuleTokenStream(adaptor,"token 44");
        RewriteRuleTokenStream stream_47 = new RewriteRuleTokenStream(adaptor,"token 47");
        RewriteRuleTokenStream stream_51 = new RewriteRuleTokenStream(adaptor,"token 51");
        RewriteRuleTokenStream stream_50 = new RewriteRuleTokenStream(adaptor,"token 50");
        RewriteRuleSubtreeStream stream_idd = new RewriteRuleSubtreeStream(adaptor,"rule idd");
        RewriteRuleSubtreeStream stream_option_kv = new RewriteRuleSubtreeStream(adaptor,"rule option_kv");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:2: ( idd ( '/.style' | ( '/.append' 'style' ) ) '=' '{' ( option_kv ( ',' option_kv )* )? ( ',' )? '}' -> ^( IM_OPTION_STYLE idd ( option_kv )* ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:4: idd ( '/.style' | ( '/.append' 'style' ) ) '=' '{' ( option_kv ( ',' option_kv )* )? ( ',' )? '}'
            {
                PushFollow(FOLLOW_idd_in_option_style697);
                idd57 = idd();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_idd.Add(idd57.Tree);
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:8: ( '/.style' | ( '/.append' 'style' ) )
                int alt17 = 2;
                int LA17_0 = input.LA(1);

                if ( (LA17_0 == 49) )
                {
                    alt17 = 1;
                }
                else if ( (LA17_0 == 50) )
                {
                    alt17 = 2;
                }
                else
                {
                    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    NoViableAltException nvae_d17s0 =
                        new NoViableAltException("", 17, 0, input);

                    throw nvae_d17s0;
                }
                switch (alt17)
                {
                    case 1 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:9: '/.style'
                        {
                            string_literal58=(IToken)Match(input,49,FOLLOW_49_in_option_style700); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_49.Add(string_literal58);

                        }
                        break;
                    case 2 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:21: ( '/.append' 'style' )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:21: ( '/.append' 'style' )
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:22: '/.append' 'style'
                            {
                                string_literal59=(IToken)Match(input,50,FOLLOW_50_in_option_style705); if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_50.Add(string_literal59);

                                string_literal60=(IToken)Match(input,51,FOLLOW_51_in_option_style707); if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_51.Add(string_literal60);

                            }

                        }
                        break;

                }

                char_literal61=(IToken)Match(input,45,FOLLOW_45_in_option_style711); if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_45.Add(char_literal61);

                char_literal62=(IToken)Match(input,43,FOLLOW_43_in_option_style713); if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_43.Add(char_literal62);

                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:51: ( option_kv ( ',' option_kv )* )?
                int alt19 = 2;
                int LA19_0 = input.LA(1);

                if ( ((LA19_0 >= IM_PATH && LA19_0 <= 42) || LA19_0 == 46 || LA19_0 == 51 || (LA19_0 >= 57 && LA19_0 <= 94)) )
                {
                    alt19 = 1;
                }
                switch (alt19)
                {
                    case 1 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:52: option_kv ( ',' option_kv )*
                        {
                            PushFollow(FOLLOW_option_kv_in_option_style716);
                            option_kv63 = option_kv();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_option_kv.Add(option_kv63.Tree);
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:62: ( ',' option_kv )*
                            do
                            {
                                int alt18 = 2;
                                int LA18_0 = input.LA(1);

                                if ( (LA18_0 == 47) )
                                {
                                    int LA18_1 = input.LA(2);

                                    if ( ((LA18_1 >= IM_PATH && LA18_1 <= 42) || LA18_1 == 46 || LA18_1 == 51 || (LA18_1 >= 57 && LA18_1 <= 94)) )
                                    {
                                        alt18 = 1;
                                    }

                                }

                                switch (alt18)
                                {
                                    case 1 :
                                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:63: ',' option_kv
                                        {
                                            char_literal64=(IToken)Match(input,47,FOLLOW_47_in_option_style719); if (state.failed) return retval;
                                            if ( state.backtracking==0 ) stream_47.Add(char_literal64);

                                            PushFollow(FOLLOW_option_kv_in_option_style721);
                                            option_kv65 = option_kv();
                                            state.followingStackPointer--;
                                            if (state.failed) return retval;
                                            if ( state.backtracking==0 ) stream_option_kv.Add(option_kv65.Tree);

                                        }
                                        break;

                                    default:
                                        goto loop18;
                                }
                            } while (true);

                            loop18:
                                ;	// Stops C# compiler whining that label 'loop18' has no statements

                        }
                        break;

                }

                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:82: ( ',' )?
                int alt20 = 2;
                int LA20_0 = input.LA(1);

                if ( (LA20_0 == 47) )
                {
                    alt20 = 1;
                }
                switch (alt20)
                {
                    case 1 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:82: ','
                        {
                            char_literal66=(IToken)Match(input,47,FOLLOW_47_in_option_style728); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_47.Add(char_literal66);

                        }
                        break;

                }

                char_literal67=(IToken)Match(input,44,FOLLOW_44_in_option_style731); if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_44.Add(char_literal67);

                // AST REWRITE
                // elements:          idd, option_kv
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 197:92: -> ^( IM_OPTION_STYLE idd ( option_kv )* )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:95: ^( IM_OPTION_STYLE idd ( option_kv )* )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_OPTION_STYLE, "IM_OPTION_STYLE"), root_1);

                    adaptor.AddChild(root_1, stream_idd.NextTree());
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:197:117: ( option_kv )*
                    while ( stream_option_kv.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_option_kv.NextTree());

                    }
                    stream_option_kv.Reset();

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #20
0
    // throws RecognitionException [1]
    // $ANTLR start "tikz_set"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:236:1: tikz_set : tikz_set_start ( option ( ',' option )* ( ',' )? )? roundbr_end -> ^( IM_TIKZSET tikz_set_start ( option )* roundbr_end ) ;
    public simpletikzParser.tikz_set_return tikz_set()
    {
        simpletikzParser.tikz_set_return retval = new simpletikzParser.tikz_set_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal79 = null;
        IToken char_literal81 = null;
        simpletikzParser.tikz_set_start_return tikz_set_start77 = default(simpletikzParser.tikz_set_start_return);

        simpletikzParser.option_return option78 = default(simpletikzParser.option_return);

        simpletikzParser.option_return option80 = default(simpletikzParser.option_return);

        simpletikzParser.roundbr_end_return roundbr_end82 = default(simpletikzParser.roundbr_end_return);

        object char_literal79_tree=null;
        object char_literal81_tree=null;
        RewriteRuleTokenStream stream_47 = new RewriteRuleTokenStream(adaptor,"token 47");
        RewriteRuleSubtreeStream stream_tikz_set_start = new RewriteRuleSubtreeStream(adaptor,"rule tikz_set_start");
        RewriteRuleSubtreeStream stream_roundbr_end = new RewriteRuleSubtreeStream(adaptor,"rule roundbr_end");
        RewriteRuleSubtreeStream stream_option = new RewriteRuleSubtreeStream(adaptor,"rule option");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:237:2: ( tikz_set_start ( option ( ',' option )* ( ',' )? )? roundbr_end -> ^( IM_TIKZSET tikz_set_start ( option )* roundbr_end ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:237:5: tikz_set_start ( option ( ',' option )* ( ',' )? )? roundbr_end
            {
                PushFollow(FOLLOW_tikz_set_start_in_tikz_set966);
                tikz_set_start77 = tikz_set_start();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_tikz_set_start.Add(tikz_set_start77.Tree);
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:237:20: ( option ( ',' option )* ( ',' )? )?
                int alt27 = 2;
                int LA27_0 = input.LA(1);

                if ( ((LA27_0 >= IM_PATH && LA27_0 <= 42) || LA27_0 == 46 || LA27_0 == 51 || (LA27_0 >= 57 && LA27_0 <= 94)) )
                {
                    alt27 = 1;
                }
                switch (alt27)
                {
                    case 1 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:237:21: option ( ',' option )* ( ',' )?
                        {
                            PushFollow(FOLLOW_option_in_tikz_set969);
                            option78 = option();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_option.Add(option78.Tree);
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:237:28: ( ',' option )*
                            do
                            {
                                int alt25 = 2;
                                int LA25_0 = input.LA(1);

                                if ( (LA25_0 == 47) )
                                {
                                    int LA25_1 = input.LA(2);

                                    if ( ((LA25_1 >= IM_PATH && LA25_1 <= 42) || LA25_1 == 46 || LA25_1 == 51 || (LA25_1 >= 57 && LA25_1 <= 94)) )
                                    {
                                        alt25 = 1;
                                    }

                                }

                                switch (alt25)
                                {
                                    case 1 :
                                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:237:29: ',' option
                                        {
                                            char_literal79=(IToken)Match(input,47,FOLLOW_47_in_tikz_set972); if (state.failed) return retval;
                                            if ( state.backtracking==0 ) stream_47.Add(char_literal79);

                                            PushFollow(FOLLOW_option_in_tikz_set974);
                                            option80 = option();
                                            state.followingStackPointer--;
                                            if (state.failed) return retval;
                                            if ( state.backtracking==0 ) stream_option.Add(option80.Tree);

                                        }
                                        break;

                                    default:
                                        goto loop25;
                                }
                            } while (true);

                            loop25:
                                ;	// Stops C# compiler whining that label 'loop25' has no statements

                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:237:42: ( ',' )?
                            int alt26 = 2;
                            int LA26_0 = input.LA(1);

                            if ( (LA26_0 == 47) )
                            {
                                alt26 = 1;
                            }
                            switch (alt26)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:237:42: ','
                                    {
                                        char_literal81=(IToken)Match(input,47,FOLLOW_47_in_tikz_set978); if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_47.Add(char_literal81);

                                    }
                                    break;

                            }

                        }
                        break;

                }

                PushFollow(FOLLOW_roundbr_end_in_tikz_set983);
                roundbr_end82 = roundbr_end();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_roundbr_end.Add(roundbr_end82.Tree);

                // AST REWRITE
                // elements:          option, tikz_set_start, roundbr_end
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 237:61: -> ^( IM_TIKZSET tikz_set_start ( option )* roundbr_end )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:237:64: ^( IM_TIKZSET tikz_set_start ( option )* roundbr_end )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_TIKZSET, "IM_TIKZSET"), root_1);

                    adaptor.AddChild(root_1, stream_tikz_set_start.NextTree());
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:237:92: ( option )*
                    while ( stream_option.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_option.NextTree());

                    }
                    stream_option.Reset();
                    adaptor.AddChild(root_1, stream_roundbr_end.NextTree());

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #21
0
    // throws RecognitionException [1]
    // $ANTLR start "tikzcoordinate_ext"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:357:1: tikzcoordinate_ext : coordinate_start ( ( ( tikzcoordinate_core3 )=> tikzcoordinate_core3 ) | ( ( tikzcoordinate_core2 )=> tikzcoordinate_core2 ) | ( ( tikzcoordinate_core1 )=> tikzcoordinate_core1 ) )? ( tikzpath_element )* semicolon_end -> ^( IM_PATH coordinate_start ( tikzcoordinate_core3 )? ( tikzcoordinate_core2 )? ( tikzcoordinate_core1 )? ( tikzpath_element )* semicolon_end ) ;
    public simpletikzParser.tikzcoordinate_ext_return tikzcoordinate_ext()
    {
        simpletikzParser.tikzcoordinate_ext_return retval = new simpletikzParser.tikzcoordinate_ext_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        simpletikzParser.coordinate_start_return coordinate_start185 = default(simpletikzParser.coordinate_start_return);

        simpletikzParser.tikzcoordinate_core3_return tikzcoordinate_core3186 = default(simpletikzParser.tikzcoordinate_core3_return);

        simpletikzParser.tikzcoordinate_core2_return tikzcoordinate_core2187 = default(simpletikzParser.tikzcoordinate_core2_return);

        simpletikzParser.tikzcoordinate_core1_return tikzcoordinate_core1188 = default(simpletikzParser.tikzcoordinate_core1_return);

        simpletikzParser.tikzpath_element_return tikzpath_element189 = default(simpletikzParser.tikzpath_element_return);

        simpletikzParser.semicolon_end_return semicolon_end190 = default(simpletikzParser.semicolon_end_return);

        RewriteRuleSubtreeStream stream_tikzpath_element = new RewriteRuleSubtreeStream(adaptor,"rule tikzpath_element");
        RewriteRuleSubtreeStream stream_tikzcoordinate_core3 = new RewriteRuleSubtreeStream(adaptor,"rule tikzcoordinate_core3");
        RewriteRuleSubtreeStream stream_tikzcoordinate_core2 = new RewriteRuleSubtreeStream(adaptor,"rule tikzcoordinate_core2");
        RewriteRuleSubtreeStream stream_coordinate_start = new RewriteRuleSubtreeStream(adaptor,"rule coordinate_start");
        RewriteRuleSubtreeStream stream_tikzcoordinate_core1 = new RewriteRuleSubtreeStream(adaptor,"rule tikzcoordinate_core1");
        RewriteRuleSubtreeStream stream_semicolon_end = new RewriteRuleSubtreeStream(adaptor,"rule semicolon_end");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:358:2: ( coordinate_start ( ( ( tikzcoordinate_core3 )=> tikzcoordinate_core3 ) | ( ( tikzcoordinate_core2 )=> tikzcoordinate_core2 ) | ( ( tikzcoordinate_core1 )=> tikzcoordinate_core1 ) )? ( tikzpath_element )* semicolon_end -> ^( IM_PATH coordinate_start ( tikzcoordinate_core3 )? ( tikzcoordinate_core2 )? ( tikzcoordinate_core1 )? ( tikzpath_element )* semicolon_end ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:358:4: coordinate_start ( ( ( tikzcoordinate_core3 )=> tikzcoordinate_core3 ) | ( ( tikzcoordinate_core2 )=> tikzcoordinate_core2 ) | ( ( tikzcoordinate_core1 )=> tikzcoordinate_core1 ) )? ( tikzpath_element )* semicolon_end
            {
                PushFollow(FOLLOW_coordinate_start_in_tikzcoordinate_ext2110);
                coordinate_start185 = coordinate_start();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_coordinate_start.Add(coordinate_start185.Tree);
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:359:5: ( ( ( tikzcoordinate_core3 )=> tikzcoordinate_core3 ) | ( ( tikzcoordinate_core2 )=> tikzcoordinate_core2 ) | ( ( tikzcoordinate_core1 )=> tikzcoordinate_core1 ) )?
                int alt48 = 4;
                alt48 = dfa48.Predict(input);
                switch (alt48)
                {
                    case 1 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:359:7: ( ( tikzcoordinate_core3 )=> tikzcoordinate_core3 )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:359:7: ( ( tikzcoordinate_core3 )=> tikzcoordinate_core3 )
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:359:8: ( tikzcoordinate_core3 )=> tikzcoordinate_core3
                            {
                                PushFollow(FOLLOW_tikzcoordinate_core3_in_tikzcoordinate_ext2125);
                                tikzcoordinate_core3186 = tikzcoordinate_core3();
                                state.followingStackPointer--;
                                if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_tikzcoordinate_core3.Add(tikzcoordinate_core3186.Tree);

                            }

                        }
                        break;
                    case 2 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:360:11: ( ( tikzcoordinate_core2 )=> tikzcoordinate_core2 )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:360:11: ( ( tikzcoordinate_core2 )=> tikzcoordinate_core2 )
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:360:12: ( tikzcoordinate_core2 )=> tikzcoordinate_core2
                            {
                                PushFollow(FOLLOW_tikzcoordinate_core2_in_tikzcoordinate_ext2144);
                                tikzcoordinate_core2187 = tikzcoordinate_core2();
                                state.followingStackPointer--;
                                if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_tikzcoordinate_core2.Add(tikzcoordinate_core2187.Tree);

                            }

                        }
                        break;
                    case 3 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:361:11: ( ( tikzcoordinate_core1 )=> tikzcoordinate_core1 )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:361:11: ( ( tikzcoordinate_core1 )=> tikzcoordinate_core1 )
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:361:12: ( tikzcoordinate_core1 )=> tikzcoordinate_core1
                            {
                                PushFollow(FOLLOW_tikzcoordinate_core1_in_tikzcoordinate_ext2164);
                                tikzcoordinate_core1188 = tikzcoordinate_core1();
                                state.followingStackPointer--;
                                if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_tikzcoordinate_core1.Add(tikzcoordinate_core1188.Tree);

                            }

                        }
                        break;

                }

                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:362:6: ( tikzpath_element )*
                do
                {
                    int alt49 = 2;
                    int LA49_0 = input.LA(1);

                    if ( ((LA49_0 >= ID && LA49_0 <= COMMAND) || LA49_0 == 43 || LA49_0 == 45 || LA49_0 == 52 || LA49_0 == 54 || LA49_0 == 58 || LA49_0 == 77 || (LA49_0 >= 79 && LA49_0 <= 80) || (LA49_0 >= 82 && LA49_0 <= 91)) )
                    {
                        alt49 = 1;
                    }

                    switch (alt49)
                    {
                        case 1 :
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:362:6: tikzpath_element
                            {
                                PushFollow(FOLLOW_tikzpath_element_in_tikzcoordinate_ext2175);
                                tikzpath_element189 = tikzpath_element();
                                state.followingStackPointer--;
                                if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_tikzpath_element.Add(tikzpath_element189.Tree);

                            }
                            break;

                        default:
                            goto loop49;
                    }
                } while (true);

                loop49:
                    ;	// Stops C# compiler whining that label 'loop49' has no statements

                PushFollow(FOLLOW_semicolon_end_in_tikzcoordinate_ext2178);
                semicolon_end190 = semicolon_end();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_semicolon_end.Add(semicolon_end190.Tree);

                // AST REWRITE
                // elements:          tikzcoordinate_core1, tikzcoordinate_core3, semicolon_end, tikzpath_element, tikzcoordinate_core2, coordinate_start
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 363:6: -> ^( IM_PATH coordinate_start ( tikzcoordinate_core3 )? ( tikzcoordinate_core2 )? ( tikzcoordinate_core1 )? ( tikzpath_element )* semicolon_end )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:363:9: ^( IM_PATH coordinate_start ( tikzcoordinate_core3 )? ( tikzcoordinate_core2 )? ( tikzcoordinate_core1 )? ( tikzpath_element )* semicolon_end )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_PATH, "IM_PATH"), root_1);

                    adaptor.AddChild(root_1, stream_coordinate_start.NextTree());
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:364:6: ( tikzcoordinate_core3 )?
                    if ( stream_tikzcoordinate_core3.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_tikzcoordinate_core3.NextTree());

                    }
                    stream_tikzcoordinate_core3.Reset();
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:365:6: ( tikzcoordinate_core2 )?
                    if ( stream_tikzcoordinate_core2.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_tikzcoordinate_core2.NextTree());

                    }
                    stream_tikzcoordinate_core2.Reset();
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:366:6: ( tikzcoordinate_core1 )?
                    if ( stream_tikzcoordinate_core1.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_tikzcoordinate_core1.NextTree());

                    }
                    stream_tikzcoordinate_core1.Reset();
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:367:6: ( tikzpath_element )*
                    while ( stream_tikzpath_element.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_tikzpath_element.NextTree());

                    }
                    stream_tikzpath_element.Reset();
                    adaptor.AddChild(root_1, stream_semicolon_end.NextTree());

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #22
0
    // throws RecognitionException [1]
    // $ANTLR start "arc"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:422:1: arc : ( 'arc' ( '(' numberunitorvariable ':' numberunitorvariable ':' numberunitorvariable ( 'and' numberunit )? ')' ) -> ^( IM_ARC ( numberunitorvariable )+ ( numberunit )? ) | 'arc' ( '(' coord_part ':' coord_part ':' coord_part ( 'and' numberunit )? ')' ) -> ^( IM_ARC ( coord_part )+ ( numberunit )? ) | 'arc' tikz_options -> ^( IM_DONTCARE ) );
    public simpletikzParser.arc_return arc()
    {
        simpletikzParser.arc_return retval = new simpletikzParser.arc_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal223 = null;
        IToken char_literal224 = null;
        IToken char_literal226 = null;
        IToken char_literal228 = null;
        IToken string_literal230 = null;
        IToken char_literal232 = null;
        IToken string_literal233 = null;
        IToken char_literal234 = null;
        IToken char_literal236 = null;
        IToken char_literal238 = null;
        IToken string_literal240 = null;
        IToken char_literal242 = null;
        IToken string_literal243 = null;
        simpletikzParser.numberunitorvariable_return numberunitorvariable225 = default(simpletikzParser.numberunitorvariable_return);

        simpletikzParser.numberunitorvariable_return numberunitorvariable227 = default(simpletikzParser.numberunitorvariable_return);

        simpletikzParser.numberunitorvariable_return numberunitorvariable229 = default(simpletikzParser.numberunitorvariable_return);

        simpletikzParser.numberunit_return numberunit231 = default(simpletikzParser.numberunit_return);

        simpletikzParser.coord_part_return coord_part235 = default(simpletikzParser.coord_part_return);

        simpletikzParser.coord_part_return coord_part237 = default(simpletikzParser.coord_part_return);

        simpletikzParser.coord_part_return coord_part239 = default(simpletikzParser.coord_part_return);

        simpletikzParser.numberunit_return numberunit241 = default(simpletikzParser.numberunit_return);

        simpletikzParser.tikz_options_return tikz_options244 = default(simpletikzParser.tikz_options_return);

        object string_literal223_tree=null;
        object char_literal224_tree=null;
        object char_literal226_tree=null;
        object char_literal228_tree=null;
        object string_literal230_tree=null;
        object char_literal232_tree=null;
        object string_literal233_tree=null;
        object char_literal234_tree=null;
        object char_literal236_tree=null;
        object char_literal238_tree=null;
        object string_literal240_tree=null;
        object char_literal242_tree=null;
        object string_literal243_tree=null;
        RewriteRuleTokenStream stream_48 = new RewriteRuleTokenStream(adaptor,"token 48");
        RewriteRuleTokenStream stream_78 = new RewriteRuleTokenStream(adaptor,"token 78");
        RewriteRuleTokenStream stream_52 = new RewriteRuleTokenStream(adaptor,"token 52");
        RewriteRuleTokenStream stream_53 = new RewriteRuleTokenStream(adaptor,"token 53");
        RewriteRuleTokenStream stream_84 = new RewriteRuleTokenStream(adaptor,"token 84");
        RewriteRuleSubtreeStream stream_numberunit = new RewriteRuleSubtreeStream(adaptor,"rule numberunit");
        RewriteRuleSubtreeStream stream_numberunitorvariable = new RewriteRuleSubtreeStream(adaptor,"rule numberunitorvariable");
        RewriteRuleSubtreeStream stream_coord_part = new RewriteRuleSubtreeStream(adaptor,"rule coord_part");
        RewriteRuleSubtreeStream stream_tikz_options = new RewriteRuleSubtreeStream(adaptor,"rule tikz_options");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:423:2: ( 'arc' ( '(' numberunitorvariable ':' numberunitorvariable ':' numberunitorvariable ( 'and' numberunit )? ')' ) -> ^( IM_ARC ( numberunitorvariable )+ ( numberunit )? ) | 'arc' ( '(' coord_part ':' coord_part ':' coord_part ( 'and' numberunit )? ')' ) -> ^( IM_ARC ( coord_part )+ ( numberunit )? ) | 'arc' tikz_options -> ^( IM_DONTCARE ) )
            int alt60 = 3;
            alt60 = dfa60.Predict(input);
            switch (alt60)
            {
                case 1 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:423:4: 'arc' ( '(' numberunitorvariable ':' numberunitorvariable ':' numberunitorvariable ( 'and' numberunit )? ')' )
                    {
                        string_literal223=(IToken)Match(input,84,FOLLOW_84_in_arc2595); if (state.failed) return retval;
                        if ( state.backtracking==0 ) stream_84.Add(string_literal223);

                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:423:10: ( '(' numberunitorvariable ':' numberunitorvariable ':' numberunitorvariable ( 'and' numberunit )? ')' )
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:423:11: '(' numberunitorvariable ':' numberunitorvariable ':' numberunitorvariable ( 'and' numberunit )? ')'
                        {
                            char_literal224=(IToken)Match(input,52,FOLLOW_52_in_arc2598); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_52.Add(char_literal224);

                            PushFollow(FOLLOW_numberunitorvariable_in_arc2600);
                            numberunitorvariable225 = numberunitorvariable();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_numberunitorvariable.Add(numberunitorvariable225.Tree);
                            char_literal226=(IToken)Match(input,48,FOLLOW_48_in_arc2602); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_48.Add(char_literal226);

                            PushFollow(FOLLOW_numberunitorvariable_in_arc2604);
                            numberunitorvariable227 = numberunitorvariable();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_numberunitorvariable.Add(numberunitorvariable227.Tree);
                            char_literal228=(IToken)Match(input,48,FOLLOW_48_in_arc2606); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_48.Add(char_literal228);

                            PushFollow(FOLLOW_numberunitorvariable_in_arc2608);
                            numberunitorvariable229 = numberunitorvariable();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_numberunitorvariable.Add(numberunitorvariable229.Tree);
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:423:86: ( 'and' numberunit )?
                            int alt58 = 2;
                            int LA58_0 = input.LA(1);

                            if ( (LA58_0 == 78) )
                            {
                                alt58 = 1;
                            }
                            switch (alt58)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:423:87: 'and' numberunit
                                    {
                                        string_literal230=(IToken)Match(input,78,FOLLOW_78_in_arc2611); if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_78.Add(string_literal230);

                                        PushFollow(FOLLOW_numberunit_in_arc2613);
                                        numberunit231 = numberunit();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_numberunit.Add(numberunit231.Tree);

                                    }
                                    break;

                            }

                            char_literal232=(IToken)Match(input,53,FOLLOW_53_in_arc2617); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_53.Add(char_literal232);

                        }

                        // AST REWRITE
                        // elements:          numberunitorvariable, numberunit
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 423:111: -> ^( IM_ARC ( numberunitorvariable )+ ( numberunit )? )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:423:114: ^( IM_ARC ( numberunitorvariable )+ ( numberunit )? )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_ARC, "IM_ARC"), root_1);

                            if ( !(stream_numberunitorvariable.HasNext()) ) {
                                throw new RewriteEarlyExitException();
                            }
                            while ( stream_numberunitorvariable.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_numberunitorvariable.NextTree());

                            }
                            stream_numberunitorvariable.Reset();
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:423:145: ( numberunit )?
                            if ( stream_numberunit.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_numberunit.NextTree());

                            }
                            stream_numberunit.Reset();

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 2 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:424:4: 'arc' ( '(' coord_part ':' coord_part ':' coord_part ( 'and' numberunit )? ')' )
                    {
                        string_literal233=(IToken)Match(input,84,FOLLOW_84_in_arc2635); if (state.failed) return retval;
                        if ( state.backtracking==0 ) stream_84.Add(string_literal233);

                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:424:10: ( '(' coord_part ':' coord_part ':' coord_part ( 'and' numberunit )? ')' )
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:424:11: '(' coord_part ':' coord_part ':' coord_part ( 'and' numberunit )? ')'
                        {
                            char_literal234=(IToken)Match(input,52,FOLLOW_52_in_arc2638); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_52.Add(char_literal234);

                            PushFollow(FOLLOW_coord_part_in_arc2640);
                            coord_part235 = coord_part();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_coord_part.Add(coord_part235.Tree);
                            char_literal236=(IToken)Match(input,48,FOLLOW_48_in_arc2642); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_48.Add(char_literal236);

                            PushFollow(FOLLOW_coord_part_in_arc2644);
                            coord_part237 = coord_part();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_coord_part.Add(coord_part237.Tree);
                            char_literal238=(IToken)Match(input,48,FOLLOW_48_in_arc2646); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_48.Add(char_literal238);

                            PushFollow(FOLLOW_coord_part_in_arc2648);
                            coord_part239 = coord_part();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_coord_part.Add(coord_part239.Tree);
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:424:56: ( 'and' numberunit )?
                            int alt59 = 2;
                            int LA59_0 = input.LA(1);

                            if ( (LA59_0 == 78) )
                            {
                                alt59 = 1;
                            }
                            switch (alt59)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:424:57: 'and' numberunit
                                    {
                                        string_literal240=(IToken)Match(input,78,FOLLOW_78_in_arc2651); if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_78.Add(string_literal240);

                                        PushFollow(FOLLOW_numberunit_in_arc2653);
                                        numberunit241 = numberunit();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_numberunit.Add(numberunit241.Tree);

                                    }
                                    break;

                            }

                            char_literal242=(IToken)Match(input,53,FOLLOW_53_in_arc2657); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_53.Add(char_literal242);

                        }

                        // AST REWRITE
                        // elements:          numberunit, coord_part
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 424:81: -> ^( IM_ARC ( coord_part )+ ( numberunit )? )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:424:84: ^( IM_ARC ( coord_part )+ ( numberunit )? )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_ARC, "IM_ARC"), root_1);

                            if ( !(stream_coord_part.HasNext()) ) {
                                throw new RewriteEarlyExitException();
                            }
                            while ( stream_coord_part.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_coord_part.NextTree());

                            }
                            stream_coord_part.Reset();
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:424:105: ( numberunit )?
                            if ( stream_numberunit.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_numberunit.NextTree());

                            }
                            stream_numberunit.Reset();

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 3 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:425:4: 'arc' tikz_options
                    {
                        string_literal243=(IToken)Match(input,84,FOLLOW_84_in_arc2675); if (state.failed) return retval;
                        if ( state.backtracking==0 ) stream_84.Add(string_literal243);

                        PushFollow(FOLLOW_tikz_options_in_arc2677);
                        tikz_options244 = tikz_options();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking==0 ) stream_tikz_options.Add(tikz_options244.Tree);

                        // AST REWRITE
                        // elements:
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 425:23: -> ^( IM_DONTCARE )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:425:25: ^( IM_DONTCARE )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_DONTCARE, "IM_DONTCARE"), root_1);

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #23
0
    // throws RecognitionException [1]
    // $ANTLR start "tikzdocument_wo_tikzpicture"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:144:1: tikzdocument_wo_tikzpicture : ( dontcare_preamble | tikz_styleorsetorcmd | otherbegin )* EOF -> ^( IM_DOCUMENT ( tikz_styleorsetorcmd )* ) ;
    public simpletikzParser.tikzdocument_wo_tikzpicture_return tikzdocument_wo_tikzpicture()
    {
        simpletikzParser.tikzdocument_wo_tikzpicture_return retval = new simpletikzParser.tikzdocument_wo_tikzpicture_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken EOF9 = null;
        simpletikzParser.dontcare_preamble_return dontcare_preamble6 = default(simpletikzParser.dontcare_preamble_return);

        simpletikzParser.tikz_styleorsetorcmd_return tikz_styleorsetorcmd7 = default(simpletikzParser.tikz_styleorsetorcmd_return);

        simpletikzParser.otherbegin_return otherbegin8 = default(simpletikzParser.otherbegin_return);

        // object EOF9_tree=null;
        RewriteRuleTokenStream stream_EOF = new RewriteRuleTokenStream(adaptor,"token EOF");
        RewriteRuleSubtreeStream stream_dontcare_preamble = new RewriteRuleSubtreeStream(adaptor,"rule dontcare_preamble");
        RewriteRuleSubtreeStream stream_otherbegin = new RewriteRuleSubtreeStream(adaptor,"rule otherbegin");
        RewriteRuleSubtreeStream stream_tikz_styleorsetorcmd = new RewriteRuleSubtreeStream(adaptor,"rule tikz_styleorsetorcmd");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:145:2: ( ( dontcare_preamble | tikz_styleorsetorcmd | otherbegin )* EOF -> ^( IM_DOCUMENT ( tikz_styleorsetorcmd )* ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:145:4: ( dontcare_preamble | tikz_styleorsetorcmd | otherbegin )* EOF
            {
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:145:4: ( dontcare_preamble | tikz_styleorsetorcmd | otherbegin )*
                do
                {
                    int alt3 = 4;
                    switch ( input.LA(1) )
                    {
                    case IM_PATH:
                    case IM_NODE:
                    case IM_COORD:
                    case IM_SIZE:
                    case IM_NODENAME:
                    case IM_NUMBERUNIT:
                    case IM_PICTURE:
                    case IM_DOCUMENT:
                    case IM_SCOPE:
                    case IM_STARTTAG:
                    case IM_ENDTAG:
                    case IM_OPTIONS:
                    case IM_OPTION_STYLE:
                    case IM_OPTION_KV:
                    case IM_ID:
                    case IM_TIKZSET:
                    case IM_USETIKZLIB:
                    case IM_STRING:
                    case IM_STYLE:
                    case IM_CONTROLS:
                    case IM_TIKZEDT_CMD:
                    case IM_DONTCARE:
                    case IM_ARC:
                    case ID:
                    case COMMAND:
                    case FLOAT_WO_EXP:
                    case INT:
                    case WS:
                    case COMMENT:
                    case EXPONENT:
                    case ESC_SEQ:
                    case MATHSTRING:
                    case SOMETHING:
                    case SOMETHING1:
                    case 43:
                    case 44:
                    case 45:
                    case 46:
                    case 47:
                    case 48:
                    case 49:
                    case 50:
                    case 51:
                    case 52:
                    case 53:
                    case 54:
                    case 55:
                    case 56:
                    case 57:
                    case 58:
                    case 59:
                    case 60:
                    case 61:
                    case 62:
                    case 63:
                    case 64:
                    case 65:
                    case 66:
                    case 67:
                    case 68:
                    case 69:
                    case 70:
                    case 71:
                    case 72:
                    case 73:
                    case 74:
                    case 75:
                    case 76:
                    case 77:
                    case 78:
                    case 79:
                    case 80:
                    case 81:
                    case 82:
                    case 83:
                    case 84:
                    case 85:
                    case 86:
                    case 87:
                    case 88:
                    case 89:
                    case 90:
                    case 91:
                    case 92:
                    case 93:
                    case 94:
                        {
                        alt3 = 1;
                        }
                        break;
                    case TIKZEDT_CMD_COMMENT:
                    case 40:
                    case 41:
                        {
                        alt3 = 2;
                        }
                        break;
                    case 39:
                        {
                        alt3 = 3;
                        }
                        break;

                    }

                    switch (alt3)
                    {
                        case 1 :
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:145:5: dontcare_preamble
                            {
                                PushFollow(FOLLOW_dontcare_preamble_in_tikzdocument_wo_tikzpicture296);
                                dontcare_preamble6 = dontcare_preamble();
                                state.followingStackPointer--;
                                if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_dontcare_preamble.Add(dontcare_preamble6.Tree);

                            }
                            break;
                        case 2 :
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:145:25: tikz_styleorsetorcmd
                            {
                                PushFollow(FOLLOW_tikz_styleorsetorcmd_in_tikzdocument_wo_tikzpicture300);
                                tikz_styleorsetorcmd7 = tikz_styleorsetorcmd();
                                state.followingStackPointer--;
                                if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_tikz_styleorsetorcmd.Add(tikz_styleorsetorcmd7.Tree);

                            }
                            break;
                        case 3 :
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:145:48: otherbegin
                            {
                                PushFollow(FOLLOW_otherbegin_in_tikzdocument_wo_tikzpicture304);
                                otherbegin8 = otherbegin();
                                state.followingStackPointer--;
                                if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_otherbegin.Add(otherbegin8.Tree);

                            }
                            break;

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

                loop3:
                    ;	// Stops C# compiler whining that label 'loop3' has no statements

                EOF9=(IToken)Match(input,EOF,FOLLOW_EOF_in_tikzdocument_wo_tikzpicture309); if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_EOF.Add(EOF9);

                // AST REWRITE
                // elements:          tikz_styleorsetorcmd
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 145:66: -> ^( IM_DOCUMENT ( tikz_styleorsetorcmd )* )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:145:69: ^( IM_DOCUMENT ( tikz_styleorsetorcmd )* )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_DOCUMENT, "IM_DOCUMENT"), root_1);

                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:145:83: ( tikz_styleorsetorcmd )*
                    while ( stream_tikz_styleorsetorcmd.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_tikz_styleorsetorcmd.NextTree());

                    }
                    stream_tikz_styleorsetorcmd.Reset();

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #24
0
    // throws RecognitionException [1]
    // $ANTLR start "controls"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:341:1: controls : controls_start coord ( 'and' coord )? controls_end -> ^( IM_CONTROLS controls_start ( coord )+ controls_end ) ;
    public simpletikzParser.controls_return controls()
    {
        simpletikzParser.controls_return retval = new simpletikzParser.controls_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken string_literal171 = null;
        simpletikzParser.controls_start_return controls_start169 = default(simpletikzParser.controls_start_return);

        simpletikzParser.coord_return coord170 = default(simpletikzParser.coord_return);

        simpletikzParser.coord_return coord172 = default(simpletikzParser.coord_return);

        simpletikzParser.controls_end_return controls_end173 = default(simpletikzParser.controls_end_return);

        object string_literal171_tree=null;
        RewriteRuleTokenStream stream_78 = new RewriteRuleTokenStream(adaptor,"token 78");
        RewriteRuleSubtreeStream stream_coord = new RewriteRuleSubtreeStream(adaptor,"rule coord");
        RewriteRuleSubtreeStream stream_controls_start = new RewriteRuleSubtreeStream(adaptor,"rule controls_start");
        RewriteRuleSubtreeStream stream_controls_end = new RewriteRuleSubtreeStream(adaptor,"rule controls_end");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:342:2: ( controls_start coord ( 'and' coord )? controls_end -> ^( IM_CONTROLS controls_start ( coord )+ controls_end ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:342:4: controls_start coord ( 'and' coord )? controls_end
            {
                PushFollow(FOLLOW_controls_start_in_controls1976);
                controls_start169 = controls_start();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_controls_start.Add(controls_start169.Tree);
                PushFollow(FOLLOW_coord_in_controls1978);
                coord170 = coord();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_coord.Add(coord170.Tree);
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:342:25: ( 'and' coord )?
                int alt44 = 2;
                int LA44_0 = input.LA(1);

                if ( (LA44_0 == 78) )
                {
                    alt44 = 1;
                }
                switch (alt44)
                {
                    case 1 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:342:26: 'and' coord
                        {
                            string_literal171=(IToken)Match(input,78,FOLLOW_78_in_controls1981); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_78.Add(string_literal171);

                            PushFollow(FOLLOW_coord_in_controls1983);
                            coord172 = coord();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_coord.Add(coord172.Tree);

                        }
                        break;

                }

                PushFollow(FOLLOW_controls_end_in_controls1987);
                controls_end173 = controls_end();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_controls_end.Add(controls_end173.Tree);

                // AST REWRITE
                // elements:          coord, controls_start, controls_end
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 342:53: -> ^( IM_CONTROLS controls_start ( coord )+ controls_end )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:342:56: ^( IM_CONTROLS controls_start ( coord )+ controls_end )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_CONTROLS, "IM_CONTROLS"), root_1);

                    adaptor.AddChild(root_1, stream_controls_start.NextTree());
                    if ( !(stream_coord.HasNext()) ) {
                        throw new RewriteEarlyExitException();
                    }
                    while ( stream_coord.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_coord.NextTree());

                    }
                    stream_coord.Reset();
                    adaptor.AddChild(root_1, stream_controls_end.NextTree());

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #25
0
    // throws RecognitionException [1]
    // $ANTLR start "tikznode_ext"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:345:1: tikznode_ext : node_start tikznode_core ( tikzpath_element )* semicolon_end -> ^( IM_PATH node_start tikznode_core ( tikzpath_element )* semicolon_end ) ;
    public simpletikzParser.tikznode_ext_return tikznode_ext()
    {
        simpletikzParser.tikznode_ext_return retval = new simpletikzParser.tikznode_ext_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        simpletikzParser.node_start_return node_start174 = default(simpletikzParser.node_start_return);

        simpletikzParser.tikznode_core_return tikznode_core175 = default(simpletikzParser.tikznode_core_return);

        simpletikzParser.tikzpath_element_return tikzpath_element176 = default(simpletikzParser.tikzpath_element_return);

        simpletikzParser.semicolon_end_return semicolon_end177 = default(simpletikzParser.semicolon_end_return);

        RewriteRuleSubtreeStream stream_tikzpath_element = new RewriteRuleSubtreeStream(adaptor,"rule tikzpath_element");
        RewriteRuleSubtreeStream stream_node_start = new RewriteRuleSubtreeStream(adaptor,"rule node_start");
        RewriteRuleSubtreeStream stream_tikznode_core = new RewriteRuleSubtreeStream(adaptor,"rule tikznode_core");
        RewriteRuleSubtreeStream stream_semicolon_end = new RewriteRuleSubtreeStream(adaptor,"rule semicolon_end");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:346:2: ( node_start tikznode_core ( tikzpath_element )* semicolon_end -> ^( IM_PATH node_start tikznode_core ( tikzpath_element )* semicolon_end ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:346:4: node_start tikznode_core ( tikzpath_element )* semicolon_end
            {
                PushFollow(FOLLOW_node_start_in_tikznode_ext2013);
                node_start174 = node_start();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_node_start.Add(node_start174.Tree);
                PushFollow(FOLLOW_tikznode_core_in_tikznode_ext2015);
                tikznode_core175 = tikznode_core();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_tikznode_core.Add(tikznode_core175.Tree);
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:346:29: ( tikzpath_element )*
                do
                {
                    int alt45 = 2;
                    int LA45_0 = input.LA(1);

                    if ( ((LA45_0 >= ID && LA45_0 <= COMMAND) || LA45_0 == 43 || LA45_0 == 45 || LA45_0 == 52 || LA45_0 == 54 || LA45_0 == 58 || LA45_0 == 77 || (LA45_0 >= 79 && LA45_0 <= 80) || (LA45_0 >= 82 && LA45_0 <= 91)) )
                    {
                        alt45 = 1;
                    }

                    switch (alt45)
                    {
                        case 1 :
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:346:29: tikzpath_element
                            {
                                PushFollow(FOLLOW_tikzpath_element_in_tikznode_ext2017);
                                tikzpath_element176 = tikzpath_element();
                                state.followingStackPointer--;
                                if (state.failed) return retval;
                                if ( state.backtracking==0 ) stream_tikzpath_element.Add(tikzpath_element176.Tree);

                            }
                            break;

                        default:
                            goto loop45;
                    }
                } while (true);

                loop45:
                    ;	// Stops C# compiler whining that label 'loop45' has no statements

                PushFollow(FOLLOW_semicolon_end_in_tikznode_ext2020);
                semicolon_end177 = semicolon_end();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_semicolon_end.Add(semicolon_end177.Tree);

                // AST REWRITE
                // elements:          tikznode_core, node_start, semicolon_end, tikzpath_element
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 346:61: -> ^( IM_PATH node_start tikznode_core ( tikzpath_element )* semicolon_end )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:346:64: ^( IM_PATH node_start tikznode_core ( tikzpath_element )* semicolon_end )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_PATH, "IM_PATH"), root_1);

                    adaptor.AddChild(root_1, stream_node_start.NextTree());
                    adaptor.AddChild(root_1, stream_tikznode_core.NextTree());
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:346:99: ( tikzpath_element )*
                    while ( stream_tikzpath_element.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_tikzpath_element.NextTree());

                    }
                    stream_tikzpath_element.Reset();
                    adaptor.AddChild(root_1, stream_semicolon_end.NextTree());

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #26
0
    // throws RecognitionException [1]
    // $ANTLR start "coord"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:442:1: coord : ( ( ( coord_modifier )? coord_nodename ) -> ^( IM_COORD ( coord_modifier )? coord_nodename ) | ( ( coord_modifier )? '(' numberunit coord_sep numberunit ')' ) -> ^( IM_COORD ( coord_modifier )? ( numberunit )+ coord_sep ) | ( ( coord_modifier )? '(' coord_part coord_sep coord_part ')' ) -> ^( IM_COORD ( coord_modifier )? ( coord_part )+ coord_sep ) | ( ( coord_modifier )? '(' ')' ) -> ^( IM_COORD ) );
    public simpletikzParser.coord_return coord()
    {
        simpletikzParser.coord_return retval = new simpletikzParser.coord_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal257 = null;
        IToken char_literal261 = null;
        IToken char_literal263 = null;
        IToken char_literal267 = null;
        IToken char_literal269 = null;
        IToken char_literal270 = null;
        simpletikzParser.coord_modifier_return coord_modifier254 = default(simpletikzParser.coord_modifier_return);

        simpletikzParser.coord_nodename_return coord_nodename255 = default(simpletikzParser.coord_nodename_return);

        simpletikzParser.coord_modifier_return coord_modifier256 = default(simpletikzParser.coord_modifier_return);

        simpletikzParser.numberunit_return numberunit258 = default(simpletikzParser.numberunit_return);

        simpletikzParser.coord_sep_return coord_sep259 = default(simpletikzParser.coord_sep_return);

        simpletikzParser.numberunit_return numberunit260 = default(simpletikzParser.numberunit_return);

        simpletikzParser.coord_modifier_return coord_modifier262 = default(simpletikzParser.coord_modifier_return);

        simpletikzParser.coord_part_return coord_part264 = default(simpletikzParser.coord_part_return);

        simpletikzParser.coord_sep_return coord_sep265 = default(simpletikzParser.coord_sep_return);

        simpletikzParser.coord_part_return coord_part266 = default(simpletikzParser.coord_part_return);

        simpletikzParser.coord_modifier_return coord_modifier268 = default(simpletikzParser.coord_modifier_return);

        object char_literal257_tree=null;
        object char_literal261_tree=null;
        object char_literal263_tree=null;
        object char_literal267_tree=null;
        object char_literal269_tree=null;
        object char_literal270_tree=null;
        RewriteRuleTokenStream stream_52 = new RewriteRuleTokenStream(adaptor,"token 52");
        RewriteRuleTokenStream stream_53 = new RewriteRuleTokenStream(adaptor,"token 53");
        RewriteRuleSubtreeStream stream_numberunit = new RewriteRuleSubtreeStream(adaptor,"rule numberunit");
        RewriteRuleSubtreeStream stream_coord_nodename = new RewriteRuleSubtreeStream(adaptor,"rule coord_nodename");
        RewriteRuleSubtreeStream stream_coord_part = new RewriteRuleSubtreeStream(adaptor,"rule coord_part");
        RewriteRuleSubtreeStream stream_coord_sep = new RewriteRuleSubtreeStream(adaptor,"rule coord_sep");
        RewriteRuleSubtreeStream stream_coord_modifier = new RewriteRuleSubtreeStream(adaptor,"rule coord_modifier");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:443:2: ( ( ( coord_modifier )? coord_nodename ) -> ^( IM_COORD ( coord_modifier )? coord_nodename ) | ( ( coord_modifier )? '(' numberunit coord_sep numberunit ')' ) -> ^( IM_COORD ( coord_modifier )? ( numberunit )+ coord_sep ) | ( ( coord_modifier )? '(' coord_part coord_sep coord_part ')' ) -> ^( IM_COORD ( coord_modifier )? ( coord_part )+ coord_sep ) | ( ( coord_modifier )? '(' ')' ) -> ^( IM_COORD ) )
            int alt67 = 4;
            alt67 = dfa67.Predict(input);
            switch (alt67)
            {
                case 1 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:443:6: ( ( coord_modifier )? coord_nodename )
                    {
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:443:6: ( ( coord_modifier )? coord_nodename )
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:443:8: ( coord_modifier )? coord_nodename
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:443:8: ( coord_modifier )?
                            int alt63 = 2;
                            int LA63_0 = input.LA(1);

                            if ( ((LA63_0 >= 89 && LA63_0 <= 90)) )
                            {
                                alt63 = 1;
                            }
                            switch (alt63)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:443:8: coord_modifier
                                    {
                                        PushFollow(FOLLOW_coord_modifier_in_coord2775);
                                        coord_modifier254 = coord_modifier();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_coord_modifier.Add(coord_modifier254.Tree);

                                    }
                                    break;

                            }

                            PushFollow(FOLLOW_coord_nodename_in_coord2778);
                            coord_nodename255 = coord_nodename();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_coord_nodename.Add(coord_nodename255.Tree);

                        }

                        // AST REWRITE
                        // elements:          coord_nodename, coord_modifier
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 443:44: -> ^( IM_COORD ( coord_modifier )? coord_nodename )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:443:47: ^( IM_COORD ( coord_modifier )? coord_nodename )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_COORD, "IM_COORD"), root_1);

                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:443:58: ( coord_modifier )?
                            if ( stream_coord_modifier.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_coord_modifier.NextTree());

                            }
                            stream_coord_modifier.Reset();
                            adaptor.AddChild(root_1, stream_coord_nodename.NextTree());

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 2 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:444:5: ( ( coord_modifier )? '(' numberunit coord_sep numberunit ')' )
                    {
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:444:5: ( ( coord_modifier )? '(' numberunit coord_sep numberunit ')' )
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:444:7: ( coord_modifier )? '(' numberunit coord_sep numberunit ')'
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:444:7: ( coord_modifier )?
                            int alt64 = 2;
                            int LA64_0 = input.LA(1);

                            if ( ((LA64_0 >= 89 && LA64_0 <= 90)) )
                            {
                                alt64 = 1;
                            }
                            switch (alt64)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:444:7: coord_modifier
                                    {
                                        PushFollow(FOLLOW_coord_modifier_in_coord2804);
                                        coord_modifier256 = coord_modifier();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_coord_modifier.Add(coord_modifier256.Tree);

                                    }
                                    break;

                            }

                            char_literal257=(IToken)Match(input,52,FOLLOW_52_in_coord2807); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_52.Add(char_literal257);

                            PushFollow(FOLLOW_numberunit_in_coord2809);
                            numberunit258 = numberunit();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_numberunit.Add(numberunit258.Tree);
                            PushFollow(FOLLOW_coord_sep_in_coord2811);
                            coord_sep259 = coord_sep();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_coord_sep.Add(coord_sep259.Tree);
                            PushFollow(FOLLOW_numberunit_in_coord2813);
                            numberunit260 = numberunit();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_numberunit.Add(numberunit260.Tree);
                            char_literal261=(IToken)Match(input,53,FOLLOW_53_in_coord2815); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_53.Add(char_literal261);

                        }

                        // AST REWRITE
                        // elements:          coord_modifier, coord_sep, numberunit
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 444:65: -> ^( IM_COORD ( coord_modifier )? ( numberunit )+ coord_sep )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:444:68: ^( IM_COORD ( coord_modifier )? ( numberunit )+ coord_sep )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_COORD, "IM_COORD"), root_1);

                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:444:79: ( coord_modifier )?
                            if ( stream_coord_modifier.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_coord_modifier.NextTree());

                            }
                            stream_coord_modifier.Reset();
                            if ( !(stream_numberunit.HasNext()) ) {
                                throw new RewriteEarlyExitException();
                            }
                            while ( stream_numberunit.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_numberunit.NextTree());

                            }
                            stream_numberunit.Reset();
                            adaptor.AddChild(root_1, stream_coord_sep.NextTree());

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 3 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:445:5: ( ( coord_modifier )? '(' coord_part coord_sep coord_part ')' )
                    {
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:445:5: ( ( coord_modifier )? '(' coord_part coord_sep coord_part ')' )
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:445:7: ( coord_modifier )? '(' coord_part coord_sep coord_part ')'
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:445:7: ( coord_modifier )?
                            int alt65 = 2;
                            int LA65_0 = input.LA(1);

                            if ( ((LA65_0 >= 89 && LA65_0 <= 90)) )
                            {
                                alt65 = 1;
                            }
                            switch (alt65)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:445:7: coord_modifier
                                    {
                                        PushFollow(FOLLOW_coord_modifier_in_coord2839);
                                        coord_modifier262 = coord_modifier();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_coord_modifier.Add(coord_modifier262.Tree);

                                    }
                                    break;

                            }

                            char_literal263=(IToken)Match(input,52,FOLLOW_52_in_coord2842); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_52.Add(char_literal263);

                            PushFollow(FOLLOW_coord_part_in_coord2844);
                            coord_part264 = coord_part();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_coord_part.Add(coord_part264.Tree);
                            PushFollow(FOLLOW_coord_sep_in_coord2846);
                            coord_sep265 = coord_sep();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_coord_sep.Add(coord_sep265.Tree);
                            PushFollow(FOLLOW_coord_part_in_coord2848);
                            coord_part266 = coord_part();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_coord_part.Add(coord_part266.Tree);
                            char_literal267=(IToken)Match(input,53,FOLLOW_53_in_coord2850); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_53.Add(char_literal267);

                        }

                        // AST REWRITE
                        // elements:          coord_modifier, coord_sep, coord_part
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 445:65: -> ^( IM_COORD ( coord_modifier )? ( coord_part )+ coord_sep )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:445:68: ^( IM_COORD ( coord_modifier )? ( coord_part )+ coord_sep )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_COORD, "IM_COORD"), root_1);

                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:445:79: ( coord_modifier )?
                            if ( stream_coord_modifier.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_coord_modifier.NextTree());

                            }
                            stream_coord_modifier.Reset();
                            if ( !(stream_coord_part.HasNext()) ) {
                                throw new RewriteEarlyExitException();
                            }
                            while ( stream_coord_part.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_coord_part.NextTree());

                            }
                            stream_coord_part.Reset();
                            adaptor.AddChild(root_1, stream_coord_sep.NextTree());

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 4 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:446:5: ( ( coord_modifier )? '(' ')' )
                    {
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:446:5: ( ( coord_modifier )? '(' ')' )
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:446:7: ( coord_modifier )? '(' ')'
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:446:7: ( coord_modifier )?
                            int alt66 = 2;
                            int LA66_0 = input.LA(1);

                            if ( ((LA66_0 >= 89 && LA66_0 <= 90)) )
                            {
                                alt66 = 1;
                            }
                            switch (alt66)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:446:7: coord_modifier
                                    {
                                        PushFollow(FOLLOW_coord_modifier_in_coord2874);
                                        coord_modifier268 = coord_modifier();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_coord_modifier.Add(coord_modifier268.Tree);

                                    }
                                    break;

                            }

                            char_literal269=(IToken)Match(input,52,FOLLOW_52_in_coord2877); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_52.Add(char_literal269);

                            char_literal270=(IToken)Match(input,53,FOLLOW_53_in_coord2879); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_53.Add(char_literal270);

                        }

                        // AST REWRITE
                        // elements:
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 446:37: -> ^( IM_COORD )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:446:40: ^( IM_COORD )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_COORD, "IM_COORD"), root_1);

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #27
0
    // throws RecognitionException [1]
    // $ANTLR start "tikzpath_element_single"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:325:1: tikzpath_element_single : ( tikz_options | let_cmd_parts -> ^( IM_DONTCARE ( let_cmd_parts )+ ) | arc | ( coord )=> coord | controls | tikznode_int | tikzcoordinate_int | circle | roundbr_start ( tikzpath_element )* roundbr_end -> ^( IM_PATH roundbr_start ( tikzpath_element )* roundbr_end ) | '(' ( tikzpath_element )* ')' -> ^( IM_PATH '(' ( tikzpath_element )* ')' ) | edgeop );
    public simpletikzParser.tikzpath_element_single_return tikzpath_element_single()
    {
        simpletikzParser.tikzpath_element_single_return retval = new simpletikzParser.tikzpath_element_single_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal165 = null;
        IToken char_literal167 = null;
        simpletikzParser.tikz_options_return tikz_options154 = default(simpletikzParser.tikz_options_return);

        simpletikzParser.let_cmd_parts_return let_cmd_parts155 = default(simpletikzParser.let_cmd_parts_return);

        simpletikzParser.arc_return arc156 = default(simpletikzParser.arc_return);

        simpletikzParser.coord_return coord157 = default(simpletikzParser.coord_return);

        simpletikzParser.controls_return controls158 = default(simpletikzParser.controls_return);

        simpletikzParser.tikznode_int_return tikznode_int159 = default(simpletikzParser.tikznode_int_return);

        simpletikzParser.tikzcoordinate_int_return tikzcoordinate_int160 = default(simpletikzParser.tikzcoordinate_int_return);

        simpletikzParser.circle_return circle161 = default(simpletikzParser.circle_return);

        simpletikzParser.roundbr_start_return roundbr_start162 = default(simpletikzParser.roundbr_start_return);

        simpletikzParser.tikzpath_element_return tikzpath_element163 = default(simpletikzParser.tikzpath_element_return);

        simpletikzParser.roundbr_end_return roundbr_end164 = default(simpletikzParser.roundbr_end_return);

        simpletikzParser.tikzpath_element_return tikzpath_element166 = default(simpletikzParser.tikzpath_element_return);

        simpletikzParser.edgeop_return edgeop168 = default(simpletikzParser.edgeop_return);

        object char_literal165_tree=null;
        object char_literal167_tree=null;
        RewriteRuleTokenStream stream_52 = new RewriteRuleTokenStream(adaptor,"token 52");
        RewriteRuleTokenStream stream_53 = new RewriteRuleTokenStream(adaptor,"token 53");
        RewriteRuleSubtreeStream stream_tikzpath_element = new RewriteRuleSubtreeStream(adaptor,"rule tikzpath_element");
        RewriteRuleSubtreeStream stream_roundbr_start = new RewriteRuleSubtreeStream(adaptor,"rule roundbr_start");
        RewriteRuleSubtreeStream stream_roundbr_end = new RewriteRuleSubtreeStream(adaptor,"rule roundbr_end");
        RewriteRuleSubtreeStream stream_let_cmd_parts = new RewriteRuleSubtreeStream(adaptor,"rule let_cmd_parts");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:326:2: ( tikz_options | let_cmd_parts -> ^( IM_DONTCARE ( let_cmd_parts )+ ) | arc | ( coord )=> coord | controls | tikznode_int | tikzcoordinate_int | circle | roundbr_start ( tikzpath_element )* roundbr_end -> ^( IM_PATH roundbr_start ( tikzpath_element )* roundbr_end ) | '(' ( tikzpath_element )* ')' -> ^( IM_PATH '(' ( tikzpath_element )* ')' ) | edgeop )
            int alt43 = 11;
            alt43 = dfa43.Predict(input);
            switch (alt43)
            {
                case 1 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:327:5: tikz_options
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_tikz_options_in_tikzpath_element_single1846);
                        tikz_options154 = tikz_options();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, tikz_options154.Tree);

                    }
                    break;
                case 2 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:328:5: let_cmd_parts
                    {
                        PushFollow(FOLLOW_let_cmd_parts_in_tikzpath_element_single1853);
                        let_cmd_parts155 = let_cmd_parts();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking==0 ) stream_let_cmd_parts.Add(let_cmd_parts155.Tree);

                        // AST REWRITE
                        // elements:          let_cmd_parts
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 328:19: -> ^( IM_DONTCARE ( let_cmd_parts )+ )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:328:22: ^( IM_DONTCARE ( let_cmd_parts )+ )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_DONTCARE, "IM_DONTCARE"), root_1);

                            if ( !(stream_let_cmd_parts.HasNext()) ) {
                                throw new RewriteEarlyExitException();
                            }
                            while ( stream_let_cmd_parts.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_let_cmd_parts.NextTree());

                            }
                            stream_let_cmd_parts.Reset();

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 3 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:330:5: arc
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_arc_in_tikzpath_element_single1871);
                        arc156 = arc();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, arc156.Tree);

                    }
                    break;
                case 4 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:331:5: ( coord )=> coord
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_coord_in_tikzpath_element_single1881);
                        coord157 = coord();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, coord157.Tree);

                    }
                    break;
                case 5 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:332:5: controls
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_controls_in_tikzpath_element_single1887);
                        controls158 = controls();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, controls158.Tree);

                    }
                    break;
                case 6 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:333:5: tikznode_int
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_tikznode_int_in_tikzpath_element_single1893);
                        tikznode_int159 = tikznode_int();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, tikznode_int159.Tree);

                    }
                    break;
                case 7 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:334:5: tikzcoordinate_int
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_tikzcoordinate_int_in_tikzpath_element_single1899);
                        tikzcoordinate_int160 = tikzcoordinate_int();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking == 0 ) adaptor.AddChild(root_0, tikzcoordinate_int160.Tree);

                    }
                    break;
                case 8 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:335:5: circle
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_circle_in_tikzpath_element_single1905);
                        circle161 = circle();
                        state.followingStackPointer--;
                        if (state.failed) return retval;

                    }
                    break;
                case 9 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:336:5: roundbr_start ( tikzpath_element )* roundbr_end
                    {
                        PushFollow(FOLLOW_roundbr_start_in_tikzpath_element_single1912);
                        roundbr_start162 = roundbr_start();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking==0 ) stream_roundbr_start.Add(roundbr_start162.Tree);
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:336:19: ( tikzpath_element )*
                        do
                        {
                            int alt41 = 2;
                            int LA41_0 = input.LA(1);

                            if ( ((LA41_0 >= ID && LA41_0 <= COMMAND) || LA41_0 == 43 || LA41_0 == 45 || LA41_0 == 52 || LA41_0 == 54 || LA41_0 == 58 || LA41_0 == 77 || (LA41_0 >= 79 && LA41_0 <= 80) || (LA41_0 >= 82 && LA41_0 <= 91)) )
                            {
                                alt41 = 1;
                            }

                            switch (alt41)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:336:19: tikzpath_element
                                    {
                                        PushFollow(FOLLOW_tikzpath_element_in_tikzpath_element_single1914);
                                        tikzpath_element163 = tikzpath_element();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_tikzpath_element.Add(tikzpath_element163.Tree);

                                    }
                                    break;

                                default:
                                    goto loop41;
                            }
                        } while (true);

                        loop41:
                            ;	// Stops C# compiler whining that label 'loop41' has no statements

                        PushFollow(FOLLOW_roundbr_end_in_tikzpath_element_single1917);
                        roundbr_end164 = roundbr_end();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking==0 ) stream_roundbr_end.Add(roundbr_end164.Tree);

                        // AST REWRITE
                        // elements:          roundbr_end, tikzpath_element, roundbr_start
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 336:49: -> ^( IM_PATH roundbr_start ( tikzpath_element )* roundbr_end )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:336:52: ^( IM_PATH roundbr_start ( tikzpath_element )* roundbr_end )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_PATH, "IM_PATH"), root_1);

                            adaptor.AddChild(root_1, stream_roundbr_start.NextTree());
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:336:76: ( tikzpath_element )*
                            while ( stream_tikzpath_element.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_tikzpath_element.NextTree());

                            }
                            stream_tikzpath_element.Reset();
                            adaptor.AddChild(root_1, stream_roundbr_end.NextTree());

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 10 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:337:6: '(' ( tikzpath_element )* ')'
                    {
                        char_literal165=(IToken)Match(input,52,FOLLOW_52_in_tikzpath_element_single1937); if (state.failed) return retval;
                        if ( state.backtracking==0 ) stream_52.Add(char_literal165);

                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:337:10: ( tikzpath_element )*
                        do
                        {
                            int alt42 = 2;
                            int LA42_0 = input.LA(1);

                            if ( ((LA42_0 >= ID && LA42_0 <= COMMAND) || LA42_0 == 43 || LA42_0 == 45 || LA42_0 == 52 || LA42_0 == 54 || LA42_0 == 58 || LA42_0 == 77 || (LA42_0 >= 79 && LA42_0 <= 80) || (LA42_0 >= 82 && LA42_0 <= 91)) )
                            {
                                alt42 = 1;
                            }

                            switch (alt42)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:337:10: tikzpath_element
                                    {
                                        PushFollow(FOLLOW_tikzpath_element_in_tikzpath_element_single1939);
                                        tikzpath_element166 = tikzpath_element();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_tikzpath_element.Add(tikzpath_element166.Tree);

                                    }
                                    break;

                                default:
                                    goto loop42;
                            }
                        } while (true);

                        loop42:
                            ;	// Stops C# compiler whining that label 'loop42' has no statements

                        char_literal167=(IToken)Match(input,53,FOLLOW_53_in_tikzpath_element_single1942); if (state.failed) return retval;
                        if ( state.backtracking==0 ) stream_53.Add(char_literal167);

                        // AST REWRITE
                        // elements:          53, tikzpath_element, 52
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 337:32: -> ^( IM_PATH '(' ( tikzpath_element )* ')' )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:337:35: ^( IM_PATH '(' ( tikzpath_element )* ')' )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_PATH, "IM_PATH"), root_1);

                            adaptor.AddChild(root_1, stream_52.NextNode());
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:337:49: ( tikzpath_element )*
                            while ( stream_tikzpath_element.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_tikzpath_element.NextTree());

                            }
                            stream_tikzpath_element.Reset();
                            adaptor.AddChild(root_1, stream_53.NextNode());

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 11 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:338:5: edgeop
                    {
                        root_0 = (object)adaptor.GetNilNode();

                        PushFollow(FOLLOW_edgeop_in_tikzpath_element_single1961);
                        edgeop168 = edgeop();
                        state.followingStackPointer--;
                        if (state.failed) return retval;

                    }
                    break;

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #28
0
    // throws RecognitionException [1]
    // $ANTLR start "coord_nodename"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:440:1: coord_nodename : '(' ( tikz_options )? idd ')' -> ^( IM_NODENAME idd ( tikz_options )? ) ;
    public simpletikzParser.coord_nodename_return coord_nodename()
    {
        simpletikzParser.coord_nodename_return retval = new simpletikzParser.coord_nodename_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal250 = null;
        IToken char_literal253 = null;
        simpletikzParser.tikz_options_return tikz_options251 = default(simpletikzParser.tikz_options_return);

        simpletikzParser.idd_return idd252 = default(simpletikzParser.idd_return);

        object char_literal250_tree=null;
        object char_literal253_tree=null;
        RewriteRuleTokenStream stream_52 = new RewriteRuleTokenStream(adaptor,"token 52");
        RewriteRuleTokenStream stream_53 = new RewriteRuleTokenStream(adaptor,"token 53");
        RewriteRuleSubtreeStream stream_idd = new RewriteRuleSubtreeStream(adaptor,"rule idd");
        RewriteRuleSubtreeStream stream_tikz_options = new RewriteRuleSubtreeStream(adaptor,"rule tikz_options");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:441:2: ( '(' ( tikz_options )? idd ')' -> ^( IM_NODENAME idd ( tikz_options )? ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:441:4: '(' ( tikz_options )? idd ')'
            {
                char_literal250=(IToken)Match(input,52,FOLLOW_52_in_coord_nodename2741); if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_52.Add(char_literal250);

                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:441:8: ( tikz_options )?
                int alt62 = 2;
                int LA62_0 = input.LA(1);

                if ( (LA62_0 == 54) )
                {
                    alt62 = 1;
                }
                switch (alt62)
                {
                    case 1 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:441:8: tikz_options
                        {
                            PushFollow(FOLLOW_tikz_options_in_coord_nodename2743);
                            tikz_options251 = tikz_options();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_tikz_options.Add(tikz_options251.Tree);

                        }
                        break;

                }

                PushFollow(FOLLOW_idd_in_coord_nodename2746);
                idd252 = idd();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_idd.Add(idd252.Tree);
                char_literal253=(IToken)Match(input,53,FOLLOW_53_in_coord_nodename2749); if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_53.Add(char_literal253);

                // AST REWRITE
                // elements:          tikz_options, idd
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 441:32: -> ^( IM_NODENAME idd ( tikz_options )? )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:441:35: ^( IM_NODENAME idd ( tikz_options )? )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_NODENAME, "IM_NODENAME"), root_1);

                    adaptor.AddChild(root_1, stream_idd.NextTree());
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:441:53: ( tikz_options )?
                    if ( stream_tikz_options.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_tikz_options.NextTree());

                    }
                    stream_tikz_options.Reset();

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #29
0
    // throws RecognitionException [1]
    // $ANTLR start "tikzscope"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:283:1: tikzscope : tikzscope_start ( tikz_options )? ( tikzbody )? tikzscope_end -> ^( IM_SCOPE tikzscope_start ( tikz_options )? ( tikzbody )? tikzscope_end ) ;
    public simpletikzParser.tikzscope_return tikzscope()
    {
        simpletikzParser.tikzscope_return retval = new simpletikzParser.tikzscope_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        simpletikzParser.tikzscope_start_return tikzscope_start144 = default(simpletikzParser.tikzscope_start_return);

        simpletikzParser.tikz_options_return tikz_options145 = default(simpletikzParser.tikz_options_return);

        simpletikzParser.tikzbody_return tikzbody146 = default(simpletikzParser.tikzbody_return);

        simpletikzParser.tikzscope_end_return tikzscope_end147 = default(simpletikzParser.tikzscope_end_return);

        RewriteRuleSubtreeStream stream_tikzscope_start = new RewriteRuleSubtreeStream(adaptor,"rule tikzscope_start");
        RewriteRuleSubtreeStream stream_tikzscope_end = new RewriteRuleSubtreeStream(adaptor,"rule tikzscope_end");
        RewriteRuleSubtreeStream stream_tikzbody = new RewriteRuleSubtreeStream(adaptor,"rule tikzbody");
        RewriteRuleSubtreeStream stream_tikz_options = new RewriteRuleSubtreeStream(adaptor,"rule tikz_options");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:284:2: ( tikzscope_start ( tikz_options )? ( tikzbody )? tikzscope_end -> ^( IM_SCOPE tikzscope_start ( tikz_options )? ( tikzbody )? tikzscope_end ) )
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:284:4: tikzscope_start ( tikz_options )? ( tikzbody )? tikzscope_end
            {
                PushFollow(FOLLOW_tikzscope_start_in_tikzscope1701);
                tikzscope_start144 = tikzscope_start();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_tikzscope_start.Add(tikzscope_start144.Tree);
                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:284:20: ( tikz_options )?
                int alt37 = 2;
                int LA37_0 = input.LA(1);

                if ( (LA37_0 == 54) )
                {
                    alt37 = 1;
                }
                switch (alt37)
                {
                    case 1 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:284:20: tikz_options
                        {
                            PushFollow(FOLLOW_tikz_options_in_tikzscope1703);
                            tikz_options145 = tikz_options();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_tikz_options.Add(tikz_options145.Tree);

                        }
                        break;

                }

                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:284:34: ( tikzbody )?
                int alt38 = 2;
                int LA38_0 = input.LA(1);

                if ( ((LA38_0 >= IM_PATH && LA38_0 <= 53) || (LA38_0 >= 55 && LA38_0 <= 62) || (LA38_0 >= 64 && LA38_0 <= 94)) )
                {
                    alt38 = 1;
                }
                else if ( (LA38_0 == 63) )
                {
                    int LA38_2 = input.LA(2);

                    if ( (LA38_2 == 43) )
                    {
                        int LA38_3 = input.LA(3);

                        if ( (LA38_3 == ID) )
                        {
                            alt38 = 1;
                        }
                    }
                }
                switch (alt38)
                {
                    case 1 :
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:284:34: tikzbody
                        {
                            PushFollow(FOLLOW_tikzbody_in_tikzscope1706);
                            tikzbody146 = tikzbody();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_tikzbody.Add(tikzbody146.Tree);

                        }
                        break;

                }

                PushFollow(FOLLOW_tikzscope_end_in_tikzscope1709);
                tikzscope_end147 = tikzscope_end();
                state.followingStackPointer--;
                if (state.failed) return retval;
                if ( state.backtracking==0 ) stream_tikzscope_end.Add(tikzscope_end147.Tree);

                // AST REWRITE
                // elements:          tikzscope_start, tikzbody, tikz_options, tikzscope_end
                // token labels:
                // rule labels:       retval
                // token list labels:
                // rule list labels:
                if ( state.backtracking==0 ) {
                retval.Tree = root_0;
                RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                root_0 = (object)adaptor.GetNilNode();
                // 284:59: -> ^( IM_SCOPE tikzscope_start ( tikz_options )? ( tikzbody )? tikzscope_end )
                {
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:284:62: ^( IM_SCOPE tikzscope_start ( tikz_options )? ( tikzbody )? tikzscope_end )
                    {
                    object root_1 = (object)adaptor.GetNilNode();
                    root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_SCOPE, "IM_SCOPE"), root_1);

                    adaptor.AddChild(root_1, stream_tikzscope_start.NextTree());
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:284:89: ( tikz_options )?
                    if ( stream_tikz_options.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_tikz_options.NextTree());

                    }
                    stream_tikz_options.Reset();
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:284:103: ( tikzbody )?
                    if ( stream_tikzbody.HasNext() )
                    {
                        adaptor.AddChild(root_1, stream_tikzbody.NextTree());

                    }
                    stream_tikzbody.Reset();
                    adaptor.AddChild(root_1, stream_tikzscope_end.NextTree());

                    adaptor.AddChild(root_0, root_1);
                    }

                }

                retval.Tree = root_0;retval.Tree = root_0;}
            }

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #30
0
    // throws RecognitionException [1]
    // $ANTLR start "coord_nooption"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:448:1: coord_nooption : ( nodename -> ^( IM_COORD nodename ) | ( ( coord_modifier )? '(' numberunit coord_sep numberunit ')' ) -> ^( IM_COORD ( coord_modifier )? ( numberunit )+ coord_sep ) | ( ( coord_modifier )? '(' coord_part coord_sep coord_part ')' ) -> ^( IM_COORD ( coord_modifier )? ( coord_part )+ coord_sep ) );
    public simpletikzParser.coord_nooption_return coord_nooption()
    {
        simpletikzParser.coord_nooption_return retval = new simpletikzParser.coord_nooption_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal273 = null;
        IToken char_literal277 = null;
        IToken char_literal279 = null;
        IToken char_literal283 = null;
        simpletikzParser.nodename_return nodename271 = default(simpletikzParser.nodename_return);

        simpletikzParser.coord_modifier_return coord_modifier272 = default(simpletikzParser.coord_modifier_return);

        simpletikzParser.numberunit_return numberunit274 = default(simpletikzParser.numberunit_return);

        simpletikzParser.coord_sep_return coord_sep275 = default(simpletikzParser.coord_sep_return);

        simpletikzParser.numberunit_return numberunit276 = default(simpletikzParser.numberunit_return);

        simpletikzParser.coord_modifier_return coord_modifier278 = default(simpletikzParser.coord_modifier_return);

        simpletikzParser.coord_part_return coord_part280 = default(simpletikzParser.coord_part_return);

        simpletikzParser.coord_sep_return coord_sep281 = default(simpletikzParser.coord_sep_return);

        simpletikzParser.coord_part_return coord_part282 = default(simpletikzParser.coord_part_return);

        object char_literal273_tree=null;
        object char_literal277_tree=null;
        object char_literal279_tree=null;
        object char_literal283_tree=null;
        RewriteRuleTokenStream stream_52 = new RewriteRuleTokenStream(adaptor,"token 52");
        RewriteRuleTokenStream stream_53 = new RewriteRuleTokenStream(adaptor,"token 53");
        RewriteRuleSubtreeStream stream_numberunit = new RewriteRuleSubtreeStream(adaptor,"rule numberunit");
        RewriteRuleSubtreeStream stream_coord_part = new RewriteRuleSubtreeStream(adaptor,"rule coord_part");
        RewriteRuleSubtreeStream stream_coord_sep = new RewriteRuleSubtreeStream(adaptor,"rule coord_sep");
        RewriteRuleSubtreeStream stream_nodename = new RewriteRuleSubtreeStream(adaptor,"rule nodename");
        RewriteRuleSubtreeStream stream_coord_modifier = new RewriteRuleSubtreeStream(adaptor,"rule coord_modifier");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:449:2: ( nodename -> ^( IM_COORD nodename ) | ( ( coord_modifier )? '(' numberunit coord_sep numberunit ')' ) -> ^( IM_COORD ( coord_modifier )? ( numberunit )+ coord_sep ) | ( ( coord_modifier )? '(' coord_part coord_sep coord_part ')' ) -> ^( IM_COORD ( coord_modifier )? ( coord_part )+ coord_sep ) )
            int alt70 = 3;
            alt70 = dfa70.Predict(input);
            switch (alt70)
            {
                case 1 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:449:6: nodename
                    {
                        PushFollow(FOLLOW_nodename_in_coord_nooption2907);
                        nodename271 = nodename();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking==0 ) stream_nodename.Add(nodename271.Tree);

                        // AST REWRITE
                        // elements:          nodename
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 449:22: -> ^( IM_COORD nodename )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:449:25: ^( IM_COORD nodename )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_COORD, "IM_COORD"), root_1);

                            adaptor.AddChild(root_1, stream_nodename.NextTree());

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 2 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:450:5: ( ( coord_modifier )? '(' numberunit coord_sep numberunit ')' )
                    {
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:450:5: ( ( coord_modifier )? '(' numberunit coord_sep numberunit ')' )
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:450:7: ( coord_modifier )? '(' numberunit coord_sep numberunit ')'
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:450:7: ( coord_modifier )?
                            int alt68 = 2;
                            int LA68_0 = input.LA(1);

                            if ( ((LA68_0 >= 89 && LA68_0 <= 90)) )
                            {
                                alt68 = 1;
                            }
                            switch (alt68)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:450:7: coord_modifier
                                    {
                                        PushFollow(FOLLOW_coord_modifier_in_coord_nooption2931);
                                        coord_modifier272 = coord_modifier();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_coord_modifier.Add(coord_modifier272.Tree);

                                    }
                                    break;

                            }

                            char_literal273=(IToken)Match(input,52,FOLLOW_52_in_coord_nooption2934); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_52.Add(char_literal273);

                            PushFollow(FOLLOW_numberunit_in_coord_nooption2936);
                            numberunit274 = numberunit();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_numberunit.Add(numberunit274.Tree);
                            PushFollow(FOLLOW_coord_sep_in_coord_nooption2938);
                            coord_sep275 = coord_sep();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_coord_sep.Add(coord_sep275.Tree);
                            PushFollow(FOLLOW_numberunit_in_coord_nooption2940);
                            numberunit276 = numberunit();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_numberunit.Add(numberunit276.Tree);
                            char_literal277=(IToken)Match(input,53,FOLLOW_53_in_coord_nooption2942); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_53.Add(char_literal277);

                        }

                        // AST REWRITE
                        // elements:          coord_sep, numberunit, coord_modifier
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 450:65: -> ^( IM_COORD ( coord_modifier )? ( numberunit )+ coord_sep )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:450:68: ^( IM_COORD ( coord_modifier )? ( numberunit )+ coord_sep )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_COORD, "IM_COORD"), root_1);

                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:450:79: ( coord_modifier )?
                            if ( stream_coord_modifier.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_coord_modifier.NextTree());

                            }
                            stream_coord_modifier.Reset();
                            if ( !(stream_numberunit.HasNext()) ) {
                                throw new RewriteEarlyExitException();
                            }
                            while ( stream_numberunit.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_numberunit.NextTree());

                            }
                            stream_numberunit.Reset();
                            adaptor.AddChild(root_1, stream_coord_sep.NextTree());

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 3 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:451:5: ( ( coord_modifier )? '(' coord_part coord_sep coord_part ')' )
                    {
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:451:5: ( ( coord_modifier )? '(' coord_part coord_sep coord_part ')' )
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:451:7: ( coord_modifier )? '(' coord_part coord_sep coord_part ')'
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:451:7: ( coord_modifier )?
                            int alt69 = 2;
                            int LA69_0 = input.LA(1);

                            if ( ((LA69_0 >= 89 && LA69_0 <= 90)) )
                            {
                                alt69 = 1;
                            }
                            switch (alt69)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:451:7: coord_modifier
                                    {
                                        PushFollow(FOLLOW_coord_modifier_in_coord_nooption2966);
                                        coord_modifier278 = coord_modifier();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_coord_modifier.Add(coord_modifier278.Tree);

                                    }
                                    break;

                            }

                            char_literal279=(IToken)Match(input,52,FOLLOW_52_in_coord_nooption2969); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_52.Add(char_literal279);

                            PushFollow(FOLLOW_coord_part_in_coord_nooption2971);
                            coord_part280 = coord_part();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_coord_part.Add(coord_part280.Tree);
                            PushFollow(FOLLOW_coord_sep_in_coord_nooption2973);
                            coord_sep281 = coord_sep();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_coord_sep.Add(coord_sep281.Tree);
                            PushFollow(FOLLOW_coord_part_in_coord_nooption2975);
                            coord_part282 = coord_part();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_coord_part.Add(coord_part282.Tree);
                            char_literal283=(IToken)Match(input,53,FOLLOW_53_in_coord_nooption2977); if (state.failed) return retval;
                            if ( state.backtracking==0 ) stream_53.Add(char_literal283);

                        }

                        // AST REWRITE
                        // elements:          coord_modifier, coord_part, coord_sep
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 451:65: -> ^( IM_COORD ( coord_modifier )? ( coord_part )+ coord_sep )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:451:68: ^( IM_COORD ( coord_modifier )? ( coord_part )+ coord_sep )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_COORD, "IM_COORD"), root_1);

                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:451:79: ( coord_modifier )?
                            if ( stream_coord_modifier.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_coord_modifier.NextTree());

                            }
                            stream_coord_modifier.Reset();
                            if ( !(stream_coord_part.HasNext()) ) {
                                throw new RewriteEarlyExitException();
                            }
                            while ( stream_coord_part.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_coord_part.NextTree());

                            }
                            stream_coord_part.Reset();
                            adaptor.AddChild(root_1, stream_coord_sep.NextTree());

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }
Beispiel #31
0
    // $ANTLR start "require"
    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:93:1: require : ( ^( Require ^( FunctionCall ^( Name ID {...}?) s= STRING ) ) -> ^( NoMatchClause $s) | ^( Require ^( FunctionCall ^( Name ID {...}?) s= STRING ) ) -> ^( MatchClause $s) | ^( Require ^( NoMatchClause (e= . )* ) ) -> ^( NoMatchClause ( $e)* ) | ^( Require ^( MatchClause (e= . )* ) ) -> ^( MatchClause ( $e)* ) );
    public NadirASTOptimizer.require_return require() // throws RecognitionException [1]
    {   
        NadirASTOptimizer.require_return retval = new NadirASTOptimizer.require_return();
        retval.Start = input.LT(1);

        NadirAST root_0 = null;

        NadirAST _first_0 = null;
        NadirAST _last = null;

        NadirAST s = null;
        NadirAST Require23 = null;
        NadirAST FunctionCall24 = null;
        NadirAST Name25 = null;
        NadirAST ID26 = null;
        NadirAST Require27 = null;
        NadirAST FunctionCall28 = null;
        NadirAST Name29 = null;
        NadirAST ID30 = null;
        NadirAST Require31 = null;
        NadirAST NoMatchClause32 = null;
        NadirAST Require33 = null;
        NadirAST MatchClause34 = null;
        NadirAST e = null;

        NadirAST s_tree=null;
        NadirAST Require23_tree=null;
        NadirAST FunctionCall24_tree=null;
        NadirAST Name25_tree=null;
        NadirAST ID26_tree=null;
        NadirAST Require27_tree=null;
        NadirAST FunctionCall28_tree=null;
        NadirAST Name29_tree=null;
        NadirAST ID30_tree=null;
        NadirAST Require31_tree=null;
        NadirAST NoMatchClause32_tree=null;
        NadirAST Require33_tree=null;
        NadirAST MatchClause34_tree=null;
        NadirAST e_tree=null;
        RewriteRuleNodeStream stream_Name = new RewriteRuleNodeStream(adaptor,"token Name");
        RewriteRuleNodeStream stream_NoMatchClause = new RewriteRuleNodeStream(adaptor,"token NoMatchClause");
        RewriteRuleNodeStream stream_Require = new RewriteRuleNodeStream(adaptor,"token Require");
        RewriteRuleNodeStream stream_ID = new RewriteRuleNodeStream(adaptor,"token ID");
        RewriteRuleNodeStream stream_MatchClause = new RewriteRuleNodeStream(adaptor,"token MatchClause");
        RewriteRuleNodeStream stream_FunctionCall = new RewriteRuleNodeStream(adaptor,"token FunctionCall");
        RewriteRuleNodeStream stream_STRING = new RewriteRuleNodeStream(adaptor,"token STRING");

        try 
    	{
            // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:94:9: ( ^( Require ^( FunctionCall ^( Name ID {...}?) s= STRING ) ) -> ^( NoMatchClause $s) | ^( Require ^( FunctionCall ^( Name ID {...}?) s= STRING ) ) -> ^( MatchClause $s) | ^( Require ^( NoMatchClause (e= . )* ) ) -> ^( NoMatchClause ( $e)* ) | ^( Require ^( MatchClause (e= . )* ) ) -> ^( MatchClause ( $e)* ) )
            int alt15 = 4;
            alt15 = dfa15.Predict(input);
            switch (alt15) 
            {
                case 1 :
                    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:94:17: ^( Require ^( FunctionCall ^( Name ID {...}?) s= STRING ) )
                    {
                    	_last = (NadirAST)input.LT(1);
                    	{
                    	NadirAST _save_last_1 = _last;
                    	NadirAST _first_1 = null;
                    	_last = (NadirAST)input.LT(1);
                    	Require23=(NadirAST)Match(input,Require,FOLLOW_Require_in_require1263); if (state.failed) return retval; 
                    	if ( (state.backtracking == 1) ) stream_Require.Add(Require23);


                    	if ( (state.backtracking == 1) )
                    	if ( _first_0==null ) _first_0 = Require23;
                    	Match(input, Token.DOWN, null); if (state.failed) return retval;
                    	_last = (NadirAST)input.LT(1);
                    	{
                    	NadirAST _save_last_2 = _last;
                    	NadirAST _first_2 = null;
                    	_last = (NadirAST)input.LT(1);
                    	FunctionCall24=(NadirAST)Match(input,FunctionCall,FOLLOW_FunctionCall_in_require1266); if (state.failed) return retval; 
                    	if ( (state.backtracking == 1) ) stream_FunctionCall.Add(FunctionCall24);


                    	if ( (state.backtracking == 1) )
                    	if ( _first_1==null ) _first_1 = FunctionCall24;
                    	Match(input, Token.DOWN, null); if (state.failed) return retval;
                    	_last = (NadirAST)input.LT(1);
                    	{
                    	NadirAST _save_last_3 = _last;
                    	NadirAST _first_3 = null;
                    	_last = (NadirAST)input.LT(1);
                    	Name25=(NadirAST)Match(input,Name,FOLLOW_Name_in_require1269); if (state.failed) return retval; 
                    	if ( (state.backtracking == 1) ) stream_Name.Add(Name25);


                    	if ( (state.backtracking == 1) )
                    	if ( _first_2==null ) _first_2 = Name25;
                    	Match(input, Token.DOWN, null); if (state.failed) return retval;
                    	_last = (NadirAST)input.LT(1);
                    	ID26=(NadirAST)Match(input,ID,FOLLOW_ID_in_require1271); if (state.failed) return retval; 
                    	if ( (state.backtracking == 1) ) stream_ID.Add(ID26);

                    	if ( !((ID26.Text=="nomatchregex")) ) 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    	    throw new FailedPredicateException(input, "require", "$ID.Text==\"nomatchregex\"");
                    	}

                    	Match(input, Token.UP, null); if (state.failed) return retval;_last = _save_last_3;
                    	}

                    	_last = (NadirAST)input.LT(1);
                    	s=(NadirAST)Match(input,STRING,FOLLOW_STRING_in_require1278); if (state.failed) return retval; 
                    	if ( (state.backtracking == 1) ) stream_STRING.Add(s);


                    	Match(input, Token.UP, null); if (state.failed) return retval;_last = _save_last_2;
                    	}


                    	Match(input, Token.UP, null); if (state.failed) return retval;_last = _save_last_1;
                    	}



                    	// AST REWRITE
                    	// elements:          s
                    	// token labels:      s
                    	// rule labels:       retval
                    	// token list labels: 
                    	// rule list labels:  
                    	// wildcard labels: 
                    	if ( (state.backtracking == 1) ) {
                    	retval.Tree = root_0;
                    	RewriteRuleNodeStream stream_s = new RewriteRuleNodeStream(adaptor, "token s", s);
                    	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

                    	root_0 = (NadirAST)adaptor.GetNilNode();
                    	// 94:97: -> ^( NoMatchClause $s)
                    	{
                    	    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:94:100: ^( NoMatchClause $s)
                    	    {
                    	    NadirAST root_1 = (NadirAST)adaptor.GetNilNode();
                    	    root_1 = (NadirAST)adaptor.BecomeRoot((NadirAST)adaptor.Create(NoMatchClause, "NoMatchClause"), root_1);

                    	    adaptor.AddChild(root_1, stream_s.NextNode());

                    	    adaptor.AddChild(root_0, root_1);
                    	    }

                    	}

                    	retval.Tree = (NadirAST)adaptor.RulePostProcessing(root_0);
                    	input.ReplaceChildren(adaptor.GetParent(retval.Start),
                    	                      adaptor.GetChildIndex(retval.Start),
                    	                      adaptor.GetChildIndex(_last),
                    	                      retval.Tree);}
                    }
                    break;
                case 2 :
                    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:95:17: ^( Require ^( FunctionCall ^( Name ID {...}?) s= STRING ) )
                    {
                    	_last = (NadirAST)input.LT(1);
                    	{
                    	NadirAST _save_last_1 = _last;
                    	NadirAST _first_1 = null;
                    	_last = (NadirAST)input.LT(1);
                    	Require27=(NadirAST)Match(input,Require,FOLLOW_Require_in_require1313); if (state.failed) return retval; 
                    	if ( (state.backtracking == 1) ) stream_Require.Add(Require27);


                    	if ( (state.backtracking == 1) )
                    	if ( _first_0==null ) _first_0 = Require27;
                    	Match(input, Token.DOWN, null); if (state.failed) return retval;
                    	_last = (NadirAST)input.LT(1);
                    	{
                    	NadirAST _save_last_2 = _last;
                    	NadirAST _first_2 = null;
                    	_last = (NadirAST)input.LT(1);
                    	FunctionCall28=(NadirAST)Match(input,FunctionCall,FOLLOW_FunctionCall_in_require1316); if (state.failed) return retval; 
                    	if ( (state.backtracking == 1) ) stream_FunctionCall.Add(FunctionCall28);


                    	if ( (state.backtracking == 1) )
                    	if ( _first_1==null ) _first_1 = FunctionCall28;
                    	Match(input, Token.DOWN, null); if (state.failed) return retval;
                    	_last = (NadirAST)input.LT(1);
                    	{
                    	NadirAST _save_last_3 = _last;
                    	NadirAST _first_3 = null;
                    	_last = (NadirAST)input.LT(1);
                    	Name29=(NadirAST)Match(input,Name,FOLLOW_Name_in_require1319); if (state.failed) return retval; 
                    	if ( (state.backtracking == 1) ) stream_Name.Add(Name29);


                    	if ( (state.backtracking == 1) )
                    	if ( _first_2==null ) _first_2 = Name29;
                    	Match(input, Token.DOWN, null); if (state.failed) return retval;
                    	_last = (NadirAST)input.LT(1);
                    	ID30=(NadirAST)Match(input,ID,FOLLOW_ID_in_require1321); if (state.failed) return retval; 
                    	if ( (state.backtracking == 1) ) stream_ID.Add(ID30);

                    	if ( !((ID30.Text=="matchregex")) ) 
                    	{
                    	    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                    	    throw new FailedPredicateException(input, "require", "$ID.Text==\"matchregex\"");
                    	}

                    	Match(input, Token.UP, null); if (state.failed) return retval;_last = _save_last_3;
                    	}

                    	_last = (NadirAST)input.LT(1);
                    	s=(NadirAST)Match(input,STRING,FOLLOW_STRING_in_require1330); if (state.failed) return retval; 
                    	if ( (state.backtracking == 1) ) stream_STRING.Add(s);


                    	Match(input, Token.UP, null); if (state.failed) return retval;_last = _save_last_2;
                    	}


                    	Match(input, Token.UP, null); if (state.failed) return retval;_last = _save_last_1;
                    	}



                    	// AST REWRITE
                    	// elements:          s
                    	// token labels:      s
                    	// rule labels:       retval
                    	// token list labels: 
                    	// rule list labels:  
                    	// wildcard labels: 
                    	if ( (state.backtracking == 1) ) {
                    	retval.Tree = root_0;
                    	RewriteRuleNodeStream stream_s = new RewriteRuleNodeStream(adaptor, "token s", s);
                    	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

                    	root_0 = (NadirAST)adaptor.GetNilNode();
                    	// 95:97: -> ^( MatchClause $s)
                    	{
                    	    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:95:100: ^( MatchClause $s)
                    	    {
                    	    NadirAST root_1 = (NadirAST)adaptor.GetNilNode();
                    	    root_1 = (NadirAST)adaptor.BecomeRoot((NadirAST)adaptor.Create(MatchClause, "MatchClause"), root_1);

                    	    adaptor.AddChild(root_1, stream_s.NextNode());

                    	    adaptor.AddChild(root_0, root_1);
                    	    }

                    	}

                    	retval.Tree = (NadirAST)adaptor.RulePostProcessing(root_0);
                    	input.ReplaceChildren(adaptor.GetParent(retval.Start),
                    	                      adaptor.GetChildIndex(retval.Start),
                    	                      adaptor.GetChildIndex(_last),
                    	                      retval.Tree);}
                    }
                    break;
                case 3 :
                    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:96:17: ^( Require ^( NoMatchClause (e= . )* ) )
                    {
                    	_last = (NadirAST)input.LT(1);
                    	{
                    	NadirAST _save_last_1 = _last;
                    	NadirAST _first_1 = null;
                    	_last = (NadirAST)input.LT(1);
                    	Require31=(NadirAST)Match(input,Require,FOLLOW_Require_in_require1369); if (state.failed) return retval; 
                    	if ( (state.backtracking == 1) ) stream_Require.Add(Require31);


                    	if ( (state.backtracking == 1) )
                    	if ( _first_0==null ) _first_0 = Require31;
                    	Match(input, Token.DOWN, null); if (state.failed) return retval;
                    	_last = (NadirAST)input.LT(1);
                    	{
                    	NadirAST _save_last_2 = _last;
                    	NadirAST _first_2 = null;
                    	_last = (NadirAST)input.LT(1);
                    	NoMatchClause32=(NadirAST)Match(input,NoMatchClause,FOLLOW_NoMatchClause_in_require1372); if (state.failed) return retval; 
                    	if ( (state.backtracking == 1) ) stream_NoMatchClause.Add(NoMatchClause32);


                    	if ( (state.backtracking == 1) )
                    	if ( _first_1==null ) _first_1 = NoMatchClause32;
                    	if ( input.LA(1) == Token.DOWN )
                    	{
                    	    Match(input, Token.DOWN, null); if (state.failed) return retval;
                    	    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:96:44: (e= . )*
                    	    do 
                    	    {
                    	        int alt13 = 2;
                    	        int LA13_0 = input.LA(1);

                    	        if ( ((LA13_0 >= TokenFirst && LA13_0 <= 250)) )
                    	        {
                    	            alt13 = 1;
                    	        }


                    	        switch (alt13) 
                    	    	{
                    	    		case 1 :
                    	    		    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:0:0: e= .
                    	    		    {
                    	    		    	_last = (NadirAST)input.LT(1);
                    	    		    	e = (NadirAST)input.LT(1);
                    	    		    	MatchAny(input); if (state.failed) return retval;
                    	    		    	 
                    	    		    	if ( (state.backtracking == 1) )
                    	    		    	if ( _first_2==null ) _first_2 = e;

                    	    		    	if ( (state.backtracking == 1) ) {
                    	    		    	retval.Tree = (NadirAST)_first_0;
                    	    		    	if ( adaptor.GetParent(retval.Tree)!=null && adaptor.IsNil( adaptor.GetParent(retval.Tree) ) )
                    	    		    	    retval.Tree = (NadirAST)adaptor.GetParent(retval.Tree);}
                    	    		    }
                    	    		    break;

                    	    		default:
                    	    		    goto loop13;
                    	        }
                    	    } while (true);

                    	    loop13:
                    	    	;	// Stops C# compiler whining that label 'loop13' has no statements


                    	    Match(input, Token.UP, null); if (state.failed) return retval;
                    	}_last = _save_last_2;
                    	}


                    	Match(input, Token.UP, null); if (state.failed) return retval;_last = _save_last_1;
                    	}



                    	// AST REWRITE
                    	// elements:          NoMatchClause, e
                    	// token labels:      
                    	// rule labels:       retval
                    	// token list labels: 
                    	// rule list labels:  
                    	// wildcard labels: e
                    	if ( (state.backtracking == 1) ) {
                    	retval.Tree = root_0;
                    	RewriteRuleSubtreeStream stream_e = new RewriteRuleSubtreeStream(adaptor,"wildcard e",e);
                    	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

                    	root_0 = (NadirAST)adaptor.GetNilNode();
                    	// 96:97: -> ^( NoMatchClause ( $e)* )
                    	{
                    	    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:96:100: ^( NoMatchClause ( $e)* )
                    	    {
                    	    NadirAST root_1 = (NadirAST)adaptor.GetNilNode();
                    	    root_1 = (NadirAST)adaptor.BecomeRoot(stream_NoMatchClause.NextNode(), root_1);

                    	    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:96:116: ( $e)*
                    	    while ( stream_e.HasNext() )
                    	    {
                    	        adaptor.AddChild(root_1, stream_e.NextTree());

                    	    }
                    	    stream_e.Reset();

                    	    adaptor.AddChild(root_0, root_1);
                    	    }

                    	}

                    	retval.Tree = (NadirAST)adaptor.RulePostProcessing(root_0);
                    	input.ReplaceChildren(adaptor.GetParent(retval.Start),
                    	                      adaptor.GetChildIndex(retval.Start),
                    	                      adaptor.GetChildIndex(_last),
                    	                      retval.Tree);}
                    }
                    break;
                case 4 :
                    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:97:17: ^( Require ^( MatchClause (e= . )* ) )
                    {
                    	_last = (NadirAST)input.LT(1);
                    	{
                    	NadirAST _save_last_1 = _last;
                    	NadirAST _first_1 = null;
                    	_last = (NadirAST)input.LT(1);
                    	Require33=(NadirAST)Match(input,Require,FOLLOW_Require_in_require1455); if (state.failed) return retval; 
                    	if ( (state.backtracking == 1) ) stream_Require.Add(Require33);


                    	if ( (state.backtracking == 1) )
                    	if ( _first_0==null ) _first_0 = Require33;
                    	Match(input, Token.DOWN, null); if (state.failed) return retval;
                    	_last = (NadirAST)input.LT(1);
                    	{
                    	NadirAST _save_last_2 = _last;
                    	NadirAST _first_2 = null;
                    	_last = (NadirAST)input.LT(1);
                    	MatchClause34=(NadirAST)Match(input,MatchClause,FOLLOW_MatchClause_in_require1458); if (state.failed) return retval; 
                    	if ( (state.backtracking == 1) ) stream_MatchClause.Add(MatchClause34);


                    	if ( (state.backtracking == 1) )
                    	if ( _first_1==null ) _first_1 = MatchClause34;
                    	if ( input.LA(1) == Token.DOWN )
                    	{
                    	    Match(input, Token.DOWN, null); if (state.failed) return retval;
                    	    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:97:42: (e= . )*
                    	    do 
                    	    {
                    	        int alt14 = 2;
                    	        int LA14_0 = input.LA(1);

                    	        if ( ((LA14_0 >= TokenFirst && LA14_0 <= 250)) )
                    	        {
                    	            alt14 = 1;
                    	        }


                    	        switch (alt14) 
                    	    	{
                    	    		case 1 :
                    	    		    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:0:0: e= .
                    	    		    {
                    	    		    	_last = (NadirAST)input.LT(1);
                    	    		    	e = (NadirAST)input.LT(1);
                    	    		    	MatchAny(input); if (state.failed) return retval;
                    	    		    	 
                    	    		    	if ( (state.backtracking == 1) )
                    	    		    	if ( _first_2==null ) _first_2 = e;

                    	    		    	if ( (state.backtracking == 1) ) {
                    	    		    	retval.Tree = (NadirAST)_first_0;
                    	    		    	if ( adaptor.GetParent(retval.Tree)!=null && adaptor.IsNil( adaptor.GetParent(retval.Tree) ) )
                    	    		    	    retval.Tree = (NadirAST)adaptor.GetParent(retval.Tree);}
                    	    		    }
                    	    		    break;

                    	    		default:
                    	    		    goto loop14;
                    	        }
                    	    } while (true);

                    	    loop14:
                    	    	;	// Stops C# compiler whining that label 'loop14' has no statements


                    	    Match(input, Token.UP, null); if (state.failed) return retval;
                    	}_last = _save_last_2;
                    	}


                    	Match(input, Token.UP, null); if (state.failed) return retval;_last = _save_last_1;
                    	}



                    	// AST REWRITE
                    	// elements:          e, MatchClause
                    	// token labels:      
                    	// rule labels:       retval
                    	// token list labels: 
                    	// rule list labels:  
                    	// wildcard labels: e
                    	if ( (state.backtracking == 1) ) {
                    	retval.Tree = root_0;
                    	RewriteRuleSubtreeStream stream_e = new RewriteRuleSubtreeStream(adaptor,"wildcard e",e);
                    	RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "rule retval", retval!=null ? retval.Tree : null);

                    	root_0 = (NadirAST)adaptor.GetNilNode();
                    	// 97:97: -> ^( MatchClause ( $e)* )
                    	{
                    	    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:97:100: ^( MatchClause ( $e)* )
                    	    {
                    	    NadirAST root_1 = (NadirAST)adaptor.GetNilNode();
                    	    root_1 = (NadirAST)adaptor.BecomeRoot(stream_MatchClause.NextNode(), root_1);

                    	    // C:\\nadir\\nadir\\Nadir\\Parsing\\NadirASTOptimizer.g:97:116: ( $e)*
                    	    while ( stream_e.HasNext() )
                    	    {
                    	        adaptor.AddChild(root_1, stream_e.NextTree());

                    	    }
                    	    stream_e.Reset();

                    	    adaptor.AddChild(root_0, root_1);
                    	    }

                    	}

                    	retval.Tree = (NadirAST)adaptor.RulePostProcessing(root_0);
                    	input.ReplaceChildren(adaptor.GetParent(retval.Start),
                    	                      adaptor.GetChildIndex(retval.Start),
                    	                      adaptor.GetChildIndex(_last),
                    	                      retval.Tree);}
                    }
                    break;

            }
        }
        catch (RecognitionException re) 
    	{
            ReportError(re);
            Recover(input,re);
        }
        finally 
    	{
        }
        return retval;
    }
Beispiel #32
0
    // throws RecognitionException [1]
    // $ANTLR start "coord_part"
    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:460:1: coord_part : ( idd -> ^( IM_DONTCARE idd ) | '{' idd '}' -> ^( IM_DONTCARE '{' idd '}' ) | ( idd '=' numberunit ( ',' )? )+ -> ^( IM_DONTCARE ( idd '=' numberunit ( ',' )? )+ ) );
    public simpletikzParser.coord_part_return coord_part()
    {
        simpletikzParser.coord_part_return retval = new simpletikzParser.coord_part_return();
        retval.Start = input.LT(1);

        object root_0 = null;

        IToken char_literal285 = null;
        IToken char_literal287 = null;
        IToken char_literal289 = null;
        IToken char_literal291 = null;
        simpletikzParser.idd_return idd284 = default(simpletikzParser.idd_return);

        simpletikzParser.idd_return idd286 = default(simpletikzParser.idd_return);

        simpletikzParser.idd_return idd288 = default(simpletikzParser.idd_return);

        simpletikzParser.numberunit_return numberunit290 = default(simpletikzParser.numberunit_return);

        object char_literal285_tree=null;
        object char_literal287_tree=null;
        object char_literal289_tree=null;
        object char_literal291_tree=null;
        RewriteRuleTokenStream stream_45 = new RewriteRuleTokenStream(adaptor,"token 45");
        RewriteRuleTokenStream stream_43 = new RewriteRuleTokenStream(adaptor,"token 43");
        RewriteRuleTokenStream stream_44 = new RewriteRuleTokenStream(adaptor,"token 44");
        RewriteRuleTokenStream stream_47 = new RewriteRuleTokenStream(adaptor,"token 47");
        RewriteRuleSubtreeStream stream_numberunit = new RewriteRuleSubtreeStream(adaptor,"rule numberunit");
        RewriteRuleSubtreeStream stream_idd = new RewriteRuleSubtreeStream(adaptor,"rule idd");
        try
        {
            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:461:2: ( idd -> ^( IM_DONTCARE idd ) | '{' idd '}' -> ^( IM_DONTCARE '{' idd '}' ) | ( idd '=' numberunit ( ',' )? )+ -> ^( IM_DONTCARE ( idd '=' numberunit ( ',' )? )+ ) )
            int alt73 = 3;
            alt73 = dfa73.Predict(input);
            switch (alt73)
            {
                case 1 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:461:4: idd
                    {
                        PushFollow(FOLLOW_idd_in_coord_part3010);
                        idd284 = idd();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking==0 ) stream_idd.Add(idd284.Tree);

                        // AST REWRITE
                        // elements:          idd
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 461:9: -> ^( IM_DONTCARE idd )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:461:12: ^( IM_DONTCARE idd )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_DONTCARE, "IM_DONTCARE"), root_1);

                            adaptor.AddChild(root_1, stream_idd.NextTree());

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 2 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:462:4: '{' idd '}'
                    {
                        char_literal285=(IToken)Match(input,43,FOLLOW_43_in_coord_part3025); if (state.failed) return retval;
                        if ( state.backtracking==0 ) stream_43.Add(char_literal285);

                        PushFollow(FOLLOW_idd_in_coord_part3027);
                        idd286 = idd();
                        state.followingStackPointer--;
                        if (state.failed) return retval;
                        if ( state.backtracking==0 ) stream_idd.Add(idd286.Tree);
                        char_literal287=(IToken)Match(input,44,FOLLOW_44_in_coord_part3029); if (state.failed) return retval;
                        if ( state.backtracking==0 ) stream_44.Add(char_literal287);

                        // AST REWRITE
                        // elements:          idd, 43, 44
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 462:16: -> ^( IM_DONTCARE '{' idd '}' )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:462:19: ^( IM_DONTCARE '{' idd '}' )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_DONTCARE, "IM_DONTCARE"), root_1);

                            adaptor.AddChild(root_1, stream_43.NextNode());
                            adaptor.AddChild(root_1, stream_idd.NextTree());
                            adaptor.AddChild(root_1, stream_44.NextNode());

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;
                case 3 :
                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:463:4: ( idd '=' numberunit ( ',' )? )+
                    {
                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:463:4: ( idd '=' numberunit ( ',' )? )+
                        int cnt72 = 0;
                        do
                        {
                            int alt72 = 2;
                            int LA72_0 = input.LA(1);

                            if ( (LA72_0 == 78) )
                            {
                                int LA72_2 = input.LA(2);

                                if ( ((LA72_2 >= FLOAT_WO_EXP && LA72_2 <= INT)) )
                                {
                                    int LA72_4 = input.LA(3);

                                    if ( ((LA72_4 >= 57 && LA72_4 <= 62)) )
                                    {
                                        int LA72_5 = input.LA(4);

                                        if ( ((LA72_5 >= IM_PATH && LA72_5 <= 42) || (LA72_5 >= 45 && LA72_5 <= 46) || LA72_5 == 51 || (LA72_5 >= 57 && LA72_5 <= 94)) )
                                        {
                                            alt72 = 1;
                                        }

                                    }
                                    else if ( ((LA72_4 >= IM_PATH && LA72_4 <= 42) || (LA72_4 >= 45 && LA72_4 <= 46) || LA72_4 == 51 || (LA72_4 >= 63 && LA72_4 <= 94)) )
                                    {
                                        alt72 = 1;
                                    }

                                }
                                else if ( ((LA72_2 >= IM_PATH && LA72_2 <= COMMAND) || (LA72_2 >= WS && LA72_2 <= 42) || (LA72_2 >= 45 && LA72_2 <= 46) || LA72_2 == 51 || (LA72_2 >= 57 && LA72_2 <= 94)) )
                                {
                                    alt72 = 1;
                                }

                            }
                            else if ( ((LA72_0 >= IM_PATH && LA72_0 <= 42) || LA72_0 == 46 || LA72_0 == 51 || (LA72_0 >= 57 && LA72_0 <= 77) || (LA72_0 >= 79 && LA72_0 <= 94)) )
                            {
                                alt72 = 1;
                            }

                            switch (alt72)
                            {
                                case 1 :
                                    // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:463:5: idd '=' numberunit ( ',' )?
                                    {
                                        PushFollow(FOLLOW_idd_in_coord_part3047);
                                        idd288 = idd();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_idd.Add(idd288.Tree);
                                        char_literal289=(IToken)Match(input,45,FOLLOW_45_in_coord_part3049); if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_45.Add(char_literal289);

                                        PushFollow(FOLLOW_numberunit_in_coord_part3051);
                                        numberunit290 = numberunit();
                                        state.followingStackPointer--;
                                        if (state.failed) return retval;
                                        if ( state.backtracking==0 ) stream_numberunit.Add(numberunit290.Tree);
                                        // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:463:24: ( ',' )?
                                        int alt71 = 2;
                                        int LA71_0 = input.LA(1);

                                        if ( (LA71_0 == 47) )
                                        {
                                            alt71 = 1;
                                        }
                                        switch (alt71)
                                        {
                                            case 1 :
                                                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:463:24: ','
                                                {
                                                    char_literal291=(IToken)Match(input,47,FOLLOW_47_in_coord_part3053); if (state.failed) return retval;
                                                    if ( state.backtracking==0 ) stream_47.Add(char_literal291);

                                                }
                                                break;

                                        }

                                    }
                                    break;

                                default:
                                    if ( cnt72 >= 1 ) goto loop72;
                                    if ( state.backtracking > 0 ) {state.failed = true; return retval;}
                                        EarlyExitException eee =
                                            new EarlyExitException(72, input);
                                        throw eee;
                            }
                            cnt72++;
                        } while (true);

                        loop72:
                            ;	// Stops C# compiler whinging that label 'loop72' has no statements

                        // AST REWRITE
                        // elements:          47, numberunit, idd, 45
                        // token labels:
                        // rule labels:       retval
                        // token list labels:
                        // rule list labels:
                        if ( state.backtracking==0 ) {
                        retval.Tree = root_0;
                        RewriteRuleSubtreeStream stream_retval = new RewriteRuleSubtreeStream(adaptor, "token retval", (retval!=null ? retval.Tree : null));

                        root_0 = (object)adaptor.GetNilNode();
                        // 463:31: -> ^( IM_DONTCARE ( idd '=' numberunit ( ',' )? )+ )
                        {
                            // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:463:34: ^( IM_DONTCARE ( idd '=' numberunit ( ',' )? )+ )
                            {
                            object root_1 = (object)adaptor.GetNilNode();
                            root_1 = (object)adaptor.BecomeRoot((object)adaptor.Create(IM_DONTCARE, "IM_DONTCARE"), root_1);

                            if ( !(stream_numberunit.HasNext() || stream_idd.HasNext() || stream_45.HasNext()) ) {
                                throw new RewriteEarlyExitException();
                            }
                            while ( stream_numberunit.HasNext() || stream_idd.HasNext() || stream_45.HasNext() )
                            {
                                adaptor.AddChild(root_1, stream_idd.NextTree());
                                adaptor.AddChild(root_1, stream_45.NextNode());
                                adaptor.AddChild(root_1, stream_numberunit.NextTree());
                                // C:\\_TUHH\\SVN\\projects\\wsn\\dibus\\SvgMap\\SvgNaviMap\\bargraph\\tikzedt\\TikzParser\\simpletikz.g:463:69: ( ',' )?
                                if ( stream_47.HasNext() )
                                {
                                    adaptor.AddChild(root_1, stream_47.NextNode());

                                }
                                stream_47.Reset();

                            }
                            stream_numberunit.Reset();
                            stream_idd.Reset();
                            stream_45.Reset();

                            adaptor.AddChild(root_0, root_1);
                            }

                        }

                        retval.Tree = root_0;retval.Tree = root_0;}
                    }
                    break;

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

            if ( state.backtracking==0 )
            {	retval.Tree = (object)adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }

            catch (RecognitionException e) {
                throw e;
            }
        finally
        {
        }
        return retval;
    }