a
    ñ»j…5  ã                   @   sˆ   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 g d¢ZG dd„ deƒZG dd„ deƒZG d	d
„ d
eƒZdS )a  
    pygments.lexers.minecraft
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Minecraft related languages.

    SNBT. A data communication format used in Minecraft.
    wiki: https://minecraft.wiki/w/NBT_format

    MCFunction. The Function file for Minecraft Data packs and Add-ons.
    official: https://learn.microsoft.com/en-us/minecraft/creator/documents/functionsintroduction
    wiki: https://minecraft.wiki/w/Function

    MCSchema. A kind of data Schema for Minecraft Add-on Development.
    official: https://learn.microsoft.com/en-us/minecraft/creator/reference/content/schemasreference/
    community example: https://www.mcbe-dev.net/addons/data-driven/manifest.html

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )Ú
RegexLexerÚdefaultÚincludeÚbygroups)
ÚCommentÚKeywordÚLiteralÚNameÚNumberÚOperatorÚPunctuationÚStringÚTextÚ
Whitespace)Ú	SNBTLexerÚMCFunctionLexerÚMCSchemaLexerc                   @   s*  e Zd ZdZdZdZdgZdgZdgZdZ	de
d	fd
efgdefgde
fgdejfdejfdejfdejfdejdfdejdfgdejfdejfdejdfgdejfdejfdejdfgdejfedƒedƒedƒde
dfde
dfd e
dfgdejfedƒedƒedƒde
dfde
d	fd!e
dfgd"œZd#S )$r   z?Lexer for stringified NBT, a data format used in Minecraft
    ÚSNBTz#https://minecraft.wiki/w/NBT_formatÚsnbtz*.snbtz	text/snbtú2.12ú\{Úcompoundz[^\{]+ú\s+z[,:;]ú(true|false)z-?\d+[eE]-?\d+z-?\d*\.\d+[fFdD]?z-?\d+[bBsSlLfFdD]?ú"úliterals.string_doubleú'úliterals.string_singleú\\.ú	[^\\"\n]+ú#popú	[^\\'\n]+z
[A-Z_a-z]+Ú	operatorsÚ
whitespaceÚliteralsz#pushú\[Úlistú\}ú\])Úrootr#   r"   r$   r   r   r   r&   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚversion_addedr   r   r   r   ÚConstantr
   ÚFloatÚIntegerr   ÚDoubleÚSingleÚEscaper	   Ú	Attributer   Útokens© r<   r<   ú?E:\soccer\ml_env\Lib\site-packages\pygments/lexers/minecraft.pyr      s\   üÿÿ

ø
ý
ý	÷ùÏr   c                   @   sì  e Zd ZdZdZdZddgZdgZdgZdZ	d	Z
ed
ƒedƒedƒedƒedƒedƒedƒgdeeejƒfdejfdejfedƒdejfdejjfgdejfdejfgdefgde
› d�ejdfdejfgde
› �ejdfdejd fed!ƒged"ƒd#ejfd$ed!fedƒged"ƒd#ejfd$ed!fedƒgd%ejfedƒdejjfgd&efgd'efd(ejfd)ejj fd*e!j"fd+e!j#fd,e!j$fd-ej%d.fd/ejd0fgd1ej&fd2ej%fd-ej%d!fgd1ej&fd3ejfd/ejd!fgd4ejfgd5e'd6fd7e'd8fgedƒedƒd9e'd!fgedƒedƒd:e'd!fd;e'fgedƒd<ej(d=fd>ej(d=fd?ej(d=fd-ej(d=d.fd/ej(d=d0fd@e!j$d=fed!ƒgd1ej&fd2ej(fd-ej(d!fgd1ej&fd3ej(fd/ej(d!fgedƒdAe'dBfd;e'fed!ƒgedƒdCej)fd>ej)fedƒedƒed!ƒgdDœZ*dES )Fr   zµLexer for the mcfunction scripting language used in Minecraft.

    Modelled somewhat after the `GitHub mcfunction grammar <https://github.com/Arcensoth/language-mcfunction>`_.
    Ú
MCFunctionz!https://minecraft.wiki/w/CommandsÚ
mcfunctionÚmcfz*.mcfunctionztext/mcfunctionr   z[>!]ÚnamesÚcommentsr$   r#   Úpropertyr"   Ú	selectorsz^(\s*)([a-z_]+)z(?<=run)\s+[a-z_]+z$\b[0-9a-fA-F]+(?:-[0-9a-fA-F]+){4}\búresource-namez[A-Za-z_][\w.#%$]+z[#%$][\w.#%$]+z#?[a-z_][a-z_.-]*:[a-z0-9_./-]+z"#?[a-z0-9_\.\-]+\/[a-z0-9_\.\-\/]+r   z^\s*(#ú))úcomments.blockúcomments.block.emphasizedz#.*$z^\s*#rH   úcomments.block.normalr    úcomments.block.specialz\S+ú\nz@\S+z[\-~%^?!+*<>\\/|&=.]z\.\.r   z
[A-Za-z_]+z[0-7]bz%[+-]?\d*\.?\d+([eE]?[+-]?\d+)?[df]?\bz
[+-]?\d+\br   úliterals.string-doubler   úliterals.string-singler   r   r!   z@[a-z]r   )úproperty.curlyúproperty.keyr%   )úproperty.squarerO   r'   r(   ú,z-#?[a-z_][a-z_\.\-]*\:[a-z0-9_\.\-/]+(?=\s*\=)úproperty.delimiterz#?[a-z_][a-z0-9_\.\-/]+z[A-Za-z_\-\+]+z-?\d+z[:=]!?úproperty.valuez$#?[a-z_][a-z_\.\-]*\:[a-z0-9_\.\-/]+)r)   rA   rE   r#   rB   rG   rI   rH   rJ   r"   r$   rL   rM   rD   rC   rN   rP   rO   zproperty.key.string-doublezproperty.key.string-singlerR   rS   N)+r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   Z_block_comment_prefixr   r   r   r	   ÚBuiltinÚVariabler   r4   ÚMagicÚFunctionr   Ú	Multiliner8   r   r   r   ÚDocÚ	Decoratorr   r   ÚPseudoÚClassr
   ZByter5   r6   r7   r9   r   r:   ÚTagr;   r<   r<   r<   r=   r   e   sê   ù
óû	ÿÿýÿ
üüü
ùÿ


õ
ý
ýÿ"ù
ýú	



í
ý
ýú	ö€ Ãr   c                "   @   sZ  e Zd ZdZdZdZdgZdgZdgZdZ	de
fd	ejfd
ejfgedƒdejdfdedfedƒgde
dfgdejfdejdfdejfgdejfdejdfdejfgd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defd edfd!edfd"efdejd#fdejd$fd%ej fd&e!ej eejeejeejeeeeƒfd'efgd(œZ"d)S )*r   z`Lexer for Minecraft Add-ons data Schemas, an interface structure standard used in Minecraft
    ÚMCSchemazWhttps://learn.microsoft.com/en-us/minecraft/creator/reference/content/schemasreference/Úmcschemaz
*.mcschemaztext/mcschemaz2.14r   z//.*?$z	/\*.*?\*/Úcommentsandwhitespacez7/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuysd]+\b|\B)r    z(?=/))r    ÚbadregexrK   r   r   z[^\\']+r   z[^\\"]+z^(?=\s|/|<!--)Úslashstartsregexz
(?<=: )optz(?<=\s)[\w-]*(?=(\s+"|\n))z
0[bB][01]+z0[oO]?[0-7]+z0[xX][0-9a-fA-F]+z\d+z#(\.\d+|\d+\.\d*|\d+)([eE][-+]?\d+)?z	\.\.\.|=>zP\+\+|--|~|\?\?=?|\?|:|\\(?=\n)|(<<|>>>?|==?|!=?|(?:\*\*|\|\||&&|[-<>+*%&|^/]))=?z[{(\[;,]z[})\].]ÚsinglestringÚdoublestringz[\w-]*?(?=:\{?\n)z�([\w-]*?)(:)(\d+)(?:(\.)(\d+)(?:(\.)(\d+)(?:(\-)((?:[^\W_]|-)*(?:\.(?:[^\W_]|-)*)*))?(?:(\+)((?:[^\W_]|-)+(?:\.(?:[^\W_]|-)+)*))?)?)?(?=:\{?\n)z.*\n)r`   rb   ra   rc   rd   r)   N)#r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r   r   r8   rX   r   r   ÚRegexr   r   r9   r7   r   ÚWordr   ÚDeclarationr
   ÚBinÚOctÚHexr6   r5   r   ÚSymbolr   r;   r<   r<   r<   r=   r   A  sd   ýÿûÿ
ý
ýÿ

&àær   N)r-   Zpygments.lexerr   r   r   r   Zpygments.tokenr   r   r   r	   r
   r   r   r   r   r   Ú__all__r   r   r   r<   r<   r<   r=   Ú<module>   s   0H ]