@@ -530,6 +530,8 @@ SPECIAL_TOKEN:
530530
531531TOKEN:
532532{
533+ <S_PARAMETER: ["$"] (["0"-"9"])+ >
534+ |
533535<S_IDENTIFIER: <LETTER> (<PART_LETTER>)*>
534536| <#LETTER: <UnicodeIdentifierStart>
535537 | <Nd> | [ "$" , "#", "_" ] // Not SQL:2016 compliant!
@@ -3126,27 +3128,20 @@ OrderByElement OrderByElement():
31263128 }
31273129}
31283130
3129- JdbcParameter SimpleJdbcParameter() : {
3131+ JdbcParameter JdbcParameter() : {
3132+ Token tk;
31303133 JdbcParameter retval;
31313134}
31323135{
3133- "?" { retval = new JdbcParameter(++jdbcParameterIndex, false); }
3134- [ LOOKAHEAD(2) token = <S_LONG> { retval.setUseFixedIndex(true); retval.setIndex(Integer.valueOf(token.image)); } ]
3135- {
3136- return retval;
3137- }
3138- }
3136+ ( tk="?" | tk=<S_PARAMETER> )
3137+ { retval = new JdbcParameter(++jdbcParameterIndex, false, tk.image); }
31393138
3140- JdbcNamedParameter SimpleJdbcNamedParameter() : {
3141- String name;
3142- }
3143- {
3144- ":" name = RelObjectNameExt()
3145- {
3146- return new JdbcNamedParameter(token.image);
3147- }
3139+ [ LOOKAHEAD(2) token = <S_LONG> { retval.setUseFixedIndex(true); retval.setIndex(Integer.valueOf(token.image)); } ]
3140+
3141+ { return retval; }
31483142}
31493143
3144+
31503145Limit LimitWithOffset() #LimitWithOffset:
31513146{
31523147 Limit limit = new Limit();
@@ -3323,7 +3318,7 @@ Top Top():
33233318 (
33243319 token=<S_LONG> { top.setExpression(new LongValue(token.image)); }
33253320 |
3326- jdbc = SimpleJdbcParameter () { top.setExpression(jdbc); }
3321+ jdbc = JdbcParameter () { top.setExpression(jdbc); }
33273322 /*"?" { top.setExpression(new JdbcParameter(++jdbcParameterIndex, false)); } [ LOOKAHEAD(2) token = <S_LONG> { ((JdbcParameter)(top.getExpression())).setUseFixedIndex(true); ((JdbcParameter)(top.getExpression())).setIndex(Integer.valueOf(token.image)); } ]*/
33283323 |
33293324 ":" { top.setExpression(new JdbcNamedParameter()); } [ LOOKAHEAD(2) token = <S_IDENTIFIER> { ((JdbcNamedParameter)top.getExpression()).setName(token.image); } ]
@@ -3354,7 +3349,7 @@ Skip Skip():
33543349 (
33553350 token=<S_LONG> { skip.setRowCount(Long.parseLong(token.image)); }
33563351 | token=<S_IDENTIFIER> { skip.setVariable(token.image); }
3357- | jdbc = SimpleJdbcParameter () { skip.setJdbcParameter(jdbc); }
3352+ | jdbc = JdbcParameter () { skip.setJdbcParameter(jdbc); }
33583353 /* "?" { skip.setJdbcParameter(new JdbcParameter(++jdbcParameterIndex, false)); } [ LOOKAHEAD(2) token = <S_LONG> { skip.getJdbcParameter().setUseFixedIndex(true); skip.getJdbcParameter().setIndex(Integer.valueOf(token.image)); } ] */
33593354 )
33603355 {
@@ -3396,7 +3391,7 @@ First First():
33963391 |
33973392 token=<S_IDENTIFIER> { first.setVariable(token.image); }
33983393 |
3399- jdbc = SimpleJdbcParameter () { first.setJdbcParameter(jdbc); }
3394+ jdbc = JdbcParameter () { first.setJdbcParameter(jdbc); }
34003395 )
34013396 {
34023397 return first;
@@ -4235,9 +4230,9 @@ Expression PrimaryExpression() #PrimaryExpression:
42354230
42364231 | LOOKAHEAD(3, {!interrupted}) retval=CaseWhenExpression()
42374232
4238- | LOOKAHEAD(3) retval = SimpleJdbcParameter ()
4233+ | retval = JdbcParameter ()
42394234
4240- | LOOKAHEAD(2) retval=JdbcNamedParameter()
4235+ | LOOKAHEAD(2) retval =JdbcNamedParameter()
42414236
42424237 | LOOKAHEAD(3) retval=UserVariable()
42434238
@@ -4758,7 +4753,7 @@ IntervalExpression IntervalExpression() : {
47584753{
47594754
47604755{ interval = new IntervalExpression(); }
4761- <K_INTERVAL> ["-" {signed=true;}] (token=<S_LONG> | token=<S_DOUBLE> | token=<S_CHAR_LITERAL> | LOOKAHEAD(SimpleJdbcParameter ()) expr = SimpleJdbcParameter () | expr = JdbcNamedParameter() | LOOKAHEAD(Function()) expr = Function() | expr = Column())
4756+ <K_INTERVAL> ["-" {signed=true;}] (token=<S_LONG> | token=<S_DOUBLE> | token=<S_CHAR_LITERAL> | LOOKAHEAD(JdbcParameter ()) expr = JdbcParameter () | expr = JdbcNamedParameter() | LOOKAHEAD(Function()) expr = Function() | expr = Column())
47624757 {
47634758 if (expr != null) {
47644759 if (signed) expr = new SignedExpression('-', expr);
@@ -5099,9 +5094,9 @@ FullTextSearch FullTextSearch() : {
50995094 (
51005095 againstValue=<S_CHAR_LITERAL> { fs.setAgainstValue(new StringValue(againstValue.image)); }
51015096 |
5102- jdbcParameter=SimpleJdbcParameter () { fs.setAgainstValue( jdbcParameter ); }
5097+ jdbcParameter=JdbcParameter () { fs.setAgainstValue( jdbcParameter ); }
51035098 |
5104- jdbcNamedParameter=SimpleJdbcNamedParameter () { fs.setAgainstValue( jdbcNamedParameter ); }
5099+ jdbcNamedParameter=JdbcNamedParameter () { fs.setAgainstValue( jdbcNamedParameter ); }
51055100 )
51065101 [
51075102 (
0 commit comments