Algoritmo de parsing:
pilha_símbolos <- ['$', símbolo_inicial]
pilha_entrada <- entrada invertida (sem espaços) + ['$']
enquanto pilha_entrada não está vazia:
    topSymbol <- topo de pilha_símbolos
    topInput <- topo de pilha_entrada
    se topSymbol é não-terminal:
        produção <- ação de tabela para topSymbol e topInput
        se produção é inválida:
            retorna falso
        remove topSymbol de pilha_símbolos
        se produção não é vazia (ε):
            adiciona símbolos da produção invertidos a pilha_símbolos
    senão:
        se topSymboltopInput:
            retorna falso
        remove topSymbol de pilha_símbolos
        remove topInput de pilha_entrada
retorna pilha_símbolos e pilha_entrada estão vazias