2017-07-26 93 views
1

以下字符串:jsqlparser來計算條件

x=92 and y=29 

產生一個有效的輸出:x=92 AND y=29和正常工作與CCJSqlParserUtil.parseCondExpression,但它不應該拋出異常以下?

x=92 lasd y=29 

但產量只是:x=92

而且它表達我應該用它來實現自己的訪客?即,

CCJSqlParser c= new CCJSqlParser(new StringReader(str)); 
Expression e = c.Expression(); // or SimpleExpression, etc.. 

所以,當「LASD」(不超過任何其他,或和)遇到我可以拋出一個異常,而不是靜靜地忽略了表達的休息嗎?

回答

1

最近JSqlParser(1.2-SNAPSHOT)的補丁發佈到提供所需的行爲:

CCJSqlParserUtil.parseExpression(String expression, boolean allowPartialParse) 

CCJSqlParserUtil.parseCondExpression(String expression, boolean allowPartialParse) 

設置allowPartialParse將導致提到的例外

對於即時解釋的東西,仍然需要已經存在的行爲,例如,從文本中提供表達。 (語法着色,上下文幫助,...)