� x��fc @ s_ d Z d d l Z d d l Z d Z e j e � Z d � Z d � Z e d k r[ e � n d S( s� Create a TAGS file for Python programs, usable with GNU Emacs. usage: eptags pyfiles... The output TAGS file is usable with Emacs version 18, 19, 20. Tagged are: - functions (even inside other defs or classes) - classes eptags warns about files it cannot open. eptags will not give warnings about duplicate tags. BUGS: Because of tag duplication (methods with the same name in different classes), TAGS files are not very useful for most object-oriented python projects. i����Ns; ^[ \t]*(def|class)[ \t]+([a-zA-Z_][a-zA-Z0-9_]*)[ \t]*[:\(]c C s y t | d � } Wn t j j d | � d SXd } d } g } d } x� | j � } | sc Pn | d } t j | � } | r� | j d � d | | f } | j | � | t | � } n | t | � } qM | j d | | f � x | D] } | j | � q� Wd S( sC Append tags found in file named 'filename' to the open file 'outfp't rs Cannot open %s Ni i s %d,%d s %s,%d ( t opent syst stderrt writet readlinet matchert searcht groupt appendt len( t filenamet outfpt fpt charnot linenot tagst sizet linet mt tag( ( s, /usr/lib64/python2.7/Tools/scripts/eptags.pyt treat_file s. c C s8 t d d � } x"