git.frostfs.info/TrueCloudLab/frostfs-sdk-go@v0.0.0-20241022124111-5361f0ecebd3/netmap/parser/query_parser.go (about) 1 // Code generated from netmap/parser/Query.g4 by ANTLR 4.13.1. DO NOT EDIT. 2 3 package parser // Query 4 5 import ( 6 "fmt" 7 "strconv" 8 "sync" 9 10 "github.com/antlr4-go/antlr/v4" 11 ) 12 13 // Suppress unused import errors 14 var _ = fmt.Printf 15 var _ = strconv.Itoa 16 var _ = sync.Once{} 17 18 type Query struct { 19 *antlr.BaseParser 20 } 21 22 var QueryParserStaticData struct { 23 once sync.Once 24 serializedATN []int32 25 LiteralNames []string 26 SymbolicNames []string 27 RuleNames []string 28 PredictionContextCache *antlr.PredictionContextCache 29 atn *antlr.ATN 30 decisionToDFA []*antlr.DFA 31 } 32 33 func queryParserInit() { 34 staticData := &QueryParserStaticData 35 staticData.LiteralNames = []string{ 36 "", "'NOT'", "'AND'", "'OR'", "", "'UNIQUE'", "'REP'", "'EC'", "'IN'", 37 "'AS'", "'CBF'", "'SELECT'", "'FROM'", "'FILTER'", "'*'", "'.'", "'SAME'", 38 "'DISTINCT'", "'('", "')'", "'@'", "", "", "'0'", 39 } 40 staticData.SymbolicNames = []string{ 41 "", "NOT_OP", "AND_OP", "OR_OP", "SIMPLE_OP", "UNIQUE", "REP", "EC", 42 "IN", "AS", "CBF", "SELECT", "FROM", "FILTER", "WILDCARD", "DOT", "CLAUSE_SAME", 43 "CLAUSE_DISTINCT", "L_PAREN", "R_PAREN", "AT", "IDENT", "NUMBER1", "ZERO", 44 "STRING", "WS", 45 } 46 staticData.RuleNames = []string{ 47 "policy", "selectFilterExpr", "ecStmt", "repStmt", "cbfStmt", "selectStmt", 48 "clause", "filterExpr", "filterStmt", "expr", "filterKey", "filterValue", 49 "number", "keyword", "ident", "identWC", 50 } 51 staticData.PredictionContextCache = antlr.NewPredictionContextCache() 52 staticData.serializedATN = []int32{ 53 4, 1, 25, 165, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 54 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 55 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 56 1, 0, 3, 0, 34, 8, 0, 1, 0, 1, 0, 4, 0, 38, 8, 0, 11, 0, 12, 0, 39, 1, 57 0, 3, 0, 43, 8, 0, 1, 0, 5, 0, 46, 8, 0, 10, 0, 12, 0, 49, 9, 0, 1, 0, 58 5, 0, 52, 8, 0, 10, 0, 12, 0, 55, 9, 0, 1, 0, 1, 0, 1, 1, 3, 1, 60, 8, 59 1, 1, 1, 3, 1, 63, 8, 1, 1, 1, 5, 1, 66, 8, 1, 10, 1, 12, 1, 69, 9, 1, 60 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 79, 8, 2, 1, 3, 1, 61 3, 1, 3, 1, 3, 3, 3, 85, 8, 3, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 62 3, 5, 94, 8, 5, 1, 5, 3, 5, 97, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 103, 63 8, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 64 1, 7, 1, 7, 3, 7, 118, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 65 126, 8, 7, 10, 7, 12, 7, 129, 9, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 66 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 142, 8, 9, 1, 10, 1, 10, 3, 10, 146, 67 8, 10, 1, 11, 1, 11, 1, 11, 3, 11, 151, 8, 11, 1, 12, 1, 12, 1, 13, 1, 68 13, 1, 14, 1, 14, 3, 14, 159, 8, 14, 1, 15, 1, 15, 3, 15, 163, 8, 15, 1, 69 15, 0, 1, 14, 16, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 70 30, 0, 3, 1, 0, 16, 17, 1, 0, 22, 23, 3, 0, 6, 6, 8, 9, 11, 13, 172, 0, 71 33, 1, 0, 0, 0, 2, 59, 1, 0, 0, 0, 4, 72, 1, 0, 0, 0, 6, 80, 1, 0, 0, 0, 72 8, 86, 1, 0, 0, 0, 10, 89, 1, 0, 0, 0, 12, 104, 1, 0, 0, 0, 14, 117, 1, 73 0, 0, 0, 16, 130, 1, 0, 0, 0, 18, 141, 1, 0, 0, 0, 20, 145, 1, 0, 0, 0, 74 22, 150, 1, 0, 0, 0, 24, 152, 1, 0, 0, 0, 26, 154, 1, 0, 0, 0, 28, 158, 75 1, 0, 0, 0, 30, 162, 1, 0, 0, 0, 32, 34, 5, 5, 0, 0, 33, 32, 1, 0, 0, 0, 76 33, 34, 1, 0, 0, 0, 34, 37, 1, 0, 0, 0, 35, 38, 3, 6, 3, 0, 36, 38, 3, 77 4, 2, 0, 37, 35, 1, 0, 0, 0, 37, 36, 1, 0, 0, 0, 38, 39, 1, 0, 0, 0, 39, 78 37, 1, 0, 0, 0, 39, 40, 1, 0, 0, 0, 40, 42, 1, 0, 0, 0, 41, 43, 3, 8, 4, 79 0, 42, 41, 1, 0, 0, 0, 42, 43, 1, 0, 0, 0, 43, 47, 1, 0, 0, 0, 44, 46, 80 3, 10, 5, 0, 45, 44, 1, 0, 0, 0, 46, 49, 1, 0, 0, 0, 47, 45, 1, 0, 0, 0, 81 47, 48, 1, 0, 0, 0, 48, 53, 1, 0, 0, 0, 49, 47, 1, 0, 0, 0, 50, 52, 3, 82 16, 8, 0, 51, 50, 1, 0, 0, 0, 52, 55, 1, 0, 0, 0, 53, 51, 1, 0, 0, 0, 53, 83 54, 1, 0, 0, 0, 54, 56, 1, 0, 0, 0, 55, 53, 1, 0, 0, 0, 56, 57, 5, 0, 0, 84 1, 57, 1, 1, 0, 0, 0, 58, 60, 3, 8, 4, 0, 59, 58, 1, 0, 0, 0, 59, 60, 1, 85 0, 0, 0, 60, 62, 1, 0, 0, 0, 61, 63, 3, 10, 5, 0, 62, 61, 1, 0, 0, 0, 62, 86 63, 1, 0, 0, 0, 63, 67, 1, 0, 0, 0, 64, 66, 3, 16, 8, 0, 65, 64, 1, 0, 87 0, 0, 66, 69, 1, 0, 0, 0, 67, 65, 1, 0, 0, 0, 67, 68, 1, 0, 0, 0, 68, 70, 88 1, 0, 0, 0, 69, 67, 1, 0, 0, 0, 70, 71, 5, 0, 0, 1, 71, 3, 1, 0, 0, 0, 89 72, 73, 5, 7, 0, 0, 73, 74, 5, 22, 0, 0, 74, 75, 5, 15, 0, 0, 75, 78, 5, 90 22, 0, 0, 76, 77, 5, 8, 0, 0, 77, 79, 3, 28, 14, 0, 78, 76, 1, 0, 0, 0, 91 78, 79, 1, 0, 0, 0, 79, 5, 1, 0, 0, 0, 80, 81, 5, 6, 0, 0, 81, 84, 5, 22, 92 0, 0, 82, 83, 5, 8, 0, 0, 83, 85, 3, 28, 14, 0, 84, 82, 1, 0, 0, 0, 84, 93 85, 1, 0, 0, 0, 85, 7, 1, 0, 0, 0, 86, 87, 5, 10, 0, 0, 87, 88, 5, 22, 94 0, 0, 88, 9, 1, 0, 0, 0, 89, 90, 5, 11, 0, 0, 90, 96, 5, 22, 0, 0, 91, 95 93, 5, 8, 0, 0, 92, 94, 3, 12, 6, 0, 93, 92, 1, 0, 0, 0, 93, 94, 1, 0, 96 0, 0, 94, 95, 1, 0, 0, 0, 95, 97, 3, 20, 10, 0, 96, 91, 1, 0, 0, 0, 96, 97 97, 1, 0, 0, 0, 97, 98, 1, 0, 0, 0, 98, 99, 5, 12, 0, 0, 99, 102, 3, 30, 98 15, 0, 100, 101, 5, 9, 0, 0, 101, 103, 3, 28, 14, 0, 102, 100, 1, 0, 0, 99 0, 102, 103, 1, 0, 0, 0, 103, 11, 1, 0, 0, 0, 104, 105, 7, 0, 0, 0, 105, 100 13, 1, 0, 0, 0, 106, 107, 6, 7, -1, 0, 107, 108, 5, 1, 0, 0, 108, 109, 101 5, 18, 0, 0, 109, 110, 3, 14, 7, 0, 110, 111, 5, 19, 0, 0, 111, 118, 1, 102 0, 0, 0, 112, 113, 5, 18, 0, 0, 113, 114, 3, 14, 7, 0, 114, 115, 5, 19, 103 0, 0, 115, 118, 1, 0, 0, 0, 116, 118, 3, 18, 9, 0, 117, 106, 1, 0, 0, 0, 104 117, 112, 1, 0, 0, 0, 117, 116, 1, 0, 0, 0, 118, 127, 1, 0, 0, 0, 119, 105 120, 10, 4, 0, 0, 120, 121, 5, 2, 0, 0, 121, 126, 3, 14, 7, 5, 122, 123, 106 10, 3, 0, 0, 123, 124, 5, 3, 0, 0, 124, 126, 3, 14, 7, 4, 125, 119, 1, 107 0, 0, 0, 125, 122, 1, 0, 0, 0, 126, 129, 1, 0, 0, 0, 127, 125, 1, 0, 0, 108 0, 127, 128, 1, 0, 0, 0, 128, 15, 1, 0, 0, 0, 129, 127, 1, 0, 0, 0, 130, 109 131, 5, 13, 0, 0, 131, 132, 3, 14, 7, 0, 132, 133, 5, 9, 0, 0, 133, 134, 110 3, 28, 14, 0, 134, 17, 1, 0, 0, 0, 135, 136, 5, 20, 0, 0, 136, 142, 3, 111 28, 14, 0, 137, 138, 3, 20, 10, 0, 138, 139, 5, 4, 0, 0, 139, 140, 3, 22, 112 11, 0, 140, 142, 1, 0, 0, 0, 141, 135, 1, 0, 0, 0, 141, 137, 1, 0, 0, 0, 113 142, 19, 1, 0, 0, 0, 143, 146, 3, 28, 14, 0, 144, 146, 5, 24, 0, 0, 145, 114 143, 1, 0, 0, 0, 145, 144, 1, 0, 0, 0, 146, 21, 1, 0, 0, 0, 147, 151, 3, 115 28, 14, 0, 148, 151, 3, 24, 12, 0, 149, 151, 5, 24, 0, 0, 150, 147, 1, 116 0, 0, 0, 150, 148, 1, 0, 0, 0, 150, 149, 1, 0, 0, 0, 151, 23, 1, 0, 0, 117 0, 152, 153, 7, 1, 0, 0, 153, 25, 1, 0, 0, 0, 154, 155, 7, 2, 0, 0, 155, 118 27, 1, 0, 0, 0, 156, 159, 3, 26, 13, 0, 157, 159, 5, 21, 0, 0, 158, 156, 119 1, 0, 0, 0, 158, 157, 1, 0, 0, 0, 159, 29, 1, 0, 0, 0, 160, 163, 3, 28, 120 14, 0, 161, 163, 5, 14, 0, 0, 162, 160, 1, 0, 0, 0, 162, 161, 1, 0, 0, 121 0, 163, 31, 1, 0, 0, 0, 22, 33, 37, 39, 42, 47, 53, 59, 62, 67, 78, 84, 122 93, 96, 102, 117, 125, 127, 141, 145, 150, 158, 162, 123 } 124 deserializer := antlr.NewATNDeserializer(nil) 125 staticData.atn = deserializer.Deserialize(staticData.serializedATN) 126 atn := staticData.atn 127 staticData.decisionToDFA = make([]*antlr.DFA, len(atn.DecisionToState)) 128 decisionToDFA := staticData.decisionToDFA 129 for index, state := range atn.DecisionToState { 130 decisionToDFA[index] = antlr.NewDFA(state, index) 131 } 132 } 133 134 // QueryInit initializes any static state used to implement Query. By default the 135 // static state used to implement the parser is lazily initialized during the first call to 136 // NewQuery(). You can call this function if you wish to initialize the static state ahead 137 // of time. 138 func QueryInit() { 139 staticData := &QueryParserStaticData 140 staticData.once.Do(queryParserInit) 141 } 142 143 // NewQuery produces a new parser instance for the optional input antlr.TokenStream. 144 func NewQuery(input antlr.TokenStream) *Query { 145 QueryInit() 146 this := new(Query) 147 this.BaseParser = antlr.NewBaseParser(input) 148 staticData := &QueryParserStaticData 149 this.Interpreter = antlr.NewParserATNSimulator(this, staticData.atn, staticData.decisionToDFA, staticData.PredictionContextCache) 150 this.RuleNames = staticData.RuleNames 151 this.LiteralNames = staticData.LiteralNames 152 this.SymbolicNames = staticData.SymbolicNames 153 this.GrammarFileName = "Query.g4" 154 155 return this 156 } 157 158 // Query tokens. 159 const ( 160 QueryEOF = antlr.TokenEOF 161 QueryNOT_OP = 1 162 QueryAND_OP = 2 163 QueryOR_OP = 3 164 QuerySIMPLE_OP = 4 165 QueryUNIQUE = 5 166 QueryREP = 6 167 QueryEC = 7 168 QueryIN = 8 169 QueryAS = 9 170 QueryCBF = 10 171 QuerySELECT = 11 172 QueryFROM = 12 173 QueryFILTER = 13 174 QueryWILDCARD = 14 175 QueryDOT = 15 176 QueryCLAUSE_SAME = 16 177 QueryCLAUSE_DISTINCT = 17 178 QueryL_PAREN = 18 179 QueryR_PAREN = 19 180 QueryAT = 20 181 QueryIDENT = 21 182 QueryNUMBER1 = 22 183 QueryZERO = 23 184 QuerySTRING = 24 185 QueryWS = 25 186 ) 187 188 // Query rules. 189 const ( 190 QueryRULE_policy = 0 191 QueryRULE_selectFilterExpr = 1 192 QueryRULE_ecStmt = 2 193 QueryRULE_repStmt = 3 194 QueryRULE_cbfStmt = 4 195 QueryRULE_selectStmt = 5 196 QueryRULE_clause = 6 197 QueryRULE_filterExpr = 7 198 QueryRULE_filterStmt = 8 199 QueryRULE_expr = 9 200 QueryRULE_filterKey = 10 201 QueryRULE_filterValue = 11 202 QueryRULE_number = 12 203 QueryRULE_keyword = 13 204 QueryRULE_ident = 14 205 QueryRULE_identWC = 15 206 ) 207 208 // IPolicyContext is an interface to support dynamic dispatch. 209 type IPolicyContext interface { 210 antlr.ParserRuleContext 211 212 // GetParser returns the parser. 213 GetParser() antlr.Parser 214 215 // Getter signatures 216 EOF() antlr.TerminalNode 217 UNIQUE() antlr.TerminalNode 218 AllRepStmt() []IRepStmtContext 219 RepStmt(i int) IRepStmtContext 220 AllEcStmt() []IEcStmtContext 221 EcStmt(i int) IEcStmtContext 222 CbfStmt() ICbfStmtContext 223 AllSelectStmt() []ISelectStmtContext 224 SelectStmt(i int) ISelectStmtContext 225 AllFilterStmt() []IFilterStmtContext 226 FilterStmt(i int) IFilterStmtContext 227 228 // IsPolicyContext differentiates from other interfaces. 229 IsPolicyContext() 230 } 231 232 type PolicyContext struct { 233 antlr.BaseParserRuleContext 234 parser antlr.Parser 235 } 236 237 func NewEmptyPolicyContext() *PolicyContext { 238 var p = new(PolicyContext) 239 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 240 p.RuleIndex = QueryRULE_policy 241 return p 242 } 243 244 func InitEmptyPolicyContext(p *PolicyContext) { 245 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 246 p.RuleIndex = QueryRULE_policy 247 } 248 249 func (*PolicyContext) IsPolicyContext() {} 250 251 func NewPolicyContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *PolicyContext { 252 var p = new(PolicyContext) 253 254 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 255 256 p.parser = parser 257 p.RuleIndex = QueryRULE_policy 258 259 return p 260 } 261 262 func (s *PolicyContext) GetParser() antlr.Parser { return s.parser } 263 264 func (s *PolicyContext) EOF() antlr.TerminalNode { 265 return s.GetToken(QueryEOF, 0) 266 } 267 268 func (s *PolicyContext) UNIQUE() antlr.TerminalNode { 269 return s.GetToken(QueryUNIQUE, 0) 270 } 271 272 func (s *PolicyContext) AllRepStmt() []IRepStmtContext { 273 children := s.GetChildren() 274 len := 0 275 for _, ctx := range children { 276 if _, ok := ctx.(IRepStmtContext); ok { 277 len++ 278 } 279 } 280 281 tst := make([]IRepStmtContext, len) 282 i := 0 283 for _, ctx := range children { 284 if t, ok := ctx.(IRepStmtContext); ok { 285 tst[i] = t.(IRepStmtContext) 286 i++ 287 } 288 } 289 290 return tst 291 } 292 293 func (s *PolicyContext) RepStmt(i int) IRepStmtContext { 294 var t antlr.RuleContext 295 j := 0 296 for _, ctx := range s.GetChildren() { 297 if _, ok := ctx.(IRepStmtContext); ok { 298 if j == i { 299 t = ctx.(antlr.RuleContext) 300 break 301 } 302 j++ 303 } 304 } 305 306 if t == nil { 307 return nil 308 } 309 310 return t.(IRepStmtContext) 311 } 312 313 func (s *PolicyContext) AllEcStmt() []IEcStmtContext { 314 children := s.GetChildren() 315 len := 0 316 for _, ctx := range children { 317 if _, ok := ctx.(IEcStmtContext); ok { 318 len++ 319 } 320 } 321 322 tst := make([]IEcStmtContext, len) 323 i := 0 324 for _, ctx := range children { 325 if t, ok := ctx.(IEcStmtContext); ok { 326 tst[i] = t.(IEcStmtContext) 327 i++ 328 } 329 } 330 331 return tst 332 } 333 334 func (s *PolicyContext) EcStmt(i int) IEcStmtContext { 335 var t antlr.RuleContext 336 j := 0 337 for _, ctx := range s.GetChildren() { 338 if _, ok := ctx.(IEcStmtContext); ok { 339 if j == i { 340 t = ctx.(antlr.RuleContext) 341 break 342 } 343 j++ 344 } 345 } 346 347 if t == nil { 348 return nil 349 } 350 351 return t.(IEcStmtContext) 352 } 353 354 func (s *PolicyContext) CbfStmt() ICbfStmtContext { 355 var t antlr.RuleContext 356 for _, ctx := range s.GetChildren() { 357 if _, ok := ctx.(ICbfStmtContext); ok { 358 t = ctx.(antlr.RuleContext) 359 break 360 } 361 } 362 363 if t == nil { 364 return nil 365 } 366 367 return t.(ICbfStmtContext) 368 } 369 370 func (s *PolicyContext) AllSelectStmt() []ISelectStmtContext { 371 children := s.GetChildren() 372 len := 0 373 for _, ctx := range children { 374 if _, ok := ctx.(ISelectStmtContext); ok { 375 len++ 376 } 377 } 378 379 tst := make([]ISelectStmtContext, len) 380 i := 0 381 for _, ctx := range children { 382 if t, ok := ctx.(ISelectStmtContext); ok { 383 tst[i] = t.(ISelectStmtContext) 384 i++ 385 } 386 } 387 388 return tst 389 } 390 391 func (s *PolicyContext) SelectStmt(i int) ISelectStmtContext { 392 var t antlr.RuleContext 393 j := 0 394 for _, ctx := range s.GetChildren() { 395 if _, ok := ctx.(ISelectStmtContext); ok { 396 if j == i { 397 t = ctx.(antlr.RuleContext) 398 break 399 } 400 j++ 401 } 402 } 403 404 if t == nil { 405 return nil 406 } 407 408 return t.(ISelectStmtContext) 409 } 410 411 func (s *PolicyContext) AllFilterStmt() []IFilterStmtContext { 412 children := s.GetChildren() 413 len := 0 414 for _, ctx := range children { 415 if _, ok := ctx.(IFilterStmtContext); ok { 416 len++ 417 } 418 } 419 420 tst := make([]IFilterStmtContext, len) 421 i := 0 422 for _, ctx := range children { 423 if t, ok := ctx.(IFilterStmtContext); ok { 424 tst[i] = t.(IFilterStmtContext) 425 i++ 426 } 427 } 428 429 return tst 430 } 431 432 func (s *PolicyContext) FilterStmt(i int) IFilterStmtContext { 433 var t antlr.RuleContext 434 j := 0 435 for _, ctx := range s.GetChildren() { 436 if _, ok := ctx.(IFilterStmtContext); ok { 437 if j == i { 438 t = ctx.(antlr.RuleContext) 439 break 440 } 441 j++ 442 } 443 } 444 445 if t == nil { 446 return nil 447 } 448 449 return t.(IFilterStmtContext) 450 } 451 452 func (s *PolicyContext) GetRuleContext() antlr.RuleContext { 453 return s 454 } 455 456 func (s *PolicyContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 457 return antlr.TreesStringTree(s, ruleNames, recog) 458 } 459 460 func (s *PolicyContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 461 switch t := visitor.(type) { 462 case QueryVisitor: 463 return t.VisitPolicy(s) 464 465 default: 466 return t.VisitChildren(s) 467 } 468 } 469 470 func (p *Query) Policy() (localctx IPolicyContext) { 471 localctx = NewPolicyContext(p, p.GetParserRuleContext(), p.GetState()) 472 p.EnterRule(localctx, 0, QueryRULE_policy) 473 var _la int 474 475 p.EnterOuterAlt(localctx, 1) 476 p.SetState(33) 477 p.GetErrorHandler().Sync(p) 478 if p.HasError() { 479 goto errorExit 480 } 481 _la = p.GetTokenStream().LA(1) 482 483 if _la == QueryUNIQUE { 484 { 485 p.SetState(32) 486 p.Match(QueryUNIQUE) 487 if p.HasError() { 488 // Recognition error - abort rule 489 goto errorExit 490 } 491 } 492 493 } 494 p.SetState(37) 495 p.GetErrorHandler().Sync(p) 496 if p.HasError() { 497 goto errorExit 498 } 499 _la = p.GetTokenStream().LA(1) 500 501 for ok := true; ok; ok = _la == QueryREP || _la == QueryEC { 502 p.SetState(37) 503 p.GetErrorHandler().Sync(p) 504 if p.HasError() { 505 goto errorExit 506 } 507 508 switch p.GetTokenStream().LA(1) { 509 case QueryREP: 510 { 511 p.SetState(35) 512 p.RepStmt() 513 } 514 515 case QueryEC: 516 { 517 p.SetState(36) 518 p.EcStmt() 519 } 520 521 default: 522 p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil)) 523 goto errorExit 524 } 525 526 p.SetState(39) 527 p.GetErrorHandler().Sync(p) 528 if p.HasError() { 529 goto errorExit 530 } 531 _la = p.GetTokenStream().LA(1) 532 } 533 p.SetState(42) 534 p.GetErrorHandler().Sync(p) 535 if p.HasError() { 536 goto errorExit 537 } 538 _la = p.GetTokenStream().LA(1) 539 540 if _la == QueryCBF { 541 { 542 p.SetState(41) 543 p.CbfStmt() 544 } 545 546 } 547 p.SetState(47) 548 p.GetErrorHandler().Sync(p) 549 if p.HasError() { 550 goto errorExit 551 } 552 _la = p.GetTokenStream().LA(1) 553 554 for _la == QuerySELECT { 555 { 556 p.SetState(44) 557 p.SelectStmt() 558 } 559 560 p.SetState(49) 561 p.GetErrorHandler().Sync(p) 562 if p.HasError() { 563 goto errorExit 564 } 565 _la = p.GetTokenStream().LA(1) 566 } 567 p.SetState(53) 568 p.GetErrorHandler().Sync(p) 569 if p.HasError() { 570 goto errorExit 571 } 572 _la = p.GetTokenStream().LA(1) 573 574 for _la == QueryFILTER { 575 { 576 p.SetState(50) 577 p.FilterStmt() 578 } 579 580 p.SetState(55) 581 p.GetErrorHandler().Sync(p) 582 if p.HasError() { 583 goto errorExit 584 } 585 _la = p.GetTokenStream().LA(1) 586 } 587 { 588 p.SetState(56) 589 p.Match(QueryEOF) 590 if p.HasError() { 591 // Recognition error - abort rule 592 goto errorExit 593 } 594 } 595 596 errorExit: 597 if p.HasError() { 598 v := p.GetError() 599 localctx.SetException(v) 600 p.GetErrorHandler().ReportError(p, v) 601 p.GetErrorHandler().Recover(p, v) 602 p.SetError(nil) 603 } 604 p.ExitRule() 605 return localctx 606 goto errorExit // Trick to prevent compiler error if the label is not used 607 } 608 609 // ISelectFilterExprContext is an interface to support dynamic dispatch. 610 type ISelectFilterExprContext interface { 611 antlr.ParserRuleContext 612 613 // GetParser returns the parser. 614 GetParser() antlr.Parser 615 616 // Getter signatures 617 EOF() antlr.TerminalNode 618 CbfStmt() ICbfStmtContext 619 SelectStmt() ISelectStmtContext 620 AllFilterStmt() []IFilterStmtContext 621 FilterStmt(i int) IFilterStmtContext 622 623 // IsSelectFilterExprContext differentiates from other interfaces. 624 IsSelectFilterExprContext() 625 } 626 627 type SelectFilterExprContext struct { 628 antlr.BaseParserRuleContext 629 parser antlr.Parser 630 } 631 632 func NewEmptySelectFilterExprContext() *SelectFilterExprContext { 633 var p = new(SelectFilterExprContext) 634 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 635 p.RuleIndex = QueryRULE_selectFilterExpr 636 return p 637 } 638 639 func InitEmptySelectFilterExprContext(p *SelectFilterExprContext) { 640 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 641 p.RuleIndex = QueryRULE_selectFilterExpr 642 } 643 644 func (*SelectFilterExprContext) IsSelectFilterExprContext() {} 645 646 func NewSelectFilterExprContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *SelectFilterExprContext { 647 var p = new(SelectFilterExprContext) 648 649 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 650 651 p.parser = parser 652 p.RuleIndex = QueryRULE_selectFilterExpr 653 654 return p 655 } 656 657 func (s *SelectFilterExprContext) GetParser() antlr.Parser { return s.parser } 658 659 func (s *SelectFilterExprContext) EOF() antlr.TerminalNode { 660 return s.GetToken(QueryEOF, 0) 661 } 662 663 func (s *SelectFilterExprContext) CbfStmt() ICbfStmtContext { 664 var t antlr.RuleContext 665 for _, ctx := range s.GetChildren() { 666 if _, ok := ctx.(ICbfStmtContext); ok { 667 t = ctx.(antlr.RuleContext) 668 break 669 } 670 } 671 672 if t == nil { 673 return nil 674 } 675 676 return t.(ICbfStmtContext) 677 } 678 679 func (s *SelectFilterExprContext) SelectStmt() ISelectStmtContext { 680 var t antlr.RuleContext 681 for _, ctx := range s.GetChildren() { 682 if _, ok := ctx.(ISelectStmtContext); ok { 683 t = ctx.(antlr.RuleContext) 684 break 685 } 686 } 687 688 if t == nil { 689 return nil 690 } 691 692 return t.(ISelectStmtContext) 693 } 694 695 func (s *SelectFilterExprContext) AllFilterStmt() []IFilterStmtContext { 696 children := s.GetChildren() 697 len := 0 698 for _, ctx := range children { 699 if _, ok := ctx.(IFilterStmtContext); ok { 700 len++ 701 } 702 } 703 704 tst := make([]IFilterStmtContext, len) 705 i := 0 706 for _, ctx := range children { 707 if t, ok := ctx.(IFilterStmtContext); ok { 708 tst[i] = t.(IFilterStmtContext) 709 i++ 710 } 711 } 712 713 return tst 714 } 715 716 func (s *SelectFilterExprContext) FilterStmt(i int) IFilterStmtContext { 717 var t antlr.RuleContext 718 j := 0 719 for _, ctx := range s.GetChildren() { 720 if _, ok := ctx.(IFilterStmtContext); ok { 721 if j == i { 722 t = ctx.(antlr.RuleContext) 723 break 724 } 725 j++ 726 } 727 } 728 729 if t == nil { 730 return nil 731 } 732 733 return t.(IFilterStmtContext) 734 } 735 736 func (s *SelectFilterExprContext) GetRuleContext() antlr.RuleContext { 737 return s 738 } 739 740 func (s *SelectFilterExprContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 741 return antlr.TreesStringTree(s, ruleNames, recog) 742 } 743 744 func (s *SelectFilterExprContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 745 switch t := visitor.(type) { 746 case QueryVisitor: 747 return t.VisitSelectFilterExpr(s) 748 749 default: 750 return t.VisitChildren(s) 751 } 752 } 753 754 func (p *Query) SelectFilterExpr() (localctx ISelectFilterExprContext) { 755 localctx = NewSelectFilterExprContext(p, p.GetParserRuleContext(), p.GetState()) 756 p.EnterRule(localctx, 2, QueryRULE_selectFilterExpr) 757 var _la int 758 759 p.EnterOuterAlt(localctx, 1) 760 p.SetState(59) 761 p.GetErrorHandler().Sync(p) 762 if p.HasError() { 763 goto errorExit 764 } 765 _la = p.GetTokenStream().LA(1) 766 767 if _la == QueryCBF { 768 { 769 p.SetState(58) 770 p.CbfStmt() 771 } 772 773 } 774 p.SetState(62) 775 p.GetErrorHandler().Sync(p) 776 if p.HasError() { 777 goto errorExit 778 } 779 _la = p.GetTokenStream().LA(1) 780 781 if _la == QuerySELECT { 782 { 783 p.SetState(61) 784 p.SelectStmt() 785 } 786 787 } 788 p.SetState(67) 789 p.GetErrorHandler().Sync(p) 790 if p.HasError() { 791 goto errorExit 792 } 793 _la = p.GetTokenStream().LA(1) 794 795 for _la == QueryFILTER { 796 { 797 p.SetState(64) 798 p.FilterStmt() 799 } 800 801 p.SetState(69) 802 p.GetErrorHandler().Sync(p) 803 if p.HasError() { 804 goto errorExit 805 } 806 _la = p.GetTokenStream().LA(1) 807 } 808 { 809 p.SetState(70) 810 p.Match(QueryEOF) 811 if p.HasError() { 812 // Recognition error - abort rule 813 goto errorExit 814 } 815 } 816 817 errorExit: 818 if p.HasError() { 819 v := p.GetError() 820 localctx.SetException(v) 821 p.GetErrorHandler().ReportError(p, v) 822 p.GetErrorHandler().Recover(p, v) 823 p.SetError(nil) 824 } 825 p.ExitRule() 826 return localctx 827 goto errorExit // Trick to prevent compiler error if the label is not used 828 } 829 830 // IEcStmtContext is an interface to support dynamic dispatch. 831 type IEcStmtContext interface { 832 antlr.ParserRuleContext 833 834 // GetParser returns the parser. 835 GetParser() antlr.Parser 836 837 // GetData returns the Data token. 838 GetData() antlr.Token 839 840 // GetParity returns the Parity token. 841 GetParity() antlr.Token 842 843 // SetData sets the Data token. 844 SetData(antlr.Token) 845 846 // SetParity sets the Parity token. 847 SetParity(antlr.Token) 848 849 // GetSelector returns the Selector rule contexts. 850 GetSelector() IIdentContext 851 852 // SetSelector sets the Selector rule contexts. 853 SetSelector(IIdentContext) 854 855 // Getter signatures 856 EC() antlr.TerminalNode 857 DOT() antlr.TerminalNode 858 AllNUMBER1() []antlr.TerminalNode 859 NUMBER1(i int) antlr.TerminalNode 860 IN() antlr.TerminalNode 861 Ident() IIdentContext 862 863 // IsEcStmtContext differentiates from other interfaces. 864 IsEcStmtContext() 865 } 866 867 type EcStmtContext struct { 868 antlr.BaseParserRuleContext 869 parser antlr.Parser 870 Data antlr.Token 871 Parity antlr.Token 872 Selector IIdentContext 873 } 874 875 func NewEmptyEcStmtContext() *EcStmtContext { 876 var p = new(EcStmtContext) 877 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 878 p.RuleIndex = QueryRULE_ecStmt 879 return p 880 } 881 882 func InitEmptyEcStmtContext(p *EcStmtContext) { 883 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 884 p.RuleIndex = QueryRULE_ecStmt 885 } 886 887 func (*EcStmtContext) IsEcStmtContext() {} 888 889 func NewEcStmtContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *EcStmtContext { 890 var p = new(EcStmtContext) 891 892 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 893 894 p.parser = parser 895 p.RuleIndex = QueryRULE_ecStmt 896 897 return p 898 } 899 900 func (s *EcStmtContext) GetParser() antlr.Parser { return s.parser } 901 902 func (s *EcStmtContext) GetData() antlr.Token { return s.Data } 903 904 func (s *EcStmtContext) GetParity() antlr.Token { return s.Parity } 905 906 func (s *EcStmtContext) SetData(v antlr.Token) { s.Data = v } 907 908 func (s *EcStmtContext) SetParity(v antlr.Token) { s.Parity = v } 909 910 func (s *EcStmtContext) GetSelector() IIdentContext { return s.Selector } 911 912 func (s *EcStmtContext) SetSelector(v IIdentContext) { s.Selector = v } 913 914 func (s *EcStmtContext) EC() antlr.TerminalNode { 915 return s.GetToken(QueryEC, 0) 916 } 917 918 func (s *EcStmtContext) DOT() antlr.TerminalNode { 919 return s.GetToken(QueryDOT, 0) 920 } 921 922 func (s *EcStmtContext) AllNUMBER1() []antlr.TerminalNode { 923 return s.GetTokens(QueryNUMBER1) 924 } 925 926 func (s *EcStmtContext) NUMBER1(i int) antlr.TerminalNode { 927 return s.GetToken(QueryNUMBER1, i) 928 } 929 930 func (s *EcStmtContext) IN() antlr.TerminalNode { 931 return s.GetToken(QueryIN, 0) 932 } 933 934 func (s *EcStmtContext) Ident() IIdentContext { 935 var t antlr.RuleContext 936 for _, ctx := range s.GetChildren() { 937 if _, ok := ctx.(IIdentContext); ok { 938 t = ctx.(antlr.RuleContext) 939 break 940 } 941 } 942 943 if t == nil { 944 return nil 945 } 946 947 return t.(IIdentContext) 948 } 949 950 func (s *EcStmtContext) GetRuleContext() antlr.RuleContext { 951 return s 952 } 953 954 func (s *EcStmtContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 955 return antlr.TreesStringTree(s, ruleNames, recog) 956 } 957 958 func (s *EcStmtContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 959 switch t := visitor.(type) { 960 case QueryVisitor: 961 return t.VisitEcStmt(s) 962 963 default: 964 return t.VisitChildren(s) 965 } 966 } 967 968 func (p *Query) EcStmt() (localctx IEcStmtContext) { 969 localctx = NewEcStmtContext(p, p.GetParserRuleContext(), p.GetState()) 970 p.EnterRule(localctx, 4, QueryRULE_ecStmt) 971 var _la int 972 973 p.EnterOuterAlt(localctx, 1) 974 { 975 p.SetState(72) 976 p.Match(QueryEC) 977 if p.HasError() { 978 // Recognition error - abort rule 979 goto errorExit 980 } 981 } 982 { 983 p.SetState(73) 984 985 var _m = p.Match(QueryNUMBER1) 986 987 localctx.(*EcStmtContext).Data = _m 988 if p.HasError() { 989 // Recognition error - abort rule 990 goto errorExit 991 } 992 } 993 { 994 p.SetState(74) 995 p.Match(QueryDOT) 996 if p.HasError() { 997 // Recognition error - abort rule 998 goto errorExit 999 } 1000 } 1001 { 1002 p.SetState(75) 1003 1004 var _m = p.Match(QueryNUMBER1) 1005 1006 localctx.(*EcStmtContext).Parity = _m 1007 if p.HasError() { 1008 // Recognition error - abort rule 1009 goto errorExit 1010 } 1011 } 1012 p.SetState(78) 1013 p.GetErrorHandler().Sync(p) 1014 if p.HasError() { 1015 goto errorExit 1016 } 1017 _la = p.GetTokenStream().LA(1) 1018 1019 if _la == QueryIN { 1020 { 1021 p.SetState(76) 1022 p.Match(QueryIN) 1023 if p.HasError() { 1024 // Recognition error - abort rule 1025 goto errorExit 1026 } 1027 } 1028 { 1029 p.SetState(77) 1030 1031 var _x = p.Ident() 1032 1033 localctx.(*EcStmtContext).Selector = _x 1034 } 1035 1036 } 1037 1038 errorExit: 1039 if p.HasError() { 1040 v := p.GetError() 1041 localctx.SetException(v) 1042 p.GetErrorHandler().ReportError(p, v) 1043 p.GetErrorHandler().Recover(p, v) 1044 p.SetError(nil) 1045 } 1046 p.ExitRule() 1047 return localctx 1048 goto errorExit // Trick to prevent compiler error if the label is not used 1049 } 1050 1051 // IRepStmtContext is an interface to support dynamic dispatch. 1052 type IRepStmtContext interface { 1053 antlr.ParserRuleContext 1054 1055 // GetParser returns the parser. 1056 GetParser() antlr.Parser 1057 1058 // GetCount returns the Count token. 1059 GetCount() antlr.Token 1060 1061 // SetCount sets the Count token. 1062 SetCount(antlr.Token) 1063 1064 // GetSelector returns the Selector rule contexts. 1065 GetSelector() IIdentContext 1066 1067 // SetSelector sets the Selector rule contexts. 1068 SetSelector(IIdentContext) 1069 1070 // Getter signatures 1071 REP() antlr.TerminalNode 1072 NUMBER1() antlr.TerminalNode 1073 IN() antlr.TerminalNode 1074 Ident() IIdentContext 1075 1076 // IsRepStmtContext differentiates from other interfaces. 1077 IsRepStmtContext() 1078 } 1079 1080 type RepStmtContext struct { 1081 antlr.BaseParserRuleContext 1082 parser antlr.Parser 1083 Count antlr.Token 1084 Selector IIdentContext 1085 } 1086 1087 func NewEmptyRepStmtContext() *RepStmtContext { 1088 var p = new(RepStmtContext) 1089 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 1090 p.RuleIndex = QueryRULE_repStmt 1091 return p 1092 } 1093 1094 func InitEmptyRepStmtContext(p *RepStmtContext) { 1095 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 1096 p.RuleIndex = QueryRULE_repStmt 1097 } 1098 1099 func (*RepStmtContext) IsRepStmtContext() {} 1100 1101 func NewRepStmtContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *RepStmtContext { 1102 var p = new(RepStmtContext) 1103 1104 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 1105 1106 p.parser = parser 1107 p.RuleIndex = QueryRULE_repStmt 1108 1109 return p 1110 } 1111 1112 func (s *RepStmtContext) GetParser() antlr.Parser { return s.parser } 1113 1114 func (s *RepStmtContext) GetCount() antlr.Token { return s.Count } 1115 1116 func (s *RepStmtContext) SetCount(v antlr.Token) { s.Count = v } 1117 1118 func (s *RepStmtContext) GetSelector() IIdentContext { return s.Selector } 1119 1120 func (s *RepStmtContext) SetSelector(v IIdentContext) { s.Selector = v } 1121 1122 func (s *RepStmtContext) REP() antlr.TerminalNode { 1123 return s.GetToken(QueryREP, 0) 1124 } 1125 1126 func (s *RepStmtContext) NUMBER1() antlr.TerminalNode { 1127 return s.GetToken(QueryNUMBER1, 0) 1128 } 1129 1130 func (s *RepStmtContext) IN() antlr.TerminalNode { 1131 return s.GetToken(QueryIN, 0) 1132 } 1133 1134 func (s *RepStmtContext) Ident() IIdentContext { 1135 var t antlr.RuleContext 1136 for _, ctx := range s.GetChildren() { 1137 if _, ok := ctx.(IIdentContext); ok { 1138 t = ctx.(antlr.RuleContext) 1139 break 1140 } 1141 } 1142 1143 if t == nil { 1144 return nil 1145 } 1146 1147 return t.(IIdentContext) 1148 } 1149 1150 func (s *RepStmtContext) GetRuleContext() antlr.RuleContext { 1151 return s 1152 } 1153 1154 func (s *RepStmtContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 1155 return antlr.TreesStringTree(s, ruleNames, recog) 1156 } 1157 1158 func (s *RepStmtContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 1159 switch t := visitor.(type) { 1160 case QueryVisitor: 1161 return t.VisitRepStmt(s) 1162 1163 default: 1164 return t.VisitChildren(s) 1165 } 1166 } 1167 1168 func (p *Query) RepStmt() (localctx IRepStmtContext) { 1169 localctx = NewRepStmtContext(p, p.GetParserRuleContext(), p.GetState()) 1170 p.EnterRule(localctx, 6, QueryRULE_repStmt) 1171 var _la int 1172 1173 p.EnterOuterAlt(localctx, 1) 1174 { 1175 p.SetState(80) 1176 p.Match(QueryREP) 1177 if p.HasError() { 1178 // Recognition error - abort rule 1179 goto errorExit 1180 } 1181 } 1182 { 1183 p.SetState(81) 1184 1185 var _m = p.Match(QueryNUMBER1) 1186 1187 localctx.(*RepStmtContext).Count = _m 1188 if p.HasError() { 1189 // Recognition error - abort rule 1190 goto errorExit 1191 } 1192 } 1193 p.SetState(84) 1194 p.GetErrorHandler().Sync(p) 1195 if p.HasError() { 1196 goto errorExit 1197 } 1198 _la = p.GetTokenStream().LA(1) 1199 1200 if _la == QueryIN { 1201 { 1202 p.SetState(82) 1203 p.Match(QueryIN) 1204 if p.HasError() { 1205 // Recognition error - abort rule 1206 goto errorExit 1207 } 1208 } 1209 { 1210 p.SetState(83) 1211 1212 var _x = p.Ident() 1213 1214 localctx.(*RepStmtContext).Selector = _x 1215 } 1216 1217 } 1218 1219 errorExit: 1220 if p.HasError() { 1221 v := p.GetError() 1222 localctx.SetException(v) 1223 p.GetErrorHandler().ReportError(p, v) 1224 p.GetErrorHandler().Recover(p, v) 1225 p.SetError(nil) 1226 } 1227 p.ExitRule() 1228 return localctx 1229 goto errorExit // Trick to prevent compiler error if the label is not used 1230 } 1231 1232 // ICbfStmtContext is an interface to support dynamic dispatch. 1233 type ICbfStmtContext interface { 1234 antlr.ParserRuleContext 1235 1236 // GetParser returns the parser. 1237 GetParser() antlr.Parser 1238 1239 // GetBackupFactor returns the BackupFactor token. 1240 GetBackupFactor() antlr.Token 1241 1242 // SetBackupFactor sets the BackupFactor token. 1243 SetBackupFactor(antlr.Token) 1244 1245 // Getter signatures 1246 CBF() antlr.TerminalNode 1247 NUMBER1() antlr.TerminalNode 1248 1249 // IsCbfStmtContext differentiates from other interfaces. 1250 IsCbfStmtContext() 1251 } 1252 1253 type CbfStmtContext struct { 1254 antlr.BaseParserRuleContext 1255 parser antlr.Parser 1256 BackupFactor antlr.Token 1257 } 1258 1259 func NewEmptyCbfStmtContext() *CbfStmtContext { 1260 var p = new(CbfStmtContext) 1261 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 1262 p.RuleIndex = QueryRULE_cbfStmt 1263 return p 1264 } 1265 1266 func InitEmptyCbfStmtContext(p *CbfStmtContext) { 1267 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 1268 p.RuleIndex = QueryRULE_cbfStmt 1269 } 1270 1271 func (*CbfStmtContext) IsCbfStmtContext() {} 1272 1273 func NewCbfStmtContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *CbfStmtContext { 1274 var p = new(CbfStmtContext) 1275 1276 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 1277 1278 p.parser = parser 1279 p.RuleIndex = QueryRULE_cbfStmt 1280 1281 return p 1282 } 1283 1284 func (s *CbfStmtContext) GetParser() antlr.Parser { return s.parser } 1285 1286 func (s *CbfStmtContext) GetBackupFactor() antlr.Token { return s.BackupFactor } 1287 1288 func (s *CbfStmtContext) SetBackupFactor(v antlr.Token) { s.BackupFactor = v } 1289 1290 func (s *CbfStmtContext) CBF() antlr.TerminalNode { 1291 return s.GetToken(QueryCBF, 0) 1292 } 1293 1294 func (s *CbfStmtContext) NUMBER1() antlr.TerminalNode { 1295 return s.GetToken(QueryNUMBER1, 0) 1296 } 1297 1298 func (s *CbfStmtContext) GetRuleContext() antlr.RuleContext { 1299 return s 1300 } 1301 1302 func (s *CbfStmtContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 1303 return antlr.TreesStringTree(s, ruleNames, recog) 1304 } 1305 1306 func (s *CbfStmtContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 1307 switch t := visitor.(type) { 1308 case QueryVisitor: 1309 return t.VisitCbfStmt(s) 1310 1311 default: 1312 return t.VisitChildren(s) 1313 } 1314 } 1315 1316 func (p *Query) CbfStmt() (localctx ICbfStmtContext) { 1317 localctx = NewCbfStmtContext(p, p.GetParserRuleContext(), p.GetState()) 1318 p.EnterRule(localctx, 8, QueryRULE_cbfStmt) 1319 p.EnterOuterAlt(localctx, 1) 1320 { 1321 p.SetState(86) 1322 p.Match(QueryCBF) 1323 if p.HasError() { 1324 // Recognition error - abort rule 1325 goto errorExit 1326 } 1327 } 1328 { 1329 p.SetState(87) 1330 1331 var _m = p.Match(QueryNUMBER1) 1332 1333 localctx.(*CbfStmtContext).BackupFactor = _m 1334 if p.HasError() { 1335 // Recognition error - abort rule 1336 goto errorExit 1337 } 1338 } 1339 1340 errorExit: 1341 if p.HasError() { 1342 v := p.GetError() 1343 localctx.SetException(v) 1344 p.GetErrorHandler().ReportError(p, v) 1345 p.GetErrorHandler().Recover(p, v) 1346 p.SetError(nil) 1347 } 1348 p.ExitRule() 1349 return localctx 1350 goto errorExit // Trick to prevent compiler error if the label is not used 1351 } 1352 1353 // ISelectStmtContext is an interface to support dynamic dispatch. 1354 type ISelectStmtContext interface { 1355 antlr.ParserRuleContext 1356 1357 // GetParser returns the parser. 1358 GetParser() antlr.Parser 1359 1360 // GetCount returns the Count token. 1361 GetCount() antlr.Token 1362 1363 // SetCount sets the Count token. 1364 SetCount(antlr.Token) 1365 1366 // GetBucket returns the Bucket rule contexts. 1367 GetBucket() IFilterKeyContext 1368 1369 // GetFilter returns the Filter rule contexts. 1370 GetFilter() IIdentWCContext 1371 1372 // GetName returns the Name rule contexts. 1373 GetName() IIdentContext 1374 1375 // SetBucket sets the Bucket rule contexts. 1376 SetBucket(IFilterKeyContext) 1377 1378 // SetFilter sets the Filter rule contexts. 1379 SetFilter(IIdentWCContext) 1380 1381 // SetName sets the Name rule contexts. 1382 SetName(IIdentContext) 1383 1384 // Getter signatures 1385 SELECT() antlr.TerminalNode 1386 FROM() antlr.TerminalNode 1387 NUMBER1() antlr.TerminalNode 1388 IdentWC() IIdentWCContext 1389 IN() antlr.TerminalNode 1390 AS() antlr.TerminalNode 1391 FilterKey() IFilterKeyContext 1392 Ident() IIdentContext 1393 Clause() IClauseContext 1394 1395 // IsSelectStmtContext differentiates from other interfaces. 1396 IsSelectStmtContext() 1397 } 1398 1399 type SelectStmtContext struct { 1400 antlr.BaseParserRuleContext 1401 parser antlr.Parser 1402 Count antlr.Token 1403 Bucket IFilterKeyContext 1404 Filter IIdentWCContext 1405 Name IIdentContext 1406 } 1407 1408 func NewEmptySelectStmtContext() *SelectStmtContext { 1409 var p = new(SelectStmtContext) 1410 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 1411 p.RuleIndex = QueryRULE_selectStmt 1412 return p 1413 } 1414 1415 func InitEmptySelectStmtContext(p *SelectStmtContext) { 1416 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 1417 p.RuleIndex = QueryRULE_selectStmt 1418 } 1419 1420 func (*SelectStmtContext) IsSelectStmtContext() {} 1421 1422 func NewSelectStmtContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *SelectStmtContext { 1423 var p = new(SelectStmtContext) 1424 1425 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 1426 1427 p.parser = parser 1428 p.RuleIndex = QueryRULE_selectStmt 1429 1430 return p 1431 } 1432 1433 func (s *SelectStmtContext) GetParser() antlr.Parser { return s.parser } 1434 1435 func (s *SelectStmtContext) GetCount() antlr.Token { return s.Count } 1436 1437 func (s *SelectStmtContext) SetCount(v antlr.Token) { s.Count = v } 1438 1439 func (s *SelectStmtContext) GetBucket() IFilterKeyContext { return s.Bucket } 1440 1441 func (s *SelectStmtContext) GetFilter() IIdentWCContext { return s.Filter } 1442 1443 func (s *SelectStmtContext) GetName() IIdentContext { return s.Name } 1444 1445 func (s *SelectStmtContext) SetBucket(v IFilterKeyContext) { s.Bucket = v } 1446 1447 func (s *SelectStmtContext) SetFilter(v IIdentWCContext) { s.Filter = v } 1448 1449 func (s *SelectStmtContext) SetName(v IIdentContext) { s.Name = v } 1450 1451 func (s *SelectStmtContext) SELECT() antlr.TerminalNode { 1452 return s.GetToken(QuerySELECT, 0) 1453 } 1454 1455 func (s *SelectStmtContext) FROM() antlr.TerminalNode { 1456 return s.GetToken(QueryFROM, 0) 1457 } 1458 1459 func (s *SelectStmtContext) NUMBER1() antlr.TerminalNode { 1460 return s.GetToken(QueryNUMBER1, 0) 1461 } 1462 1463 func (s *SelectStmtContext) IdentWC() IIdentWCContext { 1464 var t antlr.RuleContext 1465 for _, ctx := range s.GetChildren() { 1466 if _, ok := ctx.(IIdentWCContext); ok { 1467 t = ctx.(antlr.RuleContext) 1468 break 1469 } 1470 } 1471 1472 if t == nil { 1473 return nil 1474 } 1475 1476 return t.(IIdentWCContext) 1477 } 1478 1479 func (s *SelectStmtContext) IN() antlr.TerminalNode { 1480 return s.GetToken(QueryIN, 0) 1481 } 1482 1483 func (s *SelectStmtContext) AS() antlr.TerminalNode { 1484 return s.GetToken(QueryAS, 0) 1485 } 1486 1487 func (s *SelectStmtContext) FilterKey() IFilterKeyContext { 1488 var t antlr.RuleContext 1489 for _, ctx := range s.GetChildren() { 1490 if _, ok := ctx.(IFilterKeyContext); ok { 1491 t = ctx.(antlr.RuleContext) 1492 break 1493 } 1494 } 1495 1496 if t == nil { 1497 return nil 1498 } 1499 1500 return t.(IFilterKeyContext) 1501 } 1502 1503 func (s *SelectStmtContext) Ident() IIdentContext { 1504 var t antlr.RuleContext 1505 for _, ctx := range s.GetChildren() { 1506 if _, ok := ctx.(IIdentContext); ok { 1507 t = ctx.(antlr.RuleContext) 1508 break 1509 } 1510 } 1511 1512 if t == nil { 1513 return nil 1514 } 1515 1516 return t.(IIdentContext) 1517 } 1518 1519 func (s *SelectStmtContext) Clause() IClauseContext { 1520 var t antlr.RuleContext 1521 for _, ctx := range s.GetChildren() { 1522 if _, ok := ctx.(IClauseContext); ok { 1523 t = ctx.(antlr.RuleContext) 1524 break 1525 } 1526 } 1527 1528 if t == nil { 1529 return nil 1530 } 1531 1532 return t.(IClauseContext) 1533 } 1534 1535 func (s *SelectStmtContext) GetRuleContext() antlr.RuleContext { 1536 return s 1537 } 1538 1539 func (s *SelectStmtContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 1540 return antlr.TreesStringTree(s, ruleNames, recog) 1541 } 1542 1543 func (s *SelectStmtContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 1544 switch t := visitor.(type) { 1545 case QueryVisitor: 1546 return t.VisitSelectStmt(s) 1547 1548 default: 1549 return t.VisitChildren(s) 1550 } 1551 } 1552 1553 func (p *Query) SelectStmt() (localctx ISelectStmtContext) { 1554 localctx = NewSelectStmtContext(p, p.GetParserRuleContext(), p.GetState()) 1555 p.EnterRule(localctx, 10, QueryRULE_selectStmt) 1556 var _la int 1557 1558 p.EnterOuterAlt(localctx, 1) 1559 { 1560 p.SetState(89) 1561 p.Match(QuerySELECT) 1562 if p.HasError() { 1563 // Recognition error - abort rule 1564 goto errorExit 1565 } 1566 } 1567 { 1568 p.SetState(90) 1569 1570 var _m = p.Match(QueryNUMBER1) 1571 1572 localctx.(*SelectStmtContext).Count = _m 1573 if p.HasError() { 1574 // Recognition error - abort rule 1575 goto errorExit 1576 } 1577 } 1578 p.SetState(96) 1579 p.GetErrorHandler().Sync(p) 1580 if p.HasError() { 1581 goto errorExit 1582 } 1583 _la = p.GetTokenStream().LA(1) 1584 1585 if _la == QueryIN { 1586 { 1587 p.SetState(91) 1588 p.Match(QueryIN) 1589 if p.HasError() { 1590 // Recognition error - abort rule 1591 goto errorExit 1592 } 1593 } 1594 p.SetState(93) 1595 p.GetErrorHandler().Sync(p) 1596 if p.HasError() { 1597 goto errorExit 1598 } 1599 _la = p.GetTokenStream().LA(1) 1600 1601 if _la == QueryCLAUSE_SAME || _la == QueryCLAUSE_DISTINCT { 1602 { 1603 p.SetState(92) 1604 p.Clause() 1605 } 1606 1607 } 1608 { 1609 p.SetState(95) 1610 1611 var _x = p.FilterKey() 1612 1613 localctx.(*SelectStmtContext).Bucket = _x 1614 } 1615 1616 } 1617 { 1618 p.SetState(98) 1619 p.Match(QueryFROM) 1620 if p.HasError() { 1621 // Recognition error - abort rule 1622 goto errorExit 1623 } 1624 } 1625 { 1626 p.SetState(99) 1627 1628 var _x = p.IdentWC() 1629 1630 localctx.(*SelectStmtContext).Filter = _x 1631 } 1632 p.SetState(102) 1633 p.GetErrorHandler().Sync(p) 1634 if p.HasError() { 1635 goto errorExit 1636 } 1637 _la = p.GetTokenStream().LA(1) 1638 1639 if _la == QueryAS { 1640 { 1641 p.SetState(100) 1642 p.Match(QueryAS) 1643 if p.HasError() { 1644 // Recognition error - abort rule 1645 goto errorExit 1646 } 1647 } 1648 { 1649 p.SetState(101) 1650 1651 var _x = p.Ident() 1652 1653 localctx.(*SelectStmtContext).Name = _x 1654 } 1655 1656 } 1657 1658 errorExit: 1659 if p.HasError() { 1660 v := p.GetError() 1661 localctx.SetException(v) 1662 p.GetErrorHandler().ReportError(p, v) 1663 p.GetErrorHandler().Recover(p, v) 1664 p.SetError(nil) 1665 } 1666 p.ExitRule() 1667 return localctx 1668 goto errorExit // Trick to prevent compiler error if the label is not used 1669 } 1670 1671 // IClauseContext is an interface to support dynamic dispatch. 1672 type IClauseContext interface { 1673 antlr.ParserRuleContext 1674 1675 // GetParser returns the parser. 1676 GetParser() antlr.Parser 1677 1678 // Getter signatures 1679 CLAUSE_SAME() antlr.TerminalNode 1680 CLAUSE_DISTINCT() antlr.TerminalNode 1681 1682 // IsClauseContext differentiates from other interfaces. 1683 IsClauseContext() 1684 } 1685 1686 type ClauseContext struct { 1687 antlr.BaseParserRuleContext 1688 parser antlr.Parser 1689 } 1690 1691 func NewEmptyClauseContext() *ClauseContext { 1692 var p = new(ClauseContext) 1693 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 1694 p.RuleIndex = QueryRULE_clause 1695 return p 1696 } 1697 1698 func InitEmptyClauseContext(p *ClauseContext) { 1699 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 1700 p.RuleIndex = QueryRULE_clause 1701 } 1702 1703 func (*ClauseContext) IsClauseContext() {} 1704 1705 func NewClauseContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ClauseContext { 1706 var p = new(ClauseContext) 1707 1708 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 1709 1710 p.parser = parser 1711 p.RuleIndex = QueryRULE_clause 1712 1713 return p 1714 } 1715 1716 func (s *ClauseContext) GetParser() antlr.Parser { return s.parser } 1717 1718 func (s *ClauseContext) CLAUSE_SAME() antlr.TerminalNode { 1719 return s.GetToken(QueryCLAUSE_SAME, 0) 1720 } 1721 1722 func (s *ClauseContext) CLAUSE_DISTINCT() antlr.TerminalNode { 1723 return s.GetToken(QueryCLAUSE_DISTINCT, 0) 1724 } 1725 1726 func (s *ClauseContext) GetRuleContext() antlr.RuleContext { 1727 return s 1728 } 1729 1730 func (s *ClauseContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 1731 return antlr.TreesStringTree(s, ruleNames, recog) 1732 } 1733 1734 func (s *ClauseContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 1735 switch t := visitor.(type) { 1736 case QueryVisitor: 1737 return t.VisitClause(s) 1738 1739 default: 1740 return t.VisitChildren(s) 1741 } 1742 } 1743 1744 func (p *Query) Clause() (localctx IClauseContext) { 1745 localctx = NewClauseContext(p, p.GetParserRuleContext(), p.GetState()) 1746 p.EnterRule(localctx, 12, QueryRULE_clause) 1747 var _la int 1748 1749 p.EnterOuterAlt(localctx, 1) 1750 { 1751 p.SetState(104) 1752 _la = p.GetTokenStream().LA(1) 1753 1754 if !(_la == QueryCLAUSE_SAME || _la == QueryCLAUSE_DISTINCT) { 1755 p.GetErrorHandler().RecoverInline(p) 1756 } else { 1757 p.GetErrorHandler().ReportMatch(p) 1758 p.Consume() 1759 } 1760 } 1761 1762 errorExit: 1763 if p.HasError() { 1764 v := p.GetError() 1765 localctx.SetException(v) 1766 p.GetErrorHandler().ReportError(p, v) 1767 p.GetErrorHandler().Recover(p, v) 1768 p.SetError(nil) 1769 } 1770 p.ExitRule() 1771 return localctx 1772 goto errorExit // Trick to prevent compiler error if the label is not used 1773 } 1774 1775 // IFilterExprContext is an interface to support dynamic dispatch. 1776 type IFilterExprContext interface { 1777 antlr.ParserRuleContext 1778 1779 // GetParser returns the parser. 1780 GetParser() antlr.Parser 1781 1782 // GetOp returns the Op token. 1783 GetOp() antlr.Token 1784 1785 // SetOp sets the Op token. 1786 SetOp(antlr.Token) 1787 1788 // GetF1 returns the F1 rule contexts. 1789 GetF1() IFilterExprContext 1790 1791 // GetInner returns the Inner rule contexts. 1792 GetInner() IFilterExprContext 1793 1794 // GetF2 returns the F2 rule contexts. 1795 GetF2() IFilterExprContext 1796 1797 // SetF1 sets the F1 rule contexts. 1798 SetF1(IFilterExprContext) 1799 1800 // SetInner sets the Inner rule contexts. 1801 SetInner(IFilterExprContext) 1802 1803 // SetF2 sets the F2 rule contexts. 1804 SetF2(IFilterExprContext) 1805 1806 // Getter signatures 1807 L_PAREN() antlr.TerminalNode 1808 R_PAREN() antlr.TerminalNode 1809 NOT_OP() antlr.TerminalNode 1810 AllFilterExpr() []IFilterExprContext 1811 FilterExpr(i int) IFilterExprContext 1812 Expr() IExprContext 1813 AND_OP() antlr.TerminalNode 1814 OR_OP() antlr.TerminalNode 1815 1816 // IsFilterExprContext differentiates from other interfaces. 1817 IsFilterExprContext() 1818 } 1819 1820 type FilterExprContext struct { 1821 antlr.BaseParserRuleContext 1822 parser antlr.Parser 1823 F1 IFilterExprContext 1824 Op antlr.Token 1825 Inner IFilterExprContext 1826 F2 IFilterExprContext 1827 } 1828 1829 func NewEmptyFilterExprContext() *FilterExprContext { 1830 var p = new(FilterExprContext) 1831 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 1832 p.RuleIndex = QueryRULE_filterExpr 1833 return p 1834 } 1835 1836 func InitEmptyFilterExprContext(p *FilterExprContext) { 1837 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 1838 p.RuleIndex = QueryRULE_filterExpr 1839 } 1840 1841 func (*FilterExprContext) IsFilterExprContext() {} 1842 1843 func NewFilterExprContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *FilterExprContext { 1844 var p = new(FilterExprContext) 1845 1846 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 1847 1848 p.parser = parser 1849 p.RuleIndex = QueryRULE_filterExpr 1850 1851 return p 1852 } 1853 1854 func (s *FilterExprContext) GetParser() antlr.Parser { return s.parser } 1855 1856 func (s *FilterExprContext) GetOp() antlr.Token { return s.Op } 1857 1858 func (s *FilterExprContext) SetOp(v antlr.Token) { s.Op = v } 1859 1860 func (s *FilterExprContext) GetF1() IFilterExprContext { return s.F1 } 1861 1862 func (s *FilterExprContext) GetInner() IFilterExprContext { return s.Inner } 1863 1864 func (s *FilterExprContext) GetF2() IFilterExprContext { return s.F2 } 1865 1866 func (s *FilterExprContext) SetF1(v IFilterExprContext) { s.F1 = v } 1867 1868 func (s *FilterExprContext) SetInner(v IFilterExprContext) { s.Inner = v } 1869 1870 func (s *FilterExprContext) SetF2(v IFilterExprContext) { s.F2 = v } 1871 1872 func (s *FilterExprContext) L_PAREN() antlr.TerminalNode { 1873 return s.GetToken(QueryL_PAREN, 0) 1874 } 1875 1876 func (s *FilterExprContext) R_PAREN() antlr.TerminalNode { 1877 return s.GetToken(QueryR_PAREN, 0) 1878 } 1879 1880 func (s *FilterExprContext) NOT_OP() antlr.TerminalNode { 1881 return s.GetToken(QueryNOT_OP, 0) 1882 } 1883 1884 func (s *FilterExprContext) AllFilterExpr() []IFilterExprContext { 1885 children := s.GetChildren() 1886 len := 0 1887 for _, ctx := range children { 1888 if _, ok := ctx.(IFilterExprContext); ok { 1889 len++ 1890 } 1891 } 1892 1893 tst := make([]IFilterExprContext, len) 1894 i := 0 1895 for _, ctx := range children { 1896 if t, ok := ctx.(IFilterExprContext); ok { 1897 tst[i] = t.(IFilterExprContext) 1898 i++ 1899 } 1900 } 1901 1902 return tst 1903 } 1904 1905 func (s *FilterExprContext) FilterExpr(i int) IFilterExprContext { 1906 var t antlr.RuleContext 1907 j := 0 1908 for _, ctx := range s.GetChildren() { 1909 if _, ok := ctx.(IFilterExprContext); ok { 1910 if j == i { 1911 t = ctx.(antlr.RuleContext) 1912 break 1913 } 1914 j++ 1915 } 1916 } 1917 1918 if t == nil { 1919 return nil 1920 } 1921 1922 return t.(IFilterExprContext) 1923 } 1924 1925 func (s *FilterExprContext) Expr() IExprContext { 1926 var t antlr.RuleContext 1927 for _, ctx := range s.GetChildren() { 1928 if _, ok := ctx.(IExprContext); ok { 1929 t = ctx.(antlr.RuleContext) 1930 break 1931 } 1932 } 1933 1934 if t == nil { 1935 return nil 1936 } 1937 1938 return t.(IExprContext) 1939 } 1940 1941 func (s *FilterExprContext) AND_OP() antlr.TerminalNode { 1942 return s.GetToken(QueryAND_OP, 0) 1943 } 1944 1945 func (s *FilterExprContext) OR_OP() antlr.TerminalNode { 1946 return s.GetToken(QueryOR_OP, 0) 1947 } 1948 1949 func (s *FilterExprContext) GetRuleContext() antlr.RuleContext { 1950 return s 1951 } 1952 1953 func (s *FilterExprContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 1954 return antlr.TreesStringTree(s, ruleNames, recog) 1955 } 1956 1957 func (s *FilterExprContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 1958 switch t := visitor.(type) { 1959 case QueryVisitor: 1960 return t.VisitFilterExpr(s) 1961 1962 default: 1963 return t.VisitChildren(s) 1964 } 1965 } 1966 1967 func (p *Query) FilterExpr() (localctx IFilterExprContext) { 1968 return p.filterExpr(0) 1969 } 1970 1971 func (p *Query) filterExpr(_p int) (localctx IFilterExprContext) { 1972 var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext() 1973 1974 _parentState := p.GetState() 1975 localctx = NewFilterExprContext(p, p.GetParserRuleContext(), _parentState) 1976 var _prevctx IFilterExprContext = localctx 1977 var _ antlr.ParserRuleContext = _prevctx // TODO: To prevent unused variable warning. 1978 _startState := 14 1979 p.EnterRecursionRule(localctx, 14, QueryRULE_filterExpr, _p) 1980 var _alt int 1981 1982 p.EnterOuterAlt(localctx, 1) 1983 p.SetState(117) 1984 p.GetErrorHandler().Sync(p) 1985 if p.HasError() { 1986 goto errorExit 1987 } 1988 1989 switch p.GetTokenStream().LA(1) { 1990 case QueryNOT_OP: 1991 { 1992 p.SetState(107) 1993 1994 var _m = p.Match(QueryNOT_OP) 1995 1996 localctx.(*FilterExprContext).Op = _m 1997 if p.HasError() { 1998 // Recognition error - abort rule 1999 goto errorExit 2000 } 2001 } 2002 { 2003 p.SetState(108) 2004 p.Match(QueryL_PAREN) 2005 if p.HasError() { 2006 // Recognition error - abort rule 2007 goto errorExit 2008 } 2009 } 2010 { 2011 p.SetState(109) 2012 2013 var _x = p.filterExpr(0) 2014 2015 localctx.(*FilterExprContext).F1 = _x 2016 } 2017 { 2018 p.SetState(110) 2019 p.Match(QueryR_PAREN) 2020 if p.HasError() { 2021 // Recognition error - abort rule 2022 goto errorExit 2023 } 2024 } 2025 2026 case QueryL_PAREN: 2027 { 2028 p.SetState(112) 2029 p.Match(QueryL_PAREN) 2030 if p.HasError() { 2031 // Recognition error - abort rule 2032 goto errorExit 2033 } 2034 } 2035 { 2036 p.SetState(113) 2037 2038 var _x = p.filterExpr(0) 2039 2040 localctx.(*FilterExprContext).Inner = _x 2041 } 2042 { 2043 p.SetState(114) 2044 p.Match(QueryR_PAREN) 2045 if p.HasError() { 2046 // Recognition error - abort rule 2047 goto errorExit 2048 } 2049 } 2050 2051 case QueryREP, QueryIN, QueryAS, QuerySELECT, QueryFROM, QueryFILTER, QueryAT, QueryIDENT, QuerySTRING: 2052 { 2053 p.SetState(116) 2054 p.Expr() 2055 } 2056 2057 default: 2058 p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil)) 2059 goto errorExit 2060 } 2061 p.GetParserRuleContext().SetStop(p.GetTokenStream().LT(-1)) 2062 p.SetState(127) 2063 p.GetErrorHandler().Sync(p) 2064 if p.HasError() { 2065 goto errorExit 2066 } 2067 _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 16, p.GetParserRuleContext()) 2068 if p.HasError() { 2069 goto errorExit 2070 } 2071 for _alt != 2 && _alt != antlr.ATNInvalidAltNumber { 2072 if _alt == 1 { 2073 if p.GetParseListeners() != nil { 2074 p.TriggerExitRuleEvent() 2075 } 2076 _prevctx = localctx 2077 p.SetState(125) 2078 p.GetErrorHandler().Sync(p) 2079 if p.HasError() { 2080 goto errorExit 2081 } 2082 2083 switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 15, p.GetParserRuleContext()) { 2084 case 1: 2085 localctx = NewFilterExprContext(p, _parentctx, _parentState) 2086 localctx.(*FilterExprContext).F1 = _prevctx 2087 p.PushNewRecursionContext(localctx, _startState, QueryRULE_filterExpr) 2088 p.SetState(119) 2089 2090 if !(p.Precpred(p.GetParserRuleContext(), 4)) { 2091 p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 4)", "")) 2092 goto errorExit 2093 } 2094 { 2095 p.SetState(120) 2096 2097 var _m = p.Match(QueryAND_OP) 2098 2099 localctx.(*FilterExprContext).Op = _m 2100 if p.HasError() { 2101 // Recognition error - abort rule 2102 goto errorExit 2103 } 2104 } 2105 { 2106 p.SetState(121) 2107 2108 var _x = p.filterExpr(5) 2109 2110 localctx.(*FilterExprContext).F2 = _x 2111 } 2112 2113 case 2: 2114 localctx = NewFilterExprContext(p, _parentctx, _parentState) 2115 localctx.(*FilterExprContext).F1 = _prevctx 2116 p.PushNewRecursionContext(localctx, _startState, QueryRULE_filterExpr) 2117 p.SetState(122) 2118 2119 if !(p.Precpred(p.GetParserRuleContext(), 3)) { 2120 p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 3)", "")) 2121 goto errorExit 2122 } 2123 { 2124 p.SetState(123) 2125 2126 var _m = p.Match(QueryOR_OP) 2127 2128 localctx.(*FilterExprContext).Op = _m 2129 if p.HasError() { 2130 // Recognition error - abort rule 2131 goto errorExit 2132 } 2133 } 2134 { 2135 p.SetState(124) 2136 2137 var _x = p.filterExpr(4) 2138 2139 localctx.(*FilterExprContext).F2 = _x 2140 } 2141 2142 case antlr.ATNInvalidAltNumber: 2143 goto errorExit 2144 } 2145 2146 } 2147 p.SetState(129) 2148 p.GetErrorHandler().Sync(p) 2149 if p.HasError() { 2150 goto errorExit 2151 } 2152 _alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 16, p.GetParserRuleContext()) 2153 if p.HasError() { 2154 goto errorExit 2155 } 2156 } 2157 2158 errorExit: 2159 if p.HasError() { 2160 v := p.GetError() 2161 localctx.SetException(v) 2162 p.GetErrorHandler().ReportError(p, v) 2163 p.GetErrorHandler().Recover(p, v) 2164 p.SetError(nil) 2165 } 2166 p.UnrollRecursionContexts(_parentctx) 2167 return localctx 2168 goto errorExit // Trick to prevent compiler error if the label is not used 2169 } 2170 2171 // IFilterStmtContext is an interface to support dynamic dispatch. 2172 type IFilterStmtContext interface { 2173 antlr.ParserRuleContext 2174 2175 // GetParser returns the parser. 2176 GetParser() antlr.Parser 2177 2178 // GetExpr returns the Expr rule contexts. 2179 GetExpr() IFilterExprContext 2180 2181 // GetName returns the Name rule contexts. 2182 GetName() IIdentContext 2183 2184 // SetExpr sets the Expr rule contexts. 2185 SetExpr(IFilterExprContext) 2186 2187 // SetName sets the Name rule contexts. 2188 SetName(IIdentContext) 2189 2190 // Getter signatures 2191 FILTER() antlr.TerminalNode 2192 AS() antlr.TerminalNode 2193 FilterExpr() IFilterExprContext 2194 Ident() IIdentContext 2195 2196 // IsFilterStmtContext differentiates from other interfaces. 2197 IsFilterStmtContext() 2198 } 2199 2200 type FilterStmtContext struct { 2201 antlr.BaseParserRuleContext 2202 parser antlr.Parser 2203 Expr IFilterExprContext 2204 Name IIdentContext 2205 } 2206 2207 func NewEmptyFilterStmtContext() *FilterStmtContext { 2208 var p = new(FilterStmtContext) 2209 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 2210 p.RuleIndex = QueryRULE_filterStmt 2211 return p 2212 } 2213 2214 func InitEmptyFilterStmtContext(p *FilterStmtContext) { 2215 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 2216 p.RuleIndex = QueryRULE_filterStmt 2217 } 2218 2219 func (*FilterStmtContext) IsFilterStmtContext() {} 2220 2221 func NewFilterStmtContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *FilterStmtContext { 2222 var p = new(FilterStmtContext) 2223 2224 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 2225 2226 p.parser = parser 2227 p.RuleIndex = QueryRULE_filterStmt 2228 2229 return p 2230 } 2231 2232 func (s *FilterStmtContext) GetParser() antlr.Parser { return s.parser } 2233 2234 func (s *FilterStmtContext) GetExpr() IFilterExprContext { return s.Expr } 2235 2236 func (s *FilterStmtContext) GetName() IIdentContext { return s.Name } 2237 2238 func (s *FilterStmtContext) SetExpr(v IFilterExprContext) { s.Expr = v } 2239 2240 func (s *FilterStmtContext) SetName(v IIdentContext) { s.Name = v } 2241 2242 func (s *FilterStmtContext) FILTER() antlr.TerminalNode { 2243 return s.GetToken(QueryFILTER, 0) 2244 } 2245 2246 func (s *FilterStmtContext) AS() antlr.TerminalNode { 2247 return s.GetToken(QueryAS, 0) 2248 } 2249 2250 func (s *FilterStmtContext) FilterExpr() IFilterExprContext { 2251 var t antlr.RuleContext 2252 for _, ctx := range s.GetChildren() { 2253 if _, ok := ctx.(IFilterExprContext); ok { 2254 t = ctx.(antlr.RuleContext) 2255 break 2256 } 2257 } 2258 2259 if t == nil { 2260 return nil 2261 } 2262 2263 return t.(IFilterExprContext) 2264 } 2265 2266 func (s *FilterStmtContext) Ident() IIdentContext { 2267 var t antlr.RuleContext 2268 for _, ctx := range s.GetChildren() { 2269 if _, ok := ctx.(IIdentContext); ok { 2270 t = ctx.(antlr.RuleContext) 2271 break 2272 } 2273 } 2274 2275 if t == nil { 2276 return nil 2277 } 2278 2279 return t.(IIdentContext) 2280 } 2281 2282 func (s *FilterStmtContext) GetRuleContext() antlr.RuleContext { 2283 return s 2284 } 2285 2286 func (s *FilterStmtContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 2287 return antlr.TreesStringTree(s, ruleNames, recog) 2288 } 2289 2290 func (s *FilterStmtContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 2291 switch t := visitor.(type) { 2292 case QueryVisitor: 2293 return t.VisitFilterStmt(s) 2294 2295 default: 2296 return t.VisitChildren(s) 2297 } 2298 } 2299 2300 func (p *Query) FilterStmt() (localctx IFilterStmtContext) { 2301 localctx = NewFilterStmtContext(p, p.GetParserRuleContext(), p.GetState()) 2302 p.EnterRule(localctx, 16, QueryRULE_filterStmt) 2303 p.EnterOuterAlt(localctx, 1) 2304 { 2305 p.SetState(130) 2306 p.Match(QueryFILTER) 2307 if p.HasError() { 2308 // Recognition error - abort rule 2309 goto errorExit 2310 } 2311 } 2312 { 2313 p.SetState(131) 2314 2315 var _x = p.filterExpr(0) 2316 2317 localctx.(*FilterStmtContext).Expr = _x 2318 } 2319 { 2320 p.SetState(132) 2321 p.Match(QueryAS) 2322 if p.HasError() { 2323 // Recognition error - abort rule 2324 goto errorExit 2325 } 2326 } 2327 { 2328 p.SetState(133) 2329 2330 var _x = p.Ident() 2331 2332 localctx.(*FilterStmtContext).Name = _x 2333 } 2334 2335 errorExit: 2336 if p.HasError() { 2337 v := p.GetError() 2338 localctx.SetException(v) 2339 p.GetErrorHandler().ReportError(p, v) 2340 p.GetErrorHandler().Recover(p, v) 2341 p.SetError(nil) 2342 } 2343 p.ExitRule() 2344 return localctx 2345 goto errorExit // Trick to prevent compiler error if the label is not used 2346 } 2347 2348 // IExprContext is an interface to support dynamic dispatch. 2349 type IExprContext interface { 2350 antlr.ParserRuleContext 2351 2352 // GetParser returns the parser. 2353 GetParser() antlr.Parser 2354 2355 // GetFilter returns the Filter rule contexts. 2356 GetFilter() IIdentContext 2357 2358 // GetKey returns the Key rule contexts. 2359 GetKey() IFilterKeyContext 2360 2361 // GetValue returns the Value rule contexts. 2362 GetValue() IFilterValueContext 2363 2364 // SetFilter sets the Filter rule contexts. 2365 SetFilter(IIdentContext) 2366 2367 // SetKey sets the Key rule contexts. 2368 SetKey(IFilterKeyContext) 2369 2370 // SetValue sets the Value rule contexts. 2371 SetValue(IFilterValueContext) 2372 2373 // Getter signatures 2374 AT() antlr.TerminalNode 2375 Ident() IIdentContext 2376 SIMPLE_OP() antlr.TerminalNode 2377 FilterKey() IFilterKeyContext 2378 FilterValue() IFilterValueContext 2379 2380 // IsExprContext differentiates from other interfaces. 2381 IsExprContext() 2382 } 2383 2384 type ExprContext struct { 2385 antlr.BaseParserRuleContext 2386 parser antlr.Parser 2387 Filter IIdentContext 2388 Key IFilterKeyContext 2389 Value IFilterValueContext 2390 } 2391 2392 func NewEmptyExprContext() *ExprContext { 2393 var p = new(ExprContext) 2394 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 2395 p.RuleIndex = QueryRULE_expr 2396 return p 2397 } 2398 2399 func InitEmptyExprContext(p *ExprContext) { 2400 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 2401 p.RuleIndex = QueryRULE_expr 2402 } 2403 2404 func (*ExprContext) IsExprContext() {} 2405 2406 func NewExprContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ExprContext { 2407 var p = new(ExprContext) 2408 2409 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 2410 2411 p.parser = parser 2412 p.RuleIndex = QueryRULE_expr 2413 2414 return p 2415 } 2416 2417 func (s *ExprContext) GetParser() antlr.Parser { return s.parser } 2418 2419 func (s *ExprContext) GetFilter() IIdentContext { return s.Filter } 2420 2421 func (s *ExprContext) GetKey() IFilterKeyContext { return s.Key } 2422 2423 func (s *ExprContext) GetValue() IFilterValueContext { return s.Value } 2424 2425 func (s *ExprContext) SetFilter(v IIdentContext) { s.Filter = v } 2426 2427 func (s *ExprContext) SetKey(v IFilterKeyContext) { s.Key = v } 2428 2429 func (s *ExprContext) SetValue(v IFilterValueContext) { s.Value = v } 2430 2431 func (s *ExprContext) AT() antlr.TerminalNode { 2432 return s.GetToken(QueryAT, 0) 2433 } 2434 2435 func (s *ExprContext) Ident() IIdentContext { 2436 var t antlr.RuleContext 2437 for _, ctx := range s.GetChildren() { 2438 if _, ok := ctx.(IIdentContext); ok { 2439 t = ctx.(antlr.RuleContext) 2440 break 2441 } 2442 } 2443 2444 if t == nil { 2445 return nil 2446 } 2447 2448 return t.(IIdentContext) 2449 } 2450 2451 func (s *ExprContext) SIMPLE_OP() antlr.TerminalNode { 2452 return s.GetToken(QuerySIMPLE_OP, 0) 2453 } 2454 2455 func (s *ExprContext) FilterKey() IFilterKeyContext { 2456 var t antlr.RuleContext 2457 for _, ctx := range s.GetChildren() { 2458 if _, ok := ctx.(IFilterKeyContext); ok { 2459 t = ctx.(antlr.RuleContext) 2460 break 2461 } 2462 } 2463 2464 if t == nil { 2465 return nil 2466 } 2467 2468 return t.(IFilterKeyContext) 2469 } 2470 2471 func (s *ExprContext) FilterValue() IFilterValueContext { 2472 var t antlr.RuleContext 2473 for _, ctx := range s.GetChildren() { 2474 if _, ok := ctx.(IFilterValueContext); ok { 2475 t = ctx.(antlr.RuleContext) 2476 break 2477 } 2478 } 2479 2480 if t == nil { 2481 return nil 2482 } 2483 2484 return t.(IFilterValueContext) 2485 } 2486 2487 func (s *ExprContext) GetRuleContext() antlr.RuleContext { 2488 return s 2489 } 2490 2491 func (s *ExprContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 2492 return antlr.TreesStringTree(s, ruleNames, recog) 2493 } 2494 2495 func (s *ExprContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 2496 switch t := visitor.(type) { 2497 case QueryVisitor: 2498 return t.VisitExpr(s) 2499 2500 default: 2501 return t.VisitChildren(s) 2502 } 2503 } 2504 2505 func (p *Query) Expr() (localctx IExprContext) { 2506 localctx = NewExprContext(p, p.GetParserRuleContext(), p.GetState()) 2507 p.EnterRule(localctx, 18, QueryRULE_expr) 2508 p.SetState(141) 2509 p.GetErrorHandler().Sync(p) 2510 if p.HasError() { 2511 goto errorExit 2512 } 2513 2514 switch p.GetTokenStream().LA(1) { 2515 case QueryAT: 2516 p.EnterOuterAlt(localctx, 1) 2517 { 2518 p.SetState(135) 2519 p.Match(QueryAT) 2520 if p.HasError() { 2521 // Recognition error - abort rule 2522 goto errorExit 2523 } 2524 } 2525 { 2526 p.SetState(136) 2527 2528 var _x = p.Ident() 2529 2530 localctx.(*ExprContext).Filter = _x 2531 } 2532 2533 case QueryREP, QueryIN, QueryAS, QuerySELECT, QueryFROM, QueryFILTER, QueryIDENT, QuerySTRING: 2534 p.EnterOuterAlt(localctx, 2) 2535 { 2536 p.SetState(137) 2537 2538 var _x = p.FilterKey() 2539 2540 localctx.(*ExprContext).Key = _x 2541 } 2542 { 2543 p.SetState(138) 2544 p.Match(QuerySIMPLE_OP) 2545 if p.HasError() { 2546 // Recognition error - abort rule 2547 goto errorExit 2548 } 2549 } 2550 { 2551 p.SetState(139) 2552 2553 var _x = p.FilterValue() 2554 2555 localctx.(*ExprContext).Value = _x 2556 } 2557 2558 default: 2559 p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil)) 2560 goto errorExit 2561 } 2562 2563 errorExit: 2564 if p.HasError() { 2565 v := p.GetError() 2566 localctx.SetException(v) 2567 p.GetErrorHandler().ReportError(p, v) 2568 p.GetErrorHandler().Recover(p, v) 2569 p.SetError(nil) 2570 } 2571 p.ExitRule() 2572 return localctx 2573 goto errorExit // Trick to prevent compiler error if the label is not used 2574 } 2575 2576 // IFilterKeyContext is an interface to support dynamic dispatch. 2577 type IFilterKeyContext interface { 2578 antlr.ParserRuleContext 2579 2580 // GetParser returns the parser. 2581 GetParser() antlr.Parser 2582 2583 // Getter signatures 2584 Ident() IIdentContext 2585 STRING() antlr.TerminalNode 2586 2587 // IsFilterKeyContext differentiates from other interfaces. 2588 IsFilterKeyContext() 2589 } 2590 2591 type FilterKeyContext struct { 2592 antlr.BaseParserRuleContext 2593 parser antlr.Parser 2594 } 2595 2596 func NewEmptyFilterKeyContext() *FilterKeyContext { 2597 var p = new(FilterKeyContext) 2598 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 2599 p.RuleIndex = QueryRULE_filterKey 2600 return p 2601 } 2602 2603 func InitEmptyFilterKeyContext(p *FilterKeyContext) { 2604 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 2605 p.RuleIndex = QueryRULE_filterKey 2606 } 2607 2608 func (*FilterKeyContext) IsFilterKeyContext() {} 2609 2610 func NewFilterKeyContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *FilterKeyContext { 2611 var p = new(FilterKeyContext) 2612 2613 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 2614 2615 p.parser = parser 2616 p.RuleIndex = QueryRULE_filterKey 2617 2618 return p 2619 } 2620 2621 func (s *FilterKeyContext) GetParser() antlr.Parser { return s.parser } 2622 2623 func (s *FilterKeyContext) Ident() IIdentContext { 2624 var t antlr.RuleContext 2625 for _, ctx := range s.GetChildren() { 2626 if _, ok := ctx.(IIdentContext); ok { 2627 t = ctx.(antlr.RuleContext) 2628 break 2629 } 2630 } 2631 2632 if t == nil { 2633 return nil 2634 } 2635 2636 return t.(IIdentContext) 2637 } 2638 2639 func (s *FilterKeyContext) STRING() antlr.TerminalNode { 2640 return s.GetToken(QuerySTRING, 0) 2641 } 2642 2643 func (s *FilterKeyContext) GetRuleContext() antlr.RuleContext { 2644 return s 2645 } 2646 2647 func (s *FilterKeyContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 2648 return antlr.TreesStringTree(s, ruleNames, recog) 2649 } 2650 2651 func (s *FilterKeyContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 2652 switch t := visitor.(type) { 2653 case QueryVisitor: 2654 return t.VisitFilterKey(s) 2655 2656 default: 2657 return t.VisitChildren(s) 2658 } 2659 } 2660 2661 func (p *Query) FilterKey() (localctx IFilterKeyContext) { 2662 localctx = NewFilterKeyContext(p, p.GetParserRuleContext(), p.GetState()) 2663 p.EnterRule(localctx, 20, QueryRULE_filterKey) 2664 p.SetState(145) 2665 p.GetErrorHandler().Sync(p) 2666 if p.HasError() { 2667 goto errorExit 2668 } 2669 2670 switch p.GetTokenStream().LA(1) { 2671 case QueryREP, QueryIN, QueryAS, QuerySELECT, QueryFROM, QueryFILTER, QueryIDENT: 2672 p.EnterOuterAlt(localctx, 1) 2673 { 2674 p.SetState(143) 2675 p.Ident() 2676 } 2677 2678 case QuerySTRING: 2679 p.EnterOuterAlt(localctx, 2) 2680 { 2681 p.SetState(144) 2682 p.Match(QuerySTRING) 2683 if p.HasError() { 2684 // Recognition error - abort rule 2685 goto errorExit 2686 } 2687 } 2688 2689 default: 2690 p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil)) 2691 goto errorExit 2692 } 2693 2694 errorExit: 2695 if p.HasError() { 2696 v := p.GetError() 2697 localctx.SetException(v) 2698 p.GetErrorHandler().ReportError(p, v) 2699 p.GetErrorHandler().Recover(p, v) 2700 p.SetError(nil) 2701 } 2702 p.ExitRule() 2703 return localctx 2704 goto errorExit // Trick to prevent compiler error if the label is not used 2705 } 2706 2707 // IFilterValueContext is an interface to support dynamic dispatch. 2708 type IFilterValueContext interface { 2709 antlr.ParserRuleContext 2710 2711 // GetParser returns the parser. 2712 GetParser() antlr.Parser 2713 2714 // Getter signatures 2715 Ident() IIdentContext 2716 Number() INumberContext 2717 STRING() antlr.TerminalNode 2718 2719 // IsFilterValueContext differentiates from other interfaces. 2720 IsFilterValueContext() 2721 } 2722 2723 type FilterValueContext struct { 2724 antlr.BaseParserRuleContext 2725 parser antlr.Parser 2726 } 2727 2728 func NewEmptyFilterValueContext() *FilterValueContext { 2729 var p = new(FilterValueContext) 2730 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 2731 p.RuleIndex = QueryRULE_filterValue 2732 return p 2733 } 2734 2735 func InitEmptyFilterValueContext(p *FilterValueContext) { 2736 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 2737 p.RuleIndex = QueryRULE_filterValue 2738 } 2739 2740 func (*FilterValueContext) IsFilterValueContext() {} 2741 2742 func NewFilterValueContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *FilterValueContext { 2743 var p = new(FilterValueContext) 2744 2745 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 2746 2747 p.parser = parser 2748 p.RuleIndex = QueryRULE_filterValue 2749 2750 return p 2751 } 2752 2753 func (s *FilterValueContext) GetParser() antlr.Parser { return s.parser } 2754 2755 func (s *FilterValueContext) Ident() IIdentContext { 2756 var t antlr.RuleContext 2757 for _, ctx := range s.GetChildren() { 2758 if _, ok := ctx.(IIdentContext); ok { 2759 t = ctx.(antlr.RuleContext) 2760 break 2761 } 2762 } 2763 2764 if t == nil { 2765 return nil 2766 } 2767 2768 return t.(IIdentContext) 2769 } 2770 2771 func (s *FilterValueContext) Number() INumberContext { 2772 var t antlr.RuleContext 2773 for _, ctx := range s.GetChildren() { 2774 if _, ok := ctx.(INumberContext); ok { 2775 t = ctx.(antlr.RuleContext) 2776 break 2777 } 2778 } 2779 2780 if t == nil { 2781 return nil 2782 } 2783 2784 return t.(INumberContext) 2785 } 2786 2787 func (s *FilterValueContext) STRING() antlr.TerminalNode { 2788 return s.GetToken(QuerySTRING, 0) 2789 } 2790 2791 func (s *FilterValueContext) GetRuleContext() antlr.RuleContext { 2792 return s 2793 } 2794 2795 func (s *FilterValueContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 2796 return antlr.TreesStringTree(s, ruleNames, recog) 2797 } 2798 2799 func (s *FilterValueContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 2800 switch t := visitor.(type) { 2801 case QueryVisitor: 2802 return t.VisitFilterValue(s) 2803 2804 default: 2805 return t.VisitChildren(s) 2806 } 2807 } 2808 2809 func (p *Query) FilterValue() (localctx IFilterValueContext) { 2810 localctx = NewFilterValueContext(p, p.GetParserRuleContext(), p.GetState()) 2811 p.EnterRule(localctx, 22, QueryRULE_filterValue) 2812 p.SetState(150) 2813 p.GetErrorHandler().Sync(p) 2814 if p.HasError() { 2815 goto errorExit 2816 } 2817 2818 switch p.GetTokenStream().LA(1) { 2819 case QueryREP, QueryIN, QueryAS, QuerySELECT, QueryFROM, QueryFILTER, QueryIDENT: 2820 p.EnterOuterAlt(localctx, 1) 2821 { 2822 p.SetState(147) 2823 p.Ident() 2824 } 2825 2826 case QueryNUMBER1, QueryZERO: 2827 p.EnterOuterAlt(localctx, 2) 2828 { 2829 p.SetState(148) 2830 p.Number() 2831 } 2832 2833 case QuerySTRING: 2834 p.EnterOuterAlt(localctx, 3) 2835 { 2836 p.SetState(149) 2837 p.Match(QuerySTRING) 2838 if p.HasError() { 2839 // Recognition error - abort rule 2840 goto errorExit 2841 } 2842 } 2843 2844 default: 2845 p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil)) 2846 goto errorExit 2847 } 2848 2849 errorExit: 2850 if p.HasError() { 2851 v := p.GetError() 2852 localctx.SetException(v) 2853 p.GetErrorHandler().ReportError(p, v) 2854 p.GetErrorHandler().Recover(p, v) 2855 p.SetError(nil) 2856 } 2857 p.ExitRule() 2858 return localctx 2859 goto errorExit // Trick to prevent compiler error if the label is not used 2860 } 2861 2862 // INumberContext is an interface to support dynamic dispatch. 2863 type INumberContext interface { 2864 antlr.ParserRuleContext 2865 2866 // GetParser returns the parser. 2867 GetParser() antlr.Parser 2868 2869 // Getter signatures 2870 ZERO() antlr.TerminalNode 2871 NUMBER1() antlr.TerminalNode 2872 2873 // IsNumberContext differentiates from other interfaces. 2874 IsNumberContext() 2875 } 2876 2877 type NumberContext struct { 2878 antlr.BaseParserRuleContext 2879 parser antlr.Parser 2880 } 2881 2882 func NewEmptyNumberContext() *NumberContext { 2883 var p = new(NumberContext) 2884 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 2885 p.RuleIndex = QueryRULE_number 2886 return p 2887 } 2888 2889 func InitEmptyNumberContext(p *NumberContext) { 2890 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 2891 p.RuleIndex = QueryRULE_number 2892 } 2893 2894 func (*NumberContext) IsNumberContext() {} 2895 2896 func NewNumberContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *NumberContext { 2897 var p = new(NumberContext) 2898 2899 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 2900 2901 p.parser = parser 2902 p.RuleIndex = QueryRULE_number 2903 2904 return p 2905 } 2906 2907 func (s *NumberContext) GetParser() antlr.Parser { return s.parser } 2908 2909 func (s *NumberContext) ZERO() antlr.TerminalNode { 2910 return s.GetToken(QueryZERO, 0) 2911 } 2912 2913 func (s *NumberContext) NUMBER1() antlr.TerminalNode { 2914 return s.GetToken(QueryNUMBER1, 0) 2915 } 2916 2917 func (s *NumberContext) GetRuleContext() antlr.RuleContext { 2918 return s 2919 } 2920 2921 func (s *NumberContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 2922 return antlr.TreesStringTree(s, ruleNames, recog) 2923 } 2924 2925 func (s *NumberContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 2926 switch t := visitor.(type) { 2927 case QueryVisitor: 2928 return t.VisitNumber(s) 2929 2930 default: 2931 return t.VisitChildren(s) 2932 } 2933 } 2934 2935 func (p *Query) Number() (localctx INumberContext) { 2936 localctx = NewNumberContext(p, p.GetParserRuleContext(), p.GetState()) 2937 p.EnterRule(localctx, 24, QueryRULE_number) 2938 var _la int 2939 2940 p.EnterOuterAlt(localctx, 1) 2941 { 2942 p.SetState(152) 2943 _la = p.GetTokenStream().LA(1) 2944 2945 if !(_la == QueryNUMBER1 || _la == QueryZERO) { 2946 p.GetErrorHandler().RecoverInline(p) 2947 } else { 2948 p.GetErrorHandler().ReportMatch(p) 2949 p.Consume() 2950 } 2951 } 2952 2953 errorExit: 2954 if p.HasError() { 2955 v := p.GetError() 2956 localctx.SetException(v) 2957 p.GetErrorHandler().ReportError(p, v) 2958 p.GetErrorHandler().Recover(p, v) 2959 p.SetError(nil) 2960 } 2961 p.ExitRule() 2962 return localctx 2963 goto errorExit // Trick to prevent compiler error if the label is not used 2964 } 2965 2966 // IKeywordContext is an interface to support dynamic dispatch. 2967 type IKeywordContext interface { 2968 antlr.ParserRuleContext 2969 2970 // GetParser returns the parser. 2971 GetParser() antlr.Parser 2972 2973 // Getter signatures 2974 REP() antlr.TerminalNode 2975 IN() antlr.TerminalNode 2976 AS() antlr.TerminalNode 2977 SELECT() antlr.TerminalNode 2978 FROM() antlr.TerminalNode 2979 FILTER() antlr.TerminalNode 2980 2981 // IsKeywordContext differentiates from other interfaces. 2982 IsKeywordContext() 2983 } 2984 2985 type KeywordContext struct { 2986 antlr.BaseParserRuleContext 2987 parser antlr.Parser 2988 } 2989 2990 func NewEmptyKeywordContext() *KeywordContext { 2991 var p = new(KeywordContext) 2992 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 2993 p.RuleIndex = QueryRULE_keyword 2994 return p 2995 } 2996 2997 func InitEmptyKeywordContext(p *KeywordContext) { 2998 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 2999 p.RuleIndex = QueryRULE_keyword 3000 } 3001 3002 func (*KeywordContext) IsKeywordContext() {} 3003 3004 func NewKeywordContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *KeywordContext { 3005 var p = new(KeywordContext) 3006 3007 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 3008 3009 p.parser = parser 3010 p.RuleIndex = QueryRULE_keyword 3011 3012 return p 3013 } 3014 3015 func (s *KeywordContext) GetParser() antlr.Parser { return s.parser } 3016 3017 func (s *KeywordContext) REP() antlr.TerminalNode { 3018 return s.GetToken(QueryREP, 0) 3019 } 3020 3021 func (s *KeywordContext) IN() antlr.TerminalNode { 3022 return s.GetToken(QueryIN, 0) 3023 } 3024 3025 func (s *KeywordContext) AS() antlr.TerminalNode { 3026 return s.GetToken(QueryAS, 0) 3027 } 3028 3029 func (s *KeywordContext) SELECT() antlr.TerminalNode { 3030 return s.GetToken(QuerySELECT, 0) 3031 } 3032 3033 func (s *KeywordContext) FROM() antlr.TerminalNode { 3034 return s.GetToken(QueryFROM, 0) 3035 } 3036 3037 func (s *KeywordContext) FILTER() antlr.TerminalNode { 3038 return s.GetToken(QueryFILTER, 0) 3039 } 3040 3041 func (s *KeywordContext) GetRuleContext() antlr.RuleContext { 3042 return s 3043 } 3044 3045 func (s *KeywordContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 3046 return antlr.TreesStringTree(s, ruleNames, recog) 3047 } 3048 3049 func (s *KeywordContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 3050 switch t := visitor.(type) { 3051 case QueryVisitor: 3052 return t.VisitKeyword(s) 3053 3054 default: 3055 return t.VisitChildren(s) 3056 } 3057 } 3058 3059 func (p *Query) Keyword() (localctx IKeywordContext) { 3060 localctx = NewKeywordContext(p, p.GetParserRuleContext(), p.GetState()) 3061 p.EnterRule(localctx, 26, QueryRULE_keyword) 3062 var _la int 3063 3064 p.EnterOuterAlt(localctx, 1) 3065 { 3066 p.SetState(154) 3067 _la = p.GetTokenStream().LA(1) 3068 3069 if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&15168) != 0) { 3070 p.GetErrorHandler().RecoverInline(p) 3071 } else { 3072 p.GetErrorHandler().ReportMatch(p) 3073 p.Consume() 3074 } 3075 } 3076 3077 errorExit: 3078 if p.HasError() { 3079 v := p.GetError() 3080 localctx.SetException(v) 3081 p.GetErrorHandler().ReportError(p, v) 3082 p.GetErrorHandler().Recover(p, v) 3083 p.SetError(nil) 3084 } 3085 p.ExitRule() 3086 return localctx 3087 goto errorExit // Trick to prevent compiler error if the label is not used 3088 } 3089 3090 // IIdentContext is an interface to support dynamic dispatch. 3091 type IIdentContext interface { 3092 antlr.ParserRuleContext 3093 3094 // GetParser returns the parser. 3095 GetParser() antlr.Parser 3096 3097 // Getter signatures 3098 Keyword() IKeywordContext 3099 IDENT() antlr.TerminalNode 3100 3101 // IsIdentContext differentiates from other interfaces. 3102 IsIdentContext() 3103 } 3104 3105 type IdentContext struct { 3106 antlr.BaseParserRuleContext 3107 parser antlr.Parser 3108 } 3109 3110 func NewEmptyIdentContext() *IdentContext { 3111 var p = new(IdentContext) 3112 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 3113 p.RuleIndex = QueryRULE_ident 3114 return p 3115 } 3116 3117 func InitEmptyIdentContext(p *IdentContext) { 3118 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 3119 p.RuleIndex = QueryRULE_ident 3120 } 3121 3122 func (*IdentContext) IsIdentContext() {} 3123 3124 func NewIdentContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *IdentContext { 3125 var p = new(IdentContext) 3126 3127 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 3128 3129 p.parser = parser 3130 p.RuleIndex = QueryRULE_ident 3131 3132 return p 3133 } 3134 3135 func (s *IdentContext) GetParser() antlr.Parser { return s.parser } 3136 3137 func (s *IdentContext) Keyword() IKeywordContext { 3138 var t antlr.RuleContext 3139 for _, ctx := range s.GetChildren() { 3140 if _, ok := ctx.(IKeywordContext); ok { 3141 t = ctx.(antlr.RuleContext) 3142 break 3143 } 3144 } 3145 3146 if t == nil { 3147 return nil 3148 } 3149 3150 return t.(IKeywordContext) 3151 } 3152 3153 func (s *IdentContext) IDENT() antlr.TerminalNode { 3154 return s.GetToken(QueryIDENT, 0) 3155 } 3156 3157 func (s *IdentContext) GetRuleContext() antlr.RuleContext { 3158 return s 3159 } 3160 3161 func (s *IdentContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 3162 return antlr.TreesStringTree(s, ruleNames, recog) 3163 } 3164 3165 func (s *IdentContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 3166 switch t := visitor.(type) { 3167 case QueryVisitor: 3168 return t.VisitIdent(s) 3169 3170 default: 3171 return t.VisitChildren(s) 3172 } 3173 } 3174 3175 func (p *Query) Ident() (localctx IIdentContext) { 3176 localctx = NewIdentContext(p, p.GetParserRuleContext(), p.GetState()) 3177 p.EnterRule(localctx, 28, QueryRULE_ident) 3178 p.SetState(158) 3179 p.GetErrorHandler().Sync(p) 3180 if p.HasError() { 3181 goto errorExit 3182 } 3183 3184 switch p.GetTokenStream().LA(1) { 3185 case QueryREP, QueryIN, QueryAS, QuerySELECT, QueryFROM, QueryFILTER: 3186 p.EnterOuterAlt(localctx, 1) 3187 { 3188 p.SetState(156) 3189 p.Keyword() 3190 } 3191 3192 case QueryIDENT: 3193 p.EnterOuterAlt(localctx, 2) 3194 { 3195 p.SetState(157) 3196 p.Match(QueryIDENT) 3197 if p.HasError() { 3198 // Recognition error - abort rule 3199 goto errorExit 3200 } 3201 } 3202 3203 default: 3204 p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil)) 3205 goto errorExit 3206 } 3207 3208 errorExit: 3209 if p.HasError() { 3210 v := p.GetError() 3211 localctx.SetException(v) 3212 p.GetErrorHandler().ReportError(p, v) 3213 p.GetErrorHandler().Recover(p, v) 3214 p.SetError(nil) 3215 } 3216 p.ExitRule() 3217 return localctx 3218 goto errorExit // Trick to prevent compiler error if the label is not used 3219 } 3220 3221 // IIdentWCContext is an interface to support dynamic dispatch. 3222 type IIdentWCContext interface { 3223 antlr.ParserRuleContext 3224 3225 // GetParser returns the parser. 3226 GetParser() antlr.Parser 3227 3228 // Getter signatures 3229 Ident() IIdentContext 3230 WILDCARD() antlr.TerminalNode 3231 3232 // IsIdentWCContext differentiates from other interfaces. 3233 IsIdentWCContext() 3234 } 3235 3236 type IdentWCContext struct { 3237 antlr.BaseParserRuleContext 3238 parser antlr.Parser 3239 } 3240 3241 func NewEmptyIdentWCContext() *IdentWCContext { 3242 var p = new(IdentWCContext) 3243 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 3244 p.RuleIndex = QueryRULE_identWC 3245 return p 3246 } 3247 3248 func InitEmptyIdentWCContext(p *IdentWCContext) { 3249 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) 3250 p.RuleIndex = QueryRULE_identWC 3251 } 3252 3253 func (*IdentWCContext) IsIdentWCContext() {} 3254 3255 func NewIdentWCContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *IdentWCContext { 3256 var p = new(IdentWCContext) 3257 3258 antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) 3259 3260 p.parser = parser 3261 p.RuleIndex = QueryRULE_identWC 3262 3263 return p 3264 } 3265 3266 func (s *IdentWCContext) GetParser() antlr.Parser { return s.parser } 3267 3268 func (s *IdentWCContext) Ident() IIdentContext { 3269 var t antlr.RuleContext 3270 for _, ctx := range s.GetChildren() { 3271 if _, ok := ctx.(IIdentContext); ok { 3272 t = ctx.(antlr.RuleContext) 3273 break 3274 } 3275 } 3276 3277 if t == nil { 3278 return nil 3279 } 3280 3281 return t.(IIdentContext) 3282 } 3283 3284 func (s *IdentWCContext) WILDCARD() antlr.TerminalNode { 3285 return s.GetToken(QueryWILDCARD, 0) 3286 } 3287 3288 func (s *IdentWCContext) GetRuleContext() antlr.RuleContext { 3289 return s 3290 } 3291 3292 func (s *IdentWCContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { 3293 return antlr.TreesStringTree(s, ruleNames, recog) 3294 } 3295 3296 func (s *IdentWCContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { 3297 switch t := visitor.(type) { 3298 case QueryVisitor: 3299 return t.VisitIdentWC(s) 3300 3301 default: 3302 return t.VisitChildren(s) 3303 } 3304 } 3305 3306 func (p *Query) IdentWC() (localctx IIdentWCContext) { 3307 localctx = NewIdentWCContext(p, p.GetParserRuleContext(), p.GetState()) 3308 p.EnterRule(localctx, 30, QueryRULE_identWC) 3309 p.SetState(162) 3310 p.GetErrorHandler().Sync(p) 3311 if p.HasError() { 3312 goto errorExit 3313 } 3314 3315 switch p.GetTokenStream().LA(1) { 3316 case QueryREP, QueryIN, QueryAS, QuerySELECT, QueryFROM, QueryFILTER, QueryIDENT: 3317 p.EnterOuterAlt(localctx, 1) 3318 { 3319 p.SetState(160) 3320 p.Ident() 3321 } 3322 3323 case QueryWILDCARD: 3324 p.EnterOuterAlt(localctx, 2) 3325 { 3326 p.SetState(161) 3327 p.Match(QueryWILDCARD) 3328 if p.HasError() { 3329 // Recognition error - abort rule 3330 goto errorExit 3331 } 3332 } 3333 3334 default: 3335 p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil)) 3336 goto errorExit 3337 } 3338 3339 errorExit: 3340 if p.HasError() { 3341 v := p.GetError() 3342 localctx.SetException(v) 3343 p.GetErrorHandler().ReportError(p, v) 3344 p.GetErrorHandler().Recover(p, v) 3345 p.SetError(nil) 3346 } 3347 p.ExitRule() 3348 return localctx 3349 goto errorExit // Trick to prevent compiler error if the label is not used 3350 } 3351 3352 func (p *Query) Sempred(localctx antlr.RuleContext, ruleIndex, predIndex int) bool { 3353 switch ruleIndex { 3354 case 7: 3355 var t *FilterExprContext = nil 3356 if localctx != nil { 3357 t = localctx.(*FilterExprContext) 3358 } 3359 return p.FilterExpr_Sempred(t, predIndex) 3360 3361 default: 3362 panic("No predicate with index: " + fmt.Sprint(ruleIndex)) 3363 } 3364 } 3365 3366 func (p *Query) FilterExpr_Sempred(localctx antlr.RuleContext, predIndex int) bool { 3367 switch predIndex { 3368 case 0: 3369 return p.Precpred(p.GetParserRuleContext(), 4) 3370 3371 case 1: 3372 return p.Precpred(p.GetParserRuleContext(), 3) 3373 3374 default: 3375 panic("No predicate with index: " + fmt.Sprint(predIndex)) 3376 } 3377 }