Создавая первый набор для данной грамматики, я заметил сценарий, не описанный в моем справочнике по алгоритму.
А именно, как можно вычислить набор слежения для нетерминала с таким правилом.
<exp-list_tail> --> COMMA <exp> <exp-list_tail>
Выражения, окруженные ‹..>, не являются терминалами, запятая — это терминал.
Лучшее предположение — просто добавить пустую строку к следующему набору, но я не уверен.
Обычно для случая, когда нетерминал находится в конце производственного правила, вы просто вычисляете список следования для левого нетерминала, но вы можете видеть, насколько это может быть проблемой.