o
    NiI                     @   sL   d Z ddlZddlZG dd dejjZG dd deZG dd deZdS )	z.

Additional support for Pygments formatter.

    Nc                   @   s   e Zd Zdd ZdddZdS )OdtPygmentsFormatterc                 C   s   t jj|  || _|| _d S N)pygments	formatter	Formatter__init__rststyle_functionescape_function)selfr   r	    r   ^/home/ubuntu/.local/lib/python3.10/site-packages/docutils/writers/odf_odt/pygmentsformatter.pyr      s   
zOdtPygmentsFormatter.__init__r   c                 C   s   |  ||S r   )r   )r
   name
parametersr   r   r   rststyle   s   zOdtPygmentsFormatter.rststyleN)r   )__name__
__module____qualname__r   r   r   r   r   r   r      s    r   c                   @      e Zd Zdd ZdS )OdtPygmentsProgFormatterc                 C   sv  t jj}|D ]\}}| |}||jkr | d}d||f }n||jjkr2| d}d||f }n||jjj	|jjj	j
|jjj|jjj|jjj|jjfv rZ| d}d||f }nY||jkrk| d}d||f }nH||jkr|| d}d||f }n7||jjkr| d}d||f }n%||jjkr| d}d||f }n||jkr| d	}d||f }n|}|| qd S )
Ncodeblock-keyword.<text:span text:style-name="%s">%s</text:span>codeblock-stringzcodeblock-numbercodeblock-operatorcodeblock-commentzcodeblock-classnamezcodeblock-functionnamecodeblock-name)r   tokenTokenr	   Keywordr   LiteralStringNumberIntegerLongFloatHexOctOperatorCommentNameClassFunctionwriter
   tokensourceoutfile
tokenclassttypevalues2s1r   r   r   format   sj   













zOdtPygmentsProgFormatter.formatNr   r   r   r4   r   r   r   r   r          r   c                   @   r   )OdtPygmentsLaTeXFormatterc                 C   s  t jj}|D ]\}}| |}||jkr | d}d||f }nd||jj|jjjfv r7| d}d||f }nM||j	j
krI| d}d||f }n;||jkrp|d dkrd| d}d||d d f }n | d}d||f }n||j	jkr| d	}d||f }n|}|| qd S )
Nr   r   r   r   
r   z/<text:span text:style-name="%s">%s</text:span>
r   )r   r   r   r	   r   r   r   r   Backtickr(   	Attributer'   Builtinr+   r,   r   r   r   r4   L   sL   








z OdtPygmentsLaTeXFormatter.formatNr5   r   r   r   r   r7   K   r6   r7   )__doc__r   pygments.formatterr   r   r   r   r7   r   r   r   r   <module>   s   
1