1

以下字符串:

x=92 and y=29

产生一个有效的输出:x=92 AND y=29它可以正常工作,CCJSqlParserUtil.parseCondExpression但它不应该抛出以下异常吗?

x=92 lasd y=29

但输出只是:x=92

此外,我应该使用哪个表达式来实现我自己的访问者?IE,

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

这样当遇到“lasd”(不是,或,和以外的任何东西)时,我可以抛出异常而不是默默地忽略表达式的其余部分?

4

1 回答 1

1

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

CCJSqlParserUtil.parseExpression(String expression, boolean allowPartialParse)

CCJSqlParserUtil.parseCondExpression(String expression, boolean allowPartialParse)

allowPartialParse设置为false将导致提到的Exception

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

于 2017-07-27T13:40:14.153 回答