
    7i                     x    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y)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                   P   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j0                  fdej2                  fdej4                  fdej6                  fdej8                  fg ed      dej<                  fdej>                  fdej@                  fd ed!fd"e!jD                  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jH                  fd(ejH                  fd)e%f ed*      d+e!jD                  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!jN                  fdBe#fgdCe(jR                  fdDe(jT                  fg ed      d1ed	fdEedfdFed4fdAe!jN                  fdGefdHe&f edId      e&jV                  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j0                  fdRej2                  fdSej4                  fdTej6                  fdUej8                  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.y^)_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 | y )Nstart)r   r"   r$   r   T)r   start_stater   __init__)selfoptionss     H/var/www/html/venv/lib/python3.12/site-packages/pygments/lexers/typst.pyrG   zTypstLexer.__init__   s1    )W8(DJ 	D,G,    c              #      K   dg}| j                   dk7  r|j                  | j                          t        j                  | ||      E d {    y 7 w)NrC   r   )rF   appendr   get_tokens_unprocessed)rH   textstacks      rJ   rN   z!TypstLexer.get_tokens_unprocessed   sE     x'LL))*44T4GGGs   AA
AA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      s    DiG	I I
CMO H

 ,U;W=P=PR_`*597;L;Lm\7FHXHXZgh[&)[&).0TV^_.0TV\]8GIYIYZ'7,&**%6::&"FLL1(
" I7??+W^^,&K()[* MN*k:!NO (:{"CD((:{JX\XeXegr*st)4::6($**5TNK  &//22GLLA25A;Ok"k"K)K(j)0$7/
4 I()40'(+6?_45x@K k"K(K 0(4==*Va2bc*HT]]K,PQ'7!6*%{3'*%
$ w~~& '"3"34

 IK*{F+{F+';'8'6F8(C,ht}}k.RS-x{/SU[\ -5:< )%8':K:KL4UCWEUEUV.AQAQ0RS

+$&**%!6<<0')%8':M:MN *4==9*%;;
@ [&)J'FO
EgFR-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 (.MH MHrK   