예제 #1
0
        private ArvoreNo AnalisarTermo()
        {
            ArvoreNo fator = AnalisarFator();

            while (tokenAtual.Tipo == TipoToken.Vezes || tokenAtual.Tipo == TipoToken.Dividir)
            {
                Token operacao = tokenAtual;
                ProximoToken(operacao.Tipo);
                ArvoreNo dir = AnalisarFator();
                fator = new ExpressaoNo(fator, operacao, dir);
            }

            return(fator);
        }
예제 #2
0
        private ArvoreNo AnalisarExpressao()
        {
            ArvoreNo esq = AnalisarTermo();

            while (tokenAtual.Tipo == TipoToken.Mais || tokenAtual.Tipo == TipoToken.Menos)
            {
                Token operacao = tokenAtual;
                ProximoToken(operacao.Tipo);
                ArvoreNo dir = AnalisarTermo();
                esq = new ExpressaoNo(esq, operacao, dir);
            }

            return(esq);
        }