
    }f                    V    d dl mZ d dlZd dlmZ d dlmZ d dlm	Z	 d Z
 G d d      Zy)	    )annotationsN)chain)grammars)ASTc                2    t        j                  dd |       S )Nz([a-z0-9])([A-Z])c                j    | j                  d      dz   | j                  d      j                         z   S )N   _   )grouplower)ms    R/var/www/feuerwehr-webapp/venv/lib/python3.12/site-packages/tatsu/g2e/semantics.py<lambda>zcamel2py.<locals>.<lambda>   s)    !''!*s"QWWQZ%5%5%77     )resub)names    r   camel2pyr   
   s    667 r   c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zed        Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d  Z#y!)"ANTLRSemanticsc                <    || _         i | _        i | _        g | _        y N)r   tokenstoken_rulessynthetic_rules)selfr   s     r   __init__zANTLRSemantics.__init__   s     	!r   c                    t        j                  | j                  t        |j                  | j
                        D cg c]  }|| c}      S c c}w r   )modelGrammarr   r   rulesr   )r   astrs      r   grammarzANTLRSemantics.grammar   sM    }}II syy$*>*>?= 
 	
s   A
c                   t        |j                        }|j                  }|d   j                         r|j	                         }t        |t        j                        r3|| j                  v r|| j                  |   _        y || j                  |<   y |j                  st        |t        j                        set        j                  |j                               }|| j                  v r|| j                  |   _        n|| j                  |<   |j                         }t        j                  ||||j                  |j                        S Nr   )r   r   expisupperupper
isinstancer    Tokenr   fragmentSequenceRuleRefr   Ruleparamskwparams)r   r#   r   r(   refs        r   rulezANTLRSemantics.rule#   s   !gg7??::<D#u{{+4+++   $$  .1D$$T*\\*S%..*ImmDJJL14+++14D$$T*.-0D$$T*zz|zz#tS#**cllCCr   c                    |j                   D cg c]  }||	 }}t        |      dk(  r|d   S |D cg c]  }t        j                  |       }}t        j                  |      S c c}w c c}w )Nr	   r   )optionslenr    OptionChoice)r   r#   or6   s       r   alternativeszANTLRSemantics.alternatives:   sg    !kk;Q]1;;w<11:0781u||A8G8<<(( < 9s   A'A'A,c                    |D cg c]  }||	 }}|st        j                         S t        |      dk(  r|d   S t        j                  t	        |            S c c}w )Nr	   r   sequence)r    Voidr7   r.   r   )r   r#   eelementss       r   rA   zANTLRSemantics.elementsB   sW    "4!amA44::<]aA;>>#x"899 5s
   AAc                     y r    r   r#   s     r   predicate_or_actionz"ANTLRSemantics.predicate_or_actionK       r   c                n    |j                   rt        j                  |      S t        j                  |      S r   )
force_listr    	NamedListNamedrD   s     r   namedzANTLRSemantics.namedN   s'    >>??3'';;s##r   c                     y r   rC   rD   s     r   syntactic_predicatez"ANTLRSemantics.syntactic_predicateT   rF   r   c                    t        |t        j                  t        j                  z  t        j                  z        r|j
                  }t        j                  |      S r   )r+   r    GroupOptionalClosurer(   rD   s     r   optionalzANTLRSemantics.optionalW   s:    c5;;7%--GH''C~~c""r   c                    t        |t        j                  t        j                  z        r|j                  }t        j
                  |      S r   )r+   r    rO   rP   r(   rQ   rD   s     r   closurezANTLRSemantics.closure\   s1    c5;;78''C}}S!!r   c                x    t        |t        j                        r|j                  }t        j                  |      S r   )r+   r    rO   r(   PositiveClosurerD   s     r   positive_closurezANTLRSemantics.positive_closurea   s*    c5;;'''C$$S))r   c                    t        j                  |      }t        j                  d      }t        j                  t	        ||g            S )N.r=   )r    NegativeLookaheadPatternr.   r   )r   r#   neganys       r   negativezANTLRSemantics.negativef   s8    %%c*mmC ~~cC:677r   c                ,    t        j                  |      S r   )r    rO   rD   s     r   subexpzANTLRSemantics.subexpk   s    {{3r   c                x    dj                  |      }t        j                  |       t        j                  |      S N joinr   compiler    r[   r   r#   patterns      r   regexpzANTLRSemantics.regexpn   *    ''#,


7}}W%%r   c                    | dS )N?rC   rD   s     r   charset_optionalzANTLRSemantics.charset_optionals       ayr   c                    | dS )N*rC   rD   s     r   charset_closurezANTLRSemantics.charset_closurev   rn   r   c                    | dS )N+rC   rD   s     r   charset_positive_closurez'ANTLRSemantics.charset_positive_closurey   rn   r   c                B    dj                  dj                  |            S )Nz[{}]rc   formatre   rD   s     r   
charset_orzANTLRSemantics.charset_or|   s    }}RWWS\**r   c                B    dj                  dj                  |            S )Nz[^{}]rc   rv   rD   s     r   charset_negative_orz"ANTLRSemantics.charset_negative_or   s    ~~bggcl++r   c                2    dj                  d | D              S )Nrc   c              3  2   K   | ]  }|d v rd|z   n|  yw)z[]().*+{}^$\NrC   ).0cs     r   	<genexpr>z(ANTLRSemantics.escape.<locals>.<genexpr>   s      H1#5tax1<Hs   )re   )ss    r   escapezANTLRSemantics.escape   s    wwHaHHHr   c                    |S r   rC   rD   s     r   charset_atomzANTLRSemantics.charset_atom       
r   c                    |S r   rC   rD   s     r   charset_charzANTLRSemantics.charset_char   r   r   c                8    |j                    d|j                   S )N-)firstlastrD   s     r   charset_rangezANTLRSemantics.charset_range   s    ))AchhZ((r   c                x    dj                  |      }t        j                  |       t        j                  |      S rb   rd   rg   s      r   	newrangeszANTLRSemantics.newranges   rj   r   c                    dj                  |j                  |j                  xs d      }t        j                  |       |S )Nz[{}]{}rc   rw   rangerepeatr   rf   rg   s      r   newrangezANTLRSemantics.newrange   s0    //#))SZZ-=2>


7r   c                    dj                  |j                  |j                  xs d      }t        j                  |       |S )Nz[^{}]{}rc   r   rg   s      r   negative_newrangez ANTLRSemantics.negative_newrange   s2    ""399cjj.>B?


7r   c                h    |d   j                         sJ t        j                  t        |            S r'   )islowerr    r/   r   rD   s     r   rule_refzANTLRSemantics.rule_ref   s)    1v~~}}Xc]++r   c                ,    t        j                  d      S )Nz\w+|\S+)r    r[   rD   s     r   r]   zANTLRSemantics.any   s    }}Z((r   c                r    |}t        |t              rdj                  |      }t        j                  |      S rb   )r+   listre   r    r,   )r   r#   texts      r   stringzANTLRSemantics.string   s-    dD!774=D{{4  r   c                *    t        j                         S r   )r    EOFrD   s     r   eofzANTLRSemantics.eof   s    yy{r   c                &   |j                   }|j                  r0t        j                  |j                        }|| j                  |<   |S t        j
                         }t        j                  |||g i       }| j                  j                  |       |S r   )	r   valuer    r,   r   Failr0   r   append)r   r#   r   r(   r4   s        r   tokenzANTLRSemantics.token   su    xx99++cii(C #DKK
 
 **,C::c4b"5D  ''-
r   c                V   t        |      j                         }| j                  j                  |      }|rt	        |t
        j                        r|S || j                  v r| j                  |   }|S t        j                  t        j                  |            }|| j                  |<   |S r   )
r   r*   r   getr+   r    Modelr   	Decoratorr/   )r   r#   r   r   r(   s        r   	token_refzANTLRSemantics.token_ref   s    }""$%Zu{{3L4###""4(C 
 //%--"56C%(DT"
r   N)$__name__
__module____qualname__r   r%   r4   r;   rA   rE   rK   rM   rR   rT   rW   r^   r`   ri   rm   rq   rt   rx   rz   staticmethodr   r   r   r   r   r   r   r   r]   r   r   r   r   rC   r   r   r   r      s    "
D.):$#
"
*
8
 &
+, I I)&


,)!	r   r   )
__future__r   r   	itertoolsr   tatsur   r    	tatsu.astr   r   r   rC   r   r   <module>r      s%    " 	  # s sr   