2012-01-21 62 views
1

說我有類似下面我們如何解釋使用Java的一般規則?

if a<b 
    then set a=25 
else set a=-25 

一個我需要用我的Java來評價這是一個非常基本的規則。做這些解析的最好方法是什麼?使用正則表達式可能會非常困難,並且很難保持正確的表達方式?

有人可以提出一種方法嗎?如果您需要更多信息,請告訴我。

+0

你想爲你的語言創建一個語法檢查器,或者你想完成什麼? – kba

+0

我看到了Lexical Parser - JavaCC的Java實現。它是否將規則編譯爲Java表示形式? – Apps

回答

1

如果您的語法是規則的,則可以使用正則表達式。如果不是,則需要使用更復雜的工具,例如Lexers和Parsers:即AntlrYacc/Lex/Bison

如果你不知道很多關於語言的設計,我建議你關於這個主題閱讀book你在潛水前。

+0

感謝您的回覆David.I不會那麼複雜。那麼正則表達式是做這件事的最好方法嗎? – Apps

+0

@Apps,正則表達式用於匹配給定預定義模式的某些文本。如果你想解釋語言(評估它),那麼正則表達式不是要走的路,無論目標語言是否規則。 –

1

取決於如何/多少,你可以調整你的規則語法,你可能能夠使用Groovy或JRuby;他們都非常擅長實現緊密集成的DSL。在實現外部DSL之前,我會認真考慮這個方法,儘管Antlr使它非常容易。