§
    £E±c˜  ã                   ó  — d Z ddlmZ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 g d¢Z G d„ de¦  «        Z G d„ de¦  «        Z G d	„ d
e¦  «        Z G d„ de¦  «        Zd„ Zd„ Z G d„ de¦  «        Z G d„ de¦  «        ZdS )zñ
    pygments.lexers.graphics
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for computer graphics and plotting related languages.

    :copyright: Copyright 2006-2022 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
é    )Ú
RegexLexerÚwordsÚincludeÚbygroupsÚusingÚthisÚdefault)	ÚTextÚCommentÚOperatorÚKeywordÚNameÚNumberÚPunctuationÚStringÚ
Whitespace)ÚGLShaderLexerÚPostScriptLexerÚAsymptoteLexerÚGnuplotLexerÚPovrayLexerÚHLSLShaderLexerc                   ó‚  — e Zd ZdZdZdgZg d¢ZdgZddej	        fdej
        fd	ej        fd
efdefdefdefdej        fdej        fdej        fdej        fdej        f eddd¬¦  «        ef eddd¬¦  «        ej        f eddd¬¦  «        ej        f eddd¬¦  «        ej        fdej        fdefdefdefgiZdS )r   z@
    GLSL (OpenGL Shader) lexer.

    .. versionadded:: 1.1
    ÚGLSLÚglsl)z*.vertz*.fragz*.geoztext/x-glslsrcÚrootú^#.*$ú//.*$ú/(\\\n)?[*](.|\n)*?[*](\\\n)?/ú0\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?ú[?:]ú\bdefined\bz[;{}(),\[\]]z[+-]?\d*\.\d+([eE][-+]?\d+)?z[+-]?\d+\.\d*([eE][-+]?\d+)?ú0[xX][0-9a-fA-F]*ú0[0-7]*ú[1-9][0-9]*))Ú	attributeÚconstÚuniformÚvaryingÚbufferÚsharedÚinÚoutÚlayoutÚflatÚsmoothÚnoperspectiveÚcentroidÚsampleÚpatchÚinoutÚlowpÚmediumpÚhighpÚ	precisionÚ	invariantÚpreciseÚcoherentÚvolatileÚrestrictÚreadonlyÚ	writeonlyÚbreakÚcontinueÚdoÚforÚwhileÚswitchÚcaser	   ÚifÚelseÚ
subroutineÚdiscardÚreturnÚstructú\b©ÚprefixÚsuffix©ÚtrueÚfalse)wÚvoidÚatomic_uintÚfloatÚvec2Úvec3Úvec4ÚdoubleÚdvec2Údvec3Údvec4ÚintÚivec2Úivec3Úivec4ÚuintÚuvec2Úuvec3Úuvec4ÚboolÚbvec2Úbvec3Úbvec4Úmat2Úmat3Úmat4Údmat2Údmat3Údmat4Úmat2x2Úmat2x3Úmat2x4Údmat2x2Údmat2x3Údmat2x4Úmat3x2Úmat3x3Úmat3x4Údmat3x2Údmat3x3Údmat3x4Úmat4x2Úmat4x3Úmat4x4Údmat4x2Údmat4x3Údmat4x4Ú	sampler1DÚ	sampler2DÚ	sampler3DÚsamplerCubeÚsampler1DArrayÚsampler2DArrayÚsamplerCubeArrayÚsampler2DRectÚsamplerBufferÚsampler2DMSÚsampler2DMSArrayÚsampler1DShadowÚsampler2DShadowÚsamplerCubeShadowÚsampler1DArrayShadowÚsampler2DArrayShadowÚsamplerCubeArrayShadowÚsampler2DRectShadowÚ
isampler1DÚ
isampler2DÚ
isampler3DÚisamplerCubeÚisampler1DArrayÚisampler2DArrayÚisamplerCubeArrayÚisampler2DRectÚisamplerBufferÚisampler2DMSÚisampler2DMSArrayÚ
usampler1DÚ
usampler2DÚ
usampler3DÚusamplerCubeÚusampler1DArrayÚusampler2DArrayÚusamplerCubeArrayÚusampler2DRectÚusamplerBufferÚusampler2DMSÚusampler2DMSArrayÚimage1DÚimage2DÚimage3DÚ	imageCubeÚimage1DArrayÚimage2DArrayÚimageCubeArrayÚimage2DRectÚimageBufferÚ	image2DMSÚimage2DMSArrayÚiimage1DÚiimage2DÚiimage3DÚ
iimageCubeÚiimage1DArrayÚiimage2DArrayÚiimageCubeArrayÚiimage2DRectÚiimageBufferÚ
iimage2DMSÚiimage2DMSArrayÚuimage1DÚuimage2DÚuimage3DÚ
uimageCubeÚuimage1DArrayÚuimage2DArrayÚuimageCubeArrayÚuimage2DRectÚuimageBufferÚ
uimage2DMSÚuimage2DMSArray)'ÚcommonÚ	partitionÚactiveÚasmÚclassÚunionÚenumÚtypedefÚtemplater   ÚresourceÚgotoÚinlineÚnoinlineÚpublicÚstaticÚexternÚexternalÚ	interfaceÚlongÚshortÚhalfÚfixedÚunsignedÚsuperpÚinputÚoutputÚhvec2Úhvec3Úhvec4Úfvec2Úfvec3Úfvec4Úsampler3DRectÚfilterÚsizeofÚcastÚ	namespacer   zgl_\w*ú[a-zA-Z_]\w*z\.ú\s+N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesr   ÚPreprocÚSingleÚ	Multiliner   r   r   ÚFloatÚHexÚOctÚIntegerr   r   ÚConstantÚTypeÚReservedr   ÚBuiltinr   Útokens© ó    ú:/usr/lib/python3/dist-packages/pygments/lexers/graphics.pyr   r      s   € € € € € ðð ð
 €DØˆh€GØ-Ð-Ð-€IØ!Ð"€Ið 	Ø�w”Ð'Ø�w”~Ð&Ø.°Ô0AÐBØ@Øðà�hÐØ˜XÐ&Ø˜kÐ*à,¨f¬lÐ;Ø,¨f¬lÐ;Ø! 6¤:Ð.Ø˜œÐ$Ø˜Vœ^Ð,ØˆUð /ð0  Uð1,ñ ,ô ,ð2 ð3ð4 ˆUð !ð  Uð,ñ ,ô ,ð Ôð	ð
 ˆUð 11ðd  Uðe2,ñ 2,ô 2,ðf Œ\ðg3ðh ˆUð 	&ð  Uð
,ñ 
,ô 
,ð Ôðð ˜œÐ%Ø˜dÐ#Ø�KÐ Ø�ZÐ ðes
ðu€F€F€Fr  r   c                   ó`  — e Zd ZdZdZdgZddgZdgZdej	        fdej
        fd	ej        fd
efdefdefdefdej        fdej        fdej        fdej        fdej        fdedf eddd¬¦  «        ef eddd¬¦  «        ej        f eddd¬¦  «        ej        f eddd¬¦  «        ej        f eddd¬¦  «        ej        f eddd¬¦  «        ej        f eddd¬¦  «        ej        fdej        f ed dd¬¦  «        ej        fd!efd"ej	        fd#efgded$fd%ej        fd&efd'efd(efgd)œZd*S )+r   zL
    HLSL (Microsoft Direct3D Shader) lexer.

    .. versionadded:: 2.3
    ÚHLSLÚhlslz*.hlslz*.hlsliztext/x-hlslr   r   r   r    r!   r"   z[;{}(),.\[\]]z[+-]?\d*\.\d+([eE][-+]?\d+)?f?z[+-]?\d+\.\d*([eE][-+]?\d+)?f?r#   r$   r%   ú"Ústring)?rÏ   Úasm_fragmentrA   rG   Úcbufferr2   rÐ   Úcolumn_majorÚcompileÚcompile_fragmentr'   rB   r	   rK   rC   rI   ÚexportrÛ   rD   ÚfxgroupÚgloballycoherentÚgroupsharedrH   r,   r×   r5   rÝ   ÚlineÚlineadjÚlinearrð   Únointerpolationr1   ÚNULLr-   Ú
packoffsetÚpassÚpixelfragmentÚpointr;   rL   ÚregisterÚ	row_majorr3   Úsamplerr+   Ú
stateblockÚstateblock_staterÚ   rM   rF   ÚtbufferÚ	techniqueÚtechnique10Útechnique11ÚtexturerÓ   ÚtriangleÚtriangleadjr(   Úvertexfragmentr=   rE   rN   rO   rR   )ÚautoÚcatchÚcharÚ
const_castÚdeleteÚdynamic_castrÒ   ÚexplicitÚfriendrÖ   rÞ   ÚmutableÚnewÚoperatorÚprivateÚ	protectedrÙ   Úreinterpret_castrß   Úsignedrî   Ústatic_castrÔ   r   ÚthrowÚtryÚtypenamerÑ   râ   r   Úvirtual)6ÚdwordÚmatrixÚsnormr  Úunormrâ   rU   ÚvectorÚ
BlendStateÚBufferÚByteAddressBufferÚComputeShaderÚDepthStencilStateÚDepthStencilViewÚDomainShaderÚGeometryShaderÚ
HullShaderÚ
InputPatchÚ
LineStreamÚOutputPatchÚPixelShaderÚPointStreamÚRasterizerStateÚRenderTargetViewÚRasterizerOrderedBufferÚ"RasterizerOrderedByteAddressBufferÚ!RasterizerOrderedStructuredBufferÚRasterizerOrderedTexture1DÚRasterizerOrderedTexture1DArrayÚRasterizerOrderedTexture2DÚRasterizerOrderedTexture2DArrayÚRasterizerOrderedTexture3DÚRWBufferÚRWByteAddressBufferÚRWStructuredBufferÚRWTexture1DÚRWTexture1DArrayÚRWTexture2DÚRWTexture2DArrayÚRWTexture3DÚSamplerStateÚSamplerComparisonStateÚStructuredBufferÚ	Texture1DÚTexture1DArrayÚ	Texture2DÚTexture2DArrayÚTexture2DMSÚTexture2DMSArrayÚ	Texture3DÚTextureCubeÚTextureCubeArrayÚTriangleStreamÚVertexShader)rg   r[   rW   r_   rà   Ú
min16floatÚ
min10floatÚmin16intÚmin12intÚ	min16uintrc   z([1-4](x[1-4])?)?\b)§ÚabortÚabsÚacosÚallÚAllMemoryBarrierÚAllMemoryBarrierWithGroupSyncÚanyÚAppendStructuredBufferÚasdoubleÚasfloatÚasinÚasintÚasuintr†  ÚatanÚatan2ÚceilÚCheckAccessFullyMappedÚclampÚclipÚCompileShaderÚConsumeStructuredBufferÚcosÚcoshÚ	countbitsÚcrossÚD3DCOLORtoUBYTE4ÚddxÚ
ddx_coarseÚddx_fineÚddyÚ
ddy_coarseÚddy_fineÚdegreesÚdeterminantÚDeviceMemoryBarrierÚ DeviceMemoryBarrierWithGroupSyncÚdistanceÚdotÚdstÚerrorfÚEvaluateAttributeAtCentroidÚEvaluateAttributeAtSampleÚEvaluateAttributeSnappedÚexpÚexp2Úf16tof32Úf32tof16ÚfaceforwardÚfirstbithighÚfirstbitlowÚfloorÚfmaÚfmodÚfracÚfrexpÚfwidthÚGetRenderTargetSampleCountÚGetRenderTargetSamplePositionÚGlobalOrderedCountIncrementÚGroupMemoryBarrierÚGroupMemoryBarrierWithGroupSyncÚInterlockedAddÚInterlockedAndÚInterlockedCompareExchangeÚInterlockedCompareStoreÚInterlockedExchangeÚInterlockedMaxÚInterlockedMinÚInterlockedOrÚInterlockedXorÚisfiniteÚisinfÚisnanÚldexpÚlengthÚlerpÚlitÚlogÚlog10Úlog2ÚmadÚmaxÚminÚmodfÚmsad4ÚmulÚnoiseÚ	normalizeÚpowÚprintfÚProcess2DQuadTessFactorsAvgÚProcess2DQuadTessFactorsMaxÚProcess2DQuadTessFactorsMinÚProcessIsolineTessFactorsÚProcessQuadTessFactorsAvgÚProcessQuadTessFactorsMaxÚProcessQuadTessFactorsMinÚProcessTriTessFactorsAvgÚProcessTriTessFactorsMaxÚProcessTriTessFactorsMinÚQuadReadLaneAtÚ	QuadSwapXÚ	QuadSwapYÚradiansÚrcpÚreflectÚrefractÚreversebitsÚroundÚrsqrtÚsaturateÚsignÚsinÚsincosÚsinhÚ
smoothstepÚsqrtÚstepÚtanÚtanhÚtex1Drò  Ú	tex1DbiasÚ	tex1DgradÚtex1DlodÚ	tex1DprojÚtex2Dr÷  Ú	tex2DbiasÚ	tex2DgradÚtex2DlodÚ	tex2DprojÚtex3Drü  Ú	tex3DbiasÚ	tex3DgradÚtex3DlodÚ	tex3DprojÚtexCUBEr  ÚtexCUBEbiasÚtexCUBEgradÚ
texCUBElodÚtexCUBEprojÚ	transposeÚtruncÚWaveAllBitAndÚ
WaveAllMaxÚ
WaveAllMinÚWaveAllBitOrÚWaveAllBitXorÚWaveAllEqualÚWaveAllProductÚ
WaveAllSumÚWaveAllTrueÚWaveAnyTrueÚ
WaveBallotÚWaveGetLaneCountÚWaveGetLaneIndexÚWaveGetOrderedIndexÚWaveIsHelperLaneÚWaveOnceÚWavePrefixProductÚWavePrefixSumÚWaveReadFirstLaneÚWaveReadLaneAt)ÚSV_ClipDistanceÚSV_ClipDistance0ÚSV_ClipDistance1ÚSV_CulldistanceÚSV_CullDistance0ÚSV_CullDistance1ÚSV_CoverageÚSV_DepthÚSV_DepthGreaterEqualÚSV_DepthLessEqualÚSV_DispatchThreadIDÚSV_DomainLocationÚ
SV_GroupIDÚSV_GroupIndexÚSV_GroupThreadIDÚSV_GSInstanceIDÚSV_InnerCoverageÚSV_InsideTessFactorÚSV_InstanceIDÚSV_IsFrontFaceÚSV_OutputControlPointIDÚSV_PositionÚSV_PrimitiveIDÚSV_RenderTargetArrayIndexÚSV_SampleIndexÚSV_StencilRefÚSV_TessFactorÚSV_VertexIDÚSV_ViewportArrayIndexz\bSV_Target[0-7]?\b)Úallow_uav_conditionÚbranchÚcallÚdomainÚearlydepthstencilÚfastoptÚflattenÚ	forcecaseÚinstanceÚloopÚmaxtessfactorÚ
numthreadsÚoutputcontrolpointsÚoutputtopologyÚpartitioningÚpatchconstantfuncÚunrollrñ   z\\$rò   ú#popzO\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})ú	[^\\"\n]+ú\\\nú\\)r   r  N)ró   rô   rõ   rö   r÷   rø   rù   rú   r   rû   rü   rý   r   r   r   rþ   rÿ   r   r  r   r   r   r  r  r  r   r  Ú	Decoratorr   ÚEscaper  r  r  r	  r   r   —   s’  € € € € € ðð ð
 €DØˆh€GØ˜9Ð%€IØ�€Ið �w”Ð'Ø�w”~Ð&Ø.°Ô0AÐBØ@Øðà�hÐØ˜XÐ&Ø˜{Ð+à.°´Ð=Ø.°´Ð=Ø! 6¤:Ð.Ø˜œÐ$Ø˜Vœ^Ð,Ø�6˜8Ð$ØˆUð ?ð  Uð,ñ ,ô ,ð ðð ˆUÐ#¨E¸%Ð@Ñ@Ô@ØÔðàˆUð 6ð  Uð,ñ ,ô ,ð Ôðð ˆUð Rð"  Uð#,ñ ,ô ,ð$ Œ\ð%ð& ˆUð :ð Ð%;ð=ñ =ô =ð Œ\ð	ð
 ˆUð '"ðP  UðQ(,ñ (,ô (,ðR Œ\ðS)ðT ˆUð 
)ð  Uð,ñ ,ô ,ð Œ^ðð $ T¤^Ð4ØˆUð .ð
  Uð,ñ ,ô ,ð Œ^ðð ˜dÐ#Ø�W”_Ð%Ø�ZÐ ðCB
ðH �6˜6Ð"ð<Ø=C¼]ðLà˜6Ð"Ø�fÐØ�FˆOð
ðILð L€F€F€Fr  r   c                   óÔ  — e Zd ZdZdZdZddgZddgZdgZd	Z	d
e	z  Z
de	z  Ze›de
›�Zdej        fdej        fdej        fdej        fdedfdefde
z   ej        fde
z   ej        fde
z   ej        fde
z   ej        fdez  ej        feej        fde
z   ej        fde
z   ej        f ede
¬¦  «        ej         fde!fgdefdej"        d fded!fd"ed#fgd$ej"        d#f e#d#¦  «        gd%œZ$d&S )'r   z@
    Lexer for PostScript files.

    .. versionadded:: 1.4
    Ú
PostScriptz(https://en.wikipedia.org/wiki/PostScriptÚ
postscriptÚpostscrz*.psz*.epszapplication/postscriptz()<>\[\]{}/%\sz(?=[%s])z[^%s]ú+z^%!.+$z%%.*$z(^%.*\n){2,}z%.*$z\(Ústringliteralz
[{}<>\[\]]z<[0-9A-Fa-f]+>zG[0-9]+\#(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?z?(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?z(\-|\+)?[0-9]+z\/%sz(false|true)z6(eq|ne|g[et]|l[et]|and|or|not|if(?:else)?|for(?:all)?))lr{  ÚaddÚaloadÚarcÚarcnÚarrayr‡  ÚbeginÚbindÚceilingÚcharpathrŒ  Ú	closepathÚconcatÚconcatmatrixÚcopyr�  ÚcurrentlinewidthÚcurrentmatrixÚcurrentpointÚcurvetoÚcviÚcvsÚdefÚdefaultmatrixÚdictÚdictstackoverflowÚdivÚ
dtransformÚdupÚendÚexchÚexecÚexitr¥  ÚfillÚfindfontr¬  ÚgetÚgetintervalÚgrestoreÚgsaveÚgtÚidentmatrixÚidivÚidtransformÚindexÚinvertmatrixÚ
itransformrÄ  ÚlinetoÚlnÚloadrÇ  rB  rC  ÚmodÚmovetorÏ  ÚnegÚnewpathÚ
pathforallÚpathbboxÚpopÚprintÚpstackÚputÚquitÚrandÚ
rangecheckÚrcurvetoÚrepeatÚrestoreÚrlinetoÚrmovetoÚrollÚrotateræ  ÚrunÚsaveÚscaleÚ	scalefontÚsetdashÚsetfontÚsetgrayÚ
setlinecapÚsetlinejoinÚsetlinewidthÚ	setmatrixÚsetrgbcolorÚshfillÚshowÚshowpagerê  rî  ÚstackÚstringwidthÚstrokeÚ
strokepathÚsubÚsyntaxerrorÚ	transformÚ	translateÚtruncateÚ	typecheckÚ	undefinedÚundefinedfilenameÚundefinedresult©rQ   rò   z[^()\\]+rM  Úescapeú#pushú\)rJ  z[0-8]{3}|n|r|t|b|f|\\|\(|\))r   rU  rµ  N)%ró   rô   rõ   rö   r÷   Úurlrø   rù   rú   Ú	delimiterÚdelimiter_endÚvalid_name_charsÚ
valid_namer   rû   ÚSpecialrý   rü   r   r   r   rÿ   r   rþ   r  r   ÚVariableÚFunctionr   r  r  r   r  r   rO  r	   r  r  r  r	  r   r   1  sÝ  € € € € € ðð ð
 €DØ
4€CØ˜YÐ'€GØ˜Ð!€IØ)Ð*€Ià!€IØ )Ñ+€Mà )Ñ+ÐØ-Ð-Ð-¨}¨}Ð=€Jð
 ˜œÐ(Ø�w”Ð'Ø˜gÔ/Ð0Ø�g”nÐ%ð �F˜OÐ,à˜KÐ(ð  Ñ.°´
Ð;ðØ!.ñ/Ø06´
ð<àOØñØ$œlð,à Ñ.°´Ð?ð �zÑ! 4¤=Ð1ð ˜œÐ'ð ˜}Ñ,¨gÔ.>Ð?ð GØñØ%Ô.ð0ð ˆUð 8ð$ ANð%Oñ Oô Oð& Œ\ð'ð* �ZÐ ðw<
ð~ ˜&Ð!Ø�F”M 8Ð,Ø�F˜GÐ$Ø�F˜FÐ#ð	
ð ,¨V¬]¸FÐCØˆG�F‰OŒOð
ðMJð J€F€F€Fr  r   c                   óü  — e Zd ZdZdZdZddgZdgZdgZdZ	d	e
fd
e
fd eee
¦  «        fdefdefgdefdedfdej        fdej        fdej        fdej        fdej        fdefdefd ee ee¦  «        e¦  «        fdefdej        fdej        fdej        fdefg ed¦  «        de	z   d z    e ee¦  «        ej         ee¦  «         ee¦  «        e¦  «        d!fde	z   d"z    e ee¦  «        ej         ee¦  «         ee¦  «        e¦  «        f ed#¦  «        g ed¦  «         ed$¦  «        d%efd&ed'fg ed¦  «         ed$¦  «        d&efd(ed)fd*ed'fgded'fd+ej        fd	efd,efd-efd.efd/efgd0œZ d1„ Z!d2S )3r   z?
    For Asymptote source code.

    .. versionadded:: 1.2
    Ú	Asymptotezhttp://asymptote.sf.net/Ú	asymptoteÚasyz*.asyztext/x-asymptotez(?:\s|//.*?\n|/\*.*?\*/)+ú\nrò   ú(\\)(\n)z//(\n|(.|\n)*?[^\\]\n)z/(\\\n)?\*(.|\n)*?\*(\\\n)?/ú"(\\\\|\\[^\\]|[^"\\])*"ú'r  z%(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?z(\d+\.\d*|\.\d+|\d+[fF])[fF]?z0x[0-9a-fA-F]+[Ll]?z0[0-7]+[Ll]?z\d+[Ll]?z[~!%^&*+=|?:<>/-]z
[()\[\],.]z\b(case)(.+?)(:)zã(and|controls|tension|atleast|curl|if|else|while|for|do|return|break|continue|struct|typedef|new|access|import|unravel|from|include|quote|static|public|private|restricted|this|explicit|true|false|null|cycle|newframe|operator)\ba?  (Braid|FitResult|Label|Legend|TreeNode|abscissa|arc|arrowhead|binarytree|binarytreeNode|block|bool|bool3|bounds|bqe|circle|conic|coord|coordsys|cputime|ellipse|file|filltype|frame|grid3|guide|horner|hsv|hyperbola|indexedTransform|int|inversion|key|light|line|linefit|marginT|marker|mass|object|pair|parabola|path|path3|pen|picture|point|position|projection|real|revolution|scaleT|scientific|segment|side|slice|splitface|string|surface|tensionSpecifier|ticklocate|ticksgridT|tickvalues|transform|transformation|tree|triangle|trilinear|triple|vector|vertex|void)(?=\s+[a-zA-Z])zÜ(Braid|FitResult|TreeNode|abscissa|arrowhead|block|bool|bool3|bounds|coord|frame|guide|horner|int|linefit|marginT|pair|pen|picture|position|real|revolution|slice|splitface|ticksgridT|tickvalues|tree|triple|vertex|void)\bz[a-zA-Z_]\w*:(?!:)rñ   Ú
whitespacez6((?:[\w*\s])+?(?:\s|\*))([a-zA-Z_]\w*)(\s*\([^;]*?\))(z)(\{)Úfunctionz)(;)Ú	statementÚ
statementsz[{}]ú;rJ  z\{r¶  z\}z0\\([\\abfnrtv"\'?]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})ú	[^\\'\n]+rL  z\\nrM  )rÈ  rË  r   rÊ  rÉ  r  c              #   óÆ   K  — ddl m}m} t          j        | |¦  «        D ]@\  }}}|t
          u r||v rt
          j        }n|t
          u r||v rt
          j        }|||fV — ŒAd S )Nr   )ÚASYFUNCNAMEÚ
ASYVARNAME)Úpygments.lexers._asy_builtinsrÏ  rÐ  r   Úget_tokens_unprocessedr   r¿  r¾  )ÚselfÚtextrÏ  rÐ  r~  ÚtokenÚvalues          r	  rÒ  z%AsymptoteLexer.get_tokens_unprocessedû  s—   è è € ØIÐIÐIÐIÐIÐIÐIÐIåÔ1°$¸Ñ=Ô=ð	&ð 	&ÑˆE�5˜%à�ˆ}ˆ} ¨+Ð!5Ð!5Ýœ��Ø�$�� 5¨JÐ#6Ð#6Ýœ�Ø˜ Ð%Ð%Ð%Ð%Ð%ð	&ð 	&r  N)"ró   rô   rõ   rö   r÷   r¸  rø   rù   rú   Ú_wsr   r   r
   r   r   r   rþ   rÿ   r   r  r   r   r   r   r   r  r   ÚLabelr   r¿  r	   rO  r  rÒ  r  r  r	  r   r   �  sè  € € € € € ðð ð
 €DØ
$€CØ˜EÐ"€GØ�	€IØ#Ð$€Ið '€Cð �JÐØ�ZÐ Ø˜(˜( 4¨Ñ4Ô4Ð5Ø&¨Ð0Ø,¨gÐ6ð
ð )¨&Ð1à�6˜8Ð$Ø5°v´|ÐDØ-¨v¬|Ð<Ø# V¤ZÐ0Ø˜fœjÐ)Ø˜&œ.Ð)Ø! 8Ð,Ø˜KÐ(Ø  ( (¨7°E°E¸$±K´KÀÑ"FÔ"FÐGðIð KRðSð	,ð .5¬\ð	;ð6ð 8?´|ðEð # D¤JÐ/Ø˜dÐ#ðO(
ðT ˆG�LÑ!Ô!ðð ñð #ñ#ð ˆX�e�e˜D‘k”k 4¤=°%°%¸±+´+¸u¸uÀT¹{¼{Ø!ñ#ô #àððð ñð "ñ"ð ˆX�e�e˜D‘k”k 4¤=°%°%¸±+´+¸u¸uÀT¹{¼{Ø!ñ#ô #ð	$ð ˆG�KÑ Ô ð#
ð( ˆG�LÑ!Ô!ØˆG�LÑ!Ô!Ø�[Ð!Ø�+˜vÐ&ð	
ð ˆG�LÑ!Ô!ØˆG�LÑ!Ô!Ø�+ÐØ�K Ð)Ø�K Ð(ð
ð �6˜6Ð"Ø@À&Ä-ÐPØ�FˆOØ˜6Ð"Ø�fÐØ�VÐØ�FˆOð
ðcZð Z€Fðx&ð &ð &ð &ð &r  r   c                 ó¬   ‡ ‡— ‰                       d¦  «        Šd                     ˆˆ fd„t          t          ‰ ¦  «        ‰d¦  «        D ¦   «         ¦  «        S )Nú$ú|c              3   óN   •K  — | ]}‰d ‰…         ‰‰dz   |…         z   dz   V — Œ d S )Né   rN   r  )Ú.0ÚiÚdposÚwords     €€r	  ú	<genexpr>z_shortened.<locals>.<genexpr>  sU   øè è € ð 9ð 9Øð ˜˜$˜”K $ t¨A¡v¨a x¤.Ñ0°5Ñ8ð 9ð 9ð 9ð 9ð 9ð 9r  éÿÿÿÿ)ÚfindÚjoinÚrangeÚlen)rá  rà  s   `@r	  Ú
_shortenedrè    sf   øø€ Ø�9Š9�S‰>Œ>€DØ�8Š8ð 9ð 9ð 9ð 9ð 9Ý"¥3 t¡9¤9¨d°BÑ7Ô7ð9ñ 9ô 9ñ 9ô 9ð 9r  c                  óR   — d                      t          t          | ¦  «        ¦  «        S )NrÛ  )rå  Úmaprè  )r   s    r	  Ú_shortened_manyrë    s   € Ø�8Š8•C�
 EÑ*Ô*Ñ+Ô+Ð+r  c                   ó0  — e Zd ZdZdZdZdgZddgZdgZ e	d¦  «         e
d	¦  «        ed
f edd¦  «        edf e
d¦  «        edfd eeee¦  «        dfdef e
d¦  «        edf eddd¦  «        edf e
d¦  «        edf e
d¦  «        edf edd¦  «        edf ed d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0¦  «        ed1f ed*d+d,d-d.d2¦  «        ed3fd4 eej        ee¦  «        d1fd5 eej        ee¦  «        d1fd6ej        fd7efgd8efd9efd:ef ed;¦  «        gd<ed=fd>efg e	d¦  «        d7ed;fd?ed;fgd@ed;fdAej        fdBefd9efd:efd?ed;fgdCefdDed;fdEefd9efd:efd?ed;fg e	d3¦  «        d@edFfdDedGfdHej        fdIej        fdJej        fdKefdLefdMej        fdN eej        ee¦  «        fdOefd6ej        fdP eee¦  «        fg e	d¦  «         edQŽ ej        d;fgdRed;f e
dS¦  «        ej        f e	d1¦  «        gdTef e	d3¦  «        gdUej        f e	d¦  «        gdVed;f e	d1¦  «        gdWej        f e
dX¦  «        ej        f e	d1¦  «        g edYdZd[d\d]d^d_d`dadbdcdd¦  «        ej        f e	d1¦  «        g ededfdgdh¦  «        ej        f e	d1¦  «        gdiœZdjS )kr   zC
    For Gnuplot plotting scripts.

    .. versionadded:: 0.11
    ÚGnuplotzhttp://gnuplot.info/Úgnuplotz*.plotz*.pltztext/x-gnuplotrÈ  zbi$ndr\  zex$itzq$uitrŽ  zf$itÚfitz(if)(\s*)(\()rH   zelse\bzpa$useÚpauseúp$lotzrep$lotzsp$lotÚplotzsa$ver™  zse$t)ÚgenericargsÚ	optionargzsh$owzuns$et)Únoargsrô  zlow$erzra$isezca$llzcd$zcl$earzh$elpz\?$zhi$storyzl$oadúpr$intzpwd$zre$readzres$etzscr$eendumpzshe$llzsy$stemzup$dateró  ztest$rõ  z([a-zA-Z_]\w*)(\s*)(=)z ([a-zA-Z_]\w*)(\s*\(.*?\)\s*)(=)z@[a-zA-Z_]\w*rÌ  z[^\\\n]rL  rM  rJ  ú#Úcommentz
[ \t\v\f]+rÄ  r  z/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})rK  z''rÇ  rÍ  ÚdqstringÚsqstringz (\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+z(\d+\.\d*|\.\d+)z-?\d+z[,.~!%^&*+=|?:<>/-]z
[{}()\[\]]z	(eq|ne)\bz([a-zA-Z_]\w*)(\s*)(\()rñ   rÅ  )–za$llzan$gleszar$rowz
au$toscalezb$arszbor$derz	box$widthzcl$abelzc$lipz
cn$trparamzco$ntourzda$taz	data$filezdg$rid3dzdu$mmyz	enc$odingzdec$imalsignzfit$z	font$pathzfo$rmatz	fu$nctionz
fu$nctionszg$ridz	hid$den3dzhis$torysizezis$osampleszk$eyz	keyt$itlezla$belz
li$nestylezls$z	loa$dpathzloc$alez	log$scalezmac$roszmap$pingz
map$ping3dzmar$ginzlmar$ginzrmar$ginztmar$ginzbmar$ginzmo$usez
multi$plotzmxt$icsz	nomxt$icszmx2t$icsz
nomx2t$icszmyt$icsz	nomyt$icszmy2t$icsz
nomy2t$icszmzt$icsz	nomzt$icszmcbt$icsz
nomcbt$icszof$fsetszor$iginzo$utputzpa$rametriczpm$3dzpal$ettez	colorb$oxrñ  z
poi$ntsizezpol$arrö  zobj$ectzsa$mpleszsi$zezst$ylezsu$rfaceztable$ú	t$erminalztermo$ptionszti$csz	ticsc$alez
ticsl$evelztimef$mtz
tim$estampztit$leú
v$ariableszve$rsionzvi$ewzxyp$lanezxda$tazx2da$tazyda$tazy2da$tazzda$tazcbda$tazxl$abelzx2l$abelzyl$abelzy2l$abelzzl$abelzcbl$abelzxti$csznoxti$cszx2ti$csz	nox2ti$cszyti$csznoyti$cszy2ti$csz	noy2ti$cszzti$csznozti$cszcbti$csz	nocbti$cszxdti$csz	noxdti$cszx2dti$csz
nox2dti$cszydti$csz	noydti$cszy2dti$csz
noy2dti$cszzdti$csz	nozdti$cszcbdti$csz
nocbdti$cszxmti$csz	noxmti$cszx2mti$csz
nox2mti$cszymti$csz	noymti$cszy2mti$csz
noy2mti$cszzmti$csz	nozmti$cszcbmti$csz
nocbmti$cszxr$angezx2r$angezyr$angezy2r$angezzr$angezcbr$angezrr$angeztr$angezur$angezvr$angez
xzeroa$xiszx2zeroa$xisz
yzeroa$xiszy2zeroa$xisz
zzeroa$xisz	zeroa$xiszz$eroú!zall$windowsz	gnuplot\bzvia\br·  z%(mouse|any|button1|button2|button3)\bz	key$presszax$eszaxi$szbin$aryzev$eryzi$ndexzmat$rixzs$moothzthru$zt$itleznot$itlezu$singzw$ithz
f$unctionszs$etrû  rü  )r   rø  rÈ  rõ  rù  rú  ró  rô  r\  rŽ  rï  rH   rð  rò  r™  N) ró   rô   rõ   rö   r÷   r¸  rø   rù   rú   r   rè  r   rë  r   r
   r   r   r¾  r   r   r¿  r  r   r	   r   rO  r   rþ   r  ÚWordr  r  r  r  r	  r   r     sÎ  € € € € € ðð ð €DØ
 €CØˆk€GØ˜7Ð#€IØ!Ð"€Ið ˆG�LÑ!Ô!ØˆZ˜Ñ Ô  '¨6Ð2Øˆ_˜W gÑ.Ô.°¸Ð@ØˆZ˜ÑÔ ¨%Ð0Ø˜x˜x¨°°{ÑCÔCÀTÐJØ˜Ð ØˆZ˜Ñ!Ô! 7¨GÐ4Øˆ_˜W i°Ñ:Ô:¸GÀVÐLØˆZ˜Ñ Ô  '¨6Ð2ØˆZ˜ÑÔ Ð*FÐGØˆ_˜W hÑ/Ô/ØÐ-ð/àˆ_˜X x°¸%ÀØ$ f¨j¸'À8Ø# Y°¸-Ø% y°)ñ=ô =ð �mð	%ð
 ˆ_˜V Y°¸-Ø% wñ0ô 0à�hð ð 'ØˆX�d”m Z°Ñ:Ô:¸MðKà0ØˆX�d”m Z°Ñ:Ô:¸MðKà˜tœ}Ð-Ø�7ˆOð5
ð: ˜Ð!Ø�gÐØ�GÐàˆG�F‰OŒOð
ð �'˜9Ð%Ø˜JÐ'ð
ð
 ˆG�LÑ!Ô!à�; Ð'Ø�J Ð'ð	
ð �6˜6Ð"Ø?ÀÄÐOØ˜6Ð"Ø�fÐØ�FˆOØ�J Ð'ð
ð �FˆOØ�6˜6Ð"Ø˜6Ð"Ø�fÐØ�FˆOØ�J Ð'ð
ð ˆG�HÑÔØ�6˜:Ð&Ø�6˜:Ð&Ø0°&´,Ð?Ø  &¤,Ð/Ø�v”~Ð&Ø" HÐ-Ø˜KÐ(Ø˜8œ=Ð)Ø'ØˆX�d”m T¨;Ñ7Ô7ð9à˜dÐ#Ø˜tœ}Ð-Ø˜(˜( 4¨Ñ4Ô4Ð5ð
ð" ˆG�LÑ!Ô!Øˆ_ð 4ð 4ð8 6:´\À6ð9Kð
ðB �'˜6Ð"ØˆZ˜Ñ&Ô&¨¬Ð5ØˆG�MÑ"Ô"ð
ð ˜7Ð#ØˆG�HÑÔð
ð
 �t”|Ð$ØˆG�F‰OŒOð
ð
 �K Ð(ØˆG�MÑ"Ô"ð
ð
 6°t´|ÐDØˆZ˜Ñ$Ô$ d¤lÐ3ØˆG�MÑ"Ô"ð
ð ˆ_˜W g¨y¸(ÀHØ&¨	°7¸HØ'¨°7ñ<ô <ð Œ\ðð ˆG�MÑ"Ô"ð
ð ˆ_˜\¨6°;ÀÑMÔMØŒ\ðàˆG�MÑ"Ô"ð
ðWPð P€F€F€Fr  r   c                   ó0  — e Zd ZdZdZdZdgZddgZdgZdd	e	j
        fd
e	j        fdej        f eddd¬¦  «        e	j        f eddd¬¦  «        ef edd¬¦  «        ej        fdej        j        fdefdej        fdej        fdefdefdefdefgiZd„ ZdS )r   zP
    For Persistence of Vision Raytracer files.

    .. versionadded:: 0.11
    ÚPOVRayzhttp://www.povray.org/Úpovz*.povz*.incztext/x-povrayr   z/\*[\w\W]*?\*/r   z(?s)"(?:\\.|[^"\\])+")rA   rG   ÚdebugÚdeclarer	   ÚdefinerI   Úelseifrp  ÚerrorÚfcloseÚfopenrD   rH   ÚifdefÚifndefr   ÚlocalÚmacroræ  ÚreadÚrenderÚ
statisticsrF   ÚundefÚversionÚwarningrE   Úwriter÷  rN   rO   (9  Úaa_levelÚaa_thresholdr{  r|  ÚacoshÚadaptiveÚadc_bailoutÚagateÚ
agate_turbr}  ÚalphaÚambientÚambient_lightÚangleÚapertureÚ	arc_angleÚ
area_lightÚascr„  ÚasinhÚassumed_gammar‡  rˆ  ÚatanhÚ
atmosphereÚatmospheric_attenuationÚattenuatingÚaverageÚ
backgroundÚ
black_holeÚblueÚblur_samplesÚ
bounded_byÚbox_mappingÚbozorA   ÚbrickÚ
brick_sizeÚ
brightnessÚ
brillianceÚbumpsÚbumpy1Úbumpy2Úbumpy3Úbump_mapÚ	bump_sizerG   Úcausticsr‰  ÚcheckerÚchrÚ
clipped_byÚclockÚcolorÚ	color_mapÚcolourÚ
colour_mapÚ	componentÚ	compositer`  Ú
confidenceÚconic_sweepÚconstantÚcontrol0Úcontrol1r�  r�  ÚcountÚcrackleÚcrandÚcubeÚcubic_splineÚcylindrical_mappingr  r  r	   rš  ÚdentsÚdiffuseÚ	directionrž  Údistance_maximumrm  ÚdustÚ	dust_typeÚeccentricityrI   Úemittingrp  r  Úerror_boundr¥  ÚexponentÚfade_distanceÚ
fade_powerÚfalloffÚfalloff_anglerT   Úfile_existsrí   ÚfinishÚfisheyeÚflatnessÚflipr¬  Úfocal_pointÚfogÚfog_altÚ
fog_offsetÚfog_typeÚ	frequencyÚgifÚglobal_settingsÚglowingÚgradientÚgraniteÚgray_thresholdÚgreenÚhaloÚhexagonÚ
hf_gray_16Ú	hierarchyÚhollowÚhypercomplexrH   r	  ÚiffÚ	image_mapÚ	incidencer   r_   ÚinterpolateÚinverseÚiorÚiridÚirid_wavelengthÚjitterÚlambdaÚleopardr  Úlinear_splineÚlinear_sweepÚlocationrÇ  Ú
looks_likeÚlook_atÚlow_error_factorÚmandelÚmap_typeÚmarbleÚmaterial_maprC  rË  Úmax_intersectionsÚmax_iterationÚmax_trace_levelÚ	max_valueÚmetallicrÌ  Úminimum_reuser„  ÚmortarÚnearest_countÚnoÚnormalÚ
normal_mapÚ	no_shadowÚnumber_of_wavesÚoctavesÚoffÚoffsetÚomegaÚomnimaxÚonÚonceÚonionÚopenÚorthographicÚ	panoramicÚpattern1Úpattern2Úpattern3ÚperspectiveÚpgmÚphaseÚphongÚ
phong_sizeÚpiÚpigmentÚpigment_mapÚplanar_mappingÚpngÚpoint_atÚpotrÒ  Úppmr9   ÚpwrÚquadratic_splineÚ
quaternionÚquick_colorÚquick_colourÚquiltedÚradialrá  Ú	radiosityÚradiusÚrainbowÚ	ramp_waver�  ræ  Ú
reciprocalÚrecursion_limitÚredÚ
reflectionÚ
refractionr  r’  ÚrgbÚrgbfÚrgbftÚrgbtÚrightÚripplesr—  Ú	roughnessÚsamplesrš  Úscallop_waveÚ
scatteringÚseedÚ
shadowlessrê  Ú	sine_waverì  ÚskyÚ
sky_sphereÚsliceÚ	slope_mapr0   ÚspecularÚspherical_mappingÚspiralÚspiral1Úspiral2Ú	spotlightÚspottedÚsqrrî  r  ÚstrÚstrcmpÚstrengthÚstrlenÚstrlwrÚstruprÚsturmÚsubstrrF   ÚsysÚtrð  rñ  Útest_camera_1Útest_camera_2Útest_camera_3Útest_camera_4r*  Útexture_mapÚtgaÚ	thicknessÚ	thresholdÚ	tightnessÚtile2ÚtilesÚtrackr­  r®  ÚtransmitÚtriangle_waverS   ÚttfÚ
turbulenceÚ
turb_depthÚtypeÚultra_wide_angleÚupÚ	use_colorÚ
use_colourÚ	use_indexÚu_stepsÚvalÚvarianceÚvaxis_rotateÚvcrossÚvdotr  ÚvlengthÚ
vnormalizeÚvolume_objectÚvolume_renderedÚvol_with_lightÚvrotateÚv_stepsr  ÚwarpÚwater_levelÚwavesrE   ÚwidthÚwoodÚwrinklesÚyes)Úbicubic_patchÚblobÚboxÚcameraÚconeÚcubicÚcylinderÚ
differenceÚdiscÚheight_fieldÚintersectionÚjulia_fractalÚlatheÚlight_sourceÚmergeÚmeshÚobjectÚplaneÚpolyÚpolygonÚprismÚquadricÚquarticÚsmooth_triangleÚsorÚsphereÚsuperellipsoidrÔ  Útorusr+  rÑ   r´  z\b(x|y|z|u|v)\brñ   z[0-9]*\.[0-9]+z[0-9]+z[\[\](){}<>;,]z[-+*/=.|&]|<=|>=|!=rÆ  rò   c                 óR   — d}d| v r|dz  }d| v r|dz  }d| v r|dz  }d| v r|dz  }|S )at  POVRAY is similar to JSON/C, but the combination of camera and
        light_source is probably not very likely elsewhere. HLSL or GLSL
        are similar (GLSL even has #version), but they miss #declare, and
        light_source/camera are not keywords anywhere else -- it's fair
        to assume though that any POVRAY scene must have a camera and
        lightsource.r   z#versiongš™™™™™©?z#declarer  r  gš™™™™™¹?r  )rÔ  Úresults     r	  Úanalyse_textzPovrayLexer.analyse_text  s^   € ð ˆØ˜ÐÐØ�d‰NˆFØ˜ÐÐØ�d‰NˆFØ�tÐÐØ�d‰NˆFØ˜TÐ!Ð!Ø�c‰MˆFàˆr  N)ró   rô   rõ   rö   r÷   r¸  rø   rù   rú   r   rý   rü   r   ÚDoubler   rû   r   r   r  ÚPseudor   rþ   r  r   r   r   r  r0  r  r  r	  r   r   °  sa  € € € € € ðð ð
 €DØ
"€CØˆg€GØ˜'Ð"€IØ Ð!€Ið 	Ø Ô 1Ð2Ø�w”~Ð&Ø% v¤}Ð5ØˆUð ð
 "&¨eð5ñ 5ô 5ð Œ_ðð ˆUð 0+ð` 49Àða0Hñ 0Hô 0Hðb ðc1ðd ˆUð 6ð
 ?DðEñ Eô Eð Œ\ðð   ¤Ô!4Ð5Ø˜dÐ#Ø ¤Ð-Ø˜œÐ'Ø Ð,Ø# XÐ.Ø(¨&Ð1Ø�ZÐ ðWL
ðN€Fð`ð ð ð ð r  r   N)rö   Úpygments.lexerr   r   r   r   r   r   r	   Úpygments.tokenr
   r   r   r   r   r   r   r   r   Ú__all__r   r   r   r   rè  rë  r   r   r  r  r	  ú<module>r6     sC  ððð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð-ð -ð -€ð@ð @ð @ð @ð @�Jñ @ô @ð @ðFWð Wð Wð Wð W�jñ Wô Wð Wðt\ð \ð \ð \ð \�jñ \ô \ð \ð~s&ð s&ð s&ð s&ð s&�Zñ s&ô s&ð s&ðl9ð 9ð 9ð,ð ,ð ,ð]ð ]ð ]ð ]ð ]�:ñ ]ô ]ð ]ð@mð mð mð mð m�*ñ mô mð mð mð mr  