Ë
    !täi‘(  ã                   ó�   — d Z ddlZddl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gZ G d„ de«      Z G d„ de«      Zy)	zÓ
    pygments.lexers.fortran
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Fortran languages.

    :copyright: Copyright 2006-present by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    N)Ú
RegexLexerÚbygroupsÚincludeÚwordsÚusingÚdefault)	ÚTextÚCommentÚOperatorÚKeywordÚNameÚStringÚNumberÚPunctuationÚGenericÚFortranLexerÚFortranFixedLexerc                   ó–  — e Zd ZdZdZdZddgZg d¢ZdgZdZ	e
j                  e
j                  z  Zd	ej                  fd
ef ed«       ed«      def ed«      dej&                  fgd eeej&                  e«      fd eeej&                  e«      f eddd¬«      ef eddd¬«      ej.                  fdefdej2                  fdef eddd¬«      ej6                  fdej6                  fdej8                  fg
dej<                  fdej>                  fgde jB                  fd e jD                  fd!e jD                  fd"e jD                  fgd#œZ#y$)%r   z$
    Lexer for FORTRAN 90 code.
    ÚFortranúhttps://fortran-lang.org/ÚfortranÚf90)z*.f03z*.f90z*.F03z*.F90ztext/x-fortranz0.10z^#.*\nz!.*\nÚstringsÚcorez[a-z][\w$]*Únumsz[\s]+z\b(DO)(\s+)(CONCURRENT)\bz\b(GO)(\s*)(TO)\b)ÚABSTRACTÚACCEPTÚALLÚALLSTOPÚALLOCATABLEÚALLOCATEÚARRAYÚASSIGNÚ	ASSOCIATEÚASYNCHRONOUSÚ	BACKSPACEÚBINDÚBLOCKÚ	BLOCKDATAÚBYTEÚCALLÚCASEÚCLASSÚCLOSEÚCODIMENSIONÚCOMMONÚ
CONTIGUOUSÚCONTAINSÚCONTINUEÚCRITICALÚCYCLEÚDATAÚ
DEALLOCATEÚDECODEÚDEFERREDÚ	DIMENSIONÚDOÚ	ELEMENTALÚELSEÚELSEIFÚENCODEÚENDÚENDASSOCIATEÚENDBLOCKÚENDDOÚENDENUMÚ	ENDFORALLÚENDFUNCTIONÚENDIFÚENDINTERFACEÚ	ENDMODULEÚ
ENDPROGRAMÚ	ENDSELECTÚENDSUBMODULEÚENDSUBROUTINEÚENDTYPEÚENDWHEREÚENTRYÚENUMÚ
ENUMERATORÚEQUIVALENCEz
ERROR STOPÚEXITÚEXTENDSÚEXTERNALÚ	EXTRINSICÚFILEÚFINALÚFORALLÚFORMATÚFUNCTIONÚGENERICÚIFÚIMAGESÚIMPLICITÚIMPORTÚIMPUREÚINCLUDEÚINQUIREÚINTENTÚ	INTERFACEÚ	INTRINSICÚISÚLOCKÚMEMORYÚMODULEÚNAMELISTÚNULLIFYÚNONEÚNON_INTRINSICÚNON_OVERRIDABLEÚNOPASSÚONLYÚOPENÚOPTIONALÚOPTIONSÚ	PARAMETERÚPASSÚPAUSEÚPOINTERÚPRINTÚPRIVATEÚPROGRAMÚ	PROCEDUREÚ	PROTECTEDÚPUBLICÚPUREÚREADÚ	RECURSIVEÚRESULTÚRETURNÚREWINDÚSAVEÚSELECTÚSEQUENCEÚSTOPÚ	SUBMODULEÚ
SUBROUTINEÚSYNCÚSYNCALLÚ
SYNCIMAGESÚ
SYNCMEMORYÚTARGETÚTHENÚTYPEÚUNLOCKÚUSEÚVALUEÚVOLATILEÚWHEREÚWRITEÚWHILEz\bz\s*\b)ÚprefixÚsuffix)%Ú	CHARACTERÚCOMPLEXzDOUBLE PRECISIONzDOUBLE COMPLEXÚINTEGERÚLOGICALÚREALÚC_INTÚC_SHORTÚC_LONGÚC_LONG_LONGÚC_SIGNED_CHARÚC_SIZE_TÚC_INT8_TÚ	C_INT16_TÚ	C_INT32_TÚ	C_INT64_TÚC_INT_LEAST8_TÚC_INT_LEAST16_TÚC_INT_LEAST32_TÚC_INT_LEAST64_TÚC_INT_FAST8_TÚC_INT_FAST16_TÚC_INT_FAST32_TÚC_INT_FAST64_TÚ
C_INTMAX_TÚ
C_INTPTR_TÚC_FLOATÚC_DOUBLEÚC_LONG_DOUBLEÚC_FLOAT_COMPLEXÚC_DOUBLE_COMPLEXÚC_LONG_DOUBLE_COMPLEXÚC_BOOLÚC_CHARÚC_PTRÚC_FUNPTRz$(\*\*|\*|\+|-|\/|<|>|<=|>=|==|\/=|=)z(::)z[()\[\],:&%;.](1  ÚAbortÚAbsÚAccessÚACharÚACosÚACosHÚAdjustLÚAdjustRÚAImagÚAIntÚAlarmÚAllÚ	AllocatedÚALogÚAMaxÚAMinÚAModÚAndÚANIntÚAnyÚASinÚASinHÚ
AssociatedÚATanÚATanHÚAtomic_DefineÚ
Atomic_RefÚBesJÚBesJNÚ	Bessel_J0Ú	Bessel_J1Ú	Bessel_JNÚ	Bessel_Y0Ú	Bessel_Y1Ú	Bessel_YNÚBesYÚBesYNÚBGEÚBGTÚBLEÚBLTÚBit_SizeÚBTestÚCAbsÚCCosÚCeilingÚCExpÚCharÚChDirÚChModÚCLogÚCmplxÚCommand_Argument_CountÚComplexÚConjgÚCosÚCosHÚCountÚCPU_TimeÚCShiftÚCSinÚCSqRtÚCTimeÚC_LocÚC_AssociatedÚ
C_Null_PtrÚC_Null_FunptrÚC_F_PointerÚC_F_ProcPointerÚC_Null_CharÚC_AlertÚC_BackspaceÚC_Form_FeedÚC_FunLocÚC_SizeofÚ
C_New_LineÚC_Carriage_ReturnÚC_Horizontal_TabÚC_Vertical_TabÚDAbsÚDACosÚDASinÚDATanÚDate_and_TimeÚDbesJÚDbesJNÚDbesYÚDbesYNÚDbleÚDCosÚDCosHÚDDiMÚDErFÚDErFCÚDExpÚDigitsÚDiMÚDIntÚDLogÚDMaxÚDMinÚDModÚDNIntÚDot_ProductÚDProdÚDSignÚDSinHÚDShiftLÚDShiftRÚDSinÚDSqRtÚDTanHÚDTanÚDTimeÚEOShiftÚEpsilonÚErFÚErFCÚErFC_ScaledÚETimeÚExecute_Command_LineÚExitÚExpÚExponentÚExtends_Type_OfÚFDateÚFGetÚFGetCÚFindLocÚFloatÚFloorÚFlushÚFNumÚFPutCÚFPutÚFractionÚFSeekÚFStatÚFTellÚGammaÚGErrorÚGetArgÚGet_CommandÚGet_Command_ArgumentÚGet_Environment_VariableÚGetCWDÚGetEnvÚGetGIdÚGetLogÚGetPIdÚGetUIdÚGMTimeÚHostNmÚHugeÚHypotÚIAbsÚIACharÚIAllÚIAndÚIAnyÚIArgCÚIBClrÚIBitsÚIBSetÚICharÚIDateÚIDiMÚIDIntÚIDNIntÚIEOrÚIErrNoÚIFixÚImagÚImagPartÚImage_IndexÚIndexÚIntÚIOrÚIParityÚIRandÚIsaTtyÚIShftÚIShftCÚISignÚIso_C_BindingÚIs_ContiguousÚIs_Iostat_EndÚIs_Iostat_EorÚITimeÚKillÚKindÚLBoundÚLCoBoundÚLenÚLen_TrimÚLGeÚLGtÚLinkÚLLeÚLLtÚLnBlnkÚLocÚLogÚ	Log_GammaÚLogicalÚLongÚLShiftÚLStatÚLTimeÚMaskLÚMaskRÚMatMulÚMaxÚMaxExponentÚMaxLocÚMaxValÚMClockÚMergeÚ
Merge_BitsÚ
Move_AllocÚMinÚMinExponentÚMinLocÚMinValÚModÚModuloÚMvBitsÚNearestÚNew_LineÚNIntÚNorm2ÚNotÚNullÚ
Num_ImagesÚOrÚPackÚParityÚPErrorÚ	PrecisionÚPresentÚProductÚRadixÚRandÚRandom_NumberÚRandom_SeedÚRangeÚRealÚRealPartÚRenameÚRepeatÚReshapeÚ	RRSpacingÚRShiftÚSame_Type_AsÚScaleÚScanÚSecondÚSelected_Char_KindÚSelected_Int_KindÚSelected_Real_KindÚSet_ExponentÚShapeÚShiftAÚShiftLÚShiftRÚShortÚSignÚSignalÚSinHÚSinÚSleepÚSnglÚSpacingÚSpreadÚSqRtÚSRandÚStatÚStorage_SizeÚSumÚSymLnkÚSystemÚSystem_ClockÚTanÚTanHÚTimeÚ
This_ImageÚTinyÚTrailZÚTransferÚ	TransposeÚTrimÚTtyNamÚUBoundÚUCoBoundÚUMaskÚUnlinkÚUnpackÚVerifyÚXOrÚZAbsÚZCosÚZExpÚZLogÚZSinÚZSqRtz\.(true|false)\.z+\.(eq|ne|lt|le|gt|ge|not|and|or|eqv|neqv)\.z"(\\[0-7]+|\\[^0-7]|[^"\\])*"z'(\\[0-7]+|\\[^0-7]|[^'\\])*'z\d+(?![.e])(_([1-9]|[a-z]\w*))?z0[+-]?\d*\.\d+([ed][-+]?\d+)?(_([1-9]|[a-z]\w*))?z0[+-]?\d+\.\d*([ed][-+]?\d+)?(_([1-9]|[a-z]\w*))?z0[+-]?\d+(\.\d*)?[ed][-+]?\d+(_([1-9]|[a-z]\w*))?)Úrootr   r   r   N)$Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚurlÚaliasesÚ	filenamesÚ	mimetypesÚversion_addedÚreÚ
IGNORECASEÚ	MULTILINEÚflagsr
   ÚPreprocr   r   r	   Ú
Whitespacer   r   r   ÚTyper   ÚDeclarationr   ÚBuiltinÚWordr   ÚDoubleÚSingler   ÚIntegerr@  Útokens© ó    úf/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/pygments/lexers/fortran.pyr   r      sÁ  „ ñð €DØ
%€CØ˜%Ð €GÚ4€IØ!Ð"€IØ€MØ�M‰M˜BŸL™LÑ(€Eð ˜Ÿ™Ð(Ø�wÐÙ�IÓÙ�F‹OØ˜TÐ"Ù�F‹OØ�t—‘Ð'ð
ð *©8°G¸T¿_¹_ÈgÓ+VÐWØ!¡8¨G°T·_±_ÀgÓ#NÐOáð 7ð* @EÈXô+Wð, ð-ñ2 ð Rð  ¨ô	2ð �\‰\ð
ð 5°hÐ?à�g×)Ñ)Ð*à Ð,áð 2)ðd 27¸xôe2Iðf �\‰\ðg3ðl ! $§,¡,Ð/à;¸X¿]¹]ÐKðUk
ð\ .¨v¯}©}Ð=Ø-¨v¯}©}Ð=ð
ð 0°·±Ð@Ø@À&Ç,Á,ÐOØ@À&Ç,Á,ÐOØ@À&Ç,Á,ÐOð	
ñyB�Fr
  c                   ó:  — e Zd ZdZdZdgZddgZdZdZe	j                  Zdd	„Zd
efdej                  fdefdej                   dfd ee«      fgdedfdedfdej*                  dfgd eeeej.                  «      dfd eeej.                  «      df ed«      gdœZy)r   z)
    Lexer for fixed format Fortran.
    ÚFortranFixedÚfortranfixedz*.fz*.Fr   z2.1Nc              #   óº   K  — t        «       }|j                  d«      dz   }|j                  |«      D ]%  \  }}}|j                  dd«      }|dk7  sŒ|||f–— Œ' y­w)z8Lex a line just as free form fortran without line break.r   Ú
Ú N)r   ÚgroupÚget_tokens_unprocessedÚreplace)ÚselfÚmatchÚctxÚlexerÚtextÚindexÚtokenÚvalues           r  Ú_lex_fortranzFortranFixedLexer._lex_fortran¸   s`   è ø€ ä“ˆØ�{‰{˜1‹~ Ñ$ˆØ#(×#?Ñ#?ÀÖ#EÑˆE�5˜%Ø—M‘M $¨Ó+ˆEØ˜‹{Ø˜U EÐ)Ó)ñ $Fùs   ‚AAÁ
Az[C*].*\nz#.*\nz {0,4}!.*\nz(.{5})ú	cont-charz.*\nÚ ÚcodeÚ0Ú.z(.{66})(.*)(\n)rð  z(.*)(\n))rð  r  r   )N)rñ  rò  ró  rô  rõ  r÷  rø  rö  rú  rû  rü  rþ  r  r
   rÿ  r   ÚLabelr   r   r	   r   ÚStrongr   r   r   r  r	  r
  r  r   r   ¬   sã   „ ñð €DØÐ€GØ˜�€IØ
%€CØ€Mà�M‰M€Eó*ð ˜'Ð"Ø�w—‘Ð'Ø˜WÐ%Ø˜Ÿ
™
 KÐ0Ø‘e˜LÓ)Ð*ð
ð �$˜ÐØ�'˜6Ð"Ø�'—.‘. &Ð)ð
ð  Ù�l G¨T¯_©_Ó=¸vðGà™( <°·±ÓAÀ6ÐJÙ�F‹Oð	
ñ�Fr
  )rô  rû  Úpygments.lexerr   r   r   r   r   r   Úpygments.tokenr	   r
   r   r   r   r   r   r   r   Ú__all__r   r   r	  r
  r  Ú<module>r(     sL   ðñó 
ç O× O÷!÷ !õ !ð Ð.Ð
/€ôU�:ô Uôp(˜
õ (r
  