Revonzy Mini Shell

Revonzy Mini Shell

Şuanki Dizin: /proc/self/root/lib/python3.9/site-packages/sepolgen/__pycache__/
Dosya Yükle :
Şuanki Dosya : //proc/self/root/lib/python3.9/site-packages/sepolgen/__pycache__/refparser.cpython-39.pyc

a


z
fez�6@s�ddlZddlZddlZddlZddlmZddlmZddlmZddlmZddlm	Z	dZ
d	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>�5Zd?Zd@Z
dAZdBZdCZdDZdEZdFZdGZdHZdIZdJZdKZdLZdMZdNZdOZdPZdQZdRdS�ZdTdU�Z dVdW�Z!dXdY�Z"dZd[�Z#d\d]�Z$d^d_�Z%d`da�Z&dbdc�Z'da(da)dda*da+dea,d�dfdg�Z-dhdi�Z.djdk�Z/dldm�Z0dndo�Z1dpdq�Z2drds�Z3dtdu�Z4dvdw�Z5dxdy�Z6dzd{�Z7d|d}�Z8d~d�Z9d�d��Z:d�d��Z;d�d��Z<d�d��Z=d�d��Z>d�d��Z?d�d��Z@d�d��ZAd�d��ZBd�d��ZCd�d��ZDd�d��ZEd�d��ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJd�d��ZKd�d��ZLd�d��ZMd�d��ZNd�d��ZOd�d��ZPd�d��ZQd�d��ZRd�d��ZSd�d��ZTd�d��ZUd�d��ZVd�d��ZWd�d��ZXd�d��ZYd�d��ZZd�dÄZ[d�dńZ\d�dDŽZ]d�dɄZ^d�d˄Z_d�d̈́Z`d�dτZad�dфZbd�dӄZcd�dՄZdd�dׄZed�dلZfd�dۄZgd�d݄Zhd�d߄Zid�d�Zjd�d�Zkd�d�Zld�d�Zmd�d�Znd�d�Zod�d�Zpdaqdard�d�Zsd�d�d�Ztd�d�Zud�d�d��ZvdS)��N�)�access)�defaults)�lex)�	refpolicy)�yacc)JZTICKZSQUOTEZOBRACEZCBRACE�SEMI�COLONZOPARENZCPAREN�COMMA�MINUS�TILDEZASTERISKZAMPZBARZEXPL�EQUAL�FILENAME�
IDENTIFIER�NUMBER�PATHZ	IPV6_ADDR�MODULE�
POLICY_MODULE�REQUIRE�SID�GENFSCON�FS_USE_XATTR�FS_USE_TRANS�FS_USE_TASK�PORTCON�NODECON�NETIFCON�PIRQCON�IOMEMCON�	IOPORTCON�PCIDEVICECON�
DEVICETREECON�CLASS�
TYPEATTRIBUTE�
ROLEATTRIBUTE�TYPE�	ATTRIBUTE�ATTRIBUTE_ROLE�ALIAS�	TYPEALIAS�BOOL�TRUE�FALSE�IF�ELSE�ROLE�TYPES�ALLOW�	DONTAUDIT�
AUDITALLOW�
NEVERALLOW�
PERMISSIVE�
TYPEBOUNDS�TYPE_TRANSITION�TYPE_CHANGE�TYPE_MEMBER�RANGE_TRANSITION�ROLE_TRANSITION�
OPT_POLICY�	INTERFACE�TUNABLE_POLICY�GEN_REQ�TEMPLATE�GEN_CONTEXT�GEN_TUNABLE�IFELSE�IFDEF�IFNDEF�DEFINErrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrErDrF)5�moduleZ
policy_moduleZrequireZsidZgenfscon�fs_use_xattr�fs_use_trans�fs_use_taskZportconZnodeconZnetifconZpirqconZiomemconZ	ioportconZpcideviceconZ
devicetreecon�classZ
typeattributeZ
roleattribute�typeZ	attributeZattribute_role�aliasZ	typealias�bool�trueZfalse�if�else�role�typesZallow�	dontaudit�
auditallow�
neverallowZ
permissiveZ
typeboundsZtype_transition�type_change�type_memberZrange_transitionZrole_transitionZoptional_policy�	interfaceZtunable_policyZgen_require�templateZgen_contextZgen_tunableZifelseZifndef�ifdefZdefinez\`z\'z\{z\}z\;+z\:z\(z\)z\,z\-z\~z\*z\&z\|z\!z\=z[0-9\.]+z/[a-zA-Z0-9)_\.\*/\$]*z 	cCs|S)z2[a-fA-F0-9]{0,4}:[a-fA-F0-9]{0,4}:([a-fA-F0-9]|:)*���tr\r\�6/usr/lib/python3.9/site-packages/sepolgen/refparser.py�t_IPV6_ADDR�sr`cCs|jjd7_dS)zdnl.*\nrN��lexer�linenor]r\r\r_�t_m4comment�srdcCs|�d�dS)zdefine.*refpolicywarn\(.*\nrN)�skipr]r\r\r_�t_refpolicywarn1�srfcCs|jjd7_dS)zrefpolicywarn\(.*\nrNrar]r\r\r_�t_refpolicywarn�srgcCst�|jd�|_|S)z#[a-zA-Z_\$][a-zA-Z0-9_\-\+\.\$\*~]*r��reserved�get�valuerLr]r\r\r_�t_IDENTIFIERsrlcCst�|jd�|_|S)z"\"[a-zA-Z0-9_\-\+\.\$\*~ :\[\]]+\"rrhr]r\r\r_�
t_FILENAMEsrmcCs|jjd7_dS)z\#.*\nrNrar]r\r\r_�	t_comment
srncCs td|jd�|�d�dS)NzIllegal character '%s'rr)�printrkrer]r\r\r_�t_errorsrpcCs|jjt|j�7_dS)z\n+N)rbrc�lenrkr]r\r\r_�	t_newlinesrr�TcCsT|durdS|D]>}|durq||_|dur@|j�d||f�q|j�d|�qdS)Nr)�parent�children�insert)Zstmtsrt�val�sr\r\r_�collect/srycCs4|D]*}t�|�r$|�t�|��q|�|�qdS�N)�sptZhas_key�updateZby_name�add)Zidsrx�idr\r\r_�expand;s
rcCsNt|�dkr&|dr&tj�|d�n$t|�dkrJ|drJtj�|d�dS)z^statements : statement
                  | statements statement
                  | empty
    �rN)rq�mru�append��pr\r\r_�p_statementsCsr�cCs|d|d<dS)z�statement : interface
                 | template
                 | obj_perm_set
                 | policy
                 | policy_module_stmt
                 | module_stmt
    rrNr\r�r\r\r_�p_statementMsr�cCsdS)zempty :Nr\r�r\r\r_�p_emptyWsr�cCs.t��}|d|_|d|_d|_||d<dS)zHpolicy_module_stmt : POLICY_MODULE OPAREN IDENTIFIER COMMA NUMBER CPAREN��TrN�rZModuleDeclaration�name�version�r�r�r\r\r_�p_policy_module_stmtbs


r�cCs(t�|d�}t|d|�||d<dS)zainterface : INTERFACE OPAREN TICK IDENTIFIER SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN
    ��rN)r�	Interfacery�r��xr\r\r_�p_interfacejsr�cCs(t�|d�}t|d|�||d<dS)z�template : TEMPLATE OPAREN TICK IDENTIFIER SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN
                | DEFINE OPAREN TICK IDENTIFIER SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN
    r�r�rN)rZTemplateryr�r\r\r_�
p_templateqsr�cCsd|d<dS)z4define : DEFINE OPAREN TICK IDENTIFIER SQUOTE CPARENNrr\r�r\r\r_�p_defineysr�cCszt|�dkr"|dr"|d|d<nTt|�dkrv|dsL|drv|d|d<n*|dsb|d|d<n|d|d|d<dS)zlinterface_stmts : policy
                       | interface_stmts policy
                       | empty
    r�rrN�rqr�r\r\r_�p_interface_stmts�sr�cCsFt��}t|d|dd�t|�dkr8t|d|dd�|g|d<dS)	z�optional_policy : OPT_POLICY OPAREN TICK interface_stmts SQUOTE CPAREN
                       | OPT_POLICY OPAREN TICK interface_stmts SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN
    r�T�rw�r�FrN)rZOptionalPolicyryrq)r��or\r\r_�p_optional_policy�s
r�cCsPt��}|d|_t|d|dd�t|�dkrBt|d|dd�|g|d<d	S)
z�tunable_policy : TUNABLE_POLICY OPAREN TICK cond_expr SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN
                      | TUNABLE_POLICY OPAREN TICK cond_expr SQUOTE COMMA TICK interface_stmts SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN
    r�r�Tr���FrN)rZ
TunablePolicy�	cond_exprryrqr�r\r\r_�p_tunable_policy�s
r�cCsdS)a�ifelse : IFELSE OPAREN TICK IDENTIFIER SQUOTE COMMA COMMA TICK IDENTIFIER SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN optional_semi
              | IFELSE OPAREN TICK IDENTIFIER SQUOTE COMMA TICK IDENTIFIER SQUOTE COMMA TICK interface_stmts SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN optional_semi
              | IFELSE OPAREN TICK IDENTIFIER SQUOTE COMMA TICK SQUOTE COMMA TICK interface_stmts SQUOTE COMMA TICK interface_stmts SQUOTE CPAREN optional_semi
    Nr\r�r\r\r_�p_ifelse�sr�cCsbt�|d�}|ddkr d}nd}t|d||d�t|�dkrTt|d|dd�|g|d	<d
S)aJifdef : IFDEF OPAREN TICK IDENTIFIER SQUOTE COMMA TICK statements SQUOTE CPAREN optional_semi
             | IFNDEF OPAREN TICK IDENTIFIER SQUOTE COMMA TICK statements SQUOTE CPAREN optional_semi
             | IFDEF OPAREN TICK IDENTIFIER SQUOTE COMMA TICK statements SQUOTE COMMA TICK statements SQUOTE CPAREN optional_semi
    r�rr[TFr�r�r�rN)rZIfDefryrq)r�r��vr\r\r_�p_ifdef�sr�cCs8tj|dd�}t|�dkr,|j�|d�||d<dS)z�interface_call : IDENTIFIER OPAREN interface_call_param_list CPAREN
                      | IDENTIFIER OPAREN CPAREN
                      | IDENTIFIER OPAREN interface_call_param_list CPAREN SEMIr)Zifnamer�r�rN)rZ
InterfaceCallrq�args�extend)r��ir\r\r_�p_interface_call�sr�cCs6t|�dkr|d|d<n|dd|dg|d<dS)z�interface_call_param : IDENTIFIER
                            | IDENTIFIER MINUS IDENTIFIER
                            | nested_id_set
                            | TRUE
                            | FALSE
                            | FILENAME
    r�rr�-r�Nr�r�r\r\r_�p_interface_call_param�s
r�cCs6t|�dkr|dg|d<n|d|dg|d<dS)z�interface_call_param_list : interface_call_param
                                 | interface_call_param_list COMMA interface_call_param
    r�rrr�Nr�r�r\r\r_�p_interface_call_param_list�sr�cCs$t�|d�}|d|_||d<dS)zRobj_perm_set : DEFINE OPAREN TICK IDENTIFIER SQUOTE COMMA TICK names SQUOTE CPARENr�r�rN)rZ
ObjPermSet�perms�r�rxr\r\r_�p_obj_perm_set�s
r�cCs|d|d<dS)z�policy : policy_stmt
              | optional_policy
              | tunable_policy
              | ifdef
              | ifelse
              | conditional
    rrNr\r�r\r\r_�p_policy�sr�cCs|dr|dg|d<dS)a�policy_stmt : gen_require
                   | avrule_def
                   | typerule_def
                   | typebound_def
                   | typeattribute_def
                   | roleattribute_def
                   | interface_call
                   | role_def
                   | role_allow
                   | permissive
                   | type_def
                   | typealias_def
                   | attribute_def
                   | attribute_role_def
                   | range_transition_def
                   | role_transition_def
                   | bool
                   | gen_tunable
                   | define
                   | initial_sid
                   | genfscon
                   | fs_use
                   | portcon
                   | nodecon
                   | netifcon
                   | pirqcon
                   | iomemcon
                   | ioportcon
                   | pcidevicecon
                   | devicetreecon
    rrNr\r�r\r\r_�
p_policy_stmt�s r�cCs.t��}|d|_|d|_d|_||d<dS)z+module_stmt : MODULE IDENTIFIER NUMBER SEMIr�r�FrNr�r�r\r\r_�
p_module_stmts


r�cCsdS)zlgen_require : GEN_REQ OPAREN TICK requires SQUOTE CPAREN
                   | REQUIRE OBRACE requires CBRACENr\r�r\r\r_�
p_gen_require$sr�cCsdS)zsrequires : require
                | requires require
                | ifdef
                | requires ifdef
    Nr\r�r\r\r_�
p_requires,sr�cCsdS)z�require : TYPE comma_list SEMI
               | ROLE comma_list SEMI
               | ATTRIBUTE comma_list SEMI
               | ATTRIBUTE_ROLE comma_list SEMI
               | CLASS comma_list SEMI
               | BOOL comma_list SEMI
    Nr\r�r\r\r_�	p_require4sr�cCsHt��}|d|_|d|_|d|_t|�dkr<|d|_||d<dS)z�security_context : IDENTIFIER COLON IDENTIFIER COLON IDENTIFIER
                        | IDENTIFIER COLON IDENTIFIER COLON IDENTIFIER COLON mls_range_defrr�r��r�rN)rZSecurityContext�userrRrLrq�levelr�r\r\r_�p_security_context>s



r�cCs|d}|d|_||d<dS)zQgen_context : GEN_CONTEXT OPAREN security_context COMMA mls_range_def CPAREN
    r�r�rN)r�r�r\r\r_�
p_gen_contextKs
r�cCs|d|d<dS)z<context : security_context
               | gen_context
    rrNr\r�r\r\r_�	p_contextVsr�cCs(t��}|d|_|d|_||d<dS)z$initial_sid : SID IDENTIFIER contextr�r�rN)rZ
InitialSidr��contextr�r\r\r_�
p_initial_sid\s

r�cCs2t��}|d|_|d|_|d|_||d<dS)z+genfscon : GENFSCON IDENTIFIER PATH contextr�r�r�rN)rZGenfsCon�
filesystem�pathr�)r��gr\r\r_�
p_genfsconcs



r�cCsnt��}|ddkr tjj|_n.|ddkr8tjj|_n|ddkrNtjj|_|d|_|d|_||d<dS)	z�fs_use : FS_USE_XATTR IDENTIFIER context SEMI
              | FS_USE_TASK IDENTIFIER context SEMI
              | FS_USE_TRANS IDENTIFIER context SEMI
    rrHrJrIr�r�rN)rZ
FilesystemUseZXATTRrLZTASKZTRANSr�r�)r��fr\r\r_�p_fs_usems


r�cCs`t��}|d|_t|�dkr4|d|_|d|_n |dd|d|_|d|_||d<dS)zkportcon : PORTCON IDENTIFIER NUMBER context
               | PORTCON IDENTIFIER NUMBER MINUS NUMBER contextr�r�r�r�r�rN)rZPortConZ	port_typerqZport_numberr��r��cr\r\r_�	p_portcons


r�cCs2t��}|d|_|d|_|d|_||d<dS)zanodecon : NODECON NUMBER NUMBER context
               | NODECON IPV6_ADDR IPV6_ADDR context
    r�r�r�rN)rZNodeCon�start�endr��r��nr\r\r_�	p_nodecon�s



r�cCs2t��}|d|_|d|_|d|_||d<dS)z.netifcon : NETIFCON IDENTIFIER context contextr�r�r�rN)rZNetifConrYZinterface_contextZpacket_contextr�r\r\r_�
p_netifcon�s



r�cCs(t��}|d|_|d|_||d<dS)z pirqcon : PIRQCON NUMBER contextr�r�rN)rZPirqConZpirq_numberr�r�r\r\r_�	p_pirqcon�s

r�cCsVt��}t|�dkr*|d|_|d|_n |dd|d|_|d|_||d<dS)zYiomemcon : IOMEMCON NUMBER context
                | IOMEMCON NUMBER MINUS NUMBER contextr�r�r�r�rN)rZIomemConrqZ
device_memr�r�r\r\r_�
p_iomemcon�s

r�cCsVt��}t|�dkr*|d|_|d|_n |dd|d|_|d|_||d<dS)z\ioportcon : IOPORTCON NUMBER context
                | IOPORTCON NUMBER MINUS NUMBER contextr�r�r�r�rN)rZ	IoportConrqZioportr�r�r\r\r_�p_ioportcon�s

r�cCs(t��}|d|_|d|_||d<dS)z*pcidevicecon : PCIDEVICECON NUMBER contextr�r�rN)rZPciDeviceConZdevicer�r�r\r\r_�p_pcidevicecon�s

r�cCs(t��}|d|_|d|_||d<dS)z,devicetreecon : DEVICETREECON NUMBER contextr�r�rN)rZ
DevicetTeeConr�r�r�r\r\r_�p_devicetreecon�s

r�cCs4|d|d<t|�dkr0|dd|d|d<dS)z[mls_range_def : mls_level_def MINUS mls_level_def
                     | mls_level_def
    rrr�r�r�Nr�r�r\r\r_�p_mls_range_def�sr�cCs:|d|d<t|�dkr6|ddd�|d�|d<dS)zRmls_level_def : IDENTIFIER COLON comma_list
                     | IDENTIFIER
    rrr��:�,r�N)rq�joinr�r\r\r_�p_mls_level_def�sr�cCs�t�|d�}t|�dkrD|ddkr8|j�|d�qv|d|_n2t|�dkrv|d|_t|�dkrv|j�|d�||d<dS)	z�type_def : TYPE IDENTIFIER COMMA comma_list SEMI
                | TYPE IDENTIFIER SEMI
                | TYPE IDENTIFIER ALIAS names SEMI
                | TYPE IDENTIFIER ALIAS names COMMA comma_list SEMI
    r�r�r�r�r�r�rN)r�Typerq�
attributesr|�aliases�r�r^r\r\r_�
p_type_def�s
r�cCst�|d�}||d<dS)z)attribute_def : ATTRIBUTE IDENTIFIER SEMIr�rN)rZ	Attribute�r��ar\r\r_�p_attribute_def�sr�cCst�|d�}||d<dS)z3attribute_role_def : ATTRIBUTE_ROLE IDENTIFIER SEMIr�rN)rZAttribute_Roler�r\r\r_�p_attribute_role_def�sr�cCs(t��}|d|_|d|_||d<dS)z5typealias_def : TYPEALIAS IDENTIFIER ALIAS names SEMIr�r�rN)rZ	TypeAliasrLr�r�r\r\r_�p_typealias_def�s

r�cCs:t��}|d|_t|�dkr.|j�|d�||d<dS)zWrole_def : ROLE IDENTIFIER TYPES comma_list SEMI
                | ROLE IDENTIFIER SEMIr�r�rN)rZRolerRrqrSr|�r��rr\r\r_�
p_role_defs

r�cCs(t��}|d|_|d|_||d<dS)z#role_allow : ALLOW names names SEMIr�r�rN)rZ	RoleAllowZ	src_rolesZ	tgt_rolesr�r\r\r_�p_role_allows

r�cCsdS)z"permissive : PERMISSIVE names SEMINr\r�r\r\r_�p_permissivesr�cCs�t��}|ddkr tjj|_n.|ddkr8tjj|_n|ddkrNtjj|_|d|_|d|_|d|_|d|_	||d	<d
S)z�avrule_def : ALLOW names names COLON names names SEMI
                  | DONTAUDIT names names COLON names names SEMI
                  | AUDITALLOW names names COLON names names SEMI
                  | NEVERALLOW names names COLON names names SEMI
    rrTrUrVr�r�r�r�rN)
r�AVRuler2�	rule_typer3r4�	src_types�	tgt_types�obj_classesr�r�r\r\r_�p_avrule_defs




r�cCstt��}|ddkr tjj|_n|ddkr6tjj|_|d|_|d|_|d|_|d|_|d|_	||d	<d
S)a�typerule_def : TYPE_TRANSITION names names COLON names IDENTIFIER SEMI
                    | TYPE_TRANSITION names names COLON names IDENTIFIER FILENAME SEMI
                    | TYPE_TRANSITION names names COLON names IDENTIFIER IDENTIFIER SEMI
                    | TYPE_CHANGE names names COLON names IDENTIFIER SEMI
                    | TYPE_MEMBER names names COLON names IDENTIFIER SEMI
    rrWrXr�r�r�r�r�rN)
rZTypeRuler8r�r9r�r�r�Z	dest_type�	file_namer�r\r\r_�p_typerule_def-s





r�cCs.t��}|d|_|j�|d�||d<dS)z5typebound_def : TYPEBOUNDS IDENTIFIER comma_list SEMIr�r�rN)rZ	TypeBoundrLr�r|r�r\r\r_�p_typebound_def@s
r�cCs8t��}|d|_|ddkr&d|_nd|_||d<dS)zIbool : BOOL IDENTIFIER TRUE SEMI
            | BOOL IDENTIFIER FALSE SEMIr�r�rOTFrN�rZBoolr��state�r��br\r\r_�p_boolGs
r�cCs8t��}|d|_|ddkr&d|_nd|_||d<dS)z�gen_tunable : GEN_TUNABLE OPAREN TICK IDENTIFIER SQUOTE COMMA TRUE CPAREN
                   | GEN_TUNABLE OPAREN TICK IDENTIFIER SQUOTE COMMA FALSE CPARENr�r�rOTFrNr�r�r\r\r_�
p_gen_tunableRs
r�cCsPt��}|d|_t|d|dd�t|�dkrBt|d|dd�|g|d<d	S)
z� conditional : IF OPAREN cond_expr CPAREN OBRACE interface_stmts CBRACE
                    | IF OPAREN cond_expr CPAREN OBRACE interface_stmts CBRACE ELSE OBRACE interface_stmts CBRACE
    r�r�Tr�r��
FrN)rZConditionalr�ryrqr�r\r\r_�
p_conditional]s
r�cCs.t��}|d|_|j�|d�||d<dS)z<typeattribute_def : TYPEATTRIBUTE IDENTIFIER comma_list SEMIr�r�rN)rZ
TypeAttributerLr�r|r�r\r\r_�p_typeattribute_defhs
r�cCs.t��}|d|_|j�|d�||d<dS)z<roleattribute_def : ROLEATTRIBUTE IDENTIFIER comma_list SEMIr�r�rN)rZ
RoleAttributerRZroleattributesr|r�r\r\r_�p_roleattribute_defos
r�cCsdS)z�range_transition_def : RANGE_TRANSITION names names COLON names mls_range_def SEMI
                            | RANGE_TRANSITION names names names SEMINr\r�r\r\r_�p_range_transition_defvsr�cCsdS)z<role_transition_def : ROLE_TRANSITION names names names SEMINr\r�r\r\r_�p_role_transition_def{sr�cCsjt|�}|dkr |dg|d<nF|dkr@|dg|d|d<n&|d|d|dg|d|d<dS)acond_expr : IDENTIFIER
                 | EXPL cond_expr
                 | cond_expr AMP AMP cond_expr
                 | cond_expr BAR BAR cond_expr
                 | cond_expr EQUAL EQUAL cond_expr
                 | cond_expr EXPL EQUAL cond_expr
    r�rrr�r�Nr�)r��lr\r\r_�p_cond_exprsr�cCsrt��}t|�dkr$t|d|�nBt|�dkrFt|d|�d|_n t|dg�|�d|d�||d<dS)z�names : identifier
             | nested_id_set
             | asterisk
             | TILDE identifier
             | TILDE nested_id_set
             | IDENTIFIER MINUS IDENTIFIER
    r�rr�Tr�rN)rZIdSetrqrZ
complimentr}r�r\r\r_�p_names�sr�cCs|dg|d<dS)zidentifier : IDENTIFIERrrNr\r�r\r\r_�p_identifier�sr�cCs|dg|d<dS)zasterisk : ASTERISKrrNr\r�r\r\r_�
p_asterisk�sr�cCs|d|d<dS)z1nested_id_set : OBRACE nested_id_list CBRACE
    r�rNr\r�r\r\r_�p_nested_id_set�sr�cCs2t|�dkr|d|d<n|d|d|d<dS)z`nested_id_list : nested_id_element
                      | nested_id_list nested_id_element
    r�rrNr�r�r\r\r_�p_nested_id_list�sr�cCs4t|�dkr|d|d<nd|d}|g|d<dS)zxnested_id_element : identifier
                         | MINUS IDENTIFIER
                         | nested_id_set
    r�rrr�Nr�)r��strr\r\r_�p_nested_id_element�srcCs0t|�dkr |d|d|d<|d|d<dS)zTcomma_list : nested_id_list
                  | comma_list COMMA nested_id_list
    r�rr�rNr�r�r\r\r_�p_comma_list�srcCsdS)z/optional_semi : SEMI
                   | emptyNr\r�r\r\r_�p_optional_semi�srcCs&dt|j|j|jfatt�dadS)Nz(%s: Syntax error on line %d %s [type=%s]F)�
parse_filercrkrL�errorro�success)�tokr\r\r_�p_error�srcCs$|siSi}|D]}|||j<qdSrz)r�)r{�mapr�r\r\r_�prep_spt�s
r
cCsHtst��atjd|dd�a|dur*|ant��a|s@t��an|adS)NZLALRr)�method�debugZwrite_tables)	�parserrrbrr�r�Module�
SupportMacrosr{)rG�supportrr\r\r_�create_globals�s
rFc
Cs�t|||�dt_daztj||td�WnDtyn}z,dadadt|�dt�	�a
WYd}~n
d}~00ts�dadt
}t|��tS)NrT)rrbzinternal parser error: %s�
zcould not parse text: "%s")
rrbrcrr
�parse�	Exceptionr�	traceback�
format_excr�
ValueErrorr�)�textrGrr�e�msgr\r\r_rs.rc	Cs�g}d}t�|�D]�\}}}|D]~}tj�|�}tj�||�}|ddkr�|dkrX|}q�tt�d|d��r�|�|d|f�q |ddkr |�|d|f�q q||fS)Nrz.sptzobj_perm_sets.spt�patternsrz.if)	�os�walkr��splitextr�rq�re�findallr�)	�root�modules�support_macros�dirpath�dirnames�	filenamesr��modname�filenamer\r\r_�list_headerssr)cs0ddlm}t��}g}d}tj�|�r|tj�|�d}|dkrLtd|��tj�	|�}	|�
|	d|f�tt�
��\}
}nt|�\}}|r�|s�td���fdd��d��fd	d
�	}d}|�r&�d|�t��}|||�|j�
|�t�d�}
t�gd
��}|
j�
t�|��|j�
|
��d���rP��sP|jtjt|�d�}|�d�g}|D]�}t��}|d|_z*|�r�||d||�n||d|�WnRt�y�}z8�t|�d�|�
|d�WYd}~�qXWYd}~n
d}~00|j�
|���rX��sX|���qXt|��r,�dd�|��|S)Nr)�utilrszInvalid file name %srz1could not find support macros (obj_perm_sets.spt)cs�r��|�dSrz)�write)r)�outputr\r_r�Aszparse_headers.<locals>.oc
s��r�d|�z.t|�}|��}|��|at|||��Wn\tyd}zWYd}~dSd}~0ty�}z td|t|�f��WYd}~n
d}~00dS)Nzparsing file %s
zerror parsing file %s: %s)�open�read�closerr�IOErrorrr)r�rGr{�fdZtxtr)rr�r\r_rEsz!parse_headers.<locals>.parse_filezParsing support macros (%s): �can_exec)
z$1z$2�fileZexecute_no_transr-r.�getattr�lockZexecuteZioctlzdone.
)ZstepszParsing interface filesrz!failed to parse some headers: %s
z, )N)rsr*rZHeadersrr��isfile�splitrrr�r)r�headersrrur�rZAccessVectorr�ZConsoleProgressBar�sys�stdoutrqr�rr�r�stepr�)r!r,rrr*r8r"r#r�r'Zall_modulesrr{r2�av�statusZfailuresr�r�rr\)rr�r,r_�
parse_headers,s`



$
r>)N)NNF)NTF)wr9rrrrsrrrrr�tokensriZt_TICKZt_SQUOTEZt_OBRACEZt_CBRACEZt_SEMIZt_COLONZt_OPARENZt_CPARENZt_COMMAZt_MINUSZt_TILDEZ
t_ASTERISKZt_AMPZt_BARZt_EXPLZt_EQUALZt_NUMBERZt_PATHZt_ignorer`rdrfrgrlrmrnrprrr�rrr{rryrr�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�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�r�r�r�r�r�r�r�r�rrrrr
r
rbrrr)r>r\r\r\r_�<module> sT\�E







#


	

		



EliteHackz.ORG
Revonzy Mini Shell
root@revonzy.com

Linux 65-254-81-4.cprapid.com 5.14.0-284.11.1.el9_2.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 9 05:49:00 EDT 2023 x86_64
Apache
65.254.81.4