3 Kl„f ã @sÎddlZd*Zd diZd ZdZdZdZdZdZdZ dZ dZ dd„Z dd„Z ddlmZejƒdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zdd&lmZejƒed'ƒZejƒZejƒd(Zd)ZejeƒZeeƒdS)+éNÚDEFINEÚNAMEÚTICKÚSQUOTEÚOBRACEÚCBRACEÚSEMIÚOPARENÚCPARENÚCOMMAZdefinez\`z\'z\{z\}z\;z\(z\)z\,z cCstj|jdƒ|_|S)z[a-zA-Z_][a-zA-Z0-9_]*r)ÚreservedÚgetÚvalueÚtype)Út©rú /usr/lib/python3.6/classperms.pyÚt_NAME.srcCs td|jdƒ|jdƒdS)NzIllegal character '%s'ré)ÚprintrÚskip)rrrrÚt_error3srr)ÚlexcCs8t|ƒdkr|dg|d<n|dg|dg|d<dS)zHstatements : define_stmt | define_stmt statements érrN)Úlen)ÚprrrÚ p_statements:s rcCs|d|dg|d<dS)zOdefine_stmt : DEFINE OPAREN TICK NAME SQUOTE COMMA TICK list SQUOTE CPAREN éérNr)rrrrÚ p_define_stmtCsrcCs,|ddkr|d|d<n|dg|d<dS)z2list : NAME | OBRACE names CBRACE rú{rrNr)rrrrÚp_listJs r!cCs6t|ƒdkr|dg|d<n|dg|d|d<dS)z+names : NAME | NAME names rrrN)r)rrrrÚp_namesSs r"cCstd|j|j|jfƒdS)Nz$Syntax error on line %d %s [type=%s])rÚlinenorr)rrrrÚp_error\sr$)Úyaccz all_perms.sptz%define(`foo',`{ read write append }')a2define(`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 }') ) rrrrrrrr r r ) ÚsysÚtokensr Zt_TICKZt_SQUOTEZt_OBRACEZt_CBRACEZt_SEMIZt_OPARENZt_CPARENZt_COMMAZt_ignorerrÚrrrr!r"r$r%ÚopenÚfÚreadZtxtÚcloseZtestZtest2ÚparseÚresultrrrrrÚsL