| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| // Code generated from Age.g4 by ANTLR 4.9.2. DO NOT EDIT. |
| |
| package parser // Age |
| |
| import ( |
| "fmt" |
| "reflect" |
| "strconv" |
| |
| "github.com/antlr/antlr4/runtime/Go/antlr" |
| ) |
| |
| // Suppress unused import errors |
| var _ = fmt.Printf |
| var _ = reflect.Copy |
| var _ = strconv.Itoa |
| |
| var parserATN = []uint16{ |
| 3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 19, 90, 4, |
| 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, |
| 8, 9, 8, 4, 9, 9, 9, 3, 2, 3, 2, 3, 2, 3, 2, 5, 2, 23, 10, 2, 3, 3, 3, |
| 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 7, |
| 5, 38, 10, 5, 12, 5, 14, 5, 41, 11, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, |
| 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 54, 10, 6, 3, 7, 3, 7, 3, 7, 3, |
| 7, 7, 7, 60, 10, 7, 12, 7, 14, 7, 63, 11, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, |
| 7, 69, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 7, 9, 79, |
| 10, 9, 12, 9, 14, 9, 82, 11, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 88, 10, 9, |
| 3, 9, 2, 2, 10, 2, 4, 6, 8, 10, 12, 14, 16, 2, 2, 2, 96, 2, 22, 3, 2, 2, |
| 2, 4, 24, 3, 2, 2, 2, 6, 27, 3, 2, 2, 2, 8, 30, 3, 2, 2, 2, 10, 53, 3, |
| 2, 2, 2, 12, 68, 3, 2, 2, 2, 14, 70, 3, 2, 2, 2, 16, 87, 3, 2, 2, 2, 18, |
| 23, 5, 10, 6, 2, 19, 23, 5, 4, 3, 2, 20, 23, 5, 6, 4, 2, 21, 23, 5, 8, |
| 5, 2, 22, 18, 3, 2, 2, 2, 22, 19, 3, 2, 2, 2, 22, 20, 3, 2, 2, 2, 22, 21, |
| 3, 2, 2, 2, 23, 3, 3, 2, 2, 2, 24, 25, 5, 12, 7, 2, 25, 26, 7, 9, 2, 2, |
| 26, 5, 3, 2, 2, 2, 27, 28, 5, 12, 7, 2, 28, 29, 7, 10, 2, 2, 29, 7, 3, |
| 2, 2, 2, 30, 31, 7, 3, 2, 2, 31, 39, 5, 4, 3, 2, 32, 33, 7, 4, 2, 2, 33, |
| 34, 5, 6, 4, 2, 34, 35, 7, 4, 2, 2, 35, 36, 5, 4, 3, 2, 36, 38, 3, 2, 2, |
| 2, 37, 32, 3, 2, 2, 2, 38, 41, 3, 2, 2, 2, 39, 37, 3, 2, 2, 2, 39, 40, |
| 3, 2, 2, 2, 40, 42, 3, 2, 2, 2, 41, 39, 3, 2, 2, 2, 42, 43, 7, 5, 2, 2, |
| 43, 44, 7, 11, 2, 2, 44, 9, 3, 2, 2, 2, 45, 54, 7, 13, 2, 2, 46, 54, 7, |
| 16, 2, 2, 47, 54, 7, 18, 2, 2, 48, 54, 7, 17, 2, 2, 49, 54, 7, 14, 2, 2, |
| 50, 54, 7, 15, 2, 2, 51, 54, 5, 12, 7, 2, 52, 54, 5, 16, 9, 2, 53, 45, |
| 3, 2, 2, 2, 53, 46, 3, 2, 2, 2, 53, 47, 3, 2, 2, 2, 53, 48, 3, 2, 2, 2, |
| 53, 49, 3, 2, 2, 2, 53, 50, 3, 2, 2, 2, 53, 51, 3, 2, 2, 2, 53, 52, 3, |
| 2, 2, 2, 54, 11, 3, 2, 2, 2, 55, 56, 7, 6, 2, 2, 56, 61, 5, 14, 8, 2, 57, |
| 58, 7, 4, 2, 2, 58, 60, 5, 14, 8, 2, 59, 57, 3, 2, 2, 2, 60, 63, 3, 2, |
| 2, 2, 61, 59, 3, 2, 2, 2, 61, 62, 3, 2, 2, 2, 62, 64, 3, 2, 2, 2, 63, 61, |
| 3, 2, 2, 2, 64, 65, 7, 7, 2, 2, 65, 69, 3, 2, 2, 2, 66, 67, 7, 6, 2, 2, |
| 67, 69, 7, 7, 2, 2, 68, 55, 3, 2, 2, 2, 68, 66, 3, 2, 2, 2, 69, 13, 3, |
| 2, 2, 2, 70, 71, 7, 13, 2, 2, 71, 72, 7, 8, 2, 2, 72, 73, 5, 10, 6, 2, |
| 73, 15, 3, 2, 2, 2, 74, 75, 7, 3, 2, 2, 75, 80, 5, 10, 6, 2, 76, 77, 7, |
| 4, 2, 2, 77, 79, 5, 10, 6, 2, 78, 76, 3, 2, 2, 2, 79, 82, 3, 2, 2, 2, 80, |
| 78, 3, 2, 2, 2, 80, 81, 3, 2, 2, 2, 81, 83, 3, 2, 2, 2, 82, 80, 3, 2, 2, |
| 2, 83, 84, 7, 5, 2, 2, 84, 88, 3, 2, 2, 2, 85, 86, 7, 3, 2, 2, 86, 88, |
| 7, 5, 2, 2, 87, 74, 3, 2, 2, 2, 87, 85, 3, 2, 2, 2, 88, 17, 3, 2, 2, 2, |
| 9, 22, 39, 53, 61, 68, 80, 87, |
| } |
| var literalNames = []string{ |
| "", "'['", "','", "']'", "'{'", "'}'", "':'", "'::vertex'", "'::edge'", |
| "'::path'", "'::numeric'", "", "", "'null'", |
| } |
| var symbolicNames = []string{ |
| "", "", "", "", "", "", "", "KW_VERTEX", "KW_EDGE", "KW_PATH", "KW_NUMERIC", |
| "STRING", "BOOL", "NULL", "NUMBER", "FLOAT_EXPR", "NUMERIC", "WS", |
| } |
| |
| var ruleNames = []string{ |
| "ageout", "vertex", "edge", "path", "value", "properties", "pair", "arr", |
| } |
| |
| type AgeParser struct { |
| *antlr.BaseParser |
| } |
| |
| // NewAgeParser produces a new parser instance for the optional input antlr.TokenStream. |
| // |
| // The *AgeParser instance produced may be reused by calling the SetInputStream method. |
| // The initial parser configuration is expensive to construct, and the object is not thread-safe; |
| // however, if used within a Golang sync.Pool, the construction cost amortizes well and the |
| // objects can be used in a thread-safe manner. |
| func NewAgeParser(input antlr.TokenStream) *AgeParser { |
| this := new(AgeParser) |
| deserializer := antlr.NewATNDeserializer(nil) |
| deserializedATN := deserializer.DeserializeFromUInt16(parserATN) |
| decisionToDFA := make([]*antlr.DFA, len(deserializedATN.DecisionToState)) |
| for index, ds := range deserializedATN.DecisionToState { |
| decisionToDFA[index] = antlr.NewDFA(ds, index) |
| } |
| this.BaseParser = antlr.NewBaseParser(input) |
| |
| this.Interpreter = antlr.NewParserATNSimulator(this, deserializedATN, decisionToDFA, antlr.NewPredictionContextCache()) |
| this.RuleNames = ruleNames |
| this.LiteralNames = literalNames |
| this.SymbolicNames = symbolicNames |
| this.GrammarFileName = "Age.g4" |
| |
| 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 = s.GetTypedRuleContext(reflect.TypeOf((*IValueContext)(nil)).Elem(), 0) |
| |
| if t == nil { |
| return nil |
| } |
| |
| return t.(IValueContext) |
| } |
| |
| func (s *AgeoutContext) Vertex() IVertexContext { |
| var t = s.GetTypedRuleContext(reflect.TypeOf((*IVertexContext)(nil)).Elem(), 0) |
| |
| if t == nil { |
| return nil |
| } |
| |
| return t.(IVertexContext) |
| } |
| |
| func (s *AgeoutContext) Edge() IEdgeContext { |
| var t = s.GetTypedRuleContext(reflect.TypeOf((*IEdgeContext)(nil)).Elem(), 0) |
| |
| if t == nil { |
| return nil |
| } |
| |
| return t.(IEdgeContext) |
| } |
| |
| func (s *AgeoutContext) Path() IPathContext { |
| var t = s.GetTypedRuleContext(reflect.TypeOf((*IPathContext)(nil)).Elem(), 0) |
| |
| 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) { |
| 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 = s.GetTypedRuleContext(reflect.TypeOf((*IPropertiesContext)(nil)).Elem(), 0) |
| |
| 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) { |
| 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 = s.GetTypedRuleContext(reflect.TypeOf((*IPropertiesContext)(nil)).Elem(), 0) |
| |
| 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) { |
| 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 { |
| var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IVertexContext)(nil)).Elem()) |
| var tst = make([]IVertexContext, len(ts)) |
| |
| for i, t := range ts { |
| if t != nil { |
| tst[i] = t.(IVertexContext) |
| } |
| } |
| |
| return tst |
| } |
| |
| func (s *PathContext) Vertex(i int) IVertexContext { |
| var t = s.GetTypedRuleContext(reflect.TypeOf((*IVertexContext)(nil)).Elem(), i) |
| |
| 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 { |
| var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IEdgeContext)(nil)).Elem()) |
| var tst = make([]IEdgeContext, len(ts)) |
| |
| for i, t := range ts { |
| if t != nil { |
| tst[i] = t.(IEdgeContext) |
| } |
| } |
| |
| return tst |
| } |
| |
| func (s *PathContext) Edge(i int) IEdgeContext { |
| var t = s.GetTypedRuleContext(reflect.TypeOf((*IEdgeContext)(nil)).Elem(), i) |
| |
| 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) { |
| 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 = s.GetTypedRuleContext(reflect.TypeOf((*IPropertiesContext)(nil)).Elem(), 0) |
| |
| if t == nil { |
| return nil |
| } |
| |
| return t.(IPropertiesContext) |
| } |
| |
| func (s *ValueContext) Arr() IArrContext { |
| var t = s.GetTypedRuleContext(reflect.TypeOf((*IArrContext)(nil)).Elem(), 0) |
| |
| 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) { |
| 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 { |
| var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IPairContext)(nil)).Elem()) |
| var tst = make([]IPairContext, len(ts)) |
| |
| for i, t := range ts { |
| if t != nil { |
| tst[i] = t.(IPairContext) |
| } |
| } |
| |
| return tst |
| } |
| |
| func (s *PropertiesContext) Pair(i int) IPairContext { |
| var t = s.GetTypedRuleContext(reflect.TypeOf((*IPairContext)(nil)).Elem(), i) |
| |
| 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) { |
| 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 = s.GetTypedRuleContext(reflect.TypeOf((*IValueContext)(nil)).Elem(), 0) |
| |
| 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) { |
| 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 { |
| var ts = s.GetTypedRuleContexts(reflect.TypeOf((*IValueContext)(nil)).Elem()) |
| var tst = make([]IValueContext, len(ts)) |
| |
| for i, t := range ts { |
| if t != nil { |
| tst[i] = t.(IValueContext) |
| } |
| } |
| |
| return tst |
| } |
| |
| func (s *ArrContext) Value(i int) IValueContext { |
| var t = s.GetTypedRuleContext(reflect.TypeOf((*IValueContext)(nil)).Elem(), i) |
| |
| 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) { |
| 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 |
| } |