para cada item do estado:
se a posição do ponto de item for a ultima posição da regra:
continua para próxima iteração
símbolo <- símbolo após a posição do ponto na produção de item
se símbolo é um terminal:
continua para próxima iteração
para cada produção p na gramática:
se lado esquerdo de p ≠ símbolo:
continua para próxima iteração
se existe um item em estado com mesma produção p e posição 0:
continua para próxima iteração
adiciona novo item { produção: p, posição: 0 } ao estado