예제 #1
0
        private static void PrintArvoreSintatica(List <Token.Tok> lt, StreamWriter srX)
        {
            //######## PRINT DA ARVORE DE SINTAXE ##############

            //ArvoreSintatica arvore = new ArvoreSintatica();

            SintaticoX sX = new SintaticoX();

            sX.PredictiveParser(lt);
            srX.WriteLine("Imprimindo Arvores de Sintaxes no formato raiz-esquerda-direita");
            int count = 0;

            foreach (string exp in sX.listExpa)
            {
                if ((exp.Contains("*") || exp.Contains("+") || exp.Contains("-") || exp.Contains("/") || exp.Contains("%")) &&
                    exp.Length > 2)
                {
                    count++;
                    ArvoreSintatica arvore = new ArvoreSintatica();
                    arvore.parseRegex(arvore.initialNodo(exp));
                    string result = arvore.listTree();
                    srX.WriteLine("Arvore de Sintaxe " + count + ":");
                    srX.WriteLine(result);
                    srX.WriteLine();
                }
            }

            //######## FIM PRINT DA ARVORE DE SINTAXE ##############
        }
예제 #2
0
 public ExpressaoRegular(string text)
 {
     arvore = new ArvoreSintatica();
     regex  = text;
 }