Closed hangingman closed 5 months ago
PEGで書き直したところすべてパースに成功したので、続きは別リポジトリで実施する https://github.com/HobbyOSs/gosk/commit/a27895528f1e8ff4d2b417c6f9d9881cd1d4da9c
bisonでできなかった理由としてはbnfc(内部はbison)のデフォルト構文解析アルゴリズムがLALR(1)だったため。
naskの文法ではどうしてもtoken先読みが必要だった(ラベルとかセグメントレジスタとか) %glr-parserにすればbisonでもできるようだが、カスタマイズが難度高すぎで諦めた。 結果としてPEGで書くのが楽だったという結論になる。 というわけでクローズ。
残り必要なテストケース
差分があるものを列挙している
ブートローダー
naskfunc.nas
21日目からはテストケースは不要で、とりあえず完全一致してればいいかな
実装必要な話
昔作成したテストはもう少し作り直すかも 5日目までできてしまえば、あとは昔のコードを削除してバージョンを2.0.0にしたい