HEX
Server: LiteSpeed
System: Linux s787.bom1.mysecurecloudhost.com 4.18.0-477.13.1.lve.el8.x86_64 #1 SMP Thu Jun 1 16:40:47 EDT 2023 x86_64
User: mobilech (5348)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/pycparser/__pycache__/c_lexer.cpython-310.pyc
o

;jCb�@s,UddlZddlmZddlmZddlmZmZmZm	Z	m
Z
edd�Gdd�d��ZGd	d
�d
�ZdZ
e
edfed
<iZeeefed<e
D],Ze�d�rnee�dkrned��rneeedd���edd���<qHeee��<qHdZdZdZdZdZdZdededZdeZeeeZeeeZ dZ!dZ"dZ#dZ$d Z%d!Z&d"Z'd#e$d$e%d$e&d%Z(d&Z)d'e(dZ*d(e*d(Z+d)e+Z,d*e+Z-d+e+Z.d,e+Z/d(e*d-Z0d.e*d/e*d0Z1d.e*d1e'd2Z2d3e)dZ3d4e3d5Z4d)e4Z5d*e4Z6d+e4Z7d,e4Z8d4e3d6e'e3d5Z9d7Z:d8Z;d9e;de:d:e:d;Z<d<Z=d=ed>ed?ed@Z>dAedAed$e>de=dBZ?GdCdD�dDe�Z@eddE�GdFdG�dG��ZAeAdHe"e@jBdI�eAdJe#e@jBdI�eAdKe9e@jBdL�eAdMe5e@jCd�eAdNe6e@jCd�eAdOe7e@jCd�eAdPe8e@jCd�eAdQe4e@jCd�eAdRe?e@jCd�eAdSe<e@jCd�eAdTee@jCd�eAdUe e@jCd�eAdVe!e@jBdW�eAdXee@jCd�eAdYee@jCd�eAdZe0e@jCd�eAd[e+e@jCd�eAd\e,e@jCd�eAd]e-e@jCd�eAd^e.e@jCd�eAd_e/e@jCd�eAd`e1e@jBda�eAdbe2e@jBd�eAdcee@jDd�gZEeeAedd<iZFeee
e@e	effede<gZGeeedf<eED]ZHeHjIeHjJfeFeHjK<eG�LdgeHjK�dheHjM�d���q)e�Nd$�OeG��ZPejQeedi<eddE�Gdjdk�dk��ZRgeRdldm��eRdndo��eRdpdq��eRdrds��eRdtdu��eRdvdw��eRdxdy��eRdzd{��eRd|d}��eRd~d��eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�d6��eRd�d���eRd�d���eRd�d$��eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�dh��eRd�d���eRd�dA��eRd�d��eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�d���eRd�dƒ�ZSeeRed�<iZTeeeeRfed�<eSD]ZUeT�VeUjWdg��LeU��q[eT�X�D]ZYeYjZd�dƄddǍ�qoe�NdȡZ[ejQeed�<e�NdʡZ\ejQeed�<dS)��N)�	dataclass)�Enum)�Callable�Dict�List�Optional�TupleT)�slotsc@s.eZdZUeed<eed<eed<eed<dS)�_Token�type�value�lineno�columnN)�__name__�
__module__�__qualname__�str�__annotations__�int�rr�E/opt/saltstack/salt/lib/python3.10/site-packages/pycparser/c_lexer.pyr
s

r
c
@s�eZdZdZdeeeegdfdegdfdegdfdeegefddf
dd	�Zd#dededdfd
d�Z	d$dd�Z
edefdd��Zde
efdd�Zde
efdd�Zdedededefdd�Zdededdfdd�Zd$dd �Zdeefd!d"�ZdS)%�CLexera�A standalone lexer for C.

    Parameters for construction:
        error_func:
            Called with (msg, line, column) on lexing errors.
        on_lbrace_func:
            Called when an LBRACE token is produced (used for scope tracking).
        on_rbrace_func:
            Called when an RBRACE token is produced (used for scope tracking).
        type_lookup_func:
            Called with an identifier name; expected to return True if it is
            a typedef name and should be tokenized as TYPEID.

    Call input(text) to initialize lexing, and then keep calling token() to
    get the next token, until it returns None (at end of input).
    �
error_funcN�on_lbrace_func�on_rbrace_func�type_lookup_func�returncCs$||_||_||_||_|��dS�N)rrrr�_init_state)�selfrrrrrrr�__init__)s
zCLexer.__init__��text�filenamecCs|��||_||_dS)z�Initialize the lexer to the given input text.

        filename is an optional name identifying the file from which the input
        comes. The lexer can modify it if #line directives are encountered.
        N)r�_lexdata�	_filename)rr"r#rrr�input6s
zCLexer.inputcCs(d|_d|_d|_d|_d|_d|_dS)Nr!r�)r$r%�_pos�_line_start�_pending_tok�_lineno�rrrrr@s
zCLexer._init_statecCs|jSr)r%r,rrrr#HszCLexer.filenamecCsd|j}t|�}|jdur|j}d|_|S|j|kr�||jdkr#ndkr(nn
|jd7_nudkrL|jd7_|jd7_|j|_n]dkr�t�||jd�rd|jd7_|��qt	�||jd�r�|jd7_|�
�}t|�dkr�|d|_t|�dkr�|dSq|�dd|j�}|jd7_|S	|��}r�|Sq|j|ksdSdS)N� �	r'�
�#rZPPHASH)
r$�lenr*r(r+r)�
_line_pattern�match�_handle_ppline�_pragma_pattern�_handle_pppragma�_make_token�_match_token)rr"�n�tok�toksrrr�tokenLsF




�zCLexer.tokenc
Cs�|j}|j}d}t�||�}r/|j}|dusJ�|�|�}t|�}t|\}}	|||||	f}t�	||�}
r_|
D]$}|�
|j|�r^t|j�}|dusR||dkr\||j|jt
jdf}nq:|dur{dt||���}	|�|	|�|jd7_dS|\}}}}}	|t
jkr�|dkr�d|��}	|	dus�J�|�|	|�|jtd|�7_dS|t
jkr�t�	|d�}|dkr�|�|�r�d}|�|||�}|j|7_|jd	kr�|��|S|jd
kr�|��|S)z�Match one token at the current position.

        Returns a Token on success, or None if no token could be matched and
        an error was reported. This method always advances _pos by the matched
        length, or by 1 on error/no-match.
        NrzIllegal character r'�BAD_CHAR_CONSTzInvalid char constant �IDZTYPEID�LBRACE�RBRACE)r$r(�
_regex_masterr3�	lastgroup�groupr1�_regex_actions�_fixed_tokens_by_first�get�
startswith�literal�tok_type�_RegexAction�TOKEN�repr�_error�ERROR�maxr>�_keyword_maprr7rrr)
rr"�posZbest�mrIr�length�action�msgZbucket�entryr:rrrr8�s`


��




�zCLexer._match_tokenrIrrQcCs"||jd}t|||j|�}|S)a#Create a Token at an absolute input position.

        Expects tok_type/value and the absolute byte offset pos in the current
        input. Does not advance lexer state; callers manage _pos themselves.
        Returns a Token with lineno/column computed from current line tracking.
        r')r)r
r+)rrIrrQrr:rrrr7�szCLexer._make_tokenrUcCs"||jd}|�||j|�dS�Nr')r)rr+)rrUrQrrrrrM�sz
CLexer._errorc	s�j}t|�}|�d�j���dkr|�|�j���d�t���d���fdd�}|���d��r7�d7�d	ttd
ttddf���fdd�}d
tdtddf��fdd�}|���krf|dd�dS��dkrs|d��dSt�	t
��d��}|s�|d��dS|�d�}�t|�7�|���kr�||d�dS��dkr�|d��dSt�	t��d��}|s�|d��dS|�d��
d��d�}�t|�d��7�	|���kr�nt�	t
��d��}|s�|d��dS�t|�d��7�q�|||�dS)Nr/���rrcs@��kr��dvr�d7���kr��dvs
dSdSdSdS)N� 	r'rr)�line�line_lenrQrr�skip_wss$�z&CLexer._handle_ppline.<locals>.skip_wsrZ��pp_line�pp_filenamecsJ|dur��d�j��nt|��_|dur|�_�d�_�j�_dS)Nzline number missing in #liner')rMr(rr+r%r))r^r_)�line_endr[rrr�successs

z&CLexer._handle_ppline.<locals>.successrU�offsetcs(��|�j|��d�_�j�_dSrW)rMr(r))rUrb)r`rrr�fails
z#CLexer._handle_ppline.<locals>.fail�"z$filename before line number in #linezinvalid #line directiveT�rN)r$r1�findr(rGrrr�rer3�_decimal_constantrC�_string_literal�lstrip�rstrip)	rr"r9r\rarcrRr^r_r)rZr`r[rQrrr4�sf&








�
zCLexer._handle_pplinecCs^|j}t|�}|j}||kr"||dvr"|d7}||kr"||dvs||kr+||_gS|�d|�s>|�d|�|d|_gS|}|td�7}|�dd|�g}||krf||dvrf|d7}||krf||dvsX|}||kr�||dkr�|d7}||kr�||dksr||kr�|�|�d|||�|��||kr�||dkr�|jd7_|d7}||_||_|S)NrYr'Zpragmazinvalid #pragma directiveZPPPRAGMAr/ZPPPRAGMASTR)	r$r1r(rGrMr7�appendr+r))rr"r9rQZ
pragma_posr;�startrrrr6Ks>
�
��zCLexer._handle_pppragma)r!re)rrr�__doc__rrr�boolr r&r�propertyr#rr
r<r8r7rMr4rr6rrrrrs.�
�
��
�

AM
br)-ZAUTOZBREAKZCASEZCHARZCONST�CONTINUEZDEFAULTZDOZDOUBLE�ELSEZENUMZEXTERNZFLOATZFORZGOTOZIFZINLINEZINTZLONGZREGISTERZOFFSETOFZRESTRICTZRETURNZSHORTZSIGNEDZSIZEOFZSTATICZSTRUCTZSWITCHZTYPEDEFZUNIONZUNSIGNEDZVOIDZVOLATILEZWHILEZ__INT128Z_BOOLZ_COMPLEXZ	_NORETURNZ
_THREAD_LOCALZ_STATIC_ASSERTZ_ATOMICZ_ALIGNOFZ_ALIGNASZ_PRAGMA.�	_keywordsrP�_r'�z[a-zA-Z_$][0-9a-zA-Z_$]*z0[xX]z[0-9a-fA-F]+z0[bB]z[01]+zD(([uU]ll)|([uU]LL)|(ll[uU]?)|(LL[uU]?)|([uU][lL])|([lL][uU]?)|[uU])?z(0z)|([1-9][0-9]*�)z0[0-7]*z0[0-7]*[89]z\/\*z\/\/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]|rdz*"�*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]?)c@seZdZdZdZdZdS)rJrr'ruN)rrrrKr>rNrrrrrJ2srJ)�frozenc@s2eZdZUeed<eed<eed<eeed<dS)�
_RegexRulerI�
regex_patternrT�
error_messageN)rrrrrrJrrrrrr�8s

r�ZUNSUPPORTED_C_STYLE_COMMENTzKComments are not supported, see https://github.com/eliben/pycparser#3using.ZUNSUPPORTED_CXX_STYLE_COMMENTZBAD_STRING_LITERALz#String contains invalid escape codeZWSTRING_LITERALZU8STRING_LITERALZU16STRING_LITERALZU32STRING_LITERALZSTRING_LITERALZHEX_FLOAT_CONSTZFLOAT_CONSTZ
INT_CONST_HEXZ
INT_CONST_BINZ
BAD_CONST_OCTzInvalid octal constantZ
INT_CONST_OCTZ
INT_CONST_DECZINT_CONST_CHARZ
CHAR_CONSTZWCHAR_CONSTZU8CHAR_CONSTZ
U16CHAR_CONSTZ
U32CHAR_CONSTZUNMATCHED_QUOTEzUnmatched 'r=r>�_regex_rulesrD�_regex_pattern_partsz(?P<�>rAc@seZdZUeed<eed<dS)�_FixedTokenrIrHN)rrrrrrrrrr�s
r��ELLIPSISz...ZLSHIFTEQUALz<<=ZRSHIFTEQUALz>>=ZPLUSPLUSz++Z
MINUSMINUSz--ZARROWz->ZLANDz&&ZLORz||ZLSHIFTz<<ZRSHIFTz>>ZLEz<=ZGEz>=ZEQz==ZNEz!=Z
TIMESEQUALz*=ZDIVEQUALz/=ZMODEQUALz%=�	PLUSEQUALz+=Z
MINUSEQUALz-=ZANDEQUALz&=ZOREQUALz|=ZXOREQUALz^=ZEQUALS�=�PLUS�+�MINUS�-ZTIMESZDIVIDE�/ZMOD�%�ORZAND�&ZNOT�~ZXOR�^ZLNOT�!ZLT�<ZGTZCONDOP�?ZLPARENZRPARENZLBRACKET�[ZRBRACKET�]r?�{r@�}�COMMA�,ZPERIOD�.�SEMI�;�COLON�:�
_fixed_tokensrEcCs
t|j�Sr)r1rH)�itemrrr�<lambda>�s
r�)�key�reversez([ \t]*line\W)|([ \t]*\d+)r2z[ \t]*pragma\Wr5)]rgZdataclassesr�enumr�typingrrrrrr
rrsrrrP�keywordrGr1�isalpha�upper�lowerZ_identifierZ_hex_prefixZ_hex_digitsZ_bin_prefixZ_bin_digitsZ_integer_suffix_optrhZ_octal_constantZ
_hex_constantZ
_bin_constantZ_bad_octal_constantZ_unsupported_c_style_commentZ_unsupported_cxx_style_commentZ_simple_escapeZ_decimal_escapeZ_hex_escapeZ_bad_escapeZ_escape_sequenceZ _escape_sequence_start_in_stringZ_cconst_charZ_char_constZ_wchar_constZ
_u8char_constZ_u16char_constZ_u32char_constZ_multicharacter_constantZ_unmatched_quoteZ_bad_char_constZ_string_charriZ_wstring_literalZ_u8string_literalZ_u16string_literalZ_u32string_literalZ_bad_string_literalZ_exponent_partZ_fractional_constantZ_floating_constantZ_binary_exponent_partZ_hex_fractional_constantZ_hex_floating_constantrJr�rNrKr>r�rDr�Z_rulerTr�rIrlr��compile�joinrA�Patternr�r�rEZ_entry�
setdefaultrH�valuesZ_bucket�sortr2r5rrrr�<module>s�
f0"&��!�	��������	����������
����� / ��������	�
���
������������������� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�6