
    Mh                         d Z ddlmZmZmZmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZmZ ddlmZ dgZ G d de          ZdS )z
    pygments.lexers.typst
    ~~~~~~~~~~~~~~~~~~~~~

    Lexers for Typst language.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )
RegexLexerwordsbygroupsinclude)
CommentKeywordNameStringPunctuation
WhitespaceGenericOperatorNumberText)get_choice_opt
TypstLexerc                   h   e Zd ZdZdZdgZdgZdgZdZdZ	dZ
 ed	          g ed
d          ej        df edd          ej        df edd          ej        dfdedfdedfd eej        e          d	fd eej        e          df edd          ej        fdej        fdej        fdej        fdej        fdej        fdej        fg ed          dej        fdej        fdej         fd ed!fd"e!j"        fd# ee#ee#          fd$ ee#ee#          fd% ee#e          fd& ee#ee#ej        e          fd'ej$        fd(ej$        fd)e%f ed*          d+e!j"        fd,ej         f ed-d.          efd/efd0efd1ed2fd3ed4fd5e#fd6e%fg ed           ed7          e%f ed8          ef ed9e
z             e&fd:efd;efd ed4f ed*          d< eej        e#e          fd= eej        e          fd>ej        fd?efd@efdAe!j'        fdBe#fgdCe(j)        fdDe(j*        fg ed          d1ed	fdEedfdFed4fdAe!j'        fdGefdHe&f edId          e&j+        fdJe&fdK eej        e          fdL eej        e          df edMd          ej        f edNd          ej        f edOd          ej        fdP eeej                  fdQej        fdRej        fdSej        fdTej        fdUej        f edVd          ej        fdWej        fdBe#fdXefgdYed4fdZe#d4f ed          gd[Z,d\ Z-d] Z.d^S )_r   z
    For Typst code.

    Additional options accepted:

    `start`
        Specifies the starting state of the lexer (one of 'markup', 'math',
        'code'). The default is 'markup'.
    Typsttypstz*.typztext/x-typstzhttps://typst.appz2.18)+z[|z|]z||*z:=z::=...'-z=:z!=z>>z>=z>>>z<<z<=z<<<z->z|->z=>z|=>z==>z-->z~~>z~>z>->z->>z<-z<==z<--z<~~z<~z<-<z<<-z<->z<=>z<==>z<-->><~:|markup)z#letz#setz#showz\b)suffixinline_code)z#importz#include)z#ifz#forz#whilez#exportz#\{codez#\(z(#[a-zA-Z_][a-zA-Z0-9_-]*)(\[)z(#[a-zA-Z_][a-zA-Z0-9_-]*)(\())z#truez#falsez#nonez#autoz#[a-zA-Z_][a-zA-Z0-9_]*z#0x[0-9a-fA-F]+z#0b[01]+z	#0o[0-7]+z#[0-9]+[\.e][0-9]+z#[0-9]+commentz	^\s*=+.*$z[*][^*]*[*]z_[^_]*_z\$mathz`[^`]*`z^(\s*)(-)(\s+)z^(\s*)(\+)(\s+)z^(\s*)([0-9]+\.)z^(\s*)(/)(\s+)([^:]+)(:)z<[a-zA-Z_][a-zA-Z0-9_-]*>z@[a-zA-Z_][a-zA-Z0-9_-]*z\\#	into_codez```(?:.|\n)*?```z"https?://[0-9a-zA-Z~/%#&=\',;.+?]*)z---\r   z--r   z\Bz\\\[z\\\]z\[z#pushz\]z#popz[ \t]+\n?|\nz ((?![*_$`<@\\#\] ]|https?://).)+)z\_z\^z\&)_^&;)+/=z\\z\\\$z ([a-zA-Z][a-zA-Z0-9-]*)(\s*)(\()z([a-zA-Z][a-zA-Z0-9-]*)(:)z([a-zA-Z][a-zA-Z0-9-]*)z[0-9]+(\.[0-9]+)?z\.{1,3}|\(|\)|,|\{|\}z"[^"]*"z[ \t\n]+z//.*$z/[*](.|\n)*?[*]/z\(|\{z\)|\}z	,|\.{1,2}r-   )andornotz(=>|<=|==|!=|>|<|-=|\+=|\*=|/=|\+|-|\\|\*z([a-zA-Z_][a-zA-Z0-9_-]*)(:)z([a-zA-Z_][a-zA-Z0-9_-]*)(\())
asbreakexportcontinueelseforifinreturnwhile)importr   )autononetruefalsez([0-9.]+)(mm|pt|cm|in|em|fr|%)z0x[0-9a-fA-F]+z0b[01]+z0o[0-7]+z[0-9]+[\.e][0-9]+z[0-9]+)letsetshowz([a-zA-Z_][a-zA-Z0-9_-]*)r   z;\bz\n)rootr%   r   r$   r#   r"   r!   c                 ^    t          |dg ddd          | _        t          j        | fi | d S )Nstart)r   r"   r$   r   T)r   start_stater   __init__)selfoptionss     U/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/typst.pyrG   zTypstLexer.__init__   sI    )W888(DJ J 	D,,G,,,,,    c              #      K   dg}| j         dk    r|                    | j                    t          j        | ||          E d {V  d S )NrC   r   )rF   appendr   get_tokens_unprocessed)rH   textstacks      rJ   rN   z!TypstLexer.get_tokens_unprocessed   s]      x''LL)***4T4GGGGGGGGGGGrK   N)/__name__
__module____qualname____doc__namealiases	filenames	mimetypesurlversion_addedMATH_SHORTHANDSr   r   r   Declaration	NamespaceReservedr   r   r	   FunctionConstantVariabler   HexBinOctFloatIntegerr   HeadingStrongEmphr
   Backtickr   Labelr   r   Doubler   Single	MultilineWordtokensrG   rN    rK   rJ   r   r      sO         DiG	I I
CMO GH

 U,U;;;W=PR_`U*59997;Lm\U7FFFHXZgh[&)[&).0T0TV^_.0T0TV\]U8GGGIYZ'7,&*%6:&"FL1(
" GI7?+W^,&K()[* M MN*k:!N!NO ((:{"C"CD(((:{JX\Xegr*s*st)4:6($*5TNGK   &/22GLAU25AAA;Ok"k"K)K(j)0$7/
4 GIU())40U'((+6U?_455x@K k"K(GK  0((4=*Va2b2bc*HHT]K,P,PQ'7!6*%{3'*%
$ w~& '"34

 GIK*{F+{F+';'8U'666F8(C,hht}k.R.RS-xx{/S/SU[\U -5:< < < e)%888':KLU4UCCCWEUV.AQ0R0RS
+$&*%!6<0'U)%888':MN *4=9*%;;
@ [&)J'GFOO
Eg gFR- - -H H H H HrK   N)rT   pygments.lexerr   r   r   r   pygments.tokenr   r   r	   r
   r   r   r   r   r   r   pygments.utilr   __all__r   rq   rK   rJ   <module>rv      s    @ ? ? ? ? ? ? ? ? ? ? ?0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ( ( ( ( ( (.MH MH MH MH MH MH MH MH MH MHrK   