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

3282 lines
75 KiB
Go
Raw Normal View History

// Code generated from SLQ.g4 by ANTLR 4.12.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/antlr/antlr4/runtime/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 {
once sync.Once
serializedATN []int32
literalNames []string
symbolicNames []string
ruleNames []string
predictionContextCache *antlr.PredictionContextCache
atn *antlr.ATN
decisionToDFA []*antlr.DFA
}
func slqParserInit() {
staticData := &slqParserStaticData
staticData.literalNames = []string{
"", "';'", "'*'", "'join'", "'JOIN'", "'j'", "'group'", "'GROUP'", "'g'",
"'.['", "'sum'", "'SUM'", "'avg'", "'AVG'", "'count'", "'COUNT'", "'where'",
"'WHERE'", "'||'", "'/'", "'%'", "'+'", "'-'", "'<<'", "'>>'", "'&'",
"'&&'", "'~'", "'!'", "", "", "'('", "')'", "'['", "']'", "','", "'|'",
"':'", "", "", "", "'<='", "'<'", "'>='", "'>'", "'!='", "'=='",
}
staticData.symbolicNames = []string{
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "ID", "WS", "LPAR",
"RPAR", "LBRA", "RBRA", "COMMA", "PIPE", "COLON", "NULL", "NN", "NUMBER",
"LT_EQ", "LT", "GT_EQ", "GT", "NEQ", "EQ", "SEL", "DATASOURCE", "STRING",
"LINECOMMENT",
}
staticData.ruleNames = []string{
"stmtList", "query", "segment", "element", "cmpr", "fn", "join", "joinConstraint",
"group", "selElement", "dsTblElement", "dsElement", "rowRange", "fnName",
"expr", "literal", "unaryOperator",
}
staticData.predictionContextCache = antlr.NewPredictionContextCache()
staticData.serializedATN = []int32{
4, 1, 50, 191, 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, 1, 0, 5, 0, 36, 8, 0, 10, 0, 12, 0, 39, 9, 0, 1, 0, 1, 0,
4, 0, 43, 8, 0, 11, 0, 12, 0, 44, 1, 0, 5, 0, 48, 8, 0, 10, 0, 12, 0, 51,
9, 0, 1, 0, 5, 0, 54, 8, 0, 10, 0, 12, 0, 57, 9, 0, 1, 1, 1, 1, 1, 1, 5,
1, 62, 8, 1, 10, 1, 12, 1, 65, 9, 1, 1, 2, 1, 2, 1, 2, 5, 2, 70, 8, 2,
10, 2, 12, 2, 73, 9, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
3, 3, 83, 8, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 92, 8,
5, 10, 5, 12, 5, 95, 9, 5, 1, 5, 3, 5, 98, 8, 5, 1, 5, 1, 5, 1, 6, 1, 6,
1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 112, 8, 7, 1, 8,
1, 8, 1, 8, 1, 8, 1, 8, 5, 8, 119, 8, 8, 10, 8, 12, 8, 122, 9, 8, 1, 8,
1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12,
1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 142, 8, 12, 1, 12, 1,
12, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14,
155, 8, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1,
14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14,
3, 14, 176, 8, 14, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 182, 8, 14, 10, 14,
12, 14, 185, 9, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 0, 1, 28, 17, 0,
2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 0, 10, 1, 0,
41, 46, 1, 0, 3, 5, 1, 0, 6, 8, 1, 0, 10, 17, 2, 0, 2, 2, 19, 20, 1, 0,
21, 22, 1, 0, 23, 25, 1, 0, 41, 44, 2, 0, 38, 40, 49, 49, 2, 0, 21, 22,
27, 28, 207, 0, 37, 1, 0, 0, 0, 2, 58, 1, 0, 0, 0, 4, 66, 1, 0, 0, 0, 6,
82, 1, 0, 0, 0, 8, 84, 1, 0, 0, 0, 10, 86, 1, 0, 0, 0, 12, 101, 1, 0, 0,
0, 14, 111, 1, 0, 0, 0, 16, 113, 1, 0, 0, 0, 18, 125, 1, 0, 0, 0, 20, 127,
1, 0, 0, 0, 22, 130, 1, 0, 0, 0, 24, 132, 1, 0, 0, 0, 26, 145, 1, 0, 0,
0, 28, 154, 1, 0, 0, 0, 30, 186, 1, 0, 0, 0, 32, 188, 1, 0, 0, 0, 34, 36,
5, 1, 0, 0, 35, 34, 1, 0, 0, 0, 36, 39, 1, 0, 0, 0, 37, 35, 1, 0, 0, 0,
37, 38, 1, 0, 0, 0, 38, 40, 1, 0, 0, 0, 39, 37, 1, 0, 0, 0, 40, 49, 3,
2, 1, 0, 41, 43, 5, 1, 0, 0, 42, 41, 1, 0, 0, 0, 43, 44, 1, 0, 0, 0, 44,
42, 1, 0, 0, 0, 44, 45, 1, 0, 0, 0, 45, 46, 1, 0, 0, 0, 46, 48, 3, 2, 1,
0, 47, 42, 1, 0, 0, 0, 48, 51, 1, 0, 0, 0, 49, 47, 1, 0, 0, 0, 49, 50,
1, 0, 0, 0, 50, 55, 1, 0, 0, 0, 51, 49, 1, 0, 0, 0, 52, 54, 5, 1, 0, 0,
53, 52, 1, 0, 0, 0, 54, 57, 1, 0, 0, 0, 55, 53, 1, 0, 0, 0, 55, 56, 1,
0, 0, 0, 56, 1, 1, 0, 0, 0, 57, 55, 1, 0, 0, 0, 58, 63, 3, 4, 2, 0, 59,
60, 5, 36, 0, 0, 60, 62, 3, 4, 2, 0, 61, 59, 1, 0, 0, 0, 62, 65, 1, 0,
0, 0, 63, 61, 1, 0, 0, 0, 63, 64, 1, 0, 0, 0, 64, 3, 1, 0, 0, 0, 65, 63,
1, 0, 0, 0, 66, 71, 3, 6, 3, 0, 67, 68, 5, 35, 0, 0, 68, 70, 3, 6, 3, 0,
69, 67, 1, 0, 0, 0, 70, 73, 1, 0, 0, 0, 71, 69, 1, 0, 0, 0, 71, 72, 1,
0, 0, 0, 72, 5, 1, 0, 0, 0, 73, 71, 1, 0, 0, 0, 74, 83, 3, 20, 10, 0, 75,
83, 3, 22, 11, 0, 76, 83, 3, 18, 9, 0, 77, 83, 3, 12, 6, 0, 78, 83, 3,
16, 8, 0, 79, 83, 3, 24, 12, 0, 80, 83, 3, 10, 5, 0, 81, 83, 3, 28, 14,
0, 82, 74, 1, 0, 0, 0, 82, 75, 1, 0, 0, 0, 82, 76, 1, 0, 0, 0, 82, 77,
1, 0, 0, 0, 82, 78, 1, 0, 0, 0, 82, 79, 1, 0, 0, 0, 82, 80, 1, 0, 0, 0,
82, 81, 1, 0, 0, 0, 83, 7, 1, 0, 0, 0, 84, 85, 7, 0, 0, 0, 85, 9, 1, 0,
0, 0, 86, 87, 3, 26, 13, 0, 87, 97, 5, 31, 0, 0, 88, 93, 3, 28, 14, 0,
89, 90, 5, 35, 0, 0, 90, 92, 3, 28, 14, 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, 98, 1, 0, 0, 0,
95, 93, 1, 0, 0, 0, 96, 98, 5, 2, 0, 0, 97, 88, 1, 0, 0, 0, 97, 96, 1,
0, 0, 0, 97, 98, 1, 0, 0, 0, 98, 99, 1, 0, 0, 0, 99, 100, 5, 32, 0, 0,
100, 11, 1, 0, 0, 0, 101, 102, 7, 1, 0, 0, 102, 103, 5, 31, 0, 0, 103,
104, 3, 14, 7, 0, 104, 105, 5, 32, 0, 0, 105, 13, 1, 0, 0, 0, 106, 107,
5, 47, 0, 0, 107, 108, 3, 8, 4, 0, 108, 109, 5, 47, 0, 0, 109, 112, 1,
0, 0, 0, 110, 112, 5, 47, 0, 0, 111, 106, 1, 0, 0, 0, 111, 110, 1, 0, 0,
0, 112, 15, 1, 0, 0, 0, 113, 114, 7, 2, 0, 0, 114, 115, 5, 31, 0, 0, 115,
120, 5, 47, 0, 0, 116, 117, 5, 35, 0, 0, 117, 119, 5, 47, 0, 0, 118, 116,
1, 0, 0, 0, 119, 122, 1, 0, 0, 0, 120, 118, 1, 0, 0, 0, 120, 121, 1, 0,
0, 0, 121, 123, 1, 0, 0, 0, 122, 120, 1, 0, 0, 0, 123, 124, 5, 32, 0, 0,
124, 17, 1, 0, 0, 0, 125, 126, 5, 47, 0, 0, 126, 19, 1, 0, 0, 0, 127, 128,
5, 48, 0, 0, 128, 129, 5, 47, 0, 0, 129, 21, 1, 0, 0, 0, 130, 131, 5, 48,
0, 0, 131, 23, 1, 0, 0, 0, 132, 141, 5, 9, 0, 0, 133, 134, 5, 39, 0, 0,
134, 135, 5, 37, 0, 0, 135, 142, 5, 39, 0, 0, 136, 137, 5, 39, 0, 0, 137,
142, 5, 37, 0, 0, 138, 139, 5, 37, 0, 0, 139, 142, 5, 39, 0, 0, 140, 142,
5, 39, 0, 0, 141, 133, 1, 0, 0, 0, 141, 136, 1, 0, 0, 0, 141, 138, 1, 0,
0, 0, 141, 140, 1, 0, 0, 0, 141, 142, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0,
143, 144, 5, 34, 0, 0, 144, 25, 1, 0, 0, 0, 145, 146, 7, 3, 0, 0, 146,
27, 1, 0, 0, 0, 147, 148, 6, 14, -1, 0, 148, 155, 5, 47, 0, 0, 149, 155,
3, 30, 15, 0, 150, 151, 3, 32, 16, 0, 151, 152, 3, 28, 14, 9, 152, 155,
1, 0, 0, 0, 153, 155, 3, 10, 5, 0, 154, 147, 1, 0, 0, 0, 154, 149, 1, 0,
0, 0, 154, 150, 1, 0, 0, 0, 154, 153, 1, 0, 0, 0, 155, 183, 1, 0, 0, 0,
156, 157, 10, 8, 0, 0, 157, 158, 5, 18, 0, 0, 158, 182, 3, 28, 14, 9, 159,
160, 10, 7, 0, 0, 160, 161, 7, 4, 0, 0, 161, 182, 3, 28, 14, 8, 162, 163,
10, 6, 0, 0, 163, 164, 7, 5, 0, 0, 164, 182, 3, 28, 14, 7, 165, 166, 10,
5, 0, 0, 166, 167, 7, 6, 0, 0, 167, 182, 3, 28, 14, 6, 168, 169, 10, 4,
0, 0, 169, 170, 7, 7, 0, 0, 170, 182, 3, 28, 14, 5, 171, 175, 10, 3, 0,
0, 172, 176, 5, 46, 0, 0, 173, 176, 5, 45, 0, 0, 174, 176, 1, 0, 0, 0,
175, 172, 1, 0, 0, 0, 175, 173, 1, 0, 0, 0, 175, 174, 1, 0, 0, 0, 176,
177, 1, 0, 0, 0, 177, 182, 3, 28, 14, 4, 178, 179, 10, 2, 0, 0, 179, 180,
5, 26, 0, 0, 180, 182, 3, 28, 14, 3, 181, 156, 1, 0, 0, 0, 181, 159, 1,
0, 0, 0, 181, 162, 1, 0, 0, 0, 181, 165, 1, 0, 0, 0, 181, 168, 1, 0, 0,
0, 181, 171, 1, 0, 0, 0, 181, 178, 1, 0, 0, 0, 182, 185, 1, 0, 0, 0, 183,
181, 1, 0, 0, 0, 183, 184, 1, 0, 0, 0, 184, 29, 1, 0, 0, 0, 185, 183, 1,
0, 0, 0, 186, 187, 7, 8, 0, 0, 187, 31, 1, 0, 0, 0, 188, 189, 7, 9, 0,
0, 189, 33, 1, 0, 0, 0, 16, 37, 44, 49, 55, 63, 71, 82, 93, 97, 111, 120,
141, 154, 175, 181, 183,
}
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
2020-08-06 20:58:47 +03:00
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
SLQParserT__24 = 25
SLQParserT__25 = 26
SLQParserT__26 = 27
SLQParserT__27 = 28
SLQParserID = 29
SLQParserWS = 30
SLQParserLPAR = 31
SLQParserRPAR = 32
SLQParserLBRA = 33
SLQParserRBRA = 34
SLQParserCOMMA = 35
SLQParserPIPE = 36
SLQParserCOLON = 37
SLQParserNULL = 38
SLQParserNN = 39
SLQParserNUMBER = 40
SLQParserLT_EQ = 41
SLQParserLT = 42
SLQParserGT_EQ = 43
SLQParserGT = 44
SLQParserNEQ = 45
SLQParserEQ = 46
SLQParserSEL = 47
SLQParserDATASOURCE = 48
SLQParserSTRING = 49
SLQParserLINECOMMENT = 50
2016-10-17 07:14:01 +03:00
)
// SLQParser rules.
const (
2020-08-06 20:58:47 +03:00
SLQParserRULE_stmtList = 0
SLQParserRULE_query = 1
SLQParserRULE_segment = 2
SLQParserRULE_element = 3
SLQParserRULE_cmpr = 4
SLQParserRULE_fn = 5
2016-10-31 01:35:56 +03:00
SLQParserRULE_join = 6
SLQParserRULE_joinConstraint = 7
2020-08-06 20:58:47 +03:00
SLQParserRULE_group = 8
SLQParserRULE_selElement = 9
SLQParserRULE_dsTblElement = 10
SLQParserRULE_dsElement = 11
SLQParserRULE_rowRange = 12
SLQParserRULE_fnName = 13
SLQParserRULE_expr = 14
SLQParserRULE_literal = 15
SLQParserRULE_unaryOperator = 16
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 {
*antlr.BaseParserRuleContext
parser antlr.Parser
}
func NewEmptyStmtListContext() *StmtListContext {
var p = new(StmtListContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
p.RuleIndex = SLQParserRULE_stmtList
return p
}
func (*StmtListContext) IsStmtListContext() {}
func NewStmtListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *StmtListContext {
var p = new(StmtListContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
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) {
this := p
_ = this
2020-08-06 20:58:47 +03:00
localctx = NewStmtListContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 0, SLQParserRULE_stmtList)
var _la int
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
var _alt int
p.EnterOuterAlt(localctx, 1)
p.SetState(37)
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
for _la == SLQParserT__0 {
{
p.SetState(34)
p.Match(SLQParserT__0)
}
p.SetState(39)
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
}
{
p.SetState(40)
p.Query()
}
p.SetState(49)
p.GetErrorHandler().Sync(p)
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 2, p.GetParserRuleContext())
for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
if _alt == 1 {
p.SetState(42)
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
for ok := true; ok; ok = _la == SLQParserT__0 {
{
p.SetState(41)
p.Match(SLQParserT__0)
}
p.SetState(44)
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
}
{
p.SetState(46)
p.Query()
}
}
p.SetState(51)
p.GetErrorHandler().Sync(p)
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 2, p.GetParserRuleContext())
}
p.SetState(55)
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
for _la == SLQParserT__0 {
{
p.SetState(52)
p.Match(SLQParserT__0)
}
p.SetState(57)
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
}
return localctx
}
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 {
*antlr.BaseParserRuleContext
parser antlr.Parser
}
func NewEmptyQueryContext() *QueryContext {
var p = new(QueryContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
p.RuleIndex = SLQParserRULE_query
return p
}
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)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
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) {
this := p
_ = this
2016-10-17 07:14:01 +03:00
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
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(58)
p.Segment()
}
p.SetState(63)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
for _la == SLQParserPIPE {
2020-08-06 20:58:47 +03:00
{
p.SetState(59)
p.Match(SLQParserPIPE)
}
{
p.SetState(60)
p.Segment()
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
p.SetState(65)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
}
return localctx
}
// 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 {
*antlr.BaseParserRuleContext
parser antlr.Parser
}
func NewEmptySegmentContext() *SegmentContext {
var p = new(SegmentContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
p.RuleIndex = SLQParserRULE_segment
return p
}
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)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
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) {
this := p
_ = this
2016-10-17 07:14:01 +03:00
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
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(66)
p.Element()
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
p.SetState(71)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
for _la == SLQParserCOMMA {
2020-08-06 20:58:47 +03:00
{
p.SetState(67)
p.Match(SLQParserCOMMA)
}
{
p.SetState(68)
p.Element()
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
p.SetState(73)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
}
return localctx
}
// IElementContext is an interface to support dynamic dispatch.
type IElementContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
DsTblElement() IDsTblElementContext
DsElement() IDsElementContext
SelElement() ISelElementContext
Join() IJoinContext
Group() IGroupContext
RowRange() IRowRangeContext
Fn() IFnContext
Expr() IExprContext
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 {
*antlr.BaseParserRuleContext
parser antlr.Parser
}
func NewEmptyElementContext() *ElementContext {
var p = new(ElementContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
p.RuleIndex = SLQParserRULE_element
return p
}
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)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_element
return p
}
func (s *ElementContext) GetParser() antlr.Parser { return s.parser }
func (s *ElementContext) DsTblElement() IDsTblElementContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IDsTblElementContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2016-10-17 07:14:01 +03:00
if t == nil {
return nil
}
return t.(IDsTblElementContext)
}
func (s *ElementContext) DsElement() IDsElementContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IDsElementContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2016-10-17 07:14:01 +03:00
if t == nil {
return nil
}
return t.(IDsElementContext)
}
func (s *ElementContext) SelElement() ISelElementContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(ISelElementContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2016-10-17 07:14:01 +03:00
if t == nil {
return nil
}
return t.(ISelElementContext)
}
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
}
2020-08-06 20:58:47 +03:00
func (s *ElementContext) Group() IGroupContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IGroupContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IGroupContext)
}
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)
}
2020-08-06 20:58:47 +03:00
func (s *ElementContext) Fn() IFnContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IFnContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IFnContext)
}
func (s *ElementContext) Expr() IExprContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IExprContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IExprContext)
}
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) {
this := p
_ = this
2016-10-17 07:14:01 +03:00
localctx = NewElementContext(p, p.GetParserRuleContext(), p.GetState())
2020-08-06 20:58:47 +03:00
p.EnterRule(localctx, 6, SLQParserRULE_element)
2016-10-17 07:14:01 +03:00
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
2020-08-06 20:58:47 +03:00
p.SetState(82)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
2020-08-06 20:58:47 +03:00
switch p.GetInterpreter().AdaptivePredict(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(74)
p.DsTblElement()
}
2016-10-17 07:14:01 +03:00
case 2:
p.EnterOuterAlt(localctx, 2)
2020-08-06 20:58:47 +03:00
{
p.SetState(75)
p.DsElement()
}
2016-10-17 07:14:01 +03:00
case 3:
p.EnterOuterAlt(localctx, 3)
2020-08-06 20:58:47 +03:00
{
p.SetState(76)
p.SelElement()
}
2016-10-17 07:14:01 +03:00
case 4:
p.EnterOuterAlt(localctx, 4)
2020-08-06 20:58:47 +03:00
{
p.SetState(77)
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(78)
p.Group()
}
case 6:
p.EnterOuterAlt(localctx, 6)
{
p.SetState(79)
p.RowRange()
}
case 7:
p.EnterOuterAlt(localctx, 7)
{
p.SetState(80)
p.Fn()
}
case 8:
p.EnterOuterAlt(localctx, 8)
{
p.SetState(81)
p.expr(0)
}
2016-10-17 07:14:01 +03:00
}
return localctx
}
// ICmprContext is an interface to support dynamic dispatch.
type ICmprContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
LT_EQ() antlr.TerminalNode
LT() antlr.TerminalNode
GT_EQ() antlr.TerminalNode
GT() antlr.TerminalNode
EQ() antlr.TerminalNode
NEQ() antlr.TerminalNode
2016-10-31 01:35:56 +03:00
// IsCmprContext differentiates from other interfaces.
IsCmprContext()
2016-10-17 07:14:01 +03:00
}
type CmprContext struct {
*antlr.BaseParserRuleContext
parser antlr.Parser
}
func NewEmptyCmprContext() *CmprContext {
var p = new(CmprContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
p.RuleIndex = SLQParserRULE_cmpr
return p
}
2016-10-31 01:35:56 +03:00
func (*CmprContext) IsCmprContext() {}
2016-10-17 07:14:01 +03:00
func NewCmprContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *CmprContext {
var p = new(CmprContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_cmpr
return p
}
func (s *CmprContext) GetParser() antlr.Parser { return s.parser }
func (s *CmprContext) LT_EQ() antlr.TerminalNode {
return s.GetToken(SLQParserLT_EQ, 0)
}
func (s *CmprContext) LT() antlr.TerminalNode {
return s.GetToken(SLQParserLT, 0)
}
func (s *CmprContext) GT_EQ() antlr.TerminalNode {
return s.GetToken(SLQParserGT_EQ, 0)
}
func (s *CmprContext) GT() antlr.TerminalNode {
return s.GetToken(SLQParserGT, 0)
}
func (s *CmprContext) EQ() antlr.TerminalNode {
return s.GetToken(SLQParserEQ, 0)
}
func (s *CmprContext) NEQ() antlr.TerminalNode {
return s.GetToken(SLQParserNEQ, 0)
}
func (s *CmprContext) GetRuleContext() antlr.RuleContext {
return s
}
2016-10-31 01:35:56 +03:00
func (s *CmprContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
2016-10-17 07:14:01 +03:00
func (s *CmprContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterCmpr(s)
}
}
func (s *CmprContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitCmpr(s)
}
}
func (s *CmprContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitCmpr(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) Cmpr() (localctx ICmprContext) {
this := p
_ = this
2016-10-17 07:14:01 +03:00
localctx = NewCmprContext(p, p.GetParserRuleContext(), p.GetState())
2020-08-06 20:58:47 +03:00
p.EnterRule(localctx, 8, SLQParserRULE_cmpr)
2016-10-17 07:14:01 +03:00
var _la int
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(84)
_la = p.GetTokenStream().LA(1)
2016-10-17 07:14:01 +03:00
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&138538465099776) != 0) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
2016-10-17 07:14:01 +03:00
}
return localctx
}
2020-08-06 20:58:47 +03:00
// IFnContext is an interface to support dynamic dispatch.
type IFnContext interface {
2016-10-17 07:14:01 +03:00
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
FnName() IFnNameContext
LPAR() antlr.TerminalNode
RPAR() antlr.TerminalNode
AllExpr() []IExprContext
Expr(i int) IExprContext
AllCOMMA() []antlr.TerminalNode
COMMA(i int) antlr.TerminalNode
2020-08-06 20:58:47 +03:00
// IsFnContext differentiates from other interfaces.
IsFnContext()
2016-10-17 07:14:01 +03:00
}
2020-08-06 20:58:47 +03:00
type FnContext struct {
2016-10-17 07:14:01 +03:00
*antlr.BaseParserRuleContext
parser antlr.Parser
}
2020-08-06 20:58:47 +03:00
func NewEmptyFnContext() *FnContext {
var p = new(FnContext)
2016-10-17 07:14:01 +03:00
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
2020-08-06 20:58:47 +03:00
p.RuleIndex = SLQParserRULE_fn
2016-10-17 07:14:01 +03:00
return p
}
2020-08-06 20:58:47 +03:00
func (*FnContext) IsFnContext() {}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
func NewFnContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *FnContext {
var p = new(FnContext)
2016-10-17 07:14:01 +03:00
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
p.parser = parser
2020-08-06 20:58:47 +03:00
p.RuleIndex = SLQParserRULE_fn
2016-10-17 07:14:01 +03:00
return p
}
2020-08-06 20:58:47 +03:00
func (s *FnContext) GetParser() antlr.Parser { return s.parser }
func (s *FnContext) FnName() IFnNameContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IFnNameContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IFnNameContext)
}
func (s *FnContext) LPAR() antlr.TerminalNode {
return s.GetToken(SLQParserLPAR, 0)
}
func (s *FnContext) RPAR() antlr.TerminalNode {
return s.GetToken(SLQParserRPAR, 0)
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
func (s *FnContext) 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
}
2020-08-06 20:58:47 +03:00
func (s *FnContext) 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
}
2020-08-06 20:58:47 +03:00
func (s *FnContext) AllCOMMA() []antlr.TerminalNode {
2016-10-17 07:14:01 +03:00
return s.GetTokens(SLQParserCOMMA)
}
2020-08-06 20:58:47 +03:00
func (s *FnContext) COMMA(i int) antlr.TerminalNode {
2016-10-17 07:14:01 +03:00
return s.GetToken(SLQParserCOMMA, i)
}
2020-08-06 20:58:47 +03:00
func (s *FnContext) GetRuleContext() antlr.RuleContext {
2016-10-17 07:14:01 +03:00
return s
}
2020-08-06 20:58:47 +03:00
func (s *FnContext) 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 *FnContext) 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.EnterFn(s)
2016-10-17 07:14:01 +03:00
}
}
2020-08-06 20:58:47 +03:00
func (s *FnContext) 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.ExitFn(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *FnContext) 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.VisitFn(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) Fn() (localctx IFnContext) {
this := p
_ = this
2020-08-06 20:58:47 +03:00
localctx = NewFnContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 10, SLQParserRULE_fn)
2016-10-17 07:14:01 +03:00
var _la int
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(86)
p.FnName()
}
{
p.SetState(87)
p.Match(SLQParserLPAR)
}
p.SetState(97)
p.GetErrorHandler().Sync(p)
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
switch p.GetTokenStream().LA(1) {
case SLQParserT__9, SLQParserT__10, SLQParserT__11, SLQParserT__12, SLQParserT__13, SLQParserT__14, SLQParserT__15, SLQParserT__16, SLQParserT__20, SLQParserT__21, SLQParserT__26, SLQParserT__27, SLQParserNULL, SLQParserNN, SLQParserNUMBER, SLQParserSEL, SLQParserSTRING:
{
p.SetState(88)
p.expr(0)
}
p.SetState(93)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
for _la == SLQParserCOMMA {
2020-08-06 20:58:47 +03:00
{
p.SetState(89)
p.Match(SLQParserCOMMA)
}
{
p.SetState(90)
p.expr(0)
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
p.SetState(95)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
}
2020-08-06 20:58:47 +03:00
case SLQParserT__1:
{
p.SetState(96)
p.Match(SLQParserT__1)
}
case SLQParserRPAR:
default:
}
{
p.SetState(99)
p.Match(SLQParserRPAR)
2016-10-17 07:14:01 +03:00
}
return localctx
}
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
LPAR() antlr.TerminalNode
JoinConstraint() IJoinConstraintContext
RPAR() antlr.TerminalNode
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
*antlr.BaseParserRuleContext
parser antlr.Parser
}
2020-08-06 20:58:47 +03:00
func NewEmptyJoinContext() *JoinContext {
var p = new(JoinContext)
2016-10-17 07:14:01 +03:00
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
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 (*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
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
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
2020-08-06 20:58:47 +03:00
func (s *JoinContext) LPAR() antlr.TerminalNode {
return s.GetToken(SLQParserLPAR, 0)
}
func (s *JoinContext) JoinConstraint() IJoinConstraintContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IJoinConstraintContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IJoinConstraintContext)
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
}
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) {
this := p
_ = this
2020-08-06 20:58:47 +03:00
localctx = NewJoinContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 12, SLQParserRULE_join)
2016-10-17 07:14:01 +03:00
var _la int
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(101)
_la = p.GetTokenStream().LA(1)
2016-10-17 07:14:01 +03:00
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&56) != 0) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
{
p.SetState(102)
p.Match(SLQParserLPAR)
}
{
p.SetState(103)
p.JoinConstraint()
}
{
p.SetState(104)
p.Match(SLQParserRPAR)
2016-10-17 07:14:01 +03:00
}
return localctx
}
2020-08-06 20:58:47 +03:00
// IJoinConstraintContext is an interface to support dynamic dispatch.
type IJoinConstraintContext interface {
2016-10-17 07:14:01 +03:00
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
AllSEL() []antlr.TerminalNode
SEL(i int) antlr.TerminalNode
Cmpr() ICmprContext
2020-08-06 20:58:47 +03:00
// IsJoinConstraintContext differentiates from other interfaces.
IsJoinConstraintContext()
2016-10-17 07:14:01 +03:00
}
2020-08-06 20:58:47 +03:00
type JoinConstraintContext struct {
2016-10-17 07:14:01 +03:00
*antlr.BaseParserRuleContext
parser antlr.Parser
}
2020-08-06 20:58:47 +03:00
func NewEmptyJoinConstraintContext() *JoinConstraintContext {
var p = new(JoinConstraintContext)
2016-10-17 07:14:01 +03:00
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
2020-08-06 20:58:47 +03:00
p.RuleIndex = SLQParserRULE_joinConstraint
2016-10-17 07:14:01 +03:00
return p
}
2020-08-06 20:58:47 +03:00
func (*JoinConstraintContext) IsJoinConstraintContext() {}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
func NewJoinConstraintContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *JoinConstraintContext {
var p = new(JoinConstraintContext)
2016-10-17 07:14:01 +03:00
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
p.parser = parser
2020-08-06 20:58:47 +03:00
p.RuleIndex = SLQParserRULE_joinConstraint
2016-10-17 07:14:01 +03:00
return p
}
2020-08-06 20:58:47 +03:00
func (s *JoinConstraintContext) GetParser() antlr.Parser { return s.parser }
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
func (s *JoinConstraintContext) AllSEL() []antlr.TerminalNode {
return s.GetTokens(SLQParserSEL)
2016-10-17 07:14:01 +03:00
}
2020-08-06 20:58:47 +03:00
func (s *JoinConstraintContext) SEL(i int) antlr.TerminalNode {
return s.GetToken(SLQParserSEL, i)
}
func (s *JoinConstraintContext) Cmpr() ICmprContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(ICmprContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2016-10-17 07:14:01 +03:00
if t == nil {
return nil
}
2020-08-06 20:58:47 +03:00
return t.(ICmprContext)
2016-10-17 07:14:01 +03:00
}
2020-08-06 20:58:47 +03:00
func (s *JoinConstraintContext) GetRuleContext() antlr.RuleContext {
2016-10-17 07:14:01 +03:00
return s
}
2020-08-06 20:58:47 +03:00
func (s *JoinConstraintContext) 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 *JoinConstraintContext) 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.EnterJoinConstraint(s)
2016-10-17 07:14:01 +03:00
}
}
2020-08-06 20:58:47 +03:00
func (s *JoinConstraintContext) 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.ExitJoinConstraint(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *JoinConstraintContext) 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.VisitJoinConstraint(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) JoinConstraint() (localctx IJoinConstraintContext) {
this := p
_ = this
2020-08-06 20:58:47 +03:00
localctx = NewJoinConstraintContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 14, SLQParserRULE_joinConstraint)
2016-10-17 07:14:01 +03:00
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
2020-08-06 20:58:47 +03:00
p.SetState(111)
p.GetErrorHandler().Sync(p)
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 9, p.GetParserRuleContext()) {
case 1:
p.EnterOuterAlt(localctx, 1)
{
p.SetState(106)
p.Match(SLQParserSEL)
}
{
p.SetState(107)
p.Cmpr()
}
{
p.SetState(108)
p.Match(SLQParserSEL)
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
case 2:
p.EnterOuterAlt(localctx, 2)
{
p.SetState(110)
p.Match(SLQParserSEL)
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
}
2016-10-17 07:14:01 +03:00
return localctx
}
2020-08-06 20:58:47 +03:00
// IGroupContext is an interface to support dynamic dispatch.
type IGroupContext interface {
2016-10-17 07:14:01 +03:00
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
LPAR() antlr.TerminalNode
AllSEL() []antlr.TerminalNode
SEL(i int) antlr.TerminalNode
RPAR() antlr.TerminalNode
AllCOMMA() []antlr.TerminalNode
COMMA(i int) antlr.TerminalNode
2020-08-06 20:58:47 +03:00
// IsGroupContext differentiates from other interfaces.
IsGroupContext()
2016-10-17 07:14:01 +03:00
}
2020-08-06 20:58:47 +03:00
type GroupContext struct {
2016-10-17 07:14:01 +03:00
*antlr.BaseParserRuleContext
parser antlr.Parser
}
2020-08-06 20:58:47 +03:00
func NewEmptyGroupContext() *GroupContext {
var p = new(GroupContext)
2016-10-17 07:14:01 +03:00
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
2020-08-06 20:58:47 +03:00
p.RuleIndex = SLQParserRULE_group
2016-10-17 07:14:01 +03:00
return p
}
2020-08-06 20:58:47 +03:00
func (*GroupContext) IsGroupContext() {}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
func NewGroupContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *GroupContext {
var p = new(GroupContext)
2016-10-17 07:14:01 +03:00
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
p.parser = parser
2020-08-06 20:58:47 +03:00
p.RuleIndex = SLQParserRULE_group
2016-10-17 07:14:01 +03:00
return p
}
2020-08-06 20:58:47 +03:00
func (s *GroupContext) GetParser() antlr.Parser { return s.parser }
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
func (s *GroupContext) LPAR() antlr.TerminalNode {
return s.GetToken(SLQParserLPAR, 0)
}
func (s *GroupContext) AllSEL() []antlr.TerminalNode {
2016-10-17 07:14:01 +03:00
return s.GetTokens(SLQParserSEL)
}
2020-08-06 20:58:47 +03:00
func (s *GroupContext) SEL(i int) antlr.TerminalNode {
2016-10-17 07:14:01 +03:00
return s.GetToken(SLQParserSEL, i)
}
2020-08-06 20:58:47 +03:00
func (s *GroupContext) RPAR() antlr.TerminalNode {
return s.GetToken(SLQParserRPAR, 0)
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
func (s *GroupContext) AllCOMMA() []antlr.TerminalNode {
return s.GetTokens(SLQParserCOMMA)
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
func (s *GroupContext) COMMA(i int) antlr.TerminalNode {
return s.GetToken(SLQParserCOMMA, i)
2016-10-17 07:14:01 +03:00
}
2020-08-06 20:58:47 +03:00
func (s *GroupContext) GetRuleContext() antlr.RuleContext {
2016-10-17 07:14:01 +03:00
return s
}
2020-08-06 20:58:47 +03:00
func (s *GroupContext) 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
}
2020-08-06 20:58:47 +03:00
func (s *GroupContext) 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.EnterGroup(s)
2016-10-17 07:14:01 +03:00
}
}
2020-08-06 20:58:47 +03:00
func (s *GroupContext) 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.ExitGroup(s)
2016-10-17 07:14:01 +03:00
}
}
func (s *GroupContext) 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.VisitGroup(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) Group() (localctx IGroupContext) {
this := p
_ = this
2020-08-06 20:58:47 +03:00
localctx = NewGroupContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 16, SLQParserRULE_group)
var _la int
2016-10-17 07:14:01 +03:00
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
2020-08-06 20:58:47 +03:00
p.EnterOuterAlt(localctx, 1)
{
p.SetState(113)
_la = p.GetTokenStream().LA(1)
2016-10-31 01:35:56 +03:00
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&448) != 0) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
{
p.SetState(114)
p.Match(SLQParserLPAR)
}
{
p.SetState(115)
2016-10-31 01:35:56 +03:00
p.Match(SLQParserSEL)
2020-08-06 20:58:47 +03:00
}
p.SetState(120)
p.GetErrorHandler().Sync(p)
_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(116)
p.Match(SLQParserCOMMA)
}
{
p.SetState(117)
p.Match(SLQParserSEL)
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
p.SetState(122)
p.GetErrorHandler().Sync(p)
_la = p.GetTokenStream().LA(1)
}
{
p.SetState(123)
p.Match(SLQParserRPAR)
2016-10-17 07:14:01 +03:00
}
return localctx
}
// ISelElementContext is an interface to support dynamic dispatch.
type ISelElementContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
SEL() antlr.TerminalNode
2016-10-31 01:35:56 +03:00
// IsSelElementContext differentiates from other interfaces.
IsSelElementContext()
2016-10-17 07:14:01 +03:00
}
type SelElementContext struct {
*antlr.BaseParserRuleContext
parser antlr.Parser
}
func NewEmptySelElementContext() *SelElementContext {
var p = new(SelElementContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
p.RuleIndex = SLQParserRULE_selElement
return p
}
2016-10-31 01:35:56 +03:00
func (*SelElementContext) IsSelElementContext() {}
2016-10-17 07:14:01 +03:00
func NewSelElementContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *SelElementContext {
var p = new(SelElementContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_selElement
return p
}
func (s *SelElementContext) GetParser() antlr.Parser { return s.parser }
func (s *SelElementContext) SEL() antlr.TerminalNode {
return s.GetToken(SLQParserSEL, 0)
}
func (s *SelElementContext) GetRuleContext() antlr.RuleContext {
return s
}
2016-10-31 01:35:56 +03:00
func (s *SelElementContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
2016-10-17 07:14:01 +03:00
func (s *SelElementContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterSelElement(s)
}
}
func (s *SelElementContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitSelElement(s)
}
}
func (s *SelElementContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitSelElement(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) SelElement() (localctx ISelElementContext) {
this := p
_ = this
2016-10-17 07:14:01 +03:00
localctx = NewSelElementContext(p, p.GetParserRuleContext(), p.GetState())
2020-08-06 20:58:47 +03:00
p.EnterRule(localctx, 18, SLQParserRULE_selElement)
2016-10-17 07:14:01 +03:00
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(125)
p.Match(SLQParserSEL)
}
2016-10-17 07:14:01 +03:00
return localctx
}
// IDsTblElementContext is an interface to support dynamic dispatch.
type IDsTblElementContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
DATASOURCE() antlr.TerminalNode
SEL() antlr.TerminalNode
2016-10-31 01:35:56 +03:00
// IsDsTblElementContext differentiates from other interfaces.
IsDsTblElementContext()
2016-10-17 07:14:01 +03:00
}
type DsTblElementContext struct {
*antlr.BaseParserRuleContext
parser antlr.Parser
}
func NewEmptyDsTblElementContext() *DsTblElementContext {
var p = new(DsTblElementContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
p.RuleIndex = SLQParserRULE_dsTblElement
return p
}
2016-10-31 01:35:56 +03:00
func (*DsTblElementContext) IsDsTblElementContext() {}
2016-10-17 07:14:01 +03:00
func NewDsTblElementContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *DsTblElementContext {
var p = new(DsTblElementContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_dsTblElement
return p
}
func (s *DsTblElementContext) GetParser() antlr.Parser { return s.parser }
func (s *DsTblElementContext) DATASOURCE() antlr.TerminalNode {
return s.GetToken(SLQParserDATASOURCE, 0)
}
func (s *DsTblElementContext) SEL() antlr.TerminalNode {
return s.GetToken(SLQParserSEL, 0)
}
func (s *DsTblElementContext) GetRuleContext() antlr.RuleContext {
return s
}
2016-10-31 01:35:56 +03:00
func (s *DsTblElementContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
2016-10-17 07:14:01 +03:00
func (s *DsTblElementContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterDsTblElement(s)
}
}
func (s *DsTblElementContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitDsTblElement(s)
}
}
func (s *DsTblElementContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitDsTblElement(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) DsTblElement() (localctx IDsTblElementContext) {
this := p
_ = this
2016-10-17 07:14:01 +03:00
localctx = NewDsTblElementContext(p, p.GetParserRuleContext(), p.GetState())
2020-08-06 20:58:47 +03:00
p.EnterRule(localctx, 20, SLQParserRULE_dsTblElement)
2016-10-17 07:14:01 +03:00
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(127)
p.Match(SLQParserDATASOURCE)
}
{
p.SetState(128)
p.Match(SLQParserSEL)
}
2016-10-17 07:14:01 +03:00
return localctx
}
// IDsElementContext is an interface to support dynamic dispatch.
type IDsElementContext interface {
antlr.ParserRuleContext
// GetParser returns the parser.
GetParser() antlr.Parser
// Getter signatures
DATASOURCE() antlr.TerminalNode
2016-10-31 01:35:56 +03:00
// IsDsElementContext differentiates from other interfaces.
IsDsElementContext()
2016-10-17 07:14:01 +03:00
}
type DsElementContext struct {
*antlr.BaseParserRuleContext
parser antlr.Parser
}
func NewEmptyDsElementContext() *DsElementContext {
var p = new(DsElementContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
p.RuleIndex = SLQParserRULE_dsElement
return p
}
2016-10-31 01:35:56 +03:00
func (*DsElementContext) IsDsElementContext() {}
2016-10-17 07:14:01 +03:00
func NewDsElementContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *DsElementContext {
var p = new(DsElementContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_dsElement
return p
}
func (s *DsElementContext) GetParser() antlr.Parser { return s.parser }
func (s *DsElementContext) DATASOURCE() antlr.TerminalNode {
return s.GetToken(SLQParserDATASOURCE, 0)
}
func (s *DsElementContext) GetRuleContext() antlr.RuleContext {
return s
}
2016-10-31 01:35:56 +03:00
func (s *DsElementContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
2016-10-17 07:14:01 +03:00
func (s *DsElementContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterDsElement(s)
}
}
func (s *DsElementContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitDsElement(s)
}
}
func (s *DsElementContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2016-10-17 07:14:01 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitDsElement(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) DsElement() (localctx IDsElementContext) {
this := p
_ = this
2016-10-17 07:14:01 +03:00
localctx = NewDsElementContext(p, p.GetParserRuleContext(), p.GetState())
2020-08-06 20:58:47 +03:00
p.EnterRule(localctx, 22, SLQParserRULE_dsElement)
2016-10-17 07:14:01 +03:00
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(130)
p.Match(SLQParserDATASOURCE)
}
2016-10-17 07:14:01 +03:00
return localctx
}
// 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 {
*antlr.BaseParserRuleContext
parser antlr.Parser
}
func NewEmptyRowRangeContext() *RowRangeContext {
var p = new(RowRangeContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
p.RuleIndex = SLQParserRULE_rowRange
return p
}
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)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
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) {
this := p
_ = this
2016-10-17 07:14:01 +03:00
localctx = NewRowRangeContext(p, p.GetParserRuleContext(), p.GetState())
2020-08-06 20:58:47 +03:00
p.EnterRule(localctx, 24, SLQParserRULE_rowRange)
2016-10-17 07:14:01 +03:00
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
p.EnterOuterAlt(localctx, 1)
2020-08-06 20:58:47 +03:00
{
p.SetState(132)
p.Match(SLQParserT__8)
}
p.SetState(141)
2016-10-17 07:14:01 +03:00
p.GetErrorHandler().Sync(p)
2020-08-06 20:58:47 +03:00
if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 11, p.GetParserRuleContext()) == 1 {
{
p.SetState(133)
p.Match(SLQParserNN)
}
{
p.SetState(134)
p.Match(SLQParserCOLON)
}
{
p.SetState(135)
p.Match(SLQParserNN)
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
} else if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 11, p.GetParserRuleContext()) == 2 {
{
p.SetState(136)
p.Match(SLQParserNN)
}
{
p.SetState(137)
p.Match(SLQParserCOLON)
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
} else if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 11, p.GetParserRuleContext()) == 3 {
{
p.SetState(138)
p.Match(SLQParserCOLON)
}
{
p.SetState(139)
p.Match(SLQParserNN)
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
} else if p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 11, p.GetParserRuleContext()) == 4 {
{
p.SetState(140)
p.Match(SLQParserNN)
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
}
{
p.SetState(143)
p.Match(SLQParserRBRA)
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
return localctx
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
// IFnNameContext is an interface to support dynamic dispatch.
type IFnNameContext interface {
antlr.ParserRuleContext
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
// GetParser returns the parser.
GetParser() antlr.Parser
// IsFnNameContext differentiates from other interfaces.
IsFnNameContext()
}
2016-10-17 07:14:01 +03:00
2020-08-06 20:58:47 +03:00
type FnNameContext struct {
*antlr.BaseParserRuleContext
parser antlr.Parser
}
func NewEmptyFnNameContext() *FnNameContext {
var p = new(FnNameContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
p.RuleIndex = SLQParserRULE_fnName
return p
}
func (*FnNameContext) IsFnNameContext() {}
func NewFnNameContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *FnNameContext {
var p = new(FnNameContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_fnName
return p
}
func (s *FnNameContext) GetParser() antlr.Parser { return s.parser }
func (s *FnNameContext) GetRuleContext() antlr.RuleContext {
return s
}
func (s *FnNameContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string {
return antlr.TreesStringTree(s, ruleNames, recog)
}
func (s *FnNameContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.EnterFnName(s)
}
}
func (s *FnNameContext) ExitRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SLQListener); ok {
listenerT.ExitFnName(s)
}
}
2016-10-17 07:14:01 +03:00
func (s *FnNameContext) Accept(visitor antlr.ParseTreeVisitor) interface{} {
2020-08-06 20:58:47 +03:00
switch t := visitor.(type) {
case SLQVisitor:
return t.VisitFnName(s)
default:
return t.VisitChildren(s)
}
}
func (p *SLQParser) FnName() (localctx IFnNameContext) {
this := p
_ = this
2020-08-06 20:58:47 +03:00
localctx = NewFnNameContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 26, SLQParserRULE_fnName)
var _la int
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
p.EnterOuterAlt(localctx, 1)
{
p.SetState(145)
_la = p.GetTokenStream().LA(1)
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&261120) != 0) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
2016-10-17 07:14:01 +03:00
}
return localctx
}
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
SEL() antlr.TerminalNode
Literal() ILiteralContext
UnaryOperator() IUnaryOperatorContext
AllExpr() []IExprContext
Expr(i int) IExprContext
Fn() IFnContext
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 {
*antlr.BaseParserRuleContext
parser antlr.Parser
}
func NewEmptyExprContext() *ExprContext {
var p = new(ExprContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
p.RuleIndex = SLQParserRULE_expr
return p
}
func (*ExprContext) IsExprContext() {}
func NewExprContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ExprContext {
var p = new(ExprContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
p.parser = parser
p.RuleIndex = SLQParserRULE_expr
return p
}
func (s *ExprContext) GetParser() antlr.Parser { return s.parser }
func (s *ExprContext) SEL() antlr.TerminalNode {
return s.GetToken(SLQParserSEL, 0)
}
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) 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) AllExpr() []IExprContext {
children := s.GetChildren()
len := 0
for _, ctx := range children {
if _, ok := ctx.(IExprContext); ok {
len++
}
}
2020-08-06 20:58:47 +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++
2020-08-06 20:58:47 +03:00
}
}
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++
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IExprContext)
}
func (s *ExprContext) Fn() IFnContext {
var t antlr.RuleContext
for _, ctx := range s.GetChildren() {
if _, ok := ctx.(IFnContext); ok {
t = ctx.(antlr.RuleContext)
break
}
}
2020-08-06 20:58:47 +03:00
if t == nil {
return nil
}
return t.(IFnContext)
}
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) {
this := p
_ = this
2020-08-06 20:58:47 +03:00
var _parentctx antlr.ParserRuleContext = p.GetParserRuleContext()
_parentState := p.GetState()
localctx = NewExprContext(p, p.GetParserRuleContext(), _parentState)
var _prevctx IExprContext = localctx
var _ antlr.ParserRuleContext = _prevctx // TODO: To prevent unused variable warning.
_startState := 28
p.EnterRecursionRule(localctx, 28, SLQParserRULE_expr, _p)
var _la int
defer func() {
p.UnrollRecursionContexts(_parentctx)
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
var _alt int
p.EnterOuterAlt(localctx, 1)
p.SetState(154)
p.GetErrorHandler().Sync(p)
switch p.GetTokenStream().LA(1) {
case SLQParserSEL:
{
p.SetState(148)
p.Match(SLQParserSEL)
}
case SLQParserNULL, SLQParserNN, SLQParserNUMBER, SLQParserSTRING:
{
p.SetState(149)
p.Literal()
}
case SLQParserT__20, SLQParserT__21, SLQParserT__26, SLQParserT__27:
{
p.SetState(150)
p.UnaryOperator()
}
{
p.SetState(151)
p.expr(9)
}
case SLQParserT__9, SLQParserT__10, SLQParserT__11, SLQParserT__12, SLQParserT__13, SLQParserT__14, SLQParserT__15, SLQParserT__16:
{
p.SetState(153)
p.Fn()
}
default:
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
}
p.GetParserRuleContext().SetStop(p.GetTokenStream().LT(-1))
p.SetState(183)
p.GetErrorHandler().Sync(p)
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 15, p.GetParserRuleContext())
for _alt != 2 && _alt != antlr.ATNInvalidAltNumber {
if _alt == 1 {
if p.GetParseListeners() != nil {
p.TriggerExitRuleEvent()
}
_prevctx = localctx
p.SetState(181)
p.GetErrorHandler().Sync(p)
switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 14, p.GetParserRuleContext()) {
case 1:
localctx = NewExprContext(p, _parentctx, _parentState)
p.PushNewRecursionContext(localctx, _startState, SLQParserRULE_expr)
p.SetState(156)
if !(p.Precpred(p.GetParserRuleContext(), 8)) {
panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 8)", ""))
}
{
p.SetState(157)
p.Match(SLQParserT__17)
}
{
p.SetState(158)
p.expr(9)
}
case 2:
localctx = NewExprContext(p, _parentctx, _parentState)
p.PushNewRecursionContext(localctx, _startState, SLQParserRULE_expr)
p.SetState(159)
if !(p.Precpred(p.GetParserRuleContext(), 7)) {
panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 7)", ""))
}
{
p.SetState(160)
_la = p.GetTokenStream().LA(1)
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&1572868) != 0) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
{
p.SetState(161)
p.expr(8)
}
case 3:
localctx = NewExprContext(p, _parentctx, _parentState)
p.PushNewRecursionContext(localctx, _startState, SLQParserRULE_expr)
p.SetState(162)
if !(p.Precpred(p.GetParserRuleContext(), 6)) {
panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 6)", ""))
}
{
p.SetState(163)
_la = p.GetTokenStream().LA(1)
if !(_la == SLQParserT__20 || _la == SLQParserT__21) {
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
{
p.SetState(164)
p.expr(7)
}
case 4:
localctx = NewExprContext(p, _parentctx, _parentState)
p.PushNewRecursionContext(localctx, _startState, SLQParserRULE_expr)
p.SetState(165)
if !(p.Precpred(p.GetParserRuleContext(), 5)) {
panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 5)", ""))
}
{
p.SetState(166)
_la = p.GetTokenStream().LA(1)
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&58720256) != 0) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
{
p.SetState(167)
p.expr(6)
}
case 5:
localctx = NewExprContext(p, _parentctx, _parentState)
p.PushNewRecursionContext(localctx, _startState, SLQParserRULE_expr)
p.SetState(168)
if !(p.Precpred(p.GetParserRuleContext(), 4)) {
panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 4)", ""))
}
{
p.SetState(169)
_la = p.GetTokenStream().LA(1)
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&32985348833280) != 0) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
{
p.SetState(170)
p.expr(5)
}
case 6:
localctx = NewExprContext(p, _parentctx, _parentState)
p.PushNewRecursionContext(localctx, _startState, SLQParserRULE_expr)
p.SetState(171)
if !(p.Precpred(p.GetParserRuleContext(), 3)) {
panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 3)", ""))
}
p.SetState(175)
p.GetErrorHandler().Sync(p)
switch p.GetTokenStream().LA(1) {
case SLQParserEQ:
{
p.SetState(172)
p.Match(SLQParserEQ)
}
case SLQParserNEQ:
{
p.SetState(173)
p.Match(SLQParserNEQ)
}
case SLQParserT__9, SLQParserT__10, SLQParserT__11, SLQParserT__12, SLQParserT__13, SLQParserT__14, SLQParserT__15, SLQParserT__16, SLQParserT__20, SLQParserT__21, SLQParserT__26, SLQParserT__27, SLQParserNULL, SLQParserNN, SLQParserNUMBER, SLQParserSEL, SLQParserSTRING:
default:
panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil))
}
{
p.SetState(177)
p.expr(4)
}
case 7:
localctx = NewExprContext(p, _parentctx, _parentState)
p.PushNewRecursionContext(localctx, _startState, SLQParserRULE_expr)
p.SetState(178)
if !(p.Precpred(p.GetParserRuleContext(), 2)) {
panic(antlr.NewFailedPredicateException(p, "p.Precpred(p.GetParserRuleContext(), 2)", ""))
}
{
p.SetState(179)
p.Match(SLQParserT__25)
}
{
p.SetState(180)
p.expr(3)
}
}
}
p.SetState(185)
p.GetErrorHandler().Sync(p)
_alt = p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 15, p.GetParserRuleContext())
}
return localctx
}
// 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 {
*antlr.BaseParserRuleContext
parser antlr.Parser
}
func NewEmptyLiteralContext() *LiteralContext {
var p = new(LiteralContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
p.RuleIndex = SLQParserRULE_literal
return p
}
func (*LiteralContext) IsLiteralContext() {}
func NewLiteralContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *LiteralContext {
var p = new(LiteralContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
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) {
this := p
_ = this
2020-08-06 20:58:47 +03:00
localctx = NewLiteralContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 30, SLQParserRULE_literal)
var _la int
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
p.EnterOuterAlt(localctx, 1)
{
p.SetState(186)
_la = p.GetTokenStream().LA(1)
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&564874098769920) != 0) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
return localctx
}
// 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 {
*antlr.BaseParserRuleContext
parser antlr.Parser
}
func NewEmptyUnaryOperatorContext() *UnaryOperatorContext {
var p = new(UnaryOperatorContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1)
p.RuleIndex = SLQParserRULE_unaryOperator
return p
}
func (*UnaryOperatorContext) IsUnaryOperatorContext() {}
func NewUnaryOperatorContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *UnaryOperatorContext {
var p = new(UnaryOperatorContext)
p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState)
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) {
this := p
_ = this
2020-08-06 20:58:47 +03:00
localctx = NewUnaryOperatorContext(p, p.GetParserRuleContext(), p.GetState())
p.EnterRule(localctx, 32, SLQParserRULE_unaryOperator)
var _la int
defer func() {
p.ExitRule()
}()
defer func() {
if err := recover(); err != nil {
if v, ok := err.(antlr.RecognitionException); ok {
localctx.SetException(v)
p.GetErrorHandler().ReportError(p, v)
p.GetErrorHandler().Recover(p, v)
} else {
panic(err)
}
}
}()
p.EnterOuterAlt(localctx, 1)
{
p.SetState(188)
_la = p.GetTokenStream().LA(1)
if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&408944640) != 0) {
2020-08-06 20:58:47 +03:00
p.GetErrorHandler().RecoverInline(p)
} else {
p.GetErrorHandler().ReportMatch(p)
p.Consume()
}
}
return localctx
}
func (p *SLQParser) Sempred(localctx antlr.RuleContext, ruleIndex, predIndex int) bool {
switch ruleIndex {
case 14:
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 {
this := p
_ = this
2020-08-06 20:58:47 +03:00
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))
}
}