Ybadoo - Soluções em Software Livre
Turmas
2º Semestre de 2025

Um analisador sintático preditivo sem recursão pode ser construído mantendo uma pilha explicitamente, em vez de implicitamente, via chamadas recursivas. O analisador é dirigido por um programa que considera X, o símbolo no topo da pilha, e a, o símbolo corrente da entrada. Se X é um não-terminal, o analisador escolhe uma produção-X consultando a entrada M[X, a] da tabela M de análise. Por outro lado, ele tenta fazer um casamento entre o terminal X no topo da pilha e o símbolo corrente a da entrada. Apresente a sequência de movimentos, com recuperação de erros em modo pânico, da entrada (a;(;a);), considerando a tabela M apresentada a seguir.

Tabela de análise preditiva
 a;()$
AA → asincA → (B)sincsinc
BB → aD B → (B)Dsinc 
C C → ;AD sinc 
D DC D → ε 
Movimentos do analisador preditivo tabular para (a;(;a);)
PilhaEntradaDerivação
$ A( a ; ( ; a ) ; ) $A → (B)
$ ) B (( a ; ( ; a ) ; ) $ 
$ ) Ba ; ( ; a ) ; ) $B → aD
$ ) D aa ; ( ; a ) ; ) $ 
$ ) D; ( ; a ) ; ) $DC
$ ) C; ( ; a ) ; ) $C → ;AD
$ ) D A ;; ( ; a ) ; ) $ 
$ ) D A( ; a ) ; ) $A → (B)
$ ) D ) B (( ; a ) ; ) $ 
$ ) D ) B; a ) ; ) $branco - descartar token
$ ) D ) Ba ) ; ) $B → aD
$ ) D ) D aa ) ; ) $ 
$ ) D ) D) ; ) $D → ε
$ ) D )) ; ) $ 
$ ) D; ) $DC
$ ) C; ) $C → ;AD
$ ) D A ;; ) $ 
$ ) D A) $sinc - desempilhar
$ ) D) $D → ε
$ )) $ 
$$aceita