私は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 または 速度?それらのマークアップ言語は「あなたが指定したものとは正確に一致しませんが、それらは非常に柔軟です」。エンドユーザー向けのものであれば、冗長すぎるかもしれません。