
    #h              	           S SK r S SKJr  SSKJrJr  SSKJr  SSKJ	r	J
r
  SSKJr  Sr\" S	S
S/5      rS\R                  4S\R                   S\S\S-  S\4S jjr " S S\5      rg)    N)
namedtuple   )grammarsobjectmodel)IndentPrintMixin)compress_seq	safe_name)topsorta      #!/usr/bin/env python3

    # WARNING: CAVEAT UTILITOR
    #
    # This file was automatically generated by TatSu.
    #
    #    https://pypi.python.org/pypi/tatsu/
    #
    # Any changes you make to it will be overwritten the next time
    # the file is generated.

    from __future__ import annotations

    from typing import Any
    from dataclasses import dataclass

    from tatsu.semantics import ModelBuilderSemantics
    {base_type_import}


    class {name}ModelBuilderSemantics(ModelBuilderSemantics):
        def __init__(self, context=None, types=None):
            types = [
                t for t in globals().values()
                if type(t) is type and issubclass(t, ModelBase)
            ] + (types or [])
            super().__init__(context=context, types=types)
BaseClassSpec
class_namebase modelname	base_typereturnc                 h    U=(       d    [         R                  n[        XS9nUR                  U 5      $ )N)r   r   )r   NodePythonModelGeneratorgenerate_model)r   r   r   	generators       [/Users/user/Downloads/htwk/venv/lib/python3.13/site-packages/tatsu/ngcodegen/objectmodel.pymodelgenr   +   s-    -[--I$$DI##E**    c                      ^  \ rS rSrS\R
                  4S\S\4U 4S jjjrS\	R                  4S jr\S 5       rS	\S
\S-  4S jrS\	R                  S\\   4S jrS\	R                  S\\   4S jrSrU =r$ )r   1   r   r   r   c                 N   > [         TU ]  5         X l        U=(       d    S U l        g )N)super__init__r   r   )selfr   r   	__class__s      r   r   PythonModelGenerator.__init__3   s    "LD	r   grammarc                 x   U R                   nUR                  R                  S5      S   nSUR                   SU 3nU R                  =(       d    UR                  U l        U R                  [        R                  U R                  U R                   R                  US95        UR                   Vs0 s H  oUR                  U_M     nnUR                   Vs0 s H  nUR                  U R                  U5      _M!     nnUR                  5        VV	s0 s H  u  pU	(       d  M  X_M     nnn	UR                  5        V	V
s0 s H$  n	U	  H  n
U
R                  U
R                  _M     M&     nn	n
U R                  5       nX;U'   UR                  5        V	V
s1 s H%  n	U	  H  n
U
R                  U
R                  4iM     M'     nn	n
[        [!        U5      U5      nUR                  5        VVs0 s H  u  pX;   d  M  Xx   S   R                  U_M      nnnU Hq  nU[#        [$        5      ;   a  M  UR'                  U5      =n(       a   U R)                  XWUR                     5        MP  U R+                  UUR'                  U5      5        Ms     U R-                  5       $ s  snf s  snf s  sn	nf s  sn
n	f s  sn
n	f s  snnf )N.zfrom z import )r   r   base_type_importr   )r   __name__split
__module__r   printHEADERformatrules_base_class_specsitemsvaluesr   r   _model_base_namer
   reversedvarsbuiltinsget_gen_rule_class_gen_base_classprinted_text)r    r#   r   base_type_namer'   rule
rule_index
rule_specsr   specssspecs_by_namer   	all_specsmodel_namesmodel_to_rule
model_names                    r   r   #PythonModelGenerator.generate_model8   s   NN	"++11#6r:"9#7#7"8@PQII-	

MMYY..11!1  	
 3:--@-$iio-
@  
% IIt--d33% 	 
 6@5E5E5GQ5Gkd5kdk5G
Q $**,
, LL!&&  , 	 

 $$&,d $**,
, \\166" #, 	 

 h}5yA )..0
0
! 1JQ**D00 	 
 &JT(^+$((44t4$$Tdii+@A$$Z1B1B:1NO &   ""I A
 R


s0   1J&JJ$#J$?+J*,J0+J6:J6c                      g)N	ModelBase rH   r   r   r2   %PythonModelGenerator._model_base_namel   s    r   r   r   Nc                 F   U R                  5         U R                  5         U R                  S5        U(       a  U R                  SU SU S35        OU R                  SU S35        U R                  5          U R                  S5        S S S 5        g ! , (       d  f       g = f)N@dataclass(eq=False)class ()::pass)r+   indent)r    r   r   s      r   r8   $PythonModelGenerator._gen_base_classp   su    





)*JJ
|1TF"56 JJ
|1-.[[]JJv ]]s   7B
B r;   r>   c           	      "   U(       d  g US   n[        [        UR                  5       5       VVs1 s H  u  pE[        U5      iM     snn5      nU R	                  5         U R	                  5         U R	                  S5        U R	                  SUR
                   SUR                   S35        U R                  5          U(       d  U R	                  S5        U H  nU R	                  U S35        M     S S S 5        g s  snnf ! , (       d  f       g = f)Nr   rK   rL   rM   rN   rP   z: Any = None)sortedr   definesr	   r+   r   r   rQ   )r    r;   r>   specd_	argumentsargs           r   r7   $PythonModelGenerator._gen_rule_class|   s    Qx\$,,.5QR5QTQIaL5QRS	





)*

VDOO,Adii[;<[[]

6" 

cU,/0 ! ] S ]s   C:
;6D  
Dr   c           
         UR                   (       a"  [        UR                   S   [        5      (       d  / $ UR                   S   R                  S5      nU R	                  5       /nU Vs/ s H  n[        U5      PM     snU-   n[        US S 5       VVs/ s H  u  pg[        XuUS-      5      PM     snn$ s  snf s  snnf )Nr   z::r&      )params
isinstancestrr)   r2   r	   	enumerater   )r    r;   rV   r   nclass_namesir   s           r   r/   &PythonModelGenerator._base_class_specs   s    {{*T[[^S"A"AI{{1~##D)%%'(-12Ty|T2T9 "+;s+;!<
!< *!a%&89!<
 	
 3
s   )B6B;)r   r   )r(   r*   __qualname____firstlineno__r   r   r`   typer   r   Grammarr   staticmethodr2   r8   Rulelistr   r7   r/   __static_attributes____classcell__)r!   s   @r   r   r   1   s    #%9I9I !S !$ ! !
2#h&6&6 2#h  
# 
S4Z 
1HMM 1$}:M 1 	
hmm 	
]8K 	
 	
r   r   )r5   collectionsr   r   r   r   mixins.indentr   utilr   r	   	util.miscr
   r,   r   r   ri   r`   rh   r   r   rH   r   r   <module>rs      sy     " $ , * 
> ?\6,BC 35{O_O_ +H$$ +C + +dg +d
+ d
r   