# Generated from /home/srix/workspace/pytamil/pytamil/தமிழ்/resources/மாத்திரை.g4 by ANTLR 4.8
# 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,")
        buf.write("\u00c7\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7")
        buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16")
        buf.write("\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23\t\23")
        buf.write("\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31")
        buf.write("\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36")
        buf.write("\4\37\t\37\4 \t \3\2\3\2\3\2\5\2D\n\2\3\3\3\3\3\4\3\4")
        buf.write("\3\4\3\5\3\5\7\5M\n\5\f\5\16\5P\13\5\3\5\3\5\3\6\3\6\3")
        buf.write("\6\3\6\5\6X\n\6\3\7\3\7\5\7\\\n\7\3\b\3\b\3\t\3\t\3\t")
        buf.write("\3\t\3\t\3\t\3\t\5\tg\n\t\3\n\3\n\3\n\3\n\3\n\3\n\3\n")
        buf.write("\3\n\3\n\3\n\5\ns\n\n\3\13\3\13\3\13\3\13\3\13\3\13\3")
        buf.write("\13\3\13\5\13}\n\13\3\f\3\f\3\f\3\f\3\f\3\f\5\f\u0085")
        buf.write("\n\f\3\r\3\r\3\r\3\16\3\16\3\16\3\17\3\17\3\17\3\20\3")
        buf.write("\20\3\21\3\21\3\21\3\22\3\22\3\22\3\22\5\22\u0099\n\22")
        buf.write("\3\23\3\23\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\25")
        buf.write("\3\25\3\25\3\25\5\25\u00a9\n\25\3\26\3\26\3\26\3\26\5")
        buf.write("\26\u00af\n\26\3\27\3\27\3\30\3\30\3\30\3\31\3\31\3\31")
        buf.write("\3\32\3\32\3\33\3\33\3\34\3\34\3\35\3\35\3\36\3\36\3\37")
        buf.write("\3\37\3 \3 \3 \3N\2!\2\4\6\b\n\f\16\20\22\24\26\30\32")
        buf.write("\34\36 \"$&(*,.\60\62\64\668:<>\2\t\3\2\6\7\5\2\3\3\t")
        buf.write("\t\17\21\4\2\4\5\22\26\4\2\n\r\30%\3\2\30\35\3\2&,\7\2")
        buf.write("\n\r\27\27\36 \"#%%\2\u00c8\2C\3\2\2\2\4E\3\2\2\2\6G\3")
        buf.write("\2\2\2\bJ\3\2\2\2\nW\3\2\2\2\f[\3\2\2\2\16]\3\2\2\2\20")
        buf.write("f\3\2\2\2\22r\3\2\2\2\24|\3\2\2\2\26\u0084\3\2\2\2\30")
        buf.write("\u0086\3\2\2\2\32\u0089\3\2\2\2\34\u008c\3\2\2\2\36\u008f")
        buf.write("\3\2\2\2 \u0091\3\2\2\2\"\u0098\3\2\2\2$\u009a\3\2\2\2")
        buf.write("&\u009c\3\2\2\2(\u00a8\3\2\2\2*\u00ae\3\2\2\2,\u00b0\3")
        buf.write("\2\2\2.\u00b2\3\2\2\2\60\u00b5\3\2\2\2\62\u00b8\3\2\2")
        buf.write("\2\64\u00ba\3\2\2\2\66\u00bc\3\2\2\28\u00be\3\2\2\2:\u00c0")
        buf.write("\3\2\2\2<\u00c2\3\2\2\2>\u00c4\3\2\2\2@D\5\4\3\2AD\5\6")
        buf.write("\4\2BD\5\b\5\2C@\3\2\2\2CA\3\2\2\2CB\3\2\2\2D\3\3\2\2")
        buf.write("\2EF\5\n\6\2F\5\3\2\2\2GH\5\f\7\2HI\5\16\b\2I\7\3\2\2")
        buf.write("\2JN\5\20\t\2KM\5\22\n\2LK\3\2\2\2MP\3\2\2\2NO\3\2\2\2")
        buf.write("NL\3\2\2\2OQ\3\2\2\2PN\3\2\2\2QR\5\24\13\2R\t\3\2\2\2")
        buf.write("SX\5.\30\2TX\5\60\31\2UX\5\62\32\2VX\5\64\33\2WS\3\2\2")
        buf.write("\2WT\3\2\2\2WU\3\2\2\2WV\3\2\2\2X\13\3\2\2\2Y\\\5.\30")
        buf.write("\2Z\\\5\62\32\2[Y\3\2\2\2[Z\3\2\2\2\\\r\3\2\2\2]^\5.\30")
        buf.write("\2^\17\3\2\2\2_g\5\"\22\2`g\5\36\20\2ag\5\30\r\2bg\5.")
        buf.write("\30\2cg\5\60\31\2dg\5\62\32\2eg\5\64\33\2f_\3\2\2\2f`")
        buf.write("\3\2\2\2fa\3\2\2\2fb\3\2\2\2fc\3\2\2\2fd\3\2\2\2fe\3\2")
        buf.write("\2\2g\21\3\2\2\2hs\5$\23\2is\5(\25\2js\5 \21\2ks\5,\27")
        buf.write("\2ls\5\30\r\2ms\5\32\16\2ns\5.\30\2os\5\60\31\2ps\58\35")
        buf.write("\2qs\5\66\34\2rh\3\2\2\2ri\3\2\2\2rj\3\2\2\2rk\3\2\2\2")
        buf.write("rl\3\2\2\2rm\3\2\2\2rn\3\2\2\2ro\3\2\2\2rp\3\2\2\2rq\3")
        buf.write("\2\2\2s\23\3\2\2\2t}\5\30\r\2u}\5&\24\2v}\5*\26\2w}\5")
        buf.write(" \21\2x}\5\34\17\2y}\5\60\31\2z}\5.\30\2{}\58\35\2|t\3")
        buf.write("\2\2\2|u\3\2\2\2|v\3\2\2\2|w\3\2\2\2|x\3\2\2\2|y\3\2\2")
        buf.write("\2|z\3\2\2\2|{\3\2\2\2}\25\3\2\2\2~\177\5\62\32\2\177")
        buf.write("\u0080\5.\30\2\u0080\u0085\3\2\2\2\u0081\u0082\5.\30\2")
        buf.write("\u0082\u0083\5.\30\2\u0083\u0085\3\2\2\2\u0084~\3\2\2")
        buf.write("\2\u0084\u0081\3\2\2\2\u0085\27\3\2\2\2\u0086\u0087\5")
        buf.write("8\35\2\u0087\u0088\5<\37\2\u0088\31\3\2\2\2\u0089\u008a")
        buf.write("\5> \2\u008a\u008b\5> \2\u008b\33\3\2\2\2\u008c\u008d")
        buf.write("\5:\36\2\u008d\u008e\7\3\2\2\u008e\35\3\2\2\2\u008f\u0090")
        buf.write("\7\4\2\2\u0090\37\3\2\2\2\u0091\u0092\58\35\2\u0092\u0093")
        buf.write("\7\4\2\2\u0093!\3\2\2\2\u0094\u0099\7\5\2\2\u0095\u0096")
        buf.write("\58\35\2\u0096\u0097\7\5\2\2\u0097\u0099\3\2\2\2\u0098")
        buf.write("\u0094\3\2\2\2\u0098\u0095\3\2\2\2\u0099#\3\2\2\2\u009a")
        buf.write("\u009b\t\2\2\2\u009b%\3\2\2\2\u009c\u009d\7\b\2\2\u009d")
        buf.write("\'\3\2\2\2\u009e\u009f\5:\36\2\u009f\u00a0\7\t\2\2\u00a0")
        buf.write("\u00a1\7\n\2\2\u00a1\u00a2\5\62\32\2\u00a2\u00a9\3\2\2")
        buf.write("\2\u00a3\u00a4\5:\36\2\u00a4\u00a5\7\t\2\2\u00a5\u00a6")
        buf.write("\7\n\2\2\u00a6\u00a7\5\64\33\2\u00a7\u00a9\3\2\2\2\u00a8")
        buf.write("\u009e\3\2\2\2\u00a8\u00a3\3\2\2\2\u00a9)\3\2\2\2\u00aa")
        buf.write("\u00ab\7\13\2\2\u00ab\u00af\7\f\2\2\u00ac\u00ad\7\r\2")
        buf.write("\2\u00ad\u00af\7\f\2\2\u00ae\u00aa\3\2\2\2\u00ae\u00ac")
        buf.write("\3\2\2\2\u00af+\3\2\2\2\u00b0\u00b1\7\16\2\2\u00b1-\3")
        buf.write("\2\2\2\u00b2\u00b3\58\35\2\u00b3\u00b4\5\62\32\2\u00b4")
        buf.write("/\3\2\2\2\u00b5\u00b6\58\35\2\u00b6\u00b7\5\64\33\2\u00b7")
        buf.write("\61\3\2\2\2\u00b8\u00b9\t\3\2\2\u00b9\63\3\2\2\2\u00ba")
        buf.write("\u00bb\t\4\2\2\u00bb\65\3\2\2\2\u00bc\u00bd\7\27\2\2\u00bd")
        buf.write("\67\3\2\2\2\u00be\u00bf\t\5\2\2\u00bf9\3\2\2\2\u00c0\u00c1")
        buf.write("\t\6\2\2\u00c1;\3\2\2\2\u00c2\u00c3\t\7\2\2\u00c3=\3\2")
        buf.write("\2\2\u00c4\u00c5\t\b\2\2\u00c5?\3\2\2\2\rCNW[fr|\u0084")
        buf.write("\u0098\u00a8\u00ae")
        return buf.getvalue()


class மாத்திரைParser ( Parser ):

    grammarFileName = "மாத்திரை.g4"

    atn = ATNDeserializer().deserialize(serializedATN())

    decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]

    sharedContextCache = PredictionContextCache()

    literalNames = [ "<INVALID>", "'\u0B89'", "'\u0B90'", "'\u0B94'", "'\u0B83\u0BB1\u0BCD\u0B87'", 
                     "'\u0B83\u0B9F\u0BCD\u0B88'", "'\u0BAE\u0BCD\u0B87\u0BAF\u0BCD\u0B86'", 
                     "'\u0B87'", "'\u0BAF\u0BCD'", "'\u0BA3\u0BCD'", "'\u0BAE\u0BCD'", 
                     "'\u0BA9\u0BCD'", "'\u0BAE\u0BCD\u0BB5\u0BCD\u0B85'", 
                     "'\u0B85'", "'\u0B8E'", "'\u0B92'", "'\u0B86'", "'\u0B88'", 
                     "'\u0B8A'", "'\u0B8F'", "'\u0B93'", "'\u0B83'", "'\u0B95\u0BCD'", 
                     "'\u0B9A\u0BCD'", "'\u0B9F\u0BCD'", "'\u0BA4\u0BCD'", 
                     "'\u0BAA\u0BCD'", "'\u0BB1\u0BCD'", "'\u0B9E\u0BCD'", 
                     "'\u0B99\u0BCD'", "'\u0BA8\u0BCD'", "'\u0BB0\u0BCD'", 
                     "'\u0BB2\u0BCD'", "'\u0BB5\u0BCD'", "'\u0BB4\u0BCD'", 
                     "'\u0BB3\u0BCD'", "'\u0B86\u0B85'", "'\u0B88\u0B87'", 
                     "'\u0B8A\u0B89'", "'\u0B8F\u0B8E'", "'\u0B90\u0B87'", 
                     "'\u0B93\u0B92'", "'\u0B94\u0B89'" ]

    symbolicNames = [  ]

    RULE_மாத்திரை = 0
    RULE_ஒர்_எழுத்து_ஒரு_மொழி = 1
    RULE_ஈர்_எழுத்து_ஒரு_மொழி = 2
    RULE_பொதுமொழி = 3
    RULE_ஒரெழுத்து = 4
    RULE_ஈர்_மொழிமுதல் = 5
    RULE_ஈர்_மொழியிறுதி = 6
    RULE_மொழிமுதல் = 7
    RULE_மொழியிடை = 8
    RULE_மொழியிறுதி = 9
    RULE_குறிலிணை = 10
    RULE_உயிரளபெடை = 11
    RULE_ஒற்றளபெடை = 12
    RULE_குற்றியலுகரம் = 13
    RULE_ஐகாரக்குறுக்கம்_முதல் = 14
    RULE_ஐகாரக்குறுக்கம்_இடைகடை = 15
    RULE_ஔகாரக்குறுக்கம் = 16
    RULE_ஆய்தக்குறுக்கம் = 17
    RULE_குற்றியலிகரம்_தனிமொழி = 18
    RULE_குற்றியலிகரம்_புணர்மொழி = 19
    RULE_மகரக்குறுக்கம்_தனிமொழி = 20
    RULE_மகரக்குறுக்கம்_புணர்மொழி = 21
    RULE_உயிர்மெய்க்குறில் = 22
    RULE_உயிர்மெய்நெடில் = 23
    RULE_உயிர்க்குறில் = 24
    RULE_உயிர்நெடில் = 25
    RULE_ஆய்தம் = 26
    RULE_மெய் = 27
    RULE_வல்லினம் = 28
    RULE_உயிரளபெடை_எழுத்து = 29
    RULE_ஒற்றளபெடை_எழுத்து = 30

    ruleNames =  [ "மாத்திரை", "ஒர்_எழுத்து_ஒரு_மொழி", "ஈர்_எழுத்து_ஒரு_மொழி", 
                   "பொதுமொழி", "ஒரெழுத்து", "ஈர்_மொழிமுதல்", "ஈர்_மொழியிறுதி", 
                   "மொழிமுதல்", "மொழியிடை", "மொழியிறுதி", "குறிலிணை", "உயிரளபெடை", 
                   "ஒற்றளபெடை", "குற்றியலுகரம்", "ஐகாரக்குறுக்கம்_முதல்", 
                   "ஐகாரக்குறுக்கம்_இடைகடை", "ஔகாரக்குறுக்கம்", "ஆய்தக்குறுக்கம்", 
                   "குற்றியலிகரம்_தனிமொழி", "குற்றியலிகரம்_புணர்மொழி", "மகரக்குறுக்கம்_தனிமொழி", 
                   "மகரக்குறுக்கம்_புணர்மொழி", "உயிர்மெய்க்குறில்", "உயிர்மெய்நெடில்", 
                   "உயிர்க்குறில்", "உயிர்நெடில்", "ஆய்தம்", "மெய்", "வல்லினம்", 
                   "உயிரளபெடை_எழுத்து", "ஒற்றளபெடை_எழுத்து" ]

    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
    T__13=14
    T__14=15
    T__15=16
    T__16=17
    T__17=18
    T__18=19
    T__19=20
    T__20=21
    T__21=22
    T__22=23
    T__23=24
    T__24=25
    T__25=26
    T__26=27
    T__27=28
    T__28=29
    T__29=30
    T__30=31
    T__31=32
    T__32=33
    T__33=34
    T__34=35
    T__35=36
    T__36=37
    T__37=38
    T__38=39
    T__39=40
    T__40=41
    T__41=42

    def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
        super().__init__(input, output)
        self.checkVersion("4.8")
        self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
        self._predicates = None




    class மாத்திரைContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def ஒர்_எழுத்து_ஒரு_மொழி(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஒர்_எழுத்து_ஒரு_மொழிContext,0)


        def ஈர்_எழுத்து_ஒரு_மொழி(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஈர்_எழுத்து_ஒரு_மொழிContext,0)


        def பொதுமொழி(self):
            return self.getTypedRuleContext(மாத்திரைParser.பொதுமொழிContext,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_மாத்திரை

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterமாத்திரை" ):
                listener.enterமாத்திரை(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitமாத்திரை" ):
                listener.exitமாத்திரை(self)




    def மாத்திரை(self):

        localctx = மாத்திரைParser.மாத்திரைContext(self, self._ctx, self.state)
        self.enterRule(localctx, 0, self.RULE_மாத்திரை)
        try:
            self.state = 65
            self._errHandler.sync(self)
            la_ = self._interp.adaptivePredict(self._input,0,self._ctx)
            if la_ == 1:
                self.enterOuterAlt(localctx, 1)
                self.state = 62
                self.ஒர்_எழுத்து_ஒரு_மொழி()
                pass

            elif la_ == 2:
                self.enterOuterAlt(localctx, 2)
                self.state = 63
                self.ஈர்_எழுத்து_ஒரு_மொழி()
                pass

            elif la_ == 3:
                self.enterOuterAlt(localctx, 3)
                self.state = 64
                self.பொதுமொழி()
                pass


        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஒர்_எழுத்து_ஒரு_மொழிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def ஒரெழுத்து(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஒரெழுத்துContext,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஒர்_எழுத்து_ஒரு_மொழி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஒர்_எழுத்து_ஒரு_மொழி" ):
                listener.enterஒர்_எழுத்து_ஒரு_மொழி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஒர்_எழுத்து_ஒரு_மொழி" ):
                listener.exitஒர்_எழுத்து_ஒரு_மொழி(self)




    def ஒர்_எழுத்து_ஒரு_மொழி(self):

        localctx = மாத்திரைParser.ஒர்_எழுத்து_ஒரு_மொழிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 2, self.RULE_ஒர்_எழுத்து_ஒரு_மொழி)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 67
            self.ஒரெழுத்து()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஈர்_எழுத்து_ஒரு_மொழிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def ஈர்_மொழிமுதல்(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஈர்_மொழிமுதல்Context,0)


        def ஈர்_மொழியிறுதி(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஈர்_மொழியிறுதிContext,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஈர்_எழுத்து_ஒரு_மொழி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஈர்_எழுத்து_ஒரு_மொழி" ):
                listener.enterஈர்_எழுத்து_ஒரு_மொழி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஈர்_எழுத்து_ஒரு_மொழி" ):
                listener.exitஈர்_எழுத்து_ஒரு_மொழி(self)




    def ஈர்_எழுத்து_ஒரு_மொழி(self):

        localctx = மாத்திரைParser.ஈர்_எழுத்து_ஒரு_மொழிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 4, self.RULE_ஈர்_எழுத்து_ஒரு_மொழி)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 69
            self.ஈர்_மொழிமுதல்()
            self.state = 70
            self.ஈர்_மொழியிறுதி()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class பொதுமொழிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def மொழிமுதல்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மொழிமுதல்Context,0)


        def மொழியிறுதி(self):
            return self.getTypedRuleContext(மாத்திரைParser.மொழியிறுதிContext,0)


        def மொழியிடை(self, i:int=None):
            if i is None:
                return self.getTypedRuleContexts(மாத்திரைParser.மொழியிடைContext)
            else:
                return self.getTypedRuleContext(மாத்திரைParser.மொழியிடைContext,i)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_பொதுமொழி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterபொதுமொழி" ):
                listener.enterபொதுமொழி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitபொதுமொழி" ):
                listener.exitபொதுமொழி(self)




    def பொதுமொழி(self):

        localctx = மாத்திரைParser.பொதுமொழிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 6, self.RULE_பொதுமொழி)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 72
            self.மொழிமுதல்()
            self.state = 76
            self._errHandler.sync(self)
            _alt = self._interp.adaptivePredict(self._input,1,self._ctx)
            while _alt!=1 and _alt!=ATN.INVALID_ALT_NUMBER:
                if _alt==1+1:
                    self.state = 73
                    self.மொழியிடை() 
                self.state = 78
                self._errHandler.sync(self)
                _alt = self._interp.adaptivePredict(self._input,1,self._ctx)

            self.state = 79
            self.மொழியிறுதி()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஒரெழுத்துContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def உயிர்மெய்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்க்குறில்Context,0)


        def உயிர்மெய்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்நெடில்Context,0)


        def உயிர்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்க்குறில்Context,0)


        def உயிர்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்நெடில்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஒரெழுத்து

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஒரெழுத்து" ):
                listener.enterஒரெழுத்து(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஒரெழுத்து" ):
                listener.exitஒரெழுத்து(self)




    def ஒரெழுத்து(self):

        localctx = மாத்திரைParser.ஒரெழுத்துContext(self, self._ctx, self.state)
        self.enterRule(localctx, 8, self.RULE_ஒரெழுத்து)
        try:
            self.state = 85
            self._errHandler.sync(self)
            la_ = self._interp.adaptivePredict(self._input,2,self._ctx)
            if la_ == 1:
                self.enterOuterAlt(localctx, 1)
                self.state = 81
                self.உயிர்மெய்க்குறில்()
                pass

            elif la_ == 2:
                self.enterOuterAlt(localctx, 2)
                self.state = 82
                self.உயிர்மெய்நெடில்()
                pass

            elif la_ == 3:
                self.enterOuterAlt(localctx, 3)
                self.state = 83
                self.உயிர்க்குறில்()
                pass

            elif la_ == 4:
                self.enterOuterAlt(localctx, 4)
                self.state = 84
                self.உயிர்நெடில்()
                pass


        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஈர்_மொழிமுதல்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def உயிர்மெய்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்க்குறில்Context,0)


        def உயிர்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்க்குறில்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஈர்_மொழிமுதல்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஈர்_மொழிமுதல்" ):
                listener.enterஈர்_மொழிமுதல்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஈர்_மொழிமுதல்" ):
                listener.exitஈர்_மொழிமுதல்(self)




    def ஈர்_மொழிமுதல்(self):

        localctx = மாத்திரைParser.ஈர்_மொழிமுதல்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 10, self.RULE_ஈர்_மொழிமுதல்)
        try:
            self.state = 89
            self._errHandler.sync(self)
            token = self._input.LA(1)
            if token in [மாத்திரைParser.T__7, மாத்திரைParser.T__8, மாத்திரைParser.T__9, மாத்திரைParser.T__10, மாத்திரைParser.T__21, மாத்திரைParser.T__22, மாத்திரைParser.T__23, மாத்திரைParser.T__24, மாத்திரைParser.T__25, மாத்திரைParser.T__26, மாத்திரைParser.T__27, மாத்திரைParser.T__28, மாத்திரைParser.T__29, மாத்திரைParser.T__30, மாத்திரைParser.T__31, மாத்திரைParser.T__32, மாத்திரைParser.T__33, மாத்திரைParser.T__34]:
                self.enterOuterAlt(localctx, 1)
                self.state = 87
                self.உயிர்மெய்க்குறில்()
                pass
            elif token in [மாத்திரைParser.T__0, மாத்திரைParser.T__6, மாத்திரைParser.T__12, மாத்திரைParser.T__13, மாத்திரைParser.T__14]:
                self.enterOuterAlt(localctx, 2)
                self.state = 88
                self.உயிர்க்குறில்()
                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 ஈர்_மொழியிறுதிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def உயிர்மெய்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்க்குறில்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஈர்_மொழியிறுதி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஈர்_மொழியிறுதி" ):
                listener.enterஈர்_மொழியிறுதி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஈர்_மொழியிறுதி" ):
                listener.exitஈர்_மொழியிறுதி(self)




    def ஈர்_மொழியிறுதி(self):

        localctx = மாத்திரைParser.ஈர்_மொழியிறுதிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 12, self.RULE_ஈர்_மொழியிறுதி)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 91
            self.உயிர்மெய்க்குறில்()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class மொழிமுதல்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def ஔகாரக்குறுக்கம்(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஔகாரக்குறுக்கம்Context,0)


        def ஐகாரக்குறுக்கம்_முதல்(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஐகாரக்குறுக்கம்_முதல்Context,0)


        def உயிரளபெடை(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிரளபெடைContext,0)


        def உயிர்மெய்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்க்குறில்Context,0)


        def உயிர்மெய்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்நெடில்Context,0)


        def உயிர்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்க்குறில்Context,0)


        def உயிர்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்நெடில்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_மொழிமுதல்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterமொழிமுதல்" ):
                listener.enterமொழிமுதல்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitமொழிமுதல்" ):
                listener.exitமொழிமுதல்(self)




    def மொழிமுதல்(self):

        localctx = மாத்திரைParser.மொழிமுதல்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 14, self.RULE_மொழிமுதல்)
        try:
            self.state = 100
            self._errHandler.sync(self)
            la_ = self._interp.adaptivePredict(self._input,4,self._ctx)
            if la_ == 1:
                self.enterOuterAlt(localctx, 1)
                self.state = 93
                self.ஔகாரக்குறுக்கம்()
                pass

            elif la_ == 2:
                self.enterOuterAlt(localctx, 2)
                self.state = 94
                self.ஐகாரக்குறுக்கம்_முதல்()
                pass

            elif la_ == 3:
                self.enterOuterAlt(localctx, 3)
                self.state = 95
                self.உயிரளபெடை()
                pass

            elif la_ == 4:
                self.enterOuterAlt(localctx, 4)
                self.state = 96
                self.உயிர்மெய்க்குறில்()
                pass

            elif la_ == 5:
                self.enterOuterAlt(localctx, 5)
                self.state = 97
                self.உயிர்மெய்நெடில்()
                pass

            elif la_ == 6:
                self.enterOuterAlt(localctx, 6)
                self.state = 98
                self.உயிர்க்குறில்()
                pass

            elif la_ == 7:
                self.enterOuterAlt(localctx, 7)
                self.state = 99
                self.உயிர்நெடில்()
                pass


        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class மொழியிடைContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def ஆய்தக்குறுக்கம்(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஆய்தக்குறுக்கம்Context,0)


        def குற்றியலிகரம்_புணர்மொழி(self):
            return self.getTypedRuleContext(மாத்திரைParser.குற்றியலிகரம்_புணர்மொழிContext,0)


        def ஐகாரக்குறுக்கம்_இடைகடை(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஐகாரக்குறுக்கம்_இடைகடைContext,0)


        def மகரக்குறுக்கம்_புணர்மொழி(self):
            return self.getTypedRuleContext(மாத்திரைParser.மகரக்குறுக்கம்_புணர்மொழிContext,0)


        def உயிரளபெடை(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிரளபெடைContext,0)


        def ஒற்றளபெடை(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஒற்றளபெடைContext,0)


        def உயிர்மெய்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்க்குறில்Context,0)


        def உயிர்மெய்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்நெடில்Context,0)


        def மெய்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மெய்Context,0)


        def ஆய்தம்(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஆய்தம்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_மொழியிடை

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterமொழியிடை" ):
                listener.enterமொழியிடை(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitமொழியிடை" ):
                listener.exitமொழியிடை(self)




    def மொழியிடை(self):

        localctx = மாத்திரைParser.மொழியிடைContext(self, self._ctx, self.state)
        self.enterRule(localctx, 16, self.RULE_மொழியிடை)
        try:
            self.state = 112
            self._errHandler.sync(self)
            la_ = self._interp.adaptivePredict(self._input,5,self._ctx)
            if la_ == 1:
                self.enterOuterAlt(localctx, 1)
                self.state = 102
                self.ஆய்தக்குறுக்கம்()
                pass

            elif la_ == 2:
                self.enterOuterAlt(localctx, 2)
                self.state = 103
                self.குற்றியலிகரம்_புணர்மொழி()
                pass

            elif la_ == 3:
                self.enterOuterAlt(localctx, 3)
                self.state = 104
                self.ஐகாரக்குறுக்கம்_இடைகடை()
                pass

            elif la_ == 4:
                self.enterOuterAlt(localctx, 4)
                self.state = 105
                self.மகரக்குறுக்கம்_புணர்மொழி()
                pass

            elif la_ == 5:
                self.enterOuterAlt(localctx, 5)
                self.state = 106
                self.உயிரளபெடை()
                pass

            elif la_ == 6:
                self.enterOuterAlt(localctx, 6)
                self.state = 107
                self.ஒற்றளபெடை()
                pass

            elif la_ == 7:
                self.enterOuterAlt(localctx, 7)
                self.state = 108
                self.உயிர்மெய்க்குறில்()
                pass

            elif la_ == 8:
                self.enterOuterAlt(localctx, 8)
                self.state = 109
                self.உயிர்மெய்நெடில்()
                pass

            elif la_ == 9:
                self.enterOuterAlt(localctx, 9)
                self.state = 110
                self.மெய்()
                pass

            elif la_ == 10:
                self.enterOuterAlt(localctx, 10)
                self.state = 111
                self.ஆய்தம்()
                pass


        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class மொழியிறுதிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def உயிரளபெடை(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிரளபெடைContext,0)


        def குற்றியலிகரம்_தனிமொழி(self):
            return self.getTypedRuleContext(மாத்திரைParser.குற்றியலிகரம்_தனிமொழிContext,0)


        def மகரக்குறுக்கம்_தனிமொழி(self):
            return self.getTypedRuleContext(மாத்திரைParser.மகரக்குறுக்கம்_தனிமொழிContext,0)


        def ஐகாரக்குறுக்கம்_இடைகடை(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஐகாரக்குறுக்கம்_இடைகடைContext,0)


        def குற்றியலுகரம்(self):
            return self.getTypedRuleContext(மாத்திரைParser.குற்றியலுகரம்Context,0)


        def உயிர்மெய்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்நெடில்Context,0)


        def உயிர்மெய்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்க்குறில்Context,0)


        def மெய்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மெய்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_மொழியிறுதி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterமொழியிறுதி" ):
                listener.enterமொழியிறுதி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitமொழியிறுதி" ):
                listener.exitமொழியிறுதி(self)




    def மொழியிறுதி(self):

        localctx = மாத்திரைParser.மொழியிறுதிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 18, self.RULE_மொழியிறுதி)
        try:
            self.state = 122
            self._errHandler.sync(self)
            la_ = self._interp.adaptivePredict(self._input,6,self._ctx)
            if la_ == 1:
                self.enterOuterAlt(localctx, 1)
                self.state = 114
                self.உயிரளபெடை()
                pass

            elif la_ == 2:
                self.enterOuterAlt(localctx, 2)
                self.state = 115
                self.குற்றியலிகரம்_தனிமொழி()
                pass

            elif la_ == 3:
                self.enterOuterAlt(localctx, 3)
                self.state = 116
                self.மகரக்குறுக்கம்_தனிமொழி()
                pass

            elif la_ == 4:
                self.enterOuterAlt(localctx, 4)
                self.state = 117
                self.ஐகாரக்குறுக்கம்_இடைகடை()
                pass

            elif la_ == 5:
                self.enterOuterAlt(localctx, 5)
                self.state = 118
                self.குற்றியலுகரம்()
                pass

            elif la_ == 6:
                self.enterOuterAlt(localctx, 6)
                self.state = 119
                self.உயிர்மெய்நெடில்()
                pass

            elif la_ == 7:
                self.enterOuterAlt(localctx, 7)
                self.state = 120
                self.உயிர்மெய்க்குறில்()
                pass

            elif la_ == 8:
                self.enterOuterAlt(localctx, 8)
                self.state = 121
                self.மெய்()
                pass


        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class குறிலிணைContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def உயிர்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்க்குறில்Context,0)


        def உயிர்மெய்க்குறில்(self, i:int=None):
            if i is None:
                return self.getTypedRuleContexts(மாத்திரைParser.உயிர்மெய்க்குறில்Context)
            else:
                return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்க்குறில்Context,i)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_குறிலிணை

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterகுறிலிணை" ):
                listener.enterகுறிலிணை(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitகுறிலிணை" ):
                listener.exitகுறிலிணை(self)




    def குறிலிணை(self):

        localctx = மாத்திரைParser.குறிலிணைContext(self, self._ctx, self.state)
        self.enterRule(localctx, 20, self.RULE_குறிலிணை)
        try:
            self.state = 130
            self._errHandler.sync(self)
            token = self._input.LA(1)
            if token in [மாத்திரைParser.T__0, மாத்திரைParser.T__6, மாத்திரைParser.T__12, மாத்திரைParser.T__13, மாத்திரைParser.T__14]:
                self.enterOuterAlt(localctx, 1)
                self.state = 124
                self.உயிர்க்குறில்()
                self.state = 125
                self.உயிர்மெய்க்குறில்()
                pass
            elif token in [மாத்திரைParser.T__7, மாத்திரைParser.T__8, மாத்திரைParser.T__9, மாத்திரைParser.T__10, மாத்திரைParser.T__21, மாத்திரைParser.T__22, மாத்திரைParser.T__23, மாத்திரைParser.T__24, மாத்திரைParser.T__25, மாத்திரைParser.T__26, மாத்திரைParser.T__27, மாத்திரைParser.T__28, மாத்திரைParser.T__29, மாத்திரைParser.T__30, மாத்திரைParser.T__31, மாத்திரைParser.T__32, மாத்திரைParser.T__33, மாத்திரைParser.T__34]:
                self.enterOuterAlt(localctx, 2)
                self.state = 127
                self.உயிர்மெய்க்குறில்()
                self.state = 128
                self.உயிர்மெய்க்குறில்()
                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 உயிரளபெடைContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def மெய்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மெய்Context,0)


        def உயிரளபெடை_எழுத்து(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிரளபெடை_எழுத்துContext,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_உயிரளபெடை

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஉயிரளபெடை" ):
                listener.enterஉயிரளபெடை(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஉயிரளபெடை" ):
                listener.exitஉயிரளபெடை(self)




    def உயிரளபெடை(self):

        localctx = மாத்திரைParser.உயிரளபெடைContext(self, self._ctx, self.state)
        self.enterRule(localctx, 22, self.RULE_உயிரளபெடை)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 132
            self.மெய்()
            self.state = 133
            self.உயிரளபெடை_எழுத்து()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஒற்றளபெடைContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def ஒற்றளபெடை_எழுத்து(self, i:int=None):
            if i is None:
                return self.getTypedRuleContexts(மாத்திரைParser.ஒற்றளபெடை_எழுத்துContext)
            else:
                return self.getTypedRuleContext(மாத்திரைParser.ஒற்றளபெடை_எழுத்துContext,i)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஒற்றளபெடை

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஒற்றளபெடை" ):
                listener.enterஒற்றளபெடை(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஒற்றளபெடை" ):
                listener.exitஒற்றளபெடை(self)




    def ஒற்றளபெடை(self):

        localctx = மாத்திரைParser.ஒற்றளபெடைContext(self, self._ctx, self.state)
        self.enterRule(localctx, 24, self.RULE_ஒற்றளபெடை)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 135
            self.ஒற்றளபெடை_எழுத்து()
            self.state = 136
            self.ஒற்றளபெடை_எழுத்து()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class குற்றியலுகரம்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def வல்லினம்(self):
            return self.getTypedRuleContext(மாத்திரைParser.வல்லினம்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_குற்றியலுகரம்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterகுற்றியலுகரம்" ):
                listener.enterகுற்றியலுகரம்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitகுற்றியலுகரம்" ):
                listener.exitகுற்றியலுகரம்(self)




    def குற்றியலுகரம்(self):

        localctx = மாத்திரைParser.குற்றியலுகரம்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 26, self.RULE_குற்றியலுகரம்)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 138
            self.வல்லினம்()
            self.state = 139
            self.match(மாத்திரைParser.T__0)
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஐகாரக்குறுக்கம்_முதல்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஐகாரக்குறுக்கம்_முதல்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஐகாரக்குறுக்கம்_முதல்" ):
                listener.enterஐகாரக்குறுக்கம்_முதல்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஐகாரக்குறுக்கம்_முதல்" ):
                listener.exitஐகாரக்குறுக்கம்_முதல்(self)




    def ஐகாரக்குறுக்கம்_முதல்(self):

        localctx = மாத்திரைParser.ஐகாரக்குறுக்கம்_முதல்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 28, self.RULE_ஐகாரக்குறுக்கம்_முதல்)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 141
            self.match(மாத்திரைParser.T__1)
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஐகாரக்குறுக்கம்_இடைகடைContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def மெய்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மெய்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஐகாரக்குறுக்கம்_இடைகடை

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஐகாரக்குறுக்கம்_இடைகடை" ):
                listener.enterஐகாரக்குறுக்கம்_இடைகடை(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஐகாரக்குறுக்கம்_இடைகடை" ):
                listener.exitஐகாரக்குறுக்கம்_இடைகடை(self)




    def ஐகாரக்குறுக்கம்_இடைகடை(self):

        localctx = மாத்திரைParser.ஐகாரக்குறுக்கம்_இடைகடைContext(self, self._ctx, self.state)
        self.enterRule(localctx, 30, self.RULE_ஐகாரக்குறுக்கம்_இடைகடை)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 143
            self.மெய்()
            self.state = 144
            self.match(மாத்திரைParser.T__1)
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஔகாரக்குறுக்கம்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def மெய்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மெய்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஔகாரக்குறுக்கம்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஔகாரக்குறுக்கம்" ):
                listener.enterஔகாரக்குறுக்கம்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஔகாரக்குறுக்கம்" ):
                listener.exitஔகாரக்குறுக்கம்(self)




    def ஔகாரக்குறுக்கம்(self):

        localctx = மாத்திரைParser.ஔகாரக்குறுக்கம்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 32, self.RULE_ஔகாரக்குறுக்கம்)
        try:
            self.state = 150
            self._errHandler.sync(self)
            token = self._input.LA(1)
            if token in [மாத்திரைParser.T__2]:
                self.enterOuterAlt(localctx, 1)
                self.state = 146
                self.match(மாத்திரைParser.T__2)
                pass
            elif token in [மாத்திரைParser.T__7, மாத்திரைParser.T__8, மாத்திரைParser.T__9, மாத்திரைParser.T__10, மாத்திரைParser.T__21, மாத்திரைParser.T__22, மாத்திரைParser.T__23, மாத்திரைParser.T__24, மாத்திரைParser.T__25, மாத்திரைParser.T__26, மாத்திரைParser.T__27, மாத்திரைParser.T__28, மாத்திரைParser.T__29, மாத்திரைParser.T__30, மாத்திரைParser.T__31, மாத்திரைParser.T__32, மாத்திரைParser.T__33, மாத்திரைParser.T__34]:
                self.enterOuterAlt(localctx, 2)
                self.state = 147
                self.மெய்()
                self.state = 148
                self.match(மாத்திரைParser.T__2)
                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 ஆய்தக்குறுக்கம்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஆய்தக்குறுக்கம்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஆய்தக்குறுக்கம்" ):
                listener.enterஆய்தக்குறுக்கம்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஆய்தக்குறுக்கம்" ):
                listener.exitஆய்தக்குறுக்கம்(self)




    def ஆய்தக்குறுக்கம்(self):

        localctx = மாத்திரைParser.ஆய்தக்குறுக்கம்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 34, self.RULE_ஆய்தக்குறுக்கம்)
        self._la = 0 # Token type
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 152
            _la = self._input.LA(1)
            if not(_la==மாத்திரைParser.T__3 or _la==மாத்திரைParser.T__4):
                self._errHandler.recoverInline(self)
            else:
                self._errHandler.reportMatch(self)
                self.consume()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class குற்றியலிகரம்_தனிமொழிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_குற்றியலிகரம்_தனிமொழி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterகுற்றியலிகரம்_தனிமொழி" ):
                listener.enterகுற்றியலிகரம்_தனிமொழி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitகுற்றியலிகரம்_தனிமொழி" ):
                listener.exitகுற்றியலிகரம்_தனிமொழி(self)




    def குற்றியலிகரம்_தனிமொழி(self):

        localctx = மாத்திரைParser.குற்றியலிகரம்_தனிமொழிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 36, self.RULE_குற்றியலிகரம்_தனிமொழி)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 154
            self.match(மாத்திரைParser.T__5)
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class குற்றியலிகரம்_புணர்மொழிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def வல்லினம்(self):
            return self.getTypedRuleContext(மாத்திரைParser.வல்லினம்Context,0)


        def உயிர்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்க்குறில்Context,0)


        def உயிர்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்நெடில்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_குற்றியலிகரம்_புணர்மொழி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterகுற்றியலிகரம்_புணர்மொழி" ):
                listener.enterகுற்றியலிகரம்_புணர்மொழி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitகுற்றியலிகரம்_புணர்மொழி" ):
                listener.exitகுற்றியலிகரம்_புணர்மொழி(self)




    def குற்றியலிகரம்_புணர்மொழி(self):

        localctx = மாத்திரைParser.குற்றியலிகரம்_புணர்மொழிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 38, self.RULE_குற்றியலிகரம்_புணர்மொழி)
        try:
            self.state = 166
            self._errHandler.sync(self)
            la_ = self._interp.adaptivePredict(self._input,9,self._ctx)
            if la_ == 1:
                self.enterOuterAlt(localctx, 1)
                self.state = 156
                self.வல்லினம்()
                self.state = 157
                self.match(மாத்திரைParser.T__6)
                self.state = 158
                self.match(மாத்திரைParser.T__7)
                self.state = 159
                self.உயிர்க்குறில்()
                pass

            elif la_ == 2:
                self.enterOuterAlt(localctx, 2)
                self.state = 161
                self.வல்லினம்()
                self.state = 162
                self.match(மாத்திரைParser.T__6)
                self.state = 163
                self.match(மாத்திரைParser.T__7)
                self.state = 164
                self.உயிர்நெடில்()
                pass


        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class மகரக்குறுக்கம்_தனிமொழிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_மகரக்குறுக்கம்_தனிமொழி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterமகரக்குறுக்கம்_தனிமொழி" ):
                listener.enterமகரக்குறுக்கம்_தனிமொழி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitமகரக்குறுக்கம்_தனிமொழி" ):
                listener.exitமகரக்குறுக்கம்_தனிமொழி(self)




    def மகரக்குறுக்கம்_தனிமொழி(self):

        localctx = மாத்திரைParser.மகரக்குறுக்கம்_தனிமொழிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 40, self.RULE_மகரக்குறுக்கம்_தனிமொழி)
        try:
            self.state = 172
            self._errHandler.sync(self)
            token = self._input.LA(1)
            if token in [மாத்திரைParser.T__8]:
                self.enterOuterAlt(localctx, 1)
                self.state = 168
                self.match(மாத்திரைParser.T__8)
                self.state = 169
                self.match(மாத்திரைParser.T__9)
                pass
            elif token in [மாத்திரைParser.T__10]:
                self.enterOuterAlt(localctx, 2)
                self.state = 170
                self.match(மாத்திரைParser.T__10)
                self.state = 171
                self.match(மாத்திரைParser.T__9)
                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 மகரக்குறுக்கம்_புணர்மொழிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_மகரக்குறுக்கம்_புணர்மொழி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterமகரக்குறுக்கம்_புணர்மொழி" ):
                listener.enterமகரக்குறுக்கம்_புணர்மொழி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitமகரக்குறுக்கம்_புணர்மொழி" ):
                listener.exitமகரக்குறுக்கம்_புணர்மொழி(self)




    def மகரக்குறுக்கம்_புணர்மொழி(self):

        localctx = மாத்திரைParser.மகரக்குறுக்கம்_புணர்மொழிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 42, self.RULE_மகரக்குறுக்கம்_புணர்மொழி)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 174
            self.match(மாத்திரைParser.T__11)
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class உயிர்மெய்க்குறில்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def மெய்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மெய்Context,0)


        def உயிர்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்க்குறில்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_உயிர்மெய்க்குறில்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஉயிர்மெய்க்குறில்" ):
                listener.enterஉயிர்மெய்க்குறில்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஉயிர்மெய்க்குறில்" ):
                listener.exitஉயிர்மெய்க்குறில்(self)




    def உயிர்மெய்க்குறில்(self):

        localctx = மாத்திரைParser.உயிர்மெய்க்குறில்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 44, self.RULE_உயிர்மெய்க்குறில்)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 176
            self.மெய்()
            self.state = 177
            self.உயிர்க்குறில்()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class உயிர்மெய்நெடில்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def மெய்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மெய்Context,0)


        def உயிர்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்நெடில்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_உயிர்மெய்நெடில்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஉயிர்மெய்நெடில்" ):
                listener.enterஉயிர்மெய்நெடில்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஉயிர்மெய்நெடில்" ):
                listener.exitஉயிர்மெய்நெடில்(self)




    def உயிர்மெய்நெடில்(self):

        localctx = மாத்திரைParser.உயிர்மெய்நெடில்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 46, self.RULE_உயிர்மெய்நெடில்)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 179
            self.மெய்()
            self.state = 180
            self.உயிர்நெடில்()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class உயிர்க்குறில்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_உயிர்க்குறில்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஉயிர்க்குறில்" ):
                listener.enterஉயிர்க்குறில்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஉயிர்க்குறில்" ):
                listener.exitஉயிர்க்குறில்(self)




    def உயிர்க்குறில்(self):

        localctx = மாத்திரைParser.உயிர்க்குறில்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 48, self.RULE_உயிர்க்குறில்)
        self._la = 0 # Token type
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 182
            _la = self._input.LA(1)
            if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << மாத்திரைParser.T__0) | (1 << மாத்திரைParser.T__6) | (1 << மாத்திரைParser.T__12) | (1 << மாத்திரைParser.T__13) | (1 << மாத்திரைParser.T__14))) != 0)):
                self._errHandler.recoverInline(self)
            else:
                self._errHandler.reportMatch(self)
                self.consume()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class உயிர்நெடில்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_உயிர்நெடில்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஉயிர்நெடில்" ):
                listener.enterஉயிர்நெடில்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஉயிர்நெடில்" ):
                listener.exitஉயிர்நெடில்(self)




    def உயிர்நெடில்(self):

        localctx = மாத்திரைParser.உயிர்நெடில்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 50, self.RULE_உயிர்நெடில்)
        self._la = 0 # Token type
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 184
            _la = self._input.LA(1)
            if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << மாத்திரைParser.T__1) | (1 << மாத்திரைParser.T__2) | (1 << மாத்திரைParser.T__15) | (1 << மாத்திரைParser.T__16) | (1 << மாத்திரைParser.T__17) | (1 << மாத்திரைParser.T__18) | (1 << மாத்திரைParser.T__19))) != 0)):
                self._errHandler.recoverInline(self)
            else:
                self._errHandler.reportMatch(self)
                self.consume()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஆய்தம்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஆய்தம்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஆய்தம்" ):
                listener.enterஆய்தம்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஆய்தம்" ):
                listener.exitஆய்தம்(self)




    def ஆய்தம்(self):

        localctx = மாத்திரைParser.ஆய்தம்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 52, self.RULE_ஆய்தம்)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 186
            self.match(மாத்திரைParser.T__20)
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class மெய்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_மெய்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterமெய்" ):
                listener.enterமெய்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitமெய்" ):
                listener.exitமெய்(self)




    def மெய்(self):

        localctx = மாத்திரைParser.மெய்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 54, self.RULE_மெய்)
        self._la = 0 # Token type
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 188
            _la = self._input.LA(1)
            if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << மாத்திரைParser.T__7) | (1 << மாத்திரைParser.T__8) | (1 << மாத்திரைParser.T__9) | (1 << மாத்திரைParser.T__10) | (1 << மாத்திரைParser.T__21) | (1 << மாத்திரைParser.T__22) | (1 << மாத்திரைParser.T__23) | (1 << மாத்திரைParser.T__24) | (1 << மாத்திரைParser.T__25) | (1 << மாத்திரைParser.T__26) | (1 << மாத்திரைParser.T__27) | (1 << மாத்திரைParser.T__28) | (1 << மாத்திரைParser.T__29) | (1 << மாத்திரைParser.T__30) | (1 << மாத்திரைParser.T__31) | (1 << மாத்திரைParser.T__32) | (1 << மாத்திரைParser.T__33) | (1 << மாத்திரைParser.T__34))) != 0)):
                self._errHandler.recoverInline(self)
            else:
                self._errHandler.reportMatch(self)
                self.consume()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class வல்லினம்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_வல்லினம்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterவல்லினம்" ):
                listener.enterவல்லினம்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitவல்லினம்" ):
                listener.exitவல்லினம்(self)




    def வல்லினம்(self):

        localctx = மாத்திரைParser.வல்லினம்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 56, self.RULE_வல்லினம்)
        self._la = 0 # Token type
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 190
            _la = self._input.LA(1)
            if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << மாத்திரைParser.T__21) | (1 << மாத்திரைParser.T__22) | (1 << மாத்திரைParser.T__23) | (1 << மாத்திரைParser.T__24) | (1 << மாத்திரைParser.T__25) | (1 << மாத்திரைParser.T__26))) != 0)):
                self._errHandler.recoverInline(self)
            else:
                self._errHandler.reportMatch(self)
                self.consume()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class உயிரளபெடை_எழுத்துContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_உயிரளபெடை_எழுத்து

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஉயிரளபெடை_எழுத்து" ):
                listener.enterஉயிரளபெடை_எழுத்து(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஉயிரளபெடை_எழுத்து" ):
                listener.exitஉயிரளபெடை_எழுத்து(self)




    def உயிரளபெடை_எழுத்து(self):

        localctx = மாத்திரைParser.உயிரளபெடை_எழுத்துContext(self, self._ctx, self.state)
        self.enterRule(localctx, 58, self.RULE_உயிரளபெடை_எழுத்து)
        self._la = 0 # Token type
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 192
            _la = self._input.LA(1)
            if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << மாத்திரைParser.T__35) | (1 << மாத்திரைParser.T__36) | (1 << மாத்திரைParser.T__37) | (1 << மாத்திரைParser.T__38) | (1 << மாத்திரைParser.T__39) | (1 << மாத்திரைParser.T__40) | (1 << மாத்திரைParser.T__41))) != 0)):
                self._errHandler.recoverInline(self)
            else:
                self._errHandler.reportMatch(self)
                self.consume()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஒற்றளபெடை_எழுத்துContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஒற்றளபெடை_எழுத்து

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஒற்றளபெடை_எழுத்து" ):
                listener.enterஒற்றளபெடை_எழுத்து(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஒற்றளபெடை_எழுத்து" ):
                listener.exitஒற்றளபெடை_எழுத்து(self)




    def ஒற்றளபெடை_எழுத்து(self):

        localctx = மாத்திரைParser.ஒற்றளபெடை_எழுத்துContext(self, self._ctx, self.state)
        self.enterRule(localctx, 60, self.RULE_ஒற்றளபெடை_எழுத்து)
        self._la = 0 # Token type
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 194
            _la = self._input.LA(1)
            if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << மாத்திரைParser.T__7) | (1 << மாத்திரைParser.T__8) | (1 << மாத்திரைParser.T__9) | (1 << மாத்திரைParser.T__10) | (1 << மாத்திரைParser.T__20) | (1 << மாத்திரைParser.T__27) | (1 << மாத்திரைParser.T__28) | (1 << மாத்திரைParser.T__29) | (1 << மாத்திரைParser.T__31) | (1 << மாத்திரைParser.T__32) | (1 << மாத்திரைParser.T__34))) != 0)):
                self._errHandler.recoverInline(self)
            else:
                self._errHandler.reportMatch(self)
                self.consume()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx






# Generated from /home/srix/workspace/pytamil/pytamil/தமிழ்/resources/மாத்திரை.g4 by ANTLR 4.8
# 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,")
        buf.write("\u00c7\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7")
        buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16")
        buf.write("\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23\t\23")
        buf.write("\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31")
        buf.write("\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36")
        buf.write("\4\37\t\37\4 \t \3\2\3\2\3\2\5\2D\n\2\3\3\3\3\3\4\3\4")
        buf.write("\3\4\3\5\3\5\7\5M\n\5\f\5\16\5P\13\5\3\5\3\5\3\6\3\6\3")
        buf.write("\6\3\6\5\6X\n\6\3\7\3\7\5\7\\\n\7\3\b\3\b\3\t\3\t\3\t")
        buf.write("\3\t\3\t\3\t\3\t\5\tg\n\t\3\n\3\n\3\n\3\n\3\n\3\n\3\n")
        buf.write("\3\n\3\n\3\n\5\ns\n\n\3\13\3\13\3\13\3\13\3\13\3\13\3")
        buf.write("\13\3\13\5\13}\n\13\3\f\3\f\3\f\3\f\3\f\3\f\5\f\u0085")
        buf.write("\n\f\3\r\3\r\3\r\3\16\3\16\3\16\3\17\3\17\3\17\3\20\3")
        buf.write("\20\3\21\3\21\3\21\3\22\3\22\3\22\3\22\5\22\u0099\n\22")
        buf.write("\3\23\3\23\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\25")
        buf.write("\3\25\3\25\3\25\5\25\u00a9\n\25\3\26\3\26\3\26\3\26\5")
        buf.write("\26\u00af\n\26\3\27\3\27\3\30\3\30\3\30\3\31\3\31\3\31")
        buf.write("\3\32\3\32\3\33\3\33\3\34\3\34\3\35\3\35\3\36\3\36\3\37")
        buf.write("\3\37\3 \3 \3 \3N\2!\2\4\6\b\n\f\16\20\22\24\26\30\32")
        buf.write("\34\36 \"$&(*,.\60\62\64\668:<>\2\t\3\2\6\7\5\2\3\3\t")
        buf.write("\t\17\21\4\2\4\5\22\26\4\2\n\r\30%\3\2\30\35\3\2&,\7\2")
        buf.write("\n\r\27\27\36 \"#%%\2\u00c8\2C\3\2\2\2\4E\3\2\2\2\6G\3")
        buf.write("\2\2\2\bJ\3\2\2\2\nW\3\2\2\2\f[\3\2\2\2\16]\3\2\2\2\20")
        buf.write("f\3\2\2\2\22r\3\2\2\2\24|\3\2\2\2\26\u0084\3\2\2\2\30")
        buf.write("\u0086\3\2\2\2\32\u0089\3\2\2\2\34\u008c\3\2\2\2\36\u008f")
        buf.write("\3\2\2\2 \u0091\3\2\2\2\"\u0098\3\2\2\2$\u009a\3\2\2\2")
        buf.write("&\u009c\3\2\2\2(\u00a8\3\2\2\2*\u00ae\3\2\2\2,\u00b0\3")
        buf.write("\2\2\2.\u00b2\3\2\2\2\60\u00b5\3\2\2\2\62\u00b8\3\2\2")
        buf.write("\2\64\u00ba\3\2\2\2\66\u00bc\3\2\2\28\u00be\3\2\2\2:\u00c0")
        buf.write("\3\2\2\2<\u00c2\3\2\2\2>\u00c4\3\2\2\2@D\5\4\3\2AD\5\6")
        buf.write("\4\2BD\5\b\5\2C@\3\2\2\2CA\3\2\2\2CB\3\2\2\2D\3\3\2\2")
        buf.write("\2EF\5\n\6\2F\5\3\2\2\2GH\5\f\7\2HI\5\16\b\2I\7\3\2\2")
        buf.write("\2JN\5\20\t\2KM\5\22\n\2LK\3\2\2\2MP\3\2\2\2NO\3\2\2\2")
        buf.write("NL\3\2\2\2OQ\3\2\2\2PN\3\2\2\2QR\5\24\13\2R\t\3\2\2\2")
        buf.write("SX\5.\30\2TX\5\60\31\2UX\5\62\32\2VX\5\64\33\2WS\3\2\2")
        buf.write("\2WT\3\2\2\2WU\3\2\2\2WV\3\2\2\2X\13\3\2\2\2Y\\\5.\30")
        buf.write("\2Z\\\5\62\32\2[Y\3\2\2\2[Z\3\2\2\2\\\r\3\2\2\2]^\5.\30")
        buf.write("\2^\17\3\2\2\2_g\5\"\22\2`g\5\36\20\2ag\5\30\r\2bg\5.")
        buf.write("\30\2cg\5\60\31\2dg\5\62\32\2eg\5\64\33\2f_\3\2\2\2f`")
        buf.write("\3\2\2\2fa\3\2\2\2fb\3\2\2\2fc\3\2\2\2fd\3\2\2\2fe\3\2")
        buf.write("\2\2g\21\3\2\2\2hs\5$\23\2is\5(\25\2js\5 \21\2ks\5,\27")
        buf.write("\2ls\5\30\r\2ms\5\32\16\2ns\5.\30\2os\5\60\31\2ps\58\35")
        buf.write("\2qs\5\66\34\2rh\3\2\2\2ri\3\2\2\2rj\3\2\2\2rk\3\2\2\2")
        buf.write("rl\3\2\2\2rm\3\2\2\2rn\3\2\2\2ro\3\2\2\2rp\3\2\2\2rq\3")
        buf.write("\2\2\2s\23\3\2\2\2t}\5\30\r\2u}\5&\24\2v}\5*\26\2w}\5")
        buf.write(" \21\2x}\5\34\17\2y}\5\60\31\2z}\5.\30\2{}\58\35\2|t\3")
        buf.write("\2\2\2|u\3\2\2\2|v\3\2\2\2|w\3\2\2\2|x\3\2\2\2|y\3\2\2")
        buf.write("\2|z\3\2\2\2|{\3\2\2\2}\25\3\2\2\2~\177\5\62\32\2\177")
        buf.write("\u0080\5.\30\2\u0080\u0085\3\2\2\2\u0081\u0082\5.\30\2")
        buf.write("\u0082\u0083\5.\30\2\u0083\u0085\3\2\2\2\u0084~\3\2\2")
        buf.write("\2\u0084\u0081\3\2\2\2\u0085\27\3\2\2\2\u0086\u0087\5")
        buf.write("8\35\2\u0087\u0088\5<\37\2\u0088\31\3\2\2\2\u0089\u008a")
        buf.write("\5> \2\u008a\u008b\5> \2\u008b\33\3\2\2\2\u008c\u008d")
        buf.write("\5:\36\2\u008d\u008e\7\3\2\2\u008e\35\3\2\2\2\u008f\u0090")
        buf.write("\7\4\2\2\u0090\37\3\2\2\2\u0091\u0092\58\35\2\u0092\u0093")
        buf.write("\7\4\2\2\u0093!\3\2\2\2\u0094\u0099\7\5\2\2\u0095\u0096")
        buf.write("\58\35\2\u0096\u0097\7\5\2\2\u0097\u0099\3\2\2\2\u0098")
        buf.write("\u0094\3\2\2\2\u0098\u0095\3\2\2\2\u0099#\3\2\2\2\u009a")
        buf.write("\u009b\t\2\2\2\u009b%\3\2\2\2\u009c\u009d\7\b\2\2\u009d")
        buf.write("\'\3\2\2\2\u009e\u009f\5:\36\2\u009f\u00a0\7\t\2\2\u00a0")
        buf.write("\u00a1\7\n\2\2\u00a1\u00a2\5\62\32\2\u00a2\u00a9\3\2\2")
        buf.write("\2\u00a3\u00a4\5:\36\2\u00a4\u00a5\7\t\2\2\u00a5\u00a6")
        buf.write("\7\n\2\2\u00a6\u00a7\5\64\33\2\u00a7\u00a9\3\2\2\2\u00a8")
        buf.write("\u009e\3\2\2\2\u00a8\u00a3\3\2\2\2\u00a9)\3\2\2\2\u00aa")
        buf.write("\u00ab\7\13\2\2\u00ab\u00af\7\f\2\2\u00ac\u00ad\7\r\2")
        buf.write("\2\u00ad\u00af\7\f\2\2\u00ae\u00aa\3\2\2\2\u00ae\u00ac")
        buf.write("\3\2\2\2\u00af+\3\2\2\2\u00b0\u00b1\7\16\2\2\u00b1-\3")
        buf.write("\2\2\2\u00b2\u00b3\58\35\2\u00b3\u00b4\5\62\32\2\u00b4")
        buf.write("/\3\2\2\2\u00b5\u00b6\58\35\2\u00b6\u00b7\5\64\33\2\u00b7")
        buf.write("\61\3\2\2\2\u00b8\u00b9\t\3\2\2\u00b9\63\3\2\2\2\u00ba")
        buf.write("\u00bb\t\4\2\2\u00bb\65\3\2\2\2\u00bc\u00bd\7\27\2\2\u00bd")
        buf.write("\67\3\2\2\2\u00be\u00bf\t\5\2\2\u00bf9\3\2\2\2\u00c0\u00c1")
        buf.write("\t\6\2\2\u00c1;\3\2\2\2\u00c2\u00c3\t\7\2\2\u00c3=\3\2")
        buf.write("\2\2\u00c4\u00c5\t\b\2\2\u00c5?\3\2\2\2\rCNW[fr|\u0084")
        buf.write("\u0098\u00a8\u00ae")
        return buf.getvalue()


class மாத்திரைParser ( Parser ):

    grammarFileName = "மாத்திரை.g4"

    atn = ATNDeserializer().deserialize(serializedATN())

    decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]

    sharedContextCache = PredictionContextCache()

    literalNames = [ "<INVALID>", "'\u0B89'", "'\u0B90'", "'\u0B94'", "'\u0B83\u0BB1\u0BCD\u0B87'", 
                     "'\u0B83\u0B9F\u0BCD\u0B88'", "'\u0BAE\u0BCD\u0B87\u0BAF\u0BCD\u0B86'", 
                     "'\u0B87'", "'\u0BAF\u0BCD'", "'\u0BA3\u0BCD'", "'\u0BAE\u0BCD'", 
                     "'\u0BA9\u0BCD'", "'\u0BAE\u0BCD\u0BB5\u0BCD\u0B85'", 
                     "'\u0B85'", "'\u0B8E'", "'\u0B92'", "'\u0B86'", "'\u0B88'", 
                     "'\u0B8A'", "'\u0B8F'", "'\u0B93'", "'\u0B83'", "'\u0B95\u0BCD'", 
                     "'\u0B9A\u0BCD'", "'\u0B9F\u0BCD'", "'\u0BA4\u0BCD'", 
                     "'\u0BAA\u0BCD'", "'\u0BB1\u0BCD'", "'\u0B9E\u0BCD'", 
                     "'\u0B99\u0BCD'", "'\u0BA8\u0BCD'", "'\u0BB0\u0BCD'", 
                     "'\u0BB2\u0BCD'", "'\u0BB5\u0BCD'", "'\u0BB4\u0BCD'", 
                     "'\u0BB3\u0BCD'", "'\u0B86\u0B85'", "'\u0B88\u0B87'", 
                     "'\u0B8A\u0B89'", "'\u0B8F\u0B8E'", "'\u0B90\u0B87'", 
                     "'\u0B93\u0B92'", "'\u0B94\u0B89'" ]

    symbolicNames = [  ]

    RULE_மாத்திரை = 0
    RULE_ஒர்_எழுத்து_ஒரு_மொழி = 1
    RULE_ஈர்_எழுத்து_ஒரு_மொழி = 2
    RULE_பொதுமொழி = 3
    RULE_ஒரெழுத்து = 4
    RULE_ஈர்_மொழிமுதல் = 5
    RULE_ஈர்_மொழியிறுதி = 6
    RULE_மொழிமுதல் = 7
    RULE_மொழியிடை = 8
    RULE_மொழியிறுதி = 9
    RULE_குறிலிணை = 10
    RULE_உயிரளபெடை = 11
    RULE_ஒற்றளபெடை = 12
    RULE_குற்றியலுகரம் = 13
    RULE_ஐகாரக்குறுக்கம்_முதல் = 14
    RULE_ஐகாரக்குறுக்கம்_இடைகடை = 15
    RULE_ஔகாரக்குறுக்கம் = 16
    RULE_ஆய்தக்குறுக்கம் = 17
    RULE_குற்றியலிகரம்_தனிமொழி = 18
    RULE_குற்றியலிகரம்_புணர்மொழி = 19
    RULE_மகரக்குறுக்கம்_தனிமொழி = 20
    RULE_மகரக்குறுக்கம்_புணர்மொழி = 21
    RULE_உயிர்மெய்க்குறில் = 22
    RULE_உயிர்மெய்நெடில் = 23
    RULE_உயிர்க்குறில் = 24
    RULE_உயிர்நெடில் = 25
    RULE_ஆய்தம் = 26
    RULE_மெய் = 27
    RULE_வல்லினம் = 28
    RULE_உயிரளபெடை_எழுத்து = 29
    RULE_ஒற்றளபெடை_எழுத்து = 30

    ruleNames =  [ "மாத்திரை", "ஒர்_எழுத்து_ஒரு_மொழி", "ஈர்_எழுத்து_ஒரு_மொழி", 
                   "பொதுமொழி", "ஒரெழுத்து", "ஈர்_மொழிமுதல்", "ஈர்_மொழியிறுதி", 
                   "மொழிமுதல்", "மொழியிடை", "மொழியிறுதி", "குறிலிணை", "உயிரளபெடை", 
                   "ஒற்றளபெடை", "குற்றியலுகரம்", "ஐகாரக்குறுக்கம்_முதல்", 
                   "ஐகாரக்குறுக்கம்_இடைகடை", "ஔகாரக்குறுக்கம்", "ஆய்தக்குறுக்கம்", 
                   "குற்றியலிகரம்_தனிமொழி", "குற்றியலிகரம்_புணர்மொழி", "மகரக்குறுக்கம்_தனிமொழி", 
                   "மகரக்குறுக்கம்_புணர்மொழி", "உயிர்மெய்க்குறில்", "உயிர்மெய்நெடில்", 
                   "உயிர்க்குறில்", "உயிர்நெடில்", "ஆய்தம்", "மெய்", "வல்லினம்", 
                   "உயிரளபெடை_எழுத்து", "ஒற்றளபெடை_எழுத்து" ]

    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
    T__13=14
    T__14=15
    T__15=16
    T__16=17
    T__17=18
    T__18=19
    T__19=20
    T__20=21
    T__21=22
    T__22=23
    T__23=24
    T__24=25
    T__25=26
    T__26=27
    T__27=28
    T__28=29
    T__29=30
    T__30=31
    T__31=32
    T__32=33
    T__33=34
    T__34=35
    T__35=36
    T__36=37
    T__37=38
    T__38=39
    T__39=40
    T__40=41
    T__41=42

    def __init__(self, input:TokenStream, output:TextIO = sys.stdout):
        super().__init__(input, output)
        self.checkVersion("4.8")
        self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
        self._predicates = None




    class மாத்திரைContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def ஒர்_எழுத்து_ஒரு_மொழி(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஒர்_எழுத்து_ஒரு_மொழிContext,0)


        def ஈர்_எழுத்து_ஒரு_மொழி(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஈர்_எழுத்து_ஒரு_மொழிContext,0)


        def பொதுமொழி(self):
            return self.getTypedRuleContext(மாத்திரைParser.பொதுமொழிContext,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_மாத்திரை

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterமாத்திரை" ):
                listener.enterமாத்திரை(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitமாத்திரை" ):
                listener.exitமாத்திரை(self)




    def மாத்திரை(self):

        localctx = மாத்திரைParser.மாத்திரைContext(self, self._ctx, self.state)
        self.enterRule(localctx, 0, self.RULE_மாத்திரை)
        try:
            self.state = 65
            self._errHandler.sync(self)
            la_ = self._interp.adaptivePredict(self._input,0,self._ctx)
            if la_ == 1:
                self.enterOuterAlt(localctx, 1)
                self.state = 62
                self.ஒர்_எழுத்து_ஒரு_மொழி()
                pass

            elif la_ == 2:
                self.enterOuterAlt(localctx, 2)
                self.state = 63
                self.ஈர்_எழுத்து_ஒரு_மொழி()
                pass

            elif la_ == 3:
                self.enterOuterAlt(localctx, 3)
                self.state = 64
                self.பொதுமொழி()
                pass


        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஒர்_எழுத்து_ஒரு_மொழிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def ஒரெழுத்து(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஒரெழுத்துContext,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஒர்_எழுத்து_ஒரு_மொழி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஒர்_எழுத்து_ஒரு_மொழி" ):
                listener.enterஒர்_எழுத்து_ஒரு_மொழி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஒர்_எழுத்து_ஒரு_மொழி" ):
                listener.exitஒர்_எழுத்து_ஒரு_மொழி(self)




    def ஒர்_எழுத்து_ஒரு_மொழி(self):

        localctx = மாத்திரைParser.ஒர்_எழுத்து_ஒரு_மொழிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 2, self.RULE_ஒர்_எழுத்து_ஒரு_மொழி)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 67
            self.ஒரெழுத்து()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஈர்_எழுத்து_ஒரு_மொழிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def ஈர்_மொழிமுதல்(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஈர்_மொழிமுதல்Context,0)


        def ஈர்_மொழியிறுதி(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஈர்_மொழியிறுதிContext,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஈர்_எழுத்து_ஒரு_மொழி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஈர்_எழுத்து_ஒரு_மொழி" ):
                listener.enterஈர்_எழுத்து_ஒரு_மொழி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஈர்_எழுத்து_ஒரு_மொழி" ):
                listener.exitஈர்_எழுத்து_ஒரு_மொழி(self)




    def ஈர்_எழுத்து_ஒரு_மொழி(self):

        localctx = மாத்திரைParser.ஈர்_எழுத்து_ஒரு_மொழிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 4, self.RULE_ஈர்_எழுத்து_ஒரு_மொழி)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 69
            self.ஈர்_மொழிமுதல்()
            self.state = 70
            self.ஈர்_மொழியிறுதி()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class பொதுமொழிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def மொழிமுதல்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மொழிமுதல்Context,0)


        def மொழியிறுதி(self):
            return self.getTypedRuleContext(மாத்திரைParser.மொழியிறுதிContext,0)


        def மொழியிடை(self, i:int=None):
            if i is None:
                return self.getTypedRuleContexts(மாத்திரைParser.மொழியிடைContext)
            else:
                return self.getTypedRuleContext(மாத்திரைParser.மொழியிடைContext,i)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_பொதுமொழி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterபொதுமொழி" ):
                listener.enterபொதுமொழி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitபொதுமொழி" ):
                listener.exitபொதுமொழி(self)




    def பொதுமொழி(self):

        localctx = மாத்திரைParser.பொதுமொழிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 6, self.RULE_பொதுமொழி)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 72
            self.மொழிமுதல்()
            self.state = 76
            self._errHandler.sync(self)
            _alt = self._interp.adaptivePredict(self._input,1,self._ctx)
            while _alt!=1 and _alt!=ATN.INVALID_ALT_NUMBER:
                if _alt==1+1:
                    self.state = 73
                    self.மொழியிடை() 
                self.state = 78
                self._errHandler.sync(self)
                _alt = self._interp.adaptivePredict(self._input,1,self._ctx)

            self.state = 79
            self.மொழியிறுதி()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஒரெழுத்துContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def உயிர்மெய்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்க்குறில்Context,0)


        def உயிர்மெய்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்நெடில்Context,0)


        def உயிர்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்க்குறில்Context,0)


        def உயிர்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்நெடில்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஒரெழுத்து

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஒரெழுத்து" ):
                listener.enterஒரெழுத்து(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஒரெழுத்து" ):
                listener.exitஒரெழுத்து(self)




    def ஒரெழுத்து(self):

        localctx = மாத்திரைParser.ஒரெழுத்துContext(self, self._ctx, self.state)
        self.enterRule(localctx, 8, self.RULE_ஒரெழுத்து)
        try:
            self.state = 85
            self._errHandler.sync(self)
            la_ = self._interp.adaptivePredict(self._input,2,self._ctx)
            if la_ == 1:
                self.enterOuterAlt(localctx, 1)
                self.state = 81
                self.உயிர்மெய்க்குறில்()
                pass

            elif la_ == 2:
                self.enterOuterAlt(localctx, 2)
                self.state = 82
                self.உயிர்மெய்நெடில்()
                pass

            elif la_ == 3:
                self.enterOuterAlt(localctx, 3)
                self.state = 83
                self.உயிர்க்குறில்()
                pass

            elif la_ == 4:
                self.enterOuterAlt(localctx, 4)
                self.state = 84
                self.உயிர்நெடில்()
                pass


        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஈர்_மொழிமுதல்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def உயிர்மெய்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்க்குறில்Context,0)


        def உயிர்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்க்குறில்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஈர்_மொழிமுதல்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஈர்_மொழிமுதல்" ):
                listener.enterஈர்_மொழிமுதல்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஈர்_மொழிமுதல்" ):
                listener.exitஈர்_மொழிமுதல்(self)




    def ஈர்_மொழிமுதல்(self):

        localctx = மாத்திரைParser.ஈர்_மொழிமுதல்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 10, self.RULE_ஈர்_மொழிமுதல்)
        try:
            self.state = 89
            self._errHandler.sync(self)
            token = self._input.LA(1)
            if token in [மாத்திரைParser.T__7, மாத்திரைParser.T__8, மாத்திரைParser.T__9, மாத்திரைParser.T__10, மாத்திரைParser.T__21, மாத்திரைParser.T__22, மாத்திரைParser.T__23, மாத்திரைParser.T__24, மாத்திரைParser.T__25, மாத்திரைParser.T__26, மாத்திரைParser.T__27, மாத்திரைParser.T__28, மாத்திரைParser.T__29, மாத்திரைParser.T__30, மாத்திரைParser.T__31, மாத்திரைParser.T__32, மாத்திரைParser.T__33, மாத்திரைParser.T__34]:
                self.enterOuterAlt(localctx, 1)
                self.state = 87
                self.உயிர்மெய்க்குறில்()
                pass
            elif token in [மாத்திரைParser.T__0, மாத்திரைParser.T__6, மாத்திரைParser.T__12, மாத்திரைParser.T__13, மாத்திரைParser.T__14]:
                self.enterOuterAlt(localctx, 2)
                self.state = 88
                self.உயிர்க்குறில்()
                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 ஈர்_மொழியிறுதிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def உயிர்மெய்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்க்குறில்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஈர்_மொழியிறுதி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஈர்_மொழியிறுதி" ):
                listener.enterஈர்_மொழியிறுதி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஈர்_மொழியிறுதி" ):
                listener.exitஈர்_மொழியிறுதி(self)




    def ஈர்_மொழியிறுதி(self):

        localctx = மாத்திரைParser.ஈர்_மொழியிறுதிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 12, self.RULE_ஈர்_மொழியிறுதி)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 91
            self.உயிர்மெய்க்குறில்()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class மொழிமுதல்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def ஔகாரக்குறுக்கம்(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஔகாரக்குறுக்கம்Context,0)


        def ஐகாரக்குறுக்கம்_முதல்(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஐகாரக்குறுக்கம்_முதல்Context,0)


        def உயிரளபெடை(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிரளபெடைContext,0)


        def உயிர்மெய்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்க்குறில்Context,0)


        def உயிர்மெய்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்நெடில்Context,0)


        def உயிர்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்க்குறில்Context,0)


        def உயிர்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்நெடில்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_மொழிமுதல்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterமொழிமுதல்" ):
                listener.enterமொழிமுதல்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitமொழிமுதல்" ):
                listener.exitமொழிமுதல்(self)




    def மொழிமுதல்(self):

        localctx = மாத்திரைParser.மொழிமுதல்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 14, self.RULE_மொழிமுதல்)
        try:
            self.state = 100
            self._errHandler.sync(self)
            la_ = self._interp.adaptivePredict(self._input,4,self._ctx)
            if la_ == 1:
                self.enterOuterAlt(localctx, 1)
                self.state = 93
                self.ஔகாரக்குறுக்கம்()
                pass

            elif la_ == 2:
                self.enterOuterAlt(localctx, 2)
                self.state = 94
                self.ஐகாரக்குறுக்கம்_முதல்()
                pass

            elif la_ == 3:
                self.enterOuterAlt(localctx, 3)
                self.state = 95
                self.உயிரளபெடை()
                pass

            elif la_ == 4:
                self.enterOuterAlt(localctx, 4)
                self.state = 96
                self.உயிர்மெய்க்குறில்()
                pass

            elif la_ == 5:
                self.enterOuterAlt(localctx, 5)
                self.state = 97
                self.உயிர்மெய்நெடில்()
                pass

            elif la_ == 6:
                self.enterOuterAlt(localctx, 6)
                self.state = 98
                self.உயிர்க்குறில்()
                pass

            elif la_ == 7:
                self.enterOuterAlt(localctx, 7)
                self.state = 99
                self.உயிர்நெடில்()
                pass


        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class மொழியிடைContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def ஆய்தக்குறுக்கம்(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஆய்தக்குறுக்கம்Context,0)


        def குற்றியலிகரம்_புணர்மொழி(self):
            return self.getTypedRuleContext(மாத்திரைParser.குற்றியலிகரம்_புணர்மொழிContext,0)


        def ஐகாரக்குறுக்கம்_இடைகடை(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஐகாரக்குறுக்கம்_இடைகடைContext,0)


        def மகரக்குறுக்கம்_புணர்மொழி(self):
            return self.getTypedRuleContext(மாத்திரைParser.மகரக்குறுக்கம்_புணர்மொழிContext,0)


        def உயிரளபெடை(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிரளபெடைContext,0)


        def ஒற்றளபெடை(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஒற்றளபெடைContext,0)


        def உயிர்மெய்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்க்குறில்Context,0)


        def உயிர்மெய்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்நெடில்Context,0)


        def மெய்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மெய்Context,0)


        def ஆய்தம்(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஆய்தம்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_மொழியிடை

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterமொழியிடை" ):
                listener.enterமொழியிடை(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitமொழியிடை" ):
                listener.exitமொழியிடை(self)




    def மொழியிடை(self):

        localctx = மாத்திரைParser.மொழியிடைContext(self, self._ctx, self.state)
        self.enterRule(localctx, 16, self.RULE_மொழியிடை)
        try:
            self.state = 112
            self._errHandler.sync(self)
            la_ = self._interp.adaptivePredict(self._input,5,self._ctx)
            if la_ == 1:
                self.enterOuterAlt(localctx, 1)
                self.state = 102
                self.ஆய்தக்குறுக்கம்()
                pass

            elif la_ == 2:
                self.enterOuterAlt(localctx, 2)
                self.state = 103
                self.குற்றியலிகரம்_புணர்மொழி()
                pass

            elif la_ == 3:
                self.enterOuterAlt(localctx, 3)
                self.state = 104
                self.ஐகாரக்குறுக்கம்_இடைகடை()
                pass

            elif la_ == 4:
                self.enterOuterAlt(localctx, 4)
                self.state = 105
                self.மகரக்குறுக்கம்_புணர்மொழி()
                pass

            elif la_ == 5:
                self.enterOuterAlt(localctx, 5)
                self.state = 106
                self.உயிரளபெடை()
                pass

            elif la_ == 6:
                self.enterOuterAlt(localctx, 6)
                self.state = 107
                self.ஒற்றளபெடை()
                pass

            elif la_ == 7:
                self.enterOuterAlt(localctx, 7)
                self.state = 108
                self.உயிர்மெய்க்குறில்()
                pass

            elif la_ == 8:
                self.enterOuterAlt(localctx, 8)
                self.state = 109
                self.உயிர்மெய்நெடில்()
                pass

            elif la_ == 9:
                self.enterOuterAlt(localctx, 9)
                self.state = 110
                self.மெய்()
                pass

            elif la_ == 10:
                self.enterOuterAlt(localctx, 10)
                self.state = 111
                self.ஆய்தம்()
                pass


        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class மொழியிறுதிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def உயிரளபெடை(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிரளபெடைContext,0)


        def குற்றியலிகரம்_தனிமொழி(self):
            return self.getTypedRuleContext(மாத்திரைParser.குற்றியலிகரம்_தனிமொழிContext,0)


        def மகரக்குறுக்கம்_தனிமொழி(self):
            return self.getTypedRuleContext(மாத்திரைParser.மகரக்குறுக்கம்_தனிமொழிContext,0)


        def ஐகாரக்குறுக்கம்_இடைகடை(self):
            return self.getTypedRuleContext(மாத்திரைParser.ஐகாரக்குறுக்கம்_இடைகடைContext,0)


        def குற்றியலுகரம்(self):
            return self.getTypedRuleContext(மாத்திரைParser.குற்றியலுகரம்Context,0)


        def உயிர்மெய்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்நெடில்Context,0)


        def உயிர்மெய்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்க்குறில்Context,0)


        def மெய்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மெய்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_மொழியிறுதி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterமொழியிறுதி" ):
                listener.enterமொழியிறுதி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitமொழியிறுதி" ):
                listener.exitமொழியிறுதி(self)




    def மொழியிறுதி(self):

        localctx = மாத்திரைParser.மொழியிறுதிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 18, self.RULE_மொழியிறுதி)
        try:
            self.state = 122
            self._errHandler.sync(self)
            la_ = self._interp.adaptivePredict(self._input,6,self._ctx)
            if la_ == 1:
                self.enterOuterAlt(localctx, 1)
                self.state = 114
                self.உயிரளபெடை()
                pass

            elif la_ == 2:
                self.enterOuterAlt(localctx, 2)
                self.state = 115
                self.குற்றியலிகரம்_தனிமொழி()
                pass

            elif la_ == 3:
                self.enterOuterAlt(localctx, 3)
                self.state = 116
                self.மகரக்குறுக்கம்_தனிமொழி()
                pass

            elif la_ == 4:
                self.enterOuterAlt(localctx, 4)
                self.state = 117
                self.ஐகாரக்குறுக்கம்_இடைகடை()
                pass

            elif la_ == 5:
                self.enterOuterAlt(localctx, 5)
                self.state = 118
                self.குற்றியலுகரம்()
                pass

            elif la_ == 6:
                self.enterOuterAlt(localctx, 6)
                self.state = 119
                self.உயிர்மெய்நெடில்()
                pass

            elif la_ == 7:
                self.enterOuterAlt(localctx, 7)
                self.state = 120
                self.உயிர்மெய்க்குறில்()
                pass

            elif la_ == 8:
                self.enterOuterAlt(localctx, 8)
                self.state = 121
                self.மெய்()
                pass


        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class குறிலிணைContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def உயிர்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்க்குறில்Context,0)


        def உயிர்மெய்க்குறில்(self, i:int=None):
            if i is None:
                return self.getTypedRuleContexts(மாத்திரைParser.உயிர்மெய்க்குறில்Context)
            else:
                return self.getTypedRuleContext(மாத்திரைParser.உயிர்மெய்க்குறில்Context,i)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_குறிலிணை

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterகுறிலிணை" ):
                listener.enterகுறிலிணை(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitகுறிலிணை" ):
                listener.exitகுறிலிணை(self)




    def குறிலிணை(self):

        localctx = மாத்திரைParser.குறிலிணைContext(self, self._ctx, self.state)
        self.enterRule(localctx, 20, self.RULE_குறிலிணை)
        try:
            self.state = 130
            self._errHandler.sync(self)
            token = self._input.LA(1)
            if token in [மாத்திரைParser.T__0, மாத்திரைParser.T__6, மாத்திரைParser.T__12, மாத்திரைParser.T__13, மாத்திரைParser.T__14]:
                self.enterOuterAlt(localctx, 1)
                self.state = 124
                self.உயிர்க்குறில்()
                self.state = 125
                self.உயிர்மெய்க்குறில்()
                pass
            elif token in [மாத்திரைParser.T__7, மாத்திரைParser.T__8, மாத்திரைParser.T__9, மாத்திரைParser.T__10, மாத்திரைParser.T__21, மாத்திரைParser.T__22, மாத்திரைParser.T__23, மாத்திரைParser.T__24, மாத்திரைParser.T__25, மாத்திரைParser.T__26, மாத்திரைParser.T__27, மாத்திரைParser.T__28, மாத்திரைParser.T__29, மாத்திரைParser.T__30, மாத்திரைParser.T__31, மாத்திரைParser.T__32, மாத்திரைParser.T__33, மாத்திரைParser.T__34]:
                self.enterOuterAlt(localctx, 2)
                self.state = 127
                self.உயிர்மெய்க்குறில்()
                self.state = 128
                self.உயிர்மெய்க்குறில்()
                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 உயிரளபெடைContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def மெய்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மெய்Context,0)


        def உயிரளபெடை_எழுத்து(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிரளபெடை_எழுத்துContext,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_உயிரளபெடை

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஉயிரளபெடை" ):
                listener.enterஉயிரளபெடை(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஉயிரளபெடை" ):
                listener.exitஉயிரளபெடை(self)




    def உயிரளபெடை(self):

        localctx = மாத்திரைParser.உயிரளபெடைContext(self, self._ctx, self.state)
        self.enterRule(localctx, 22, self.RULE_உயிரளபெடை)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 132
            self.மெய்()
            self.state = 133
            self.உயிரளபெடை_எழுத்து()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஒற்றளபெடைContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def ஒற்றளபெடை_எழுத்து(self, i:int=None):
            if i is None:
                return self.getTypedRuleContexts(மாத்திரைParser.ஒற்றளபெடை_எழுத்துContext)
            else:
                return self.getTypedRuleContext(மாத்திரைParser.ஒற்றளபெடை_எழுத்துContext,i)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஒற்றளபெடை

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஒற்றளபெடை" ):
                listener.enterஒற்றளபெடை(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஒற்றளபெடை" ):
                listener.exitஒற்றளபெடை(self)




    def ஒற்றளபெடை(self):

        localctx = மாத்திரைParser.ஒற்றளபெடைContext(self, self._ctx, self.state)
        self.enterRule(localctx, 24, self.RULE_ஒற்றளபெடை)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 135
            self.ஒற்றளபெடை_எழுத்து()
            self.state = 136
            self.ஒற்றளபெடை_எழுத்து()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class குற்றியலுகரம்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def வல்லினம்(self):
            return self.getTypedRuleContext(மாத்திரைParser.வல்லினம்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_குற்றியலுகரம்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterகுற்றியலுகரம்" ):
                listener.enterகுற்றியலுகரம்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitகுற்றியலுகரம்" ):
                listener.exitகுற்றியலுகரம்(self)




    def குற்றியலுகரம்(self):

        localctx = மாத்திரைParser.குற்றியலுகரம்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 26, self.RULE_குற்றியலுகரம்)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 138
            self.வல்லினம்()
            self.state = 139
            self.match(மாத்திரைParser.T__0)
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஐகாரக்குறுக்கம்_முதல்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஐகாரக்குறுக்கம்_முதல்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஐகாரக்குறுக்கம்_முதல்" ):
                listener.enterஐகாரக்குறுக்கம்_முதல்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஐகாரக்குறுக்கம்_முதல்" ):
                listener.exitஐகாரக்குறுக்கம்_முதல்(self)




    def ஐகாரக்குறுக்கம்_முதல்(self):

        localctx = மாத்திரைParser.ஐகாரக்குறுக்கம்_முதல்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 28, self.RULE_ஐகாரக்குறுக்கம்_முதல்)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 141
            self.match(மாத்திரைParser.T__1)
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஐகாரக்குறுக்கம்_இடைகடைContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def மெய்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மெய்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஐகாரக்குறுக்கம்_இடைகடை

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஐகாரக்குறுக்கம்_இடைகடை" ):
                listener.enterஐகாரக்குறுக்கம்_இடைகடை(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஐகாரக்குறுக்கம்_இடைகடை" ):
                listener.exitஐகாரக்குறுக்கம்_இடைகடை(self)




    def ஐகாரக்குறுக்கம்_இடைகடை(self):

        localctx = மாத்திரைParser.ஐகாரக்குறுக்கம்_இடைகடைContext(self, self._ctx, self.state)
        self.enterRule(localctx, 30, self.RULE_ஐகாரக்குறுக்கம்_இடைகடை)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 143
            self.மெய்()
            self.state = 144
            self.match(மாத்திரைParser.T__1)
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஔகாரக்குறுக்கம்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def மெய்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மெய்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஔகாரக்குறுக்கம்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஔகாரக்குறுக்கம்" ):
                listener.enterஔகாரக்குறுக்கம்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஔகாரக்குறுக்கம்" ):
                listener.exitஔகாரக்குறுக்கம்(self)




    def ஔகாரக்குறுக்கம்(self):

        localctx = மாத்திரைParser.ஔகாரக்குறுக்கம்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 32, self.RULE_ஔகாரக்குறுக்கம்)
        try:
            self.state = 150
            self._errHandler.sync(self)
            token = self._input.LA(1)
            if token in [மாத்திரைParser.T__2]:
                self.enterOuterAlt(localctx, 1)
                self.state = 146
                self.match(மாத்திரைParser.T__2)
                pass
            elif token in [மாத்திரைParser.T__7, மாத்திரைParser.T__8, மாத்திரைParser.T__9, மாத்திரைParser.T__10, மாத்திரைParser.T__21, மாத்திரைParser.T__22, மாத்திரைParser.T__23, மாத்திரைParser.T__24, மாத்திரைParser.T__25, மாத்திரைParser.T__26, மாத்திரைParser.T__27, மாத்திரைParser.T__28, மாத்திரைParser.T__29, மாத்திரைParser.T__30, மாத்திரைParser.T__31, மாத்திரைParser.T__32, மாத்திரைParser.T__33, மாத்திரைParser.T__34]:
                self.enterOuterAlt(localctx, 2)
                self.state = 147
                self.மெய்()
                self.state = 148
                self.match(மாத்திரைParser.T__2)
                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 ஆய்தக்குறுக்கம்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஆய்தக்குறுக்கம்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஆய்தக்குறுக்கம்" ):
                listener.enterஆய்தக்குறுக்கம்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஆய்தக்குறுக்கம்" ):
                listener.exitஆய்தக்குறுக்கம்(self)




    def ஆய்தக்குறுக்கம்(self):

        localctx = மாத்திரைParser.ஆய்தக்குறுக்கம்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 34, self.RULE_ஆய்தக்குறுக்கம்)
        self._la = 0 # Token type
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 152
            _la = self._input.LA(1)
            if not(_la==மாத்திரைParser.T__3 or _la==மாத்திரைParser.T__4):
                self._errHandler.recoverInline(self)
            else:
                self._errHandler.reportMatch(self)
                self.consume()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class குற்றியலிகரம்_தனிமொழிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_குற்றியலிகரம்_தனிமொழி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterகுற்றியலிகரம்_தனிமொழி" ):
                listener.enterகுற்றியலிகரம்_தனிமொழி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitகுற்றியலிகரம்_தனிமொழி" ):
                listener.exitகுற்றியலிகரம்_தனிமொழி(self)




    def குற்றியலிகரம்_தனிமொழி(self):

        localctx = மாத்திரைParser.குற்றியலிகரம்_தனிமொழிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 36, self.RULE_குற்றியலிகரம்_தனிமொழி)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 154
            self.match(மாத்திரைParser.T__5)
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class குற்றியலிகரம்_புணர்மொழிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def வல்லினம்(self):
            return self.getTypedRuleContext(மாத்திரைParser.வல்லினம்Context,0)


        def உயிர்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்க்குறில்Context,0)


        def உயிர்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்நெடில்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_குற்றியலிகரம்_புணர்மொழி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterகுற்றியலிகரம்_புணர்மொழி" ):
                listener.enterகுற்றியலிகரம்_புணர்மொழி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitகுற்றியலிகரம்_புணர்மொழி" ):
                listener.exitகுற்றியலிகரம்_புணர்மொழி(self)




    def குற்றியலிகரம்_புணர்மொழி(self):

        localctx = மாத்திரைParser.குற்றியலிகரம்_புணர்மொழிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 38, self.RULE_குற்றியலிகரம்_புணர்மொழி)
        try:
            self.state = 166
            self._errHandler.sync(self)
            la_ = self._interp.adaptivePredict(self._input,9,self._ctx)
            if la_ == 1:
                self.enterOuterAlt(localctx, 1)
                self.state = 156
                self.வல்லினம்()
                self.state = 157
                self.match(மாத்திரைParser.T__6)
                self.state = 158
                self.match(மாத்திரைParser.T__7)
                self.state = 159
                self.உயிர்க்குறில்()
                pass

            elif la_ == 2:
                self.enterOuterAlt(localctx, 2)
                self.state = 161
                self.வல்லினம்()
                self.state = 162
                self.match(மாத்திரைParser.T__6)
                self.state = 163
                self.match(மாத்திரைParser.T__7)
                self.state = 164
                self.உயிர்நெடில்()
                pass


        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class மகரக்குறுக்கம்_தனிமொழிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_மகரக்குறுக்கம்_தனிமொழி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterமகரக்குறுக்கம்_தனிமொழி" ):
                listener.enterமகரக்குறுக்கம்_தனிமொழி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitமகரக்குறுக்கம்_தனிமொழி" ):
                listener.exitமகரக்குறுக்கம்_தனிமொழி(self)




    def மகரக்குறுக்கம்_தனிமொழி(self):

        localctx = மாத்திரைParser.மகரக்குறுக்கம்_தனிமொழிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 40, self.RULE_மகரக்குறுக்கம்_தனிமொழி)
        try:
            self.state = 172
            self._errHandler.sync(self)
            token = self._input.LA(1)
            if token in [மாத்திரைParser.T__8]:
                self.enterOuterAlt(localctx, 1)
                self.state = 168
                self.match(மாத்திரைParser.T__8)
                self.state = 169
                self.match(மாத்திரைParser.T__9)
                pass
            elif token in [மாத்திரைParser.T__10]:
                self.enterOuterAlt(localctx, 2)
                self.state = 170
                self.match(மாத்திரைParser.T__10)
                self.state = 171
                self.match(மாத்திரைParser.T__9)
                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 மகரக்குறுக்கம்_புணர்மொழிContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_மகரக்குறுக்கம்_புணர்மொழி

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterமகரக்குறுக்கம்_புணர்மொழி" ):
                listener.enterமகரக்குறுக்கம்_புணர்மொழி(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitமகரக்குறுக்கம்_புணர்மொழி" ):
                listener.exitமகரக்குறுக்கம்_புணர்மொழி(self)




    def மகரக்குறுக்கம்_புணர்மொழி(self):

        localctx = மாத்திரைParser.மகரக்குறுக்கம்_புணர்மொழிContext(self, self._ctx, self.state)
        self.enterRule(localctx, 42, self.RULE_மகரக்குறுக்கம்_புணர்மொழி)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 174
            self.match(மாத்திரைParser.T__11)
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class உயிர்மெய்க்குறில்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def மெய்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மெய்Context,0)


        def உயிர்க்குறில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்க்குறில்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_உயிர்மெய்க்குறில்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஉயிர்மெய்க்குறில்" ):
                listener.enterஉயிர்மெய்க்குறில்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஉயிர்மெய்க்குறில்" ):
                listener.exitஉயிர்மெய்க்குறில்(self)




    def உயிர்மெய்க்குறில்(self):

        localctx = மாத்திரைParser.உயிர்மெய்க்குறில்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 44, self.RULE_உயிர்மெய்க்குறில்)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 176
            self.மெய்()
            self.state = 177
            self.உயிர்க்குறில்()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class உயிர்மெய்நெடில்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser

        def மெய்(self):
            return self.getTypedRuleContext(மாத்திரைParser.மெய்Context,0)


        def உயிர்நெடில்(self):
            return self.getTypedRuleContext(மாத்திரைParser.உயிர்நெடில்Context,0)


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_உயிர்மெய்நெடில்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஉயிர்மெய்நெடில்" ):
                listener.enterஉயிர்மெய்நெடில்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஉயிர்மெய்நெடில்" ):
                listener.exitஉயிர்மெய்நெடில்(self)




    def உயிர்மெய்நெடில்(self):

        localctx = மாத்திரைParser.உயிர்மெய்நெடில்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 46, self.RULE_உயிர்மெய்நெடில்)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 179
            self.மெய்()
            self.state = 180
            self.உயிர்நெடில்()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class உயிர்க்குறில்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_உயிர்க்குறில்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஉயிர்க்குறில்" ):
                listener.enterஉயிர்க்குறில்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஉயிர்க்குறில்" ):
                listener.exitஉயிர்க்குறில்(self)




    def உயிர்க்குறில்(self):

        localctx = மாத்திரைParser.உயிர்க்குறில்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 48, self.RULE_உயிர்க்குறில்)
        self._la = 0 # Token type
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 182
            _la = self._input.LA(1)
            if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << மாத்திரைParser.T__0) | (1 << மாத்திரைParser.T__6) | (1 << மாத்திரைParser.T__12) | (1 << மாத்திரைParser.T__13) | (1 << மாத்திரைParser.T__14))) != 0)):
                self._errHandler.recoverInline(self)
            else:
                self._errHandler.reportMatch(self)
                self.consume()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class உயிர்நெடில்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_உயிர்நெடில்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஉயிர்நெடில்" ):
                listener.enterஉயிர்நெடில்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஉயிர்நெடில்" ):
                listener.exitஉயிர்நெடில்(self)




    def உயிர்நெடில்(self):

        localctx = மாத்திரைParser.உயிர்நெடில்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 50, self.RULE_உயிர்நெடில்)
        self._la = 0 # Token type
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 184
            _la = self._input.LA(1)
            if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << மாத்திரைParser.T__1) | (1 << மாத்திரைParser.T__2) | (1 << மாத்திரைParser.T__15) | (1 << மாத்திரைParser.T__16) | (1 << மாத்திரைParser.T__17) | (1 << மாத்திரைParser.T__18) | (1 << மாத்திரைParser.T__19))) != 0)):
                self._errHandler.recoverInline(self)
            else:
                self._errHandler.reportMatch(self)
                self.consume()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஆய்தம்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஆய்தம்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஆய்தம்" ):
                listener.enterஆய்தம்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஆய்தம்" ):
                listener.exitஆய்தம்(self)




    def ஆய்தம்(self):

        localctx = மாத்திரைParser.ஆய்தம்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 52, self.RULE_ஆய்தம்)
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 186
            self.match(மாத்திரைParser.T__20)
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class மெய்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_மெய்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterமெய்" ):
                listener.enterமெய்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitமெய்" ):
                listener.exitமெய்(self)




    def மெய்(self):

        localctx = மாத்திரைParser.மெய்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 54, self.RULE_மெய்)
        self._la = 0 # Token type
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 188
            _la = self._input.LA(1)
            if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << மாத்திரைParser.T__7) | (1 << மாத்திரைParser.T__8) | (1 << மாத்திரைParser.T__9) | (1 << மாத்திரைParser.T__10) | (1 << மாத்திரைParser.T__21) | (1 << மாத்திரைParser.T__22) | (1 << மாத்திரைParser.T__23) | (1 << மாத்திரைParser.T__24) | (1 << மாத்திரைParser.T__25) | (1 << மாத்திரைParser.T__26) | (1 << மாத்திரைParser.T__27) | (1 << மாத்திரைParser.T__28) | (1 << மாத்திரைParser.T__29) | (1 << மாத்திரைParser.T__30) | (1 << மாத்திரைParser.T__31) | (1 << மாத்திரைParser.T__32) | (1 << மாத்திரைParser.T__33) | (1 << மாத்திரைParser.T__34))) != 0)):
                self._errHandler.recoverInline(self)
            else:
                self._errHandler.reportMatch(self)
                self.consume()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class வல்லினம்Context(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_வல்லினம்

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterவல்லினம்" ):
                listener.enterவல்லினம்(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitவல்லினம்" ):
                listener.exitவல்லினம்(self)




    def வல்லினம்(self):

        localctx = மாத்திரைParser.வல்லினம்Context(self, self._ctx, self.state)
        self.enterRule(localctx, 56, self.RULE_வல்லினம்)
        self._la = 0 # Token type
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 190
            _la = self._input.LA(1)
            if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << மாத்திரைParser.T__21) | (1 << மாத்திரைParser.T__22) | (1 << மாத்திரைParser.T__23) | (1 << மாத்திரைParser.T__24) | (1 << மாத்திரைParser.T__25) | (1 << மாத்திரைParser.T__26))) != 0)):
                self._errHandler.recoverInline(self)
            else:
                self._errHandler.reportMatch(self)
                self.consume()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class உயிரளபெடை_எழுத்துContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_உயிரளபெடை_எழுத்து

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஉயிரளபெடை_எழுத்து" ):
                listener.enterஉயிரளபெடை_எழுத்து(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஉயிரளபெடை_எழுத்து" ):
                listener.exitஉயிரளபெடை_எழுத்து(self)




    def உயிரளபெடை_எழுத்து(self):

        localctx = மாத்திரைParser.உயிரளபெடை_எழுத்துContext(self, self._ctx, self.state)
        self.enterRule(localctx, 58, self.RULE_உயிரளபெடை_எழுத்து)
        self._la = 0 # Token type
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 192
            _la = self._input.LA(1)
            if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << மாத்திரைParser.T__35) | (1 << மாத்திரைParser.T__36) | (1 << மாத்திரைParser.T__37) | (1 << மாத்திரைParser.T__38) | (1 << மாத்திரைParser.T__39) | (1 << மாத்திரைParser.T__40) | (1 << மாத்திரைParser.T__41))) != 0)):
                self._errHandler.recoverInline(self)
            else:
                self._errHandler.reportMatch(self)
                self.consume()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx


    class ஒற்றளபெடை_எழுத்துContext(ParserRuleContext):

        def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1):
            super().__init__(parent, invokingState)
            self.parser = parser


        def getRuleIndex(self):
            return மாத்திரைParser.RULE_ஒற்றளபெடை_எழுத்து

        def enterRule(self, listener:ParseTreeListener):
            if hasattr( listener, "enterஒற்றளபெடை_எழுத்து" ):
                listener.enterஒற்றளபெடை_எழுத்து(self)

        def exitRule(self, listener:ParseTreeListener):
            if hasattr( listener, "exitஒற்றளபெடை_எழுத்து" ):
                listener.exitஒற்றளபெடை_எழுத்து(self)




    def ஒற்றளபெடை_எழுத்து(self):

        localctx = மாத்திரைParser.ஒற்றளபெடை_எழுத்துContext(self, self._ctx, self.state)
        self.enterRule(localctx, 60, self.RULE_ஒற்றளபெடை_எழுத்து)
        self._la = 0 # Token type
        try:
            self.enterOuterAlt(localctx, 1)
            self.state = 194
            _la = self._input.LA(1)
            if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << மாத்திரைParser.T__7) | (1 << மாத்திரைParser.T__8) | (1 << மாத்திரைParser.T__9) | (1 << மாத்திரைParser.T__10) | (1 << மாத்திரைParser.T__20) | (1 << மாத்திரைParser.T__27) | (1 << மாத்திரைParser.T__28) | (1 << மாத்திரைParser.T__29) | (1 << மாத்திரைParser.T__31) | (1 << மாத்திரைParser.T__32) | (1 << மாத்திரைParser.T__34))) != 0)):
                self._errHandler.recoverInline(self)
            else:
                self._errHandler.reportMatch(self)
                self.consume()
        except RecognitionException as re:
            localctx.exception = re
            self._errHandler.reportError(self, re)
            self._errHandler.recover(self, re)
        finally:
            self.exitRule()
        return localctx






# Generated from /home/srix/workspace/pytamil/pytamil/தமிழ்/resources/மாத்திரை.g4 by ANTLR 4.8 # encoding: utf-8 #\3\2\2\2\u009a") # Token type # Token type # Token type # Token type # Token type # Token type # Token type