blob: 4b8a91f3c65efbeb3b8b0ce5cee817bd3f6d1d2b [file] [log] [blame]
/*
* 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
}