
    Mh(                         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-2025 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     W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pygments/lexers/fortran.pyr   r      s         D
%C% G444I!"IMMBL(E (wGIGFOOT"GFOOt'
 *88GT_g+V+VW!88GT_g#N#NOU 7* @EX+W W W, -2 U R  	2 	2 	2 \
 5h?g)*,U 2)d 27xe2I 2I 2If \g3l !$,/;X]KUk
\ .v}=-v}=
 0@@&,O@&,O@&,O	
yB BFFFr
  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 	* 	*E5%MM$++E{{UE))))	* 	*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ME* * * * '"w'W%
K0eeL))*
 $'6"'.&)
  XlGT_==vG((<AA6JGFOO	
 FFFr
  )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
  