sq/libsq/ast/internal/slq/slq_parser.go

5518 lines
129 KiB
Go
Raw Normal View History

// Code generated from SLQ.g4 by ANTLR 4.13.0. DO NOT EDIT.
2016-10-17 07:14:01 +03:00
package slq // SLQ
import (
"fmt"
"strconv"
"sync"
2016-10-17 07:14:01 +03:00
"github.com/antlr4-go/antlr/v4"
2016-10-17 07:14:01 +03:00
)
2016-10-31 01:35:56 +03:00
// Suppress unused import errors
2016-10-17 07:14:01 +03:00
var _ = fmt.Printf
var _ = strconv.Itoa
var _ = sync.Once{}
2016-10-17 07:14:01 +03:00
type SLQParser struct {
*antlr.BaseParser
}
var SLQParserStaticData struct {
PredictionContextCache *antlr.PredictionContextCache
atn *antlr.ATN
serializedATN []int32
LiteralNames []string
SymbolicNames []string
RuleNames []string
decisionToDFA []*antlr.DFA
once sync.Once
}
func slqParserInit() {
staticData := &SLQParserStaticData
staticData.LiteralNames = []string{
"", "';'", "'*'", "'sum'", "'avg'", "'max'", "'min'", "'schema'", "'catalog'",
"'rownum'", "'unique'", "'uniq'", "'count'", "'+'", "'-'", "'.['", "'||'",
"'/'", "'%'", "'<<'", "'>>'", "'&'", "'&&'", "'~'", "'!'", "", "", "",
"", "'having'", "", "", "", "'null'", "", "", "'('", "')'", "'['", "']'",
"','", "'|'", "':'", "", "", "'<='", "'<'", "'>='", "'>'", "'!='", "'=='",
}
staticData.SymbolicNames = []string{
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "PROPRIETARY_FUNC_NAME", "JOIN_TYPE",
"WHERE", "GROUP_BY", "HAVING", "ORDER_BY", "ALIAS_RESERVED", "ARG",
"NULL", "ID", "WS", "LPAR", "RPAR", "LBRA", "RBRA", "COMMA", "PIPE",
"COLON", "NN", "NUMBER", "LT_EQ", "LT", "GT_EQ", "GT", "NEQ", "EQ",
"NAME", "HANDLE", "STRING", "LINECOMMENT",
}
staticData.RuleNames = []string{
"stmtList", "query", "segment", "element", "funcElement", "func", "funcName",
"join", "joinTable", "uniqueFunc", "countFunc", "where", "groupByTerm",
"groupBy", "having", "orderByTerm", "orderBy", "selector", "selectorElement",
"alias", "arg", "handleTable", "handle", "rowRange", "exprElement",
"expr", "literal", "unaryOperator",
}
staticData.PredictionContextCache = antlr.NewPredictionContextCache()
staticData.serializedATN = []int32{
4, 1, 54, 291, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7,
4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7,
10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15,
2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2,
21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26,
7, 26, 2, 27, 7, 27, 1, 0, 5, 0, 58, 8, 0, 10, 0, 12, 0, 61, 9, 0, 1, 0,
1, 0, 4, 0, 65, 8, 0, 11, 0, 12, 0, 66, 1, 0, 5, 0, 70, 8, 0, 10, 0, 12,
0, 73, 9, 0, 1, 0, 5, 0, 76, 8, 0, 10, 0, 12, 0, 79, 9, 0, 1, 1, 1, 1,
1, 1, 5, 1, 84, 8, 1, 10, 1, 12, 1, 87, 9, 1, 1, 2, 1, 2, 1, 2, 5, 2, 92,
8, 2, 10, 2, 12, 2, 95, 9, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 110, 8, 3, 1, 4, 1, 4, 3, 4,
114, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 121, 8, 5, 10, 5, 12, 5,
124, 9, 5, 1, 5, 3, 5, 127, 8, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1,
7, 1, 7, 1, 7, 3, 7, 138, 8, 7, 1, 7, 1, 7, 1, 8, 3, 8, 143, 8, 8, 1, 8,
1, 8, 3, 8, 147, 8, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 3, 10, 154, 8,
10, 1, 10, 3, 10, 157, 8, 10, 1, 10, 3, 10, 160, 8, 10, 1, 11, 1, 11, 1,
11, 3, 11, 165, 8, 11, 1, 11, 1, 11, 1, 12, 1, 12, 3, 12, 171, 8, 12, 1,
13, 1, 13, 1, 13, 1, 13, 1, 13, 5, 13, 178, 8, 13, 10, 13, 12, 13, 181,
9, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 3,
15, 192, 8, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 199, 8, 16, 10,
16, 12, 16, 202, 9, 16, 1, 16, 1, 16, 1, 17, 1, 17, 3, 17, 208, 8, 17,
1, 18, 1, 18, 3, 18, 212, 8, 18, 1, 19, 1, 19, 1, 19, 3, 19, 217, 8, 19,
1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1,
23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 235, 8, 23, 1, 23, 1, 23,
1, 24, 1, 24, 3, 24, 241, 8, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1,
25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 255, 8, 25, 1, 25,
1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1,
25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 276, 8, 25,
1, 25, 1, 25, 1, 25, 1, 25, 5, 25, 282, 8, 25, 10, 25, 12, 25, 285, 9,
25, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 0, 1, 50, 28, 0, 2, 4, 6, 8, 10,
12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46,
48, 50, 52, 54, 0, 9, 2, 0, 3, 9, 25, 25, 1, 0, 10, 11, 1, 0, 13, 14, 3,
0, 32, 32, 34, 34, 53, 53, 2, 0, 2, 2, 17, 18, 1, 0, 19, 21, 1, 0, 45,
48, 3, 0, 33, 33, 43, 44, 53, 53, 2, 0, 13, 14, 23, 24, 317, 0, 59, 1,
0, 0, 0, 2, 80, 1, 0, 0, 0, 4, 88, 1, 0, 0, 0, 6, 109, 1, 0, 0, 0, 8, 111,
1, 0, 0, 0, 10, 115, 1, 0, 0, 0, 12, 130, 1, 0, 0, 0, 14, 132, 1, 0, 0,
0, 16, 142, 1, 0, 0, 0, 18, 148, 1, 0, 0, 0, 20, 150, 1, 0, 0, 0, 22, 161,
1, 0, 0, 0, 24, 170, 1, 0, 0, 0, 26, 172, 1, 0, 0, 0, 28, 184, 1, 0, 0,
0, 30, 189, 1, 0, 0, 0, 32, 193, 1, 0, 0, 0, 34, 205, 1, 0, 0, 0, 36, 209,
1, 0, 0, 0, 38, 216, 1, 0, 0, 0, 40, 218, 1, 0, 0, 0, 42, 220, 1, 0, 0,
0, 44, 223, 1, 0, 0, 0, 46, 225, 1, 0, 0, 0, 48, 238, 1, 0, 0, 0, 50, 254,
1, 0, 0, 0, 52, 286, 1, 0, 0, 0, 54, 288, 1, 0, 0, 0, 56, 58, 5, 1, 0,
0, 57, 56, 1, 0, 0, 0, 58, 61, 1, 0, 0, 0, 59, 57, 1, 0, 0, 0, 59, 60,
1, 0, 0, 0, 60, 62, 1, 0, 0, 0, 61, 59, 1, 0, 0, 0, 62, 71, 3, 2, 1, 0,
63, 65, 5, 1, 0, 0, 64, 63, 1, 0, 0, 0, 65, 66, 1, 0, 0, 0, 66, 64, 1,
0, 0, 0, 66, 67, 1, 0, 0, 0, 67, 68, 1, 0, 0, 0, 68, 70, 3, 2, 1, 0, 69,
64, 1, 0, 0, 0, 70, 73, 1, 0, 0, 0, 71, 69, 1, 0, 0, 0, 71, 72, 1, 0, 0,
0, 72, 77, 1, 0, 0, 0, 73, 71, 1, 0, 0, 0, 74, 76, 5, 1, 0, 0, 75, 74,
1, 0, 0, 0, 76, 79, 1, 0, 0, 0, 77, 75, 1, 0, 0, 0, 77, 78, 1, 0, 0, 0,
78, 1, 1, 0, 0, 0, 79, 77, 1, 0, 0, 0, 80, 85, 3, 4, 2, 0, 81, 82, 5, 41,
0, 0, 82, 84, 3, 4, 2, 0, 83, 81, 1, 0, 0, 0, 84, 87, 1, 0, 0, 0, 85, 83,
1, 0, 0, 0, 85, 86, 1, 0, 0, 0, 86, 3, 1, 0, 0, 0, 87, 85, 1, 0, 0, 0,
88, 93, 3, 6, 3, 0, 89, 90, 5, 40, 0, 0, 90, 92, 3, 6, 3, 0, 91, 89, 1,
0, 0, 0, 92, 95, 1, 0, 0, 0, 93, 91, 1, 0, 0, 0, 93, 94, 1, 0, 0, 0, 94,
5, 1, 0, 0, 0, 95, 93, 1, 0, 0, 0, 96, 110, 3, 42, 21, 0, 97, 110, 3, 44,
22, 0, 98, 110, 3, 36, 18, 0, 99, 110, 3, 14, 7, 0, 100, 110, 3, 26, 13,
0, 101, 110, 3, 28, 14, 0, 102, 110, 3, 32, 16, 0, 103, 110, 3, 46, 23,
0, 104, 110, 3, 18, 9, 0, 105, 110, 3, 20, 10, 0, 106, 110, 3, 22, 11,
0, 107, 110, 3, 8, 4, 0, 108, 110, 3, 48, 24, 0, 109, 96, 1, 0, 0, 0, 109,
97, 1, 0, 0, 0, 109, 98, 1, 0, 0, 0, 109, 99, 1, 0, 0, 0, 109, 100, 1,
0, 0, 0, 109, 101, 1, 0, 0, 0, 109, 102, 1, 0, 0, 0, 109, 103, 1, 0, 0,
0, 109, 104, 1, 0, 0, 0, 109, 105, 1, 0, 0, 0, 109, 106, 1, 0, 0, 0, 109,
107, 1, 0, 0, 0, 109, 108, 1, 0, 0, 0, 110, 7, 1, 0, 0, 0, 111, 113, 3,
10, 5, 0, 112, 114, 3, 38, 19, 0, 113, 112, 1, 0, 0, 0, 113, 114, 1, 0,
0, 0, 114, 9, 1, 0, 0, 0, 115, 116, 3, 12, 6, 0, 116, 126, 5, 36, 0, 0,
117, 122, 3, 50, 25, 0, 118, 119, 5, 40, 0, 0, 119, 121, 3, 50, 25, 0,
120, 118, 1, 0, 0, 0, 121, 124, 1, 0, 0, 0, 122, 120, 1, 0, 0, 0, 122,
123, 1, 0, 0, 0, 123, 127, 1, 0, 0, 0, 124, 122, 1, 0, 0, 0, 125, 127,
5, 2, 0, 0, 126, 117, 1, 0, 0, 0, 126, 125, 1, 0, 0, 0, 126, 127, 1, 0,
0, 0, 127, 128, 1, 0, 0, 0, 128, 129, 5, 37, 0, 0, 129, 11, 1, 0, 0, 0,
130, 131, 7, 0, 0, 0, 131, 13, 1, 0, 0, 0, 132, 133, 5, 26, 0, 0, 133,
134, 5, 36, 0, 0, 134, 137, 3, 16, 8, 0, 135, 136, 5, 40, 0, 0, 136, 138,
3, 50, 25, 0, 137, 135, 1, 0, 0, 0, 137, 138, 1, 0, 0, 0, 138, 139, 1,
0, 0, 0, 139, 140, 5, 37, 0, 0, 140, 15, 1, 0, 0, 0, 141, 143, 5, 52, 0,
0, 142, 141, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 144, 1, 0, 0, 0, 144,
146, 5, 51, 0, 0, 145, 147, 3, 38, 19, 0, 146, 145, 1, 0, 0, 0, 146, 147,
1, 0, 0, 0, 147, 17, 1, 0, 0, 0, 148, 149, 7, 1, 0, 0, 149, 19, 1, 0, 0,
0, 150, 156, 5, 12, 0, 0, 151, 153, 5, 36, 0, 0, 152, 154, 3, 34, 17, 0,
153, 152, 1, 0, 0, 0, 153, 154, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 155,
157, 5, 37, 0, 0, 156, 151, 1, 0, 0, 0, 156, 157, 1, 0, 0, 0, 157, 159,
1, 0, 0, 0, 158, 160, 3, 38, 19, 0, 159, 158, 1, 0, 0, 0, 159, 160, 1,
0, 0, 0, 160, 21, 1, 0, 0, 0, 161, 162, 5, 27, 0, 0, 162, 164, 5, 36, 0,
0, 163, 165, 3, 50, 25, 0, 164, 163, 1, 0, 0, 0, 164, 165, 1, 0, 0, 0,
165, 166, 1, 0, 0, 0, 166, 167, 5, 37, 0, 0, 167, 23, 1, 0, 0, 0, 168,
171, 3, 34, 17, 0, 169, 171, 3, 10, 5, 0, 170, 168, 1, 0, 0, 0, 170, 169,
1, 0, 0, 0, 171, 25, 1, 0, 0, 0, 172, 173, 5, 28, 0, 0, 173, 174, 5, 36,
0, 0, 174, 179, 3, 24, 12, 0, 175, 176, 5, 40, 0, 0, 176, 178, 3, 24, 12,
0, 177, 175, 1, 0, 0, 0, 178, 181, 1, 0, 0, 0, 179, 177, 1, 0, 0, 0, 179,
180, 1, 0, 0, 0, 180, 182, 1, 0, 0, 0, 181, 179, 1, 0, 0, 0, 182, 183,
5, 37, 0, 0, 183, 27, 1, 0, 0, 0, 184, 185, 5, 29, 0, 0, 185, 186, 5, 36,
0, 0, 186, 187, 3, 50, 25, 0, 187, 188, 5, 37, 0, 0, 188, 29, 1, 0, 0,
0, 189, 191, 3, 34, 17, 0, 190, 192, 7, 2, 0, 0, 191, 190, 1, 0, 0, 0,
191, 192, 1, 0, 0, 0, 192, 31, 1, 0, 0, 0, 193, 194, 5, 30, 0, 0, 194,
195, 5, 36, 0, 0, 195, 200, 3, 30, 15, 0, 196, 197, 5, 40, 0, 0, 197, 199,
3, 30, 15, 0, 198, 196, 1, 0, 0, 0, 199, 202, 1, 0, 0, 0, 200, 198, 1,
0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 203, 1, 0, 0, 0, 202, 200, 1, 0, 0,
0, 203, 204, 5, 37, 0, 0, 204, 33, 1, 0, 0, 0, 205, 207, 5, 51, 0, 0, 206,
208, 5, 51, 0, 0, 207, 206, 1, 0, 0, 0, 207, 208, 1, 0, 0, 0, 208, 35,
1, 0, 0, 0, 209, 211, 3, 34, 17, 0, 210, 212, 3, 38, 19, 0, 211, 210, 1,
0, 0, 0, 211, 212, 1, 0, 0, 0, 212, 37, 1, 0, 0, 0, 213, 217, 5, 31, 0,
0, 214, 215, 5, 42, 0, 0, 215, 217, 7, 3, 0, 0, 216, 213, 1, 0, 0, 0, 216,
214, 1, 0, 0, 0, 217, 39, 1, 0, 0, 0, 218, 219, 5, 32, 0, 0, 219, 41, 1,
0, 0, 0, 220, 221, 5, 52, 0, 0, 221, 222, 5, 51, 0, 0, 222, 43, 1, 0, 0,
0, 223, 224, 5, 52, 0, 0, 224, 45, 1, 0, 0, 0, 225, 234, 5, 15, 0, 0, 226,
227, 5, 43, 0, 0, 227, 228, 5, 42, 0, 0, 228, 235, 5, 43, 0, 0, 229, 230,
5, 43, 0, 0, 230, 235, 5, 42, 0, 0, 231, 232, 5, 42, 0, 0, 232, 235, 5,
43, 0, 0, 233, 235, 5, 43, 0, 0, 234, 226, 1, 0, 0, 0, 234, 229, 1, 0,
0, 0, 234, 231, 1, 0, 0, 0, 234, 233, 1, 0, 0, 0, 234, 235, 1, 0, 0, 0,
235, 236, 1, 0, 0, 0, 236, 237, 5, 39, 0, 0, 237, 47, 1, 0, 0, 0, 238,
240, 3, 50, 25, 0, 239, 241, 3, 38, 19, 0, 240, 239, 1, 0, 0, 0, 240, 241,
1, 0, 0, 0, 241, 49, 1, 0, 0, 0, 242, 243, 6, 25, -1, 0, 243, 244, 5, 36,
0, 0, 244, 245, 3, 50, 25, 0, 245, 246, 5, 37, 0, 0, 246, 255, 1, 0, 0,
0, 247, 255, 3, 34, 17, 0, 248, 255, 3, 52, 26, 0, 249, 255, 3, 40, 20,
0, 250, 251, 3, 54, 27, 0, 251, 252, 3, 50, 25, 9, 252, 255, 1, 0, 0, 0,
253, 255, 3, 10, 5, 0, 254, 242, 1, 0, 0, 0, 254, 247, 1, 0, 0, 0, 254,
248, 1, 0, 0, 0, 254, 249, 1, 0, 0, 0, 254, 250, 1, 0, 0, 0, 254, 253,
1, 0, 0, 0, 255, 283, 1, 0, 0, 0, 256, 257, 10, 8, 0, 0, 257, 258, 5, 16,
0, 0, 258, 282, 3, 50, 25, 9, 259, 260, 10, 7, 0, 0, 260, 261, 7, 4, 0,
0, 261, 282, 3, 50, 25, 8, 262, 263, 10, 6, 0, 0, 263, 264, 7, 2, 0, 0,
264, 282, 3, 50, 25, 7, 265, 266, 10, 5, 0, 0, 266, 267, 7, 5, 0, 0, 267,
282, 3, 50, 25, 6, 268, 269, 10, 4, 0, 0, 269, 270, 7, 6, 0, 0, 270, 282,
3, 50, 25, 5, 271, 275, 10, 3, 0, 0, 272, 276, 5, 50, 0, 0, 273, 276, 5,
49, 0, 0, 274, 276, 1, 0, 0, 0, 275, 272, 1, 0, 0, 0, 275, 273, 1, 0, 0,
0, 275, 274, 1, 0, 0, 0, 276, 277, 1, 0, 0, 0, 277, 282, 3, 50, 25, 4,
278, 279, 10, 2, 0, 0, 279, 280, 5, 22, 0, 0, 280, 282, 3, 50, 25, 3, 281,
256, 1, 0, 0, 0, 281, 259, 1, 0, 0, 0, 281, 262, 1, 0, 0, 0, 281, 265,
1, 0, 0, 0, 281, 268, 1, 0, 0, 0, 281, 271, 1, 0, 0, 0, 281, 278, 1, 0,
0, 0, 282, 285, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 283, 284, 1, 0, 0, 0,
284, 51, 1, 0, 0, 0, 285, 283, 1, 0, 0, 0, 286, 287, 7, 7, 0, 0, 287, 53,
1, 0, 0, 0, 288, 289, 7, 8, 0, 0, 289, 55, 1, 0, 0, 0, 30, 59, 66, 71,
77, 85, 93, 109, 113, 122, 126, 137, 142, 146, 153, 156, 159, 164, 170,
179, 191, 200, 207, 211, 216, 234, 240, 254, 275, 281, 283,
}
deserializer := antlr.NewATNDeserializer(nil)
staticData.atn = deserializer.Deserialize(staticData.serializedATN)
atn := staticData.atn
staticData.decisionToDFA = make([]*antlr.DFA, len(atn.DecisionToState))
decisionToDFA := staticData.decisionToDFA
for index, state := range atn.DecisionToState {
decisionToDFA[index] = antlr.NewDFA(state, index)
}
}
// SLQParserInit initializes any static state used to implement SLQParser. By default the
// static state used to implement the parser is lazily initialized during the first call to
// NewSLQParser(). You can call this function if you wish to initialize the static state ahead
// of time.
func SLQParserInit() {
staticData := &SLQParserStaticData
staticData.once.Do(slqParserInit)
}
// NewSLQParser produces a new parser instance for the optional input antlr.TokenStream.
2016-10-17 07:14:01 +03:00
func NewSLQParser(input antlr.TokenStream) *SLQParser {
SLQParserInit()
2016-10-17 07:14:01 +03:00
this := new(SLQParser)
this.BaseParser = antlr.NewBaseParser(input)
staticData := &SLQParserStaticData
this.Interpreter = antlr.NewParserATNSimulator(this, staticData.atn, staticData.decisionToDFA, staticData.PredictionContextCache)
this.RuleNames = staticData.RuleNames
this.LiteralNames = staticData.LiteralNames
this.SymbolicNames = staticData.SymbolicNames
this.GrammarFileName = "SLQ.g4"
2016-10-17 07:14:01 +03:00
return this
}
// SLQParser tokens.
const (
SLQParserEOF = antlr.TokenEOF
SLQParserT__0 = 1
SLQParserT__1 = 2
SLQParserT__2 = 3
SLQParserT__3 = 4
SLQParserT__4 = 5
SLQParserT__5 = 6
SLQParserT__6 = 7
SLQParserT__7 = 8
SLQParserT__8 = 9
SLQParserT__9 = 10
SLQParserT__10 = 11
SLQParserT__11 = 12
SLQParserT__12 = 13
SLQParserT__13 = 14
SLQParserT__14 = 15
SLQParserT__15 = 16
SLQParserT__16 = 17
SLQParserT__17 = 18
SLQParserT__18 = 19
SLQParserT__19 = 20
SLQParserT__20 = 21
SLQParserT__21 = 22
SLQParserT__22 = 23
SLQParserT__23 = 24
SLQParserPROPRIETARY_FUNC_NAME = 25
SLQParserJOIN_TYPE = 26
SLQParserWHERE = 27
SLQParserGROUP_BY = 28
SLQParserHAVING = 29
SLQParserORDER_BY = 30
SLQParserALIAS_RESERVED = 31
SLQParserARG = 32
SLQParserNULL = 33
SLQParserID = 34
SLQParserWS = 35
SLQParserLPAR = 36
SLQParserRPAR = 37
SLQParserLBRA = 38
SLQParserRBRA = 39
SLQParserCOMMA = 40
SLQParserPIPE = 41
SLQParserCOLON = 42
SLQParserNN = 43
SLQParserNUMBER = 44
SLQParserLT_EQ = 45
SLQParserLT = 46
SLQParserGT_EQ = 47
SLQParserGT = 48
SLQParserNEQ = 49
SLQParserEQ = 50
SLQParserNAME = 51
SLQParserHANDLE = 52
SLQParserSTRING = 53
SLQParserLINECOMMENT = 54
2016-10-17 07:14:01 +03:00
)
// SLQParser rules.
const (
SLQParserRULE_stmtList = 0
SLQParserRULE_query = 1
SLQParserRULE_segment = 2
SLQParserRULE_element = 3
SLQParserRULE_funcElement = 4
SLQParserRULE_func = 5
SLQParserRULE_funcName = 6
SLQParserRULE_join = 7
SLQParserRULE_joinTable = 8
SLQParserRULE_uniqueFunc = 9
SLQParserRULE_countFunc = 10
SLQParserRULE_where = 11
SLQParserRULE_groupByTerm = 12
SLQParserRULE_groupBy = 13
SLQParserRULE_having = 14
SLQParserRULE_orderByTerm = 15
SLQParserRULE_orderBy = 16
SLQParserRULE_selector = 17
SLQParserRULE_selectorElement = 18
SLQParserRULE_alias = 19
SLQParserRULE_arg = 20
SLQParserRULE_handleTable = 21
SLQParserRULE_handle = 22
SLQParserRULE_rowRange = 23
SLQParserRULE_exprElement = 24
SLQParserRULE_expr = 25
SLQParserRULE_literal = 26
SLQParserRULE_unaryOperator = 27
2016-10-17 07:14:01 +03:00
)
2020-08-06 20:58:47 +03:00
// IStmtListContext is an interface to support dynamic dispatch.
type IStmtListContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
AllQuery() []IQueryContext
Query(i int) IQueryContext
2020-08-06 20:58:47 +03:00
// IsStmtListContext differentiates from other interfaces.
IsStmtListContext()
}
type StmtListContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
2020-08-06 20:58:47 +03:00
}
func NewEmptyStmtListContext() *StmtListContext {
var p = new(StmtListContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
2020-08-06 20:58:47 +03:00
p.RuleIndex = SLQParserRULE_stmtList
return p
}
func InitEmptyStmtListContext(p *StmtListContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_stmtList
}
2020-08-06 20:58:47 +03:00
func (*StmtListContext) IsStmtListContext() {}
func NewStmtListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *StmtListContext {
var p = new(StmtListContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2020-08-06 20:58:47 +03:00
p.parser = parser
p.RuleIndex = SLQParserRULE_stmtList
return p
}
func (s *StmtListContext) GetParser() antlr.Parser { return s.parser }
func (s *StmtListContext) AllQuery() []IQueryContext {
children := s.GetChildren()
len := 0
for _, ctx := range children {
if _, ok := ctx.(IQueryContext); ok {
len++
}
}
2020-08-06 20:58:47 +03:00
tst := make([]IQueryContext, len)
i := 0
for _, ctx := range children {
if t, ok := ctx.(IQueryContext); ok {
2020-08-06 20:58:47 +03:00
tst[i] = t.(IQueryContext)
i++
2020-08-06 20:58:47 +03:00
}
}
return tst
}
func (s *StmtListContext) Query(i int) IQueryContext {
var t antlr.RuleContext
j := 0
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IQueryContext); ok {
if j == i {
t = ctx.(antlr.RuleContext)
break
}
j++
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IQueryContext)
}
func (s *StmtListContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *StmtListContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *StmtListContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterStmtList(s)
}
}
func (s *StmtListContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitStmtList(s)
}
}
func (s *StmtListContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2020-08-06 20:58:47 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitStmtList(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) StmtList() (localctx IStmtListContext) {
localctx = NewStmtListContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 0, SLQParserRULE_stmtList)
var _la int
var _alt int
p.EnterOuterAlt(localctx, 1)
p.SetState(59)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2023-04-01 11:38:32 +03:00
_la = p.GetTokenStream().LA(1)
2020-08-06 20:58:47 +03:00
2023-04-01 11:38:32 +03:00
for _la == SLQParserT__0 {
{
p.SetState(56)
2023-04-01 11:38:32 +03:00
p.Match(SLQParserT__0)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
2023-04-01 11:38:32 +03:00
p.SetState(61)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2023-04-01 11:38:32 +03:00
_la = p.GetTokenStream().LA(1)
2020-08-06 20:58:47 +03:00
}
{
p.SetState(62)
2020-08-06 20:58:47 +03:00
p.Query()
}
p.SetState(71)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 2, p.GetParserRuleContext())
if p.HasError() {
goto errorExit
}
2020-08-06 20:58:47 +03:00
for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
if _alt == 1 {
p.SetState(64)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2023-04-01 11:38:32 +03:00
_la = p.GetTokenStream().LA(1)
2020-08-06 20:58:47 +03:00
2023-04-01 11:38:32 +03:00
for ok := true; ok; ok = _la == SLQParserT__0 {
{
p.SetState(63)
2023-04-01 11:38:32 +03:00
p.Match(SLQParserT__0)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
p.SetState(66)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2023-04-01 11:38:32 +03:00
_la = p.GetTokenStream().LA(1)
2020-08-06 20:58:47 +03:00
}
{
p.SetState(68)
2020-08-06 20:58:47 +03:00
p.Query()
}
}
p.SetState(73)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 2, p.GetParserRuleContext())
if p.HasError() {
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
p.SetState(77)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2020-08-06 20:58:47 +03:00
_la = p.GetTokenStream().LA(1)
for _la == SLQParserT__0 {
{
p.SetState(74)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserT__0)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
p.SetState(79)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2020-08-06 20:58:47 +03:00
_la = p.GetTokenStream().LA(1)
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
2020-08-06 20:58:47 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
// IQueryContext is an interface to support dynamic dispatch.
type IQueryContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
AllSegment() []ISegmentContext
Segment(i int) ISegmentContext
AllPIPE() []antlr.TerminalNode
PIPE(i int) antlr.TerminalNode
2016-10-31 01:35:56 +03:00
// IsQueryContext differentiates from other interfaces.
IsQueryContext()
2016-10-17 07:14:01 +03:00
}
type QueryContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
2016-10-17 07:14:01 +03:00
}
func NewEmptyQueryContext() *QueryContext {
var p = new(QueryContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
2016-10-17 07:14:01 +03:00
p.RuleIndex = SLQParserRULE_query
return p
}
func InitEmptyQueryContext(p *QueryContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_query
}
2016-10-31 01:35:56 +03:00
func (*QueryContext) IsQueryContext() {}
2016-10-17 07:14:01 +03:00
func NewQueryContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *QueryContext {
var p = new(QueryContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2016-10-17 07:14:01 +03:00
p.parser = parser
p.RuleIndex = SLQParserRULE_query
return p
}
func (s *QueryContext) GetParser() antlr.Parser { return s.parser }
func (s *QueryContext) AllSegment() []ISegmentContext {
children := s.GetChildren()
len := 0
for _, ctx := range children {
if _, ok := ctx.(ISegmentContext); ok {
len++
}
}
2016-10-17 07:14:01 +03:00
tst := make([]ISegmentContext, len)
i := 0
for _, ctx := range children {
if t, ok := ctx.(ISegmentContext); ok {
2016-10-17 07:14:01 +03:00
tst[i] = t.(ISegmentContext)
i++
2016-10-17 07:14:01 +03:00
}
}
return tst
}
func (s *QueryContext) Segment(i int) ISegmentContext {
var t antlr.RuleContext
j := 0
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(ISegmentContext); ok {
if j == i {
t = ctx.(antlr.RuleContext)
break
}
j++
}
}
2016-10-17 07:14:01 +03:00
if t == nil {
return nil
}
return t.(ISegmentContext)
}
func (s *QueryContext) AllPIPE() []antlr.TerminalNode {
return s.GetTokens(SLQParserPIPE)
}
func (s *QueryContext) PIPE(i int) antlr.TerminalNode {
return s.GetToken(SLQParserPIPE, i)
}
func (s *QueryContext) GetRuleContext() antlr.RuleContext {
return s
}
2016-10-31 01:35:56 +03:00
func (s *QueryContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
2016-10-17 07:14:01 +03:00
func (s *QueryContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterQuery(s)
}
}
func (s *QueryContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitQuery(s)
}
}
func (s *QueryContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitQuery(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) Query() (localctx IQueryContext) {
localctx = NewQueryContext(p, p.GetParserRuleContext(), p.GetState())
2020-08-06 20:58:47 +03:00
p.EnterRule(localctx, 2, SLQParserRULE_query)
2016-10-17 07:14:01 +03:00
var _la int
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(80)
2020-08-06 20:58:47 +03:00
p.Segment()
}
p.SetState(85)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2016-10-17 07:14:01 +03:00
_la = p.GetTokenStream().LA(1)
for _la == SLQParserPIPE {
2020-08-06 20:58:47 +03:00
{
p.SetState(81)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserPIPE)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(82)
2020-08-06 20:58:47 +03:00
p.Segment()
}
2016-10-17 07:14:01 +03:00
p.SetState(87)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2016-10-17 07:14:01 +03:00
_la = p.GetTokenStream().LA(1)
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
2016-10-17 07:14:01 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2016-10-17 07:14:01 +03:00
}
// ISegmentContext is an interface to support dynamic dispatch.
type ISegmentContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
AllElement() []IElementContext
Element(i int) IElementContext
AllCOMMA() []antlr.TerminalNode
COMMA(i int) antlr.TerminalNode
2016-10-31 01:35:56 +03:00
// IsSegmentContext differentiates from other interfaces.
IsSegmentContext()
2016-10-17 07:14:01 +03:00
}
type SegmentContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
2016-10-17 07:14:01 +03:00
}
func NewEmptySegmentContext() *SegmentContext {
var p = new(SegmentContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
2016-10-17 07:14:01 +03:00
p.RuleIndex = SLQParserRULE_segment
return p
}
func InitEmptySegmentContext(p *SegmentContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_segment
}
2016-10-31 01:35:56 +03:00
func (*SegmentContext) IsSegmentContext() {}
2016-10-17 07:14:01 +03:00
func NewSegmentContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *SegmentContext {
var p = new(SegmentContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2016-10-17 07:14:01 +03:00
p.parser = parser
p.RuleIndex = SLQParserRULE_segment
return p
}
func (s *SegmentContext) GetParser() antlr.Parser { return s.parser }
func (s *SegmentContext) AllElement() []IElementContext {
children := s.GetChildren()
len := 0
for _, ctx := range children {
if _, ok := ctx.(IElementContext); ok {
len++
}
}
2016-10-17 07:14:01 +03:00
tst := make([]IElementContext, len)
i := 0
for _, ctx := range children {
if t, ok := ctx.(IElementContext); ok {
2016-10-17 07:14:01 +03:00
tst[i] = t.(IElementContext)
i++
2016-10-17 07:14:01 +03:00
}
}
return tst
}
func (s *SegmentContext) Element(i int) IElementContext {
var t antlr.RuleContext
j := 0
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IElementContext); ok {
if j == i {
t = ctx.(antlr.RuleContext)
break
}
j++
}
}
2016-10-17 07:14:01 +03:00
if t == nil {
return nil
}
return t.(IElementContext)
}
func (s *SegmentContext) AllCOMMA() []antlr.TerminalNode {
return s.GetTokens(SLQParserCOMMA)
}
func (s *SegmentContext) COMMA(i int) antlr.TerminalNode {
return s.GetToken(SLQParserCOMMA, i)
}
func (s *SegmentContext) GetRuleContext() antlr.RuleContext {
return s
}
2016-10-31 01:35:56 +03:00
func (s *SegmentContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
2016-10-17 07:14:01 +03:00
func (s *SegmentContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterSegment(s)
}
}
func (s *SegmentContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitSegment(s)
}
}
func (s *SegmentContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitSegment(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) Segment() (localctx ISegmentContext) {
localctx = NewSegmentContext(p, p.GetParserRuleContext(), p.GetState())
2020-08-06 20:58:47 +03:00
p.EnterRule(localctx, 4, SLQParserRULE_segment)
2016-10-17 07:14:01 +03:00
var _la int
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(88)
2020-08-06 20:58:47 +03:00
p.Element()
}
2016-10-17 07:14:01 +03:00
p.SetState(93)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2016-10-17 07:14:01 +03:00
_la = p.GetTokenStream().LA(1)
for _la == SLQParserCOMMA {
2020-08-06 20:58:47 +03:00
{
p.SetState(89)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserCOMMA)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(90)
2020-08-06 20:58:47 +03:00
p.Element()
}
2016-10-17 07:14:01 +03:00
p.SetState(95)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2016-10-17 07:14:01 +03:00
_la = p.GetTokenStream().LA(1)
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
2016-10-17 07:14:01 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2016-10-17 07:14:01 +03:00
}
// IElementContext is an interface to support dynamic dispatch.
type IElementContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
HandleTable() IHandleTableContext
Handle() IHandleContext
SelectorElement() ISelectorElementContext
Join() IJoinContext
GroupBy() IGroupByContext
Having() IHavingContext
OrderBy() IOrderByContext
RowRange() IRowRangeContext
UniqueFunc() IUniqueFuncContext
CountFunc() ICountFuncContext
Where() IWhereContext
FuncElement() IFuncElementContext
ExprElement() IExprElementContext
2016-10-31 01:35:56 +03:00
// IsElementContext differentiates from other interfaces.
IsElementContext()
2016-10-17 07:14:01 +03:00
}
type ElementContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
2016-10-17 07:14:01 +03:00
}
func NewEmptyElementContext() *ElementContext {
var p = new(ElementContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
2016-10-17 07:14:01 +03:00
p.RuleIndex = SLQParserRULE_element
return p
}
func InitEmptyElementContext(p *ElementContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_element
}
2016-10-31 01:35:56 +03:00
func (*ElementContext) IsElementContext() {}
2016-10-17 07:14:01 +03:00
func NewElementContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ElementContext {
var p = new(ElementContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2016-10-17 07:14:01 +03:00
p.parser = parser
p.RuleIndex = SLQParserRULE_element
return p
}
func (s *ElementContext) GetParser() antlr.Parser { return s.parser }
func (s *ElementContext) HandleTable() IHandleTableContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IHandleTableContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2016-10-17 07:14:01 +03:00
if t == nil {
return nil
}
return t.(IHandleTableContext)
2016-10-17 07:14:01 +03:00
}
func (s *ElementContext) Handle() IHandleContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IHandleContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2016-10-17 07:14:01 +03:00
if t == nil {
return nil
}
return t.(IHandleContext)
2016-10-17 07:14:01 +03:00
}
func (s *ElementContext) SelectorElement() ISelectorElementContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(ISelectorElementContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2016-10-17 07:14:01 +03:00
if t == nil {
return nil
}
return t.(ISelectorElementContext)
2016-10-17 07:14:01 +03:00
}
2016-10-31 01:35:56 +03:00
func (s *ElementContext) Join() IJoinContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IJoinContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2016-10-17 07:14:01 +03:00
if t == nil {
return nil
}
2016-10-31 01:35:56 +03:00
return t.(IJoinContext)
2016-10-17 07:14:01 +03:00
}
func (s *ElementContext) GroupBy() IGroupByContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IGroupByContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IGroupByContext)
2020-08-06 20:58:47 +03:00
}
func (s *ElementContext) Having() IHavingContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IHavingContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IHavingContext)
}
func (s *ElementContext) OrderBy() IOrderByContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IOrderByContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IOrderByContext)
}
2016-10-17 07:14:01 +03:00
func (s *ElementContext) RowRange() IRowRangeContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IRowRangeContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2016-10-17 07:14:01 +03:00
if t == nil {
return nil
}
return t.(IRowRangeContext)
}
func (s *ElementContext) UniqueFunc() IUniqueFuncContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IUniqueFuncContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IUniqueFuncContext)
}
func (s *ElementContext) CountFunc() ICountFuncContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(ICountFuncContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(ICountFuncContext)
}
func (s *ElementContext) Where() IWhereContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IWhereContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IWhereContext)
}
func (s *ElementContext) FuncElement() IFuncElementContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IFuncElementContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IFuncElementContext)
2020-08-06 20:58:47 +03:00
}
func (s *ElementContext) ExprElement() IExprElementContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IExprElementContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IExprElementContext)
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
func (s *ElementContext) GetRuleContext() antlr.RuleContext {
return s
}
2016-10-31 01:35:56 +03:00
func (s *ElementContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
2016-10-17 07:14:01 +03:00
func (s *ElementContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterElement(s)
}
}
func (s *ElementContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitElement(s)
}
}
func (s *ElementContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitElement(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) Element() (localctx IElementContext) {
localctx = NewElementContext(p, p.GetParserRuleContext(), p.GetState())
2020-08-06 20:58:47 +03:00
p.EnterRule(localctx, 6, SLQParserRULE_element)
p.SetState(109)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 6, p.GetParserRuleContext()) {
2016-10-17 07:14:01 +03:00
case 1:
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(96)
p.HandleTable()
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
case 2:
p.EnterOuterAlt(localctx, 2)
2020-08-06 20:58:47 +03:00
{
p.SetState(97)
p.Handle()
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
case 3:
p.EnterOuterAlt(localctx, 3)
2020-08-06 20:58:47 +03:00
{
p.SetState(98)
p.SelectorElement()
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
case 4:
p.EnterOuterAlt(localctx, 4)
2020-08-06 20:58:47 +03:00
{
p.SetState(99)
2020-08-06 20:58:47 +03:00
p.Join()
}
2016-10-17 07:14:01 +03:00
case 5:
p.EnterOuterAlt(localctx, 5)
2020-08-06 20:58:47 +03:00
{
p.SetState(100)
p.GroupBy()
2020-08-06 20:58:47 +03:00
}
case 6:
p.EnterOuterAlt(localctx, 6)
{
p.SetState(101)
p.Having()
2020-08-06 20:58:47 +03:00
}
case 7:
p.EnterOuterAlt(localctx, 7)
{
p.SetState(102)
p.OrderBy()
2020-08-06 20:58:47 +03:00
}
case 8:
p.EnterOuterAlt(localctx, 8)
{
p.SetState(103)
p.RowRange()
}
case 9:
p.EnterOuterAlt(localctx, 9)
{
p.SetState(104)
p.UniqueFunc()
}
case 10:
p.EnterOuterAlt(localctx, 10)
{
p.SetState(105)
p.CountFunc()
}
case 11:
p.EnterOuterAlt(localctx, 11)
{
p.SetState(106)
p.Where()
}
case 12:
p.EnterOuterAlt(localctx, 12)
{
p.SetState(107)
p.FuncElement()
}
case 13:
p.EnterOuterAlt(localctx, 13)
{
p.SetState(108)
p.ExprElement()
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
case antlr.ATNInvalidAltNumber:
goto errorExit
2016-10-17 07:14:01 +03:00
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
2016-10-17 07:14:01 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2016-10-17 07:14:01 +03:00
}
// IFuncElementContext is an interface to support dynamic dispatch.
type IFuncElementContext interface {
2016-10-17 07:14:01 +03:00
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
Func_() IFuncContext
Alias() IAliasContext
// IsFuncElementContext differentiates from other interfaces.
IsFuncElementContext()
}
type FuncElementContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
}
func NewEmptyFuncElementContext() *FuncElementContext {
var p = new(FuncElementContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_funcElement
return p
}
func InitEmptyFuncElementContext(p *FuncElementContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_funcElement
}
func (*FuncElementContext) IsFuncElementContext() {}
func NewFuncElementContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *FuncElementContext {
var p = new(FuncElementContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_funcElement
return p
}
func (s *FuncElementContext) GetParser() antlr.Parser { return s.parser }
func (s *FuncElementContext) Func_() IFuncContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IFuncContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IFuncContext)
}
func (s *FuncElementContext) Alias() IAliasContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IAliasContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IAliasContext)
}
func (s *FuncElementContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *FuncElementContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *FuncElementContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterFuncElement(s)
}
}
func (s *FuncElementContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitFuncElement(s)
}
}
func (s *FuncElementContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitFuncElement(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) FuncElement() (localctx IFuncElementContext) {
localctx = NewFuncElementContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 8, SLQParserRULE_funcElement)
var _la int
p.EnterOuterAlt(localctx, 1)
{
p.SetState(111)
p.Func_()
}
p.SetState(113)
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_la = p.GetTokenStream().LA(1)
if _la == SLQParserALIAS_RESERVED || _la == SLQParserCOLON {
{
p.SetState(112)
p.Alias()
}
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
}
// IFuncContext is an interface to support dynamic dispatch.
type IFuncContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
FuncName() IFuncNameContext
LPAR() antlr.TerminalNode
RPAR() antlr.TerminalNode
AllExpr() []IExprContext
Expr(i int) IExprContext
AllCOMMA() []antlr.TerminalNode
COMMA(i int) antlr.TerminalNode
// IsFuncContext differentiates from other interfaces.
IsFuncContext()
2016-10-17 07:14:01 +03:00
}
type FuncContext struct {
2016-10-17 07:14:01 +03:00
parser antlr.Parser
antlr.BaseParserRuleContext
2016-10-17 07:14:01 +03:00
}
func NewEmptyFuncContext() *FuncContext {
var p = new(FuncContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_func
2016-10-17 07:14:01 +03:00
return p
}
func InitEmptyFuncContext(p *FuncContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_func
}
func (*FuncContext) IsFuncContext() {}
2016-10-17 07:14:01 +03:00
func NewFuncContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *FuncContext {
var p = new(FuncContext)
2016-10-17 07:14:01 +03:00
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2016-10-17 07:14:01 +03:00
p.parser = parser
p.RuleIndex = SLQParserRULE_func
2016-10-17 07:14:01 +03:00
return p
}
func (s *FuncContext) GetParser() antlr.Parser { return s.parser }
2020-08-06 20:58:47 +03:00
func (s *FuncContext) FuncName() IFuncNameContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IFuncNameContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IFuncNameContext)
2020-08-06 20:58:47 +03:00
}
func (s *FuncContext) LPAR() antlr.TerminalNode {
2020-08-06 20:58:47 +03:00
return s.GetToken(SLQParserLPAR, 0)
}
func (s *FuncContext) RPAR() antlr.TerminalNode {
2020-08-06 20:58:47 +03:00
return s.GetToken(SLQParserRPAR, 0)
}
2016-10-17 07:14:01 +03:00
func (s *FuncContext) AllExpr() []IExprContext {
children := s.GetChildren()
len := 0
for _, ctx := range children {
if _, ok := ctx.(IExprContext); ok {
len++
}
}
2016-10-17 07:14:01 +03:00
tst := make([]IExprContext, len)
i := 0
for _, ctx := range children {
if t, ok := ctx.(IExprContext); ok {
2020-08-06 20:58:47 +03:00
tst[i] = t.(IExprContext)
i++
2016-10-17 07:14:01 +03:00
}
}
return tst
}
func (s *FuncContext) Expr(i int) IExprContext {
var t antlr.RuleContext
j := 0
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IExprContext); ok {
if j == i {
t = ctx.(antlr.RuleContext)
break
}
j++
}
}
2016-10-17 07:14:01 +03:00
if t == nil {
return nil
}
2020-08-06 20:58:47 +03:00
return t.(IExprContext)
2016-10-17 07:14:01 +03:00
}
func (s *FuncContext) AllCOMMA() []antlr.TerminalNode {
2016-10-17 07:14:01 +03:00
return s.GetTokens(SLQParserCOMMA)
}
func (s *FuncContext) COMMA(i int) antlr.TerminalNode {
2016-10-17 07:14:01 +03:00
return s.GetToken(SLQParserCOMMA, i)
}
func (s *FuncContext) GetRuleContext() antlr.RuleContext {
2016-10-17 07:14:01 +03:00
return s
}
func (s *FuncContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
2016-10-31 01:35:56 +03:00
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *FuncContext) EnterRule(listener antlr.ParseTreeListener) {
2016-10-17 07:14:01 +03:00
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterFunc(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *FuncContext) ExitRule(listener antlr.ParseTreeListener) {
2016-10-17 07:14:01 +03:00
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitFunc(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *FuncContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitFunc(s)
2016-10-17 07:14:01 +03:00
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) Func_() (localctx IFuncContext) {
localctx = NewFuncContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 10, SLQParserRULE_func)
2016-10-17 07:14:01 +03:00
var _la int
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(115)
p.FuncName()
2020-08-06 20:58:47 +03:00
}
{
p.SetState(116)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserLPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
p.SetState(126)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2020-08-06 20:58:47 +03:00
switch p.GetTokenStream().LA(1) {
case SLQParserT__2, SLQParserT__3, SLQParserT__4, SLQParserT__5, SLQParserT__6, SLQParserT__7, SLQParserT__8, SLQParserT__12, SLQParserT__13, SLQParserT__22, SLQParserT__23, SLQParserPROPRIETARY_FUNC_NAME, SLQParserARG, SLQParserNULL, SLQParserLPAR, SLQParserNN, SLQParserNUMBER, SLQParserNAME, SLQParserSTRING:
2020-08-06 20:58:47 +03:00
{
p.SetState(117)
2020-08-06 20:58:47 +03:00
p.expr(0)
}
p.SetState(122)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2016-10-17 07:14:01 +03:00
_la = p.GetTokenStream().LA(1)
for _la == SLQParserCOMMA {
2020-08-06 20:58:47 +03:00
{
p.SetState(118)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserCOMMA)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(119)
2020-08-06 20:58:47 +03:00
p.expr(0)
}
2016-10-17 07:14:01 +03:00
p.SetState(124)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2016-10-17 07:14:01 +03:00
_la = p.GetTokenStream().LA(1)
}
2020-08-06 20:58:47 +03:00
case SLQParserT__1:
{
p.SetState(125)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserT__1)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
case SLQParserRPAR:
default:
}
{
p.SetState(128)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserRPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2016-10-17 07:14:01 +03:00
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
2016-10-17 07:14:01 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2016-10-17 07:14:01 +03:00
}
// IFuncNameContext is an interface to support dynamic dispatch.
type IFuncNameContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
PROPRIETARY_FUNC_NAME() antlr.TerminalNode
// IsFuncNameContext differentiates from other interfaces.
IsFuncNameContext()
}
type FuncNameContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
}
func NewEmptyFuncNameContext() *FuncNameContext {
var p = new(FuncNameContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_funcName
return p
}
func InitEmptyFuncNameContext(p *FuncNameContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_funcName
}
func (*FuncNameContext) IsFuncNameContext() {}
func NewFuncNameContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *FuncNameContext {
var p = new(FuncNameContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_funcName
return p
}
func (s *FuncNameContext) GetParser() antlr.Parser { return s.parser }
func (s *FuncNameContext) PROPRIETARY_FUNC_NAME() antlr.TerminalNode {
return s.GetToken(SLQParserPROPRIETARY_FUNC_NAME, 0)
}
func (s *FuncNameContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *FuncNameContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *FuncNameContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterFuncName(s)
}
}
func (s *FuncNameContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitFuncName(s)
}
}
func (s *FuncNameContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitFuncName(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) FuncName() (localctx IFuncNameContext) {
localctx = NewFuncNameContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 12, SLQParserRULE_funcName)
var _la int
p.EnterOuterAlt(localctx, 1)
{
p.SetState(130)
_la = p.GetTokenStream().LA(1)
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&33555448) != 0) {
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
}
2020-08-06 20:58:47 +03:00
// IJoinContext is an interface to support dynamic dispatch.
type IJoinContext interface {
2016-10-17 07:14:01 +03:00
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
JOIN_TYPE() antlr.TerminalNode
LPAR() antlr.TerminalNode
JoinTable() IJoinTableContext
RPAR() antlr.TerminalNode
COMMA() antlr.TerminalNode
Expr() IExprContext
2020-08-06 20:58:47 +03:00
// IsJoinContext differentiates from other interfaces.
IsJoinContext()
2016-10-17 07:14:01 +03:00
}
2020-08-06 20:58:47 +03:00
type JoinContext struct {
2016-10-17 07:14:01 +03:00
parser antlr.Parser
antlr.BaseParserRuleContext
2016-10-17 07:14:01 +03:00
}
2020-08-06 20:58:47 +03:00
func NewEmptyJoinContext() *JoinContext {
var p = new(JoinContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
2020-08-06 20:58:47 +03:00
p.RuleIndex = SLQParserRULE_join
2016-10-17 07:14:01 +03:00
return p
}
func InitEmptyJoinContext(p *JoinContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_join
}
2020-08-06 20:58:47 +03:00
func (*JoinContext) IsJoinContext() {}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
func NewJoinContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *JoinContext {
var p = new(JoinContext)
2016-10-17 07:14:01 +03:00
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2016-10-17 07:14:01 +03:00
p.parser = parser
2020-08-06 20:58:47 +03:00
p.RuleIndex = SLQParserRULE_join
2016-10-17 07:14:01 +03:00
return p
}
2020-08-06 20:58:47 +03:00
func (s *JoinContext) GetParser() antlr.Parser { return s.parser }
2016-10-17 07:14:01 +03:00
func (s *JoinContext) JOIN_TYPE() antlr.TerminalNode {
return s.GetToken(SLQParserJOIN_TYPE, 0)
}
2020-08-06 20:58:47 +03:00
func (s *JoinContext) LPAR() antlr.TerminalNode {
return s.GetToken(SLQParserLPAR, 0)
}
func (s *JoinContext) JoinTable() IJoinTableContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IJoinTableContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IJoinTableContext)
2016-10-17 07:14:01 +03:00
}
2020-08-06 20:58:47 +03:00
func (s *JoinContext) RPAR() antlr.TerminalNode {
return s.GetToken(SLQParserRPAR, 0)
2016-10-17 07:14:01 +03:00
}
func (s *JoinContext) COMMA() antlr.TerminalNode {
return s.GetToken(SLQParserCOMMA, 0)
}
func (s *JoinContext) Expr() IExprContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IExprContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IExprContext)
}
2020-08-06 20:58:47 +03:00
func (s *JoinContext) GetRuleContext() antlr.RuleContext {
2016-10-17 07:14:01 +03:00
return s
}
2020-08-06 20:58:47 +03:00
func (s *JoinContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
2016-10-31 01:35:56 +03:00
return antlr.TreesStringTree(s, ruleNames, recog)
}
2020-08-06 20:58:47 +03:00
func (s *JoinContext) EnterRule(listener antlr.ParseTreeListener) {
2016-10-17 07:14:01 +03:00
if listenerT, ok := listener.(SLQListener); ok {
2020-08-06 20:58:47 +03:00
listenerT.EnterJoin(s)
2016-10-17 07:14:01 +03:00
}
}
2020-08-06 20:58:47 +03:00
func (s *JoinContext) ExitRule(listener antlr.ParseTreeListener) {
2016-10-17 07:14:01 +03:00
if listenerT, ok := listener.(SLQListener); ok {
2020-08-06 20:58:47 +03:00
listenerT.ExitJoin(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *JoinContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
2020-08-06 20:58:47 +03:00
return t.VisitJoin(s)
2016-10-17 07:14:01 +03:00
default:
return t.VisitChildren(s)
}
}
2020-08-06 20:58:47 +03:00
func (p *SLQParser) Join() (localctx IJoinContext) {
localctx = NewJoinContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 14, SLQParserRULE_join)
var _la int
2016-10-17 07:14:01 +03:00
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(132)
p.Match(SLQParserJOIN_TYPE)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(133)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserLPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(134)
p.JoinTable()
}
p.SetState(137)
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_la = p.GetTokenStream().LA(1)
if _la == SLQParserCOMMA {
{
p.SetState(135)
p.Match(SLQParserCOMMA)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
{
p.SetState(136)
p.expr(0)
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(139)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserRPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2016-10-17 07:14:01 +03:00
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
2016-10-17 07:14:01 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2016-10-17 07:14:01 +03:00
}
// IJoinTableContext is an interface to support dynamic dispatch.
type IJoinTableContext interface {
2016-10-17 07:14:01 +03:00
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
NAME() antlr.TerminalNode
HANDLE() antlr.TerminalNode
Alias() IAliasContext
// IsJoinTableContext differentiates from other interfaces.
IsJoinTableContext()
2016-10-17 07:14:01 +03:00
}
type JoinTableContext struct {
2016-10-17 07:14:01 +03:00
parser antlr.Parser
antlr.BaseParserRuleContext
2016-10-17 07:14:01 +03:00
}
func NewEmptyJoinTableContext() *JoinTableContext {
var p = new(JoinTableContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_joinTable
2016-10-17 07:14:01 +03:00
return p
}
func InitEmptyJoinTableContext(p *JoinTableContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_joinTable
}
func (*JoinTableContext) IsJoinTableContext() {}
2016-10-17 07:14:01 +03:00
func NewJoinTableContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *JoinTableContext {
var p = new(JoinTableContext)
2016-10-17 07:14:01 +03:00
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2016-10-17 07:14:01 +03:00
p.parser = parser
p.RuleIndex = SLQParserRULE_joinTable
2016-10-17 07:14:01 +03:00
return p
}
func (s *JoinTableContext) GetParser() antlr.Parser { return s.parser }
func (s *JoinTableContext) NAME() antlr.TerminalNode {
return s.GetToken(SLQParserNAME, 0)
2016-10-17 07:14:01 +03:00
}
func (s *JoinTableContext) HANDLE() antlr.TerminalNode {
return s.GetToken(SLQParserHANDLE, 0)
2020-08-06 20:58:47 +03:00
}
func (s *JoinTableContext) Alias() IAliasContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IAliasContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2016-10-17 07:14:01 +03:00
if t == nil {
return nil
}
return t.(IAliasContext)
2016-10-17 07:14:01 +03:00
}
func (s *JoinTableContext) GetRuleContext() antlr.RuleContext {
2016-10-17 07:14:01 +03:00
return s
}
func (s *JoinTableContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
2016-10-31 01:35:56 +03:00
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *JoinTableContext) EnterRule(listener antlr.ParseTreeListener) {
2016-10-17 07:14:01 +03:00
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterJoinTable(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *JoinTableContext) ExitRule(listener antlr.ParseTreeListener) {
2016-10-17 07:14:01 +03:00
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitJoinTable(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *JoinTableContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitJoinTable(s)
2016-10-17 07:14:01 +03:00
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) JoinTable() (localctx IJoinTableContext) {
localctx = NewJoinTableContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 16, SLQParserRULE_joinTable)
var _la int
2016-10-17 07:14:01 +03:00
p.EnterOuterAlt(localctx, 1)
p.SetState(142)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_la = p.GetTokenStream().LA(1)
if _la == SLQParserHANDLE {
2020-08-06 20:58:47 +03:00
{
p.SetState(141)
p.Match(SLQParserHANDLE)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
}
{
p.SetState(144)
p.Match(SLQParserNAME)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
p.SetState(146)
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_la = p.GetTokenStream().LA(1)
if _la == SLQParserALIAS_RESERVED || _la == SLQParserCOLON {
2020-08-06 20:58:47 +03:00
{
p.SetState(145)
p.Alias()
}
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
}
// IUniqueFuncContext is an interface to support dynamic dispatch.
type IUniqueFuncContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// IsUniqueFuncContext differentiates from other interfaces.
IsUniqueFuncContext()
}
type UniqueFuncContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
}
func NewEmptyUniqueFuncContext() *UniqueFuncContext {
var p = new(UniqueFuncContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_uniqueFunc
return p
}
func InitEmptyUniqueFuncContext(p *UniqueFuncContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_uniqueFunc
}
func (*UniqueFuncContext) IsUniqueFuncContext() {}
func NewUniqueFuncContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *UniqueFuncContext {
var p = new(UniqueFuncContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_uniqueFunc
return p
}
func (s *UniqueFuncContext) GetParser() antlr.Parser { return s.parser }
func (s *UniqueFuncContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *UniqueFuncContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *UniqueFuncContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterUniqueFunc(s)
}
}
func (s *UniqueFuncContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitUniqueFunc(s)
}
}
func (s *UniqueFuncContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitUniqueFunc(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) UniqueFunc() (localctx IUniqueFuncContext) {
localctx = NewUniqueFuncContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 18, SLQParserRULE_uniqueFunc)
var _la int
p.EnterOuterAlt(localctx, 1)
{
p.SetState(148)
_la = p.GetTokenStream().LA(1)
if !(_la == SLQParserT__9 || _la == SLQParserT__10) {
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
}
// ICountFuncContext is an interface to support dynamic dispatch.
type ICountFuncContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
LPAR() antlr.TerminalNode
RPAR() antlr.TerminalNode
Alias() IAliasContext
Selector() ISelectorContext
// IsCountFuncContext differentiates from other interfaces.
IsCountFuncContext()
}
type CountFuncContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
}
func NewEmptyCountFuncContext() *CountFuncContext {
var p = new(CountFuncContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_countFunc
return p
}
func InitEmptyCountFuncContext(p *CountFuncContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_countFunc
}
func (*CountFuncContext) IsCountFuncContext() {}
func NewCountFuncContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *CountFuncContext {
var p = new(CountFuncContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_countFunc
return p
}
func (s *CountFuncContext) GetParser() antlr.Parser { return s.parser }
func (s *CountFuncContext) LPAR() antlr.TerminalNode {
return s.GetToken(SLQParserLPAR, 0)
}
func (s *CountFuncContext) RPAR() antlr.TerminalNode {
return s.GetToken(SLQParserRPAR, 0)
}
func (s *CountFuncContext) Alias() IAliasContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IAliasContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IAliasContext)
}
func (s *CountFuncContext) Selector() ISelectorContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(ISelectorContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(ISelectorContext)
}
func (s *CountFuncContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *CountFuncContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *CountFuncContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterCountFunc(s)
}
}
func (s *CountFuncContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitCountFunc(s)
}
}
func (s *CountFuncContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitCountFunc(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) CountFunc() (localctx ICountFuncContext) {
localctx = NewCountFuncContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 20, SLQParserRULE_countFunc)
var _la int
2023-04-01 11:38:32 +03:00
p.EnterOuterAlt(localctx, 1)
{
p.SetState(150)
p.Match(SLQParserT__11)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2023-04-01 11:38:32 +03:00
}
p.SetState(156)
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2023-04-01 11:38:32 +03:00
_la = p.GetTokenStream().LA(1)
2023-04-01 11:38:32 +03:00
if _la == SLQParserLPAR {
{
p.SetState(151)
2023-04-01 11:38:32 +03:00
p.Match(SLQParserLPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
p.SetState(153)
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_la = p.GetTokenStream().LA(1)
2023-04-01 11:38:32 +03:00
if _la == SLQParserNAME {
{
p.SetState(152)
2023-04-01 11:38:32 +03:00
p.Selector()
}
}
2023-04-01 11:38:32 +03:00
{
p.SetState(155)
2023-04-01 11:38:32 +03:00
p.Match(SLQParserRPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2023-04-01 11:38:32 +03:00
}
2023-04-01 11:38:32 +03:00
}
p.SetState(159)
2023-04-01 11:38:32 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2023-04-01 11:38:32 +03:00
_la = p.GetTokenStream().LA(1)
2023-04-01 11:38:32 +03:00
if _la == SLQParserALIAS_RESERVED || _la == SLQParserCOLON {
{
p.SetState(158)
2023-04-01 11:38:32 +03:00
p.Alias()
}
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
}
// IWhereContext is an interface to support dynamic dispatch.
type IWhereContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
WHERE() antlr.TerminalNode
LPAR() antlr.TerminalNode
RPAR() antlr.TerminalNode
Expr() IExprContext
// IsWhereContext differentiates from other interfaces.
IsWhereContext()
}
type WhereContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
}
func NewEmptyWhereContext() *WhereContext {
var p = new(WhereContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_where
return p
}
func InitEmptyWhereContext(p *WhereContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_where
}
func (*WhereContext) IsWhereContext() {}
func NewWhereContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *WhereContext {
var p = new(WhereContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_where
return p
}
func (s *WhereContext) GetParser() antlr.Parser { return s.parser }
func (s *WhereContext) WHERE() antlr.TerminalNode {
return s.GetToken(SLQParserWHERE, 0)
}
func (s *WhereContext) LPAR() antlr.TerminalNode {
return s.GetToken(SLQParserLPAR, 0)
}
func (s *WhereContext) RPAR() antlr.TerminalNode {
return s.GetToken(SLQParserRPAR, 0)
}
func (s *WhereContext) Expr() IExprContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IExprContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IExprContext)
}
func (s *WhereContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *WhereContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *WhereContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterWhere(s)
}
}
func (s *WhereContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitWhere(s)
}
}
func (s *WhereContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitWhere(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) Where() (localctx IWhereContext) {
localctx = NewWhereContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 22, SLQParserRULE_where)
var _la int
p.EnterOuterAlt(localctx, 1)
{
p.SetState(161)
p.Match(SLQParserWHERE)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
{
p.SetState(162)
p.Match(SLQParserLPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
p.SetState(164)
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_la = p.GetTokenStream().LA(1)
if (int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&11285469010617336) != 0 {
{
p.SetState(163)
p.expr(0)
}
}
{
p.SetState(166)
p.Match(SLQParserRPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
}
// IGroupByTermContext is an interface to support dynamic dispatch.
type IGroupByTermContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
Selector() ISelectorContext
Func_() IFuncContext
// IsGroupByTermContext differentiates from other interfaces.
IsGroupByTermContext()
}
type GroupByTermContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
}
func NewEmptyGroupByTermContext() *GroupByTermContext {
var p = new(GroupByTermContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_groupByTerm
return p
}
func InitEmptyGroupByTermContext(p *GroupByTermContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_groupByTerm
}
func (*GroupByTermContext) IsGroupByTermContext() {}
func NewGroupByTermContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *GroupByTermContext {
var p = new(GroupByTermContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_groupByTerm
return p
}
func (s *GroupByTermContext) GetParser() antlr.Parser { return s.parser }
func (s *GroupByTermContext) Selector() ISelectorContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(ISelectorContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(ISelectorContext)
}
func (s *GroupByTermContext) Func_() IFuncContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IFuncContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IFuncContext)
}
func (s *GroupByTermContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *GroupByTermContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *GroupByTermContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterGroupByTerm(s)
}
}
func (s *GroupByTermContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitGroupByTerm(s)
}
}
func (s *GroupByTermContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitGroupByTerm(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) GroupByTerm() (localctx IGroupByTermContext) {
localctx = NewGroupByTermContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 24, SLQParserRULE_groupByTerm)
p.SetState(170)
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
switch p.GetTokenStream().LA(1) {
case SLQParserNAME:
p.EnterOuterAlt(localctx, 1)
{
p.SetState(168)
p.Selector()
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
case SLQParserT__2, SLQParserT__3, SLQParserT__4, SLQParserT__5, SLQParserT__6, SLQParserT__7, SLQParserT__8, SLQParserPROPRIETARY_FUNC_NAME:
p.EnterOuterAlt(localctx, 2)
{
p.SetState(169)
p.Func_()
}
default:
p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
goto errorExit
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
2016-10-17 07:14:01 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2016-10-17 07:14:01 +03:00
}
// IGroupByContext is an interface to support dynamic dispatch.
type IGroupByContext interface {
2016-10-17 07:14:01 +03:00
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
GROUP_BY() antlr.TerminalNode
LPAR() antlr.TerminalNode
AllGroupByTerm() []IGroupByTermContext
GroupByTerm(i int) IGroupByTermContext
RPAR() antlr.TerminalNode
AllCOMMA() []antlr.TerminalNode
COMMA(i int) antlr.TerminalNode
// IsGroupByContext differentiates from other interfaces.
IsGroupByContext()
2016-10-17 07:14:01 +03:00
}
type GroupByContext struct {
2016-10-17 07:14:01 +03:00
parser antlr.Parser
antlr.BaseParserRuleContext
2016-10-17 07:14:01 +03:00
}
func NewEmptyGroupByContext() *GroupByContext {
var p = new(GroupByContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_groupBy
2016-10-17 07:14:01 +03:00
return p
}
func InitEmptyGroupByContext(p *GroupByContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_groupBy
}
func (*GroupByContext) IsGroupByContext() {}
2016-10-17 07:14:01 +03:00
func NewGroupByContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *GroupByContext {
var p = new(GroupByContext)
2016-10-17 07:14:01 +03:00
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2016-10-17 07:14:01 +03:00
p.parser = parser
p.RuleIndex = SLQParserRULE_groupBy
2016-10-17 07:14:01 +03:00
return p
}
func (s *GroupByContext) GetParser() antlr.Parser { return s.parser }
2016-10-17 07:14:01 +03:00
func (s *GroupByContext) GROUP_BY() antlr.TerminalNode {
return s.GetToken(SLQParserGROUP_BY, 0)
}
func (s *GroupByContext) LPAR() antlr.TerminalNode {
2020-08-06 20:58:47 +03:00
return s.GetToken(SLQParserLPAR, 0)
}
func (s *GroupByContext) AllGroupByTerm() []IGroupByTermContext {
children := s.GetChildren()
len := 0
for _, ctx := range children {
if _, ok := ctx.(IGroupByTermContext); ok {
len++
}
}
tst := make([]IGroupByTermContext, len)
i := 0
for _, ctx := range children {
if t, ok := ctx.(IGroupByTermContext); ok {
tst[i] = t.(IGroupByTermContext)
i++
}
}
return tst
2016-10-17 07:14:01 +03:00
}
func (s *GroupByContext) GroupByTerm(i int) IGroupByTermContext {
var t antlr.RuleContext
j := 0
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IGroupByTermContext); ok {
if j == i {
t = ctx.(antlr.RuleContext)
break
}
j++
}
}
if t == nil {
return nil
}
return t.(IGroupByTermContext)
2016-10-17 07:14:01 +03:00
}
func (s *GroupByContext) RPAR() antlr.TerminalNode {
2020-08-06 20:58:47 +03:00
return s.GetToken(SLQParserRPAR, 0)
}
2016-10-17 07:14:01 +03:00
func (s *GroupByContext) AllCOMMA() []antlr.TerminalNode {
2020-08-06 20:58:47 +03:00
return s.GetTokens(SLQParserCOMMA)
}
2016-10-17 07:14:01 +03:00
func (s *GroupByContext) COMMA(i int) antlr.TerminalNode {
2020-08-06 20:58:47 +03:00
return s.GetToken(SLQParserCOMMA, i)
2016-10-17 07:14:01 +03:00
}
func (s *GroupByContext) GetRuleContext() antlr.RuleContext {
2016-10-17 07:14:01 +03:00
return s
}
func (s *GroupByContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
2016-10-31 01:35:56 +03:00
return antlr.TreesStringTree(s, ruleNames, recog)
2016-10-17 07:14:01 +03:00
}
func (s *GroupByContext) EnterRule(listener antlr.ParseTreeListener) {
2016-10-17 07:14:01 +03:00
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterGroupBy(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *GroupByContext) ExitRule(listener antlr.ParseTreeListener) {
2016-10-17 07:14:01 +03:00
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitGroupBy(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *GroupByContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitGroupBy(s)
2016-10-17 07:14:01 +03:00
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) GroupBy() (localctx IGroupByContext) {
localctx = NewGroupByContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 26, SLQParserRULE_groupBy)
2020-08-06 20:58:47 +03:00
var _la int
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
p.EnterOuterAlt(localctx, 1)
{
p.SetState(172)
p.Match(SLQParserGROUP_BY)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(173)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserLPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(174)
p.GroupByTerm()
2020-08-06 20:58:47 +03:00
}
p.SetState(179)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2020-08-06 20:58:47 +03:00
_la = p.GetTokenStream().LA(1)
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
for _la == SLQParserCOMMA {
{
p.SetState(175)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserCOMMA)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(176)
p.GroupByTerm()
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
p.SetState(181)
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_la = p.GetTokenStream().LA(1)
}
{
p.SetState(182)
p.Match(SLQParserRPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
}
// IHavingContext is an interface to support dynamic dispatch.
type IHavingContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
HAVING() antlr.TerminalNode
LPAR() antlr.TerminalNode
Expr() IExprContext
RPAR() antlr.TerminalNode
// IsHavingContext differentiates from other interfaces.
IsHavingContext()
}
type HavingContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
}
func NewEmptyHavingContext() *HavingContext {
var p = new(HavingContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_having
return p
}
func InitEmptyHavingContext(p *HavingContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_having
}
func (*HavingContext) IsHavingContext() {}
func NewHavingContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *HavingContext {
var p = new(HavingContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_having
return p
}
func (s *HavingContext) GetParser() antlr.Parser { return s.parser }
func (s *HavingContext) HAVING() antlr.TerminalNode {
return s.GetToken(SLQParserHAVING, 0)
}
func (s *HavingContext) LPAR() antlr.TerminalNode {
return s.GetToken(SLQParserLPAR, 0)
}
func (s *HavingContext) Expr() IExprContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IExprContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IExprContext)
}
func (s *HavingContext) RPAR() antlr.TerminalNode {
return s.GetToken(SLQParserRPAR, 0)
}
func (s *HavingContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *HavingContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *HavingContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterHaving(s)
}
}
func (s *HavingContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitHaving(s)
}
}
func (s *HavingContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitHaving(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) Having() (localctx IHavingContext) {
localctx = NewHavingContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 28, SLQParserRULE_having)
p.EnterOuterAlt(localctx, 1)
{
p.SetState(184)
p.Match(SLQParserHAVING)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
{
p.SetState(185)
p.Match(SLQParserLPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
{
p.SetState(186)
p.expr(0)
}
{
p.SetState(187)
p.Match(SLQParserRPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
}
// IOrderByTermContext is an interface to support dynamic dispatch.
type IOrderByTermContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
Selector() ISelectorContext
// IsOrderByTermContext differentiates from other interfaces.
IsOrderByTermContext()
}
type OrderByTermContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
}
func NewEmptyOrderByTermContext() *OrderByTermContext {
var p = new(OrderByTermContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_orderByTerm
return p
}
func InitEmptyOrderByTermContext(p *OrderByTermContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_orderByTerm
}
func (*OrderByTermContext) IsOrderByTermContext() {}
func NewOrderByTermContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *OrderByTermContext {
var p = new(OrderByTermContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_orderByTerm
return p
}
func (s *OrderByTermContext) GetParser() antlr.Parser { return s.parser }
func (s *OrderByTermContext) Selector() ISelectorContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(ISelectorContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(ISelectorContext)
}
func (s *OrderByTermContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *OrderByTermContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *OrderByTermContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterOrderByTerm(s)
}
}
func (s *OrderByTermContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitOrderByTerm(s)
}
}
func (s *OrderByTermContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitOrderByTerm(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) OrderByTerm() (localctx IOrderByTermContext) {
localctx = NewOrderByTermContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 30, SLQParserRULE_orderByTerm)
var _la int
p.EnterOuterAlt(localctx, 1)
{
p.SetState(189)
p.Selector()
}
p.SetState(191)
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_la = p.GetTokenStream().LA(1)
if _la == SLQParserT__12 || _la == SLQParserT__13 {
{
p.SetState(190)
_la = p.GetTokenStream().LA(1)
if !(_la == SLQParserT__12 || _la == SLQParserT__13) {
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
}
// IOrderByContext is an interface to support dynamic dispatch.
type IOrderByContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
ORDER_BY() antlr.TerminalNode
LPAR() antlr.TerminalNode
AllOrderByTerm() []IOrderByTermContext
OrderByTerm(i int) IOrderByTermContext
RPAR() antlr.TerminalNode
AllCOMMA() []antlr.TerminalNode
COMMA(i int) antlr.TerminalNode
// IsOrderByContext differentiates from other interfaces.
IsOrderByContext()
}
type OrderByContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
}
func NewEmptyOrderByContext() *OrderByContext {
var p = new(OrderByContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_orderBy
return p
}
func InitEmptyOrderByContext(p *OrderByContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_orderBy
}
func (*OrderByContext) IsOrderByContext() {}
func NewOrderByContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *OrderByContext {
var p = new(OrderByContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_orderBy
return p
}
func (s *OrderByContext) GetParser() antlr.Parser { return s.parser }
func (s *OrderByContext) ORDER_BY() antlr.TerminalNode {
return s.GetToken(SLQParserORDER_BY, 0)
}
func (s *OrderByContext) LPAR() antlr.TerminalNode {
return s.GetToken(SLQParserLPAR, 0)
}
func (s *OrderByContext) AllOrderByTerm() []IOrderByTermContext {
children := s.GetChildren()
len := 0
for _, ctx := range children {
if _, ok := ctx.(IOrderByTermContext); ok {
len++
}
}
tst := make([]IOrderByTermContext, len)
i := 0
for _, ctx := range children {
if t, ok := ctx.(IOrderByTermContext); ok {
tst[i] = t.(IOrderByTermContext)
i++
}
}
return tst
}
func (s *OrderByContext) OrderByTerm(i int) IOrderByTermContext {
var t antlr.RuleContext
j := 0
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IOrderByTermContext); ok {
if j == i {
t = ctx.(antlr.RuleContext)
break
}
j++
}
}
if t == nil {
return nil
}
return t.(IOrderByTermContext)
}
func (s *OrderByContext) RPAR() antlr.TerminalNode {
return s.GetToken(SLQParserRPAR, 0)
}
func (s *OrderByContext) AllCOMMA() []antlr.TerminalNode {
return s.GetTokens(SLQParserCOMMA)
}
func (s *OrderByContext) COMMA(i int) antlr.TerminalNode {
return s.GetToken(SLQParserCOMMA, i)
}
func (s *OrderByContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *OrderByContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *OrderByContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterOrderBy(s)
}
}
func (s *OrderByContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitOrderBy(s)
}
}
func (s *OrderByContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitOrderBy(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) OrderBy() (localctx IOrderByContext) {
localctx = NewOrderByContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 32, SLQParserRULE_orderBy)
var _la int
p.EnterOuterAlt(localctx, 1)
{
p.SetState(193)
p.Match(SLQParserORDER_BY)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
{
p.SetState(194)
p.Match(SLQParserLPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
{
p.SetState(195)
p.OrderByTerm()
}
p.SetState(200)
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_la = p.GetTokenStream().LA(1)
for _la == SLQParserCOMMA {
{
p.SetState(196)
p.Match(SLQParserCOMMA)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
{
p.SetState(197)
p.OrderByTerm()
}
p.SetState(202)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2020-08-06 20:58:47 +03:00
_la = p.GetTokenStream().LA(1)
}
{
p.SetState(203)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserRPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2016-10-17 07:14:01 +03:00
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
2016-10-17 07:14:01 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2016-10-17 07:14:01 +03:00
}
// ISelectorContext is an interface to support dynamic dispatch.
type ISelectorContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
AllNAME() []antlr.TerminalNode
NAME(i int) antlr.TerminalNode
// IsSelectorContext differentiates from other interfaces.
IsSelectorContext()
}
type SelectorContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
}
func NewEmptySelectorContext() *SelectorContext {
var p = new(SelectorContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_selector
return p
}
func InitEmptySelectorContext(p *SelectorContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_selector
}
func (*SelectorContext) IsSelectorContext() {}
func NewSelectorContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *SelectorContext {
var p = new(SelectorContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_selector
return p
}
func (s *SelectorContext) GetParser() antlr.Parser { return s.parser }
func (s *SelectorContext) AllNAME() []antlr.TerminalNode {
return s.GetTokens(SLQParserNAME)
}
func (s *SelectorContext) NAME(i int) antlr.TerminalNode {
return s.GetToken(SLQParserNAME, i)
}
func (s *SelectorContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *SelectorContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *SelectorContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterSelector(s)
}
}
func (s *SelectorContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitSelector(s)
}
}
func (s *SelectorContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitSelector(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) Selector() (localctx ISelectorContext) {
localctx = NewSelectorContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 34, SLQParserRULE_selector)
p.EnterOuterAlt(localctx, 1)
{
p.SetState(205)
p.Match(SLQParserNAME)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
p.SetState(207)
p.GetErrorHandler().Sync(p)
if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 21, p.GetParserRuleContext()) == 1 {
{
p.SetState(206)
p.Match(SLQParserNAME)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
} else if p.HasError() { // JIM
goto errorExit
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
}
// ISelectorElementContext is an interface to support dynamic dispatch.
type ISelectorElementContext interface {
2016-10-17 07:14:01 +03:00
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
Selector() ISelectorContext
Alias() IAliasContext
// IsSelectorElementContext differentiates from other interfaces.
IsSelectorElementContext()
2016-10-17 07:14:01 +03:00
}
type SelectorElementContext struct {
2016-10-17 07:14:01 +03:00
parser antlr.Parser
antlr.BaseParserRuleContext
2016-10-17 07:14:01 +03:00
}
func NewEmptySelectorElementContext() *SelectorElementContext {
var p = new(SelectorElementContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_selectorElement
2016-10-17 07:14:01 +03:00
return p
}
func InitEmptySelectorElementContext(p *SelectorElementContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_selectorElement
}
func (*SelectorElementContext) IsSelectorElementContext() {}
2016-10-17 07:14:01 +03:00
func NewSelectorElementContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *SelectorElementContext {
var p = new(SelectorElementContext)
2016-10-17 07:14:01 +03:00
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2016-10-17 07:14:01 +03:00
p.parser = parser
p.RuleIndex = SLQParserRULE_selectorElement
2016-10-17 07:14:01 +03:00
return p
}
func (s *SelectorElementContext) GetParser() antlr.Parser { return s.parser }
2016-10-17 07:14:01 +03:00
func (s *SelectorElementContext) Selector() ISelectorContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(ISelectorContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(ISelectorContext)
2016-10-17 07:14:01 +03:00
}
func (s *SelectorElementContext) Alias() IAliasContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IAliasContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IAliasContext)
}
func (s *SelectorElementContext) GetRuleContext() antlr.RuleContext {
2016-10-17 07:14:01 +03:00
return s
}
func (s *SelectorElementContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
2016-10-31 01:35:56 +03:00
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *SelectorElementContext) EnterRule(listener antlr.ParseTreeListener) {
2016-10-17 07:14:01 +03:00
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterSelectorElement(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *SelectorElementContext) ExitRule(listener antlr.ParseTreeListener) {
2016-10-17 07:14:01 +03:00
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitSelectorElement(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *SelectorElementContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitSelectorElement(s)
2016-10-17 07:14:01 +03:00
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) SelectorElement() (localctx ISelectorElementContext) {
localctx = NewSelectorElementContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 36, SLQParserRULE_selectorElement)
var _la int
2016-10-17 07:14:01 +03:00
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(209)
p.Selector()
2020-08-06 20:58:47 +03:00
}
2023-04-01 11:38:32 +03:00
p.SetState(211)
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_la = p.GetTokenStream().LA(1)
if _la == SLQParserALIAS_RESERVED || _la == SLQParserCOLON {
{
p.SetState(210)
p.Alias()
}
}
2016-10-17 07:14:01 +03:00
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
2016-10-17 07:14:01 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2016-10-17 07:14:01 +03:00
}
// IAliasContext is an interface to support dynamic dispatch.
type IAliasContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
ALIAS_RESERVED() antlr.TerminalNode
COLON() antlr.TerminalNode
2023-04-01 11:38:32 +03:00
ARG() antlr.TerminalNode
ID() antlr.TerminalNode
STRING() antlr.TerminalNode
// IsAliasContext differentiates from other interfaces.
IsAliasContext()
}
type AliasContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
}
func NewEmptyAliasContext() *AliasContext {
var p = new(AliasContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_alias
return p
}
func InitEmptyAliasContext(p *AliasContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_alias
}
func (*AliasContext) IsAliasContext() {}
func NewAliasContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *AliasContext {
var p = new(AliasContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_alias
return p
}
func (s *AliasContext) GetParser() antlr.Parser { return s.parser }
func (s *AliasContext) ALIAS_RESERVED() antlr.TerminalNode {
return s.GetToken(SLQParserALIAS_RESERVED, 0)
}
func (s *AliasContext) COLON() antlr.TerminalNode {
return s.GetToken(SLQParserCOLON, 0)
}
2023-04-01 11:38:32 +03:00
func (s *AliasContext) ARG() antlr.TerminalNode {
return s.GetToken(SLQParserARG, 0)
}
func (s *AliasContext) ID() antlr.TerminalNode {
return s.GetToken(SLQParserID, 0)
}
func (s *AliasContext) STRING() antlr.TerminalNode {
return s.GetToken(SLQParserSTRING, 0)
}
func (s *AliasContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *AliasContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *AliasContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterAlias(s)
}
}
func (s *AliasContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitAlias(s)
}
}
func (s *AliasContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitAlias(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) Alias() (localctx IAliasContext) {
localctx = NewAliasContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 38, SLQParserRULE_alias)
2023-04-01 11:38:32 +03:00
var _la int
p.SetState(216)
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
switch p.GetTokenStream().LA(1) {
case SLQParserALIAS_RESERVED:
p.EnterOuterAlt(localctx, 1)
{
p.SetState(213)
p.Match(SLQParserALIAS_RESERVED)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
case SLQParserCOLON:
p.EnterOuterAlt(localctx, 2)
{
p.SetState(214)
p.Match(SLQParserCOLON)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
{
p.SetState(215)
2023-04-01 11:38:32 +03:00
_la = p.GetTokenStream().LA(1)
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&9007220729577472) != 0) {
2023-04-01 11:38:32 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
default:
p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
goto errorExit
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
}
// IArgContext is an interface to support dynamic dispatch.
type IArgContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
ARG() antlr.TerminalNode
// IsArgContext differentiates from other interfaces.
IsArgContext()
}
type ArgContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
}
func NewEmptyArgContext() *ArgContext {
var p = new(ArgContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_arg
return p
}
func InitEmptyArgContext(p *ArgContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_arg
}
func (*ArgContext) IsArgContext() {}
func NewArgContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ArgContext {
var p = new(ArgContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_arg
return p
}
func (s *ArgContext) GetParser() antlr.Parser { return s.parser }
func (s *ArgContext) ARG() antlr.TerminalNode {
return s.GetToken(SLQParserARG, 0)
}
func (s *ArgContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *ArgContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *ArgContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterArg(s)
}
}
func (s *ArgContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitArg(s)
}
}
func (s *ArgContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitArg(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) Arg() (localctx IArgContext) {
localctx = NewArgContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 40, SLQParserRULE_arg)
p.EnterOuterAlt(localctx, 1)
{
p.SetState(218)
p.Match(SLQParserARG)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
}
// IHandleTableContext is an interface to support dynamic dispatch.
type IHandleTableContext interface {
2016-10-17 07:14:01 +03:00
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
HANDLE() antlr.TerminalNode
NAME() antlr.TerminalNode
// IsHandleTableContext differentiates from other interfaces.
IsHandleTableContext()
2016-10-17 07:14:01 +03:00
}
type HandleTableContext struct {
2016-10-17 07:14:01 +03:00
parser antlr.Parser
antlr.BaseParserRuleContext
2016-10-17 07:14:01 +03:00
}
func NewEmptyHandleTableContext() *HandleTableContext {
var p = new(HandleTableContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_handleTable
2016-10-17 07:14:01 +03:00
return p
}
func InitEmptyHandleTableContext(p *HandleTableContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_handleTable
}
func (*HandleTableContext) IsHandleTableContext() {}
2016-10-17 07:14:01 +03:00
func NewHandleTableContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *HandleTableContext {
var p = new(HandleTableContext)
2016-10-17 07:14:01 +03:00
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2016-10-17 07:14:01 +03:00
p.parser = parser
p.RuleIndex = SLQParserRULE_handleTable
2016-10-17 07:14:01 +03:00
return p
}
func (s *HandleTableContext) GetParser() antlr.Parser { return s.parser }
2016-10-17 07:14:01 +03:00
func (s *HandleTableContext) HANDLE() antlr.TerminalNode {
return s.GetToken(SLQParserHANDLE, 0)
2016-10-17 07:14:01 +03:00
}
func (s *HandleTableContext) NAME() antlr.TerminalNode {
return s.GetToken(SLQParserNAME, 0)
2016-10-17 07:14:01 +03:00
}
func (s *HandleTableContext) GetRuleContext() antlr.RuleContext {
2016-10-17 07:14:01 +03:00
return s
}
func (s *HandleTableContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
2016-10-31 01:35:56 +03:00
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *HandleTableContext) EnterRule(listener antlr.ParseTreeListener) {
2016-10-17 07:14:01 +03:00
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterHandleTable(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *HandleTableContext) ExitRule(listener antlr.ParseTreeListener) {
2016-10-17 07:14:01 +03:00
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitHandleTable(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *HandleTableContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitHandleTable(s)
2016-10-17 07:14:01 +03:00
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) HandleTable() (localctx IHandleTableContext) {
localctx = NewHandleTableContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 42, SLQParserRULE_handleTable)
2016-10-17 07:14:01 +03:00
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(220)
p.Match(SLQParserHANDLE)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(221)
p.Match(SLQParserNAME)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
2016-10-17 07:14:01 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2016-10-17 07:14:01 +03:00
}
// IHandleContext is an interface to support dynamic dispatch.
type IHandleContext interface {
2016-10-17 07:14:01 +03:00
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
HANDLE() antlr.TerminalNode
// IsHandleContext differentiates from other interfaces.
IsHandleContext()
2016-10-17 07:14:01 +03:00
}
type HandleContext struct {
2016-10-17 07:14:01 +03:00
parser antlr.Parser
antlr.BaseParserRuleContext
2016-10-17 07:14:01 +03:00
}
func NewEmptyHandleContext() *HandleContext {
var p = new(HandleContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_handle
2016-10-17 07:14:01 +03:00
return p
}
func InitEmptyHandleContext(p *HandleContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_handle
}
func (*HandleContext) IsHandleContext() {}
2016-10-17 07:14:01 +03:00
func NewHandleContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *HandleContext {
var p = new(HandleContext)
2016-10-17 07:14:01 +03:00
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2016-10-17 07:14:01 +03:00
p.parser = parser
p.RuleIndex = SLQParserRULE_handle
2016-10-17 07:14:01 +03:00
return p
}
func (s *HandleContext) GetParser() antlr.Parser { return s.parser }
2016-10-17 07:14:01 +03:00
func (s *HandleContext) HANDLE() antlr.TerminalNode {
return s.GetToken(SLQParserHANDLE, 0)
2016-10-17 07:14:01 +03:00
}
func (s *HandleContext) GetRuleContext() antlr.RuleContext {
2016-10-17 07:14:01 +03:00
return s
}
func (s *HandleContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
2016-10-31 01:35:56 +03:00
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *HandleContext) EnterRule(listener antlr.ParseTreeListener) {
2016-10-17 07:14:01 +03:00
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterHandle(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *HandleContext) ExitRule(listener antlr.ParseTreeListener) {
2016-10-17 07:14:01 +03:00
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitHandle(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *HandleContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitHandle(s)
2016-10-17 07:14:01 +03:00
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) Handle() (localctx IHandleContext) {
localctx = NewHandleContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 44, SLQParserRULE_handle)
2016-10-17 07:14:01 +03:00
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(223)
p.Match(SLQParserHANDLE)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
2016-10-17 07:14:01 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2016-10-17 07:14:01 +03:00
}
// IRowRangeContext is an interface to support dynamic dispatch.
type IRowRangeContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
RBRA() antlr.TerminalNode
AllNN() []antlr.TerminalNode
NN(i int) antlr.TerminalNode
COLON() antlr.TerminalNode
2016-10-31 01:35:56 +03:00
// IsRowRangeContext differentiates from other interfaces.
IsRowRangeContext()
2016-10-17 07:14:01 +03:00
}
type RowRangeContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
2016-10-17 07:14:01 +03:00
}
func NewEmptyRowRangeContext() *RowRangeContext {
var p = new(RowRangeContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
2016-10-17 07:14:01 +03:00
p.RuleIndex = SLQParserRULE_rowRange
return p
}
func InitEmptyRowRangeContext(p *RowRangeContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_rowRange
}
2016-10-31 01:35:56 +03:00
func (*RowRangeContext) IsRowRangeContext() {}
2016-10-17 07:14:01 +03:00
func NewRowRangeContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *RowRangeContext {
var p = new(RowRangeContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2016-10-17 07:14:01 +03:00
p.parser = parser
p.RuleIndex = SLQParserRULE_rowRange
return p
}
func (s *RowRangeContext) GetParser() antlr.Parser { return s.parser }
2020-08-06 20:58:47 +03:00
func (s *RowRangeContext) RBRA() antlr.TerminalNode {
return s.GetToken(SLQParserRBRA, 0)
}
func (s *RowRangeContext) AllNN() []antlr.TerminalNode {
return s.GetTokens(SLQParserNN)
2016-10-17 07:14:01 +03:00
}
2020-08-06 20:58:47 +03:00
func (s *RowRangeContext) NN(i int) antlr.TerminalNode {
return s.GetToken(SLQParserNN, i)
2016-10-17 07:14:01 +03:00
}
func (s *RowRangeContext) COLON() antlr.TerminalNode {
return s.GetToken(SLQParserCOLON, 0)
}
func (s *RowRangeContext) GetRuleContext() antlr.RuleContext {
return s
}
2016-10-31 01:35:56 +03:00
func (s *RowRangeContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
2016-10-17 07:14:01 +03:00
func (s *RowRangeContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterRowRange(s)
}
}
func (s *RowRangeContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitRowRange(s)
}
}
func (s *RowRangeContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitRowRange(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) RowRange() (localctx IRowRangeContext) {
localctx = NewRowRangeContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 46, SLQParserRULE_rowRange)
2016-10-17 07:14:01 +03:00
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(225)
p.Match(SLQParserT__14)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
p.SetState(234)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 24, p.GetParserRuleContext()) == 1 {
2020-08-06 20:58:47 +03:00
{
p.SetState(226)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserNN)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(227)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserCOLON)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(228)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserNN)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
} else if p.HasError() { // JIM
goto errorExit
} else if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 24, p.GetParserRuleContext()) == 2 {
2020-08-06 20:58:47 +03:00
{
p.SetState(229)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserNN)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(230)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserCOLON)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
} else if p.HasError() { // JIM
goto errorExit
} else if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 24, p.GetParserRuleContext()) == 3 {
2020-08-06 20:58:47 +03:00
{
p.SetState(231)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserCOLON)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(232)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserNN)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
} else if p.HasError() { // JIM
goto errorExit
} else if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 24, p.GetParserRuleContext()) == 4 {
2020-08-06 20:58:47 +03:00
{
p.SetState(233)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserNN)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
} else if p.HasError() { // JIM
goto errorExit
2020-08-06 20:58:47 +03:00
}
{
p.SetState(236)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserRBRA)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
2020-08-06 20:58:47 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
// IExprElementContext is an interface to support dynamic dispatch.
type IExprElementContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
Expr() IExprContext
Alias() IAliasContext
// IsExprElementContext differentiates from other interfaces.
IsExprElementContext()
}
type ExprElementContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
}
func NewEmptyExprElementContext() *ExprElementContext {
var p = new(ExprElementContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_exprElement
return p
}
func InitEmptyExprElementContext(p *ExprElementContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_exprElement
}
func (*ExprElementContext) IsExprElementContext() {}
func NewExprElementContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ExprElementContext {
var p = new(ExprElementContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_exprElement
return p
}
func (s *ExprElementContext) GetParser() antlr.Parser { return s.parser }
func (s *ExprElementContext) Expr() IExprContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IExprContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IExprContext)
}
func (s *ExprElementContext) Alias() IAliasContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IAliasContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IAliasContext)
}
func (s *ExprElementContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *ExprElementContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *ExprElementContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterExprElement(s)
}
}
func (s *ExprElementContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitExprElement(s)
}
}
func (s *ExprElementContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitExprElement(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) ExprElement() (localctx IExprElementContext) {
localctx = NewExprElementContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 48, SLQParserRULE_exprElement)
var _la int
p.EnterOuterAlt(localctx, 1)
{
p.SetState(238)
p.expr(0)
}
p.SetState(240)
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_la = p.GetTokenStream().LA(1)
if _la == SLQParserALIAS_RESERVED || _la == SLQParserCOLON {
{
p.SetState(239)
p.Alias()
}
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
}
2020-08-06 20:58:47 +03:00
// IExprContext is an interface to support dynamic dispatch.
type IExprContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
LPAR() antlr.TerminalNode
AllExpr() []IExprContext
Expr(i int) IExprContext
RPAR() antlr.TerminalNode
Selector() ISelectorContext
Literal() ILiteralContext
Arg() IArgContext
UnaryOperator() IUnaryOperatorContext
Func_() IFuncContext
LT() antlr.TerminalNode
LT_EQ() antlr.TerminalNode
GT() antlr.TerminalNode
GT_EQ() antlr.TerminalNode
EQ() antlr.TerminalNode
NEQ() antlr.TerminalNode
2020-08-06 20:58:47 +03:00
// IsExprContext differentiates from other interfaces.
IsExprContext()
}
type ExprContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
2020-08-06 20:58:47 +03:00
}
func NewEmptyExprContext() *ExprContext {
var p = new(ExprContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
2020-08-06 20:58:47 +03:00
p.RuleIndex = SLQParserRULE_expr
return p
}
func InitEmptyExprContext(p *ExprContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_expr
}
2020-08-06 20:58:47 +03:00
func (*ExprContext) IsExprContext() {}
func NewExprContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ExprContext {
var p = new(ExprContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2020-08-06 20:58:47 +03:00
p.parser = parser
p.RuleIndex = SLQParserRULE_expr
return p
}
func (s *ExprContext) GetParser() antlr.Parser { return s.parser }
func (s *ExprContext) LPAR() antlr.TerminalNode {
return s.GetToken(SLQParserLPAR, 0)
}
func (s *ExprContext) AllExpr() []IExprContext {
children := s.GetChildren()
len := 0
for _, ctx := range children {
if _, ok := ctx.(IExprContext); ok {
len++
}
}
tst := make([]IExprContext, len)
i := 0
for _, ctx := range children {
if t, ok := ctx.(IExprContext); ok {
tst[i] = t.(IExprContext)
i++
}
}
return tst
}
func (s *ExprContext) Expr(i int) IExprContext {
var t antlr.RuleContext
j := 0
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IExprContext); ok {
if j == i {
t = ctx.(antlr.RuleContext)
break
}
j++
}
}
if t == nil {
return nil
}
return t.(IExprContext)
}
func (s *ExprContext) RPAR() antlr.TerminalNode {
return s.GetToken(SLQParserRPAR, 0)
}
func (s *ExprContext) Selector() ISelectorContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(ISelectorContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(ISelectorContext)
2020-08-06 20:58:47 +03:00
}
func (s *ExprContext) Literal() ILiteralContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(ILiteralContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(ILiteralContext)
}
func (s *ExprContext) Arg() IArgContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IArgContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
if t == nil {
return nil
}
return t.(IArgContext)
}
2020-08-06 20:58:47 +03:00
func (s *ExprContext) UnaryOperator() IUnaryOperatorContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IUnaryOperatorContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IUnaryOperatorContext)
}
func (s *ExprContext) Func_() IFuncContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IFuncContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IFuncContext)
2020-08-06 20:58:47 +03:00
}
func (s *ExprContext) LT() antlr.TerminalNode {
return s.GetToken(SLQParserLT, 0)
}
func (s *ExprContext) LT_EQ() antlr.TerminalNode {
return s.GetToken(SLQParserLT_EQ, 0)
}
func (s *ExprContext) GT() antlr.TerminalNode {
return s.GetToken(SLQParserGT, 0)
}
func (s *ExprContext) GT_EQ() antlr.TerminalNode {
return s.GetToken(SLQParserGT_EQ, 0)
}
func (s *ExprContext) EQ() antlr.TerminalNode {
return s.GetToken(SLQParserEQ, 0)
}
func (s *ExprContext) NEQ() antlr.TerminalNode {
return s.GetToken(SLQParserNEQ, 0)
}
func (s *ExprContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *ExprContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *ExprContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterExpr(s)
}
}
func (s *ExprContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitExpr(s)
}
}
func (s *ExprContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2020-08-06 20:58:47 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitExpr(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) Expr() (localctx IExprContext) {
return p.expr(0)
}
func (p *SLQParser) expr(_p int) (localctx IExprContext) {
var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext()
2020-08-06 20:58:47 +03:00
_parentState := p.GetState()
localctx = NewExprContext(p, p.GetParserRuleContext(), _parentState)
var _prevctx IExprContext = localctx
var _ antlr.ParserRuleContext = _prevctx // TODO: To prevent unused variable warning.
_startState := 50
p.EnterRecursionRule(localctx, 50, SLQParserRULE_expr, _p)
2020-08-06 20:58:47 +03:00
var _la int
var _alt int
p.EnterOuterAlt(localctx, 1)
p.SetState(254)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2020-08-06 20:58:47 +03:00
switch p.GetTokenStream().LA(1) {
case SLQParserLPAR:
{
p.SetState(243)
p.Match(SLQParserLPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
{
p.SetState(244)
p.expr(0)
}
{
p.SetState(245)
p.Match(SLQParserRPAR)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
}
case SLQParserNAME:
2020-08-06 20:58:47 +03:00
{
p.SetState(247)
p.Selector()
2020-08-06 20:58:47 +03:00
}
case SLQParserNULL, SLQParserNN, SLQParserNUMBER, SLQParserSTRING:
{
p.SetState(248)
2020-08-06 20:58:47 +03:00
p.Literal()
}
case SLQParserARG:
{
p.SetState(249)
p.Arg()
}
case SLQParserT__12, SLQParserT__13, SLQParserT__22, SLQParserT__23:
2020-08-06 20:58:47 +03:00
{
p.SetState(250)
2020-08-06 20:58:47 +03:00
p.UnaryOperator()
}
{
p.SetState(251)
2020-08-06 20:58:47 +03:00
p.expr(9)
}
case SLQParserT__2, SLQParserT__3, SLQParserT__4, SLQParserT__5, SLQParserT__6, SLQParserT__7, SLQParserT__8, SLQParserPROPRIETARY_FUNC_NAME:
2020-08-06 20:58:47 +03:00
{
p.SetState(253)
p.Func_()
2020-08-06 20:58:47 +03:00
}
default:
p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
goto errorExit
2020-08-06 20:58:47 +03:00
}
p.GetParserRuleContext().SetStop(p.GetTokenStream().LT(-1))
p.SetState(283)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 29, p.GetParserRuleContext())
if p.HasError() {
goto errorExit
}
2020-08-06 20:58:47 +03:00
for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
if _alt == 1 {
if p.GetParseListeners() != nil {
p.TriggerExitRuleEvent()
}
_prevctx = localctx
p.SetState(281)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 28, p.GetParserRuleContext()) {
2020-08-06 20:58:47 +03:00
case 1:
localctx = NewExprContext(p, _parentctx, _parentState)
p.PushNewRecursionContext(localctx, _startState, SLQParserRULE_expr)
p.SetState(256)
2020-08-06 20:58:47 +03:00
if !(p.Precpred(p.GetParserRuleContext(), 8)) {
p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 8)", ""))
goto errorExit
2020-08-06 20:58:47 +03:00
}
{
p.SetState(257)
p.Match(SLQParserT__15)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(258)
2020-08-06 20:58:47 +03:00
p.expr(9)
}
case 2:
localctx = NewExprContext(p, _parentctx, _parentState)
p.PushNewRecursionContext(localctx, _startState, SLQParserRULE_expr)
p.SetState(259)
2020-08-06 20:58:47 +03:00
if !(p.Precpred(p.GetParserRuleContext(), 7)) {
p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 7)", ""))
goto errorExit
2020-08-06 20:58:47 +03:00
}
{
p.SetState(260)
2020-08-06 20:58:47 +03:00
_la = p.GetTokenStream().LA(1)
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&393220) != 0) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
{
p.SetState(261)
2020-08-06 20:58:47 +03:00
p.expr(8)
}
case 3:
localctx = NewExprContext(p, _parentctx, _parentState)
p.PushNewRecursionContext(localctx, _startState, SLQParserRULE_expr)
p.SetState(262)
2020-08-06 20:58:47 +03:00
if !(p.Precpred(p.GetParserRuleContext(), 6)) {
p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 6)", ""))
goto errorExit
2020-08-06 20:58:47 +03:00
}
{
p.SetState(263)
2020-08-06 20:58:47 +03:00
_la = p.GetTokenStream().LA(1)
if !(_la == SLQParserT__12 || _la == SLQParserT__13) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
{
p.SetState(264)
2020-08-06 20:58:47 +03:00
p.expr(7)
}
case 4:
localctx = NewExprContext(p, _parentctx, _parentState)
p.PushNewRecursionContext(localctx, _startState, SLQParserRULE_expr)
p.SetState(265)
2020-08-06 20:58:47 +03:00
if !(p.Precpred(p.GetParserRuleContext(), 5)) {
p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 5)", ""))
goto errorExit
2020-08-06 20:58:47 +03:00
}
{
p.SetState(266)
2020-08-06 20:58:47 +03:00
_la = p.GetTokenStream().LA(1)
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&3670016) != 0) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
{
p.SetState(267)
2020-08-06 20:58:47 +03:00
p.expr(6)
}
case 5:
localctx = NewExprContext(p, _parentctx, _parentState)
p.PushNewRecursionContext(localctx, _startState, SLQParserRULE_expr)
p.SetState(268)
2020-08-06 20:58:47 +03:00
if !(p.Precpred(p.GetParserRuleContext(), 4)) {
p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 4)", ""))
goto errorExit
2020-08-06 20:58:47 +03:00
}
{
p.SetState(269)
2020-08-06 20:58:47 +03:00
_la = p.GetTokenStream().LA(1)
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&527765581332480) != 0) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
{
p.SetState(270)
2020-08-06 20:58:47 +03:00
p.expr(5)
}
case 6:
localctx = NewExprContext(p, _parentctx, _parentState)
p.PushNewRecursionContext(localctx, _startState, SLQParserRULE_expr)
p.SetState(271)
2020-08-06 20:58:47 +03:00
if !(p.Precpred(p.GetParserRuleContext(), 3)) {
p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 3)", ""))
goto errorExit
2020-08-06 20:58:47 +03:00
}
p.SetState(275)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
2020-08-06 20:58:47 +03:00
switch p.GetTokenStream().LA(1) {
case SLQParserEQ:
{
p.SetState(272)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserEQ)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
case SLQParserNEQ:
{
p.SetState(273)
2020-08-06 20:58:47 +03:00
p.Match(SLQParserNEQ)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
case SLQParserT__2, SLQParserT__3, SLQParserT__4, SLQParserT__5, SLQParserT__6, SLQParserT__7, SLQParserT__8, SLQParserT__12, SLQParserT__13, SLQParserT__22, SLQParserT__23, SLQParserPROPRIETARY_FUNC_NAME, SLQParserARG, SLQParserNULL, SLQParserLPAR, SLQParserNN, SLQParserNUMBER, SLQParserNAME, SLQParserSTRING:
2020-08-06 20:58:47 +03:00
default:
p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
goto errorExit
2020-08-06 20:58:47 +03:00
}
{
p.SetState(277)
2020-08-06 20:58:47 +03:00
p.expr(4)
}
case 7:
localctx = NewExprContext(p, _parentctx, _parentState)
p.PushNewRecursionContext(localctx, _startState, SLQParserRULE_expr)
p.SetState(278)
2020-08-06 20:58:47 +03:00
if !(p.Precpred(p.GetParserRuleContext(), 2)) {
p.SetError(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 2)", ""))
goto errorExit
2020-08-06 20:58:47 +03:00
}
{
p.SetState(279)
p.Match(SLQParserT__21)
if p.HasError() {
// Recognition error - abort rule
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
{
p.SetState(280)
2020-08-06 20:58:47 +03:00
p.expr(3)
}
case antlr.ATNInvalidAltNumber:
goto errorExit
2020-08-06 20:58:47 +03:00
}
}
p.SetState(285)
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().Sync(p)
if p.HasError() {
goto errorExit
}
_alt = p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 29, p.GetParserRuleContext())
if p.HasError() {
goto errorExit
}
2020-08-06 20:58:47 +03:00
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.UnrollRecursionContexts(_parentctx)
2020-08-06 20:58:47 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2020-08-06 20:58:47 +03:00
}
// ILiteralContext is an interface to support dynamic dispatch.
type ILiteralContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
NN() antlr.TerminalNode
NUMBER() antlr.TerminalNode
STRING() antlr.TerminalNode
NULL() antlr.TerminalNode
2020-08-06 20:58:47 +03:00
// IsLiteralContext differentiates from other interfaces.
IsLiteralContext()
}
type LiteralContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
2020-08-06 20:58:47 +03:00
}
func NewEmptyLiteralContext() *LiteralContext {
var p = new(LiteralContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
2020-08-06 20:58:47 +03:00
p.RuleIndex = SLQParserRULE_literal
return p
}
func InitEmptyLiteralContext(p *LiteralContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_literal
}
2020-08-06 20:58:47 +03:00
func (*LiteralContext) IsLiteralContext() {}
func NewLiteralContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *LiteralContext {
var p = new(LiteralContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2020-08-06 20:58:47 +03:00
p.parser = parser
p.RuleIndex = SLQParserRULE_literal
return p
}
func (s *LiteralContext) GetParser() antlr.Parser { return s.parser }
func (s *LiteralContext) NN() antlr.TerminalNode {
return s.GetToken(SLQParserNN, 0)
}
func (s *LiteralContext) NUMBER() antlr.TerminalNode {
return s.GetToken(SLQParserNUMBER, 0)
}
func (s *LiteralContext) STRING() antlr.TerminalNode {
return s.GetToken(SLQParserSTRING, 0)
}
func (s *LiteralContext) NULL() antlr.TerminalNode {
return s.GetToken(SLQParserNULL, 0)
}
func (s *LiteralContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *LiteralContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *LiteralContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterLiteral(s)
}
}
func (s *LiteralContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitLiteral(s)
}
}
func (s *LiteralContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2020-08-06 20:58:47 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitLiteral(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) Literal() (localctx ILiteralContext) {
localctx = NewLiteralContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 52, SLQParserRULE_literal)
2020-08-06 20:58:47 +03:00
var _la int
p.EnterOuterAlt(localctx, 1)
{
p.SetState(286)
2020-08-06 20:58:47 +03:00
_la = p.GetTokenStream().LA(1)
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&9033596123742208) != 0) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
2020-08-06 20:58:47 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2020-08-06 20:58:47 +03:00
}
// IUnaryOperatorContext is an interface to support dynamic dispatch.
type IUnaryOperatorContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// IsUnaryOperatorContext differentiates from other interfaces.
IsUnaryOperatorContext()
}
type UnaryOperatorContext struct {
parser antlr.Parser
antlr.BaseParserRuleContext
2020-08-06 20:58:47 +03:00
}
func NewEmptyUnaryOperatorContext() *UnaryOperatorContext {
var p = new(UnaryOperatorContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
2020-08-06 20:58:47 +03:00
p.RuleIndex = SLQParserRULE_unaryOperator
return p
}
func InitEmptyUnaryOperatorContext(p *UnaryOperatorContext) {
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1)
p.RuleIndex = SLQParserRULE_unaryOperator
}
2020-08-06 20:58:47 +03:00
func (*UnaryOperatorContext) IsUnaryOperatorContext() {}
func NewUnaryOperatorContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *UnaryOperatorContext {
var p = new(UnaryOperatorContext)
antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState)
2020-08-06 20:58:47 +03:00
p.parser = parser
p.RuleIndex = SLQParserRULE_unaryOperator
return p
}
func (s *UnaryOperatorContext) GetParser() antlr.Parser { return s.parser }
func (s *UnaryOperatorContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *UnaryOperatorContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *UnaryOperatorContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterUnaryOperator(s)
}
}
func (s *UnaryOperatorContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitUnaryOperator(s)
}
}
func (s *UnaryOperatorContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2020-08-06 20:58:47 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitUnaryOperator(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) UnaryOperator() (localctx IUnaryOperatorContext) {
localctx = NewUnaryOperatorContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 54, SLQParserRULE_unaryOperator)
2020-08-06 20:58:47 +03:00
var _la int
p.EnterOuterAlt(localctx, 1)
{
p.SetState(288)
2020-08-06 20:58:47 +03:00
_la = p.GetTokenStream().LA(1)
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&25190400) != 0) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
errorExit:
if p.HasError() {
v := p.GetError()
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
p.SetError(nil)
}
p.ExitRule()
2020-08-06 20:58:47 +03:00
return localctx
goto errorExit // Trick to prevent compiler error if the label is not used
2020-08-06 20:58:47 +03:00
}
func (p *SLQParser) Sempred(localctx antlr.RuleContext, ruleIndex, predIndex int) bool {
switch ruleIndex {
case 25:
2020-08-06 20:58:47 +03:00
var t *ExprContext = nil
if localctx != nil {
t = localctx.(*ExprContext)
}
return p.Expr_Sempred(t, predIndex)
default:
panic("No predicate with index: " + fmt.Sprint(ruleIndex))
}
}
func (p *SLQParser) Expr_Sempred(localctx antlr.RuleContext, predIndex int) bool {
switch predIndex {
case 0:
return p.Precpred(p.GetParserRuleContext(), 8)
case 1:
return p.Precpred(p.GetParserRuleContext(), 7)
case 2:
return p.Precpred(p.GetParserRuleContext(), 6)
case 3:
return p.Precpred(p.GetParserRuleContext(), 5)
case 4:
return p.Precpred(p.GetParserRuleContext(), 4)
case 5:
return p.Precpred(p.GetParserRuleContext(), 3)
case 6:
return p.Precpred(p.GetParserRuleContext(), 2)
default:
panic("No predicate with index: " + fmt.Sprint(predIndex))
}
}