私は数日前からANTLRを学んでいます。それを学ぶ私の目標は、パーサーとレクサーを生成し、それらを Java から自分のターゲット言語 (C/C++/Java/C#/Python のいずれでもなく、それをサポートするツールはありません) に個人的に手で翻訳できるようにすることでした。私が ANTLR を選んだ理由は、その About ページから: ANTLR は、理解しやすく、強力で、柔軟性があり、人間が読める出力を生成するため、広く使用されています[...]
このツールを学習するにあたり、単純な文法の簡単な字句解析器である JSON から始めることにしました。しかし、ANTLR4 を使用してこのレクサー用の .java ファイルを生成すると、かなり油断していました。私は、人間が読めるからはほど遠いシリアライズされたコードの巨大な混乱を手に入れました。
public static final ATN _ATN =
ATNSimulator.deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
}
いくつかの Google 検索では、この動作を無効にする方法を提供できませんでした。
この動作を無効にして人間が読めるコードを生成する方法はありますか? それとも、このターゲット プログラミング言語用にレクサーとパーサーを手書きする必要がありますか?