
    Q?hl                        S r SrSr SSKrS r/ SQrSrSr\" \S	S
5      S-   \" \S	S5      -   rSrSR                  \R                  5       5      r\" \S	S
5      S-   \" \S	S5      -   r
Sr\S-   SR                  \5      -   S-   \-   r\S-   \-   S-   \
-   S-   \-   r\R                  " \5      rSr\R                  " \5      rSS jrS rg)z3.3.0a|  
Module to analyze Python source code; for syntax coloring tools.

Interface::

    tags = fontify(pytext, searchfrom, searchto)

 - The 'pytext' argument is a string containing Python source code.
 - The (optional) arguments 'searchfrom' and 'searchto' may contain a slice in pytext.
 - The returned value is a list of tuples, formatted like this::
    [('keyword', 0, 6, None), ('keyword', 11, 17, None), ('comment', 23, 53, None), etc. ]

 - The tuple contents are always like this::
    (tag, startindex, endindex, sublist)

 - tag is one of 'keyword', 'string', 'comment' or 'identifier'
 - sublist is not used, hence always None.
z0.4    Nc                 B    UR                  U R                  U5      5      $ N)joinsplit)srcsepreps      I/var/www/html/env/lib/python3.13/site-packages/reportlab/lib/PyFontify.pyreplacer   (   s    88CIIcN##    )asassertexecdelfromlambdareturnandelifglobalnottrybreakelseiforwhileclassexceptimportpasscontinuefinallyinprintdefforisraiseyieldwithz#[^\n]*z$q[^\\q\n]*(\\[\000-\377][^\\q\n]*)*qq'|"a  
    qqq
    [^\\q]*
    (
        (   \\[\000-\377]
        |   q
            (   \\[\000-\377]
            |   [^\q]
            |   q
                (   \\[\000-\377]
                |   [^\\q]
                )
            )
        )
        [^\\q]*
    )*
    qqq
 z(^|[^a-zA-Z0-9_.\"'])()z[ 	]*[A-Za-z_][A-Za-z_0-9.]*c                 ^   Uc  [        U 5      n[        R                  n[        R                  n/ nUR                  nSnSnSn	Sn
SnUn U" X5      nUc   U$ UR                  5       nX:  a   U$ UR                  S5      nU[        U5      -   nUS   nUS;  av  X:w  a  USS nUS-   nOUS S nUS-
  nU" XUS 45        US	;   aJ  U" X5      nUb?  UR                  5       nX:X  a*  UR                  S5      nU[        U5      -   nU" XUS 45        OUS
:X  a  U" X{US 45        OU" XUS 45        M  )Ncommentstringkeyword
identifierr      z#'")r&   r   #)lenmatchREsearchidREappendstartgroup)pytext
searchfromsearchtor=   idSearchtagstags_append
commentTag	stringTag
keywordTagidentifierTagr@   endmmatchcs                   r
   fontifyrP   d   sv   v;^^F{{HD++KJIJ ME
C
69B KA 	< K; 
c%j !HF?"a	 cr
'CC67 ((V)=GGIE| !
#c%j0#]3$EF#XC67356G r   c           	          [        U 5      nUR                  5       nUR                  5         [        U5      nU H  u  pEpg[	        U[        X%U 5      5        M     g r   )openreadcloserP   r%   repr)pathftextrF   tagr@   rL   sublists           r
   testr[      sJ    T
A668DGGI4=D$( Cc43() %)r   )r   N)__version____doc__rer   keywordsList
commentPatpatquotePatr   r   tripleQuotePat	nonKeyPatkeyPatmatchPatcompiler<   idKeyPatr>   rP   r[    r   r
   <module>rj      s   	>  	$
 
-3S!C''#sC*@@$ 	ggciikc3'#-S#0FF %		S388L1	1C	7)	Cf$s*^;cAHL
**X
*	zz(4n*r   