o
    ifZ                     @   s   d Z ddlZddlmZmZ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dlmZmZ g dZdd ZG d	d
 d
eeZG dd deeZG dd deZG dd deZdS )z
    pygments.lexers.objective
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Objective-C family languages.

    :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerincludebygroupsusingthiswordsinheritdefault)	TextKeywordNameStringOperatorNumberPunctuationLiteralComment)CLexerCppLexer)ObjectiveCLexerObjectiveCppLexer
LogosLexer
SwiftLexerc                    s0   t d t dG  fddd}|S )z^
    Generate a subclass of baselexer that accepts the Objective-C syntax
    extensions.
    z @(?:end|implementation|protocol)z<\[\s*[a-zA-Z_]\w*\s+(?:[a-zA-Z_]\w*\s*\]|(?:[a-zA-Z_]\w*)?:)c                       s|  e Zd ZdZdedfdefdejfdejfdejfdejfd	ej	fd
ej
fdedfdedfdedfedddefedddejfdejfdejfdejfdejfdeeedfdeeedfdefegdeejeejeedfd eejeejd!fd"eejeejeedfd#eejeejd!fd$eejeedfd%ejd!fgd&eejed'fd(eejed!fged)ed*d+efd,ed-fd.ed!fgd/eeeeeeejd0feged)d1efd2efd3eeeeejfd4ejfd+ed!fd,ed5fed!gd6ed7fd8ed!fed9gd6ed-fd8ed!fed9gd:ed;fd<ed!fed9gd:ed-fd<ed!fed9gd.ed!fed9gd=Z fd>d?ZdDfdAdB	ZdCS )Ez-objective.<locals>.GeneratedObjectiveCVariantzU
        Implements Objective-C syntax on top of an existing C family lexer.
        @"stringz	@(YES|NO)z3@'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,2}|[^\\\'\n])'z&@(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?z@(\d+\.\d*|\.\d+|\d+[fF])[fF]?z@0x[0-9a-fA-F]+[Ll]?z@0[0-7]+[Ll]?z	@\d+[Ll]?z@\(literal_numberz@\[literal_arrayz@\{literal_dictionary)*z	@selectorz@privatez
@protectedz@publicz@encodez@synchronizedz@tryz@throwz@catchz@finallyz@endz	@propertyz@synthesize__bridge__bridge_transfer__autoreleasing__block__weak__strongweakstrongcopyretainassignunsafe_unretainedatomic	nonatomicreadonly	readwritesettergettertypeofinoutinoutreleaseclassz@dynamicz	@optionalz	@requiredz@autoreleasepoolz@import\bsuffix)	idinstancetypeClassIMPSELBOOLIBOutletIBActionunicharz@(true|false|YES|NO)\nz(YES|NO|nil|self|super)\bz3(Boolean|UInt8|SInt8|UInt16|SInt16|UInt32|SInt32)\bz(TRUE|FALSE)\bz!(@interface|@implementation)(\s+))#popoc_classnamez(@class|@protocol)(\s+))rB   oc_forward_classname@z7([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?(\s*)(\{))rB   oc_ivars.([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?rB   z6([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))(\s*)(\{)z-([a-zA-Z$_][\w$]*)(\s*)(\([a-zA-Z$_][\w$]*\))z([a-zA-Z$_][\w$]*)(\s*)(\{)([a-zA-Z$_][\w$]*)z([a-zA-Z$_][\w$]*)(\s*,\s*)rD   z([a-zA-Z$_][\w$]*)(\s*;?)
whitespace
statements;z\{#pushz\}z/^([-+])(\s*)(\(.*?\))?(\s*)([a-zA-Z$_][\w$]*:?)method,z\.\.\.z (\(.*?\))(\s*)([a-zA-Z$_][\w$]*)z[a-zA-Z$_][\w$]*:function\(literal_number_inner\)	statementz\[literal_array_innerz\])rJ   rC   rD   rF   rootrM   r   rQ   r   rT   r   c                    s<     | rdS d| v rdS t d| rdS  | rdS dS )N      ?r   g?z@[0-9]+gffffff?r   )searchretext)_oc_keywords_oc_message R/var/www/html/corbot_env/lib/python3.10/site-packages/pygments/lexers/objective.pyanalyse_text   s   

z:objective.<locals>.GeneratedObjectiveCVariant.analyse_textrU   c           	      3   sr    ddl m}m}m}  | ||D ]$\}}}|tu s |tju r0||v s,||v s,||v r0tjj}|||fV  qd S Nr   )COCOA_INTERFACESCOCOA_PROTOCOLSCOCOA_PRIMITIVES)	pygments.lexers._cocoa_builtinsrb   rc   rd   get_tokens_unprocessedr   r;   BuiltinPseudo)	selfrZ   stackrb   rc   rd   indextokenvalue)	baselexerr]   r^   rf      s   zDobjective.<locals>.GeneratedObjectiveCVariant.get_tokens_unprocessedN)r`   ) __name__
__module____qualname____doc__r   r   CharFloatHexOctIntegerr   r   r   Typer   rg   r   r
   r   r   r;   Labelr   r   r   FunctionVariabler	   tokensr_   rf   r]   r[   r\   rn   r]   r^   GeneratedObjectiveCVariant*   s    	


)
	xr~   )rX   compile)rn   r~   r]   r}   r^   	objective   s
   

 r   c                   @   s6   e Zd ZdZdZdZg dZddgZdgZdZ	d	Z
d
S )r   zC
    For Objective-C source code with preprocessor directives.
    zObjective-Czhttps://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html)zobjective-c
objectiveczobj-cobjcz*.mz*.hztext/x-objective-c 皙?N)ro   rp   rq   rr   nameurlaliases	filenames	mimetypesversion_addedpriorityr]   r]   r]   r^   r      s    r   c                   @   s2   e Zd ZdZdZg dZddgZdgZdZdZ	d	S )
r   zE
    For Objective-C++ source code with preprocessor directives.
    zObjective-C++)zobjective-c++zobjectivec++zobj-c++zobjc++z*.mmz*.hhztext/x-objective-c++r   r   N)
ro   rp   rq   rr   r   r   r   r   r   r   r]   r]   r]   r^   r      s    r   c                   @   s\  e Zd ZdZdZdgZg dZdgZdZdZ	de
fd	ee
eeejeefd
ee
edfdee
fdee
eejdfdee
edfegdefdedfdeejeeeefdejfdedfgdeejeejdfdejdfgdee
edfdee
eejfdee
eejeeefdee
eedfdee
ee
ee
fdeee
efegdZedZd d! Zd"S )#r   zK
    For Logos + Objective-C source code with preprocessor directives.
    Logoslogos)z*.xz*.xiz*.xmz*.xmiztext/x-logosz1.6g      ?z(%orig|%log)\bz*(%c)\b(\()(\s*)([a-zA-Z$_][\w$]*)(\s*)(\))z(%init)\b(\()logos_init_directivez(%init)(?=\s*;)z%(%hook|%group)(\s+)([a-zA-Z$_][\w$]+)rB   z(%subclass)(\s+))rB   logos_classname\s+rN   )r   rB   z'([a-zA-Z$_][\w$]*)(\s*)(=)(\s*)([^);]*)rH   rR   rG   r   z*(%config)(\s*\(\s*)(\w+)(\s*=)(.*?)(\)\s*)z(%ctor)(\s*)(\{)rO   z(%new)(\s*)(\()(.*?)(\))z(\s*)(%end)(\s*))rJ   r   r   rU   z%(?:hook|ctor|init|c\()c                 C   s   t j| rdS dS )NrV   r   )r   _logos_keywordsrW   rY   r]   r]   r^   r_     s   zLogosLexer.analyse_textN)ro   rp   rq   rr   r   r   r   r   r   r   r   r   r   r
   r   r;   r   r{   r   r|   rX   r   r   r_   r]   r]   r]   r^   r      st    


	


+r   c                   @   sB  e Zd ZdZdZdZdgZdgZdgZdZ	de
fd	e
fd
ejdfdejdfdejdfededddejfedddejjfdejfdejfdejfdejfdejfdejfdedfdedfdefd efd!efged"ddefd#ejfed$ddejfd%ej fd&ej!d'fd(e"ej!e
ej#fd)e"ej!e
ej$fd*e"ej!e
ejfed+ddej!fg	d,ej%fgde
d-fed.d/ejfged.d0ejfdejd1fd2ejd-fd3ejfgde
d-fd!ej#fed4gde
d-fedd5ejfed4gded-fed6gded-fed6gd7ej&d8fd9ej'fd:efd;efgd<ej&d1fd=ej&d-fed4gd>Z(d?d@ Z)dAS )Br   z
    For Swift source.
    Swiftzhttps://www.swift.org/z*.swiftswiftztext/x-swiftz2.0z\nr   z//comment-singlez/\*comment-multiz##(if|elseif|else|endif|available)\bpreprockeywords)Array!AutoreleasingUnsafeMutablePointerBidirectionalReverseViewBitBoolCFunctionPointerCOpaquePointerCVaListPointer	CharacterClosedIntervalCollectionOfOneContiguousArray
DictionaryDictionaryGeneratorDictionaryIndexDoubleEmptyCollectionEmptyGeneratorEnumerateGeneratorEnumerateSequenceFilterCollectionViewFilterCollectionViewIndexFilterGeneratorFilterSequenceViewrt   Float80FloatingPointClassificationGeneratorOfGeneratorOfOneGeneratorSequenceHalfOpenInterval
HeapBufferHeapBufferStorageImplicitlyUnwrappedOptionalIndexingGeneratorIntInt16Int32Int64Int8LazyBidirectionalCollectionLazyForwardCollectionLazyRandomAccessCollectionLazySequenceMapCollectionViewMapSequenceGeneratorMapSequenceViewMirrorDispositionObjectIdentifierOnHeapOptionalPermutationGeneratorQuickLookObjectRandomAccessReverseViewRangeRangeGeneratorRawByteRepeatReverseBidirectionalIndexReverseRandomAccessIndex
SequenceOfSinkOfSliceStaticStringStrideThroughStrideThroughGeneratorStrideToStrideToGeneratorr   UIntUInt16UInt32UInt64UInt8UTF16UTF32UTF8UnicodeDecodingResultUnicodeScalar	UnmanagedUnsafeBufferPointerUnsafeBufferPointerGeneratorUnsafeMutableBufferPointerUnsafeMutablePointerUnsafePointerZip2ZipGenerator2AbsoluteValuable	AnyObjectArrayLiteralConvertibleBidirectionalIndexTypeBitwiseOperationsTypeBooleanLiteralConvertibleBooleanTypeCVarArgTypeCollectionType
ComparableDebugPrintableDictionaryLiteralConvertible	Equatable)ExtendedGraphemeClusterLiteralConvertibleExtensibleCollectionTypeFloatLiteralConvertibleFloatingPointTypeForwardIndexTypeGeneratorTypeHashableIntegerArithmeticTypeIntegerLiteralConvertibleIntegerTypeIntervalType
MirrorTypeMutableCollectionTypeMutableSliceableNilLiteralConvertibleOutputStreamType	PrintableRandomAccessIndexTypeRangeReplaceableCollectionTypeRawOptionSetTypeRawRepresentableReflectableSequenceTypeSignedIntegerTypeSignedNumberTypeSinkType	Sliceable
Streamable
StrideableStringInterpolationConvertibleStringLiteralConvertibleUnicodeCodecTypeUnicodeScalarLiteralConvertibleUnsignedIntegerType_ArrayBufferType_BidirectionalIndexType_CocoaStringType_CollectionType_Comparable_ExtensibleCollectionType_ForwardIndexType_Incrementable_IntegerArithmeticType_IntegerType_ObjectiveCBridgeable_RandomAccessIndexType_RawOptionSetType_SequenceType_Sequence_Type_SignedIntegerType_SignedNumberType
_Sliceable_Strideable"_SwiftNSArrayRequiredOverridesType_SwiftNSArrayType_SwiftNSCopyingType'_SwiftNSDictionaryRequiredOverridesType_SwiftNSDictionaryType_SwiftNSEnumeratorType_SwiftNSFastEnumerationType#_SwiftNSStringRequiredOverridesType_SwiftNSStringType_UnsignedIntegerTypeC_ARGCC_ARGVProcessAnyAnyClassBooleanLiteralTypeCBoolCCharCChar16CChar32CDoubleCFloatCIntCLong	CLongLongCShortCSignedCharCUnsignedIntCUnsignedLongCUnsignedShort	CWideCharExtendedGraphemeClusterTypeFloat32Float64FloatLiteralTypeIntMaxIntegerLiteralTypeStringLiteralTypeUIntMaxUWordUnicodeScalarTypeVoidWordNSErrorPointerNSObjectProtocolSelectorr6   r7   )KabsadvancealignofalignofValueassertassertionFailurecontainscountcountElements
debugPrintdebugPrintlndistance	dropFirstdropLastdump	enumerateequalextend
fatalErrorfilterfindfirst	getVaListindicesinsertisEmptyjoinlastlazylexicographicalComparemapmax
maxElementmin
minElementnumericCastoverlaps	partitionpreconditionpreconditionFailureprefixprintprintlnreducereflect	removeAllremoveAtIndex
removeLastremoveRangereversesizeofsizeofValuesortsortedsplicesplit
startsWithstridestrideofstrideofValuer8   swaptoDebugStringtoString	transcodeunderestimateCountunsafeAddressOfunsafeBitCastunsafeDowncastwithExtendedLifetimewithUnsafeMutablePointerwithUnsafeMutablePointerswithUnsafePointerwithUnsafePointers
withVaListz\$\d+z0b[01_]+z	0o[0-7_]+z0x[0-9a-fA-F_]+zD[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*|[eE][+\-]?[0-9_]+)z[0-9][0-9_]*z"""string-multi"r   z/[(){}\[\].,:;=@#`?]|->|[<&?](?=\w)|(?<=\w)[>!?]z[/=\-+!*%<>&|^?~]+z[a-zA-Z_]\w*)asasyncawaitbreakcasecatchcontinuer	   deferdoelsefallthroughforguardifr1   isrepeatreturnz	#selectorswitchthrowtrywherewhilez@availability\([^)]+\)))associativityconveniencedynamicdidSetfinalgetindirectinfixr3   ry  leftmutatingnonenonmutatingoptionaloverridepostfix
precedencer  Protocolrequiredrethrowsrightsetthrowsrx   unownedr$   willSetz@availabilityz@autoclosurez	@noreturnz@NSApplicationMainz
@NSCopyingz
@NSManagedz@objcz@UIApplicationMainz	@IBActionz@IBDesignablez@IBInspectablez	@IBOutletz(as|dynamicType|false|is|nil|self|Self|super|true|__COLUMN__|__FILE__|__FUNCTION__|__LINE__|_|#(?:file|line|column|function))\bzimport\bmodulez9(class|enum|extension|struct|protocol)(\s+)([a-zA-Z_]\w*)z(func)(\s+)([a-zA-Z_]\w*)z(var|let)(\s+)([a-zA-Z_]\w*))actorassociatedtyper5   deinitenum	extensionfuncimportinitinternalletoperatorprivateprotocolpublicstaticstruct	subscript	typealiasvarz2:param: [a-zA-Z_]\w*|:returns?:|(FIXME|MARK|TODO):rB   commentz[^\n]z[^*/]rL   z\*/z[*/]rU   z[A-Za-z]\w*string-commonz\\\(string-intpzN\\['"\\nrt]|\\x[0-9a-fA-F]{2}|\\[0-7]{1,3}|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}z[^\\"]+z\\rP   rR   )rU   r   r  r   r   r  r   r   r  r  r  c                 c   sp    ddl m}m}m} t| |D ]$\}}}|tu s|tju r/||v s+||v s+||v r/tjj	}|||fV  qd S ra   )
re   rb   rc   rd   r   rf   r   r;   rg   rh   )ri   rZ   rb   rc   rd   rk   rl   rm   r]   r]   r^   rf     s   
z!SwiftLexer.get_tokens_unprocessedN)*ro   rp   rq   rr   r   r   r   r   r   r   r
   r   Single	MultilinePreprocr   r   r   rg   rh   r{   r   Binrv   ru   rt   rw   r   r   r   r   ReservedConstantDeclarationr   r;   rz   SpecialInterpolEscaper|   rf   r]   r]   r]   r^   r     s    


?@By	

$




  Pr   )rr   rX   pygments.lexerr   r   r   r   r   r   r   r	   pygments.tokenr
   r   r   r   r   r   r   r   r   pygments.lexers.c_cppr   r   __all__r   r   r   r   r   r]   r]   r]   r^   <module>   s    
(, ,?