Análise Descendente com Retrocesso ou Método de Tentativa e Erro
Devido a ineficiência do método apresentado acima, nosso
problema passa a ser como fazer para evitar retrocessos na análise, ou seja, o
que queremos é: conhecido o próximo símbolo da cadeia e qual o não
terminal a ser derivado, determinar exatamente qual regra da Gramática deve ser
aplicada.
O método usado para escolher uma entre muitas
regras, praticamente classifica o tipo de análise sintática. Obviamente, o
método sempre exigirá certas restrições à gramática. O método abaixo é uma
alternativa para alcançar o objetivo descrito.
Método
Recursivo Descendente
Implementação
de Parser Recursivo Descendente
As gramáticas que satisfazem o requisito de apenas um único símbolo à frente ser necessário para decidir que caminho seguir são chamadas Gramáticas LL(1).
Análise Sintática de Gramática LL(k) - "left to right, leftmost derivation with k lookahead symbols"
Algumas características, como ambigüidade e recursividade, impõem às gramáticas algumas restrições na análise sintática.
Parsing
de Gramáticas Ambíguas
Parsing
de Gramáticas Recursivas