2009-07-27 68 views
1

我正在使用java編寫一個音頻播放器,並且我想要一個類似於foobar2000的標題格式化程序。實例是:解析標題格式化的簡單語言

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

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

第一示例返回字符串,並且如果它是同一個用於在播放列表中相繼軌道,它們被分組,第二示例格式專輯名稱,並增加了一個CD數如果存在。全部參考是here

我不需要一切,但至少有一些功能。

編寫這種語言的解析器有多困難。有沒有java的編譯器編譯器?

使用java的javascript引擎會更容易嗎?它會多快(處理數千條曲目)?

回答

1

有一些解析自定義語言的工具。其中一個常用工具是解析器生成器antlr

要回答你的問題,如果很難?是的。將語句解析爲語法樹只是第一步。你仍然需要編寫解釋器,這個foobar2000標題生成器的語法看起來相當複雜!

2

你有沒有考慮過使用模板引擎,如FreemarkerVelocity?他們的標記語言並不完全符合您的要求,但他們非常靈活。但是,如果是最終用戶,可能會過於冗長。

+0

謝謝,但我想JavaScript會少冗長。 – 2009-07-27 16:21:33

+0

很可能,是的 – skaffman 2009-07-27 16:37:23