Algoritmo tabela slr:
tabela <- Mapa〈estado, Mapa〈símbolo, ação〉〉
alfabeto <- [terminais, não-terminais] concatenados
para cada estado s em autômato.estados:
tabela[s.index] <- novo Mapa contendo todas as entradas de alfabeto inicializadas com ''
para cada estado s em autômato.estados:
para cada item i em s.items:
se i.pos == comprimento da produção OU produção é vazia:
follow <- followSet do lado esquerdo da produção de i
se follow não existe:
continua
se i.ruleIndex == 0:
tabela[s.index]['$'] <- 'a'
continua
para cada símbolo em follow:
tabela[s.index][símbolo] <- 'r' + i.ruleIndex
continua
símbolo_atual <- símbolo na posição i.pos da produção de i
transição <- estado de destino da transição de s.index com símbolo_atual
se símbolo_atual é não-terminal:
tabela[s.index][símbolo_atual] <- 'g' + transição
senão:
tabela[s.index][símbolo_atual] <- 's' + transição
retorna tabela