ó
â„^c        
   @   s  d  d l  Z  d# Z i d d 6Z d Z d Z d Z d Z d Z d Z d Z	 d Z
 d Z d „  Z d „  Z d d l m Z e j ƒ  d „  Z d „  Z d „  Z d „  Z d „  Z d d l m Z e j ƒ  e d  ƒ Z e j ƒ  Z e j ƒ  d! Z d" Z e j e ƒ Z e GHd S($   iÿÿÿÿNt   DEFINEt   NAMEt   TICKt   SQUOTEt   OBRACEt   CBRACEt   SEMIt   OPARENt   CPARENt   COMMAt   defines   \`s   \'s   \{s   \}s   \;s   \(s   \)s   \,s    	
c         C   s   t  j |  j d ƒ |  _ |  S(   s   [a-zA-Z_][a-zA-Z0-9_]*R   (   t   reservedt   gett   valuet   type(   t   t(    (    s9   /usr/lib64/python2.7/site-packages/sepolgen/classperms.pyt   t_NAME.   s    c         C   s!   d |  j  d GH|  j d ƒ d  S(   Ns   Illegal character '%s'i    i   (   R   t   skip(   R   (    (    s9   /usr/lib64/python2.7/site-packages/sepolgen/classperms.pyt   t_error3   s    i   (   t   lexc         C   sF   t  |  ƒ d k r& |  d g |  d <n |  d g |  d g |  d <d S(   sH   statements : define_stmt
                  | define_stmt statements
    i   i   i    N(   t   len(   t   p(    (    s9   /usr/lib64/python2.7/site-packages/sepolgen/classperms.pyt   p_statements:   s    c         C   s   |  d |  d g |  d <d S(   sO   define_stmt : DEFINE OPAREN TICK NAME SQUOTE COMMA TICK list SQUOTE CPAREN
    i   i   i    N(    (   R   (    (    s9   /usr/lib64/python2.7/site-packages/sepolgen/classperms.pyt   p_define_stmtC   s    c         C   s6   |  d d k r! |  d |  d <n |  d g |  d <d S(   s2   list : NAME
            | OBRACE names CBRACE
    i   t   {i   i    N(    (   R   (    (    s9   /usr/lib64/python2.7/site-packages/sepolgen/classperms.pyt   p_listJ   s    c         C   sC   t  |  ƒ d k r& |  d g |  d <n |  d g |  d |  d <d S(   s+   names : NAME
             | NAME names
    i   i   i    N(   R   (   R   (    (    s9   /usr/lib64/python2.7/site-packages/sepolgen/classperms.pyt   p_namesS   s    c         C   s   d |  j  |  j |  j f GHd  S(   Ns$   Syntax error on line %d %s [type=%s](   t   linenoR   R   (   R   (    (    s9   /usr/lib64/python2.7/site-packages/sepolgen/classperms.pyt   p_error\   s    (   t   yaccs   all_perms.spts%   define(`foo',`{ read write append }')s2  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    s   NAMER   R   R   R   R   R   R   R	   (   t   syst   tokensR   t   t_TICKt   t_SQUOTEt   t_OBRACEt   t_CBRACEt   t_SEMIt   t_OPARENt   t_CPARENt   t_COMMAt   t_ignoreR   R   t    R   R   R   R   R   R   R   t   opent   ft   readt   txtt   closet   testt   test2t   parset   result(    (    (    s9   /usr/lib64/python2.7/site-packages/sepolgen/classperms.pyt   <module>   sN            
		
								

	