## followable集合の作成 1つのノードに対し規則が還元した後に続く[follow集合](17.follow集合の作成.md)と[ahead集合](18.ahead集合の作成.md)を集約する。これをfollowable集合とする。 還元規則の判定に[nullable集合](15.nullable集合の作成.md)を使用する。 現在の位置が左端にないが還元しうる規則に対してはfollowのみを集約する。 空規則の場合はaheadを集約する。 現在位置が末尾ではない還元しうる規則にはaheadとfollowを集約する。 followable集合の作成は次の疑似コードで表す。 これをなくなるまで全てのノードに対し行う。 ``` followable集合 = 現在の位置が左端にないが還元しうる規則 foreach (line in 空規則) top = lineの左辺 topのfollowable集合にtopのahead集合を追加 foreach (line in 現在位置が末尾ではない還元しうる規則) top = lineの左辺 current = lineの読み込み位置規則 currentのfollowable集合にtopのahead集合を追加 currentのfollowable集合にtopのfollowable集合を追加 ```