+
    SBi\                         ^ RI Ht ^ RItRtRtRtRtRtRtR	t	R
t
RtRtRtRtRtRtRt]P$                  ! R4      tR t ! R R]4      t]! R. RO4      t ! R R]4      t ! R R]4      tR# )    )
namedtupleNcommentinline_commentstringelementblock_start	block_endarray_start	array_endcharkeywordimportpragma	component	attributeellipsesz/[/*][^/!*]c                     V P                   \        8H  ;'       d%    \        P                  V P                  4      '       * # N)typeCOMMENTPLAIN_COMMENT_RXmatchvalue)tokens   &2/usr/lib/python3.14/site-packages/doxyqml/lexer.pyis_doxy_comment_tokenr      s,    :: LL)9)?)?)L%LL    c                   &   a  ] tR t^t o R tRtV tR# )
LexerErrorc                <    \         P                  W4       W n        R # r   )	Exception__init__idx)selfmsgr#   s   &&&r   r"   LexerError.__init__   s    4%r   )r#   N)__name__
__module____qualname____firstlineno__r"   __static_attributes____classdictcell____classdict__s   @r   r   r      s      r   r   Tokenc                   ,   a  ] tR t^&t o R tR tRtV tR# )	Tokenizerc                    Wn         W n        R # r   )
token_typerx)r$   r3   r4   s   &&&r   r"   Tokenizer.__init__'   s    $r   c                >    VP                  V P                  V4       R # r   )append_tokenr3   )r$   lexermatched_strs   &&&r   __call__Tokenizer.__call__+   s    4??K8r   )r4   r3   N)r'   r(   r)   r*   r"   r:   r+   r,   r-   s   @r   r1   r1   &   s     9 9r   r1   c                   V   a  ] tR t^/t o R tR tR tR tR tR t	R t
R tR	 tR
tV tR# )Lexerc                   \        \        \        P                  ! R 4      4      \        \        \        P                  ! R4      4      .V n        \        \        \        P                  ! R\        P                  4      4      \        \        \        P                  ! R4      4      \        \        \        P                  ! R\        P                  4      4      \        \        \        P                  ! R4      4      \        \        \        P                  ! R4      4      \        \        \        P                  ! R4      4      \        \        \        P                  ! R4      4      \        \        \        P                  ! R	4      4      \        \        \        P                  ! R
4      4      \        \        \        P                  ! R4      4      \        \        \        P                  ! R4      4      \        \         \        P                  ! R4      4      \        \         \        P                  ! R4      4      \        \"        \        P                  ! R4      4      \        \$        \        P                  ! R4      4      \        \&        \        P                  ! R4      4      .V n        VP+                  RR4      V n        ^ V n        ^ V n        RV n        . V n        R# )z([-\w\.]+)\s*{z([-\w\.]+)\s*:z/\*[!*]<.*?\*/z'//[/!]<[^\n]*(?:\n[ \t]*//[/!]<[^\n]*)*z	/\*.*?\*/z//[^\n]*(?:\n[ \t]*//[^\n]*)*z(("([^\\"]|(\\.))*"|\'([^\\\']|(\\.))*\')z(?<!')\{(?!')z(?<!')\}(?!')z\[z\]zimport\s+.*zpragma\s+\w.*z@(default\s+property|property|readonly\s+property|signal|enum)\s+z(function)\s+[^(]z\.\.\.z
\w[\w.<>]*.z\

FN)r1   	COMPONENTrecompile	ATTRIBUTEtokenizers_newlineICOMMENTDOTALLr   STRINGBLOCK_START	BLOCK_ENDARRAY_START	ARRAY_ENDIMPORTPRAGMAKEYWORDELLIPSESELEMENTCHAR
tokenizersreplacetextr#   columnnewlinetokens)r$   rU   s   &&r   r"   Lexer.__init__0   s    i,=!>?i,=!>?# h

+<bii HIh

+U VWgrzz,		BCgrzz*JKL
 fbjj)TUVk2::o#>?iO!<=k2::d#34iD!12fbjj89fbjj)9:;grzz*mnogrzz*>?@h

9 56grzz-89dBJJsO,), LL.	r   c                     V P                  4        V P                  \        V P                  4      8X  d   MV P	                  4        KH  V P                  4        R# )TN)advancer#   lenrU   apply_tokenizersfixup_tokensr$   s   &r   tokenizeLexer.tokenizeS   s=    LLNxx3tyy>)!!#r   c                   R V n         V P                  ^ 8X  d   RV n         V P                  \        V P                  4      8  d   V P                  V P                  ,          R8X  d*   RV n         V ;P                  ^,          un        ^ V n        Ko  V P                  V P                  ,          P                  4       '       d5   V ;P                  ^,          un        V ;P                  ^,          un        K  R# R# )FTr@   N)rW   r#   r\   rU   rV   isspacer_   s   &r   r[   Lexer.advance[   s    88q=DLhhTYY'yy"d*#A488$,,..Aq  (r   c                   V P                   '       d   V P                   F  pVP                  P                  V P                  V P
                  4      pV'       g   K=  \        VP                  4       4      ^ 8  d;   V! WP                  ^4      4       V P                  VP                  ^4      4        R# V! WP                  ^ 4      4       V P                  VP                  ^ 4      4        R# 	  V P                   F  pVP                  P                  V P                  V P
                  4      pV'       g   K=  \        VP                  4       4      ^ 8  d;   V! WP                  ^4      4       V P                  VP                  ^4      4        R# V! WP                  ^ 4      4       V P                  VP                  ^ 4      4        R# 	  \        RV P
                  4      h)r   NzNo lexer matched)rW   rE   r4   r   rU   r#   r\   groupsgroupset_positionendrS   r   )r$   	tokenizerr   s   &  r   r]   Lexer.apply_tokenizersl   sQ   <<<!44	!**499dhh?u||~&*dKKN3%%eiil3dKKN3%%eiil3 5 ILL&&tyy$((;E5<<>"Q&$A/!!%))A,/$A/!!%))A,/ ) +TXX66r   c                   \        V P                  4       EFq  w  rVP                  \        8X  d   VP                  R 8X  d   V^8  d   V P                  V^,
          ,          P                  \
        8X  d   V P                  V^,
          ,          P                  \        8X  dw   V P                  V^,
          ,          P                  P                  R 4      '       d>   \        \
        VP                  VP                  VP                  4      V P                  V&   VP                  \        8X  g   VP                  \        8X  d   V P                  V4       VP                  \        8X  g   EKV  V^8  g   EK`  V P                  V4       EKt  	  R# )propertyN)	enumeraterX   r   rO   r   rQ   endswithr/   r#   rV   r   rF   left_shift_commentmove_inline_comments)r$   r#   r   s   &  r   r^   Lexer.fixup_tokens   s    #DKK0JC 

g%%++*CaKKa(--8KKa(--8T[[q=Q=W=W=`=`ak=l=l#(%++uyy%,,#WC zzW$

h(>'',zzX%#'))#. 1r   c           	        V P                   P                  V4      pVP                  ^8  d   V P                   P                  W4       R# \        P
                  ! RP                  VP                  4      \        P                  4      pVP                  RVP                  4      pV P                   P                  V\        VP                  WBP                  VP                  4      4       R# )zu
Change the value of multiline-tokens so they look like they were
defined on column 1 instead of wherever they were.
Nz^[ \t]{{{}}} )rX   poprV   insertrB   rC   format	MULTILINEsubr   r/   r   r#   )r$   r#   r   r4   newvals   &&   r   rp   Lexer.left_shift_comment   s    
 $<<!KKs*ZZ..u||<bllKEKK(3ejj&))U\\ RSr   c                &   \        V^,
          ^ 4      p\        V P                  V^,
          VR1,          4       F]  w  r4VP                  \        8X  d   W,
          ^,
          pV^ 8:  d    R#  M,VP                  \
        \        \        \        39   g   K\   R# 	  V P                  X^,
          ,          pVP                  \        8X  g   \        V4      '       d   R# V P                  P                  WPP                  P                  V4      4       R# )z
Move inline comments ahead of their parent KEYWORD. This way they get
properly handed over to the Qml* object type handlers which can do with
them as they wish.
N)maxrn   rX   r   rO   r   rF   rM   rN   r   rv   ru   )r$   	start_idxend_idxr#   r   ins_idxprevious_tokens   &&     r   rq   Lexer.move_inline_comments   s     i"na(#DKK	Agb0H$IJJCzzW$#/A-a<zzgx@@ K Wq[1(*.CN.S.S7KKOOI$>?r   c                z    V P                   P                  \        WV P                  V P                  4      4       R # r   )rX   appendr/   r#   rV   )r$   r   r   s   &&&r   r7   Lexer.append_token   s%    5dhhDEr   c                    Wn         V P                  P                  R ^ V4      pVR8X  d	   Wn        R# W,
          ^,
          V n        R# )r@   Nr}   )r#   rU   rfindrV   )r$   r#   rW   s   && r   rh   Lexer.set_position   s7    ))//$3/b=K-!+DKr   )rV   r#   rW   rU   rS   rE   rX   N)r'   r(   r)   r*   r"   r`   r[   r]   r^   rp   rq   r7   rh   r+   r,   r-   s   @r   r=   r=   /   s<     !F" 7D/T@2F, ,r   r=   )r   r   r#   rV   )collectionsr   rB   r   rF   rH   rQ   rI   rJ   rK   rL   rR   rO   rM   rN   rA   rD   rP   rC   r   r   r!   r   r/   objectr1   r=    r   r   <module>r      s    " 	 	
		
				 ::m, M  	7>?9 9[,F [,r   