HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/pycparser/__pycache__/c_lexer.cpython-310.pyc
o

�N�gC�@s4ddlZddlmZddlmZGdd�de�ZdS)�N�)�lex)�TOKENc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdZdZ
iZeD]Zeee��<q.e
D]Zeeedd���edd���<q9ee
dZdZdZdZdZdZdZdededZd eZeeeZeeeZd!Zd"Zd#Zd$Z d%Z!d&ed'ed'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$d0Z*d1e$d2e$d3Z+d1e$d4e!d5Z,d6e#dZ-d7e-d8Z.d,e.Z/d-e.Z0d.e.Z1d/e.Z2d7e-d9e!e-d8Z3d:Z4d;Z5d<e5de4d=e4d>Z6d?Z7d@edAedBedCZ8dDedDed'e8de7dEZ9dFZ:dGdH�Z;e<e.�dIdJ��Z=e<e�dKdL��Z>dMdN�Z?dOdP�Z@dQZAdRdS�ZBdTdU�ZCdVdW�ZDdQZEdXdY�ZFdZd[�ZGdQZHd\d]�ZId^ZJd_ZKd`ZLdaZMdbZNdcZOddZPdeZQdfZRdgZSdhZTdiZUdjZVdkZWdlZXdmZYdnZZdoZ[dpZ\dqZ]drZ^dsZ_dtZ`duZadvZbdwZcdxZddyZedzZfd{Zgd|Zhd}Zid~ZjdZkd�Zld�Zmd�Znd�Zod�Zpd�Zqd�Zrd�Zsd�Ztd�Zue<d��d�d���Zve<d��d�d���Zwe.Zxe<e6�d�d���Zye<e9�d�d���Zze<e�d�d���Z{e<e�d�d���Z|e<e�d�d���Z}e<e�d�d���Z~e<e�d�d���Ze<e*�d�d���Z�e<e%�d�d���Z�e<e&�d�d���Z�e<e'�d�d���Z�e<e(�d�d���Z�e<e)�d�d���Z�e<e+�d�d���Z�e<e,�d�d���Z�e<e/�d�d���Z�e<e0�d�d���Z�e<e1�d�d���Z�e<e2�d�d���Z�e<e3�d�d���Z�e<e�d�d���Z�d�d��Z�dS)��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.
    cCs@||_||_||_||_d|_d|_t�d�|_t�d�|_	dS)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)�selfrrr	r
�r�E/opt/saltstack/salt/lib/python3.10/site-packages/pycparser/c_lexer.py�__init__szCLexer.__init__cKstjdd|i|��|_dS)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__
        �objectNr)r�lexer)r�kwargsrrr�build9szCLexer.buildcCsd|j_dS)z? Resets the internal line number counter of the lexer.
        rN)r�lineno�rrrr�reset_linenoCszCLexer.reset_linenocCs|j�|�dS�N)r�input)r�textrrrrH�zCLexer.inputcCs|j��|_|jSr)r�tokenrrrrrr KszCLexer.tokencCs|jj�dd|j�}|j|S)z3 Find the column of the token in its line.
        �
r)r�lexdata�rfind�lexpos)rr Zlast_crrrr�find_tok_columnOs
zCLexer.find_tok_columncCs0|�|�}|�||d|d�|j�d�dS)Nrr)�_make_tok_locationrr�skip)r�msgr �locationrrr�_errorZs
z
CLexer._errorcCs|j|�|�fSr)rr%)rr rrrr&_rzCLexer._make_tok_location)$ZAUTOZBREAKZCASEZCHARZCONST�CONTINUEZDEFAULTZDOZDOUBLE�ELSEZENUMZEXTERNZFLOATZFORZGOTOZIFZINLINEZINTZLONGZREGISTERZOFFSETOFZRESTRICTZRETURNZSHORTZSIGNEDZSIZEOFZSTATICZSTRUCTZSWITCHZTYPEDEFZUNIONZUNSIGNEDZVOIDZVOLATILEZWHILEZ__INT128)Z_BOOLZ_COMPLEXZ	_NORETURNZ
_THREAD_LOCALZ_STATIC_ASSERTZ_ATOMICZ_ALIGNOFZ_ALIGNASN�)D�ID�TYPEIDZ
INT_CONST_DECZ
INT_CONST_OCTZ
INT_CONST_HEXZ
INT_CONST_BINZINT_CONST_CHARZFLOAT_CONSTZHEX_FLOAT_CONSTZ
CHAR_CONSTZWCHAR_CONSTZU8CHAR_CONSTZ
U16CHAR_CONSTZ
U32CHAR_CONSTZSTRING_LITERALZWSTRING_LITERALZU8STRING_LITERALZU16STRING_LITERALZU32STRING_LITERAL�PLUS�MINUSZTIMESZDIVIDEZMOD�ORZANDZNOTZXORZLSHIFTZRSHIFTZLORZLANDZLNOTZLTZLEZGTZGEZEQZNEZEQUALSZ
TIMESEQUALZDIVEQUALZMODEQUAL�	PLUSEQUALZ
MINUSEQUALZLSHIFTEQUALZRSHIFTEQUALZANDEQUALZXOREQUALZOREQUALZPLUSPLUSZ
MINUSMINUSZARROWZCONDOPZLPARENZRPARENZLBRACKETZRBRACKET�LBRACE�RBRACE�COMMAZPERIOD�SEMI�COLON�ELLIPSIS�PPHASHZPPPRAGMA�PPPRAGMASTRz[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,([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)�pppragmarGcCsf|jj|jj|jjd�r|j�d�d|_|_dS|jj|jj|jjd�r.|j�d�dSd|_	|S)z[ \t]*\#)�posrFNrHr:)
r�matchrr"r$�begin�pp_line�pp_filenamer�type�r�trrr�t_PPHASH!szCLexer.t_PPHASHcCs2|jdur
|�d|�dS|j�d��d�|_dS)Nz$filename before line number in #linerC)rLr*�value�lstrip�rstriprMrOrrr�t_ppline_FILENAME/s
zCLexer.t_ppline_FILENAMEcCs|jdur|j|_dS	dSr)rLrRrOrrr�t_ppline_LINE_NUMBER6s
zCLexer.t_ppline_LINE_NUMBERcCsH|jdur|�d|�nt|j�|j_|jdur|j|_|j�d�dS)�\nNzline number missing in #line�INITIAL)rLr*�intrrrMrrKrOrrr�t_ppline_NEWLINE?s

zCLexer.t_ppline_NEWLINEcCsdS)�lineNrrOrrr�t_ppline_PPLINEK�zCLexer.t_ppline_PPLINEz 	cC�|�d|�dS)Nzinvalid #line directive�r*rOrrr�t_ppline_errorQrzCLexer.t_ppline_errorcCs |jjd7_|j�d�dS)rWrrXN)rrrKrOrrr�t_pppragma_NEWLINEWszCLexer.t_pppragma_NEWLINEcC�|S)ZpragmarrOrrr�t_pppragma_PPPRAGMA\r]zCLexer.t_pppragma_PPPRAGMAcCs
d|_|S)z.+r;)rNrOrrr�t_pppragma_STRbszCLexer.t_pppragma_STRcCr^)Nzinvalid #pragma directiver_rOrrr�t_pppragma_errorgrzCLexer.t_pppragma_errorcCs|jj|j�d�7_dS)z\n+r!N)rrrR�countrOrrr�	t_NEWLINEpszCLexer.t_NEWLINEz\+�-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\{cC�|��|Sr)rrOrrr�t_LBRACE��zCLexer.t_LBRACEz\}cCrtr)r	rOrrr�t_RBRACE�rvzCLexer.t_RBRACEcCrbrrrOrrr�
t_FLOAT_CONST�r]zCLexer.t_FLOAT_CONSTcCrbrrrOrrr�t_HEX_FLOAT_CONST�r]zCLexer.t_HEX_FLOAT_CONSTcCrbrrrOrrr�t_INT_CONST_HEX�r]zCLexer.t_INT_CONST_HEXcCrbrrrOrrr�t_INT_CONST_BIN�r]zCLexer.t_INT_CONST_BINcC�d}|�||�dS)NzInvalid octal constantr_�rrPr(rrr�t_BAD_CONST_OCT��zCLexer.t_BAD_CONST_OCTcCrbrrrOrrr�t_INT_CONST_OCT�r]zCLexer.t_INT_CONST_OCTcCrbrrrOrrr�t_INT_CONST_DEC�r]zCLexer.t_INT_CONST_DECcCrbrrrOrrr�t_INT_CONST_CHAR�r]zCLexer.t_INT_CONST_CHARcCrbrrrOrrr�t_CHAR_CONST�r]zCLexer.t_CHAR_CONSTcCrbrrrOrrr�
t_WCHAR_CONST�r]zCLexer.t_WCHAR_CONSTcCrbrrrOrrr�t_U8CHAR_CONST�r]zCLexer.t_U8CHAR_CONSTcCrbrrrOrrr�t_U16CHAR_CONST�r]zCLexer.t_U16CHAR_CONSTcCrbrrrOrrr�t_U32CHAR_CONST�r]zCLexer.t_U32CHAR_CONSTcCr|)NzUnmatched 'r_r}rrr�t_UNMATCHED_QUOTErzCLexer.t_UNMATCHED_QUOTEcCsd|j}|�||�dS)NzInvalid char constant %s)rRr*r}rrr�t_BAD_CHAR_CONSTs
zCLexer.t_BAD_CHAR_CONSTcCrbrrrOrrr�t_WSTRING_LITERAL
r]zCLexer.t_WSTRING_LITERALcCrbrrrOrrr�t_U8STRING_LITERALr]zCLexer.t_U8STRING_LITERALcCrbrrrOrrr�t_U16STRING_LITERALr]zCLexer.t_U16STRING_LITERALcCrbrrrOrrr�t_U32STRING_LITERALr]zCLexer.t_U32STRING_LITERALcCr|)Nz#String contains invalid escape coder_r}rrr�t_BAD_STRING_LITERALrzCLexer.t_BAD_STRING_LITERALcCs2|j�|jd�|_|jdkr|�|j�rd|_|S)Nr.r/)�keyword_map�getrRrNr
rOrrr�t_ID!szCLexer.t_IDcCs"dt|jd�}|�||�dS)NzIllegal character %sr)�reprrRr*r}rrr�t_error(szCLexer.t_error)��__name__�
__module__�__qualname__�__doc__rrrrr r%r*r&�keywordsZkeywords_newr��keyword�lower�upper�tokensZ
identifierZ
hex_prefixZ
hex_digitsZ
bin_prefixZ
bin_digitsZinteger_suffix_optZdecimal_constantZoctal_constantZhex_constantZbin_constantZbad_octal_constantZ
simple_escapeZdecimal_escapeZ
hex_escapeZ
bad_escapeZescape_sequenceZescape_sequence_start_in_stringZcconst_charZ
char_constZwchar_constZu8char_constZ
u16char_constZ
u32char_constZmulticharacter_constantZunmatched_quoteZbad_char_constZstring_charZstring_literalZwstring_literalZu8string_literalZu16string_literalZu32string_literalZbad_string_literalZ
exponent_partZfractional_constantZfloating_constantZbinary_exponent_partZhex_fractional_constantZhex_floating_constantZstatesrQrrUrVrZr\Zt_ppline_ignorer`rarcZt_pppragma_ignorerdreZt_ignorergZt_PLUSZt_MINUSZt_TIMESZt_DIVIDEZt_MODZt_ORZt_ANDZt_NOTZt_XORZt_LSHIFTZt_RSHIFTZt_LORZt_LANDZt_LNOTZt_LTZt_GTZt_LEZt_GEZt_EQZt_NEZt_EQUALSZt_TIMESEQUALZ
t_DIVEQUALZ
t_MODEQUALZt_PLUSEQUALZt_MINUSEQUALZ
t_LSHIFTEQUALZ
t_RSHIFTEQUALZ
t_ANDEQUALZ	t_OREQUALZ
t_XOREQUALZ
t_PLUSPLUSZt_MINUSMINUSZt_ARROWZt_CONDOPZt_LPARENZt_RPARENZ
t_LBRACKETZ
t_RBRACKETZt_COMMAZt_PERIODZt_SEMIZt_COLONZ
t_ELLIPSISrurwZt_STRING_LITERALrxryrzr{r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrsL!

&C$

























r)r
ZplyrZply.lexrrrrrrr�<module>s