
    #h                     8    S SK r S SKJr  SSKJr   " S S5      rg)    N)contextmanager   )trimc                       \ rS rSrSS\4S jjrS rS rS rS r	\
SS	\S-  4S
 jj5       r\S 5       r\S 5       rSS\\   S-  4S jjrS rSrg)IndentPrintMixin   default_indentc                 T    Xl         S/U l        [        R                  " 5       U l        g )Nr   )r	   indent_stackioStringIOoutput_stream)selfr	   s     S/Users/user/Downloads/htwk/venv/lib/python3.13/site-packages/tatsu/mixins/indent.py__init__IndentPrintMixin.__init__   s     ,()s[[]    c                 6    U R                   R                  5       $ N)r   getvaluer   s    r   printed_textIndentPrintMixin.printed_text   s    !!**,,r   c                     U Vs/ s H  o3c  M  [        [        U5      5      PM     nnU R                  " U0 UD6nU R                  " U40 UD6  g s  snf r   )r   stras_printed_lines_do_print_lines)r   argskwargsargliness        r   printIndentPrintMixin.print   sN    *.B$3SX$B%%t6v6U-f- Cs
   AAc                 H    U R                   " U0 UD6nSR                  U5      $ )N
)r   join)r   r   r   r!   s       r   
as_printedIndentPrintMixin.as_printed   s&    %%t6v6yyr   c                 H    U R                   " U0 UD6nU R                  U5      $ r   )io_printindented_lines)r   r   r   texts       r   r   !IndentPrintMixin.as_printed_lines   s&    }}d-f-""4((r   Namountc              #     #    Ub  US:  d   eUc  U R                   nU R                  R                  XR                  S   -   5         S v   U R                  R                  5         g ! U R                  R                  5         f = f7f)Nr   )r	   r   appendpop)r   r.   s     r   indentIndentPrintMixin.indent   st     ~1,,>((F  *;*;B*?!?@	$!!#D!!#s   ABA' B'BBc                 &    SU R                   S   -  $ )N r0   )r   r   s    r   current_indentation$IndentPrintMixin.current_indentation)   s    T&&r***r   c                      UR                  SS 5        [        R                  " 5        n[        U SU0UD6  UR	                  5       sS S S 5        $ ! , (       d  f       g = f)Nfile)r2   r   r   r"   r   )r   r   outputs      r   r*   IndentPrintMixin.io_print-   sA    

64 [[]f4/f//??$ ]]s   A
Ar!   c                     U(       d  [        SSU R                  0UD6  g U H  n[        U4SU R                  0UD6  M     g )Nr:    )r"   r   )r   r!   r   lines       r   r    IndentPrintMixin._do_print_lines4   s@    4t))4V4D$:T//:6: r   c                     [        U5      nUR                  SS9 Vs/ s H   nU R                  U-   R                  5       PM"     sn$ s  snf )NF)keepends)r   
splitlinesr7   rstrip)r   r,   r?   s      r   r+   IndentPrintMixin.indented_lines<   sQ    Dz 7
7 %%,4467
 	
 
s   'A)r	   r   r   )   r   )__name__
__module____qualname____firstlineno__intr   r   r"   r'   r   r   r3   propertyr7   staticmethodr*   listr   r   r+   __static_attributes__r>   r   r   r   r      s    +s +
-.
 ) 	$S4Z 	$ 	$ + + % %;T#Y%5 ;
r   r   )r   
contextlibr   utilr   r   r>   r   r   <module>rR      s    	 % :
 :
r   