a
    ;@b+                     @   s|   d Z ddlZddlmZmZ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 dgZedZG dd deZdS )a#  
    pygments.lexers.gdscript
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Lexer for GDScript.

    Modified by Daniel J. Ramirez <djrmuv@gmail.com> based on the original
    python.py.

    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerincludebygroupsdefaultwordscombined)	TextCommentOperatorKeywordNameStringNumberPunctuation
WhitespaceGDScriptLexerz.*?
c                   @   s  e Zd ZdZdZddgZdgZddgZdd	 Zd
e	fde
e	ejejfde
e	ejejfde	fdejfdefde
ee	fdefdejfdefedde
ee	dfde
ee	dfedde
ejejdfde
ejejdfde
ejejdfd e
ejejd!fd"e
ejejed#dfd$e
ejejed#dfd%e
ejejed#dfd&e
ejejed#d!fed'ed(ged)d*d+efged,d-d*d.ejfd/ejjfed0d-d*d.ejjfgd1ejfd2ejfd3ejfd4ej fgd5efgd5ej!d6fe"d6gd5ej#d6fgd7ej$fgeejeejd8ejd6fd9ej$fed:gd;ejd6fd<ej$fed=gd>ejd6fed:d
e	fgd?ejd6fed=d
e	fgd@Z%dAdB Z&dCS )Dr   zD
    For `GDScript source code <https://www.godotengine.org>`_.
    ZGDScriptZgdscriptgdz*.gdztext/x-gdscriptzapplication/x-gdscriptc                 C   s   dt jfd| fd| fd| fgS )NzG%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]z[^\\\'"%\n]+z[\'"\\]%)r   ZInterpol)Zttype r   7lib/python3.9/site-packages/pygments/lexers/gdscript.pyinnerstring_rules$   s    zGDScriptLexer.innerstring_rulesz\nz&^(\s*)([rRuUbB]{,2})("""(?:.|\n)*?""")z&^(\s*)([rRuUbB]{,2})('''(?:.|\n)*?''')z[^\S\n]+z#.*$z[]{}:(),;[]z(\\)(\n)z\\z(in|and|or|not)\bz=!=|==|<<|>>|&&|\+=|-=|\*=|/=|%=|&=|\|=|\|\||[-~+/*%=<>&^.!|$]keywordsz(func)(\s+)funcnamez(class)(\s+)	classnamebuiltinsz!([rR]|[uUbB][rR]|[rR][uUbB])(""")tdqsz!([rR]|[uUbB][rR]|[rR][uUbB])(''')tsqsz([rR]|[uUbB][rR]|[rR][uUbB])(")dqsz([rR]|[uUbB][rR]|[rR][uUbB])(')sqsz([uUbB]?)(""")stringescapez([uUbB]?)(''')z([uUbB]?)(")z([uUbB]?)(')namenumbers)$andinnotoras
breakpointclass
class_nameZextendsisfuncZsetgetsignalZtoolconstenumZexportZonreadyZstaticvarbreakcontinueifelifelseforpassreturnmatchwhileZremoteZmasterZpuppetZ
remotesyncZ
mastersyncZ
puppetsyncz\b)suffix)GZColor8ZColorNabsZacosZasinassertZatanZatan2Z	bytes2varZceilcharZclampZconvertZcosZcoshZ	db2linearZdecimalsZdectimeZdeg2radZ	dict2instZeaseZexpZfloorZfmodZfposmodZfuncrefhashZ	inst2dictZinstance_from_idZis_infZis_nanZlerpZ	linear2dbloadlogmaxminZnearest_po2powZpreloadprintprint_stackZprinterrZprintrawZprintsZprinttZrad2degZ
rand_rangeZ	rand_seedZrandfZrandiZ	randomizerangeroundZseedsignZsinZsinhZsqrtZstepifystrZstr2vartanrJ   ZtanhZ
type_existZtypeofZ	var2bytesZvar2strweakrefyieldz(?<!\.))prefixr:   z-((?<!\.)(self|false|true)|(PI|TAU|NAN|INF))\b)boolintfloatr   NodePathZVector2ZRect2ZTransform2DZVector3ZRect3ZPlaneZQuatZBasisZ	TransformZColorZRIDZObjectrQ   Z
DictionaryZArrayZPackedByteArrayZPackedInt32ArrayZPackedInt64ArrayZPackedFloat32ArrayZPackedFloat64ArrayZPackedStringArrayZPackedVector2ArrayZPackedVector3ArrayZPackedColorArrayZnullZvoidz'(\d+\.\d*|\d*\.\d+)([eE][+-]?[0-9]+)?j?z\d+[eE][+-]?[0-9]+j?z0[xX][a-fA-F0-9]+z\d+j?z[a-zA-Z_]\w*z#popzY\\([\\abfnrtv"\']|\n|N\{.*?\}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})"z\\\\|\\"|\\\nstrings-double'z\\\\|\\'|\\\nstrings-singlez"""z''')rootr   r   r!   r    r   r   r   rU   rS   r   r   r   r   c                 C   sJ   d}t d| r|d7 }t d| r,|d7 }t d| r@|d7 }t|dS )	Ng        z4func (_ready|_init|_input|_process|_unhandled_input)g?z=(extends |class_name |onready |preload|load|setget|func [^_])g?z#(var|const|enum|export|signal|tool)g?g      ?)researchrB   )textZscorer   r   r   analyse_textI  s    zGDScriptLexer.analyse_textN)'__name__
__module____qualname____doc__r    aliases	filenamesZ	mimetypesr   r   r   r   ZAffixZDocr	   Singler   r   r
   ZWordr   r   Doubler   r   r   ZBuiltinZPseudoTyper   ZFloatZHexZIntegerZFunctionr   ZClassZEscapetokensrZ   r   r   r   r   r      s   E&)0IMP
!%|



    )r^   rW   Zpygments.lexerr   r   r   r   r   r   Zpygments.tokenr   r	   r
   r   r   r   r   r   r   __all__compileZline_rer   r   r   r   r   <module>   s    ,
