()
| 8503 | } |
| 8504 | |
| 8505 | func (p *SqlBaseParser) TimeZoneSpecifier() (localctx ITimeZoneSpecifierContext) { |
| 8506 | localctx = NewTimeZoneSpecifierContext(p, p.GetParserRuleContext(), p.GetState()) |
| 8507 | p.EnterRule(localctx, 58, SqlBaseParserRULE_timeZoneSpecifier) |
| 8508 | |
| 8509 | defer func() { |
| 8510 | p.ExitRule() |
| 8511 | }() |
| 8512 | |
| 8513 | defer func() { |
| 8514 | if err := recover(); err != nil { |
| 8515 | if v, ok := err.(antlr.RecognitionException); ok { |
| 8516 | localctx.SetException(v) |
| 8517 | p.GetErrorHandler().ReportError(p, v) |
| 8518 | p.GetErrorHandler().Recover(p, v) |
| 8519 | } else { |
| 8520 | panic(err) |
| 8521 | } |
| 8522 | } |
| 8523 | }() |
| 8524 | |
| 8525 | p.SetState(611) |
| 8526 | p.GetErrorHandler().Sync(p) |
| 8527 | switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 79, p.GetParserRuleContext()) { |
| 8528 | case 1: |
| 8529 | localctx = NewTimeZoneIntervalContext(p, localctx) |
| 8530 | p.EnterOuterAlt(localctx, 1) |
| 8531 | { |
| 8532 | p.SetState(605) |
| 8533 | p.Match(SqlBaseParserTIME) |
| 8534 | } |
| 8535 | { |
| 8536 | p.SetState(606) |
| 8537 | p.Match(SqlBaseParserZONE) |
| 8538 | } |
| 8539 | { |
| 8540 | p.SetState(607) |
| 8541 | p.Interval() |
| 8542 | } |
| 8543 | |
| 8544 | case 2: |
| 8545 | localctx = NewTimeZoneStringContext(p, localctx) |
| 8546 | p.EnterOuterAlt(localctx, 2) |
| 8547 | { |
| 8548 | p.SetState(608) |
| 8549 | p.Match(SqlBaseParserTIME) |
| 8550 | } |
| 8551 | { |
| 8552 | p.SetState(609) |
| 8553 | p.Match(SqlBaseParserZONE) |
| 8554 | } |
| 8555 | { |
| 8556 | p.SetState(610) |
| 8557 | p.Sql_string() |
| 8558 | } |
| 8559 | |
| 8560 | } |
| 8561 | |
| 8562 | return localctx |
no test coverage detected