# lextab.py. This file automatically created by PLY (version 3.11). Don't edit!
_tabversion   = '3.10'
_lextokens    = set(('ALIAS', 'AMPER', 'AMPEREQUAL', 'AND', 'AS', 'ASSERT', 'AT', 'BREAK', 'CIRCUMFLEX', 'CIRCUMFLEXEQUAL', 'CLASS', 'COLON', 'COLONEQUAL', 'COMMA', 'CONST', 'CONTINUE', 'DEDENT', 'DEF', 'DEL', 'DOT', 'DOUBLECOLON', 'DOUBLESLASH', 'DOUBLESLASHEQUAL', 'DOUBLESTAR', 'DOUBLESTAREQUAL', 'ELIF', 'ELLIPSIS', 'ELSE', 'ENAMLDEF', 'ENDMARKER', 'EQEQUAL', 'EQUAL', 'EXCEPT', 'EXEC', 'FINALLY', 'FOR', 'FROM', 'GLOBAL', 'GREATER', 'GREATEREQUAL', 'IF', 'IMPORT', 'IN', 'INDENT', 'IS', 'LAMBDA', 'LBRACE', 'LEFTSHIFT', 'LEFTSHIFTEQUAL', 'LESS', 'LESSEQUAL', 'LPAR', 'LSQB', 'MINUS', 'MINUSEQUAL', 'NAME', 'NEWLINE', 'NOT', 'NOTEQUAL', 'NUMBER', 'OR', 'PASS', 'PERCENT', 'PERCENTEQUAL', 'PLUS', 'PLUSEQUAL', 'PRAGMA', 'PRINT', 'RAISE', 'RBRACE', 'RETURN', 'RIGHTARROW', 'RIGHTSHIFT', 'RIGHTSHIFTEQUAL', 'RPAR', 'RSQB', 'SEMI', 'SLASH', 'SLASHEQUAL', 'STAR', 'STAREQUAL', 'STRING', 'STRING_CONTINUE', 'STRING_END', 'STRING_START_SINGLE', 'STRING_START_TRIPLE', 'TEMPLATE', 'TILDE', 'TRY', 'VBAR', 'VBAREQUAL', 'WHILE', 'WITH', 'WS', 'YIELD'))
_lexreflags   = 64
_lexliterals  = ''
_lexstateinfo = {'TRIPLEQ2': 'exclusive', 'TRIPLEQ1': 'exclusive', 'INITIAL': 'inclusive', 'SINGLEQ2': 'exclusive', 'SINGLEQ1': 'exclusive'}
_lexstatere   = {'TRIPLEQ2': [('(?P<t_SINGLEQ1_SINGLEQ2_TRIPLEQ1_TRIPLEQ2_escaped>\\\\(.|\\n))|(?P<t_TRIPLEQ2_simple>[^"\\\\]+)|(?P<t_TRIPLEQ2_q2_but_not_triple>"(?!""))|(?P<t_TRIPLEQ2_end>""")', [None, ('t_SINGLEQ1_SINGLEQ2_TRIPLEQ1_TRIPLEQ2_escaped', 'escaped'), None, ('t_TRIPLEQ2_simple', 'simple'), ('t_TRIPLEQ2_q2_but_not_triple', 'q2_but_not_triple'), ('t_TRIPLEQ2_end', 'end')])], 'TRIPLEQ1': [("(?P<t_SINGLEQ1_SINGLEQ2_TRIPLEQ1_TRIPLEQ2_escaped>\\\\(.|\\n))|(?P<t_TRIPLEQ1_simple>[^'\\\\]+)|(?P<t_TRIPLEQ1_q1_but_not_triple>'(?!''))|(?P<t_TRIPLEQ1_end>''')", [None, ('t_SINGLEQ1_SINGLEQ2_TRIPLEQ1_TRIPLEQ2_escaped', 'escaped'), None, ('t_TRIPLEQ1_simple', 'simple'), ('t_TRIPLEQ1_q1_but_not_triple', 'q1_but_not_triple'), ('t_TRIPLEQ1_end', 'end')])], 'INITIAL': [('(?P<t_comment>[ ]*\\#[^\\r\\n]*)|(?P<t_WS> [ \\t\\f]+ )|(?P<t_escaped_newline>\\\\\\n)|(?P<t_newline>\\n+)|(?P<t_LPAR>\\()|(?P<t_RPAR>\\))|(?P<t_LBRACE>\\{)|(?P<t_RBRACE>\\})|(?P<t_LSQB>\\[)|(?P<t_RSQB>\\])|(?P<t_start_triple_quoted_q1_string>[uU]?[rR]?\'\'\')|(?P<t_start_triple_quoted_q2_string>[uU]?[rR]?""")|(?P<t_start_single_quoted_q1_string>[uU]?[rR]?\')|(?P<t_start_single_quoted_q2_string>[uU]?[rR]?")|(?P<t_NAME>[a-zA-Z_][a-zA-Z0-9_]*)|(?P<t_NUMBER>((\\d+[jJ]|((\\d+\\.\\d*|\\.\\d+)([eE][-+]?\\d+)?|\\d+[eE][-+]?\\d+)[jJ])|((\\d+\\.\\d*|\\.\\d+)([eE][-+]?\\d+)?|\\d+[eE][-+]?\\d+)|(0[xX][\\da-fA-F]+[lL]?|0[bB][01]+[lL]?|(0[oO][0-7]+)|(0[0-7]*)[lL]?|[1-9]\\d*[lL]?)))|(?P<t_PRAGMA>\\$pragma)|(?P<t_ELLIPSIS>\\.\\.\\.)|(?P<t_DOUBLESTAREQUAL>\\*\\*=)|(?P<t_DOUBLESTAR>\\*\\*)|(?P<t_LEFTSHIFTEQUAL><<=)|(?P<t_RIGHTSHIFTEQUAL>>>=)|(?P<t_VBAREQUAL>\\|=)|(?P<t_STAREQUAL>\\*=)|(?P<t_CIRCUMFLEXEQUAL>\\^=)|(?P<t_DOUBLESLASHEQUAL>//=)|(?P<t_PLUSEQUAL>\\+=)|(?P<t_VBAR>\\|)|(?P<t_LEFTSHIFT><<)|(?P<t_EQEQUAL>==)|(?P<t_PLUS>\\+)|(?P<t_PERCENTEQUAL>%=)|(?P<t_SLASHEQUAL>/=)|(?P<t_RIGHTARROW>=>)|(?P<t_COLONEQUAL>:=)|(?P<t_NOTEQUAL>!=)|(?P<t_STAR>\\*)|(?P<t_GREATEREQUAL>>=)|(?P<t_CIRCUMFLEX>\\^)|(?P<t_DOUBLESLASH>//)|(?P<t_DOT>\\.)|(?P<t_MINUSEQUAL>-=)|(?P<t_DOUBLECOLON>::)|(?P<t_AMPEREQUAL>&=)|(?P<t_RIGHTSHIFT>>>)|(?P<t_LESSEQUAL><=)|(?P<t_EQUAL>=)|(?P<t_AMPER>&)|(?P<t_SLASH>/)|(?P<t_GREATER>>)|(?P<t_LESS><)|(?P<t_COMMA>,)|(?P<t_PERCENT>%)|(?P<t_TILDE>~)|(?P<t_SEMI>;)|(?P<t_MINUS>-)|(?P<t_COLON>:)|(?P<t_AT>@)', [None, ('t_comment', 'comment'), ('t_WS', 'WS'), ('t_escaped_newline', 'escaped_newline'), ('t_newline', 'newline'), ('t_LPAR', 'LPAR'), ('t_RPAR', 'RPAR'), ('t_LBRACE', 'LBRACE'), ('t_RBRACE', 'RBRACE'), ('t_LSQB', 'LSQB'), ('t_RSQB', 'RSQB'), ('t_start_triple_quoted_q1_string', 'start_triple_quoted_q1_string'), ('t_start_triple_quoted_q2_string', 'start_triple_quoted_q2_string'), ('t_start_single_quoted_q1_string', 'start_single_quoted_q1_string'), ('t_start_single_quoted_q2_string', 'start_single_quoted_q2_string'), ('t_NAME', 'NAME'), (None, 'NUMBER'), None, None, None, None, None, None, None, None, None, None, None, (None, 'PRAGMA'), (None, 'ELLIPSIS'), (None, 'DOUBLESTAREQUAL'), (None, 'DOUBLESTAR'), (None, 'LEFTSHIFTEQUAL'), (None, 'RIGHTSHIFTEQUAL'), (None, 'VBAREQUAL'), (None, 'STAREQUAL'), (None, 'CIRCUMFLEXEQUAL'), (None, 'DOUBLESLASHEQUAL'), (None, 'PLUSEQUAL'), (None, 'VBAR'), (None, 'LEFTSHIFT'), (None, 'EQEQUAL'), (None, 'PLUS'), (None, 'PERCENTEQUAL'), (None, 'SLASHEQUAL'), (None, 'RIGHTARROW'), (None, 'COLONEQUAL'), (None, 'NOTEQUAL'), (None, 'STAR'), (None, 'GREATEREQUAL'), (None, 'CIRCUMFLEX'), (None, 'DOUBLESLASH'), (None, 'DOT'), (None, 'MINUSEQUAL'), (None, 'DOUBLECOLON'), (None, 'AMPEREQUAL'), (None, 'RIGHTSHIFT'), (None, 'LESSEQUAL'), (None, 'EQUAL'), (None, 'AMPER'), (None, 'SLASH'), (None, 'GREATER'), (None, 'LESS'), (None, 'COMMA'), (None, 'PERCENT'), (None, 'TILDE'), (None, 'SEMI'), (None, 'MINUS'), (None, 'COLON'), (None, 'AT')])], 'SINGLEQ2': [('(?P<t_SINGLEQ1_SINGLEQ2_TRIPLEQ1_TRIPLEQ2_escaped>\\\\(.|\\n))|(?P<t_SINGLEQ2_simple>[^"\\\\\\n]+)|(?P<t_SINGLEQ2_end>")', [None, ('t_SINGLEQ1_SINGLEQ2_TRIPLEQ1_TRIPLEQ2_escaped', 'escaped'), None, ('t_SINGLEQ2_simple', 'simple'), ('t_SINGLEQ2_end', 'end')])], 'SINGLEQ1': [("(?P<t_SINGLEQ1_SINGLEQ2_TRIPLEQ1_TRIPLEQ2_escaped>\\\\(.|\\n))|(?P<t_SINGLEQ1_simple>[^'\\\\\\n]+)|(?P<t_SINGLEQ1_end>')", [None, ('t_SINGLEQ1_SINGLEQ2_TRIPLEQ1_TRIPLEQ2_escaped', 'escaped'), None, ('t_SINGLEQ1_simple', 'simple'), ('t_SINGLEQ1_end', 'end')])]}
_lexstateignore = {'TRIPLEQ2': '', 'TRIPLEQ1': '', 'INITIAL': '', 'SINGLEQ2': '', 'SINGLEQ1': ''}
_lexstateerrorf = {'TRIPLEQ2': 't_TRIPLEQ2_error', 'TRIPLEQ1': 't_TRIPLEQ1_error', 'INITIAL': 't_error', 'SINGLEQ2': 't_SINGLEQ2_error', 'SINGLEQ1': 't_SINGLEQ1_error'}
_lexstateeoff = {}
