ó
[³XMc           @   s¡   d  Z  d d l Z d d l Z d d l Z d d l Z d d d „  ƒ  YZ d d d „  ƒ  YZ d e f d „  ƒ  YZ e d	 „ Z d
 „  Z	 e
 d k r e	 ƒ  n  d S(   s"   
HTML rendering of Python source.
iÿÿÿÿNt   TokenPrinterc           B   s0   e  Z d \ Z Z d  Z Z d „  Z d „  Z RS(   i    i   c         C   s   | |  _  d  S(   N(   t   writer(   t   selfR   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/python/htmlizer.pyt   __init__   s    c   
      C   sY  | \ } } | \ } }	 |  j  | k  rU |  j d | |  j  ƒ | d |  _  |  _ n  |  j d | |  j ƒ |  j rˆ d } d |  _ nZ | t j k rÊ t j | ƒ r¯ d } qâ |  j rÁ d } qâ d } n t j	 j
 | ƒ j ƒ  } |  j | | ƒ |	 |  _ |  j  | j d ƒ 7_  |  j  | k r.d |  _ n  | d k |  _ | d k rUd |  _ n  d  S(   Ns   
i    t    t
   identifieri   t   keywordt	   parametert   variablet   deft   classt   :(   R	   R
   (   t   currentLineR   t
   currentColt   lastIdentifiert
   parameterst   tokenizet   NAMER   t	   iskeywordt   tok_namet   gett   lowert   count(
   R   t   typet   tokent   .3t   .4t   linet   srowt   scolt   erowt   ecol(    (    s;   /usr/lib/python2.7/dist-packages/twisted/python/htmlizer.pyt
   printtoken   s.    						(   i    i   (   t   __name__t
   __module__R   R   R   R   R   R    (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/python/htmlizer.pyR       s   
	t
   HTMLWriterc           B   s#   e  Z g  Z d  „  Z d d „ Z RS(   c         C   s2   | |  _  g  } t j |  j d | ƒ | |  _ d  S(   Nt   noSpan(   R   t   reflectt   accumulateClassListt	   __class__R$   (   R   R   R$   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/python/htmlizer.pyR   7   s    	c         C   sU   t  j | ƒ } | d  k s* | |  j k r: |  j | ƒ n |  j d | | f ƒ d  S(   Ns!   <span class="py-src-%s">%s</span>(   t   cgit   escapet   NoneR$   R   (   R   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/python/htmlizer.pyt   write=   s
    	N(   R!   R"   R$   R   R*   R+   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/python/htmlizer.pyR#   3   s   	t   SmallerHTMLWriterc           B   s&   e  Z d  Z d d d d d d g Z RS(   sd   HTMLWriter that doesn't generate spans for some junk.

    Results in much smaller HTML output.
    t	   endmarkert   indentt   dedentt   opt   newlinet   nl(   R!   R"   t   __doc__R$   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/python/htmlizer.pyR,   F   s   c         C   sg   | j  d ƒ t | | j  ƒ j  ƒ j } y t j |  j | ƒ Wn t j k
 rU n X| j  d ƒ d  S(   Ns   <pre>s   </pre>
(   R+   R    R    R   t   readlinet
   TokenError(   t   inpt   outR   t   printer(    (    s;   /usr/lib/python2.7/dist-packages/twisted/python/htmlizer.pyt   filterM   s    c          C   s-   d d  l  }  t t |  j d ƒ |  j ƒ d  S(   Niÿÿÿÿi   (   t   sysR9   t   opent   argvt   stdout(   R:   (    (    s;   /usr/lib/python2.7/dist-packages/twisted/python/htmlizer.pyt   mainV   s    t   __main__(    (    (   R3   R   R(   R   R%   R    R#   R,   R9   R>   R!   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/python/htmlizer.pyt   <module>   s   $'		