
    `(                         S r SSKrSSKJrJrJrJrJrJr  SSK	J
r
JrJrJrJrJrJrJrJr  SS/r " S S\5      r " S S\5      rg)	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)
RegexLexerbygroupsincludewordsusingdefault)	TextCommentOperatorKeywordNameStringNumberPunctuationGenericFortranLexerFortranFixedLexerc                      \ rS rSrSrSrSrSS/r/ SQrS/r	\
R                  \
R                  -  rS	\R                  4S
\4\" S5      \" S5      S\4\" S5      S\R&                  4/S\" \\R&                  \5      4S\" \\R&                  \5      4\" SSSS9\4\" SSSS9\R.                  4S\4S\R2                  4S\4\" SSSS9\R6                  4S\R6                  4S\R8                  4/
S\R<                  4S\R>                  4/S\ RB                  4S \ RD                  4S!\ RD                  4S"\ RD                  4/S#.r#S$r$g%)&r      z4
Lexer for FORTRAN 90 code.

.. versionadded:: 0.10
Fortranzhttps://fortran-lang.org/fortranf90)z*.f03z*.f90z*.F03z*.F90ztext/x-fortranz^#.*\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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____firstlineno____doc__nameurlaliases	filenames	mimetypesre
IGNORECASE	MULTILINEflagsr
   Preprocr   r   r	   
Whitespacer   r   r   Typer   Declarationr   BuiltinWordr   DoubleSingler   Integerr?  tokens__static_attributes__r      *lib/third_party/pygments/lexers/fortran.pyr   r      s   
 D
%C% G4I!"IMMBLL(E (wIFOT"FOt'
 *8GT__g+VW!8GT__g#NO 7* @EX+W, -2  R  	2 \\
 5h?g))*, 2)d 27xe2If \\g3l !$,,/;X]]KUk
\ .v}}=-v}}=
 0@@&,,O@&,,O@&,,O	
yBFr
  c                   <   \ rS rSrSrSrS/rSS/r\R                  r
SS jrS	\4S
\R                  4S\4S\R                  S4S\" \5      4/S\S4S\S4S\R(                  S4/S\" \\\R,                  5      S4S\" \\R,                  5      S4\" S5      /S.rSrg)r      z8
Lexer for fixed format Fortran.

.. versionadded:: 2.1
FortranFixedfortranfixedz*.fz*.FNc              #      #    [        5       nUR                  S5      S-   nUR                  U5       H&  u  pVnUR                  SS5      nUS:w  d  M   XVU4v   M(     g7f)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_fortranFortranFixedLexer._lex_fortran   s[     {{1~$#(#?#?#EE%MM$+E{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"  r  )N)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   r      s    
 DGIMME* '"w'W%

K0eL)*
 $'6"'..&)
  lGT__=vG(<A6JFO	
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! ! ! .
/V: Vr(
 (r
  