³ò
5ÒÇIc        
   @   s   d  d g Z  d d k Td d k Td d k Z d e f d „  ƒ  YZ d  e f d „  ƒ  YZ d e f d „  ƒ  YZ e i	 d	 e i
 d
 e i ƒ e d ƒ ƒ e i	 d e i
 d e i ƒ e d ƒ ƒ e i	 d e i
 d e i ƒ e d ƒ ƒ e i	 d e i
 d ƒ d g ƒ e i	 d e i
 d e i ƒ d d d d g ƒ e i	 d e i
 d e i ƒ e d ƒ ƒ e i	 d e i
 d ƒ d  g ƒ e i	 d! e i
 d" ƒ e d# ƒ ƒ d S($   t   BaseResolvert   Resolveriÿÿÿÿ(   t   *Nt   ResolverErrorc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s#   /p/zhu/06/nlp/nltk/yaml/resolver.pyR   	   s   c           B   s€   e  Z d  Z d Z d Z h  Z h  Z d „  Z d „  Z e	 e ƒ Z e
 d „ Z e	 e ƒ Z d „  Z d „  Z d „  Z d	 „  Z RS(
   u   tag:yaml.org,2002:stru   tag:yaml.org,2002:sequ   tag:yaml.org,2002:mapc         C   s   g  |  _  g  |  _ d  S(   N(   t   resolver_exact_pathst   resolver_prefix_paths(   t   self(    (    s#   /p/zhu/06/nlp/nltk/yaml/resolver.pyt   __init__   s    	c         C   sw   d |  i  j o |  i i ƒ  |  _ n | d  j o d  g } n x0 | D]( } |  i i | g  ƒ i | | f ƒ qG Wd  S(   Nt   yaml_implicit_resolvers(   t   __dict__R
   t   copyt   Nonet
   setdefaultt   append(   t   clst   tagt   regexpt   firstt   ch(    (    s#   /p/zhu/06/nlp/nltk/yaml/resolver.pyt   add_implicit_resolver   s     c         C   s.  d |  i  j o |  i i ƒ  |  _ n g  } xf| D]^} t | t t f ƒ o^ t | ƒ d j o | \ } } q¹ t | ƒ d j o | d } t } q¹ t d | ƒ ‚ n d  } | } | t
 j o
 t } nw | t j o
 t } n` | t j o
 t } nI | t t t g j o2 t | t ƒ o! | d  j	 o t d | ƒ ‚ n t | t t f ƒ o! | d  j	 o t d | ƒ ‚ n | i | | f ƒ q3 W| t
 j o
 t } nf | t j o
 t } nO | t j o
 t } n8 | t t t g j o! | d  j	 o t d | ƒ ‚ n | |  i t | ƒ | f <d  S(	   Nt   yaml_path_resolversi   i   i    s   Invalid path element: %ss   Invalid node checker: %ss   Invalid index checker: %ss   Invalid node kind: %s(   R   R   R   t
   isinstancet   listt   tuplet   lent   TrueR   R   t   strt
   ScalarNodet   SequenceNodet   dictt   MappingNodet
   basestringt   intR   (   R   R   t   patht   kindt   new_patht   elementt
   node_checkt   index_check(    (    s#   /p/zhu/06/nlp/nltk/yaml/resolver.pyt   add_path_resolver"   sL     







c         C   s*  |  i  p d  Sn h  } g  } | o’ t |  i ƒ } xÏ |  i d D]m \ } } |  i | | | | | ƒ oE t | ƒ | j o | i | | f ƒ q¯ |  i  | | f | | <qB qB WnP xL |  i  D]A \ } } | p |  i  | | f | | <qÁ | i | | f ƒ qÁ W|  i i | ƒ |  i i | ƒ d  S(   Niÿÿÿÿ(   R   R   R   t   check_resolver_prefixR   R   (   R   t   current_nodet   current_indext   exact_pathst   prefix_pathst   depthR#   R$   (    (    s#   /p/zhu/06/nlp/nltk/yaml/resolver.pyt   descend_resolverL   s(    
 #
 c         C   s0   |  i  p d  Sn |  i i ƒ  |  i i ƒ  d  S(   N(   R   R   t   popR   (   R   (    (    s#   /p/zhu/06/nlp/nltk/yaml/resolver.pyt   ascend_resolverc   s    
c         C   s  | | d \ } } t  | t ƒ o | i | j o d  Sqi n* | d  j	 o t  | | ƒ p d  Sqi n | t j o | d  j	 o d  Sn | t d  g j o | d  j o d  Sn t  | t ƒ o, t  | t ƒ o | | i j p d  Sqn* t  | t ƒ o | | j o d  Sqn t S(   Ni   (	   R   R!   R   R   R   t   FalseR   t   valueR"   (   R   R/   R#   R$   R+   R,   R'   R(   (    (    s#   /p/zhu/06/nlp/nltk/yaml/resolver.pyR*   i   s&     c         C   sF  | t  j o  | d o• | d j o |  i i d g  ƒ } n |  i i | d g  ƒ } | |  i i d  g  ƒ 7} x, | D]$ \ } } | i | ƒ o | Sqw qw W| d } n |  i oC |  i d } | | j o | | Sn d  | j o | d  Sqú n | t  j o |  i Sn1 | t j o |  i	 Sn | t
 j o |  i Sn d  S(   Ni    u    i   iÿÿÿÿ(   R   R
   t   getR   t   matchR   R   t   DEFAULT_SCALAR_TAGR   t   DEFAULT_SEQUENCE_TAGR    t   DEFAULT_MAPPING_TAG(   R   R$   R4   t   implicitt	   resolversR   R   R-   (    (    s#   /p/zhu/06/nlp/nltk/yaml/resolver.pyt   resolve   s,     
(   R   R   R7   R8   R9   R
   R   R	   R   t   classmethodR   R)   R0   R2   R*   R<   (    (    (    s#   /p/zhu/06/nlp/nltk/yaml/resolver.pyR       s   		(			c           B   s   e  Z RS(    (   R   R   (    (    (    s#   /p/zhu/06/nlp/nltk/yaml/resolver.pyR   —   s   u   tag:yaml.org,2002:booluz   ^(?:yes|Yes|YES|no|No|NO
                    |true|True|TRUE|false|False|FALSE
                    |on|On|ON|off|Off|OFF)$u
   yYnNtTfFoOu   tag:yaml.org,2002:floatuÌ   ^(?:[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*(?:[eE][-+][0-9]+)?
                    |[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*
                    |[-+]?\.(?:inf|Inf|INF)
                    |\.(?:nan|NaN|NAN))$u   -+0123456789.u   tag:yaml.org,2002:intuÆ   ^(?:[-+]?0b[0-1_]+
                    |[-+]?0[0-7_]+
                    |[-+]?(?:0|[1-9][0-9_]*)
                    |[-+]?0x[0-9a-fA-F_]+
                    |[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$u   -+0123456789u   tag:yaml.org,2002:mergeu   ^(?:<<)$t   <u   tag:yaml.org,2002:nulluC   ^(?: ~
                    |null|Null|NULL
                    | )$u   ~u   nu   Nu    u   tag:yaml.org,2002:timestampu%  ^(?:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
                    |[0-9][0-9][0-9][0-9] -[0-9][0-9]? -[0-9][0-9]?
                     (?:[Tt]|[ \t]+)[0-9][0-9]?
                     :[0-9][0-9] :[0-9][0-9] (?:\.[0-9]*)?
                     (?:[ \t]*(?:Z|[-+][0-9][0-9]?(?::[0-9][0-9])?))?)$u
   0123456789u   tag:yaml.org,2002:valueu   ^(?:=)$t   =u   tag:yaml.org,2002:yamlu   ^(?:!|&|\*)$u   !&*(   t   __all__t   errort   nodest   ret	   YAMLErrorR   t   objectR    R   R   t   compilet   XR   (    (    (    s#   /p/zhu/06/nlp/nltk/yaml/resolver.pys   <module>   sV   

‹

