a
    lcb(                     @   s   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 deZG dd deZdS )	z
    pygments.lexers.fortran
    ~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for Fortran languages.

    :copyright: Copyright 2006-2022 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                   @   s  e Zd ZdZdZdZddgZg dZdgZe	j
e	jB 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defeddddejfdefdejfdefed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.

    .. 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)~ZABSTRACTZACCEPTALLZALLSTOPZALLOCATABLEZALLOCATEZARRAYZASSIGNZ	ASSOCIATEZASYNCHRONOUSZ	BACKSPACEZBINDZBLOCKZ	BLOCKDATAZBYTECALLZCASEZCLASSZCLOSEZCODIMENSIONZCOMMONZ
CONTIGUOUSZCONTAINSCONTINUECRITICALZCYCLEZDATAZ
DEALLOCATEZDECODEZDEFERREDZ	DIMENSIONZDOZ	ELEMENTALELSEZENCODEZENDZENDASSOCIATEZENDBLOCKZENDDOZENDENUMZ	ENDFORALLZENDFUNCTIONZENDIFZENDINTERFACEZ	ENDMODULEZ
ENDPROGRAMZ	ENDSELECTZENDSUBMODULEZENDSUBROUTINEZENDTYPEZENDWHEREZENTRYZENUMZ
ENUMERATORZEQUIVALENCEz
ERROR STOPZEXITZEXTENDSZEXTERNALZ	EXTRINSICFILEZFINALZFORALLZFORMATZFUNCTIONZGENERICZIFZIMAGESZIMPLICITZIMPORTZIMPUREZINCLUDEZINQUIREZINTENTZ	INTERFACEZ	INTRINSICZISZLOCKZMEMORYMODULEZNAMELISTZNULLIFYNONEZNON_INTRINSICZNON_OVERRIDABLEZNOPASSZONLYZOPENOPTIONALOPTIONSZ	PARAMETERZPASSZPAUSEZPOINTERZPRINTZPRIVATEZPROGRAMZ	PROCEDUREZ	PROTECTEDZPUBLICZPUREREADZ	RECURSIVEZRESULTZRETURNZREWINDZSAVEZSELECTZSEQUENCESTOPZ	SUBMODULEZ
SUBROUTINEZSYNCZSYNCALLZ
SYNCIMAGESZ
SYNCMEMORYZTARGETZTHENZTYPEZUNLOCKZUSEZVALUEZVOLATILEZWHEREWRITEZWHILEz\bz\s*\b)prefixsuffix)%Z	CHARACTERZCOMPLEXzDOUBLE PRECISIONzDOUBLE COMPLEXZINTEGERZLOGICALZREALZC_INTZC_SHORTZC_LONGZC_LONG_LONGZC_SIGNED_CHARZC_SIZE_TZC_INT8_TZ	C_INT16_TZ	C_INT32_TZ	C_INT64_TZC_INT_LEAST8_TZC_INT_LEAST16_TZC_INT_LEAST32_TZC_INT_LEAST64_TZC_INT_FAST8_TZC_INT_FAST16_TZC_INT_FAST32_TZC_INT_FAST64_TZ
C_INTMAX_TZ
C_INTPTR_TZC_FLOATZC_DOUBLEZC_LONG_DOUBLEZC_FLOAT_COMPLEXZC_DOUBLE_COMPLEXZC_LONG_DOUBLE_COMPLEXZC_BOOLZC_CHARZC_PTRZC_FUNPTRz$(\*\*|\*|\+|-|\/|<|>|<=|>=|==|\/=|=)z(::)z[()\[\],:&%;.](1  ZAbortZAbsZAccessZACharZACosZACosHZAdjustLZAdjustRZAImagZAIntZAlarmZAllZ	AllocatedZALogZAMaxZAMinZAModAndZANIntAnyZASinZASinHZ
AssociatedZATanZATanHZAtomic_DefineZ
Atomic_RefZBesJZBesJNZ	Bessel_J0Z	Bessel_J1Z	Bessel_JNZ	Bessel_Y0Z	Bessel_Y1Z	Bessel_YNZBesYZBesYNZBGEZBGTZBLEZBLTZBit_SizeZBTestZCAbsZCCosZCeilingZCExpCharZChDirZChModZCLogZCmplxZCommand_Argument_CountComplexZConjgZCosZCosHZCountZCPU_TimeZCShiftZCSinZCSqRtZCTimeZC_LocZC_AssociatedZ
C_Null_PtrZC_Null_FunptrZC_F_PointerZC_F_ProcPointerZC_Null_CharZC_AlertZC_BackspaceZC_Form_FeedZC_FunLocZC_SizeofZ
C_New_LineZC_Carriage_ReturnZC_Horizontal_TabZC_Vertical_TabZDAbsZDACosZDASinZDATanZDate_and_TimeZDbesJZDbesJNZDbesYZDbesYNZDbleZDCosZDCosHZDDiMZDErFZDErFCZDExpZDigitsZDiMZDIntZDLogZDMaxZDMinZDModZDNIntZDot_ProductZDProdZDSignZDSinHZDShiftLZDShiftRZDSinZDSqRtZDTanHZDTanZDTimeZEOShiftEpsilonZErFZErFCZErFC_ScaledZETimeZExecute_Command_LineZExitZExpExponentZExtends_Type_OfZFDateZFGetZFGetCZFindLocFloatZFloorZFlushZFNumZFPutCZFPutFractionZFSeekZFStatZFTellGammaZGErrorZGetArgZGet_CommandZGet_Command_ArgumentZGet_Environment_VariableZGetCWDZGetEnvZGetGIdZGetLogZGetPIdZGetUIdZGMTimeZHostNmZHugeZHypotZIAbsZIACharZIAllZIAndZIAnyZIArgCZIBClrZIBitsZIBSetZICharZIDateZIDiMZIDIntZIDNIntZIEOrZIErrNoZIFixZImagZImagPartZImage_IndexIndexZIntZIOrZIParityZIRandZIsaTtyZIShftZIShftCZISignZIso_C_BindingZIs_ContiguousZIs_Iostat_EndZIs_Iostat_EorZITimeZKillKindZLBoundZLCoBoundZLenZLen_TrimZLGeZLGtLinkZLLeZLLtZLnBlnkZLocLogZ	Log_GammaZLogicalLongLShiftZLStatZLTimeZMaskLZMaskRZMatMulZMaxZMaxExponentZMaxLocZMaxValZMClockZMergeZ
Merge_BitsZ
Move_AllocZMinZMinExponentZMinLocZMinValModZModuloZMvBitsZNearestZNew_LineZNIntZNorm2NotZNullZ
Num_ImagesOrZPackZParityZPErrorZ	PrecisionZPresentZProductZRadixZRandZRandom_NumberZRandom_SeedRangeRealZRealPartZRenameZRepeatZReshapeZ	RRSpacingRShiftZSame_Type_AsZScaleZScanZSecondZSelected_Char_KindZSelected_Int_KindZSelected_Real_KindZSet_ExponentZShapeZShiftAZShiftLZShiftRZShortZSignZSignalZSinHZSinZSleepZSnglZSpacingZSpreadZSqRtZSRandZStatZStorage_SizeZSumZSymLnkSystemZSystem_ClockZTanZTanHZTimeZ
This_ImageZTinyZTrailZZTransferZ	TransposeZTrimZTtyNamZUBoundZUCoBoundZUMaskZUnlinkZUnpackZVerifyZXOrZZAbsZZCosZZExpZZLogZZSinZ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re
IGNORECASE	MULTILINEflagsr	   Preprocr   r   r   
Whitespacer   r   r   Typer
   Declarationr   BuiltinWordr   DoubleSingler   Integerr.   tokens rV   rV   S/var/www/html/django/DPS/env/lib/python3.9/site-packages/pygments/lexers/fortran.pyr      s^   	
236nc                   @   s   e Zd ZdZdZdgZddgZejZ	d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   zD
    Lexer for fixed format Fortran.

    .. versionadded:: 2.1
    FortranFixedfortranfixedz*.fz*.FNc                 c   sN   t  }|dd }||D ]*\}}}|dd}|dkr|||fV  q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valuerV   rV   rW   _lex_fortran   s    zFortranFixedLexer._lex_fortranz[C*].*\nz#.*\nz {0,4}!.*\nz(.{5})	cont-charz.*\n code0.z(.{66})(.*)(\n)r>   z(.*)(\n))r>   rh   rj   )N)r?   r@   rA   rB   rC   rE   rF   rH   rI   rK   rg   r	   rL   r   Labelr   r   r   r   Strongr   rM   r   rU   rV   rV   rV   rW   r      s.   



)rB   rH   Zpygments.lexerr   r   r   r   r   r   Zpygments.tokenr   r	   r
   r   r   r   r   r   r   __all__r   r   rV   rV   rV   rW   <module>   s   
 , 