Определение. Функция FOLLOW (A) для нететрминала A определяется как множество терминальных символов, которые могут следовать за A в какой-нибудь промежуточной цепочке вывода. Формально
Обычно исходная грамматика преобразуется так, что вводится новый начальный символ S' с правилом .
Это гарантирует, что ни один нетерминал не окажется крайним справа ни в одной цепочке вывода в этой грамматике.
Рекурсивный алгоритм для нахождения FOLLOW(A). Просматриваются последовательно все правила грамматики, в правой части которых встречается A, и для каждого такого правила вида помещаем в FOLLOW(A) все элементы
, кроме . Если в этой продукции , то помещаем в FOLLOW(A) все элементы FOLLOW(B).