From 7a50b960e974183061a46a18bae0b44b6b8955f9 Mon Sep 17 00:00:00 2001 From: wumpz Date: Sat, 15 Sep 2012 23:26:39 +0200 Subject: [PATCH] - extract syntax integrated into jj file --- .../net/sf/jsqlparser/parser/JSqlParserCC.jj | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/javacc/net/sf/jsqlparser/parser/JSqlParserCC.jj b/src/main/javacc/net/sf/jsqlparser/parser/JSqlParserCC.jj index ec9786ed8..9211fbb7f 100644 --- a/src/main/javacc/net/sf/jsqlparser/parser/JSqlParserCC.jj +++ b/src/main/javacc/net/sf/jsqlparser/parser/JSqlParserCC.jj @@ -225,6 +225,7 @@ TOKEN: /* SQL Keywords. prefixed with K_ to avoid name clashes */ | | | +| } @@ -1426,6 +1427,8 @@ Expression PrimaryExpression(): | "?" { retval = new JdbcParameter(); } | LOOKAHEAD(AnalyticExpression()) retval=AnalyticExpression() + + | LOOKAHEAD(ExtractExpression()) retval=ExtractExpression() | LOOKAHEAD([ "+" | "-"] Function()) [ "+" | "-" { isInverse = true; }] retval=Function() @@ -1480,6 +1483,19 @@ AnalyticExpression AnalyticExpression() : } } +ExtractExpression ExtractExpression() : +{ + ExtractExpression retval = new ExtractExpression(); + Token token = null; + Expression expr = null; +} +{ + "(" token= { retval.setName(token.image); } expr=PrimaryExpression() ")" + { + return retval; + } +} + CastExpression CastExpression(): { CastExpression retval = new CastExpression();