Ë
    !täi@   ã                   ó|   — d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
mZ ddlmZ ddgZ G d„ de«      Z G d„ de«      Zy	)
zÎ
    pygments.lexers.pawn
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for the Pawn languages.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )Ú
RegexLexer)ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuation)Úget_bool_optÚSourcePawnLexerÚ	PawnLexerc                   ó.  — e Zd ZdZdZdgZdgZdgZdZdZ	dZ
d	Zd
ej                  dfdej                  dfdez   dz   ej                  dfdez   dz   ej                  dfdefdefdefdej                  fdej                   fdefdedfdej&                  fdej*                  fdej*                  fdej,                  fdej.                  fdej0                  fdefd efd!efd"ej6                  fd#ej8                  fd$efgd%ed&fd'ej<                  fd(efdefd)efgd*ej                  fd+ej                   fd,ej                  d&fd-ej                  fd.ej                  fdej                  d&fgd/ej                  d0fd1ej                  d&fd2efgd3œZh d4£Z d5„ Z!d6„ Z"y7)8r   zB
    For SourcePawn source code with preprocessor directives.
    Ú
SourcePawnÚspz*.spztext/x-sourcepawnz+https://github.com/alliedmodders/sourcepawnz1.6z(?:\s|//.*?\n|/\*.*?\*/)+ú\s*(?:/[*].*?[*]/\s*)*ú^#if\s+0Úif0ú^#ÚmacroÚ^ú#if\s+0Ú#ú\nú\s+ú\\\nú/(\\\n)?/(\n|(.|\n)*?[^\\]\n)z/(\\\n)?\*(.|\n)*?\*(\\\n)?/ú[{}]úL?"Ústringú4L?'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'ú'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[LlUu]*ú(\d+\.\d*|\.\d+|\d+[fF])[fF]?ú0x[0-9a-fA-F]+[LlUu]*ú0[0-7]+[LlUu]*ú
\d+[LlUu]*ú[~!%^&*+=|?:<>/-]ú[()\[\],.;]zs(case|const|continue|native|default|else|enum|for|if|new|operator|public|return|sizeof|static|decl|struct|switch)\bú(bool|Float)\bú(true|false)\bú[a-zA-Z_]\w*Ú"ú#popú/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})ú	[^\\"\n]+ú\\ú[^/\n]+ú/\*(.|\n)*?\*/ú//.*?\nÚ/ú	(?<=\\)\nú^\s*#if.*?(?<!\\)\nú#pushú^\s*#endif.*?(?<!\\)\nú.*?\n©Úrootr    r   r   >M   ÚanyÚboolÚFloatÚTimerÚAPLResÚActionÚHandleÚPluginr	   ÚTFCondÚTFTeamÚAdminIdÚGroupIdÚNetFlowÚRayTypeÚSDKTypeÚUserMsgÚDBResultÚExecTypeÚFileTypeÚFunctionÚIdentityÚMoveTypeÚPathTypeÚPropTypeÚRenderFxÚSMCErrorÚSortTypeÚ	AdminFlagÚ	EventHookÚ	MapChangeÚ	MenuStyleÚ	ParamTypeÚ	SMCResultÚ	SortOrderÚ
CookieMenuÚ
DBBindTypeÚ
DBPriorityÚ
DialogTypeÚ
MenuActionÚ
MenuSourceÚ
PluginInfoÚ
RegexErrorÚ
RenderModeÚ
SDKLibraryÚ
SortFunc2DÚFeatureTypeÚKvDataTypesÚQueryCookieÚReplySourceÚSDKCallTypeÚTFClassTypeÚConVarBoundsÚCookieAccessÚFileTimeModeÚImmunityTypeÚOverrideRuleÚOverrideTypeÚPluginStatusÚAdmAccessModeÚEventHookModeÚFeatureStatusÚPropFieldTypeÚSDKPassMethodÚTopMenuActionÚTopMenuObjectÚAdminCachePartÚListenOverrideÚNominateResultÚTFResourceTypeÚTopMenuPositionÚCookieMenuActionÚConVarQueryResultÚSDKFuncConfSourceÚTopMenuObjectTypeÚTraceEntityFilterÚConVarQueryFinishedc                 óÌ   — t        |dd«      | _        t        «       | _        | j                  r!ddlm} | j                  j                  |«       t        j                  | fi |¤Ž y )NÚ	sourcemodTr   )Ú	FUNCTIONS)	r   ÚsmhighlightingÚsetÚ
_functionsÚ#pygments.lexers._sourcemod_builtinsrŠ   Úupdater   Ú__init__)ÚselfÚoptionsrŠ   s      úc/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/pygments/lexers/pawn.pyr�   zSourcePawnLexer.__init__k   sR   € Ü*¨7Ø+6¸ó>ˆÔô ›%ˆŒØ×ÒÝEØ�O‰O×"Ñ" 9Ô-Ü×Ñ˜DÑ, GÓ,ó    c              #   óú   K  — t        j                  | |«      D ]^  \  }}}|t        u rI| j                  r=|| j                  v rt
        j                  }n|| j                  v rt        j                  }|||f–— Œ` y ­w)N)	r   Úget_tokens_unprocessedr   r‹   ÚSM_TYPESr   ÚTyper�   ÚBuiltin)r‘   ÚtextÚindexÚtokenÚvalues        r“   r–   z&SourcePawnLexer.get_tokens_unprocessedu   sm   è ø€ ä×1Ñ1°$¸Ö=ñ  ˆE�5˜%àœ‰}Ø×&Ò&Ø §¡Ñ-Ü '§¡™Ø $§/¡/Ñ1Ü $§¡˜Ø˜ Ð%Ó%ñ >ùs   ‚A9A;N)#Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚurlÚversion_addedÚ_wsÚ_ws1r   ÚPreprocr   ÚSingleÚ	Multiliner   r	   ÚCharr
   r>   ÚHexÚOctÚIntegerr   r   r˜   ÚConstantr   ÚEscapeÚtokensr—   r�   r–   © r”   r“   r   r      s%  „ ñð €DØˆf€GØ�€IØ$Ð%€IØ
7€CØ€Mð '€Cà$€Dð
 ˜'Ÿ/™/¨5Ð1Ø�7—?‘? GÐ,à�4‰Z˜*Ñ$ g§o¡o°uÐ=Ø�4‰Z˜#Ñ˜wŸ™°Ð8Ø�DˆMØ�TˆNØ�dˆOØ-¨w¯~©~Ð>Ø,¨g×.?Ñ.?Ð@Ø�kÐ"Ø�V˜XÐ&ØDÀfÇkÁkÐRØ7¸¿¹ÐFØ-¨v¯|©|Ð<Ø% v§z¡zÐ2Ø §
¡
Ð+Ø˜FŸN™NÐ+Ø! 8Ð,Ø˜[Ð)ðBàCJðLð  §¡Ð-Ø × 0Ñ 0Ð1Ø˜dÐ#ð7
ð< �6˜6Ð"Ø?ÀÇÁÐOØ˜6Ð"Ø�fÐØ�FˆOð
ð ˜Ÿ™Ð)Ø × 1Ñ 1Ð2Ø˜Ÿ™¨Ð0Ø�7—?‘?Ð#Ø˜7Ÿ?™?Ð+Ø�G—O‘O VÐ,ð
ð $ W§_¡_°gÐ>Ø&¨¯©¸Ð@Ø�wÐð
ñ[2€Fòh?€Hò(-ó	&r”   c                   ó"  — e Zd ZdZdZdgZg d¢ZdgZdZdZ	dZ
d	Zd
ej                  dfdej                  dfdez   dz   ej                  dfdez   dz   ej                  dfdefdefdefdej                  fdej                   fdefdedfdej&                  fdej*                  fdej*                  fdej,                  fdej.                  fdej0                  fdefd efd!efd"ej6                  fd#ej8                  fd$efgd%ed&fd'ej<                  fd(efdefd)efgd*ej                  fd+ej                   fd,ej                  d&fd-ej                  fd.ej                  fdej                  d&fgd/ej                  d0fd1ej                  d&fd2efgd3œZd4„ Z y5)6r   z
    For Pawn source code.
    ÚPawnÚpawn)z*.pz*.pwnz*.incztext/x-pawnz(https://www.compuphase.com/pawn/pawn.htmz2.0z (?:\s|//.*?\n|/[*][\w\W]*?[*]/)+r   r   r   r   r   r   r   r   r   r   r   r   z/(\\\n)?\*[\w\W]*?\*(\\\n)?/r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   z…(switch|case|default|const|new|static|char|continue|break|if|else|for|while|do|operator|enum|public|return|sizeof|tagof|state|goto)\br)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   c                 ó   — d| v ryy)zvThis is basically C. There is a keyword which doesn't exist in C
        though and is nearly unique to this language.Útagofg{®Gáz„?Nr´   )rš   s    r“   Úanalyse_textzPawnLexer.analyse_textÆ   s   € ð �d‰?Øð r”   N)!rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   r   rª   r   r«   r¬   r   r	   r­   r
   r>   r®   r¯   r°   r   r   r˜   r±   r   r²   r³   rº   r´   r”   r“   r   r   �   s  „ ñð €DØˆh€GÚ)€IØ�€IØ
4€CØ€Mð .€Cà$€Dð
 ˜'Ÿ/™/¨5Ð1Ø�7—?‘? GÐ,à�4‰Z˜*Ñ$ g§o¡o°uÐ=Ø�4‰Z˜#Ñ˜wŸ™°Ð8Ø�DˆMØ�TˆNØ�dˆOØ-¨w¯~©~Ð>Ø,¨g×.?Ñ.?Ð@Ø�kÐ"Ø�V˜XÐ&ØDÀfÇkÁkÐRØ7¸¿¹ÐFØ-¨v¯|©|Ð<Ø% v§z¡zÐ2Ø §
¡
Ð+Ø˜FŸN™NÐ+Ø! 8Ð,Ø˜[Ð)ð9à:AðCð  §¡Ð-Ø × 0Ñ 0Ð1Ø˜dÐ#ð7
ð< �6˜6Ð"Ø?ÀÇÁÐOØ˜6Ð"Ø�fÐØ�FˆOð
ð ˜Ÿ™Ð)Ø × 1Ñ 1Ð2Ø˜Ÿ™¨Ð0Ø�7—?‘?Ð#Ø˜7Ÿ?™?Ð+Ø�G—O‘O VÐ,ð
ð $ W§_¡_°gÐ>Ø&¨¯©¸Ð@Ø�wÐð
ñ[2€Fóhr”   N)r¡   Úpygments.lexerr   Úpygments.tokenr   r   r   r   r   r	   r
   r   Úpygments.utilr   Ú__all__r   r   r´   r”   r“   Ú<module>r¿      sH   ðñõ &÷÷ ó å &à˜kÐ
*€ôk&�jô k&ô\I�
õ Ir”   