Example #1
0
        public bool Compile(string FileName)
        {
            TextLoader StrLd = new TextLoader(FileName);
            string     Datas = StrLd.Load();

            if (m_tr.ParsingType == Translate.ParseType.LL1)
            {
                if (m_tdParser.Init())
                {
                    ASTElement astElm  = m_tdParser.Parse(Datas);
                    string     verlauf = m_tdParser.ParseVerlauf;

                    TextLoader StrSv = new TextLoader("parse.txt");
                    StrSv.Save(verlauf);

                    string     RLtree = ASTElement.Tree2XML(astElm, 0);
                    TextLoader StrSv2 = new TextLoader("parsetree.xml");
                    StrSv2.Save(RLtree);

                    m_tr.Convert(astElm);
                }
            }
            else if (m_tr.ParsingType == Translate.ParseType.SLR1 || m_tr.ParsingType == Translate.ParseType.LR1 || m_tr.ParsingType == Translate.ParseType.LALR1)
            {
                if (m_buParser.Init())
                {
                    ASTElement astElm = m_buParser.Parse(Datas);

                    string verlauf = ButtomUpParser.ParseVerlaufArray2String(m_buParser.ParseVerlaufListe);

                    TextLoader StrSv1 = new TextLoader("parse.txt");
                    StrSv1.Save(verlauf);

                    string     RLtree = ASTElement.Tree2XML(astElm, 0);
                    TextLoader StrSv2 = new TextLoader("parsetree.xml");
                    StrSv2.Save(RLtree);
                }
            }

            return(true);
        }