o
    Ñ­j  ã                   @   sr   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„ deƒZdS )zÌ
    pygments.lexers.typst
    ~~~~~~~~~~~~~~~~~~~~~

    Lexers for Typst language.

    :copyright: Copyright 2006-present 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                   @   sf  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d�ejdfeddd�ejdfed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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.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
 ƒ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d�e&j+fdJe&fdKeejeƒfdLeejeƒdfedMdd�ejfedNdd�ejfedOdd�ejfdPeeejƒfdQejfdRejfdSejfdTejfdUejfedVdd�ejfdWejfdBe#fdXefgdYed4fdZe#d4fedƒgd[œZ,d\d]„ Z-d^d_„ Z.d`S )ar   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                 K   s,   t |dg d¢ddƒ| _tj| fi |¤Ž d S )NÚstart)r   r    r"   r   T)r   Ústart_stater   Ú__init__)ÚselfÚoptions© rG   úR/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pygments/lexers/typst.pyrD   •   s   ÿzTypstLexer.__init__c                 c   s6   � dg}| j dkr| | j ¡ t | ||¡E d H  d S )NrA   r   )rC   Úappendr   Úget_tokens_unprocessed)rE   ÚtextÚstackrG   rG   rH   rJ   ›   s
   €
z!TypstLexer.get_tokens_unprocessedN)/Ú__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ÚtokensrD   rJ   rG   rG   rG   rH   r      sÒ    
	ÿòé

ñþÿþã ýžiN)rP   Úpygments.lexerr   r   r   r   Úpygments.tokenr   r   r   r	   r
   r   r   r   r   r   Úpygments.utilr   Ú__all__r   rG   rG   rG   rH   Ú<module>   s    
0