File: //proc/self/root/usr/lib64/python2.7/Tools/scripts/nm2def.pyc
�
{�fc           @   s�   d  Z  d d l Z d d l Z d e j d  d Z d e j d e j d d	 Z d
 Z e d d � Z d �  Z d Z	 d Z
 e
 d � Z d �  Z e
 d k r� e �  n  d S(   sE  nm2def.py
Helpers to extract symbols from Unix libs and auto-generate
Windows definition files from them. Depends on nm(1). Tested
on Linux and Solaris only (-p option to nm is for Solaris only).
By Marc-Andre Lemburg, Aug 1998.
Additional notes: the output of nm is supposed to look like this:
acceler.o:
000001fd T PyGrammar_AddAccelerators
         U PyGrammar_FindDFA
00000237 T PyGrammar_RemoveAccelerators
         U _IO_stderr_
         U exit
         U fprintf
         U free
         U malloc
         U printf
grammar1.o:
00000000 T PyGrammar_FindDFA
00000034 T PyGrammar_LabelRepr
         U _PyParser_TokenNames
         U abort
         U printf
         U sprintf
...
Even if this isn't the default output of your nm, there is generally an
option to produce this format (since it is the original v7 Unix format).
i����Nt	   libpythoni   s   .at   Pythoni    i   s   .dlls   nm -p -g %st   Tt   Ct   Dc   
      C   s�   t  j t |  � j �  } g  | D] } | j �  ^ q  } i  } x� | D] } t | � d k sE d | k ro qE n  | j �  } t | � d k r� qE n  | \ } } }	 | | k r� qE n  | | f | |	 <qE W| S(   Ni    t   :i   (   t   ost   popent   NMt	   readlinest   stript   lent   split(
   t   libt   typest   linest   st   symbolst   linet   itemst   addresst   typet   name(    (    s,   /usr/lib64/python2.7/Tools/scripts/nm2def.pyR   +   s    
c         C   s�   g  } g  } xQ |  j  �  D]C \ } \ } } | d k rK | j d | � q | j d | � q W| j �  | j d � | j �  d j | � d d j | � S(   NR   R   s   	t    s    DATA
s   
(   R   R   (   R   t   appendt   sortt   join(   R   t   datat   codeR   t   addrR   (    (    s,   /usr/lib64/python2.7/Tools/scripts/nm2def.pyt   export_list<