2026-04-12: パーサーを一通り実装した
やったこと
Naraku
名前付きグループの名前の仕様が意味分からなすぎて頭を抱えている。
まあとりあえず理解できる形に落とし込んだ。
細かい仕様は違うかもしれないけどもう考えたくない。
Onigmoで /[a-[b]]/ のように書くと左辺の a が消滅することに気付いた。
普通にバグだと思う。
文字クラスの警告の仕様がよく分からん。
- 警告なし
[-][x-][-x][x-x-][-x-x][-x-x-]
- 警告あり
[--][--x][x--][---](2回警告が出る)[x-x-x]
「直前が文字クラスの開始 or 直後が文字クラスの終端の場合に警告を出さない」にしても「範囲の一部として-が使われたら」という規則にしても、警告ありの1のケースが対処できないのが難しい。
正直 [--] の場合の警告はなくてもいい気がするので、単純な規則にしたい気持ちがある。
[--] の場合は、そもそも文字クラスで重複する文字が含まれていて、警告が出るので、わざわざ出さなくていいという結論になった。
注意することはこんな感じ。
[の直後、&&か]の直前の-は、範囲が期待される場合でも文字扱い[:のあと文字をスキップして]が出てくる前に:]が出てこないとPOSIX文字クラスにならない- 効率が悪すぎる。どうにかしたい
[も含められないことにすればいいのでは?- あと
[:のあとに21文字以上あると[と:の文字に分解されるのも意味不明すぎる挙動なのでやめたい
というわけで、がんばって文字クラスを実装したので、パーサーのすべての機能が実装された。;
まあここからが本番なのだが。