B
    (d6                 @   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 dddgZG dd deZG dd deZG d	d deZd
S )a9  
    pygments.lexers.minecraft
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Minecraft related languages.
    
    SNBT. A data communication format used in Minecraft.
    wiki: https://minecraft.fandom.com/wiki/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.fandom.com/wiki/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-2023 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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

    .. versionadded:: 2.12.0
    SNBTz,https://minecraft.fandom.com/wiki/NBT_formatsnbtz*.snbtz	text/snbtz\{compoundz[^\{]+z\s+z[,:;]z(true|false)z-?\d+[eE]-?\d+z-?\d*\.\d+[fFdD]?z-?\d+[bBsSlLfFdD]?"zliterals.string_double'zliterals.string_singlez\\.z	[^\\"\n]+z#popz	[^\\'\n]+z
[A-Z_a-z]+	operators
whitespaceliteralsz#pushz\[listz\}z\])rootr   r   r   zliterals.string_doublezliterals.string_singler   r   N)__name__
__module____qualname____doc__nameurlaliases	filenames	mimetypesr   r   r   r   Constantr
   FloatIntegerr   DoubleSingleEscaper	   	Attributer   tokens r.   r.   f/work/yifan.wang/ringdown/master-ringdown-env/lib/python3.7/site-packages/pygments/lexers/minecraft.pyr      sH   

c               @   s  e Zd ZdZdZdZddgZdgZdg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d/fgd0ej%fd1ej$fd,ej$d fgd0ej%fd2ejfd.ejd fgd3ejfgd4e&d5fd6e&d7fge
de
dd8e&d fge
de
dd9e&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<d/fd?e j#d<fed gd0ej%fd1ej'fd,ej'd fgd0ej%fd2ej'fd.ej'd fge
dd@e&dAfd:e&fed ge
ddBej(fd=ej(fe
de
ded gdCZ)dDS )Er   zLexer for the mcfunction scripting language used in Minecraft
    Modelled somewhat after the `GitHub mcfunction grammar <https://github.com/Arcensoth/language-mcfunction>`_.

    .. versionadded:: 2.12.0
    
MCFunctionz*https://minecraft.fandom.com/wiki/Commands
mcfunctionmcfz*.mcfunctionztext/mcfunctionz[>!]namescommentsr   r   propertyr   	selectorsz^(\s*)([a-z_]+)z(?<=run)\s+[a-z_]+z$\b[0-9a-fA-F]+(?:-[0-9a-fA-F]+){4}\bzresource-namez[A-Za-z_][\w.#%$]+z[#%$][\w.#%$]+z#?[a-z_][a-z_.-]*:[a-z0-9_./-]+z"#?[a-z0-9_\.\-]+\/[a-z0-9_\.\-\/]+z\s+z^\s*(#))zcomments.blockzcomments.block.emphasizedz#.*$z^\s*#zcomments.block.emphasizedzcomments.block.normalz#popzcomments.block.specialz\S+z\nz@\S+z[\-~%^?!+*<>\\/|&=.]z\.\.z(true|false)z
[A-Za-z_]+z[0-7]bz%[+-]?\d*\.?\d+([eE]?[+-]?\d+)?[df]?\bz
[+-]?\d+\br   zliterals.string-doubler   zliterals.string-singlez\\.z	[^\\"\n]+z	[^\\'\n]+z@[a-z]z\{)zproperty.curlyzproperty.keyz\[)zproperty.squarezproperty.keyz\}z\],z-#?[a-z_][a-z_\.\-]*\:[a-z0-9_\.\-/]+(?=\s*\=)zproperty.delimiterz#?[a-z_][a-z0-9_\.\-/]+z[A-Za-z_\-\+]+z-?\d+z[:=]!?zproperty.valuez$#?[a-z_][a-z_\.\-]*\:[a-z0-9_\.\-/]+)r   r3   zresource-namer   r4   zcomments.blockzcomments.block.normalzcomments.block.emphasizedzcomments.block.specialr   r   zliterals.string-doublezliterals.string-singler6   r5   zproperty.curlyzproperty.squarezproperty.keyzproperty.key.string-doublezproperty.key.string-singlezproperty.delimiterzproperty.valueN)*r   r   r   r    r!   r"   r#   r$   r%   Z_block_comment_prefixr   r   r   r	   BuiltinVariabler   r&   MagicFunctionr   	Multiliner*   r   r   r   Doc	Decoratorr   r   PseudoClassr
   ZByter'   r(   r)   r+   r   r,   Tagr-   r.   r.   r.   r/   r   f   s   





!





c            "   @   sV  e Zd ZdZdZdZdgZdgZdg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

    .. versionadded:: 2.14.0
    MCSchemazWhttps://learn.microsoft.com/en-us/minecraft/creator/reference/content/schemasreference/mcschemaz
*.mcschemaztext/mcschemaz\s+z//.*?$z	/\*.*?\*/commentsandwhitespacez7/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuysd]+\b|\B)z#popz(?=/))z#popbadregexz\nz\\.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)rE   rG   rF   rH   rI   r   N)"r   r   r   r    r!   r"   r#   r$   r%   r   r   r*   r=   r   r   Regexr   r   r+   r)   r   Wordr   Declarationr
   BinOctHexr(   r'   r   Symbolr   r-   r.   r.   r.   r/   r   B  sP   







&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
I ]