/ /タイトルの書式設定のための簡単な言語の解析 - java

タイトルのフォーマット設定のための単純な言語の構文解析 - java

私はjavaを使ってオーディオプレーヤーを書いているので、foobar2000に似たタイトルフォーマッタが欲しいのです。

$if($strcmp(%album artist%,%artist%),%artist%,$if2(%album%,Unknown))

または

[%album%][ "("CD $ifgreater(%totaldiscs%,1,%discnumber%,)")"]

最初の例は文字列を返し、それがプレイリスト内の連続したトラックで同じである場合、それらはグループ化されます。全参照は ここに

すべてではなく、少なくともいくつかの機能が必要です。

そのような言語のパーサを書くのはどれほど難しいのでしょう。 Java用のコンパイラコンパイラはありますか?

Javaのjavascriptエンジンを使うほうが簡単でしょうか?どれくらい速いでしょうか(数千トラックを処理する)

回答:

回答№1は1

カスタム言語を解析するためのツールはいくつかあります。一般的なツールの1つはパーサジェネレータです Antlr.

あなたの質問に答えるために、それが難しいなら? はい、そうです。文を構文木に構文解析することは、ほんの最初のステップです。あなたはまだインタプリタを書く必要があります、そして、このfoobar2000タイトルジェネレータ構文はかなり複雑に見えます!


回答№2については2

次のようなテンプレートエンジンの使用を検討しましたか Freemarker または 速度?それらのマークアップ言語は「あなたが指定したものとは正確に一致しませんが、それらは非常に柔軟です」。エンドユーザー向けのものであれば、冗長すぎるかもしれません。