jsqlparser来评估一个条件

时间:2017-07-26 02:34:27

标签: java parsing visitor 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'(除了not,or,和之外的任何东西)时,我可以抛出一个异常而不是默默地忽略表达式的其余部分吗?

1 个答案:

答案 0 :(得分:1)

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

CCJSqlParserUtil.parseExpression(String expression, boolean allowPartialParse)

CCJSqlParserUtil.parseCondExpression(String expression, boolean allowPartialParse)

allowPartialParse 设置为 false 会导致提及例外

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