
    5h                     H    S r SSKrSSKJr  SSKJrJr  S/r " S S\5      rg)z
pygments.formatters.groff
~~~~~~~~~~~~~~~~~~~~~~~~~

Formatter for groff output.

:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
    N)	Formatter)get_bool_optget_int_optGroffFormatterc                   R    \ rS rSrSrSr/ SQr/ rS rS r	S r
S rS	 rS
 rS rSrg)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                     [         R                  " U 40 UD6  [        USS5      U l        [        USS5      U l        SU l        [        USS5      U l        SU l        0 U l	        U R                  5         g )N
monospacedTlinenosFr   wrap)r   __init__r   r   r   _linenor   r   _linelenstyles_make_styles)selfoptionss     d/var/www/html/cementerio_25MayoBackend/env/lib/python3.13/site-packages/pygments/formatters/groff.pyr   GroffFormatter.__init__-   sf    4+7+&wdC#GY>3	    c                    U R                   (       a  SOSnU R                   (       a  SOSnU R                   (       a  SOSnU R                   H  u  pES=pgUS   (       a  US	R                  US   5      -  nS
U-   nUS   (       a  Xb-  nX-   nUS   (       a  Xc-  nX-   nUS   (       a  USR                  US   5      -  nSU-   nXg4U R                  U'   M     g )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   GroffFormatter._make_styles:   s    #)H OOy"oo8::KEEG}))$w-88mF|mH~mI))$y/::m!&DKK &r   c                     [        5       nU R                   H!  u  p4US   c  M  UR                  US   5        M#     [        U5       H   nUR	                  SU-   S-   U-   S-   5        M"     g )Nr   z
.defcolor z rgb #
)setr    addsortedwrite)r   outfilecolors_r$   r   s         r   _define_colorsGroffFormatter._define_colorsQ   sc    zzGAG}(

4=) " F^EMM,.9EADHI $r   c                     U =R                   S-  sl         UR                  SU R                   S:g  =(       a    S=(       d    SU R                   4-  5        g )N   z%s% 4d r)   r   )r   r-   )r   r.   s     r   _write_linenoGroffFormatter._write_lineno[   s=    i4<<1#4#=#CT\\"RRSr   c                 *   [        UR                  S5      5      nU R                  (       a  SOSnSnX R                  :  a  [	        S[
        R                  " X R                  -  5      5       H7  nXU R                  -  XPR                  -  U R                  -    nXFS-   U-   -  nM9     X R                  -  nUS:  a  XAU* S-
  S  -  nXpl        U$ U R                  U-   U R                  :  a  SU-   U-   nX l        U$ UnU =R                  U-  sl        U$ )Nr)   z     r   r   r4   )lenrstripr   r   rangemathfloorr   )r   linelengthspacenewlineichunk	remainders           r   
_wrap_lineGroffFormatter._wrap_line`   s   T[[&'<<RII1djj)));<=tyy[99TYY)>?DL501 > *I1}
1.. )  ]]V#dii/e|t+G"M
  GMMV#Mr   c                    UR                  SS5      R                  SS5      R                  SS5      R                  SS5      R                  S	S
5      nUnU H  n[        U5      [        UR                  5       5      :w  d  M+  UR                  S5      R                  5       SS  R                  SS5      R	                  5       nUR                  USUSS  -   S-   5      nM     U$ )N\z\[u005C].z	\[char46]'z\[u0027]`z\[u0060]~z\[u007E]unicode_escaper4   xu00z\[u])replacer8   encodedecodeupper)r   textcopycharunis        r   _escape_charsGroffFormatter._escape_charsw   s    ||D+.GC.GD+.GC-GC-	 	
 D4yC..kk"23VXab"WS%(UW  ||D&3qr7*:S*@A  r   c           	      z   U R                  U5        UR                  S5        U R                  (       a  U R                  U5        U GH_  u  p4X0R                  ;  a  UR
                  nX0R                  ;  a  M  U R                  U   u  pVUR                  S5       GH  nU R                  S:  a  U R                  U5      nU(       aP  U(       aI  U R                  UR                  S5      5      nUS:w  a"  UR                  SR                  XXU45      5        O/UR                  U R                  UR                  S5      5      5        UR                  S5      (       d  M  U R                  (       a  U R                  U5        SU l        M  UR                  S5        SU l        GM	     GMb     UR                  S5        g )Nz.nf
\f[CR]
Tr   r)   r   z
.fi)r1   r-   r   r5   r   parent
splitlinesr   rD   rX   r9   joinendswithr   )	r   tokensourcer.   r#   valuer%   r&   r=   rT   s	            r   format_unencodedGroffFormatter.format_unencoded   sG   G$&'<<w''LE{{* {{*U+JE((.99q=??40DS--dkk$.?@DrzbgguC.@&ABMM$"4"4T[[5F"GH==&&||**73()d+()# / (0 	gr   )r   r   r   r   r   r   N)__name__
__module____qualname____firstlineno____doc__namealiases	filenamesr   r   r1   r5   rD   rX   ra   __static_attributes__ r   r   r   r      s=    , D&GI
,.JT
.& r   )	rg   r;   pygments.formatterr   pygments.utilr   r   __all__r   rl   r   r   <module>rp      s+     ( 3
XY Xr   