Ciências da computação dia 216

Compiladores --- Gramatica LL(1)

LL(1)

First

S -> AB
A -> b | empty
B -> a


First - table
S  |  {a,b}
A  |  {b, empty}
B  |  {a}

repare que em S, não temos só o b, uma vez que A pode ser vazio também, 
sendo assim, caso A seja vazio, o primeiro caractere será a

Follow

S -> AB
A -> b | empty
B -> a

S  | {$}       
A  | {a}       
B  | {$}       


De uma forma algoritmica, podemos representar o padrão do follow da
 seguinte forma:

```
adicionar $ para o conjunto do simbolo inicial

para cada regra existente faça
  se termina com o B (A -> αB) então
    Follow de B tem tudo do Follow de A
  senão (A -> αBβ)
    Follow de B possui o First de β
    
    se 'empty' está em First de β então
      Follow de B tem tudo do Follow de A
```