|eddZddlZddlmZmZddlmZmZmZm Z m Z m Z m Z m Z dgZGddeZy)z pygments.lexers.urbi ~~~~~~~~~~~~~~~~~~~~ Lexers for UrbiScript language. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N)ExtendedRegexLexerwords)TextCommentOperatorKeywordNameStringNumber PunctuationUrbiscriptLexerceZdZdZdZdgZdgZdgZejZ dZ de fde fd e jd fd efed d efedd ej"fdefdefdej$fdej&fedd ej*fdej*j,fdefdej0fdefdefdej4fdej8fdej:fdej>dfdej@d fgd!e fd"ej>d#fgd$e fd%ej@d#fgd&e jfd e jd'fd(e jd#fd)e jfgd*Z!d+Z"y,)-r z@ For UrbiScript source code. .. versionadded:: 1.5 UrbiScript urbiscriptz*.uzapplication/x-urbiscriptc#K|jd}|jd}|jd}t|}|jt|f|xjt |z c_|j |j|zdk7r@d|zdz}|jt|f|xjt |z c_y||j |j|j|zzdz}|jtj|f|j|zdz|_yw)N)z\B(z)() groupintstartr poslentextendEscape) lexermatchctxtext_before_blob blob_start blob_size_str blob_sizeresult blob_texts 6/usr/lib/python3/dist-packages/pygments/lexers/urbi.py blob_callbackzUrbiscriptLexer.blob_callback&s ;;q>[[^  A  & kkmV%555 3'(( 88EIIK)+ , 3m+d2F++-/ / GGs6{ "G %))+eiik)6K!LLsR kkmV]]I55))+ )A-sE Ez\s+z//.*?\nz/\*commentz"(every|for|loop|while)(?:;|&|\||,))assertatbreakcasecatchclosurecomplcontinuedefaultelseenumeveryexternalfinallyforfreezeififnewonleavereturnstopifswitchthisthrowtimeouttry waituntilwheneverwhilez\b)suffix)$asmautoboolchar const_castdeletedouble dynamic_castexplicitexportexternfloatfriendgotoinlinerlongmutable namespaceregisterreinterpret_castshortsignedsizeof static_caststructtemplatetypedeftypeidtypenameunionunsignedusingvirtualvolatilewchar_tz&(emit|foreach|internal|loopn|static)\bz(private|protected|public)\bz(var|do|const|function|class)\bz(true|false|nil|void)\b)EBarrierBinaryBoolean CallMessageChannelCode Comparable ContainerControlDate Dictionary DirectoryDuration EnumerationEvent Exception ExecutableFile FinalizableFloat FormatInfo FormatterGlobalGroupHash InputStream IoServiceJobKernelLazyListLoadableLobbyLocationLoggerMathMutexnilObject Orderable OutputStreamPairPathPatternPosition PrimitiveProcessProfile PseudoLazyPubSub RangeIterableRegexp SemaphoreServer SingletonSocket StackFrameStreamr SystemTagTimeout TraceableTrajectoryGeneratorTripletTupleUObjectUValueUVarz (?: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*z0x[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[*/])rootrrr)c.d}d|vr|dz }d|vr|dz }|S)z_This is fairly similar to C and others, but freezeif and waituntil are unique keywords.rr9g?rD)rr%s r' analyse_textzUrbiscriptLexer.analyse_texts0   dNF $  dNF N)#__name__ __module__ __qualname____doc__namealiases filenames mimetypesreDOTALLflagsr(rr MultilinerrReserved DeclarationConstantr BuiltinPseudorWordr Otherr Hexr~r DoubleSingletokensrrrr'r r s DnGI+,I IIE ..TN  ! W&& 2 2G < 2 ;@ A   G PU V   7 @ ,g 6 /1D1D E ')9)9 :  "+0 1\\ DLL// 0 / : O ]]  [ ) "K 0 tzz *  +89? G6==/ 2 6==/ 2o8 t6} E (&-- @ 6} E (&-- @ w(( ) W&& 0 W&& / g'' (  GIFV r)rrpygments.lexerrrpygments.tokenrrrrr r r r __all__r rrr'rs: 4  }(}r