jsqlparser 评估条件

jsqlparser to evaluate a condition

以下字符串:

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'(除 not、or、and 之外的任何值)时,我可以抛出异常而不是默默地忽略表达式的其余部分?

最近发布了 JSqlParser (1.2-SNAPSHOT) 补丁以提供所需的行为:

CCJSqlParserUtil.parseExpression(String expression, boolean allowPartialParse)

CCJSqlParserUtil.parseCondExpression(String expression, boolean allowPartialParse)

allowPartialParse 设置为 false 将导致上述 Exception.

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