blob: ff98746a661a06d7bb4b1096c7500af5cedd8568 [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.
# Generated from Agtype.g4 by ANTLR 4.9.2
# encoding: utf-8
from antlr4 import *
from io import StringIO
import sys
if sys.version_info[1] > 5:
from typing import TextIO
else:
from typing.io import TextIO
def serializedATN():
with StringIO() as buf:
buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\25")
buf.write("R\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b")
buf.write("\t\b\4\t\t\t\3\2\3\2\3\2\3\3\3\3\5\3\30\n\3\3\4\3\4\3")
buf.write("\4\3\4\3\4\3\4\3\4\3\4\5\4\"\n\4\3\5\3\5\3\5\3\5\7\5(")
buf.write("\n\5\f\5\16\5+\13\5\3\5\3\5\3\5\3\5\5\5\61\n\5\3\6\3\6")
buf.write("\3\6\3\6\3\7\3\7\3\7\3\7\7\7;\n\7\f\7\16\7>\13\7\3\7\3")
buf.write("\7\3\7\3\7\5\7D\n\7\3\b\3\b\3\b\3\t\3\t\3\t\5\tL\n\t\3")
buf.write("\t\3\t\5\tP\n\t\3\t\2\2\n\2\4\6\b\n\f\16\20\2\2\2Y\2\22")
buf.write("\3\2\2\2\4\25\3\2\2\2\6!\3\2\2\2\b\60\3\2\2\2\n\62\3\2")
buf.write("\2\2\fC\3\2\2\2\16E\3\2\2\2\20O\3\2\2\2\22\23\5\4\3\2")
buf.write("\23\24\7\2\2\3\24\3\3\2\2\2\25\27\5\6\4\2\26\30\5\16\b")
buf.write("\2\27\26\3\2\2\2\27\30\3\2\2\2\30\5\3\2\2\2\31\"\7\21")
buf.write("\2\2\32\"\7\22\2\2\33\"\5\20\t\2\34\"\7\3\2\2\35\"\7\4")
buf.write("\2\2\36\"\7\5\2\2\37\"\5\b\5\2 \"\5\f\7\2!\31\3\2\2\2")
buf.write("!\32\3\2\2\2!\33\3\2\2\2!\34\3\2\2\2!\35\3\2\2\2!\36\3")
buf.write("\2\2\2!\37\3\2\2\2! \3\2\2\2\"\7\3\2\2\2#$\7\6\2\2$)\5")
buf.write("\n\6\2%&\7\7\2\2&(\5\n\6\2\'%\3\2\2\2(+\3\2\2\2)\'\3\2")
buf.write("\2\2)*\3\2\2\2*,\3\2\2\2+)\3\2\2\2,-\7\b\2\2-\61\3\2\2")
buf.write("\2./\7\6\2\2/\61\7\b\2\2\60#\3\2\2\2\60.\3\2\2\2\61\t")
buf.write("\3\2\2\2\62\63\7\21\2\2\63\64\7\t\2\2\64\65\5\4\3\2\65")
buf.write("\13\3\2\2\2\66\67\7\n\2\2\67<\5\4\3\289\7\7\2\29;\5\4")
buf.write("\3\2:8\3\2\2\2;>\3\2\2\2<:\3\2\2\2<=\3\2\2\2=?\3\2\2\2")
buf.write("><\3\2\2\2?@\7\13\2\2@D\3\2\2\2AB\7\n\2\2BD\7\13\2\2C")
buf.write("\66\3\2\2\2CA\3\2\2\2D\r\3\2\2\2EF\7\f\2\2FG\7\20\2\2")
buf.write("G\17\3\2\2\2HP\7\23\2\2IP\7\24\2\2JL\7\r\2\2KJ\3\2\2\2")
buf.write("KL\3\2\2\2LM\3\2\2\2MP\7\16\2\2NP\7\17\2\2OH\3\2\2\2O")
buf.write("I\3\2\2\2OK\3\2\2\2ON\3\2\2\2P\21\3\2\2\2\n\27!)\60<C")
buf.write("KO")
return buf.getvalue()
class AgtypeParser ( Parser ):
grammarFileName = "Agtype.g4"
atn = ATNDeserializer().deserialize(serializedATN())
decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
sharedContextCache = PredictionContextCache()
literalNames = [ "<INVALID>", "'true'", "'false'", "'null'", "'{'",
"','", "'}'", "':'", "'['", "']'", "'::'", "'-'", "'Infinity'",
"'NaN'" ]
symbolicNames = [ "<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "<INVALID>", "<INVALID>",
"<INVALID>", "<INVALID>", "IDENT", "STRING", "INTEGER",
"RegularFloat", "ExponentFloat", "WS" ]
RULE_agType = 0
RULE_agValue = 1
RULE_value = 2
RULE_obj = 3
RULE_pair = 4
RULE_array = 5
RULE_typeAnnotation = 6
RULE_floatLiteral = 7
ruleNames = [ "agType", "agValue", "value", "obj", "pair", "array",
"typeAnnotation", "floatLiteral" ]
EOF = Token.EOF
T__0=1
T__1=2
T__2=3
T__3=4
T__4=5
T__5=6
T__6=7
T__7=8
T__8=9
T__9=10
T__10=11
T__11=12
T__12=13
IDENT=14
STRING=15
INTEGER=16
RegularFloat=17
ExponentFloat=18
WS=19
def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
super().__init__(input, output)
self.checkVersion("4.9.2")
self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
self._predicates = None
class AgTypeContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def agValue(self):
return self.getTypedRuleContext(AgtypeParser.AgValueContext,0)
def EOF(self):
return self.getToken(AgtypeParser.EOF, 0)
def getRuleIndex(self):
return AgtypeParser.RULE_agType
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAgType" ):
listener.enterAgType(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAgType" ):
listener.exitAgType(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAgType" ):
return visitor.visitAgType(self)
else:
return visitor.visitChildren(self)
def agType(self):
localctx = AgtypeParser.AgTypeContext(self, self._ctx, self.state)
self.enterRule(localctx, 0, self.RULE_agType)
try:
self.enterOuterAlt(localctx, 1)
self.state = 16
self.agValue()
self.state = 17
self.match(AgtypeParser.EOF)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AgValueContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def value(self):
return self.getTypedRuleContext(AgtypeParser.ValueContext,0)
def typeAnnotation(self):
return self.getTypedRuleContext(AgtypeParser.TypeAnnotationContext,0)
def getRuleIndex(self):
return AgtypeParser.RULE_agValue
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterAgValue" ):
listener.enterAgValue(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitAgValue" ):
listener.exitAgValue(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitAgValue" ):
return visitor.visitAgValue(self)
else:
return visitor.visitChildren(self)
def agValue(self):
localctx = AgtypeParser.AgValueContext(self, self._ctx, self.state)
self.enterRule(localctx, 2, self.RULE_agValue)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 19
self.value()
self.state = 21
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==AgtypeParser.T__9:
self.state = 20
self.typeAnnotation()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ValueContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def getRuleIndex(self):
return AgtypeParser.RULE_value
def copyFrom(self, ctx:ParserRuleContext):
super().copyFrom(ctx)
class NullValueContext(ValueContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a AgtypeParser.ValueContext
super().__init__(parser)
self.copyFrom(ctx)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterNullValue" ):
listener.enterNullValue(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitNullValue" ):
listener.exitNullValue(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitNullValue" ):
return visitor.visitNullValue(self)
else:
return visitor.visitChildren(self)
class ObjectValueContext(ValueContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a AgtypeParser.ValueContext
super().__init__(parser)
self.copyFrom(ctx)
def obj(self):
return self.getTypedRuleContext(AgtypeParser.ObjContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterObjectValue" ):
listener.enterObjectValue(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitObjectValue" ):
listener.exitObjectValue(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitObjectValue" ):
return visitor.visitObjectValue(self)
else:
return visitor.visitChildren(self)
class IntegerValueContext(ValueContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a AgtypeParser.ValueContext
super().__init__(parser)
self.copyFrom(ctx)
def INTEGER(self):
return self.getToken(AgtypeParser.INTEGER, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterIntegerValue" ):
listener.enterIntegerValue(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitIntegerValue" ):
listener.exitIntegerValue(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitIntegerValue" ):
return visitor.visitIntegerValue(self)
else:
return visitor.visitChildren(self)
class TrueBooleanContext(ValueContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a AgtypeParser.ValueContext
super().__init__(parser)
self.copyFrom(ctx)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTrueBoolean" ):
listener.enterTrueBoolean(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTrueBoolean" ):
listener.exitTrueBoolean(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTrueBoolean" ):
return visitor.visitTrueBoolean(self)
else:
return visitor.visitChildren(self)
class FalseBooleanContext(ValueContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a AgtypeParser.ValueContext
super().__init__(parser)
self.copyFrom(ctx)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFalseBoolean" ):
listener.enterFalseBoolean(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFalseBoolean" ):
listener.exitFalseBoolean(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFalseBoolean" ):
return visitor.visitFalseBoolean(self)
else:
return visitor.visitChildren(self)
class FloatValueContext(ValueContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a AgtypeParser.ValueContext
super().__init__(parser)
self.copyFrom(ctx)
def floatLiteral(self):
return self.getTypedRuleContext(AgtypeParser.FloatLiteralContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFloatValue" ):
listener.enterFloatValue(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFloatValue" ):
listener.exitFloatValue(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFloatValue" ):
return visitor.visitFloatValue(self)
else:
return visitor.visitChildren(self)
class StringValueContext(ValueContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a AgtypeParser.ValueContext
super().__init__(parser)
self.copyFrom(ctx)
def STRING(self):
return self.getToken(AgtypeParser.STRING, 0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterStringValue" ):
listener.enterStringValue(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitStringValue" ):
listener.exitStringValue(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitStringValue" ):
return visitor.visitStringValue(self)
else:
return visitor.visitChildren(self)
class ArrayValueContext(ValueContext):
def __init__(self, parser, ctx:ParserRuleContext): # actually a AgtypeParser.ValueContext
super().__init__(parser)
self.copyFrom(ctx)
def array(self):
return self.getTypedRuleContext(AgtypeParser.ArrayContext,0)
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterArrayValue" ):
listener.enterArrayValue(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitArrayValue" ):
listener.exitArrayValue(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitArrayValue" ):
return visitor.visitArrayValue(self)
else:
return visitor.visitChildren(self)
def value(self):
localctx = AgtypeParser.ValueContext(self, self._ctx, self.state)
self.enterRule(localctx, 4, self.RULE_value)
try:
self.state = 31
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [AgtypeParser.STRING]:
localctx = AgtypeParser.StringValueContext(self, localctx)
self.enterOuterAlt(localctx, 1)
self.state = 23
self.match(AgtypeParser.STRING)
pass
elif token in [AgtypeParser.INTEGER]:
localctx = AgtypeParser.IntegerValueContext(self, localctx)
self.enterOuterAlt(localctx, 2)
self.state = 24
self.match(AgtypeParser.INTEGER)
pass
elif token in [AgtypeParser.T__10, AgtypeParser.T__11, AgtypeParser.T__12, AgtypeParser.RegularFloat, AgtypeParser.ExponentFloat]:
localctx = AgtypeParser.FloatValueContext(self, localctx)
self.enterOuterAlt(localctx, 3)
self.state = 25
self.floatLiteral()
pass
elif token in [AgtypeParser.T__0]:
localctx = AgtypeParser.TrueBooleanContext(self, localctx)
self.enterOuterAlt(localctx, 4)
self.state = 26
self.match(AgtypeParser.T__0)
pass
elif token in [AgtypeParser.T__1]:
localctx = AgtypeParser.FalseBooleanContext(self, localctx)
self.enterOuterAlt(localctx, 5)
self.state = 27
self.match(AgtypeParser.T__1)
pass
elif token in [AgtypeParser.T__2]:
localctx = AgtypeParser.NullValueContext(self, localctx)
self.enterOuterAlt(localctx, 6)
self.state = 28
self.match(AgtypeParser.T__2)
pass
elif token in [AgtypeParser.T__3]:
localctx = AgtypeParser.ObjectValueContext(self, localctx)
self.enterOuterAlt(localctx, 7)
self.state = 29
self.obj()
pass
elif token in [AgtypeParser.T__7]:
localctx = AgtypeParser.ArrayValueContext(self, localctx)
self.enterOuterAlt(localctx, 8)
self.state = 30
self.array()
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ObjContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def pair(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(AgtypeParser.PairContext)
else:
return self.getTypedRuleContext(AgtypeParser.PairContext,i)
def getRuleIndex(self):
return AgtypeParser.RULE_obj
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterObj" ):
listener.enterObj(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitObj" ):
listener.exitObj(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitObj" ):
return visitor.visitObj(self)
else:
return visitor.visitChildren(self)
def obj(self):
localctx = AgtypeParser.ObjContext(self, self._ctx, self.state)
self.enterRule(localctx, 6, self.RULE_obj)
self._la = 0 # Token type
try:
self.state = 46
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,3,self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
self.state = 33
self.match(AgtypeParser.T__3)
self.state = 34
self.pair()
self.state = 39
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==AgtypeParser.T__4:
self.state = 35
self.match(AgtypeParser.T__4)
self.state = 36
self.pair()
self.state = 41
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 42
self.match(AgtypeParser.T__5)
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
self.state = 44
self.match(AgtypeParser.T__3)
self.state = 45
self.match(AgtypeParser.T__5)
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class PairContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def STRING(self):
return self.getToken(AgtypeParser.STRING, 0)
def agValue(self):
return self.getTypedRuleContext(AgtypeParser.AgValueContext,0)
def getRuleIndex(self):
return AgtypeParser.RULE_pair
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterPair" ):
listener.enterPair(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitPair" ):
listener.exitPair(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitPair" ):
return visitor.visitPair(self)
else:
return visitor.visitChildren(self)
def pair(self):
localctx = AgtypeParser.PairContext(self, self._ctx, self.state)
self.enterRule(localctx, 8, self.RULE_pair)
try:
self.enterOuterAlt(localctx, 1)
self.state = 48
self.match(AgtypeParser.STRING)
self.state = 49
self.match(AgtypeParser.T__6)
self.state = 50
self.agValue()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ArrayContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def agValue(self, i:int=None):
if i is None:
return self.getTypedRuleContexts(AgtypeParser.AgValueContext)
else:
return self.getTypedRuleContext(AgtypeParser.AgValueContext,i)
def getRuleIndex(self):
return AgtypeParser.RULE_array
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterArray" ):
listener.enterArray(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitArray" ):
listener.exitArray(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitArray" ):
return visitor.visitArray(self)
else:
return visitor.visitChildren(self)
def array(self):
localctx = AgtypeParser.ArrayContext(self, self._ctx, self.state)
self.enterRule(localctx, 10, self.RULE_array)
self._la = 0 # Token type
try:
self.state = 65
self._errHandler.sync(self)
la_ = self._interp.adaptivePredict(self._input,5,self._ctx)
if la_ == 1:
self.enterOuterAlt(localctx, 1)
self.state = 52
self.match(AgtypeParser.T__7)
self.state = 53
self.agValue()
self.state = 58
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==AgtypeParser.T__4:
self.state = 54
self.match(AgtypeParser.T__4)
self.state = 55
self.agValue()
self.state = 60
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 61
self.match(AgtypeParser.T__8)
pass
elif la_ == 2:
self.enterOuterAlt(localctx, 2)
self.state = 63
self.match(AgtypeParser.T__7)
self.state = 64
self.match(AgtypeParser.T__8)
pass
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class TypeAnnotationContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def IDENT(self):
return self.getToken(AgtypeParser.IDENT, 0)
def getRuleIndex(self):
return AgtypeParser.RULE_typeAnnotation
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterTypeAnnotation" ):
listener.enterTypeAnnotation(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitTypeAnnotation" ):
listener.exitTypeAnnotation(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitTypeAnnotation" ):
return visitor.visitTypeAnnotation(self)
else:
return visitor.visitChildren(self)
def typeAnnotation(self):
localctx = AgtypeParser.TypeAnnotationContext(self, self._ctx, self.state)
self.enterRule(localctx, 12, self.RULE_typeAnnotation)
try:
self.enterOuterAlt(localctx, 1)
self.state = 67
self.match(AgtypeParser.T__9)
self.state = 68
self.match(AgtypeParser.IDENT)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class FloatLiteralContext(ParserRuleContext):
__slots__ = 'parser'
def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
super().__init__(parent, invokingState)
self.parser = parser
def RegularFloat(self):
return self.getToken(AgtypeParser.RegularFloat, 0)
def ExponentFloat(self):
return self.getToken(AgtypeParser.ExponentFloat, 0)
def getRuleIndex(self):
return AgtypeParser.RULE_floatLiteral
def enterRule(self, listener:ParseTreeListener):
if hasattr( listener, "enterFloatLiteral" ):
listener.enterFloatLiteral(self)
def exitRule(self, listener:ParseTreeListener):
if hasattr( listener, "exitFloatLiteral" ):
listener.exitFloatLiteral(self)
def accept(self, visitor:ParseTreeVisitor):
if hasattr( visitor, "visitFloatLiteral" ):
return visitor.visitFloatLiteral(self)
else:
return visitor.visitChildren(self)
def floatLiteral(self):
localctx = AgtypeParser.FloatLiteralContext(self, self._ctx, self.state)
self.enterRule(localctx, 14, self.RULE_floatLiteral)
self._la = 0 # Token type
try:
self.state = 77
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [AgtypeParser.RegularFloat]:
self.enterOuterAlt(localctx, 1)
self.state = 70
self.match(AgtypeParser.RegularFloat)
pass
elif token in [AgtypeParser.ExponentFloat]:
self.enterOuterAlt(localctx, 2)
self.state = 71
self.match(AgtypeParser.ExponentFloat)
pass
elif token in [AgtypeParser.T__10, AgtypeParser.T__11]:
self.enterOuterAlt(localctx, 3)
self.state = 73
self._errHandler.sync(self)
_la = self._input.LA(1)
if _la==AgtypeParser.T__10:
self.state = 72
self.match(AgtypeParser.T__10)
self.state = 75
self.match(AgtypeParser.T__11)
pass
elif token in [AgtypeParser.T__12]:
self.enterOuterAlt(localctx, 4)
self.state = 76
self.match(AgtypeParser.T__12)
pass
else:
raise NoViableAltException(self)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx