o
    	ȷe+                     @   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-2022 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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d0ejjfed1d.d+d/ejjfgd2ejfd3ejfd4ej fd5ej!fgd6efgd6ej"d7fe#d7gd6ej$d7fgd8ej%fge	eje	ejd9ejd7fd:ej%fed;gd<ejd7fd=ej%fed>gd?ejd7fed;de
fgd@ejd7fed>de
fgdAZ&dBdC Z'dDS )Er   z#
    For GDScript source code.
    GDScriptzhttps://www.godotengine.org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   Interpol)ttype r   O/var/www/ideatree/venv/lib/python3.10/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_nameextendsisfuncsetgetsignaltoolconstenumexportonreadystaticvarbreakcontinueifelifelseforpassreturnmatchwhileremotemasterpuppet
remotesync
mastersync
puppetsyncz\b)suffix)GColor8ColorNabsacosasinassertatanatan2	bytes2varceilcharclampconvertcoscosh	db2lineardecimalsdectimedeg2rad	dict2insteaseexpfloorfmodfposmodfuncrefhash	inst2dictinstance_from_idis_infis_nanlerp	linear2dbloadlogmaxminnearest_po2powpreloadprintprint_stackprinterrprintrawprintsprinttrad2deg
rand_range	rand_seedrandfrandi	randomizerangeroundseedsignsinsinhsqrtstepifystrstr2vartanr   tanh
type_existtypeof	var2bytesvar2strweakrefyieldz(?<!\.))prefixrJ   z-((?<!\.)(self|false|true)|(PI|TAU|NAN|INF))\b)boolintfloatr   NodePathVector2Rect2Transform2DVector3Rect3PlaneQuatBasis	TransformColorRIDObjectr   
DictionaryArrayPackedByteArrayPackedInt32ArrayPackedInt64ArrayPackedFloat32ArrayPackedFloat64ArrayPackedStringArrayPackedVector2ArrayPackedVector3ArrayPackedColorArraynull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#   r   r   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searchro   )textscorer   r   r   analyse_textJ  s   
zGDScriptLexer.analyse_textN)(__name__
__module____qualname____doc__r$   urlaliases	filenames	mimetypesr   r   r   r   AffixDocr	   Singler   r   r
   Wordr   r   Doubler   r   r   BuiltinPseudoTyper   FloatHexIntegerFunctionr   ClassEscapetokensr   r   r   r   r   r      s    E&)0IM
P!%|



    )r   r   pygments.lexerr   r   r   r   r   r   pygments.tokenr   r	   r
   r   r   r   r   r   r   __all__compileline_rer   r   r   r   r   <module>   s     ,
