Example #1
0
        //static public string TIKZEDT_CMD_COMMENT = "";

        public static Tikz_ParseTree ParseInputFile(string code)
        {
            //if code is empty to bother ANTLR (it will raise an exception)
            if (code.Trim() == "")
            {
                return(null);
            }

            simpletikzLexer   lex    = new simpletikzLexer(new ANTLRStringStream(code));
            CommonTokenStream tokens = new CommonTokenStream(lex);
            simpletikzParser  parser = new simpletikzParser(tokens);

            simpletikzParser.tikzdocument_wo_tikzpicture_return ret = parser.tikzdocument_wo_tikzpicture();
            CommonTree     t       = (CommonTree)ret.Tree;
            Tikz_ParseTree root    = new Tikz_ParseTree();
            bool           success = FillItem(root, t, tokens);

            if (success)
            {
                root.RegisterNodeAndStyleRefs(); // make a list with all node names for later reference
                return(root);
            }
            else
            {
                return(null);
            }
        }
Example #2
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;
    }