
    L&iY                        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 Z G d d	 ee                    Z G d
 d ee                    Z G d de          Z G d de          ZdS )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
SwiftLexerc                      t          j        d          t          j        d           G  f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                      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          ef e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d3 e 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>ZdBfd@	ZdAS )C-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+))rF   oc_forward_classname@z7([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?(\s*)(\{))rF   oc_ivars.([a-zA-Z$_][\w$]*)(\s*:\s*)([a-zA-Z$_][\w$]*)?rF   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*)rH   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\])rN   rG   rH   rJ   rootrQ   r   rU   r    rX   r!   c                                          |           rdS d| v rdS t          j         d|           rdS                      |           rdS dS )N      ?r   g?z@[0-9]+gffffff?r   )searchre)text_oc_keywords_oc_messages    f/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/pygments/lexers/objective.pyanalyse_textz:objective.<locals>.GeneratedObjectiveCVariant.analyse_text   se    ""4(( ss9d++ s##D)) s1    rY   c              3      K   ddl m}m}m} 	                    | ||          D ]A\  }}}|t
          u s|t
          j        u r||v s||v s||v rt
          j        j        }|||fV  Bd S Nr   )COCOA_INTERFACESCOCOA_PROTOCOLSCOCOA_PRIMITIVES)	pygments.lexers._cocoa_builtinsrg   rh   ri   get_tokens_unprocessedr   r?   BuiltinPseudo)
selfr^   stackrg   rh   ri   indextokenvalue	baselexers
            ra   rk   zDobjective.<locals>.GeneratedObjectiveCVariant.get_tokens_unprocessed   s      2 2 2 2 2 2 2 2 2 2 44T4GG* *#ueD==ETZ$7$7 000E_4L4L#333 $ 3UE)))))* *rc   N)rd   ) __name__
__module____qualname____doc__r   r   CharFloatHexOctIntegerr   r   r   Typer   rl   r   r   r   r	   r?   Labelr   r   r   FunctionVariabler
   tokensrb   rk   )r_   r`   rs   s   ra   GeneratedObjectiveCVariantr   *   sU       	 	 )v&GU:FLI2FLA(&*5!6:.v~."23/2"67 @ INO O O 	  ;CHJ J J +DL9-t|<GV"DL15xx7N7N)++XXgt-D-D13 {#K&R L$*dDJkJJ%' C$*dDJ77A K$*dDJkJJ%' B$*dDJ77A 0$*dK88:NP&
F;!& 0$*d++-CE-$*d++V5% %%%%k"W-V,) +tUU4[[/ / 	 %% {#K(4%%++tT];;=%t}5k6*Z0 %;<($$ W-V,$$% %:;($$ W-V,$$$ ($$#ev
 v
p		 		 		 		 		 			* 	* 	* 	* 	* 	* 	* 	*rc   r   )r]   compile)rs   r   r_   r`   s   ` @@ra   	objectiver      s     :ABBL * 4 5 5KS* S* S* S* S* S* S* S* S*Y S* S* S*j &%rc   c                   4    e Zd ZdZdZdZg dZddgZdg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)
rt   ru   rv   rw   nameurlaliases	filenames	mimetypespriority rc   ra   r   r      sH          D PC<<<GI%&IHHHrc   r   c                   0    e Zd ZdZdZg dZddgZdg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   N)	rt   ru   rv   rw   r   r   r   r   r   r   rc   ra   r   r      sA          DDDDG I'(IHHHrc   r   c                   l   e Zd ZdZdZdgZg dZdg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j        d          Zd Zd S )!r   zf
    For Logos + Objective-C source code with preprocessor directives.

    .. versionadded:: 1.6
    Logoslogos)z*.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$]+)rF   z(%subclass)(\s+))rF   logos_classname\s+rR   )r   rF   z'([a-zA-Z$_][\w$]*)(\s*)(=)(\s*)([^);]*)rL   rV   rK   r   z*(%config)(\s*\(\s*)(\w+)(\s*=)(.*?)(\)\s*)z(%ctor)(\s*)(\{)rS   z(%new)(\s*)(\()(.*?)(\))z(\s*)(%end)(\s*))rN   r   r   rY   z%(?:hook|ctor|init|c\()c                 H    t           j                            |           rdS dS )Nr[   r   )r   _logos_keywordsr\   )r^   s    ra   rb   zLogosLexer.analyse_text  s%    %,,T22 	3qrc   N)rt   ru   rv   rw   r   r   r   r   r   r   r   r   r   r   r?   r	   r   r   r   r]   r   r   rb   r   rc   ra   r   r      s9         DiG000I IH (:Xg{D$*dKPPRXg{++-CE'!2!235XgtTZ00&: ((7D"9"9(*
 TN+?@7Xdj$T4@@B"DJ/K(!
 ?Xdj$
33V="DJ7
 !((7D"9"9 5XgtTZ002:XgtT]D&$GGI ((7D+"F"F(XgtWfg>>@ ((4$"?"?@
7) )FV !bj!;<<O    rc   r   c                      e Zd ZdZdZdZdgZdgZdg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          ej        f e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fdefdefg edd          efd ej        f e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          ej         fg	d)e
j$        fgde	d*f ed+          d,e
j        fg ed+          d-e
j        fde
j        d.fd/e
j        d*fd0e
j        fgde	d*fdej"        f ed1          gde	d*f ed          d2e
j        f ed1          gd3ej%        d4fded*fd5ej&        fd6efd7efgd8ej%        d.fd9ej%        d*f ed1          gd:	Z'd; Z(d<S )=r   z6
    For Swift source.

    .. versionadded:: 2.0
    Swiftzhttps://www.swift.org/z*.swiftswiftztext/x-swiftz\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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Selectorr:   r;   )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strideofValuer<   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_]*"r   z/[(){}\[\].,:;=@#`?]|->|[<&?](?=\w)|(?<=\w)[>!?]z[/=\-+!*%<>&|^?~]+z[a-zA-Z_]\w*)asasyncawaitbreakcasecatchcontinuer
   deferdoelsefallthroughforguardifr5   isrepeatreturnz	#selectorswitchthrowtrywherewhilez@availability\([^)]+\)))associativityconveniencedynamicdidSetfinalgetindirectinfixr7   r  leftmutatingnonenonmutatingoptionaloverridepostfix
precedencer  Protocolrequiredrethrowsrightsetthrowsr}   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associatedtyper9   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):rF   commentz[^\n]z[^*/]rP   z\*/z[*/]rY   z[A-Za-z]\w*z\\\(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\\rT   rV   )	rY   r   r  r   r   r  r   r   r  c              #      K   ddl m}m}m} t	          j        | |          D ]A\  }}}|t          u s|t          j        u r||v s||v s||v rt          j        j	        }|||fV  Bd S rf   )
rj   rg   rh   ri   r   rk   r   r?   rl   rm   )rn   r^   rg   rh   ri   rp   rq   rr   s           ra   rk   z!SwiftLexer.get_tokens_unprocessed  s      	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 1$==	& 	&E5%}} 3 3,,,0H0H/// L/E%%%%%	& 	&rc   N))rt   ru   rv   rw   r   r   r   r   r   r   r   Single	MultilinePreprocr   r   r   rl   rm   r   r   Binr{   rz   ry   r|   r   r   r   r   ReservedConstantDeclarationr   r?   r   SpecialInterpolEscaper   rk   r   rc   ra   r   r     s        
 D
"CIiG I
 DMTNGN$45W&83W_iP GJ U ?B~ KP?Q ?Q ?Q@ \A@D U  ',- - -  \ !"& t}% &*%6:&,-.4l<fn-68$ @M"H- d#kv
p U " +0	1 1 1
  '(89U 	/ 8=	> 	> 	> 
34;4DF '-x8IXg)4<<>)Xg)4??A,hhw7J4=/" /" #U E NST T T  	";"
H C_
 D&!GIw~&
 GIw()W&0W&/g'(
 D&!dj)GFOO
 D&!GJW_-GFOO	
 fo}566"9:@-I FO
 FOW-FOV,GFOO
AE EFN& & & & &rc   r   )rw   r]   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   rc   ra   <module>r     s    
			                   * * * * * * * * * * * * * * * * * * * * * * 3 2 2 2 2 2 2 2
N
N
Nh& h& h&V
 
 
 
 
ii'' 
 
 
	 	 	 	 			(++ 	 	 	= = = = =" = = =@^& ^& ^& ^& ^& ^& ^& ^& ^& ^&rc   