+
    	:i  c                   sP   ^ RI t RtRR/tRtRtRtRtRtR	tR
t	Rt
RtR tR t^RIHt ]P                  ! 4        R tR tR tR tR t^RIHt ]P*                  ! 4        ]! R4      t]P1                  4       t]P5                  4        RtRt]P:                  ! ]4      t]! ]4       R# )i    NDEFINEZdefinez\`z\'z\{z\}z\;z\(z\)z\,z 	
c                sP    \         P                  V P                  R4      V n        V # )z[a-zA-Z_][a-zA-Z0-9_]*NAME)reservedZgetvaluetypeZt   &8/usr/lib/python3.14/site-packages/sepolgen/classperms.pyt_NAMEr   .   s    \\!''&)AFH    c                 sn    \        R V P                  ^ ,          ,          4       V P                  ^4       R# )zIllegal character '%s'N)printr   Zskipr   r   r   t_errorr   3   s#    	
"QWWQZ
/0FF1Ir	   )lexc                s|    \        V 4      ^8X  d   V ^,          .V ^ &   R# V ^,          .V ^,          .,           V ^ &   R# )z2statements : define_stmt
| define_stmt statements
NZlenZpr   r   p_statementsr   :   s7     1v{!v!!v1!r	   c                s0    V ^,          V ^,          .V ^ &   R# )zOdefine_stmt : DEFINE OPAREN TICK NAME SQUOTE COMMA TICK list SQUOTE CPAREN
    N r   r   r   p_define_stmtr   C   s    
 aD!A$<AaDr	   c                sX    V ^,          R8X  d   V ^,          V ^ &   R# V ^,          .V ^ &   R# )z"list : NAME
| OBRACE names CBRACE
Z{Nr   r   r   r   p_listr   J   s+     	ts{t!!v!r	   c                sz    \        V 4      ^8X  d   V ^,          .V ^ &   R# V ^,          .V ^,          ,           V ^ &   R# )znames : NAME
| NAME names
Nr   r   r   r   p_namesr   S   s5     1v{!v!!v!}!r	   c                 sl    \        R V P                  V P                  V P                  3,          4       R# )z$Syntax error on line %d %s [type=%s]N)r
   Zlinenor   r   r   r   r   p_errorr   \   s#    	
0AHHaggqvv3N
NOr	   )yacczall_perms.sptz%define(`foo',`{ read write append }')a2  define(`all_filesystem_perms',`{ mount remount unmount getattr relabelfrom relabelto transition associate quotamod quotaget }')
define(`all_security_perms',`{ compute_av compute_create compute_member check_context load_policy compute_relabel compute_user setenforce setbool setsecparam setcheckreqprot }')
)
r    r   ZTICKZSQUOTEZOBRACEZCBRACEZSEMIZOPARENZCPARENZCOMMA) ZsysZtokensr   Zt_TICKZt_SQUOTEZt_OBRACEZt_CBRACEZt_SEMIZt_OPARENZt_CPARENZt_COMMAZt_ignorer   r   Z r   r   r   r   r   r   r   ZopenZfZreadZtxtZcloseZtestZtest2ZparseZresultr
   r   r	   r   <module>r      s   & 	
 x 
  	P  		 	ffh 	 /	 
C fr	   