()
| 4044 | } |
| 4045 | |
| 4046 | func (p *SqlBaseParser) JoinCriteria() (localctx IJoinCriteriaContext) { |
| 4047 | localctx = NewJoinCriteriaContext(p, p.GetParserRuleContext(), p.GetState()) |
| 4048 | p.EnterRule(localctx, 32, SqlBaseParserRULE_joinCriteria) |
| 4049 | var _la int |
| 4050 | |
| 4051 | defer func() { |
| 4052 | p.ExitRule() |
| 4053 | }() |
| 4054 | |
| 4055 | defer func() { |
| 4056 | if err := recover(); err != nil { |
| 4057 | if v, ok := err.(antlr.RecognitionException); ok { |
| 4058 | localctx.SetException(v) |
| 4059 | p.GetErrorHandler().ReportError(p, v) |
| 4060 | p.GetErrorHandler().Recover(p, v) |
| 4061 | } else { |
| 4062 | panic(err) |
| 4063 | } |
| 4064 | } |
| 4065 | }() |
| 4066 | |
| 4067 | p.SetState(316) |
| 4068 | p.GetErrorHandler().Sync(p) |
| 4069 | |
| 4070 | switch p.GetTokenStream().LA(1) { |
| 4071 | case SqlBaseParserON: |
| 4072 | p.EnterOuterAlt(localctx, 1) |
| 4073 | { |
| 4074 | p.SetState(302) |
| 4075 | p.Match(SqlBaseParserON) |
| 4076 | } |
| 4077 | { |
| 4078 | p.SetState(303) |
| 4079 | p.booleanExpression(0) |
| 4080 | } |
| 4081 | |
| 4082 | case SqlBaseParserUSING: |
| 4083 | p.EnterOuterAlt(localctx, 2) |
| 4084 | { |
| 4085 | p.SetState(304) |
| 4086 | p.Match(SqlBaseParserUSING) |
| 4087 | } |
| 4088 | { |
| 4089 | p.SetState(305) |
| 4090 | p.Match(SqlBaseParserT__1) |
| 4091 | } |
| 4092 | { |
| 4093 | p.SetState(306) |
| 4094 | p.Identifier() |
| 4095 | } |
| 4096 | p.SetState(311) |
| 4097 | p.GetErrorHandler().Sync(p) |
| 4098 | _la = p.GetTokenStream().LA(1) |
| 4099 | |
| 4100 | for _la == SqlBaseParserT__0 { |
| 4101 | { |
| 4102 | p.SetState(307) |
| 4103 | p.Match(SqlBaseParserT__0) |
no test coverage detected