Хорошо, я понял, как вычислить набор Follow_k (N) (N является нетерминалом): для каждого правила производства формы A -> aBc вы добавляете First_k (First_k (c) Follow_k (A)) to Follow_k (B) (a, c - любая группа терминалов и нетерминалов или даже lambda). ... и вы повторяете это, пока нечего добавить.Computing the Follow Set
Но что происходит для производственных правил, таких как: S -> ABCD (A, B, C, D - все нетерминалы)?
Должен ли я
добавить First_k (First_k (КОР) Follow_k (S)), чтобы Follow_k (A) или
добавить First_k (First_k (CD) Follow_k (S)), чтобы Follow_k (B) или
добавить First_k (First_k (D) Follow_k (S)) to Follow_k (C) или
добавить First_k (First_k (лямбда) Follow_k (S)) в Follow_k (D) или
сделать все вышеперечисленное?
ОБНОВЛЕНИЕ:
Давайте рассмотрим следующую грамматику, например:
S -> ABC
А -> а
Б -> б
С -> с
Наглядно, Follow_1 (S) = {}, потому что ничего не следует после S
Follow_1 (A) = {b}, поскольку b следует после A,
Follow_1 (B) = {c}, поскольку c следует после B,
Follow_1 (C) = {}, потому что после C. ничего не следует.
Чтобы получить этот результат с использованием алгоритма, вы должны рассмотреть все случаи для S -> ABC.
Но мое решение или пример не может быть правильным, так что вопрос остается открытым ...