
    #h                       S SK Jr  S SKrS SKrS SK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SKJr  SS	KJr  SS
KJr   " S S\5      r\" S5      r\R0                   " S S5      5       r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r  " S S\5      r! " S  S!\5      r"\R0                  " S"S#9 " S$ S%5      5       r#g)&    )annotationsN)CallableMutableMapping)starmap)Any
NamedTuple   )AST)	Tokenizer)cached_re_compile)C_DERIVEc                      \ rS rSrSrg)UndefinedStr    N)__name__
__module____qualname____firstlineno____static_attributes__r       K/Users/user/Downloads/htwk/venv/lib/python3.13/site-packages/tatsu/infos.pyr   r      s    r   r   z>>undefined<<c                  4   \ rS rSr% SrS\S'   SrS\S'   SrS	\S
'   SrS	\S'   Sr	S\S'   Sr
S\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   SrS \S!'   \rS	\S"'   SrS\S#'   SrS\S$'   SrS\S%'   SrS\S&'   \R:                  " \S'9rS(\S)'   Sr S*\S+'   Sr!S	\S,'   Sr"S*\S-'   \#r$S\S.'   Sr%S\S/'   S0 r&\'  S:       S;S1 jj5       r(S2 r)S<S3 jr* S=   S>S4 jjr+S?S5 jr,S@S6 jr-S@S7 jr.S8 r/S9r0g)AParserConfig   Nr   ownerTestz
str | Nonename strfilenamezutf-8encodingstart
start_rule	rule_namezre.Pattern | str | Nonecomments_reeol_comments_reztype[Tokenizer] | Nonetokenizerclsztype | None	semanticsFboolcomment_recoveryTmemoize_lookaheadscolorizetracetrace_filenameH   inttrace_lengthtrace_separatorgrammarleft_recursioncommentseol_commentsdefault_factoryzlist[str] | set[str]keywordszbool | None
ignorecase	namechars	nameguard
whitespace	parseinfoc                   U R                   (       a/  U R                   Vs/ s H  oR                  5       PM     snU l        U R                  (       d  U R                  (       a  [        S5      eU ?U ?U R                  (       a  [        U R                  5        U R                  (       a  [        U R                  5        U R                  (       a  [        U R                  5        g g s  snf )NzBoth `comments_re` and `eol_comments_re` have been removed from parser configurations. Please use `comments` and/or `eol_comments` instead`.)
r;   r:   upperr&   r'   AttributeErrorr6   r   r7   r>   )selfks     r   __post_init__ParserConfig.__post_init__@   s    ??04>1WWY>DMt33 H   ==dmm,d//0??doo.  ?s   C&c                Z    U " US9nUb  UR                  U5      nUR                  " S0 UD6$ )N)r   r   )replace_configreplace)clsconfigr   settingsresults        r   newParserConfig.newS   s6     5!**62F~~)))r   c                f    U R                   =(       d    U R                  =(       d    U R                  $ N)r$   r%   r#   rC   s    r   effective_rule_name ParserConfig.effective_rule_nameb   s    >$..>DJJ>r   c                    UR                  5        VVs0 s H  u  p#Uc  M
  [        X5      (       d  M  X#_M      snn$ s  snnf rQ   )itemshasattr)rC   rL   r   values       r   _find_commonParserConfig._find_commonf   sF      (~~/
/ %,T%8 DK/
 	
 
s   	===c                    Uc  U $ [        U[        5      (       d!  [        S[        U5      R                   35      eU R
                  " S0 [        U5      D6$ )NzUnexpected type r   )
isinstancer   	TypeErrortyper   rI   varsrC   others     r   rH   ParserConfig.replace_configm   sO     =KE<00.tE{/C/C.DEFF<<.$u+..r   c                    [         R                  " U 5       Vs/ s H!  o"R                  (       a  M  UR                  PM#     sn H  nX!;   d  M
  X	 M     U$ s  snf rQ   )dataclassesfieldsinitr   )rC   rL   fields      r   _filter_non_init_fields$ParserConfig._filter_non_init_fields{   sO    $/$6$6t$<
$<5JJJEJJ$<
E  O	

 
s
   AAc                    U R                  U R                  " S0 UD65      n[        R                  " U 40 UD6nSU;   a  UR                  Ul        U$ )Nr4   r   )rh   rY   rd   rI   r4   r   )rC   rL   	overridesrM   s       r   rI   ParserConfig.replace   sM    001B1B1NX1NO	$$T7Y7	! ..FKr   c           	         U R                   " S0 UD6nUR                  5        VVs0 s H  u  p4[        XS 5      b  M  X4_M     nnnU R                  " S0 UD6$ s  snnf )Nr   )rY   rV   getattrrI   )rC   rL   rk   r   rX   s        r   mergeParserConfig.merge   sg    %%11	  )0
0t4( DK0 	 

 ||(i((
s
   AAc                h    [         R                   " [        U 5      5      nUR                  SS 5        U$ )Nr   )copyr_   pop)rC   rM   s     r   asdictParserConfig.asdict   s)     4:&

7D!r   )r:   )NN)rK   ParserConfig | Noner   z
Any | NonerL   r   returnr   )rL   r   rw   MutableMapping[str, Any]rQ   )ra   rv   rw   r   )rL   rx   rw   rx   )rL   r   rw   r   )1r   r   r   r   r   __annotations__r   r!   r"   r#   r$   r%   r&   r'   r(   r)   r+   r,   r-   r.   r/   r2   r   r3   r4   r5   r6   r7   rd   rg   listr:   r;   r<   r=   _undefined_strr>   r?   rE   classmethodrN   rS   rY   rH   rh   rI   ro   rt   r   r   r   r   r   r      s   E3D*HcHcE:!J
! Iz +/K(//3O,3+/L(/!I{!"d"##HdE4 ND L##OS# GZNDHj#L*#%0%6%6t%LH"L#J#Is!I{!+J
+It/&  '+ 	*#	* 	* 		*
 
	* 	*?
 ,0/(/	/)r   r   c                  D    \ rS rSr% S\S'   S\S'   S\S'   \S 5       rSrg)	PosLine   r1   r#   linelengthc                :   / nSnSn[        U 5       HB  u  p$[        X2[        U5      5      nU H  nUR                  U5        M     U[        U5      -  nMD     US-  nU (       a  U S   (       a  U S   S   S;   a  US-  nUR                  [        X2S5      5        X4$ )Nr   r	   z
)	enumerater~   lenappend)linescachenir   pl_s          r   build_line_cachePosLine.build_line_cache   s     'GAs4y)BR  TNA	 (
 	
QU2Y59R=F#:FAWQ1%&xr   r   N)r   r   r   r   ry   staticmethodr   r   r   r   r   r~   r~      s#    J
IK r   r~   c                  :    \ rS rSr% S\S'   S\S'   \S 5       rSrg)	LineIndexInfo   r    r!   r1   r   c                ^    [        [        [        [        X/-  [	        U5      SS95      5      $ )NF)strict)rz   r   r   ziprange)r   r   s     r   block_indexLineIndexInfo.block_index   s*    M3q6z58E#JK
 	
r   r   N)r   r   r   r   ry   r   r   r   r   r   r   r   r      s    M
I
 
r   r   c                  R    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S'   S\S	'   S
rg)LineInfo   r    r!   r1   r   colr#   endtextr   Nr   r   r   r   ry   r   r   r   r   r   r      s     M
I	HJ	H
Ir   r   c                  :    \ rS rSr% S\S'   S\S'   \S 5       rSrg)CommentInfo   rz   inlineeolc                     [        / / 5      $ rQ   )r   r   r   r   new_commentCommentInfo.new_comment   s    2r""r   r   N)r   r   r   r   ry   r   r   r   r   r   r   r   r      s    L	I# #r   r   c                  2    \ rS rSr% SrS\S'   SrS\S'   Srg	)
Alert   r	   r1   levelr   r    messager   N)r   r   r   r   r   ry   r   r   r   r   r   r   r      s    E3NGSr   r   c                  |    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   / rS\S'   S rS r\S 5       r	Sr
g)	ParseInfo   r   	tokenizerr    ruler1   posendposr   endlinelist[Alert]alertsc                b    U R                   R                  U R                  U R                  5      $ rQ   )r   	get_linesr   r   rR   s    r   
text_linesParseInfo.text_lines   s!    ~~''		4<<@@r   c                b    U R                   R                  U R                  U R                  5      $ rQ   )r   
line_indexr   r   rR   s    r   r   ParseInfo.line_index   s!    ~~((DLLAAr   c                    U R                   $ rQ   )r   rR   s    r   bufferParseInfo.buffer   s    ~~r   r   N)r   r   r   r   ry   r   r   r   propertyr   r   r   r   r   r   r      sJ    N
I	HK
ILFKAB  r   r   c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg	)
MemoKey   r1   r   r    r   r   stater   Nr   r   r   r   r   r      s    	H
IJr   r   c                  n    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S rS rS rSrg)RuleInfo   r    r   r   implr*   
is_leftrecis_memoizableis_namerz   paramsdictkwparamsc                ,    [        U R                  5      $ rQ   )hashr   rR   s    r   __hash__RuleInfo.__hash__   s    DIIr   c                `    [        U[        5      (       a  U R                  UR                  :H  $ g)NF)r\   r   r   r`   s     r   __eq__RuleInfo.__eq__   s%    eX&&99

**r   c                .    U R                  U5      (       + $ rQ   )r   r`   s     r   __ne__RuleInfo.__ne__   s    ;;u%%%r   r   N)	r   r   r   r   ry   r   r   r   r   r   r   r   r   r      s6    
I
NMLN
&r   r   c                  4    \ rS rSr% S\S'   S\S'   S\S'   Srg)	
RuleResulti  r   noder1   newposnewstater   Nr   r   r   r   r   r     s    
IKMr   r   T)slotsc                      \ rS rSr% SrS\S'   \R                  " \S9r	S\S'   Sr
S	\S
'   \R                  " \S9rS\S'   Srg)
ParseStatei  r   r1   r   r8   r
   astNr   cstr   r   r   )r   r   r   r   r   ry   rd   rg   r
   r   r   rz   r   r   r   r   r   r   r     s>    CL  5C5CO%++DAFKAr   r   )$
__future__r   rr   rd   recollections.abcr   r   	itertoolsr   typingr   r   r   r
   
tokenizingr   	util.miscr   util.unicode_charactersr   r    r   r{   	dataclassr   r~   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s    "   	 4  "  ! ( -	3 	 o. @ @ @Fj ,
J 
z #* #J 

 (j &z &*  T"B B #Br   