Yanp

nullable集合の作成 🔗

構文規則から空規則の可能性がある規則を作成する。これをnullable集合とする。
nullable集合には大きく2つあり、まずは規則の全くないものである。
もうひとつは全ての規則がnullable集合に含まれるものである。

void :       # voidは規則がないのでnullable
avoid :      # 規則がない可能性があるのでnullable
      | 'A'

able : void avoid  # 全ての規則がnullableであるためnullable
disable : void 'A' # nullableでない記号が含まれるためnullableではない

nullable集合の作成は次の疑似コードで表す。
これをなくなるまで全てのノードに対し行う。

nullable集合 = 空規則のもの

foreach (line in 全ての規則)
    if (lineの全ての規則がnullable集合であるか)
        nullable集合にlineを追加