
    #hx                    n    S SK Jr  S SKJr  SSKJr  SSKJr  SSKJ	r	  SSK
JrJrJrJr   " S S	\	5      rg
)    )annotations)Sequence   )grammars)FailedSemantics)ModelBuilderSemantics)eval_escapesflattenrewarningc                     ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rSrU =r$ )EBNFGrammarSemantics   c                   > [         TU ]  [        R                  [        R                  R	                  5       S9  Xl        0 U l        g )N)	base_typetypes)super__init__r   Modelclassesgrammar_namerules)selfr   	__class__s     V/Users/user/Downloads/htwk/venv/lib/python3.13/site-packages/tatsu/parser_semantics.pyr   EBNFGrammarSemantics.__init__   s:    nnHNN,B,B,D 	 	
 )
    c                V    UnU(       d  [        S5      e[        R                  " U5      $ )Nzempty token)r   r   Token)r   astargstokens       r   r"   EBNFGrammarSemantics.token   s$    !-00~~e$$r   c                .    [         R                  " U5      $ N)r   Patternr   r    r!   s      r   patternEBNFGrammarSemantics.pattern   s    $$r   c                    SR                  U5      n [        R                  " U5        U$ ! [        [        R                  4 a  n[        S[        U5      -   5      UeS nAff = f)N regexp error: )joinr   compile	TypeErrorerrorr   strr   r    r!   r(   es        r   regexesEBNFGrammarSemantics.regexes   s\    ''#,	DJJw 
 288$ 	D!"2SV";<!C	Ds   + A"AA"c                    Un [         R                  " U5        U$ ! [        [         R                  4 a  n[	        S[        U5      -   5      UeS nAff = f)Nr,   )r   r.   r/   r0   r   r1   r2   s        r   regexEBNFGrammarSemantics.regex$   sT    	DJJw  288$ 	D!"2SV";<!C	Ds    AAAc                    [        U5      $ r%   )r	   r   r    s     r   stringEBNFGrammarSemantics.string,   s    C  r   c                    [        US5      $ )N   intr:   s     r   hexEBNFGrammarSemantics.hex/   s    3|r   c                    [        U5      $ r%   )floatr:   s     r   rD   EBNFGrammarSemantics.float2   s    Szr   c                    [        U5      $ r%   r?   r:   s     r   r@   EBNFGrammarSemantics.int5   s    3xr   c                    g r%    r:   s     r   nullEBNFGrammarSemantics.null8   s    r   c                B    [        S5        [        R                  " 5       $ )Nz>The use of >> for cut is deprecated. Use the ~ symbol instead.)r   r   Cutr'   s      r   cut_deprecated#EBNFGrammarSemantics.cut_deprecated;   s    L	
 ||~r   c                D    [        S5        [        R                  " U5      $ )Nz7The use of @ for override is deprecated. Use @: instead)r   r   Overrider'   s      r   override_single_deprecated/EBNFGrammarSemantics.override_single_deprecatedA   s    IJ  %%r   c                    UR                   n[        U[        5      (       d   [        U5      5       e[	        U5      S:X  a  US   $ [
        R                  " U5      $ Nr   r   )sequence
isinstancer   r1   lenr   )r   r    r!   seqs       r   rV   EBNFGrammarSemantics.sequenceE   sL    ll#x((2#c(2(s8q=q6M  %%r   c                V    [        U5      S:X  a  US   $ [        R                  " U5      $ rU   )rX   r   Choicer'   s      r   choiceEBNFGrammarSemantics.choiceL   s%    s8q=q6Ms##r   c                D    XR                   ;   a  [        SU< S35      eU$ )Nrule "z" already definedr   r   r   names     r   new_nameEBNFGrammarSemantics.new_nameQ   s&    ::!F4(2C"DEEr   c                D    XR                   ;  a  [        SU< S35      eU$ )Nr`   z" not yet definedra   rb   s     r   
known_nameEBNFGrammarSemantics.known_nameV   s&    zz!!F4(2C"DEEr   c                :    [        U5      R                  5       S;   $ )N>   1okyestrue)r1   lowerr:   s     r   booleanEBNFGrammarSemantics.boolean[   s    3x~~#===r   c           
        UR                   nUR                  nUR                  nUR                  nUR                  nUR
                  (       a  [        UR
                  5      OS nSU;  a!  X@R                  ;   a  U R                  U5        OSU;   a  U R                  U5        U(       d  [        R                  " XXWXS9n	O:U R                  U5        U R                  U   n
[        R                  " UUUU
UUUS9n	XR                  U'   U	$ )Noverride)
decorators)rs   rc   expbaseparamskwparamsdictr   rd   rg   r   Rule	BasedRule)r   r    r!   rs   rc   rt   ru   rv   rw   rule	base_rules              r   r{   EBNFGrammarSemantics.rule^   s    ^^
xxggxx),4%4Z'DJJ,>MM$:%OOD!==3D OOD!

4(I%%%D  

4r   c                    [        U5      nU R                  U5        U R                  U   n[        R                  " U5      $ r%   )r1   rg   r   r   RuleInclude)r   r    r!   rc   r{   s        r   rule_include!EBNFGrammarSemantics.rule_include   s6    3xzz$##D))r   c                   [        UR                  5       Vs0 s H  o3R                  UR                  _M     nn[	        [        UR
                  5      5      =(       d    / nUR                  S5      S;   a  SUS'   U R                  =(       d    UR                  S5      n[        R                  " U[	        U R                  R                  5       5      UUS9$ s  snf )N
whitespace>   NoneFalser+   grammar)
directiveskeywords)r
   r   rc   valuelistr   getr   r   Grammarr   values)r   r    r!   dr   r   rc   s          r   r   EBNFGrammarSemantics.grammar   s    /6s~~/FG/F!ffaggo/F
G-.4">>,'+<<')J|$  =JNN9$=""$%!	
 	
 Hs    C)r   r   )__name__
__module____qualname____firstlineno__r   r"   r(   r4   r7   r;   rA   rD   r@   rJ   rN   rR   rV   r]   rd   rg   ro   r{   r   r   __static_attributes____classcell__)r   s   @r   r   r      sm    %%!&&$


>B*
 
r   r   N)
__future__r   collections.abcr   r+   r   
exceptionsr   	semanticsr   utilr	   r
   r   r   r   rI   r   r   <module>r      s)    " $  ' , 4 4I
0 I
r   