@@ -6559,9 +6559,11 @@ Expression PrimaryExpression() #PrimaryExpression:
65596559
65606560 | LOOKAHEAD(3, { !interrupted}) retval = FullTextSearch()
65616561
6562- | LOOKAHEAD(2, {!interrupted}) retval=CastExpression()
6562+ | LOOKAHEAD(2, {!interrupted}) retval= CastExpression()
65636563
6564- | LOOKAHEAD(16) retval=Function() [ LOOKAHEAD(2) retval = AnalyticExpression( (Function) retval ) ]
6564+ | LOOKAHEAD(16) retval = Function() [ LOOKAHEAD(2) retval = AnalyticExpression( (Function) retval ) ]
6565+
6566+ | LOOKAHEAD(2) retval = DateUnitExpression()
65656567
65666568 | LOOKAHEAD(2, {!interrupted}) retval = IntervalExpression() { dateExpressionAllowed = false; }
65676569
@@ -6804,10 +6806,25 @@ NumericBind NumericBind() : {
68046806DateTimeLiteralExpression DateTimeLiteralExpression() : {
68056807 DateTimeLiteralExpression expr = new DateTimeLiteralExpression();
68066808 Token t;
6807- } {
6808- t=<K_DATETIMELITERAL> { expr.setType(DateTimeLiteralExpression.DateTime.from(t.image)); }
6809+ }
6810+ {
6811+ t=<K_DATETIMELITERAL>
6812+ {
6813+ expr.setType(DateTimeLiteralExpression.DateTime.from(t.image));
6814+ }
68096815
6810- ( t=<S_CHAR_LITERAL> | t=<S_QUOTED_IDENTIFIER> ) { expr.setValue(t.image); return expr; }
6816+ ( t=<S_CHAR_LITERAL> | t=<S_QUOTED_IDENTIFIER> )
6817+ {
6818+ expr.setValue(t.image);
6819+ return expr;
6820+ }
6821+ }
6822+
6823+ DateUnitExpression DateUnitExpression() : {
6824+ Token t;
6825+ }
6826+ {
6827+ t=<K_DATE_LITERAL> { return new DateUnitExpression( t.image ); }
68116828}
68126829
68136830RangeExpression RangeExpression(Expression startExpression):
@@ -6892,7 +6909,7 @@ StructType StructType() #StruckType:
68926909 LOOKAHEAD(4) (
68936910 tk1=<K_STRUCT> { keyword = tk1.image; }
68946911 "<" parameters = StructParameters() ">"
6895- "(" { System.out.println("found arguments!"); } arguments = SelectItemsList() ")"
6912+ "(" arguments = SelectItemsList() ")"
68966913 )
68976914 |
68986915 (
@@ -6916,10 +6933,6 @@ StructType StructType() #StruckType:
69166933 LOOKAHEAD(2) "::" <K_STRUCT> "(" parameters = StructParameters() ")"
69176934 )*
69186935 )
6919-
6920- // don't parse this as an Struct, but rather use an Expressionlist
6921- // |
6922- // arguments = StructArguments()
69236936 )
69246937 {
69256938 type = new StructType(dialect, keyword, parameters, arguments);
@@ -7703,7 +7716,7 @@ Function SpecialStringFunctionWithNamedParameters() :
77037716
77047717 "("
77057718 (
7706- LOOKAHEAD(6 , { getAsBoolean(Feature.allowComplexParsing) }) namedExpressionList = NamedExpressionListExprFirst()
7719+ LOOKAHEAD( NamedExpressionListExprFirst() , { getAsBoolean(Feature.allowComplexParsing) }) namedExpressionList = NamedExpressionListExprFirst()
77077720 |
77087721 expressionList=ExpressionList()
77097722 )
0 commit comments