2014-06-17 54 views
0

如何將自然語言邏輯條件轉換爲其Java代碼對象?將自然語言邏輯條件轉換爲Java代碼

說我有這個條件

(Color Equals Blue) AND (Name Contains Smith) 

什麼可以做這個翻譯爲Java級別的代碼,它可能看起來像

(Color.equals("Blue") && (Name.contains("Smith"))) 

我不能拿出任何明確的方法達到預期的結果,所以我在這裏問這個問題。 另外,請讓我知道投票前的理由。

+2

嘗試[antlr](http://www.antlr.org/) – wmorrison365

+1

如果您選擇與java不同的語言,對您而言可能更容易。在lisp系列的語言中(類似的東西可以在python等中完成),例如clojure,你可以做(​​load-string「(+ 1 1)」)來評估字符串,並且你將有宏來轉換輸入。 (Clojure提供了從Java到Java的簡單訪問)看看http://clojure.org/ – boucekv

+2

也是這個http://stackoverflow.com/questions/3422673/evaluating-a-math-expression-given-in-string-form可以幫助你。 – boucekv

回答

3

我會嘗試一個dsl來解析您指定(Color Equals Blue) AND (Name Contains Smith)到java代碼中的語法。儘管在開始將其轉換爲解析器語法之前,請確保您已經很好地理解了此語法的語法。語言規範鏈接會有很大幫助。在過去,我使用ANTLR,一旦我從輸出字符串獲得語法樹,就很容易生成JAVA代碼。