§
    XŠtj‘(  ã                   óž   — 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dS )	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j        fdef eddd¬¦  «        ej        fdej        fdej        fg
dej        fdej        fgde j!        fd e j"        fd!e j"        fd"e j"        fgd#œZ#d$S )%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© ó    úU/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pygments/lexers/fortran.pyr   r      sú  € € € € € ðð ð €DØ
%€CØ˜%Ð €GØ4Ð4Ð4€IØ!Ð"€IØ€MØŒM˜BœLÑ(€Eð ˜œÐ(Ø�wÐØˆG�IÑÔØˆG�F‰OŒOØ˜TÐ"ØˆG�F‰OŒOØ�t”Ð'ð
ð *¨8¨8°G¸T¼_ÈgÑ+VÔ+VÐWØ! 8 8¨G°T´_ÀgÑ#NÔ#NÐOàˆUð 7ð* @EÈXð+Wñ Wô Wð, ð-ð2 ˆUð Rð  ¨ð	2ñ 	2ô 	2ð Œ\ð
ð 5°hÐ?à�gÔ)Ð*à Ð,àˆUð 2)ðd 27¸xðe2Iñ 2Iô 2Iðf Œ\ðg3ðl ! $¤,Ð/à;¸X¼]ÐKðUk
ð\ .¨v¬}Ð=Ø-¨v¬}Ð=ð
ð 0°´Ð@Ø@À&Ä,ÐOØ@À&Ä,ÐOØ@À&Ä,ÐOð	
ðyBð B€F€F€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dS )r   z)
    Lexer for fixed format Fortran.
    ÚFortranFixedÚfortranfixedz*.fz*.Fr   z2.1Nc              #   óÔ   K  — t          ¦   «         }|                     d¦  «        dz   }|                     |¦  «        D ])\  }}}|                     dd¦  «        }|dk    r|||fV — Œ*dS )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ð 	*ð 	*ÑˆE�5˜%Ø—M’M $¨Ñ+Ô+ˆEØ˜Š{ˆ{Ø˜U EÐ)Ð)Ð)Ð)øð	*ð 	*r
  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€Eð*ð *ð *ð *ð ˜'Ð"Ø�w”Ð'Ø˜WÐ%Ø˜œ
 KÐ0Ø�e�e˜LÑ)Ô)Ð*ð
ð �$˜ÐØ�'˜6Ð"Ø�'”. &Ð)ð
ð  ØˆX�l G¨T¬_Ñ=Ô=¸vðGà˜(˜( <°´ÑAÔAÀ6ÐJØˆG�F‰OŒOð	
ðð €F€F€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(     s,  ððð ð 
€	€	€	à OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ Oð!ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð !ð Ð.Ð
/€ðUð Uð Uð Uð U�:ñ Uô Uð Uðp(ð (ð (ð (ð (˜
ñ (ô (ð (ð (ð (r
  