-í
ë¶<c       sÊ   d  Z  d k l Z l Z d „  Z d f  d „  ƒ  YZ d f  d „  ƒ  YZ d „  Z e d j oh d	 k	 Z	 d
 k l
 Z
 l Z xE e	 i d D]6 Z e GHe
 e ƒ Z e ƒ  Z e e e ƒ e i GHHqˆ Wn d	 S(   s   Parser for future statements

(   s   asts   walkc    s<   t  |  t i ƒ o d Sn |  i d j o d Sn d Sd S(   s:   Return true if statement is a well-formed future statementi    s
   __future__i   N(   s
   isinstances   stmts   asts   Froms   modname(   s   stmt(    (    s%   /usr/lib/python2.2/compiler/future.pys	   is_future s     s   FutureParserc      s;   t  Z d d d f Z d „  Z d „  Z d „  Z d „  Z RS(   Ns   nested_scopess
   generatorss   divisionc    s   h  |  _ d  S(   N(   s   selfs   found(   s   self(    (    s%   /usr/lib/python2.2/compiler/future.pys   __init__ s    c    s7   | i  } x' | i D] } |  i | ƒ o Pn q Wd  S(   N(   s   nodes   stmts   nodess   ss   selfs
   check_stmt(   s   selfs   nodes   ss   stmt(    (    s%   /usr/lib/python2.2/compiler/future.pys   visitModule s
    	
 c    sn   t  | ƒ oY xE | i D]: \ } } | |  i j o d |  i | <n t d | ‚ q Wd | _	 d Sn d Sd  S(   Ni   s    future feature %s is not definedi    (
   s	   is_futures   stmts   namess   names   asnames   selfs   featuress   founds   SyntaxErrors   valid_future(   s   selfs   stmts   names   asname(    (    s%   /usr/lib/python2.2/compiler/future.pys
   check_stmt s    
 	c    s   |  i i ƒ  Sd S(   s4   Return list of features enabled by future statementsN(   s   selfs   founds   keys(   s   self(    (    s%   /usr/lib/python2.2/compiler/future.pys   get_features) s     (   s   __name__s
   __module__s   featuress   __init__s   visitModules
   check_stmts   get_features(    (    (    s%   /usr/lib/python2.2/compiler/future.pys   FutureParser s
   			s   BadFutureParserc      s   t  Z d  Z d „  Z RS(   s#   Check for invalid future statementsc    s=   t  | d ƒ o d  Sn | i d j o d  Sn t d ‚ d  S(   Ns   valid_futures
   __future__s   invalid future statement(   s   hasattrs   nodes   modnames   SyntaxError(   s   selfs   node(    (    s%   /usr/lib/python2.2/compiler/future.pys	   visitFrom0 s
    (   s   __name__s
   __module__s   __doc__s	   visitFrom(    (    (    s%   /usr/lib/python2.2/compiler/future.pys   BadFutureParser- s    c    s:   t  ƒ  } t ƒ  } t |  | ƒ t |  | ƒ | i ƒ  Sd  S(   N(   s   FutureParsers   p1s   BadFutureParsers   p2s   walks   nodes   get_features(   s   nodes   p2s   p1(    (    s%   /usr/lib/python2.2/compiler/future.pys   find_futures7 s
    		s   __main__N(   s	   parseFiles   walki   (   s   __doc__s   compilers   asts   walks	   is_futures   FutureParsers   BadFutureParsers   find_futuress   __name__s   syss	   parseFiles   argvs   files   trees   vs   found(   s   asts   find_futuress   trees   walks   syss	   parseFiles   files   vs	   is_futures   FutureParsers   BadFutureParser(    (    s%   /usr/lib/python2.2/compiler/future.pys   ? s    		
		 	