以下字符串:
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,和之外的任何东西)时,我可以抛出一个异常而不是默默地忽略表达式的其余部分吗?
答案 0 :(得分:1)
最近发布了一个 JSqlParser(1.2-SNAPSHOT)补丁,以提供所需的行为:
CCJSqlParserUtil.parseExpression(String expression, boolean allowPartialParse)
和
CCJSqlParserUtil.parseCondExpression(String expression, boolean allowPartialParse)
将 allowPartialParse 设置为 false 会导致提及例外。
对于即时解释的内容,仍然需要已存在的行为,例如,从文本中提供表达式。 (语法着色,上下文帮助,......)