ŗō
C3IHc        	   @   s   d  d k  l Z d  d k l Z d  d k l Z d  d k l Z d  d k l	 Z	 l
 Z
 d  d k Z d   Z d e f d	     YZ d S(
   i˙˙˙˙(   t   Check(   t   Warning(   t   BoolOpt(   t   symbols(   t	   parseFilet   walkNc         C   s.   x' |  i    D] } |  | _ t |  q Wd  S(   N(   t   getChildNodest   parentt   _parent_link(   t   nodet   c(    (    s,   C:\py\_spe\plugins\pychecker2\ParseChecks.pyR   	   s     	t
   ParseCheckc           B   s2   e  Z e d  d  Z d   Z d   Z d   Z RS(   s   Report/ignore syntax errorss   Unable to parse: %sc         C   s   d  |  _ d  S(   N(   t   Nonet   main(   t   self(    (    s,   C:\py\_spe\plugins\pychecker2\ParseChecks.pyt   __init__   s    c         C   s&   d } | i  t |  d | d   d  S(   Ns<   Ignore module-level code protected by __name__ == "__main__"R   i   (   t   addR   (   R   t   optionst   desc(    (    s,   C:\py\_spe\plugins\pychecker2\ParseChecks.pyt   get_options   s    c         C   sē  y/ t  | i  | _ t | i  d  | i _ Wnb t i j
 o& } | i d |  i	 | i
 d  n/ t j
 o" } | i d |  i	 | i  n X| i p d  Sn |  i px| i i i D]ķ } yŅ | i d \ } } | i d \ } } | d j o yB | i i d j o+ | i d j o | i i i i |  Pn Wqt j
 oE | i i d j o+ | i d j o | i i i i |  PqqXn WqĀ t t f j
 o qĀ XqĀ Wn t | i t i    i | _ | i | i | _ x) | i i   D] \ }	 }
 |	 i |
 _ qüWd | i _ x& | i i   D] \ } } | | _ q4Wx7 | i i   D]& } x | i   D] } | | _ qpWq]Wd  | i _ x  | i i   D] } h  | _  qŖWd  S(   Ni   i    s   ==t   __name__t   __main__(!   R   t   namet	   parseTreeR   R   R   t   parsert   ParserErrort   warningt   syntaxErrorst   argst   IOErrort   strerrorR   R	   t   nodest   testst   opst   exprt   valuet   removet   AttributeErrort
   IndexErrorR   R   t   SymbolVisitort   scopest
   root_scopet   itemst   linenot   valuest   get_childrent   imports(   R   t   filet   unused_checkert   detailt   nt   testt   codet
   comparisonR#   t   kt   vR	   t   scopet   sR
   (    (    s,   C:\py\_spe\plugins\pychecker2\ParseChecks.pyt   check   s^    !

 	     (   R   t
   __module__R   R   R   R   R:   (    (    (    s,   C:\py\_spe\plugins\pychecker2\ParseChecks.pyR      s
   			(   t   pychecker2.CheckR    t   pychecker2.WarningR   t   pychecker2.OptionsR   t
   pychecker2R   t   compilerR   R   R   R   R   (    (    (    s,   C:\py\_spe\plugins\pychecker2\ParseChecks.pys   <module>   s   	