2022/09/10

数日後にはテストがあるにもかかわらず、AWKのパーサをRustで書いてました。

AWKPOSIXで仕様が規定されているので、それに沿ってパーサを書いていくわけなのですが Rustを触るのは初めてなので、割と苦労してます。

現在は、数値リテラル・文字列リテラルBEGIN{};END{};{};{}みたいなプログラムまでをパースできています。

こんな感じ

ところで仕様書のyaccソースを見るとBEGIN{}END{}のようなitemの書き方は許可されず、BEGIN{};END{}みたいに書かないといけないはずなんですが手元のMacに入っているAWKではOKなのはなんでなんでしょう?