
    |ew                     x    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 G d de      Zy)a#  
    pygments.lexers.gdscript
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Lexer for GDScript.

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

    :copyright: Copyright 2006-2023 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GDScriptLexerc                   p   e Zd ZdZdZdZddgZdgZddgZ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*+      efg ed,d-d*.      ej6                  fd/ej6                  j8                  f ed0d-d*.      ej6                  j:                  fgd1ej>                  fd2ej>                  fd3ej@                  fd4ejB                  fgd5efgd5ejD                  d6f e#d6      gd5ejH                  d6fgd7ejJ                  fg e	ej                          e	ej.                        d8ej.                  d6fd9ejJ                  f ed:      gd;ej                   d6fd<ejJ                  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&dA Z'yB)Cr   z#
    For GDScript source code.
    GDScriptzhttps://www.godotengine.orggdscriptgdz*.gdztext/x-gdscriptzapplication/x-gdscriptc                 :    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)ttypes    :/usr/lib/python3/dist-packages/pygments/lexers/gdscript.pyinnerstring_ruleszGDScriptLexer.innerstring_rules#   s6    &__ e$5M
 	
    z\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(?<!\.))prefixrM   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                     d}t        j                  d|       r|dz  }t        j                  d|       r|dz  }t        j                  d|       r|dz  }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searchrr   )textscores     r   analyse_textzGDScriptLexer.analyse_text   sd    99CT
 SLE99L
 SLE99;TBSLE5#r   N)(__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      s    D
'C4 GI"$<=I
  J6j&,,

;=6j&,,

;=*%gnn%[)(445DM!8==1MJXgz:JGhw
;[IJ0fllFMM2 1fllFMM2 /fllFMM2 /fllFMM2 fllFMM2nf-/ fllFMM2nf-/ fllFMM2ne,. fllFMM2ne,. FOIW,
\  H  ! #*+
   &0? \\ B\\  " 8 %U4 \\ #
8 8F$fll3!6::.v~~&	
 "4()%t}}f=wvO&

F;<?
 ,FMM:+FMM:6==&)v}}-$%
 6==&)v}}-$%
 V]]F+$%J
 V]]F+$%J
gxFtr   )r   r   pygments.lexerr   r   r   r   r   r   pygments.tokenr	   r
   r   r   r   r   r   r   r   __all__r   r   r   r   <module>r      s@    
 $ $ $ 
dJ dr   