說我有類似下面我們如何解釋使用Java的一般規則?
if a<b
then set a=25
else set a=-25
一個我需要用我的Java來評價這是一個非常基本的規則。做這些解析的最好方法是什麼?使用正則表達式可能會非常困難,並且很難保持正確的表達方式?
有人可以提出一種方法嗎?如果您需要更多信息,請告訴我。
說我有類似下面我們如何解釋使用Java的一般規則?
if a<b
then set a=25
else set a=-25
一個我需要用我的Java來評價這是一個非常基本的規則。做這些解析的最好方法是什麼?使用正則表達式可能會非常困難,並且很難保持正確的表達方式?
有人可以提出一種方法嗎?如果您需要更多信息,請告訴我。
如果您的語法是規則的,則可以使用正則表達式。如果不是,則需要使用更復雜的工具,例如Lexers和Parsers:即Antlr或Yacc/Lex/Bison。
如果你不知道很多關於語言的設計,我建議你關於這個主題閱讀book你在潛水前。
感謝您的回覆David.I不會那麼複雜。那麼正則表達式是做這件事的最好方法嗎? – Apps
@Apps,正則表達式用於匹配給定預定義模式的某些文本。如果你想解釋語言(評估它),那麼正則表達式不是要走的路,無論目標語言是否規則。 –
取決於如何/多少,你可以調整你的規則語法,你可能能夠使用Groovy或JRuby;他們都非常擅長實現緊密集成的DSL。在實現外部DSL之前,我會認真考慮這個方法,儘管Antlr使它非常容易。
你想爲你的語言創建一個語法檢查器,或者你想完成什麼? – kba
我看到了Lexical Parser - JavaCC的Java實現。它是否將規則編譯爲Java表示形式? – Apps