o
    Ñ­j[  ã                   @   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@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+))rC   Úoc_forward_classnameú@z7([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?(\s*)(\{))rC   Úoc_ivarsú.([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?rC   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*)rE   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\])rK   rD   rE   rG   ÚrootrN   r   rR   r   rU   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© úV/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pygments/lexers/objective.pyÚanalyse_text§   s   

z:objective.<locals>.GeneratedObjectiveCVariant.analyse_text©rV   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_builtinsrc   rd   re   Úget_tokens_unprocessedr   r<   ÚBuiltinÚPseudo)	Úselfr[   Ústackrc   rd   re   ÚindexÚtokenÚvalue)Ú	baselexerr^   r_   rg   ²   s   €ÿùzDobjective.<locals>.GeneratedObjectiveCVariant.get_tokens_unprocessedN)ra   ) Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚCharÚFloatÚHexÚOctÚIntegerr   r   r   ÚTyper   rh   r   r
   r   r   r<   ÚLabelr   r   r   ÚFunctionÚVariabler	   Útokensr`   rg   r^   ©r\   r]   ro   r^   r_   ÚGeneratedObjectiveCVariant*   sÚ    ø	÷
ÿþ
ÿ
ÿÛ)þÿþÿÿ
ðÿÿýû	ÿûøÿõýýýýþŽxr   )rY   Úcompile)ro   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-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)rp   rq   rr   rs   Ú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)
rp   rq   rr   rs   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$]+)rC   z(%subclass)(\s+))rC   Úlogos_classnameú\s+rO   )r�   rC   z'([a-zA-Z$_][\w$]*)(\s*)(=)(\s*)([^);]*)rI   rS   rH   r�   z*(%config)(\s*\(\s*)(\w+)(\s*=)(.*?)(\)\s*)z(%ctor)(\s*)(\{)rP   z(%new)(\s*)(\()(.*?)(\))z(\s*)(%end)(\s*))rK   r�   r�   rV   z%(?:hook|ctor|init|c\()c                 C   s   t j | ¡rdS dS )NrW   r   )r   Ú_logos_keywordsrX   rZ   r^   r^   r_   r`     s   zLogosLexer.analyse_textN)rp   rq   rr   rs   r†   rˆ   r‰   rŠ   r‹   rŒ   r   r   r   r
   r   r<   r   r|   r   r}   rY   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ÚFilterSequenceViewru   Ú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ÚSelectorr7   r8   )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ÚstrideofValuer9   Ú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Úifr2   ÚisÚrepeatÚreturnz	#selectorÚswitchÚthrowÚtryÚwhereÚwhilez@availability\([^)]+\)))ÚassociativityÚconvenienceÚdynamicÚdidSetÚfinalÚgetÚindirectÚinfixr4   rz  ÚleftÚmutatingÚnoneÚnonmutatingÚoptionalÚoverrideÚpostfixÚ
precedencer†  ÚProtocolÚrequiredÚrethrowsÚrightÚsetÚthrowsry   Ú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Úassociatedtyper6   Ú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):rC   Úcommentz[^\n]+z[^*/]+rM   z\*/z[*/]+rV   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\\rQ   rS   )rV   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 rb   )
rf   rc   rd   re   r   rg   r   r<   rh   ri   )rj   r[   rc   rd   re   rl   rm   rn   r^   r^   r_   rg   ö  s   €
ÿùz!SwiftLexer.get_tokens_unprocessedN)+rp   rq   rr   rs   r†   r‡   r‰   rˆ   rŠ   r‹   r
   r   r   ÚSingleÚ	MultilineÚPreprocr   r   r   rh   ri   r|   r   ÚBinrw   rv   ru   rx   r   r   r   r   ÚReservedÚConstantÚDeclarationr   r<   r{   ÚSpecialÚInterpolÚEscaper}   rg   r^   r^   r^   r_   r     sà    


?Á@ÀBñðÿŠyüû	÷
öþ
ÿÿÿýüã$ÿÿý

ûýüþþ
ÿû

ý �· Pr   )rs   rY   Úpygments.lexerr   r   r   r   r   r   r   r	   Úpygments.tokenr
   r   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    
(0 ,?