3

V'íc±Yã@sÐdZddlZddlmZmZmZmZmZmZm	Z	m
Z
ddlmZm
Z
mZmZmZmZmZmZmZddlmZmZdddd	gZd
d„ZGdd„deeƒƒZGd
d„deeƒƒZGdd„deƒZGdd	„d	eƒZdS)zß
    pygments.lexers.objective
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Objective-C family languages.

    :copyright: Copyright 2006-2022 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Ú
SwiftLexercs0tjdƒ‰tjdƒ‰G‡‡‡fdd„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*)?:)c6s|eZdZdZdedfdefdejfdejfdejfdejfd	ej	fd
ej
fdedfd
edfdedfedtd;d<e
fedud;d<e
jfdFejfdGejfdHe
jfdIejfdJee
eƒdvfdMee
eƒdwfdOefegdPeejeejeeƒdxfdReejeejƒdKfdSeejeejeeƒdyfdTeejeejƒdKfdUeejeeƒdzfdVejdKfgdWeejeƒdNfdXeejeƒdKfgedYƒedZƒd[efd\ed]fd^edKfgd_eeeeeƒeejƒd`fegedYƒdaefdbefdceeeƒeejƒfddejfd[edKfd\edefedKƒgdfedgfdhedKfediƒgdfed]fdhedKfediƒgdjedkfdledKfediƒgdjed]fdledKfediƒgd^edKfediƒgdmœZ‡‡fdndo„Zd|‡fdqdr„	ZdsS)}z-objective.<locals>.GeneratedObjectiveCVariantzU
        Implements Objective-C syntax on top of an existing C family lexer.
        z@"Ú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ú	@selectorú@privateú
@protectedú@publicú@encodeú
@synchronizedú@tryú@throwú@catchú@finallyú@endú	@propertyú@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Úclassú@dynamicú	@optionalú	@requiredú@autoreleasepoolú@importz\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+)Úoc_forward_classnameú@z7([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?(\s*)(\{)Úoc_ivarsz.([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?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*)(\{)z([a-zA-Z$_][\w$]*)z([a-zA-Z$_][\w$]*)(\s*,\s*)z([a-zA-Z$_][\w$]*)(\s*;?)Ú
whitespaceÚ
statementsú;z\{z#pushz\}z/^([-+])(\s*)(\(.*?\))?(\s*)([a-zA-Z$_][\w$]*:?)Úmethodú,z\.\.\.z (\(.*?\))(\s*)([a-zA-Z$_][\w$]*)z[a-zA-Z$_][\w$]*:Úfunctionz\(Úliteral_number_innerz\)Z	statementz\[Úliteral_array_innerz\])rWrRrSrUÚrootrYrr\rr]rcs<ˆj|ƒrdSd|krdStjd|ƒr*dSˆj|ƒr8dSdS)Ngð?z@"gš™™™™™é?z@[0-9]+gffffffæ?r)ÚsearchÚre)Útext)Ú_oc_keywordsÚ_oc_message©ú=/tmp/pip-build-gk9425m9/Pygments/pygments/lexers/objective.pyÚanalyse_text§s

z:objective.<locals>.GeneratedObjectiveCVariant.analyse_textr^c	3stddlm}m}m}xZˆj|||ƒD]H\}}}|tks@|tjkr`||ksX||ksX||kr`tjj}|||fVq$WdS)Nr)ÚCOCOA_INTERFACESÚCOCOA_PROTOCOLSÚCOCOA_PRIMITIVES)	Úpygments.lexers._cocoa_builtinsrgrhriÚget_tokens_unprocessedrrJÚBuiltinÚPseudo)	ÚselfraÚstackrgrhriÚindexÚtokenÚvalue)Ú	baselexerrdrerk²szDobjective.<locals>.GeneratedObjectiveCVariant.get_tokens_unprocessedN)*rrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErF)	rHrIrJrKrLrMrNrOrP)rQrR)rQrS)rQrU)rQrU)rQrU©r^)rt) Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
rZCharÚFloatÚHexÚOctÚIntegerrrrÚTyperrlrr
rrrJZLabelrrrÚFunctionÚVariabler	Útokensrfrkrd)rbrcrsrdreÚGeneratedObjectiveCVariant*s®


r)r`Úcompile)rsrrd)rbrcrsreÚ	objectives


rƒc@s6eZdZdZdZdZddddgZdd	gZd
gZdZ	dS)
rzC
    For Objective-C source code with preprocessor directives.
    zObjective-Czƒhttps://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.htmlzobjective-cZ
objectiveczobj-cZobjcz*.mz*.hztext/x-objective-cgš™™™™™©?N)
rurvrwrxÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚpriorityrdrdrdrerÂsc@s2eZdZdZdZddddgZddgZd	gZd
ZdS)rzE
    For Objective-C++ source code with preprocessor directives.
    z
Objective-C++z
objective-c++zobjectivec++zobj-c++zobjc++z*.mmz*.hhztext/x-objective-c++gš™™™™™©?N)	rurvrwrxr„r†r‡rˆr‰rdrdrdrerÏsc@s\eZdZdZdZdgZddddgZdgZd	Zd
e	fde
e	eee
jeeƒfde
e	eƒd
fde
e	ƒfde
e	ee
jƒdfde
e	eƒd#fegdefded$fde
e
jeeeeƒfde
jfdedfgde
e
jee
jƒdfde
jdfgde
e	eƒdfde
e	ee
jƒfde
e	ee
jeeeƒfde
e	eeƒdfde
e	ee	ee	ƒfde
ee	eƒfegdœZejdƒZd d!„Zd"S)%rzf
    For Logos + Objective-C source code with preprocessor directives.

    .. versionadded:: 1.6
    ZLogosZlogosz*.xz*.xiz*.xmz*.xmiztext/x-logosgÐ?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$]+)ú#popz(%subclass)(\s+)Úlogos_classnamez\s+rZz'([a-zA-Z$_][\w$]*)(\s*)(=)(\s*)([^);]*)z([a-zA-Z$_][\w$]*)z\)z.([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?z*(%config)(\s*\(\s*)(\w+)(\s*=)(.*?)(\)\s*)z(%ctor)(\s*)(\{)r[z(%new)(\s*)(\()(.*?)(\))z(\s*)(%end)(\s*))rWrŠrŒr^z%(?:hook|ctor|init|c\()cCstjj|ƒrdSdS)Ngð?r)rÚ_logos_keywordsr_)rardrdrerfszLogosLexer.analyse_textN)r‹rŒ)rŠr‹)rurvrwrxr„r†r‡rˆr‰rrrr
rrJrrr
r€r`r‚rrfrdrdrdrerÛsP





cÎ@sŒeZdZdZdZdZdgZdgZdgZde	fde	fd	e
jd
fde
jdfd
e
j
dfedƒedŸd×d؍ejfed d×d؍ejjfd$ejfd%ejfd&ejfd'ejfd(ejfd)ejfd*ed+fd,efd-efd.efged¡d×d؍efdHejfed¢d×d؍ejfdpejfdqej drfdse!ej e	ej"ƒfdte!ej e	ej#ƒfdue!ej e	ejƒfed£d×d؍ej fg	dŠe
j$fgde	d‹fedŒƒde
jfgedŒƒdŽe
jfde
jdfde
jd‹fd‘e
jfgde	d‹fd.ej"fed’ƒgde	d‹fedƒd“e
j
fed’ƒgd”ej%d•fd*ed‹fd–ej&fd—efd˜efgd™ej%dfdšej%d‹fed’ƒgd›œ	Z'dœd„Z(džS(¤rz6
    For Swift source.

    .. versionadded:: 2.0
    ZSwiftzhttps://www.swift.org/z*.swiftZswiftztext/x-swiftz\nz\s+z//zcomment-singlez/\*z
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ÚFilterSequenceViewryÚ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ÚSelectorz\b)rGÚ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Ú
strideofValuerGÚswapÚ
toDebugStringÚtoStringÚ	transcodeÚunderestimateCountÚunsafeAddressOfÚ
unsafeBitCastÚunsafeDowncastÚwithExtendedLifetimeÚwithUnsafeMutablePointerÚwithUnsafeMutablePointersÚwithUnsafePointerÚwithUnsafePointersÚ
withVaListz\$\d+z0b[01_]+z	0o[0-7_]+z0x[0-9a-fA-F_]+zD[0-9][0-9_]*(\.[0-9_]+[eE][+\-]?[0-9_]+|\.[0-9_]*|[eE][+\-]?[0-9_]+)z[0-9][0-9_]*ú"rz/[(){}\[\].,:;=@#`?]|->|[<&?](?=\w)|(?<=\w)[>!?]z[/=\-+!*%<>&|^?~]+z[a-zA-Z_]\w*ÚasÚasyncÚawaitÚbreakÚcaseÚcatchÚcontinuer	ÚdeferÚdoÚelseÚfallthroughÚforÚguardÚifr=ÚisÚrepeatÚreturnú	#selectorÚswitchÚthrowÚtryÚwhereÚwhilez@availability\([^)]+\)Ú
associativityÚconvenienceÚdynamicÚdidSetÚfinalÚgetÚindirectÚinfixr?ÚleftÚmutatingÚnoneÚnonmutatingÚoptionalÚoverrideÚpostfixÚ
precedenceÚProtocolÚrequiredÚrethrowsÚrightÚsetÚthrowsr}Úunownedr0ÚwillSetú
@availabilityú@autoclosureú	@noreturnú@NSApplicationMainú
@NSCopyingú
@NSManagedú@objcú@UIApplicationMainú	@IBActionú
@IBDesignableú@IBInspectableú	@IBOutletz(as|dynamicType|false|is|nil|self|Self|super|true|__COLUMN__|__FILE__|__FUNCTION__|__LINE__|_|#(?:file|line|column|function))\bzimport\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ÚassociatedtyperAÚ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):z#popÚcommentz[^\n]z[^*/]z#pushz\*/z[*/]r^z[A-Za-z]\w*z\\\(zstring-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\\z\(z\))	r^rrïzcomment-singlez
comment-multirÛrŽrzstring-intpccsrddlm}m}m}xXtj||ƒD]H\}}}|tks>|tjkr^||ksV||ksV||kr^tjj	}|||fVq"WdS)Nr)rgrhri)
rjrgrhrirrkrrJrlrm)rnrargrhrirprqrrrdrdrerkîsz!SwiftLexer.get_tokens_unprocessedN)Çrr‘r’r“r”r•r–r—r˜r™ršr›rœrržrŸr r¡r¢r£r¤r¥r¦r§ryr¨r©rªr«r¬r­r®r¯r°r±r²r³r´rµr¶r·r¸r¹rºr»r¼r½r¾r¿rÀrÁrÂrÃrÄrÅrÆrÇrÈrÉrÊrËrÌrÍrÎrÏrÐrÑrÒr
rÓrÔrÕrÖr×rØrÙrÚrÛrÜrÝrÞrßràrárârãrärårærçrèrérêrërìrírîrïrðrñròrórôrõrör÷rørùrúrûrürýrþrÿrrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrT)KrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rr€rr‚rƒr„r…r†r‡rˆr‰rŠr‹rŒrrŽrrrGr‘r’r“r”r•r–r—r˜r™ršr›rœrrž)r r¡r¢r£r¤r¥r¦r	r§r¨r©rªr«r¬r­r=r®r¯r°r±r²r³r´rµr¶))r·r¸r¹rºr»r¼r½r¾r?rqr¿rÀrÁrÂrÃrÄrÅrÆr}rÇrÈrÉrÊrËrÌr}rÍr0rÎrÏrÐrÑrÒrÓrÔrÕrÖr×rØrÙrÚ)rÜrÝrArÞrßràrárârãrärårærçrèrérêrërìrírî))rurvrwrxr„r…r‡r†rˆr
rÚSingleZ	MultilineZPreprocrrrrlrmrrZBinr{rzryr|r
rrrZReservedÚConstantZDeclarationrrJr~ÚSpecialZInterpolZEscaper€rkrdrdrdrers@

























)rxr`Zpygments.lexerrrrrrrrr	Zpygments.tokenr
rrr
rrrrrZpygments.lexers.c_cpprrÚ__all__rƒrrrrrdrdrdreÚ<module>	s(,,
@