a
    W_56                     @   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lmZ ddgZdZG d	d deZG d
d deZdS )z
    pygments.lexers.julia
    ~~~~~~~~~~~~~~~~~~~~~

    Lexers for the Julia language.

    :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)Lexer
RegexLexerbygroupsdo_insertionswordsinclude)	TextCommentOperatorKeywordNameStringNumberPunctuationGenericshebang_matches
JuliaLexerJuliaConsoleLexeru1   (?:[a-zA-Z_¡-􏿿]|%s)(?:[a-zA-Z_0-9¡-􏿿])*!*c                #   @   s  e Zd ZdZdZddgZdgZddgZej	ej
B Zdefd	efd
ejdfdefdefdejfdejfdejfdejfeg dddefeg dddejfeg dddejfedefdejfdefdedfdedfdejdfd ejd!fd"ejd#feefd$e ejfd%ej fd&ej fd'ej fd(ej fd)ej!fd*ej!fd+ej"fd,ej"fd-ej#fd.ej#fd/ej$fd0ej$fg"d1ejfd
ejd2fd3ejd4fd5ejfgded4fd6ej%fd7e ej&fd8e'ej&ed9fd:ej&fd;efgded4fd6ej%fd7e ej&fd8e'ej&ed9fd;efgdejd4fd<ejfd;ejfgdejd4fd;ejfgd"ejd4fd7e ej&fd8e'ej&ed9fd;ejfgd=ed2fd>ed4fe(d?gd@Z)dAdB Z*dCS )Dr   zV
    For `Julia <http://julialang.org/>`_ source code.

    .. versionadded:: 1.6
    ZJuliajuliaZjlz*.jlztext/x-juliazapplication/x-juliaz\nz[^\S\n]+z#=blockcommentz#.*$z[\[\]{}(),;]zin\bzisa\bz(true|false)\bz(local|global|const)\b)!ZfunctiontypeZ	typealiasZabstractZ	immutableZ
baremoduleZbeginZbitstypebreakZcatchZccallcontinueZdoelseZelseifendZexportfinallyforifimportZ	importallZletZmacromoduleZmutableZ	primitiveZquotereturnZstructtryZusingwhilez\b)suffix)ANYZASCIIStringZAbstractArrayZAbstractChannelZAbstractFloatZAbstractMatrixZAbstractRNGZAbstractSparseArrayZAbstractSparseMatrixZAbstractSparseVectorZAbstractStringZAbstractVecOrMatZAbstractVectorAnyZArgumentErrorZArrayAssertionErrorZAssociativeZBase64DecodePipeZBase64EncodePipeZ
BidiagonalZBigFloatZBigIntZBitArrayZ	BitMatrixZ	BitVectorZBoolZBoundsErrorZBoxZBufferStreamZCapturedExceptionZCartesianIndexZCartesianRangeZCcharZCdoubleZCfloatZChannelCharZCintZ	Cintmax_tZClongZ	ClonglongZClusterManagerZCmdZCoff_tZColonZComplexZ
Complex128Z	Complex32Z	Complex64ZCompositeExceptionZ	ConditionZ
Cptrdiff_tZCshortZCsize_tZCssize_tZCstringZCucharZCuintZ
Cuintmax_tZCulongZ
CulonglongZCushortZCwchar_tZCwstringZDataTypeZDateZDateTimeZ
DenseArrayZDenseMatrixZDenseVecOrMatZDenseVectorZDiagonalDictZDimensionMismatchZDimsZDirectIndexStringZDisplayZDivideErrorZDomainErrorEOFErrorZEachLineEnumZ	EnumerateZErrorException	ExceptionZExprZFactorizationZFileMonitorZ
FileOffsetZFilterZFloat16ZFloat32ZFloat64Z
FloatRangeZFunctionZGenSymZ	GlobalRefZGotoNodeZHTMLZ	HermitianIOZIOBufferZIOStreamZIPv4ZIPv6ZInexactErrorZ	InitErrorZIntZInt128ZInt16ZInt32ZInt64ZInt8ZIntSetIntegerZInterruptExceptionZIntrinsicFunctionZInvalidStateExceptionZ
IrrationalKeyErrorZ	LabelNodeZLambdaStaticDataZLinSpaceZLineNumberNodeZ	LoadErrorZLocalProcessZLowerTriangularZMIMEZMatrixZMersenneTwisterZMethodZMethodErrorZMethodTableZModuleZNTupleZ
NewvarNodeZNullExceptionZNullabler   ZObjectIdDictZOrdinalRangeZOutOfMemoryErrorOverflowErrorZPairZ
ParseErrorZPartialQuickSortZPipeZPollingFileWatcherZProcessExitedExceptionZProcessGroupZPtrZ	QuoteNodeZRandomDeviceZRangeZRationalZRawFDZReadOnlyMemoryErrorZRealZReentrantLockZRefRegexZ
RegexMatchZRemoteExceptionZ	RemoteRefZ	RepStringZ	RevStringZ
RopeStringZRoundingModeZSegmentationFaultZSerializationStateSetZSharedArrayZSharedMatrixZSharedVectorZSignedZSimpleVectorZSparseMatrixCSCZStackOverflowErrorZ
StatStructZ	StepRangeZStridedArrayZStridedMatrixZStridedVecOrMatZStridedVectorZSubArrayZ	SubStringZSymTridiagonalZSymbolZ
SymbolNodeZ	SymmetricSystemErrorZ	TCPSocketZTaskr   ZTextDisplayZTimerZTopNodeZTridiagonalTupleTypeZTypeConstructor	TypeErrorZTypeNameTypeVarZ	UDPSocketZUIntZUInt128ZUInt16ZUInt32ZUInt64ZUInt8ZUTF16StringZUTF32StringZ
UTF8StringZUndefRefErrorZUndefVarErrorUnicodeErrorZUniformScalingUnionZ	UnitRangeZUnsignedZUpperTriangularZValZVarargZVecOrMatZVectorZVersionNumberZVoidZWStringZWeakKeyDictZWeakRefZWorkerConfigZZip),ZARGSZ	CPU_CORESZC_NULLZDevNullZ
ENDIAN_BOMZENVIZInfZInf16ZInf32ZInf64ZInsertionSortZ
JULIA_HOMEZ	LOAD_PATHZ	MergeSortZNaNZNaN16ZNaN32ZNaN64ZOS_NAMEZ	QuickSortZ	RoundDownZRoundFromZeroZRoundNearestZRoundNearestTiesAwayZRoundNearestTiesUpZRoundToZeroZRoundUpZSTDERRZSTDINZSTDOUTZVERSIONZ	WORD_SIZEZcatalaneZeuZ
eulergammaZgoldenZimZnothingZpiu   γu   πu   φ)k=z:=z+=z-=z*=z/=z//=z.//=z.*=z./=z\=z.\=z^=z.^=u   ÷=u   .÷=z%=z.%=z|=z&=z$=z=>z<<=z>>=z>>>=~z.+=z.-=?z--z-->z||z&&><z>=u   ≥z<=u   ≤z==z===u   ≡z!=u   ≠z!==u   ≢z.>z.<z.>=u   .≥z.<=u   .≤z.==z.!=u   .≠z.=z.!z<:z>:u   ∈u   ∉u   ∋u   ∌u   ⊆u   ⊈u   ⊂u   ⊄u   ⊊z|>z<|:z.+z.-|u   ∪$z<<z>>z>>>z.<<z.>>z.>>>*/z./   ÷u   .÷%u   ⋅z.%z.*\z.\&u   ∩z//z.//^z.^z::.+-!u   √u   ∛u   ∜zZ'(\\.|\\[0-7]{1,3}|\\x[a-fA-F0-9]{1,3}|\\u[a-fA-F0-9]{1,4}|\\U[a-fA-F0-9]{1,6}|[^\\\'\n])'z(?<=[.\w)\]])\'+z"""tqstring"stringzr"""tqregexzr"regex`command@z4(\d+(_\d+)+\.\d*|\d*\.\d+(_\d+)+)([eEf][+-]?[0-9]+)?z&(\d+\.\d*|\d*\.\d+)([eEf][+-]?[0-9]+)?z\d+(_\d+)+[eEf][+-]?[0-9]+z\d+[eEf][+-]?[0-9]+z0b[01]+(_[01]+)+z0b[01]+z0o[0-7]+(_[0-7]+)+z0o[0-7]+z0x[a-fA-F0-9]+(_[a-fA-F0-9]+)+z0x[a-fA-F0-9]+z
\d+(_\d+)+z\d+z[^=#]z#pushz=#z#popz[=#]z+\\([\\"\'$nrbtfav]|(x|u|U)[a-fA-F0-9]+|\d+)z\$z(\$)(\()in-intpz=%[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[E-GXc-giorsux%]z.|\sz\\"z\(z\)root)rX   r   rQ   rO   rS   rR   rU   rW   c                 C   s
   t | dS )Nr   r   )text rZ   7/usr/lib/python3/dist-packages/pygments/lexers/julia.pyanalyse_text  s    zJuliaLexer.analyse_textN)+__name__
__module____qualname____doc__namealiases	filenamesZ	mimetypesre	MULTILINEUNICODEflagsr   r	   Z	Multiliner   r   ZPseudoZConstantZDeclarationr   r5   r   ZBuiltinr
   r   r(   r1   ZBacktickallowed_variableZ	Decoratorr   ZFloatZBinZOctZHexr.   ZEscapeZInterpolr   r   tokensr\   rZ   rZ   rZ   r[   r      s   
67:

'*


  9

	


  qc                   @   s"   e Zd ZdZdZdgZdd ZdS )r   zb
    For Julia console sessions. Modeled after MatlabSessionLexer.

    .. versionadded:: 1.6
    zJulia consoleZjlconc           	   	   c   s  t f i | j}d}d}g }d}d}|dD ]F}|dr||t|dtj|d d fgf ||dd  7 }d}d}n|ds|dr|tj|d d fV  |d t|dd  fV  d}d}n|d	r|s|t|dt|d d fgf ||dd  7 }n\|r2t	||
|E d H  d}g }|d
sD|rX|tj|fV  d}n|tj|fV  d}|t|7 }q.|rt	||
|E d H  d S )Nr    FTzjulia>   zhelp?>zshell>z      zERROR: )r   Zoptions
splitlines
startswithappendlenr   ZPromptr   r   get_tokens_unprocessedErrorZOutput)	selfrY   ZjllexerstartZcurcodeZ
insertionsoutputerrorlinerZ   rZ   r[   rp   %  sH    
$"


z(JuliaConsoleLexer.get_tokens_unprocessedN)r]   r^   r_   r`   ra   rb   rp   rZ   rZ   rZ   r[   r     s   )r`   rd   Zpygments.lexerr   r   r   r   r   r   Zpygments.tokenr   r	   r
   r   r   r   r   r   r   Zpygments.utilr   __all__rh   r   r   rZ   rZ   rZ   r[   <module>   s   
 ,  