-í
ë¶<c       s     d  Z    d k l Z l Z  d „  Z  d f  d „  ƒ  YZ - d f  d „  ƒ  YZ 7 d „  Z > e d j o† ? d	 k	 Z	 @ d
 k l
 Z
 l Z B xZ e	 i d DB ]H Z C e GHD e
 e ƒ Z E e ƒ  Z F e e e ƒ G e i GHH Hq© Wn d	 S(   s   Parser for future statements

(   s   asts   walkc    sQ     	 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      sM    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    sI     | i  }  x0 | 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    sŒ     t  | ƒ on  xQ | i D ]C \ } }   | |  i j o ! d |  i | <n # t d | ‚ q  W% d | _	 & 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 . 0 d „  Z RS(   s#   Check for invalid future statementsc    sO   0 1 t  | d ƒ o 2 d  Sn 3 | i d j o 4 d  Sn 5 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    sL   7 8 t  ƒ  } 9 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    	
 	