|ej(dZddlZddlmZmZmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZmZddgZGddeZGddeZy) z pygments.lexers.fortran ~~~~~~~~~~~~~~~~~~~~~~~ Lexers for Fortran languages. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N) RegexLexerbygroupsincludewordsusingdefault) TextCommentOperatorKeywordNameStringNumber PunctuationGeneric FortranLexerFortranFixedLexerc eZdZdZdZdZddgZgdZdgZe je jzZ de jfd e fed ed d efed dej$fgdeeej$efdeeej$efedddefedddej,fdefdej0fdefedddej4fdej4fdej6fg dej:fdej<fgdej@fdejBfd ejBfd!ejBfgd"Z"y#)$rz@ Lexer for FORTRAN 90 code. .. versionadded:: 0.10 Fortranzhttps://fortran-lang.org/fortranf90)z*.f03z*.f90z*.F03z*.F90ztext/x-fortranz^#.*\nz!.*\nstringscorez [a-z][\w$]*numsz[\s]+z\b(DO)(\s+)(CONCURRENT)\bz\b(GO)(\s*)(TO)\b)ABSTRACTACCEPTALLALLSTOP ALLOCATABLEALLOCATEARRAYASSIGN ASSOCIATE ASYNCHRONOUS BACKSPACEBINDBLOCK BLOCKDATABYTECALLCASECLASSCLOSE CODIMENSIONCOMMON CONTIGUOUSCONTAINSCONTINUECRITICALCYCLEDATA DEALLOCATEDECODEDEFERRED DIMENSIONDO ELEMENTALELSEELSEIFENCODEEND ENDASSOCIATEENDBLOCKENDDOENDENUM ENDFORALL ENDFUNCTIONENDIF ENDINTERFACE ENDMODULE ENDPROGRAM ENDSELECT ENDSUBMODULE ENDSUBROUTINEENDTYPEENDWHEREENTRYENUM ENUMERATOR EQUIVALENCEz ERROR STOPEXITEXTENDSEXTERNAL EXTRINSICFILEFINALFORALLFORMATFUNCTIONGENERICIFIMAGESIMPLICITIMPORTIMPUREINCLUDEINQUIREINTENT INTERFACE INTRINSICISLOCKMEMORYMODULENAMELISTNULLIFYNONE NON_INTRINSICNON_OVERRIDABLENOPASSONLYOPENOPTIONALOPTIONS PARAMETERPASSPAUSEPOINTERPRINTPRIVATEPROGRAM PROCEDURE PROTECTEDPUBLICPUREREAD RECURSIVERESULTRETURNREWINDSAVESELECTSEQUENCESTOP SUBMODULE SUBROUTINESYNCSYNCALL SYNCIMAGES SYNCMEMORYTARGETTHENTYPEUNLOCKUSEVALUEVOLATILEWHEREWRITEWHILEz\bz\s*\b)prefixsuffix)% CHARACTERCOMPLEXzDOUBLE PRECISIONzDOUBLE COMPLEXINTEGERLOGICALREALC_INTC_SHORTC_LONG C_LONG_LONG C_SIGNED_CHARC_SIZE_TC_INT8_T C_INT16_T C_INT32_T C_INT64_TC_INT_LEAST8_TC_INT_LEAST16_TC_INT_LEAST32_TC_INT_LEAST64_T C_INT_FAST8_TC_INT_FAST16_TC_INT_FAST32_TC_INT_FAST64_T C_INTMAX_T C_INTPTR_TC_FLOATC_DOUBLE C_LONG_DOUBLEC_FLOAT_COMPLEXC_DOUBLE_COMPLEXC_LONG_DOUBLE_COMPLEXC_BOOLC_CHARC_PTRC_FUNPTRz$(\*\*|\*|\+|-|\/|<|>|<=|>=|==|\/=|=)z(::)z[()\[\],:&%;.](1AbortAbsAccessACharACosACosHAdjustLAdjustRAImagAIntAlarmAll AllocatedALogAMaxAMinAModAndANIntAnyASinASinH AssociatedATanATanH Atomic_Define Atomic_RefBesJBesJN Bessel_J0 Bessel_J1 Bessel_JN Bessel_Y0 Bessel_Y1 Bessel_YNBesYBesYNBGEBGTBLEBLTBit_SizeBTestCAbsCCosCeilingCExpCharChDirChModCLogCmplxCommand_Argument_CountComplexConjgCosCosHCountCPU_TimeCShiftCSinCSqRtCTimeC_Loc C_Associated C_Null_Ptr C_Null_Funptr C_F_PointerC_F_ProcPointer C_Null_CharC_Alert C_Backspace C_Form_FeedC_FunLocC_Sizeof C_New_LineC_Carriage_ReturnC_Horizontal_TabC_Vertical_TabDAbsDACosDASinDATan Date_and_TimeDbesJDbesJNDbesYDbesYNDbleDCosDCosHDDiMDErFDErFCDExpDigitsDiMDIntDLogDMaxDMinDModDNInt Dot_ProductDProdDSignDSinHDShiftLDShiftRDSinDSqRtDTanHDTanDTimeEOShiftEpsilonErFErFC ErFC_ScaledETimeExecute_Command_LineExitExpExponentExtends_Type_OfFDateFGetFGetCFindLocFloatFloorFlushFNumFPutCFPutFractionFSeekFStatFTellGammaGErrorGetArg Get_CommandGet_Command_ArgumentGet_Environment_VariableGetCWDGetEnvGetGIdGetLogGetPIdGetUIdGMTimeHostNmHugeHypotIAbsIACharIAllIAndIAnyIArgCIBClrIBitsIBSetICharIDateIDiMIDIntIDNIntIEOrIErrNoIFixImagImagPart Image_IndexIndexIntIOrIParityIRandIsaTtyIShftIShftCISign Iso_C_Binding Is_Contiguous Is_Iostat_End Is_Iostat_EorITimeKillKindLBoundLCoBoundLenLen_TrimLGeLGtLinkLLeLLtLnBlnkLocLog Log_GammaLogicalLongLShiftLStatLTimeMaskLMaskRMatMulMax MaxExponentMaxLocMaxValMClockMerge Merge_Bits Move_AllocMin MinExponentMinLocMinValModModuloMvBitsNearestNew_LineNIntNorm2NotNull Num_ImagesOrPackParityPError PrecisionPresentProductRadixRand Random_Number Random_SeedRangeRealRealPartRenameRepeatReshape RRSpacingRShift Same_Type_AsScaleScanSecondSelected_Char_KindSelected_Int_KindSelected_Real_Kind Set_ExponentShapeShiftAShiftLShiftRShortSignSignalSinHSinSleepSnglSpacingSpreadSqRtSRandStat Storage_SizeSumSymLnkSystem System_ClockTanTanHTime This_ImageTinyTrailZTransfer TransposeTrimTtyNamUBoundUCoBoundUMaskUnlinkUnpackVerifyXOrZAbsZCosZExpZLogZSinZSqRtz\.(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*))?)rootrrrN)#__name__ __module__ __qualname____doc__nameurlaliases filenames mimetypesre IGNORECASE MULTILINEflagsr Preprocrr r Whitespacerr rTyper DeclarationrBuiltinWordrDoubleSinglerIntegerr?tokens9/usr/lib/python3/dist-packages/pygments/lexers/fortran.pyrrs D %C% G4I!"I MMBLL (E ( w  I  FO T " FO t ' *8GT__g+V W !8GT__g#N O 7*@EX+W,- 2R  2\\ 5h ? g)) *  , 2)d27xe2If\\g3 l!$,, / ;X]] KUk \.v}} = -v}} = 0 @ @&,, O @&,, O @&,, O  yBFrc2eZdZdZdZdgZddgZejZ ddZ de fd e jfd e fd e jd fd eefgdedfde dfdej&dfgdee e ej*dfdee ej*dfedgdZy)rzD Lexer for fixed format Fortran. .. versionadded:: 2.1 FortranFixed fortranfixedz*.fz*.FNc#Kt}|jddz}|j|D]%\}}}|jdd}|dk7s|||f'yw)z8Lex a line just as free form fortran without line break.r N)rgroupget_tokens_unprocessedreplace)selfmatchctxlexertextindextokenvalues r  _lex_fortranzFortranFixedLexer._lex_fortransd{{1~$#(#?#?#E * E5%MM$+E{UE)) *s AA Az[C*].*\nz#.*\nz {0,4}!.*\nz(.{5}) cont-charz.*\n code0.z(.{66})(.*)(\n)rz(.*)(\n))rrr)N)rrrrrrrrrrrr rr Labelrrr rStrongrrrrrrr rrs DGI MME*' " w ' W %  K 0 eL) *  $  '6 " '..& )  lGT__ =v G (<A6 J FO  Fr)rrpygments.lexerrrrrrrpygments.tokenr r r r r rrrr__all__rrrrr r&sL OO!!! . /V:Vr( (r