B
    `'                 @   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-2021 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gZddddg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fg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
    ZFortranZfortranz*.f03z*.f90z*.F03z*.F90ztext/x-fortranz^#.*\nz!.*\nstringscorez[a-z][\w$]*numsz[\s]+)ZABSTRACTZACCEPTALLZALLSTOPZALLOCATABLEZALLOCATEARRAYZASSIGNZ	ASSOCIATEZASYNCHRONOUSZ	BACKSPACEZBINDZBLOCKZ	BLOCKDATAZBYTECALLZCASEZCLASSZCLOSEZCODIMENSIONZCOMMONZCONCURRRENTZ
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GOTOZ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PAUSE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FPutZ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_IndexZ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LogicalZLongZLShiftZLStatZLTimeZMaskLZMaskRZMatMulZMaxZMaxExponentZMaxLocZMaxValZMClockZMergeZ
Merge_BitsZ
Move_AllocZMinZMinExponentZMinLocZMinValZModZModuloZMvBitsZNearestZNew_LineZNIntZNorm2ZNotZNullZ
Num_ImagesOrZPackZParityZPErrorZ	PrecisionZPresentZProductZRadixZRandZRandom_NumberZRandom_SeedRangeRealZRealPartZRenameZRepeatZReshapeZ	RRSpacingZ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!(?s)"(\\\\|\\[0-7]+|\\.|[^"\\])*"z!(?s)'(\\\\|\\[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aliases	filenames	mimetypesre
IGNORECASE	MULTILINEflagsr	   Preprocr   r   r   r   r   Typer
   ZDeclarationr   ZBuiltinWordr   DoubleSingler   ZIntegerr-   tokens rI   rI   _/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/site-packages/pygments/lexers/fortran.pyr      sH   1

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dfdee
edfedgdZdS )r   zD
    Lexer for fixed format Fortran.

    .. versionadded:: 2.1
    ZFortranFixedZfortranfixedz*.fz*.FNc             c   sR   t  }|dd }x8||D ]*\}}}|dd}|dkr |||fV  q W dS )z8Lex a line just as free form fortran without line break.r   
 N)r   groupZget_tokens_unprocessedreplace)selfmatchctxlexertextindextokenvaluerI   rI   rJ   _lex_fortran   s    zFortranFixedLexer._lex_fortranz[C*].*\nz#.*\nz {0,4}!.*\nz(.{5})z	cont-charz.*\n code0.z(.{66})(.*)(\n)r6   z(.*)(\n))r6   z	cont-charrY   )N)r7   r8   r9   r:   r;   r<   r=   r?   r@   rB   rW   r	   rC   r   ZLabelr   r   r   r   ZStrongr   r   rH   rI   rI   rI   rJ   r      s$   

)r:   r?   Zpygments.lexerr   r   r   r   r   r   Zpygments.tokenr   r	   r
   r   r   r   r   r   r   __all__r   r   rI   rI   rI   rJ   <module>	   s    , 