2017-07-26 58 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将导致提到的例外

对于即时解释的东西,仍然需要已经存在的行为,例如,从文本中提供表达。 (语法着色,上下文帮助,...)