Yanp

followable集合の作成 🔗

1つのノードに対し規則が還元した後に続くfollow集合ahead集合を集約する。これをfollowable集合とする。
還元規則の判定にnullable集合を使用する。

現在の位置が左端にないが還元しうる規則に対しては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集合を追加