drivers/golang/parser/age_parser.go (1,214 lines of code) (raw):

// Code generated from java-escape by ANTLR 4.11.1. DO NOT EDIT. package parser // Age import ( "fmt" "strconv" "sync" "github.com/antlr/antlr4/runtime/Go/antlr/v4" ) // Suppress unused import errors var _ = fmt.Printf var _ = strconv.Itoa var _ = sync.Once{} type AgeParser struct { *antlr.BaseParser } var ageParserStaticData struct { once sync.Once serializedATN []int32 literalNames []string symbolicNames []string ruleNames []string predictionContextCache *antlr.PredictionContextCache atn *antlr.ATN decisionToDFA []*antlr.DFA } func ageParserInit() { staticData := &ageParserStaticData staticData.literalNames = []string{ "", "'['", "','", "']'", "'{'", "'}'", "':'", "'::vertex'", "'::edge'", "'::path'", "'::numeric'", "", "", "'null'", } staticData.symbolicNames = []string{ "", "", "", "", "", "", "", "KW_VERTEX", "KW_EDGE", "KW_PATH", "KW_NUMERIC", "STRING", "BOOL", "NULL", "NUMBER", "FLOAT_EXPR", "NUMERIC", "WS", } staticData.ruleNames = []string{ "ageout", "vertex", "edge", "path", "value", "properties", "pair", "arr", } staticData.predictionContextCache = antlr.NewPredictionContextCache() staticData.serializedATN = []int32{ 4, 1, 17, 88, 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, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 21, 8, 0, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 5, 3, 36, 8, 3, 10, 3, 12, 3, 39, 9, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 52, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 58, 8, 5, 10, 5, 12, 5, 61, 9, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 67, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, 77, 8, 7, 10, 7, 12, 7, 80, 9, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 86, 8, 7, 1, 7, 0, 0, 8, 0, 2, 4, 6, 8, 10, 12, 14, 0, 0, 94, 0, 20, 1, 0, 0, 0, 2, 22, 1, 0, 0, 0, 4, 25, 1, 0, 0, 0, 6, 28, 1, 0, 0, 0, 8, 51, 1, 0, 0, 0, 10, 66, 1, 0, 0, 0, 12, 68, 1, 0, 0, 0, 14, 85, 1, 0, 0, 0, 16, 21, 3, 8, 4, 0, 17, 21, 3, 2, 1, 0, 18, 21, 3, 4, 2, 0, 19, 21, 3, 6, 3, 0, 20, 16, 1, 0, 0, 0, 20, 17, 1, 0, 0, 0, 20, 18, 1, 0, 0, 0, 20, 19, 1, 0, 0, 0, 21, 1, 1, 0, 0, 0, 22, 23, 3, 10, 5, 0, 23, 24, 5, 7, 0, 0, 24, 3, 1, 0, 0, 0, 25, 26, 3, 10, 5, 0, 26, 27, 5, 8, 0, 0, 27, 5, 1, 0, 0, 0, 28, 29, 5, 1, 0, 0, 29, 37, 3, 2, 1, 0, 30, 31, 5, 2, 0, 0, 31, 32, 3, 4, 2, 0, 32, 33, 5, 2, 0, 0, 33, 34, 3, 2, 1, 0, 34, 36, 1, 0, 0, 0, 35, 30, 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, 41, 5, 3, 0, 0, 41, 42, 5, 9, 0, 0, 42, 7, 1, 0, 0, 0, 43, 52, 5, 11, 0, 0, 44, 52, 5, 14, 0, 0, 45, 52, 5, 16, 0, 0, 46, 52, 5, 15, 0, 0, 47, 52, 5, 12, 0, 0, 48, 52, 5, 13, 0, 0, 49, 52, 3, 10, 5, 0, 50, 52, 3, 14, 7, 0, 51, 43, 1, 0, 0, 0, 51, 44, 1, 0, 0, 0, 51, 45, 1, 0, 0, 0, 51, 46, 1, 0, 0, 0, 51, 47, 1, 0, 0, 0, 51, 48, 1, 0, 0, 0, 51, 49, 1, 0, 0, 0, 51, 50, 1, 0, 0, 0, 52, 9, 1, 0, 0, 0, 53, 54, 5, 4, 0, 0, 54, 59, 3, 12, 6, 0, 55, 56, 5, 2, 0, 0, 56, 58, 3, 12, 6, 0, 57, 55, 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, 63, 5, 5, 0, 0, 63, 67, 1, 0, 0, 0, 64, 65, 5, 4, 0, 0, 65, 67, 5, 5, 0, 0, 66, 53, 1, 0, 0, 0, 66, 64, 1, 0, 0, 0, 67, 11, 1, 0, 0, 0, 68, 69, 5, 11, 0, 0, 69, 70, 5, 6, 0, 0, 70, 71, 3, 8, 4, 0, 71, 13, 1, 0, 0, 0, 72, 73, 5, 1, 0, 0, 73, 78, 3, 8, 4, 0, 74, 75, 5, 2, 0, 0, 75, 77, 3, 8, 4, 0, 76, 74, 1, 0, 0, 0, 77, 80, 1, 0, 0, 0, 78, 76, 1, 0, 0, 0, 78, 79, 1, 0, 0, 0, 79, 81, 1, 0, 0, 0, 80, 78, 1, 0, 0, 0, 81, 82, 5, 3, 0, 0, 82, 86, 1, 0, 0, 0, 83, 84, 5, 1, 0, 0, 84, 86, 5, 3, 0, 0, 85, 72, 1, 0, 0, 0, 85, 83, 1, 0, 0, 0, 86, 15, 1, 0, 0, 0, 7, 20, 37, 51, 59, 66, 78, 85, } 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) } } // AgeParserInit initializes any static state used to implement AgeParser. By default the // static state used to implement the parser is lazily initialized during the first call to // NewAgeParser(). You can call this function if you wish to initialize the static state ahead // of time. func AgeParserInit() { staticData := &ageParserStaticData staticData.once.Do(ageParserInit) } // NewAgeParser produces a new parser instance for the optional input antlr.TokenStream. func NewAgeParser(input antlr.TokenStream) *AgeParser { AgeParserInit() this := new(AgeParser) this.BaseParser = antlr.NewBaseParser(input) staticData := &ageParserStaticData 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 = "java-escape" return this } // AgeParser tokens. const ( AgeParserEOF = antlr.TokenEOF AgeParserT__0 = 1 AgeParserT__1 = 2 AgeParserT__2 = 3 AgeParserT__3 = 4 AgeParserT__4 = 5 AgeParserT__5 = 6 AgeParserKW_VERTEX = 7 AgeParserKW_EDGE = 8 AgeParserKW_PATH = 9 AgeParserKW_NUMERIC = 10 AgeParserSTRING = 11 AgeParserBOOL = 12 AgeParserNULL = 13 AgeParserNUMBER = 14 AgeParserFLOAT_EXPR = 15 AgeParserNUMERIC = 16 AgeParserWS = 17 ) // AgeParser rules. const ( AgeParserRULE_ageout = 0 AgeParserRULE_vertex = 1 AgeParserRULE_edge = 2 AgeParserRULE_path = 3 AgeParserRULE_value = 4 AgeParserRULE_properties = 5 AgeParserRULE_pair = 6 AgeParserRULE_arr = 7 ) // IAgeoutContext is an interface to support dynamic dispatch. type IAgeoutContext interface { antlr.ParserRuleContext // GetParser returns the parser. GetParser() antlr.Parser // IsAgeoutContext differentiates from other interfaces. IsAgeoutContext() } type AgeoutContext struct { *antlr.BaseParserRuleContext parser antlr.Parser } func NewEmptyAgeoutContext() *AgeoutContext { var p = new(AgeoutContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1) p.RuleIndex = AgeParserRULE_ageout return p } func (*AgeoutContext) IsAgeoutContext() {} func NewAgeoutContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *AgeoutContext { var p = new(AgeoutContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState) p.parser = parser p.RuleIndex = AgeParserRULE_ageout return p } func (s *AgeoutContext) GetParser() antlr.Parser { return s.parser } func (s *AgeoutContext) Value() IValueContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { if _, ok := ctx.(IValueContext); ok { t = ctx.(antlr.RuleContext) break } } if t == nil { return nil } return t.(IValueContext) } func (s *AgeoutContext) Vertex() IVertexContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { if _, ok := ctx.(IVertexContext); ok { t = ctx.(antlr.RuleContext) break } } if t == nil { return nil } return t.(IVertexContext) } func (s *AgeoutContext) Edge() IEdgeContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { if _, ok := ctx.(IEdgeContext); ok { t = ctx.(antlr.RuleContext) break } } if t == nil { return nil } return t.(IEdgeContext) } func (s *AgeoutContext) Path() IPathContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { if _, ok := ctx.(IPathContext); ok { t = ctx.(antlr.RuleContext) break } } if t == nil { return nil } return t.(IPathContext) } func (s *AgeoutContext) GetRuleContext() antlr.RuleContext { return s } func (s *AgeoutContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { return antlr.TreesStringTree(s, ruleNames, recog) } func (s *AgeoutContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.EnterAgeout(s) } } func (s *AgeoutContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.ExitAgeout(s) } } func (s *AgeoutContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case AgeVisitor: return t.VisitAgeout(s) default: return t.VisitChildren(s) } } func (p *AgeParser) Ageout() (localctx IAgeoutContext) { this := p _ = this localctx = NewAgeoutContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 0, AgeParserRULE_ageout) 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.SetState(20) p.GetErrorHandler().Sync(p) switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 0, p.GetParserRuleContext()) { case 1: p.EnterOuterAlt(localctx, 1) { p.SetState(16) p.Value() } case 2: p.EnterOuterAlt(localctx, 2) { p.SetState(17) p.Vertex() } case 3: p.EnterOuterAlt(localctx, 3) { p.SetState(18) p.Edge() } case 4: p.EnterOuterAlt(localctx, 4) { p.SetState(19) p.Path() } } return localctx } // IVertexContext is an interface to support dynamic dispatch. type IVertexContext interface { antlr.ParserRuleContext // GetParser returns the parser. GetParser() antlr.Parser // IsVertexContext differentiates from other interfaces. IsVertexContext() } type VertexContext struct { *antlr.BaseParserRuleContext parser antlr.Parser } func NewEmptyVertexContext() *VertexContext { var p = new(VertexContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1) p.RuleIndex = AgeParserRULE_vertex return p } func (*VertexContext) IsVertexContext() {} func NewVertexContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *VertexContext { var p = new(VertexContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState) p.parser = parser p.RuleIndex = AgeParserRULE_vertex return p } func (s *VertexContext) GetParser() antlr.Parser { return s.parser } func (s *VertexContext) Properties() IPropertiesContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { if _, ok := ctx.(IPropertiesContext); ok { t = ctx.(antlr.RuleContext) break } } if t == nil { return nil } return t.(IPropertiesContext) } func (s *VertexContext) KW_VERTEX() antlr.TerminalNode { return s.GetToken(AgeParserKW_VERTEX, 0) } func (s *VertexContext) GetRuleContext() antlr.RuleContext { return s } func (s *VertexContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { return antlr.TreesStringTree(s, ruleNames, recog) } func (s *VertexContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.EnterVertex(s) } } func (s *VertexContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.ExitVertex(s) } } func (s *VertexContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case AgeVisitor: return t.VisitVertex(s) default: return t.VisitChildren(s) } } func (p *AgeParser) Vertex() (localctx IVertexContext) { this := p _ = this localctx = NewVertexContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 2, AgeParserRULE_vertex) 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(22) p.Properties() } { p.SetState(23) p.Match(AgeParserKW_VERTEX) } return localctx } // IEdgeContext is an interface to support dynamic dispatch. type IEdgeContext interface { antlr.ParserRuleContext // GetParser returns the parser. GetParser() antlr.Parser // IsEdgeContext differentiates from other interfaces. IsEdgeContext() } type EdgeContext struct { *antlr.BaseParserRuleContext parser antlr.Parser } func NewEmptyEdgeContext() *EdgeContext { var p = new(EdgeContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1) p.RuleIndex = AgeParserRULE_edge return p } func (*EdgeContext) IsEdgeContext() {} func NewEdgeContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *EdgeContext { var p = new(EdgeContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState) p.parser = parser p.RuleIndex = AgeParserRULE_edge return p } func (s *EdgeContext) GetParser() antlr.Parser { return s.parser } func (s *EdgeContext) Properties() IPropertiesContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { if _, ok := ctx.(IPropertiesContext); ok { t = ctx.(antlr.RuleContext) break } } if t == nil { return nil } return t.(IPropertiesContext) } func (s *EdgeContext) KW_EDGE() antlr.TerminalNode { return s.GetToken(AgeParserKW_EDGE, 0) } func (s *EdgeContext) GetRuleContext() antlr.RuleContext { return s } func (s *EdgeContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { return antlr.TreesStringTree(s, ruleNames, recog) } func (s *EdgeContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.EnterEdge(s) } } func (s *EdgeContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.ExitEdge(s) } } func (s *EdgeContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case AgeVisitor: return t.VisitEdge(s) default: return t.VisitChildren(s) } } func (p *AgeParser) Edge() (localctx IEdgeContext) { this := p _ = this localctx = NewEdgeContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 4, AgeParserRULE_edge) 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(25) p.Properties() } { p.SetState(26) p.Match(AgeParserKW_EDGE) } return localctx } // IPathContext is an interface to support dynamic dispatch. type IPathContext interface { antlr.ParserRuleContext // GetParser returns the parser. GetParser() antlr.Parser // IsPathContext differentiates from other interfaces. IsPathContext() } type PathContext struct { *antlr.BaseParserRuleContext parser antlr.Parser } func NewEmptyPathContext() *PathContext { var p = new(PathContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1) p.RuleIndex = AgeParserRULE_path return p } func (*PathContext) IsPathContext() {} func NewPathContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *PathContext { var p = new(PathContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState) p.parser = parser p.RuleIndex = AgeParserRULE_path return p } func (s *PathContext) GetParser() antlr.Parser { return s.parser } func (s *PathContext) AllVertex() []IVertexContext { children := s.GetChildren() len := 0 for _, ctx := range children { if _, ok := ctx.(IVertexContext); ok { len++ } } tst := make([]IVertexContext, len) i := 0 for _, ctx := range children { if t, ok := ctx.(IVertexContext); ok { tst[i] = t.(IVertexContext) i++ } } return tst } func (s *PathContext) Vertex(i int) IVertexContext { var t antlr.RuleContext j := 0 for _, ctx := range s.GetChildren() { if _, ok := ctx.(IVertexContext); ok { if j == i { t = ctx.(antlr.RuleContext) break } j++ } } if t == nil { return nil } return t.(IVertexContext) } func (s *PathContext) KW_PATH() antlr.TerminalNode { return s.GetToken(AgeParserKW_PATH, 0) } func (s *PathContext) AllEdge() []IEdgeContext { children := s.GetChildren() len := 0 for _, ctx := range children { if _, ok := ctx.(IEdgeContext); ok { len++ } } tst := make([]IEdgeContext, len) i := 0 for _, ctx := range children { if t, ok := ctx.(IEdgeContext); ok { tst[i] = t.(IEdgeContext) i++ } } return tst } func (s *PathContext) Edge(i int) IEdgeContext { var t antlr.RuleContext j := 0 for _, ctx := range s.GetChildren() { if _, ok := ctx.(IEdgeContext); ok { if j == i { t = ctx.(antlr.RuleContext) break } j++ } } if t == nil { return nil } return t.(IEdgeContext) } func (s *PathContext) GetRuleContext() antlr.RuleContext { return s } func (s *PathContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { return antlr.TreesStringTree(s, ruleNames, recog) } func (s *PathContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.EnterPath(s) } } func (s *PathContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.ExitPath(s) } } func (s *PathContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case AgeVisitor: return t.VisitPath(s) default: return t.VisitChildren(s) } } func (p *AgeParser) Path() (localctx IPathContext) { this := p _ = this localctx = NewPathContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 6, AgeParserRULE_path) 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(28) p.Match(AgeParserT__0) } { p.SetState(29) p.Vertex() } p.SetState(37) p.GetErrorHandler().Sync(p) _la = p.GetTokenStream().LA(1) for _la == AgeParserT__1 { { p.SetState(30) p.Match(AgeParserT__1) } { p.SetState(31) p.Edge() } { p.SetState(32) p.Match(AgeParserT__1) } { p.SetState(33) p.Vertex() } p.SetState(39) p.GetErrorHandler().Sync(p) _la = p.GetTokenStream().LA(1) } { p.SetState(40) p.Match(AgeParserT__2) } { p.SetState(41) p.Match(AgeParserKW_PATH) } return localctx } // IValueContext is an interface to support dynamic dispatch. type IValueContext interface { antlr.ParserRuleContext // GetParser returns the parser. GetParser() antlr.Parser // IsValueContext differentiates from other interfaces. IsValueContext() } type ValueContext struct { *antlr.BaseParserRuleContext parser antlr.Parser } func NewEmptyValueContext() *ValueContext { var p = new(ValueContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1) p.RuleIndex = AgeParserRULE_value return p } func (*ValueContext) IsValueContext() {} func NewValueContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ValueContext { var p = new(ValueContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState) p.parser = parser p.RuleIndex = AgeParserRULE_value return p } func (s *ValueContext) GetParser() antlr.Parser { return s.parser } func (s *ValueContext) STRING() antlr.TerminalNode { return s.GetToken(AgeParserSTRING, 0) } func (s *ValueContext) NUMBER() antlr.TerminalNode { return s.GetToken(AgeParserNUMBER, 0) } func (s *ValueContext) NUMERIC() antlr.TerminalNode { return s.GetToken(AgeParserNUMERIC, 0) } func (s *ValueContext) FLOAT_EXPR() antlr.TerminalNode { return s.GetToken(AgeParserFLOAT_EXPR, 0) } func (s *ValueContext) BOOL() antlr.TerminalNode { return s.GetToken(AgeParserBOOL, 0) } func (s *ValueContext) NULL() antlr.TerminalNode { return s.GetToken(AgeParserNULL, 0) } func (s *ValueContext) Properties() IPropertiesContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { if _, ok := ctx.(IPropertiesContext); ok { t = ctx.(antlr.RuleContext) break } } if t == nil { return nil } return t.(IPropertiesContext) } func (s *ValueContext) Arr() IArrContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { if _, ok := ctx.(IArrContext); ok { t = ctx.(antlr.RuleContext) break } } if t == nil { return nil } return t.(IArrContext) } func (s *ValueContext) GetRuleContext() antlr.RuleContext { return s } func (s *ValueContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { return antlr.TreesStringTree(s, ruleNames, recog) } func (s *ValueContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.EnterValue(s) } } func (s *ValueContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.ExitValue(s) } } func (s *ValueContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case AgeVisitor: return t.VisitValue(s) default: return t.VisitChildren(s) } } func (p *AgeParser) Value() (localctx IValueContext) { this := p _ = this localctx = NewValueContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 8, AgeParserRULE_value) 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.SetState(51) p.GetErrorHandler().Sync(p) switch p.GetTokenStream().LA(1) { case AgeParserSTRING: p.EnterOuterAlt(localctx, 1) { p.SetState(43) p.Match(AgeParserSTRING) } case AgeParserNUMBER: p.EnterOuterAlt(localctx, 2) { p.SetState(44) p.Match(AgeParserNUMBER) } case AgeParserNUMERIC: p.EnterOuterAlt(localctx, 3) { p.SetState(45) p.Match(AgeParserNUMERIC) } case AgeParserFLOAT_EXPR: p.EnterOuterAlt(localctx, 4) { p.SetState(46) p.Match(AgeParserFLOAT_EXPR) } case AgeParserBOOL: p.EnterOuterAlt(localctx, 5) { p.SetState(47) p.Match(AgeParserBOOL) } case AgeParserNULL: p.EnterOuterAlt(localctx, 6) { p.SetState(48) p.Match(AgeParserNULL) } case AgeParserT__3: p.EnterOuterAlt(localctx, 7) { p.SetState(49) p.Properties() } case AgeParserT__0: p.EnterOuterAlt(localctx, 8) { p.SetState(50) p.Arr() } default: panic(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil)) } return localctx } // IPropertiesContext is an interface to support dynamic dispatch. type IPropertiesContext interface { antlr.ParserRuleContext // GetParser returns the parser. GetParser() antlr.Parser // IsPropertiesContext differentiates from other interfaces. IsPropertiesContext() } type PropertiesContext struct { *antlr.BaseParserRuleContext parser antlr.Parser } func NewEmptyPropertiesContext() *PropertiesContext { var p = new(PropertiesContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1) p.RuleIndex = AgeParserRULE_properties return p } func (*PropertiesContext) IsPropertiesContext() {} func NewPropertiesContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *PropertiesContext { var p = new(PropertiesContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState) p.parser = parser p.RuleIndex = AgeParserRULE_properties return p } func (s *PropertiesContext) GetParser() antlr.Parser { return s.parser } func (s *PropertiesContext) AllPair() []IPairContext { children := s.GetChildren() len := 0 for _, ctx := range children { if _, ok := ctx.(IPairContext); ok { len++ } } tst := make([]IPairContext, len) i := 0 for _, ctx := range children { if t, ok := ctx.(IPairContext); ok { tst[i] = t.(IPairContext) i++ } } return tst } func (s *PropertiesContext) Pair(i int) IPairContext { var t antlr.RuleContext j := 0 for _, ctx := range s.GetChildren() { if _, ok := ctx.(IPairContext); ok { if j == i { t = ctx.(antlr.RuleContext) break } j++ } } if t == nil { return nil } return t.(IPairContext) } func (s *PropertiesContext) GetRuleContext() antlr.RuleContext { return s } func (s *PropertiesContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { return antlr.TreesStringTree(s, ruleNames, recog) } func (s *PropertiesContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.EnterProperties(s) } } func (s *PropertiesContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.ExitProperties(s) } } func (s *PropertiesContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case AgeVisitor: return t.VisitProperties(s) default: return t.VisitChildren(s) } } func (p *AgeParser) Properties() (localctx IPropertiesContext) { this := p _ = this localctx = NewPropertiesContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 10, AgeParserRULE_properties) 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.SetState(66) p.GetErrorHandler().Sync(p) switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 4, p.GetParserRuleContext()) { case 1: p.EnterOuterAlt(localctx, 1) { p.SetState(53) p.Match(AgeParserT__3) } { p.SetState(54) p.Pair() } p.SetState(59) p.GetErrorHandler().Sync(p) _la = p.GetTokenStream().LA(1) for _la == AgeParserT__1 { { p.SetState(55) p.Match(AgeParserT__1) } { p.SetState(56) p.Pair() } p.SetState(61) p.GetErrorHandler().Sync(p) _la = p.GetTokenStream().LA(1) } { p.SetState(62) p.Match(AgeParserT__4) } case 2: p.EnterOuterAlt(localctx, 2) { p.SetState(64) p.Match(AgeParserT__3) } { p.SetState(65) p.Match(AgeParserT__4) } } return localctx } // IPairContext is an interface to support dynamic dispatch. type IPairContext interface { antlr.ParserRuleContext // GetParser returns the parser. GetParser() antlr.Parser // IsPairContext differentiates from other interfaces. IsPairContext() } type PairContext struct { *antlr.BaseParserRuleContext parser antlr.Parser } func NewEmptyPairContext() *PairContext { var p = new(PairContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1) p.RuleIndex = AgeParserRULE_pair return p } func (*PairContext) IsPairContext() {} func NewPairContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *PairContext { var p = new(PairContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState) p.parser = parser p.RuleIndex = AgeParserRULE_pair return p } func (s *PairContext) GetParser() antlr.Parser { return s.parser } func (s *PairContext) STRING() antlr.TerminalNode { return s.GetToken(AgeParserSTRING, 0) } func (s *PairContext) Value() IValueContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { if _, ok := ctx.(IValueContext); ok { t = ctx.(antlr.RuleContext) break } } if t == nil { return nil } return t.(IValueContext) } func (s *PairContext) GetRuleContext() antlr.RuleContext { return s } func (s *PairContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { return antlr.TreesStringTree(s, ruleNames, recog) } func (s *PairContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.EnterPair(s) } } func (s *PairContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.ExitPair(s) } } func (s *PairContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case AgeVisitor: return t.VisitPair(s) default: return t.VisitChildren(s) } } func (p *AgeParser) Pair() (localctx IPairContext) { this := p _ = this localctx = NewPairContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 12, AgeParserRULE_pair) 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(68) p.Match(AgeParserSTRING) } { p.SetState(69) p.Match(AgeParserT__5) } { p.SetState(70) p.Value() } return localctx } // IArrContext is an interface to support dynamic dispatch. type IArrContext interface { antlr.ParserRuleContext // GetParser returns the parser. GetParser() antlr.Parser // IsArrContext differentiates from other interfaces. IsArrContext() } type ArrContext struct { *antlr.BaseParserRuleContext parser antlr.Parser } func NewEmptyArrContext() *ArrContext { var p = new(ArrContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(nil, -1) p.RuleIndex = AgeParserRULE_arr return p } func (*ArrContext) IsArrContext() {} func NewArrContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ArrContext { var p = new(ArrContext) p.BaseParserRuleContext = antlr.NewBaseParserRuleContext(parent, invokingState) p.parser = parser p.RuleIndex = AgeParserRULE_arr return p } func (s *ArrContext) GetParser() antlr.Parser { return s.parser } func (s *ArrContext) AllValue() []IValueContext { children := s.GetChildren() len := 0 for _, ctx := range children { if _, ok := ctx.(IValueContext); ok { len++ } } tst := make([]IValueContext, len) i := 0 for _, ctx := range children { if t, ok := ctx.(IValueContext); ok { tst[i] = t.(IValueContext) i++ } } return tst } func (s *ArrContext) Value(i int) IValueContext { var t antlr.RuleContext j := 0 for _, ctx := range s.GetChildren() { if _, ok := ctx.(IValueContext); ok { if j == i { t = ctx.(antlr.RuleContext) break } j++ } } if t == nil { return nil } return t.(IValueContext) } func (s *ArrContext) GetRuleContext() antlr.RuleContext { return s } func (s *ArrContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { return antlr.TreesStringTree(s, ruleNames, recog) } func (s *ArrContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.EnterArr(s) } } func (s *ArrContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(AgeListener); ok { listenerT.ExitArr(s) } } func (s *ArrContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case AgeVisitor: return t.VisitArr(s) default: return t.VisitChildren(s) } } func (p *AgeParser) Arr() (localctx IArrContext) { this := p _ = this localctx = NewArrContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 14, AgeParserRULE_arr) 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.SetState(85) p.GetErrorHandler().Sync(p) switch p.GetInterpreter().AdaptivePredict(p.GetTokenStream(), 6, p.GetParserRuleContext()) { case 1: p.EnterOuterAlt(localctx, 1) { p.SetState(72) p.Match(AgeParserT__0) } { p.SetState(73) p.Value() } p.SetState(78) p.GetErrorHandler().Sync(p) _la = p.GetTokenStream().LA(1) for _la == AgeParserT__1 { { p.SetState(74) p.Match(AgeParserT__1) } { p.SetState(75) p.Value() } p.SetState(80) p.GetErrorHandler().Sync(p) _la = p.GetTokenStream().LA(1) } { p.SetState(81) p.Match(AgeParserT__2) } case 2: p.EnterOuterAlt(localctx, 2) { p.SetState(83) p.Match(AgeParserT__0) } { p.SetState(84) p.Match(AgeParserT__2) } } return localctx }