Ë
    æØjjÝ  ã                   óH   — d Z ddlZddlmZ ddlmZmZ dgZ G d„ de«      Zy)zÕ
    pygments.formatters.groff
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    Formatter for groff output.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Ú	Formatter)Úget_bool_optÚget_int_optÚGroffFormatterc                   óJ   — e Zd ZdZdZg d¢Zg Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zy)r   a  
    Format tokens with groff escapes to change their color and font style.

    .. versionadded:: 2.11

    Additional options accepted:

    `style`
        The style to use, can be a string or a Style subclass (default:
        ``'default'``).

    `monospaced`
        If set to true, monospace font will be used (default: ``true``).

    `linenos`
        If set to true, print the line numbers (default: ``false``).

    `wrap`
        Wrap lines to the specified number of characters. Disabled if set to 0
        (default: ``0``).
    Úgroff)r   ÚtroffÚroffc                 óæ   — t        j                  | fi |¤Ž t        |dd«      | _        t        |dd«      | _        d| _        t        |dd«      | _        d| _        i | _	        | j                  «        y )NÚ
monospacedTÚlinenosFr   Úwrap)r   Ú__init__r   r   r   Ú_linenor   r   Ú_linelenÚstylesÚ_make_styles)ÚselfÚoptionss     ú[/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pygments/formatters/groff.pyr   zGroffFormatter.__init__-   sf   € Ü×Ñ˜4Ñ+ 7Ò+ä& w°¸dÓCˆŒÜ# G¨Y¸Ó>ˆŒØˆŒÜ ¨°Ó3ˆŒ	ØˆŒàˆŒØ×ÑÕó    c                 óv  — | j                   rdnd}| j                   rdnd}| j                   rdnd}| j                  D ]z  \  }}dx}}|d   r|d	j                  |d   «      z  }d
|z   }|d   r
||z  }||z   }|d   r
||z  }||z   }|d   r|dj                  |d   «      z  }d|z   }||f| j                  |<   Œ| y )Nz\f[CR]z\f[R]z\f[CB]z\f[B]z\f[CI]z\f[I]Ú Úcolorz\m[{}]z\m[]ÚboldÚitalicÚbgcolorz\M[{}]z\M[])r   ÚstyleÚformatr   )r   Úregularr   r   ÚttypeÚndefÚstartÚends           r   r   zGroffFormatter._make_styles:   sà   € Ø#Ÿš‘)°HˆØ ŸOšO‰y°ˆØ"Ÿošo‘°8ˆàŸ:™:ò 	,‰KˆE�4ØÐˆE�CØ�GŠ}Ø˜×)Ñ)¨$¨w©-Ó8Ñ8�Ø ‘m�Ø�FŠ|Ø˜‘�Ø ‘m�Ø�HŠ~Ø˜‘�Ø ‘m�Ø�IŠØ˜×)Ñ)¨$¨y©/Ó:Ñ:�Ø ‘m�à!&¨ ˆD�K‰K˜Òñ	,r   c                 óÎ   — t        «       }| j                  D ]  \  }}|d   €Œ|j                  |d   «       Œ! t        |«      D ]  }|j	                  d|z   dz   |z   dz   «       Œ! y )Nr   z
.defcolor z rgb #ú
)Úsetr   ÚaddÚsortedÚwrite)r   ÚoutfileÚcolorsÚ_r"   r   s         r   Ú_define_colorszGroffFormatter._define_colorsQ   sq   € Ü“ˆØ—z‘zò 	*‰GˆAˆtØ�G‰}Ñ(Ø—
‘
˜4 ™=Õ)ð	*ô ˜F“^ò 	JˆEØ�M‰M˜,¨Ñ.°Ñ9¸EÑAÀDÑHÕIñ	Jr   c                 ó˜   — | xj                   dz  c_         |j                  d| j                   dk7  xr dxs d| j                   fz  «       y )Né   z%s% 4d r&   r   )r   r*   )r   r+   s     r   Ú_write_linenozGroffFormatter._write_lineno[   s=   € Ø�Š˜Ñ�Ø�‰�i 4§<¡<°1Ñ#4Ò#=¸Ò#CÀÀTÇ\Á\Ð"RÑRÕSr   c                 ó&  — t        |j                  d«      «      }| j                  rdnd}d}|| j                  kD  r‘t	        dt        j                  || j                  z  «      «      D ]9  }||| j                  z  || j                  z  | j                  z    }||dz   |z   z  }Œ; || j                  z  }|dkD  r||| dz
  d  z  }|| _        |S | j                  |z   | j                  kD  rd|z   |z   }|| _        |S |}| xj                  |z  c_        |S )Nr&   z     r   r   r0   )ÚlenÚrstripr   r   ÚrangeÚmathÚfloorr   )r   ÚlineÚlengthÚspaceÚnewlineÚiÚchunkÚ	remainders           r   Ú
_wrap_linezGroffFormatter._wrap_line`   s  € Ü�T—[‘[ Ó&Ó'ˆØŸ<š<‘¨RˆØˆà�D—I‘IÒÜ˜1œdŸj™j¨°$·)±)Ñ);Ó<Ó=ò 2�Ø˜Q˜tŸy™y™[¨¨4¯9©9©°T·Y±YÑ)>Ð?�Ø˜E D™L¨5Ñ0Ñ1‘ð2ð  §¡Ñ*ˆIØ˜1Š}Ø˜4  
¨1¡ Ð.Ñ.�Ø )�”ð ˆð �]‰]˜VÑ# d§i¡iÒ/Ø˜e‘| tÑ+ˆGØ"ˆDŒMð
 ˆð ˆGØ�MŠM˜VÑ#�Màˆr   c                 ó¾  — |j                  dd«      j                  dd«      j                  dd«      j                  dd«      j                  d	d
«      }|}|D ]ƒ  }t        |«      t        |j                  «       «      k7  sŒ)|j                  d«      j                  «       dd  j                  dd«      j	                  «       }|j                  |d|dd  z   dz   «      }Œ… |S )Nú\z\[u005C]ú.z	\[char46]ú'z\[u0027]ú`z\[u0060]ú~z\[u007E]Úunicode_escaper0   ÚxÚu00z\[uú])Úreplacer3   ÚencodeÚdecodeÚupper)r   ÚtextÚcopyÚcharÚunis        r   Ú_escape_charszGroffFormatter._escape_charsw   sÒ   € Ø�|‰|˜D +Ó.ß‘G˜C Ó.ß‘G˜D +Ó.ß‘G˜C Ó-ß‘G˜C Ó-ð	 	ð
 ˆàò 	BˆDÜ�4‹yœC §¡£Ó.Ó.Ø—k‘kÐ"2Ó3ß‘V“X˜a˜bð"ç‘W˜S %Ó(ß‘U“Wð ð —|‘| D¨&°3°q°r°7Ñ*:¸SÑ*@ÓA‘ð	Bð ˆr   c           	      ó4  — | j                  |«       |j                  d«       | j                  r| j                  |«       |D �]B  \  }}|| j                  vr|j
                  }|| j                  vrŒ| j                  |   \  }}|j                  d«      D ]í  }| j                  dkD  r| j                  |«      }|rK|rI| j                  |j                  d«      «      }|dk7  rS|j                  dj                  |||f«      «       n/|j                  | j                  |j                  d«      «      «       |j                  d«      sŒ±| j                  r| j                  |«       d| _        ŒÖ|j                  d«       d| _        Œï �ŒE |j                  d«       y )Nz.nf
\f[CR]
Tr   r&   r   z
.fi)r.   r*   r   r1   r   ÚparentÚ
splitlinesr   r?   rR   r4   ÚjoinÚendswithr   )	r   Útokensourcer+   r!   Úvaluer#   r$   r8   rN   s	            r   Úformat_unencodedzGroffFormatter.format_unencodedŠ   sW  € Ø×Ñ˜GÔ$à�‰Ð&Ô'à�<Š<Ø×Ñ˜wÔ'à'ó 	*‰LˆE�5Ø˜tŸ{™{Ñ*ØŸ™�ð ˜tŸ{™{Ò*àŸ™ UÑ+‰JˆE�3à×(Ñ(¨Ó.ò *�Ø—9‘9˜q’=ØŸ?™?¨4Ó0�Dá™SØ×-Ñ-¨d¯k©k¸$Ó.?Ó@�DØ˜r’zØŸ™ b§g¡g¨u°d¸CÐ.@Ó&AÕBà—M‘M $×"4Ñ"4°T·[±[ÀÓ5FÓ"GÔHà—=‘= Õ&Ø—|’|Ø×*Ñ*¨7Ô3Ø()˜�àŸ™ dÔ+Ø()˜�ò#*ð	*ð0 	�‰�gÕr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesr   r   r.   r1   r?   rR   rZ   © r   r   r   r      s=   „ ñð, €DÚ&€GØ€Iò
ò,ò.JòTò
ò.ó& r   )	r^   r6   Úpygments.formatterr   Úpygments.utilr   r   Ú__all__r   rb   r   r   ú<module>rf      s+   ðñó Ý (ß 3àÐ
€ôX�Yõ Xr   