a
    ñ»jo\  ã                   @   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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-present 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Ú
Whitespace)Ú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@synthesizeZ__bridgeZ__bridge_transferZ__autoreleasingZ__blockZ__weakZ__strongÚweakÚstrongÚcopyZretainZassignZunsafe_unretainedZatomicZ	nonatomicÚreadonlyZ	readwriteÚsetterÚgetterZtypeofÚinÚoutÚinoutÚreleaseÚclassz@dynamicz	@optionalz	@requiredz@autoreleasepoolz@importú\b©Úsuffix)	ÚidZinstancetypeÚClassZIMPZSELÚBOOLZIBOutletZIBActionZ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+))r0   Úoc_forward_classnameú@z7([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?(\s*)(\{))r0   Úoc_ivarsú.([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?r0   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*)r2   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ú\)Z	statementz\[Úliteral_array_innerz\])r8   r1   r2   r4   Úrootr;   r   r?   r   rA   r   c                    s<   ˆ   | ¡rdS d| v rdS t  d| ¡r*dS ˆ  | ¡r8dS dS )Nç      ð?r   gš™™™™™é?z@[0-9]+gffffffæ?r   )ÚsearchÚre©Útext)Ú_oc_keywordsÚ_oc_message© ú?E:\soccer\ml_env\Lib\site-packages\pygments/lexers/objective.pyÚanalyse_text§   s    

z:objective.<locals>.GeneratedObjectiveCVariant.analyse_text©rB   c           	      3   sp   ddl m}m}m} ˆ  | ||¡D ]H\}}}|tu s>|tju r^||v sV||v sV||v r^tjj}|||fV  q"d S ©Nr   )ÚCOCOA_INTERFACESÚCOCOA_PROTOCOLSÚCOCOA_PRIMITIVES)	Úpygments.lexers._cocoa_builtinsrO   rP   rQ   Úget_tokens_unprocessedr   r.   ÚBuiltinÚPseudo)	ÚselfrG   ÚstackrO   rP   rQ   ÚindexÚtokenÚvalue)Ú	baselexerrJ   rK   rS   ²   s    ÿÿzDobjective.<locals>.GeneratedObjectiveCVariant.get_tokens_unprocessedN)rM   ) Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚCharÚFloatÚHexÚOctÚIntegerr   r   r   ÚTyper   rT   r   r
   r   r   r.   ÚLabelr   r   r   ÚFunctionÚVariabler	   ÚtokensrL   rS   rJ   ©rH   rI   r[   rJ   rK   ÚGeneratedObjectiveCVariant*   sØ   ø	÷
ÿþ
ÿ
ÿÛ)þÿþÿÿ
ðÿÿýû	ÿûøÿõýýýýþŽxrk   )rE   Úcompile)r[   rk   rJ   rj   rK   Ú	objective   s
    

 rm   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-Czƒhttps://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)r\   r]   r^   r_   ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚversion_addedÚpriorityrJ   rJ   rJ   rK   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++rp   rq   N)
r\   r]   r^   r_   rr   rt   ru   rv   rw   rx   rJ   rJ   rJ   rK   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$]+)r0   z(%subclass)(\s+))r0   Úlogos_classnameú\s+r<   )r{   r0   z'([a-zA-Z$_][\w$]*)(\s*)(=)(\s*)([^);]*)r6   r@   r5   r|   z*(%config)(\s*\(\s*)(\w+)(\s*=)(.*?)(\)\s*)z(%ctor)(\s*)(\{)r=   z(%new)(\s*)(\()(.*?)(\))z(\s*)(%end)(\s*))r8   r{   r|   rB   z%(?:hook|ctor|init|c\()c                 C   s   t j | ¡rdS dS )NrC   r   )r   Ú_logos_keywordsrD   rF   rJ   rJ   rK   rL     s    zLogosLexer.analyse_textN)r\   r]   r^   r_   rr   rt   ru   rv   rw   rx   r   r   r   r
   r   r.   r   rh   r   ri   rE   rl   r~   rL   rJ   rJ   rJ   rK   r   Ý   sr   ÿ
ÿ
ÿ
ÿõÿú	ÿ
ý
ÿÿÿÿÿôå+
r   c                   @   sr  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"eej$ƒfd)e#ej"eej"eejƒ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d0ƒd1ejfged0ƒd2ejfdejd3fd4ejd/fd5ejfgded/fd!ej%fed6ƒgded/fedƒd7ejfed6ƒgded/fed8ƒgded/fed8ƒgd9ej'd:fd;ej(fd<efd=efgd>ej'd3fd?ej'd/fed6ƒgd@œZ)dAdB„ Z*dCS )Dr   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)ÇÚArrayZ!AutoreleasingUnsafeMutablePointerZBidirectionalReverseViewZBitZBoolZCFunctionPointerZCOpaquePointerZCVaListPointerZ	CharacterZClosedIntervalZCollectionOfOneZContiguousArrayZ
DictionaryZDictionaryGeneratorZDictionaryIndexÚDoubleZEmptyCollectionZEmptyGeneratorZEnumerateGeneratorZEnumerateSequenceZFilterCollectionViewZFilterCollectionViewIndexZFilterGeneratorZFilterSequenceViewra   ZFloat80ZFloatingPointClassificationZGeneratorOfZGeneratorOfOneZGeneratorSequenceZHalfOpenIntervalZ
HeapBufferZHeapBufferStorageZImplicitlyUnwrappedOptionalZIndexingGeneratorZIntZInt16ZInt32ZInt64ZInt8ZLazyBidirectionalCollectionZLazyForwardCollectionZLazyRandomAccessCollectionZLazySequenceZMapCollectionViewZMapSequenceGeneratorZMapSequenceViewZMirrorDispositionZObjectIdentifierZOnHeapÚOptionalZPermutationGeneratorZQuickLookObjectZRandomAccessReverseViewÚRangeZRangeGeneratorZRawByteZRepeatZReverseBidirectionalIndexZReverseRandomAccessIndexZ
SequenceOfZSinkOfÚSliceZStaticStringZStrideThroughZStrideThroughGeneratorZStrideToZStrideToGeneratorr   ZUIntZUInt16ZUInt32ZUInt64ZUInt8ZUTF16ZUTF32ÚUTF8ZUnicodeDecodingResultZUnicodeScalarZ	UnmanagedZUnsafeBufferPointerZUnsafeBufferPointerGeneratorZUnsafeMutableBufferPointerZUnsafeMutablePointerZUnsafePointerZZip2ZZipGenerator2ZAbsoluteValuableZ	AnyObjectZArrayLiteralConvertibleZBidirectionalIndexTypeZBitwiseOperationsTypeZBooleanLiteralConvertibleZBooleanTypeZCVarArgTypeZCollectionTypeZ
ComparableZDebugPrintableZDictionaryLiteralConvertibleZ	EquatableZ)ExtendedGraphemeClusterLiteralConvertibleZExtensibleCollectionTypeZFloatLiteralConvertibleZFloatingPointTypeZForwardIndexTypeÚGeneratorTypeÚHashableZIntegerArithmeticTypeZIntegerLiteralConvertibleZIntegerTypeZIntervalTypeZ
MirrorTypeZMutableCollectionTypeZMutableSliceableZNilLiteralConvertibleZOutputStreamTypeZ	PrintableZRandomAccessIndexTypeZRangeReplaceableCollectionTypeZRawOptionSetTypeZRawRepresentableZReflectableZSequenceTypeZSignedIntegerTypeZSignedNumberTypeZSinkTypeZ	SliceableZ
StreamableZ
StrideableZStringInterpolationConvertibleZStringLiteralConvertibleZUnicodeCodecTypeZUnicodeScalarLiteralConvertibleZUnsignedIntegerTypeZ_ArrayBufferTypeZ_BidirectionalIndexTypeZ_CocoaStringTypeZ_CollectionTypeZ_ComparableZ_ExtensibleCollectionTypeZ_ForwardIndexTypeZ_IncrementableZ_IntegerArithmeticTypeZ_IntegerTypeZ_ObjectiveCBridgeableZ_RandomAccessIndexTypeZ_RawOptionSetTypeZ_SequenceTypeZ_Sequence_TypeZ_SignedIntegerTypeZ_SignedNumberTypeZ
_SliceableZ_StrideableZ"_SwiftNSArrayRequiredOverridesTypeZ_SwiftNSArrayTypeZ_SwiftNSCopyingTypeZ'_SwiftNSDictionaryRequiredOverridesTypeZ_SwiftNSDictionaryTypeZ_SwiftNSEnumeratorTypeZ_SwiftNSFastEnumerationTypeZ#_SwiftNSStringRequiredOverridesTypeZ_SwiftNSStringTypeZ_UnsignedIntegerTypeZC_ARGCZC_ARGVÚProcessÚAnyZAnyClassZBooleanLiteralTypeZCBoolZCCharZCChar16ZCChar32ZCDoubleZCFloatZCIntZCLongZ	CLongLongZCShortZCSignedCharZCUnsignedIntZCUnsignedLongZCUnsignedShortZ	CWideCharZExtendedGraphemeClusterTypeZFloat32ZFloat64ZFloatLiteralTypeZIntMaxZIntegerLiteralTypeZStringLiteralTypeZUIntMaxZUWordZUnicodeScalarTypeZVoidÚWordZNSErrorPointerZNSObjectProtocolZSelectorr*   r+   )KÚabsÚadvanceZalignofZalignofValueÚassertZassertionFailureÚcontainsÚcountZcountElementsZ
debugPrintZdebugPrintlnZdistanceZ	dropFirstZdropLastÚdumpÚ	enumerateÚequalÚextendZ
fatalErrorÚfilterÚfindÚfirstZ	getVaListÚindicesÚinsertZisEmptyÚjoinÚlastÚlazyZlexicographicalCompareÚmapÚmaxZ
maxElementÚminZ
minElementZnumericCastÚoverlapsÚ	partitionÚpreconditionZpreconditionFailureÚprefixÚprintZprintlnÚreduceZreflectZ	removeAllZremoveAtIndexZ
removeLastZremoveRangeÚreverseÚsizeofZsizeofValueÚsortÚsortedZspliceÚsplitZ
startsWithZstrideZstrideofZstrideofValuer,   ZswapZtoDebugStringZtoStringZ	transcodeZunderestimateCountZunsafeAddressOfZunsafeBitCastZunsafeDowncastZwithExtendedLifetimeZwithUnsafeMutablePointerZwithUnsafeMutablePointersZwithUnsafePointerZwithUnsafePointersZ
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ÚcaseZcatchÚcontinuer	   ZdeferÚdoÚelseZfallthroughÚforÚguardÚifr%   ÚisÚrepeatÚreturnz	#selectorÚswitchÚthrowÚtryÚwhereÚwhilez@availability\([^)]+\)))ZassociativityZconvenienceZdynamicZdidSetÚfinalÚgetZindirectZinfixr'   r    ÚleftZmutatingÚnoneZnonmutatingÚoptionalÚoverrideZpostfixÚ
precedencer§   ÚProtocolÚrequiredZrethrowsÚrightÚsetZthrowsre   Zunownedr   Z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Úmodulez%(class)(\s+)(func)(\s+)([a-zA-Z_]\w*)z$(class)(\s+)(var)(\s+)([a-zA-Z_]\w*)z9(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*))ZactorZassociatedtyper)   ZdeinitÚenumÚ	extensionÚfuncÚimportÚinitZinternalZletÚoperatorÚprivateÚprotocolÚpublicZstaticÚstructZ	subscriptZ	typealiasÚvarz2:param: [a-zA-Z_]\w*|:returns?:|(FIXME|MARK|TODO):r0   Úcommentz[^\n]+z[^*/]+r:   z\*/z[*/]+rB   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\\r>   r@   )rB   r„   rÛ   r�   r‚   rÏ   rƒ   r   r¯   rÜ   rÝ   c                 c   sn   ddl m}m}m} t | |¡D ]H\}}}|tu s<|tju r\||v sT||v sT||v r\tjj	}|||fV  q d S rN   )
rR   rO   rP   rQ   r   rS   r   r.   rT   rU   )rV   rG   rO   rP   rQ   rX   rY   rZ   rJ   rJ   rK   rS   ü  s    
ÿÿz!SwiftLexer.get_tokens_unprocessedN)+r\   r]   r^   r_   rr   rs   ru   rt   rv   rw   r
   r   r   ÚSingleÚ	MultilineÚPreprocr   r   r   rT   rU   rh   r   ÚBinrc   rb   ra   rd   r   r   r   r   ÚReservedÚConstantÚDeclarationr   rg   r.   ÚSpecialÚInterpolÚEscaperi   rS   rJ   rJ   rJ   rK   r     sò   


?Á@ÀBñðÿŠyüû	÷
öþ
ÿÿÿÿÿÿÿýüÝ*ÿÿý

ûýüþþ
ÿû

ý€ ² Vr   )r_   rE   Zpygments.lexerr   r   r   r   r   r   r   r	   Zpygments.tokenr
   r   r   r   r   r   r   r   r   r   Zpygments.lexers.c_cppr   r   Ú__all__rm   r   r   r   r   rJ   rJ   rJ   rK   Ú<module>   s   
(0 ,?