2011-02-18 73 views
4

我在我的工作中與POS(銷售點)終端打交道。他們基本上與用Java編寫的與後端系統通信的系統端點交談。關於在Java中創建解釋語法的建議

對於收據,我們將在端點中編寫代碼,以生成需要打印的數據。這些收據每行只能包含40個字符,所以我們基本上會硬編碼每個需要打印的收據類型。

我想要做的是基本上想出一種腳本語法,我可以用它來生成這些收據。

我的想法是有一個GUI程序,你可以設計收據等

Welcome To John Doe Services 
Your current balance is $(F4).Format(currency) 

或類似的東西。有了這個,我可以解釋語法$(F4).Format(貨幣)並實際拉動數據並正確格式化。

我想在一些建議,我應該開始尋找如何做到這一點。我想用Java寫這篇文章,但我不確定從哪裏開始。我寧願嘗試遠離一些子串魔法。

在此先感謝。

編輯:對不起,我應該提到的是,我們擴展了軟件寫在J ++,所以我不能使用Java 5或6,介紹最新的Java,我可以用的是1.4

+0

您可以查看[JSR 223](http://jcp.org/aboutJava/communityprocess/pr/jsr223/)以使用您最喜歡的腳本語言。 – justkt 2011-02-18 15:11:59

+0

正則表達式的允許? – Mauricio 2011-02-18 15:12:16

回答

5

Scripting for the Java Platform是要首先,Rhino JavaScript引擎已經嵌入Java 6運行時,因此您應該使用它來簡化配置。

如果你堅持一些Domain Specific Language最簡單的地方是ANTLR。作者Terrance Parr有一些關於ANTLR的書籍。

+1

ANTLR的+1儘管提到「最簡單」,ANTLR在同一句話中讓我大笑:-) – 2011-02-18 15:21:59

3

我看到兩種方法。一種是腳本語言,即域名專用語言,然後應用於收據。 JRuby是這個明顯的選擇。

如果你想更貼近Java,那麼另一種方法是使用像Velocity或FreeMarker這樣的模板引擎。