
    #h                    V    S SK Jr  S SKrS SKJr  S SKJr  S SKJ	r	  S r
 " S S5      rg)	    )annotationsN)chain)grammars)ASTc                4    [         R                  " SS U 5      $ )Nz([a-z0-9])([A-Z])c                j    U R                  S5      S-   U R                  S5      R                  5       -   $ )N   _   )grouplower)ms    S/Users/user/Downloads/htwk/venv/lib/python3.13/site-packages/tatsu/g2e/semantics.py<lambda>camel2py.<locals>.<lambda>   s'    !''!*s"QWWQZ%5%5%77    )resub)names    r   camel2pyr   
   s    667 r   c                      \ 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S r\S 5       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%g#)$ANTLRSemantics   c                :    Xl         0 U l        0 U l        / U l        g N)r   tokenstoken_rulessynthetic_rules)selfr   s     r   __init__ANTLRSemantics.__init__   s    	!r   c                    [         R                  " U R                  [        UR                  U R
                  5       Vs/ s H
  nUc  M  UPM     sn5      $ s  snf r   )modelGrammarr   r   rulesr   )r   astrs      r   grammarANTLRSemantics.grammar   sP    }}II syy$*>*>??A ?
 	
s   A
	A
c                   [        UR                  5      nUR                  nUS   R                  5       (       a  UR	                  5       n[        U[        R                  5      (       a3  X R                  ;   a  UU R                  U   l        g X0R                  U'   g UR                  (       d  [        U[        R                  5      (       de  [        R                  " UR                  5       5      nX R                  ;   a  X@R                  U   l        OX@R                  U'   UR                  5       n[        R                  " XX1R                  UR                  5      $ Nr   )r   r   expisupperupper
isinstancer#   Tokenr   fragmentSequenceRuleRefr   Ruleparamskwparams)r   r&   r   r,   refs        r   ruleANTLRSemantics.rule#   s   !gg7??::<D#u{{+++++   $$  .1$$T*\\*S%..*I*ImmDJJL1+++14$$T*.-0$$T*zz|zz#S**cllCCr   c                    UR                    Vs/ s H	  o"c  M  UPM     nn[        U5      S:X  a  US   $ U Vs/ s H  n[        R                  " U5      PM     nn[        R                  " U5      $ s  snf s  snf )Nr	   r   )optionslenr#   OptionChoice)r   r&   or;   s       r   alternativesANTLRSemantics.alternatives:   se    !kk;k1k;w<11:0781u||AG8<<(( < 9s   A1A1 A6c                    U Vs/ s H	  o"c  M  UPM     nnU(       d  [         R                  " 5       $ [        U5      S:X  a  US   $ [         R                  " [	        US95      $ s  snf )Nr	   r   sequence)r#   Voidr<   r2   r   )r   r&   eelementss       r   rG   ANTLRSemantics.elementsB   sT    "4s!As4::<]aA;>>#x"899 5s
   A$A$c                    g r    r   r&   s     r   predicate_or_action"ANTLRSemantics.predicate_or_actionK       r   c                |    UR                   (       a  [        R                  " U5      $ [        R                  " U5      $ r   )
force_listr#   	NamedListNamedrK   s     r   namedANTLRSemantics.namedN   s'    >>??3'';;s##r   c                    g r   rJ   rK   s     r   syntactic_predicate"ANTLRSemantics.syntactic_predicateT   rN   r   c                    [        U[        R                  [        R                  -  [        R                  -  5      (       a  UR
                  n[        R                  " U5      $ r   )r/   r#   GroupOptionalClosurer,   rK   s     r   optionalANTLRSemantics.optionalW   s=    c5;;7%--GHH''C~~c""r   c                    [        U[        R                  [        R                  -  5      (       a  UR                  n[        R
                  " U5      $ r   )r/   r#   rY   rZ   r,   r[   rK   s     r   closureANTLRSemantics.closure\   s4    c5;;788''C}}S!!r   c                    [        U[        R                  5      (       a  UR                  n[        R                  " U5      $ r   )r/   r#   rY   r,   PositiveClosurerK   s     r   positive_closureANTLRSemantics.positive_closurea   s-    c5;;''''C$$S))r   c                    [         R                  " U5      n[         R                  " S5      n[         R                  " [	        X#/S95      $ )N.rC   )r#   NegativeLookaheadPatternr2   r   )r   r&   neganys       r   negativeANTLRSemantics.negativef   s6    %%c*mmC ~~cC:677r   c                .    [         R                  " U5      $ r   )r#   rY   rK   s     r   subexpANTLRSemantics.subexpk   s    {{3r   c                |    SR                  U5      n[        R                  " U5        [        R                  " U5      $ N joinr   compiler#   rh   r   r&   patterns      r   regexpANTLRSemantics.regexpn   *    ''#,


7}}W%%r   c                    U S3$ )N?rJ   rK   s     r   charset_optionalANTLRSemantics.charset_optionals       ayr   c                    U S3$ )N*rJ   rK   s     r   charset_closureANTLRSemantics.charset_closurev   r   r   c                    U S3$ )N+rJ   rK   s     r   charset_positive_closure'ANTLRSemantics.charset_positive_closurey   r   r   c                B    SR                  SR                  U5      5      $ )Nz[{}]rr   formatrt   rK   s     r   
charset_orANTLRSemantics.charset_or|   s    }}RWWS\**r   c                B    SR                  SR                  U5      5      $ )Nz[^{}]rr   r   rK   s     r   charset_negative_or"ANTLRSemantics.charset_negative_or   s    ~~bggcl++r   c                2    SR                  S U  5       5      $ )Nrr   c              3  :   #    U  H  oS ;   a  SU-   OUv   M     g7f)z[]().*+{}^$\NrJ   ).0cs     r   	<genexpr>(ANTLRSemantics.escape.<locals>.<genexpr>   s     Ha#5tax1<as   )rt   )ss    r   escapeANTLRSemantics.escape   s    wwHaHHHr   c                    U$ r   rJ   rK   s     r   charset_atomANTLRSemantics.charset_atom       
r   c                    U$ r   rJ   rK   s     r   charset_charANTLRSemantics.charset_char   r   r   c                8    UR                    SUR                   3$ )N-)firstlastrK   s     r   charset_rangeANTLRSemantics.charset_range   s    ))AchhZ((r   c                |    SR                  U5      n[        R                  " U5        [        R                  " U5      $ rq   rs   rv   s      r   	newrangesANTLRSemantics.newranges   rz   r   c                    SR                  UR                  UR                  =(       d    S5      n[        R                  " U5        U$ )Nz[{}]{}rr   r   rangerepeatr   ru   rv   s      r   newrangeANTLRSemantics.newrange   s0    //#))SZZ-=2>


7r   c                    SR                  UR                  UR                  =(       d    S5      n[        R                  " U5        U$ )Nz[^{}]{}rr   r   rv   s      r   negative_newrange ANTLRSemantics.negative_newrange   s2    ""399cjj.>B?


7r   c                t    US   R                  5       (       d   e[        R                  " [        U5      5      $ r+   )islowerr#   r3   r   rK   s     r   rule_refANTLRSemantics.rule_ref   s,    1v~~}}Xc]++r   c                .    [         R                  " S5      $ )Nz\w+|\S+)r#   rh   rK   s     r   rj   ANTLRSemantics.any   s    }}Z((r   c                ~    Un[        U[        5      (       a  SR                  U5      n[        R                  " U5      $ rq   )r/   listrt   r#   r0   )r   r&   texts      r   stringANTLRSemantics.string   s0    dD!!774=D{{4  r   c                ,    [         R                  " 5       $ r   )r#   EOFrK   s     r   eofANTLRSemantics.eof   s    yy{r   c                2   UR                   nUR                  (       a0  [        R                  " UR                  5      nX0R                  U'   U$ [        R
                  " 5       n[        R                  " XU/ 0 5      nU R                  R                  U5        U$ r   )	r   valuer#   r0   r   Failr4   r   append)r   r&   r   r,   r8   s        r   tokenANTLRSemantics.token   sq    xx99++cii(C #KK
 
 **,C::cb"5D  ''-
r   c                n   [        U5      R                  5       nU R                  R                  U5      nU(       a!  [	        U[
        R                  5      (       a  U$ X R                  ;   a  U R                  U   nU$ [
        R                  " [
        R                  " U5      5      nX@R                  U'   U$ r   )
r   r.   r   getr/   r#   Modelr   	Decoratorr3   )r   r&   r   r   r,   s        r   	token_refANTLRSemantics.token_ref   s    }""$%Zu{{33L###""4(C 
 //%--"56C%(T"
r   )r   r   r   r   N)&__name__
__module____qualname____firstlineno__r    r(   r8   r@   rG   rL   rS   rV   r\   r_   rc   rk   rn   rx   r}   r   r   r   r   staticmethodr   r   r   r   r   r   r   r   rj   r   r   r   r   __static_attributes__rJ   r   r   r   r      s    "
D.):$#
"
*
8
 &
+, I I)&


,)!	r   r   )
__future__r   r   	itertoolsr   tatsur   r#   	tatsu.astr   r   r   rJ   r   r   <module>r      s%    " 	  # s sr   