
    L&iw                         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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GDScriptLexerc                      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j        fd/ej        j        f ed0d-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&dA Z'dBS )Cr   z#
    For GDScript source code.
    GDScriptzhttps://www.godotengine.orggdscriptgdz*.gdztext/x-gdscriptzapplication/x-gdscriptc                 2    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    e/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/pygments/lexers/gdscript.pyinnerstring_ruleszGDScriptLexer.innerstring_rules#   s4    &_ 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   s|    9CT
 
 	 SLE9L
 
 	 SLE9;TB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Xj&,
;;=6Xj&,
;;=*%gn%[)((4445DM!8=1MGJXXgz::JGhhw
;;[IGJ0XflFM22 1XflFM22 /XflFM22 /XflFM22 XflFM22Xnf--/ XflFM22Xnf--/ XflFM22Xne,,. XflFM22Xne,,. GFOOGIW,
\ U H  ! ! ! #*+
 U  &0? ? ? \ B\ "U 8 %U4 4 4 \ #
8 8F$fl3!6:.v~&	
 "4()%t}f=wwvO&
F;<?
 ,+FM::++FM::6=&)v}-G$%%
 6=&)v}-G$%%
 V]F+G$%%J
 V]F+G$%%J
gx 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 d d d dJ d d d d dr   