読者です 読者をやめる 読者になる 読者になる

nFact

n!

KaraffeのパーサージェネレーターをCUPからANTLRv4に置き換えたい

現状 KaraffeのパーサージェネレーターはCUPを使用している

CUPの良い所 JavaCCの時に問題になっていた左再帰の問題が解決した(そもそもLLとLALRなので) terminalとnon terminalの記述がめんどいけど書きやすい(JavaCC比)

CUPの良くない所 CUP側のコードで、それもなんともない所でError系クラスをthrowするところ CUP側のコードで、System.outやSystem.errが使われて勝手にいろいろ出力されるところ エラーハンドリングは全ての箇所に入れないとどこでエラーが発生したかとかが拾えないっぽい

とりあえず、定義していない文法を読ませたとき、勝手に英語のエラーメッセージを出して勝手にthrowすることが嫌すぎた。

ANTLRが使いやすそうで、LLだけどv4から左再帰対応してたっぽいのでそちらに移行をしてみたい感じ。

株式会社はてなに入社しました

株式会社はてなに入社しました

株式会社はてなに入社しました - hitode909の日記