3

V'íc6ã@sŠdZddlmZmZmZmZddlmZmZm	Z	m
Z
mZmZm
Z
mZmZmZdddgZGdd„deƒZGdd„deƒZGd	d„deƒZd
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-2022 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&eZdZdZdZdZdgZdgZdgZde	dfd	e
fgd
efgde	fgdej
fd
ejfdejfdejfdejdfdejdfgdejfdejfdejdfgdejfdejfdejdfgdejfedƒedƒedƒde	dfde	dfde	dfgdejfedƒedƒedƒde	dfde	dfd e	dfgd!œZd"S)#rz]Lexer for stringified NBT, a data format used in Minecraft

    .. versionadded:: 2.12.0
    ZSNBTz,https://minecraft.fandom.com/wiki/NBT_formatZsnbtz*.snbtz	text/snbtz\{Úcompoundz[^\{]+z\s+z[,:;]z(true|false)z-?\d+[eE]-?\d+z-?\d*\.\d+[fFdD]?z-?\d+[bBsSlLfFdD]?ú"zliterals.string_doubleú'zliterals.string_singlez\\.z	[^\\"\n]+z#popz	[^\\'\n]+z
[A-Z_a-z]+Ú	operatorsÚ
whitespaceÚliteralsz#pushz\[Úlistz\}z\])Úrootrrrzliterals.string_doublezliterals.string_singlerrN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesrrrrÚConstantr
ÚFloatÚIntegerr
ÚDoubleÚSingleÚEscaper	Ú	AttributerÚtokens©r,r,ú=/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/minecraft.pyrsH

c@sèeZdZdZdZdZddgZdgZdgZdZ	e
d	ƒe
d
ƒe
dƒe
dƒe
d
ƒe
dƒe
dƒgdeee
jƒfde
jfde
jfe
dƒdejfde
jjfgde
jfde
jfgdefgde	›dejdFfdejfgde	›ejdfdejdfed ƒge
d!ƒd"ejfd#ed fe
dƒge
d!ƒd"ejfd#ed fe
dƒgd$e
jfe
dƒde
jjfgd%efgd&efd'ejfd(e
jjfd)e j!fd*e j"fd+e j#fd,ej$d-fd.ejd/fgd0ej%fd1ej$fd,ej$d fgd0ej%fd2ejfd.ejd fgd3e
jfgd4e&dGfd7e&dHfge
dƒe
d
ƒd9e&d fge
dƒe
d
ƒd:e&d fd;e&fge
dƒd<e
j'd=fd>e
j'd=fd?e
j'd=fd,e
j'd=d-fd.e
j'd=d/fd@e j#d=fed ƒgd0ej%fd1e
j'fd,e
j'd fgd0ej%fd2e
j'fd.e
j'd fge
dƒdAe&dBfd;e&fed ƒge
dƒdCe
j(fd>e
j(fe
dƒe
d
ƒed ƒgdDœZ)dES)IrzÑLexer 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
    Z
MCFunctionz*https://minecraft.fandom.com/wiki/CommandsZ
mcfunctionZmcfz*.mcfunctionztext/mcfunctionz[>!]ÚnamesÚcommentsrrÚ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*(#ú)úcomments.blockúcomments.block.emphasizedz#.*$z^\s*#zcomments.block.normalz#popzcomments.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+\brzliterals.string-doublerzliterals.string-singlez\\.z	[^\\"\n]+z	[^\\'\n]+z@[a-z]z\{úproperty.curlyúproperty.keyz\[úproperty.squarez\}z\]ú,z-#?[a-z_][a-z_\.\-]*\:[a-z0-9_\.\-/]+(?=\s*\=)zproperty.delimiterz#?[a-z_][a-z0-9_\.\-/]+z[A-Za-z_\-\+]+z-?\d+z[:=]!?zproperty.valuez$#?[a-z_][a-z_\.\-]*\:[a-z0-9_\.\-/]+)rr.z
resource-namerr/zcomments.blockzcomments.block.normalzcomments.block.emphasizedzcomments.block.specialrrzliterals.string-doublezliterals.string-singler1r0zproperty.curlyzproperty.squarezproperty.keyzproperty.key.string-doublezproperty.key.string-singlezproperty.delimiterzproperty.valueN)r3r4)r5r6)r7r6)*rrrrrr r!r"r#Z_block_comment_prefixrrrr	ZBuiltinÚVariablerr$ZMagicZFunctionrÚ	Multiliner(rrr
ZDocZ	DecoratorrrZPseudoZClassr
ZByter%r&r'r)rr*ZTagr+r,r,r,r-rfs´





!





c"@sVeZdZdZdZdZdgZdgZdgZde	fde
jfd	e
jfge
d
ƒdejdfd
ed)fedƒgde	dfgdejfdejdfdejfgdejfdejdfdejfgdedfe
d
ƒdejfdejfdejfdejfdejfdejfdejfdefdedfd edfd!efdejd"fdejd#fd$ejfd%e ejeejeejeejeeeeƒfd&efgd'œZ!d(S)*rz~Lexer for Minecraft Add-ons data Schemas, an interface structure standard used in Minecraft

    .. versionadded:: 2.14.0
    ZMCSchemazWhttps://learn.microsoft.com/en-us/minecraft/creator/reference/content/schemasreference/Zmcschemaz
*.mcschemaz
text/mcschemaz\s+z//.*?$z	/\*.*?\*/Úcommentsandwhitespacez7/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gimuysd]+\b|\B)ú#popz(?=/)Úbadregexz\nz\\.rz[^\\']+rz[^\\"]+z^(?=\s|/|<!--)Úslashstartsregexz
(?<=: )optz(?<=\s)[\w-]*(?=(\s+"|\n))z
0[bB][01]+z0[oO]?[0-7]+z0[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;r>r=r?r@rN)r<r=)"rrrrrr r!r"r#rrr(r:rr
ÚRegexrrr)r'rÚWordrZDeclarationr
ZBinÚOctZHexr&r%rZSymbolrr+r,r,r,r-rBsP







&N)rZpygments.lexerrrrrZpygments.tokenrrrr	r
rrr
rrÚ__all__rrrr,r,r,r-Ú<module>s0
I]