
    Mh                     l    d Z ddlZddlmZmZ ddl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 )z
    pygments.lexers.urbi
    ~~~~~~~~~~~~~~~~~~~~

    Lexers for UrbiScript language.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)ExtendedRegexLexerwords)TextCommentOperatorKeywordNameStringNumberPunctuationUrbiscriptLexerc                      e Zd ZdZdZdgZdgZdgZdZdZ	e
j        Zd Zd	efd
efdej        dfdef edd          ef edd          ej        fdefdefdej        fdej        f edd          ej        fdej        j        fdefdej        fdefdefdej        fdej        fdej        fde j!        d fd!e j"        d"fgd#efd$e j!        d%fgd&efd'e j"        d%fgd(ej        fdej        d)fd*ej        d%fd+ej        fgd,Z#d- Z$d.S )/r   z%
    For UrbiScript source code.
    
UrbiScript
urbiscriptz*.uzapplication/x-urbiscriptz!https://github.com/urbiforge/urbiz1.5c              #     K   |                     d          }|                     d          }|                     d          }t          |          }|                                t          |fV  |xj        t          |          z  c_        |j        |                                |z            dk    rEd|z   dz   }|                                t          |fV  |xj        t          |          z  c_        d S ||j        |                                |                                |z            z   dz   }|                                t          j        |fV  |                                |z   dz   |_        d S )N         )z\B(z)()	groupintstartr
   poslentextendEscape)	lexermatchctxtext_before_blob
blob_startblob_size_str	blob_sizeresult	blob_texts	            T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/urbi.pyblob_callbackzUrbiscriptLexer.blob_callback&   sH      ;;q>>[[^^
A&&	kkmmV%555553'((( 8EIIKK)+,33m+d2F++--////GGs6{{"GGF %))++eiikk)6K*K!LLsR	kkmmV]I5555))++	)A-    z\s+z//.*?\nz/\*commentz"(every|for|loop|while)(?:;|&|\||,))assertatbreakcasecatchclosurecomplcontinuedefaultelseenumeveryexternalfinallyforfreezeififnewonleavereturnstopifswitchthisthrowtimeouttry	waituntilwheneverwhilez\b)suffix)$asmautoboolchar
const_castdeletedoubledynamic_castexplicitexportexternfloatfriendgotoinliner   longmutable	namespaceregisterreinterpret_castshortsignedsizeofstatic_caststructtemplatetypedeftypeidtypenameunionunsignedusingvirtualvolatilewchar_tz&(emit|foreach|internal|loopn|static)\bz(private|protected|public)\bz(var|do|const|function|class)\bz(true|false|nil|void)\b)EBarrierBinaryBooleanCallMessageChannelCode
Comparable	ContainerControlDate
Dictionary	DirectoryDurationEnumerationEvent	Exception
ExecutableFileFinalizableFloat
FormatInfo	FormatterGlobalGroupHashInputStream	IoServiceJobKernelLazyListLoadableLobbyLocationLoggerMathMutexnilObject	OrderableOutputStreamPairPathPatternPosition	PrimitiveProcessProfile
PseudoLazyPubSubRangeIterableRegexp	SemaphoreServer	SingletonSocket
StackFrameStreamr
   SystemTagTimeout	TraceableTrajectoryGeneratorTripletTupleUObjectUValueUVarz
(?:this)\bz(?:[-=+*%/<>~^:]+|\.&?|\|\||&&)z?(?:and_eq|and|bitand|bitor|in|not|not_eq|or_eq|or|xor_eq|xor)\bz[{}\[\]()]+z(?:;|\||,|&|\?|!)+z[$a-zA-Z_]\w*z0x[0-9a-fA-F]+zV(?:[0-9]+(?:(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?)?((?:rad|deg|grad)|(?:ms|s|min|h|d))?)\b"string.double'string.singlez%((?:\\\\|\\"|[^"])*?)(\\B\((\d+)\)\()z(\\\\|\\[^\\]|[^"\\])*?"z#popz%((?:\\\\|\\'|[^'])*?)(\\B\((\d+)\)\()z(\\\\|\\[^\\]|[^'\\])*?'z[^*/]z#pushz\*/z[*/])rootr   r   r*   c                 .    d}d| v r|dz  }d| v r|dz  }|S )z_This is fairly similar to C and others, but freezeif and
        waituntil are unique keywords.r   r:   g?rE    )r   r%   s     r'   analyse_textzUrbiscriptLexer.analyse_text   s6     dNF$dNFr)   N)%__name__
__module____qualname____doc__namealiases	filenames	mimetypesurlversion_addedreDOTALLflagsr(   r   r   	Multiliner   r   ReservedDeclarationConstantr	   BuiltinPseudor   Wordr   Otherr   Hexr   r
   DoubleSingletokensr   r   r)   r'   r   r      s7         DnGI+,I
-CMIE. . .. TN!W&	22G<U 2
 ;@A A A  U G PUV V V  7@,g6/1DE')9:U " +01 1 1 \ DL/0/:O][)"K0tz*
+89?G 6=/26=/2o8
t 6}E(&-@

 6}E(&-@
 w()W&0W&/g'(	
GI IFV    r)   )r   r   pygments.lexerr   r   pygments.tokenr   r   r   r   r	   r
   r   r   __all__r   r   r)   r'   <module>r      s     
			 4 4 4 4 4 4 4 4                    
} } } } }( } } } } }r)   