私は現在、ここに示されている言語をJavaで実装することを検討しています。プレゼンテーションは少し長いですが、基本的には動的な音声を作成するためのDSLです。例:
rule ExampleRule
{
criteria Criterion1 Criterion2 Criterion3=value
response ExampleResponse
remember State:=1
trigger Object TriggerName
ApplyFacts "State1:1:0,State2:1:0"
}
response ExampleResponse
{
say "Text" then object ExampleRule
say "Text" then any ExampleRule
say "Text"
scene "Scenepath"
}
ANTLR、JavaCC、JFlexなどのさまざまなパーサージェネレーターを見てきましたが、趣味のプロジェクトのように、StringTokenizer/Scannerを使用して独自のパーサーをロールするかどうか疑問に思っています。
私は以前にANTLRを決定しましたが、生成されたソースコードでフルパス名を使用するANTLRでいくつかの問題が発生し、ランタイムライブラリは少し重いように見えました。3つのパーサーライブラリまたは組み込みのJavaの代替ライブラリを比較する多くの情報を見つけることができませんでした。
言語の性質を考えると、各パーサーの長所/短所は何ですか?