Ë
    ±éäg"C  ã                   ó:   — d dl Z ddlmZ ddlmZ  G d„ de«      Zy)é    Né   )Úlex)ÚTOKENc                   óÖ  — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
ZdZi ZeD ]  Zeeej!                  «       <   Œ eD ],  Zeeedd j#                  «       edd j!                  «       z   <   Œ. eez   dz   ZdZdZdZdZdZdZdez   dz   ez   dz   Zdez   Zeez   ez   Zeez   ez   ZdZdZdZdZ dZ!dez   dz   ez   dz   e z   d z   Z"d!Z#d"e"z   dz   Z$d#e$z   d#z   Z%d$e%z   Z&d%e%z   Z'd&e%z   Z(d'e%z   Z)d#e$z   d(z   Z*d)e$z   d*z   e$z   d+z   Z+d)e$z   d,z   e!z   d-z   Z,d.e#z   dz   Z-d/e-z   d0z   Z.d$e.z   Z/d%e.z   Z0d&e.z   Z1d'e.z   Z2d/e-z   d1z   e!z   e-z   d0z   Z3d2Z4d3Z5d4e5z   dz   e4z   d5z   e4z   d6z   Z6d7Z7d8ez   d9z   ez   d:z   ez   d;z   Z8d<ez   d<z   ez   dz   e8z   dz   e7z   d=z   Z9d>Z:d?„ Z; e<e.«      d@„ «       Z= e<e«      dA„ «       Z>dB„ Z?dC„ Z@dDZAdE„ ZBdF„ ZCdG„ ZDdDZEdH„ ZFdI„ ZGdDZHdJ„ ZIdKZJdLZKdMZLdNZMdOZNdPZOdQZPdRZQdSZRdTZSdUZTdVZUdWZVdXZWdYZXdZZYd[ZZd\Z[d]Z\d^Z]d_Z^d`Z_daZ`dbZadcZbddZcdeZddfZedgZfdhZgdiZhdjZidkZjdlZkdmZldnZmdoZndpZodqZpdrZqdsZrdtZsduZtdvZu e<dw«      dx„ «       Zv e<dy«      dz„ «       Zwe.Zx e<e6«      d{„ «       Zy e<e9«      d|„ «       Zz e<e«      d}„ «       Z{ e<e«      d~„ «       Z| e<e«      d„ «       Z} e<e«      d€„ «       Z~ e<e«      d�„ «       Z e<e*«      d‚„ «       Z€ e<e%«      dƒ„ «       Z� e<e&«      d„„ «       Z‚ e<e'«      d…„ «       Zƒ e<e(«      d†„ «       Z„ e<e)«      d‡„ «       Z… e<e+«      dˆ„ «       Z† e<e,«      d‰„ «       Z‡ e<e/«      dŠ„ «       Zˆ e<e0«      d‹„ «       Z‰ e<e1«      dŒ„ «       ZŠ e<e2«      d�„ «       Z‹ e<e3«      dŽ„ «       ZŒ e<e«      d�„ «       Z�d�„ ZŽy)‘ÚCLexera   A lexer for the C language. After building it, set the
        input text with input(), and call token() to get new
        tokens.

        The public attribute filename can be set to an initial
        filename, but the lexer will update it upon #line
        directives.
    c                 óÀ   — || _         || _        || _        || _        d| _        d| _        t        j                  d«      | _        t        j                  d«      | _	        y)ab   Create a new Lexer.

            error_func:
                An error function. Will be called with an error
                message, line and column as arguments, in case of
                an error during lexing.

            on_lbrace_func, on_rbrace_func:
                Called when an LBRACE or RBRACE is encountered
                (likely to push/pop type_lookup_func's scope)

            type_lookup_func:
                A type lookup function. Given a string, it must
                return True IFF this string is a name of a type
                that was defined with a typedef earlier.
        Ú Nz([ \t]*line\W)|([ \t]*\d+)z[ \t]*pragma\W)
Ú
error_funcÚon_lbrace_funcÚon_rbrace_funcÚtype_lookup_funcÚfilenameÚ
last_tokenÚreÚcompileÚline_patternÚpragma_pattern)Úselfr
   r   r   r   s        úO/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pycparser/c_lexer.pyÚ__init__zCLexer.__init__   sY   € ð$ %ˆŒØ,ˆÔØ,ˆÔØ 0ˆÔØˆŒð ˆŒô
 ŸJ™JÐ'DÓEˆÔÜ Ÿj™jÐ):Ó;ˆÕó    c                 ó<   — t        j                   dd| i|¤Ž| _        y)zù Builds the lexer from the specification. Must be
            called after the lexer object is created.

            This method exists separately, because the PLY
            manual warns against calling lex.lex inside
            __init__
        ÚobjectN© )r   Úlexer)r   Úkwargss     r   ÚbuildzCLexer.build9   s   € ô —W‘WÑ3 DÐ3¨FÑ3ˆ�
r   c                 ó&   — d| j                   _        y)z? Resets the internal line number counter of the lexer.
        r   N)r   Úlineno©r   s    r   Úreset_linenozCLexer.reset_linenoC   s   € ð ˆ�
‰
Õr   c                 ó:   — | j                   j                  |«       y ©N)r   Úinput)r   Útexts     r   r$   zCLexer.inputH   s   € Ø�
‰
×Ñ˜Õr   c                 óX   — | j                   j                  «       | _        | j                  S r#   )r   Útokenr   r    s    r   r'   zCLexer.tokenK   s    € ØŸ*™*×*Ñ*Ó,ˆŒØ�‰Ðr   c                 ó‚   — | j                   j                  j                  dd|j                  «      }|j                  |z
  S )z3 Find the column of the token in its line.
        ú
r   )r   ÚlexdataÚrfindÚlexpos)r   r'   Úlast_crs      r   Úfind_tok_columnzCLexer.find_tok_columnO   s5   € ð —*‘*×$Ñ$×*Ñ*¨4°°E·L±LÓAˆØ�|‰|˜gÑ%Ð%r   c                 óŽ   — | j                  |«      }| j                  ||d   |d   «       | j                  j                  d«       y )Nr   r   )Ú_make_tok_locationr
   r   Úskip)r   Úmsgr'   Úlocations       r   Ú_errorzCLexer._errorZ   s:   € Ø×*Ñ*¨5Ó1ˆØ�‰˜˜X a™[¨(°1©+Ô6Ø�
‰
�‰˜Õr   c                 ó<   — |j                   | j                  |«      fS r#   )r   r.   )r   r'   s     r   r0   zCLexer._make_tok_location_   s   € Ø—‘˜d×2Ñ2°5Ó9Ð:Ð:r   )$ÚAUTOÚBREAKÚCASEÚCHARÚCONSTÚCONTINUEÚDEFAULTÚDOÚDOUBLEÚELSEÚENUMÚEXTERNÚFLOATÚFORÚGOTOÚIFÚINLINEÚINTÚLONGÚREGISTERÚOFFSETOFÚRESTRICTÚRETURNÚSHORTÚSIGNEDÚSIZEOFÚSTATICÚSTRUCTÚSWITCHÚTYPEDEFÚUNIONÚUNSIGNEDÚVOIDÚVOLATILEÚWHILEÚ__INT128)	Ú_BOOLÚ_COMPLEXÚ	_NORETURNÚ_THREAD_LOCALÚ_STATIC_ASSERTÚ_ATOMICÚ_ALIGNOFÚ_ALIGNASÚ_PRAGMANé   )DÚIDÚTYPEIDÚINT_CONST_DECÚINT_CONST_OCTÚINT_CONST_HEXÚINT_CONST_BINÚINT_CONST_CHARÚFLOAT_CONSTÚHEX_FLOAT_CONSTÚ
CHAR_CONSTÚWCHAR_CONSTÚU8CHAR_CONSTÚU16CHAR_CONSTÚU32CHAR_CONSTÚSTRING_LITERALÚWSTRING_LITERALÚU8STRING_LITERALÚU16STRING_LITERALÚU32STRING_LITERALÚPLUSÚMINUSÚTIMESÚDIVIDEÚMODÚORÚANDÚNOTÚXORÚLSHIFTÚRSHIFTÚLORÚLANDÚLNOTÚLTÚLEÚGTÚGEÚEQÚNEÚEQUALSÚ
TIMESEQUALÚDIVEQUALÚMODEQUALÚ	PLUSEQUALÚ
MINUSEQUALÚLSHIFTEQUALÚRSHIFTEQUALÚANDEQUALÚXOREQUALÚOREQUALÚPLUSPLUSÚ
MINUSMINUSÚARROWÚCONDOPÚLPARENÚRPARENÚLBRACKETÚRBRACKETÚLBRACEÚRBRACEÚCOMMAÚPERIODÚSEMIÚCOLONÚELLIPSISÚPPHASHÚPPPRAGMAÚPPPRAGMASTRz[a-zA-Z_$][0-9a-zA-Z_$]*z0[xX]z[0-9a-fA-F]+z0[bB]z[01]+zD(([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?z(0z)|([1-9][0-9]*ú)z0[0-7]*z0[0-7]*[89]z,([a-wyzA-Z._~!=&\^\-\\?'"]|x(?![0-9a-fA-F]))z(\d+)(?!\d)z(x[0-9a-fA-F]+)(?![0-9a-fA-F])z#([\\][^a-zA-Z._~^!=&\^\-\\?'"x0-9])z(\\(ú|z))z(\\[0-9a-zA-Z._~!=&\^\-\\?'"])z
([^'\\\n]|ú'ÚLÚu8ÚuÚUz{2,4}'z('z*\n)|('z*$)z[^'
]+')|('')|('z	[^'\n]*')z
([^"\\\n]|ú"z*"Ú*z([eE][-+]?[0-9]+)z([0-9]*\.[0-9]+)|([0-9]+\.)z((((z
?)|([0-9]+z
))[FfLl]?)z([pP][+-]?[0-9]+)z(((z)?\.z)|(z\.))ú(z[FfLl]?)))ÚpplineÚ	exclusive)Úpppragmar³   c                 ó´  — | j                   j                  |j                  j                  |j                  j                  ¬«      r*|j                  j                  d«       dx| _        | _        y| j                  j                  |j                  j                  |j                  j                  ¬«      r|j                  j                  d«       yd|_	        |S )z[ \t]*\#)Úposr²   Nr´   r¥   )
r   Úmatchr   r*   r,   ÚbeginÚpp_lineÚpp_filenamer   Útype©r   Úts     r   Út_PPHASHzCLexer.t_PPHASH"  s�   € à×Ñ×"Ñ" 1§7¡7§?¡?¸¿¹¿¹Ð"ÔGØ�G‰G�M‰M˜(Ô#Ø.2Ð2ˆDŒL˜4Õ+Ø× Ñ ×&Ñ& q§w¡w§¡¸A¿G¹G¿N¹NÐ&ÔKØ�G‰G�M‰M˜*Õ%àˆAŒFØˆHr   c                 ó    — | j                   €| j                  d|«       y |j                  j                  d«      j	                  d«      | _        y )Nz$filename before line number in #liner¯   )r¹   r4   ÚvalueÚlstripÚrstriprº   r¼   s     r   Út_ppline_FILENAMEzCLexer.t_ppline_FILENAME0  s;   € à�<‰<ÐØ�K‰KÐ>ÀÕBà Ÿw™wŸ~™~¨cÓ2×9Ñ9¸#Ó>ˆDÕr   c                 ó@   — | j                   €|j                  | _         y y r#   )r¹   rÀ   r¼   s     r   Út_ppline_LINE_NUMBERzCLexer.t_ppline_LINE_NUMBER7  s   € à�<‰<ÐØŸ7™7ˆD�Lð r   c                 óú   — | j                   €| j                  d|«       nAt        | j                   «      | j                  _        | j
                  �| j
                  | _        |j                  j                  d«       y)ú\nNzline number missing in #lineÚINITIAL)r¹   r4   Úintr   r   rº   r   r¸   r¼   s     r   Út_ppline_NEWLINEzCLexer.t_ppline_NEWLINE@  sY   € à�<‰<ÐØ�K‰KÐ6¸Õ:ä # D§L¡LÓ 1ˆD�J‰JÔà×ÑÐ+Ø $× 0Ñ 0�”à	�‰�‰�iÕ r   c                  ó   — y)ÚlineNr   r¼   s     r   Út_ppline_PPLINEzCLexer.t_ppline_PPLINEL  s   € àr   z 	c                 ó(   — | j                  d|«       y )Nzinvalid #line directive©r4   r¼   s     r   Út_ppline_errorzCLexer.t_ppline_errorR  s   € Ø�‰Ð-¨qÕ1r   c                 óx   — |j                   xj                  dz  c_        |j                   j                  d«       y)rÇ   r   rÈ   N)r   r   r¸   r¼   s     r   Út_pppragma_NEWLINEzCLexer.t_pppragma_NEWLINEX  s$   € à	�‰�Š˜!Ñ�Ø	�‰�‰�iÕ r   c                 ó   — |S )Úpragmar   r¼   s     r   Út_pppragma_PPPRAGMAzCLexer.t_pppragma_PPPRAGMA]  ó   € àˆr   c                 ó   — d|_         |S )z.+r§   )r»   r¼   s     r   Út_pppragma_STRzCLexer.t_pppragma_STRc  s   € àˆŒØˆr   c                 ó(   — | j                  d|«       y )Nzinvalid #pragma directiverÏ   r¼   s     r   Út_pppragma_errorzCLexer.t_pppragma_errorh  s   € Ø�‰Ð/°Õ3r   c                 ót   — |j                   xj                  |j                  j                  d«      z  c_        y)z\n+r)   N)r   r   rÀ   Úcountr¼   s     r   Ú	t_NEWLINEzCLexer.t_NEWLINEq  s!   € à	�‰�Š˜!Ÿ'™'Ÿ-™-¨Ó-Ñ-Žr   z\+ú-z\*ú/ú%z\|ú&ú~z\^z<<z>>z\|\|z&&ú!ú<ú>z<=z>=z==z!=ú=z\*=z/=z%=z\+=z-=z<<=z>>=z&=z\|=z\^=z\+\+z--z->z\?z\(z\)z\[z\]ú,z\.ú;ú:z\.\.\.z\{c                 ó&   — | j                  «        |S r#   )r   r¼   s     r   Út_LBRACEzCLexer.t_LBRACE¹  ó   € à×ÑÔØˆr   z\}c                 ó&   — | j                  «        |S r#   )r   r¼   s     r   Út_RBRACEzCLexer.t_RBRACE½  rì   r   c                 ó   — |S r#   r   r¼   s     r   Út_FLOAT_CONSTzCLexer.t_FLOAT_CONSTÉ  rÖ   r   c                 ó   — |S r#   r   r¼   s     r   Út_HEX_FLOAT_CONSTzCLexer.t_HEX_FLOAT_CONSTÍ  rÖ   r   c                 ó   — |S r#   r   r¼   s     r   Út_INT_CONST_HEXzCLexer.t_INT_CONST_HEXÑ  rÖ   r   c                 ó   — |S r#   r   r¼   s     r   Út_INT_CONST_BINzCLexer.t_INT_CONST_BINÕ  rÖ   r   c                 ó,   — d}| j                  ||«       y )NzInvalid octal constantrÏ   ©r   r½   r2   s      r   Út_BAD_CONST_OCTzCLexer.t_BAD_CONST_OCTÙ  s   € à&ˆØ�‰�C˜Õr   c                 ó   — |S r#   r   r¼   s     r   Út_INT_CONST_OCTzCLexer.t_INT_CONST_OCTÞ  rÖ   r   c                 ó   — |S r#   r   r¼   s     r   Út_INT_CONST_DECzCLexer.t_INT_CONST_DECâ  rÖ   r   c                 ó   — |S r#   r   r¼   s     r   Út_INT_CONST_CHARzCLexer.t_INT_CONST_CHARé  rÖ   r   c                 ó   — |S r#   r   r¼   s     r   Út_CHAR_CONSTzCLexer.t_CHAR_CONSTí  rÖ   r   c                 ó   — |S r#   r   r¼   s     r   Út_WCHAR_CONSTzCLexer.t_WCHAR_CONSTñ  rÖ   r   c                 ó   — |S r#   r   r¼   s     r   Út_U8CHAR_CONSTzCLexer.t_U8CHAR_CONSTõ  rÖ   r   c                 ó   — |S r#   r   r¼   s     r   Út_U16CHAR_CONSTzCLexer.t_U16CHAR_CONSTù  rÖ   r   c                 ó   — |S r#   r   r¼   s     r   Út_U32CHAR_CONSTzCLexer.t_U32CHAR_CONSTý  rÖ   r   c                 ó,   — d}| j                  ||«       y )NzUnmatched 'rÏ   rø   s      r   Út_UNMATCHED_QUOTEzCLexer.t_UNMATCHED_QUOTE  s   € àˆØ�‰�C˜Õr   c                 óF   — d|j                   z  }| j                  ||«       y )NzInvalid char constant %s)rÀ   r4   rø   s      r   Út_BAD_CHAR_CONSTzCLexer.t_BAD_CHAR_CONST  s   € à(¨1¯7©7Ñ2ˆØ�‰�C˜Õr   c                 ó   — |S r#   r   r¼   s     r   Út_WSTRING_LITERALzCLexer.t_WSTRING_LITERAL  rÖ   r   c                 ó   — |S r#   r   r¼   s     r   Út_U8STRING_LITERALzCLexer.t_U8STRING_LITERAL  rÖ   r   c                 ó   — |S r#   r   r¼   s     r   Út_U16STRING_LITERALzCLexer.t_U16STRING_LITERAL  rÖ   r   c                 ó   — |S r#   r   r¼   s     r   Út_U32STRING_LITERALzCLexer.t_U32STRING_LITERAL  rÖ   r   c                 ó,   — d}| j                  ||«       y )Nz#String contains invalid escape coderÏ   rø   s      r   Út_BAD_STRING_LITERALzCLexer.t_BAD_STRING_LITERAL  s   € à3ˆØ�‰�C˜Õr   c                 ó¾   — | j                   j                  |j                  d«      |_        |j                  dk(  r"| j	                  |j                  «      rd|_        |S )Nrd   re   )Úkeyword_mapÚgetrÀ   r»   r   r¼   s     r   Út_IDzCLexer.t_ID"  sH   € à×!Ñ!×%Ñ% a§g¡g¨tÓ4ˆŒØ�6‰6�TŠ>˜d×3Ñ3°A·G±GÔ<ØˆAŒFØˆr   c                 ó^   — dt        |j                  d   «      z  }| j                  ||«       y )NzIllegal character %sr   )ÚreprrÀ   r4   rø   s      r   Út_errorzCLexer.t_error)  s'   € Ø$¤t¨A¯G©G°A©JÓ'7Ñ7ˆØ�‰�C˜Õr   )�Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r!   r$   r'   r.   r4   r0   ÚkeywordsÚkeywords_newr  ÚkeywordÚlowerÚupperÚtokensÚ
identifierÚ
hex_prefixÚ
hex_digitsÚ
bin_prefixÚ
bin_digitsÚinteger_suffix_optÚdecimal_constantÚoctal_constantÚhex_constantÚbin_constantÚbad_octal_constantÚsimple_escapeÚdecimal_escapeÚ
hex_escapeÚ
bad_escapeÚescape_sequenceÚescape_sequence_start_in_stringÚcconst_charÚ
char_constÚwchar_constÚu8char_constÚu16char_constÚu32char_constÚmulticharacter_constantÚunmatched_quoteÚbad_char_constÚstring_charÚstring_literalÚwstring_literalÚu8string_literalÚu16string_literalÚu32string_literalÚbad_string_literalÚexponent_partÚfractional_constantÚfloating_constantÚbinary_exponent_partÚhex_fractional_constantÚhex_floating_constantÚstatesr¾   r   rÃ   rÅ   rÊ   rÍ   Út_ppline_ignorerÐ   rÒ   rÕ   Út_pppragma_ignorerØ   rÚ   Út_ignorerÝ   Út_PLUSÚt_MINUSÚt_TIMESÚt_DIVIDEÚt_MODÚt_ORÚt_ANDÚt_NOTÚt_XORÚt_LSHIFTÚt_RSHIFTÚt_LORÚt_LANDÚt_LNOTÚt_LTÚt_GTÚt_LEÚt_GEÚt_EQÚt_NEÚt_EQUALSÚt_TIMESEQUALÚ
t_DIVEQUALÚ
t_MODEQUALÚt_PLUSEQUALÚt_MINUSEQUALÚt_LSHIFTEQUALÚt_RSHIFTEQUALÚ
t_ANDEQUALÚ	t_OREQUALÚ
t_XOREQUALÚ
t_PLUSPLUSÚt_MINUSMINUSÚt_ARROWÚt_CONDOPÚt_LPARENÚt_RPARENÚ
t_LBRACKETÚ
t_RBRACKETÚt_COMMAÚt_PERIODÚt_SEMIÚt_COLONÚ
t_ELLIPSISrë   rî   Út_STRING_LITERALrð   rò   rô   rö   rù   rû   rý   rÿ   r  r  r  r  r	  r  r  r  r  r  r  r  r  r  r   r   r   r   r      s§  „ ñò<òB4òò
òò&òò
;ð€Hð
€Lð €Kàò /ˆØ'.ˆ�G—M‘M“OÒ$ð/ð  ò IˆØAHˆ�G˜B˜Q�K×%Ñ%Ó'¨'°!°"¨+×*;Ñ*;Ó*=Ñ=Ò>ðIð ˜Ñ$ð ;(ñ ;€FðF -€Jà€JØ€JØ€JØ€Jð aÐØÐ.Ñ.Ð/?Ñ?Ð@RÑRÐSVÑVÐØÐ1Ñ1€NØ˜jÑ(Ð);Ñ;€LØ˜jÑ(Ð);Ñ;€Là&Ðð8 H€MØ'€NØ6€JØ;€Jà! -Ñ/°Ñ3°NÑBÀ3ÑFÀzÑQÐRVÑV€Oð
 'LÐ#à# OÑ3°CÑ7€KØ�[‘ Ñ$€JØ�j‘.€KØ˜
‘?€LØ˜
‘N€MØ˜
‘N€MØ! +™o¨hÑ6ÐØ˜;Ñ& zÑ1°+Ñ=¸eÑC€OØ˜{Ñ*Ð+BÑBÀ:ÑMÐN^Ñ^€Nð $Ð$CÑCÀCÑG€KØ˜‘_ TÑ)€NØ˜.Ñ(€OØ˜NÑ*ÐØ˜NÑ*ÐØ˜NÑ*ÐØ˜[™¨Ñ,¨ZÑ7¸ÑCÀDÑHÐð -€MØ<ÐØÐ2Ñ2°3Ñ6°}ÑDÀ\ÑQÐR_Ñ_Ð`lÑlÐØ3ÐØ# JÑ.¨{Ñ:¸:ÑEÀeÑKÈJÑVÐWbÑbÐØ 
™N¨3Ñ.¨zÑ9¸#Ñ=Ð>UÑUÐVYÑYÐZnÑnÐoyÑyÐð
€Fò	ñ ˆ>Óñ?ó ð?ñ ÐÓñó ðò
!òð €Oò2ò!ò
ð Ðòò
4ð €Hò.ð
  €FØ€GØ€GØ€HØ€EØ€DØ€EØ€EØ€EØ€HØ€HØ!€EØ€FØ€FØ€DØ€DØ€DØ€DØ€DØ€Dð €HØ €LØ€JØ€JØ €KØ€LØ €MØ €MØ€JØ €IØ €Jð "€JØ€Lð  €Gð  €Hð  €HØ€HØ€JØ€JØ€GØ€HØ€FØ€GØ#€Jñ ˆ5ƒ\ñó ðñ ˆ5ƒ\ñó ðð &Ðñ ÐÓñó ðñ Ð Ó!ñó "ðñ ˆ<Óñó ðñ ˆ<Óñó ðñ ÐÓñó ðñ ˆ>Óñó ðñ ÐÓñó ðñ Ð"Ó#ñó $ðñ ˆ:Óñó ðñ ˆ;Óñó ðñ ˆ<Óñó ðñ ˆ=Óñó ðñ ˆ=Óñó ðñ ˆ?Óñó ðñ ˆ>Óñó ðñ ˆ?Óñó ðñ ÐÓñó ðñ ÐÓñó ðñ ÐÓñó ðñ
 ÐÓñó ðñ ˆ:Óñó ðór   r   )r   Úplyr   Úply.lexr   r   r   r   r   r   ú<module>rƒ     s   ðó 
å Ý ô\ˆVõ \r   