a
    ñ»já˜  ã                   @   sÐ   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„ deƒZG dd„ deƒZG d	d
„ d
eƒZG dd„ deƒZdd„ Zdd„ ZG dd„ deƒZG dd„ deƒZdS )zô
    pygments.lexers.graphics
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for computer graphics and plotting related languages.

    :copyright: Copyright 2006-present 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                   @   sð   e Zd ZdZdZdgZg d¢ZdgZdZd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d�efedddd�ejfedddd�ejfed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.
    ÚGLSLÚglsl)z*.vertz*.fragz*.geoztext/x-glslsrcz"https://www.khronos.org/api/openglz1.1Úrootú#(?:.*\\\n)*.*$ú//.*$ú/(\\\n)?[*][\s\S]*?[*](\\\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ÚuniformZvaryingÚbufferÚsharedÚinÚoutZlayoutZflatÚsmoothÚnoperspectiveÚcentroidÚsampleÚpatchÚinoutZlowpZmediumpZhighpÚ	precisionZ	invariantÚpreciseZcoherentÚvolatileZrestrictÚreadonlyZ	writeonlyÚbreakÚcontinueÚdoÚforÚwhileÚswitchÚcaser   ÚifÚelseZ
subroutineÚdiscardÚreturnÚstructú\b©ÚprefixÚsuffix©ÚtrueÚfalse)wÚvoidZatomic_uintÚfloatZvec2Zvec3Zvec4ÚdoubleZdvec2Zdvec3Zdvec4ÚintZivec2Zivec3Zivec4ÚuintZuvec2Zuvec3Zuvec4ÚboolZbvec2Zbvec3Zbvec4Zmat2Zmat3Zmat4Zdmat2Zdmat3Zdmat4Zmat2x2Zmat2x3Zmat2x4Zdmat2x2Zdmat2x3Zdmat2x4Zmat3x2Zmat3x3Zmat3x4Zdmat3x2Zdmat3x3Zdmat3x4Zmat4x2Zmat4x3Zmat4x4Zdmat4x2Zdmat4x3Zdmat4x4Z	sampler1DZ	sampler2DZ	sampler3DZsamplerCubeZsampler1DArrayZsampler2DArrayZsamplerCubeArrayZsampler2DRectZsamplerBufferZsampler2DMSZsampler2DMSArrayZsampler1DShadowZsampler2DShadowZsamplerCubeShadowZsampler1DArrayShadowZsampler2DArrayShadowZsamplerCubeArrayShadowZsampler2DRectShadowZ
isampler1DZ
isampler2DZ
isampler3DZisamplerCubeZisampler1DArrayZisampler2DArrayZisamplerCubeArrayZisampler2DRectZisamplerBufferZisampler2DMSZisampler2DMSArrayZ
usampler1DZ
usampler2DZ
usampler3DZusamplerCubeZusampler1DArrayZusampler2DArrayZusamplerCubeArrayZusampler2DRectZusamplerBufferZusampler2DMSZusampler2DMSArrayZimage1DZimage2DZimage3DZ	imageCubeZimage1DArrayZimage2DArrayZimageCubeArrayZimage2DRectZimageBufferZ	image2DMSZimage2DMSArrayZiimage1DZiimage2DZiimage3DZ
iimageCubeZiimage1DArrayZiimage2DArrayZiimageCubeArrayZiimage2DRectZiimageBufferZ
iimage2DMSZiimage2DMSArrayZuimage1DZuimage2DZuimage3DZ
uimageCubeZuimage1DArrayZuimage2DArrayZuimageCubeArrayZuimage2DRectZuimageBufferZ
uimage2DMSZuimage2DMSArray)'ÚcommonÚ	partitionZactiveÚasmÚclassÚunionÚenumÚtypedefÚtemplater   ÚresourceÚgotoÚinlineZnoinlineÚpublicÚstaticÚexternZexternalÚ	interfaceÚlongÚshortÚhalfÚfixedÚunsignedZsuperpÚinputÚoutputZhvec2Zhvec3Zhvec4Zfvec2Zfvec3Zfvec4Zsampler3DRectÚfilterÚsizeofÚcastÚ	namespacer   zgl_\w*ú[a-zA-Z_]\w*z\.ú\s+N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚaliasesÚ	filenamesÚ	mimetypesÚurlÚversion_addedr
   ÚPreprocÚSingleÚ	Multiliner   r   r   ÚFloatÚHexÚOctÚIntegerr   r   ÚConstantÚTypeÚReservedr   ÚBuiltinr   Útokens© r€   r€   ú>E:\soccer\ml_env\Lib\site-packages\pygments/lexers/graphics.pyr      s`   ÿèçýü2Î3Í4
öõŽÿr   c                   @   sf  e Zd ZdZdZdgZddgZdgZdZd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d�efedddd�ejfedddd�ejfedddd�ejfedddd�ejfedddd�ejfed ddd�ejfd!ejfed"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   z1
    HLSL (Microsoft Direct3D Shader) lexer.
    ÚHLSLÚhlslz*.hlslz*.hlsliztext/x-hlslzMhttps://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlslz2.3r   r   r   r   r   r    z[;{}(),.\[\]]z[+-]?\d*\.\d+([eE][-+]?\d+)?f?z[+-]?\d+\.\d*([eE][-+]?\d+)?f?r!   r"   r#   ú"Ústring)?rP   Zasm_fragmentr5   r;   Zcbufferr-   rQ   Zcolumn_majorÚcompileZcompile_fragmentr%   r6   r   r>   r7   r=   Zexportr[   r8   ZfxgroupZgloballycoherentZgroupsharedr<   r)   rX   r0   r\   ÚlineZlineadjÚlinearrg   Znointerpolationr,   ÚNULLr*   Z
packoffsetÚpassZpixelfragmentÚpointr2   r?   ÚregisterZ	row_majorr.   Zsamplerr(   Z
stateblockZstateblock_staterZ   r@   r:   ZtbufferZ	techniqueZtechnique10Ztechnique11ÚtexturerT   ÚtriangleZtriangleadjr&   Zvertexfragmentr3   r9   rA   rB   rE   )ÚautoZcatchÚcharZ
const_castÚdeleteZdynamic_castrS   ÚexplicitZfriendrW   r]   ZmutableÚnewÚoperatorÚprivateZ	protectedrY   Zreinterpret_castr^   Úsignedre   Zstatic_castrU   r   ÚthrowÚtryÚtypenamerR   ra   r   Zvirtual)6ZdwordÚmatrixZsnormr…   Zunormra   rH   ZvectorZ
BlendStateZBufferZByteAddressBufferZComputeShaderZDepthStencilStateZDepthStencilViewZDomainShaderZGeometryShaderZ
HullShaderZ
InputPatchZ
LineStreamZOutputPatchZPixelShaderZPointStreamZRasterizerStateZRenderTargetViewZRasterizerOrderedBufferZ"RasterizerOrderedByteAddressBufferZ!RasterizerOrderedStructuredBufferZRasterizerOrderedTexture1DZRasterizerOrderedTexture1DArrayZRasterizerOrderedTexture2DZRasterizerOrderedTexture2DArrayZRasterizerOrderedTexture3DZRWBufferZRWByteAddressBufferZRWStructuredBufferZRWTexture1DZRWTexture1DArrayZRWTexture2DZRWTexture2DArrayZRWTexture3DZSamplerStateZSamplerComparisonStateZStructuredBufferZ	Texture1DZTexture1DArrayZ	Texture2DZTexture2DArrayZTexture2DMSZTexture2DMSArrayZ	Texture3DZTextureCubeZTextureCubeArrayZTriangleStreamZVertexShader)rM   rJ   rI   rK   r_   Z
min16floatZ
min10floatZmin16intZmin12intZ	min16uintrL   z([1-4](x[1-4])?)?\b)§ÚabortÚabsÚacosÚallZAllMemoryBarrierZAllMemoryBarrierWithGroupSyncÚanyZAppendStructuredBufferZasdoubleZasfloatÚasinZasintÚasuintr¡   ÚatanÚatan2ÚceilZCheckAccessFullyMappedÚclampÚclipZCompileShaderZConsumeStructuredBufferÚcosÚcoshZ	countbitsÚcrossZD3DCOLORtoUBYTE4ZddxZ
ddx_coarseZddx_fineZddyZ
ddy_coarseZddy_fineÚdegreesZdeterminantZDeviceMemoryBarrierZ DeviceMemoryBarrierWithGroupSyncÚdistanceÚdotÚdstZerrorfZEvaluateAttributeAtCentroidZEvaluateAttributeAtSampleZEvaluateAttributeSnappedÚexpZexp2Zf16tof32Zf32tof16ZfaceforwardZfirstbithighZfirstbitlowÚfloorÚfmaÚfmodÚfracÚfrexpZfwidthZGetRenderTargetSampleCountZGetRenderTargetSamplePositionZGlobalOrderedCountIncrementZGroupMemoryBarrierZGroupMemoryBarrierWithGroupSyncZInterlockedAddZInterlockedAndZInterlockedCompareExchangeZInterlockedCompareStoreZInterlockedExchangeZInterlockedMaxZInterlockedMinZInterlockedOrZInterlockedXorÚisfiniteÚisinfÚisnanÚldexpÚlengthZlerpZlitÚlogÚlog10Úlog2ZmadÚmaxÚminÚmodfZmsad4ÚmulÚnoiseÚ	normalizeÚpowZprintfZProcess2DQuadTessFactorsAvgZProcess2DQuadTessFactorsMaxZProcess2DQuadTessFactorsMinZProcessIsolineTessFactorsZProcessQuadTessFactorsAvgZProcessQuadTessFactorsMaxZProcessQuadTessFactorsMinZProcessTriTessFactorsAvgZProcessTriTessFactorsMaxZProcessTriTessFactorsMinZQuadReadLaneAtZ	QuadSwapXZ	QuadSwapYÚradiansZrcpZreflectZrefractZreversebitsÚroundZrsqrtZsaturateÚsignÚsinZsincosÚsinhZ
smoothstepÚsqrtÚstepÚtanÚtanhÚtex1DrÌ   Z	tex1DbiasZ	tex1DgradZtex1DlodZ	tex1DprojÚtex2DrÍ   Z	tex2DbiasZ	tex2DgradZtex2DlodZ	tex2DprojÚtex3DrÎ   Z	tex3DbiasZ	tex3DgradZtex3DlodZ	tex3DprojÚtexCUBErÏ   ZtexCUBEbiasZtexCUBEgradZ
texCUBElodZtexCUBEprojZ	transposeÚtruncZWaveAllBitAndZ
WaveAllMaxZ
WaveAllMinZWaveAllBitOrZWaveAllBitXorZWaveAllEqualZWaveAllProductZ
WaveAllSumZWaveAllTrueZWaveAnyTrueZ
WaveBallotZWaveGetLaneCountZWaveGetLaneIndexZWaveGetOrderedIndexZWaveIsHelperLaneZWaveOnceZWavePrefixProductZWavePrefixSumZWaveReadFirstLaneZWaveReadLaneAt)ZSV_ClipDistanceZSV_ClipDistance0ZSV_ClipDistance1ZSV_CulldistanceZSV_CullDistance0ZSV_CullDistance1ZSV_CoverageZSV_DepthZSV_DepthGreaterEqualZSV_DepthLessEqualZSV_DispatchThreadIDZSV_DomainLocationZ
SV_GroupIDZSV_GroupIndexZSV_GroupThreadIDZSV_GSInstanceIDZSV_InnerCoverageZSV_InsideTessFactorZSV_InstanceIDZSV_IsFrontFaceZSV_OutputControlPointIDZSV_PositionZSV_PrimitiveIDZSV_RenderTargetArrayIndexZSV_SampleIndexZSV_StencilRefZSV_TessFactorZSV_VertexIDZSV_ViewportArrayIndexz\bSV_Target[0-7]?\b)Zallow_uav_conditionÚbranchÚcallÚdomainZearlydepthstencilZfastoptÚflattenZ	forcecaseÚinstanceÚloopZmaxtessfactorZ
numthreadsZoutputcontrolpointsZoutputtopologyZpartitioningZpatchconstantfuncZunrollrh   z\\$ri   ú#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)!rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   r
   rt   ru   rv   r   r   r   rw   rx   ry   rz   r   r   r   r{   r}   r|   r   r~   Ú	Decoratorr   ÚEscaper   r€   r€   r€   r�   r   —   sš   ÿôóÿúùïîýü(Ø)×*õôûú€ ÿ ÿú€ ür   c                   @   s:  e Zd ZdZdZdZddgZddgZdgZd	Z	d
Z
de
› d�Zde
› d�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 ejfde ejfde ejfde ejfde› �ejfeejfde ejfde ejfe ded�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.
    Ú
PostScriptz(https://en.wikipedia.org/wiki/PostScriptÚ
postscriptÚpostscrz*.psz*.epszapplication/postscriptz1.4z()<>\[\]{}/%\sz(?=[z])z[^ú]ú+z^%!.+$z%%.*$z(^%.*\n){2,}z%.*$z\(Ústringliteralz
[{}<>\[\]]z<[0-9A-Fa-f]+>zC[0-9]+\#[+-]?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)([eE][0-9]+)?z;[+-]?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)([eE][0-9]+)?z[+-]?[0-9]+z\/z(false|true)z6(eq|ne|g[et]|l[et]|and|or|not|if(?:else)?|for(?:all)?))lrœ   ÚaddZaloadÚarcZarcnÚarrayr¢   ÚbeginÚbindZceilingZcharpathr¦   Z	closepathÚconcatZconcatmatrixÚcopyr§   ZcurrentlinewidthZcurrentmatrixZcurrentpointZcurvetoZcviZcvsÚdefZdefaultmatrixÚdictZdictstackoverflowÚdivZ
dtransformÚdupÚendZexchÚexecÚexitr®   ÚfillZfindfontr¯   ÚgetZgetintervalZgrestoreZgsaveÚgtZidentmatrixZidivZidtransformÚindexZinvertmatrixZ
itransformr¸   ZlinetoÚlnÚloadr¹   rÖ   rš   ÚmodZmovetor¿   ÚnegÚnewpathZ
pathforallZpathbboxÚpopÚprintZpstackÚputÚquitÚrandZ
rangecheckZrcurvetoÚrepeatZrestoreZrlinetoZrmovetoZrollÚrotaterÄ   ÚrunÚsaveÚscaleZ	scalefontZsetdashZsetfontZsetgrayZ
setlinecapZsetlinejoinZsetlinewidthZ	setmatrixZsetrgbcolorZshfillÚshowZshowpagerÆ   rÈ   ÚstackZstringwidthÚstrokeZ
strokepathÚsubZsyntaxerrorÚ	transformÚ	translateÚtruncateZ	typecheckZ	undefinedZundefinedfilenameZundefinedresult©rD   ri   z[^()\\]+rÚ   Úescapeú#pushú\)r×   z[0-8]{3}|n|r|t|b|f|\\|\(|\))r   râ   r  N)&rj   rk   rl   rm   rn   rr   ro   rp   rq   rs   Ú	delimiterZdelimiter_endZvalid_name_charsZ
valid_namer
   rt   ÚSpecialrv   ru   r   r   r   rx   ry   rw   rz   r   ÚVariableÚFunctionr   r{   r}   r   r~   r   rÜ   r   r   r€   r€   r€   r�   r   1  sj   ÿÿÿÿÿÿîíÅ?
ü
þºr   c                   @   s²  e Zd ZdZdZdZddgZdgZdgZd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
 d! eeeƒejeeƒeeƒeƒd"fd e
 d# 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d0efgd1œZ!d2d3„ Z"d4S )5r   z$
    For Asymptote source code.
    Ú	Asymptotezhttp://asymptote.sf.net/Ú	asymptoteÚasyz*.asyztext/x-asymptotez1.2z(?:\s|//.*?\n|/\*.*?\*/)+ú\nri   ú(\\)(\n)z//(\n|[\s\S]*?[^\\]\n)z/(\\\n)?\*[\s\S]*?\*(\\\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*:(?!:)rh   Ú
whitespacez6((?:[\w*\s])+?(?:\s|\*))([a-zA-Z_]\w*)(\s*\([^;]*?\))(z)(\{)Úfunctionz)(;)Ú	statementÚ
statementsz[{}]ú;r×   z\{r  z\}z0\\([\\abfnrtv"\'?]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})ú	[^\\'\n]+rÙ   z\\nrÚ   )r  r  r   r  r  r…   c                 c   sf   ddl m}m} t | |¡D ]D\}}}|tu r>||v r>tj}n|tu rT||v rTtj}|||fV  qd S )Nr   )ÚASYFUNCNAMEÚ
ASYVARNAME)Zpygments.lexers._asy_builtinsr   r!  r   Úget_tokens_unprocessedr   r  r  )ÚselfÚtextr   r!  rô   ÚtokenÚvaluer€   r€   r�   r"  ù  s    
ÿz%AsymptoteLexer.get_tokens_unprocessedN)#rj   rk   rl   rm   rn   rr   ro   rp   rq   rs   Ú_wsr   r   r	   r
   r   r   rw   rx   ry   rz   r   r   r   r   r   r|   r   ÚLabelr   r  r   rÜ   r   r"  r€   r€   r€   r�   r   �  sž   û	ý	÷ýÙ*ýýÿúýýÿüïüûù¯\r   c                    s0   ˆ  d¡‰ d ‡ ‡fdd„ttˆƒˆ dƒD ƒ¡S )Nú$ú|c                 3   s.   | ]&}ˆd ˆ … ˆˆ d |…  d V  qd S )Né   rA   r€   )Ú.0Úi©ZdposÚwordr€   r�   Ú	<genexpr>  s   ÿz_shortened.<locals>.<genexpr>éÿÿÿÿ)ÚfindÚjoinÚrangeÚlen)r/  r€   r.  r�   Ú
_shortened  s    
ÿr6  c                  G   s   d  tt| ƒ¡S )Nr*  )r3  Úmapr6  )r   r€   r€   r�   Ú_shortened_many
  s    r8  c                Ÿ   @   s(  e Zd ZdZdZdZdgZddgZdgZd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/d0d1ƒed2fed+d,d-d.d/d3ƒed4fd5eejeeƒd2fd6eejeeeeeeƒd2fd7ejfd8efgd9efd:efd;efed<ƒgd=ed>fd?efge
d	ƒd8ed<fd@ed<fgdAed<fdBejfdCefd:efd;efd@ed<fgdDefdEed<fdFefd:efd;efd@ed<fge
d4ƒdAedGfdEedHfdIejfdJejfdKejfdLefdMefdNejfdOeejeeƒfdPefd7ejfdQeeeƒfge
d	ƒedRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd€d�d‚dƒd„d…d†d‡dˆd‰dŠd‹dŒd�dŽd�d�dd‘d’d*d“d”d•d–d—d˜d™dšd›dœd�dždŸd d¡d¢d£d¤d¥d¦d§d¨d©dªd«d¬d­d®d¯d°d±d²d³d´dµd¶d·d¸d¹dºd»d¼d½d¾d¿dÀdÁdÂdÃdÄdÅdÆdÇdÈdÉdÊdËdÌdÍdÎdÏdÐdÑdÒdÓdÔdÕdÖd×dØdÙdÚdÛdÜdÝdÞdßdàdádâdãdädåƒ–ejd<fgdæed<fedçƒejfe
d2ƒgdèefe
d4ƒgdéejfe
dƒgdêed<fe
d2ƒgdëejfedìƒejfe
d2ƒgedídîdïdðdñdòdódôdõdöd÷døƒejfe
d2ƒgedùdúd™d¡ƒejfe
d2ƒgdûœZ düS )ýr   z'
    For Gnuplot plotting scripts.
    ÚGnuplotzhttp://gnuplot.info/Úgnuplotz*.plotz*.pltztext/x-gnuplotú0.11r  zbi$ndrç   zex$itzq$uitrý   zf$itÚfitz(if)(\s*)(\()r<   zelse\bzpa$useÚpausez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$oadzpr$intzpwd$zre$readzres$etzscr$eendumpzshe$llzsy$stemzup$dater?  ztest$rA  z([a-zA-Z_]\w*)(\s*)(=)z(([a-zA-Z_]\w*)(\s*)(\()(.*?)(\))(\s*)(=)z@[a-zA-Z_]\w*r  z[^\\\n]+rÙ   rÚ   r×   ú#Úcommentz
[ \t\v\f]+r  r„   z/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})rØ   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*)(\()rh   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$oxz
poi$ntsizezpol$arzobj$ectzsa$mpleszsi$zezst$ylezsu$rfaceztable$z	t$erminalztermo$ptionszti$csz	ticsc$alez
ticsl$evelztimef$mtz
tim$estampztit$lez
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$et)r   rC  r  rA  rD  rE  r?  r@  rç   rý   r<  r<   r=  r>  r  N)!rj   rk   rl   rm   rn   rr   ro   rp   rq   rs   r   r6  r   r8  r   r	   r   r   r  r   r   r  r{   r
   r   r   rÜ   r   rw   rz   ÚWordr~   r   r€   r€   r€   r�   r     s0  ÿ
ýü
ÿþÿ
ÿþåûþüú	ú	ÿò














ääþ!ýþþþýþýûÿý€ ôr   c                   @   sÂ   e Zd ZdZdZdZdgZddgZdgZdZ	d	d
e
jfde
jfdejfedddd�e
jfedddd�efed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d„ ZdS )r   z4
    For Persistence of Vision Raytracer files.
    ÚPOVRayzhttp://www.povray.org/Úpovz*.povz*.incztext/x-povrayr;  r   z/\*[\w\W]*?\*/r   z(?s)"(?:\\.|[^"\\])+")r5   r;   ÚdebugÚdeclarer   Zdefiner=   Zelseifrî   ÚerrorZfcloseZfopenr8   r<   ÚifdefZifndefr   ÚlocalÚmacror4  ÚreadÚrenderÚ
statisticsr:   ZundefÚversionÚwarningr9   ÚwriterB  rA   rB   (9  Zaa_levelZaa_thresholdrœ   r�   ÚacoshZadaptiveZadc_bailoutZagateZ
agate_turbrž   ÚalphaZambientZambient_lightZangleZapertureZ	arc_angleZ
area_lightÚascr    ÚasinhZassumed_gammar¢   r£   ÚatanhZ
atmosphereZatmospheric_attenuationZattenuatingZaverageÚ
backgroundZ
black_holeÚblueZblur_samplesZ
bounded_byZbox_mappingZbozor5   ÚbrickZ
brick_sizeZ
brightnessZ
brillianceZbumpsZbumpy1Zbumpy2Zbumpy3Zbump_mapZ	bump_sizer;   Zcausticsr¤   ÚcheckerÚchrZ
clipped_byÚclockÚcolorZ	color_mapÚcolourZ
colour_mapÚ	componentZ	compositerè   Z
confidenceZconic_sweepZconstantZcontrol0Zcontrol1r§   r¨   ÚcountZcrackleZcrandZcubeZcubic_splineZcylindrical_mappingrJ  rK  r   rª   ZdentsZdiffuseÚ	directionr«   Zdistance_maximumrì   ZdustZ	dust_typeZeccentricityr=   Zemittingrî   rL  Zerror_boundr®   ÚexponentZfade_distanceZ
fade_powerZfalloffZfalloff_anglerG   Zfile_existsrd   ÚfinishZfisheyeZflatnessÚflipr¯   Zfocal_pointÚfogZfog_altZ
fog_offsetZfog_typeZ	frequencyZgifZglobal_settingsZglowingZgradientZgraniteZgray_thresholdÚgreenZhaloZhexagonZ
hf_gray_16Z	hierarchyZhollowZhypercomplexr<   rM  ZiffZ	image_mapZ	incidencer   rK   ZinterpolateZinverseÚiorZiridZirid_wavelengthZjitterÚlambdaÚleopardrˆ   Zlinear_splineZlinear_sweepÚlocationr¹   Z
looks_likeZlook_atZlow_error_factorZmandelZmap_typeZmarbleZmaterial_maprš   r¼   Zmax_intersectionsZmax_iterationZmax_trace_levelZ	max_valueZmetallicr½   Zminimum_reuser÷   ZmortarZnearest_countÚnoÚnormalZ
normal_mapZ	no_shadowZnumber_of_wavesZoctavesÚoffÚoffsetÚomegaZomnimaxÚonÚonceÚonionÚopenZorthographicZ	panoramicZpattern1Zpattern2Zpattern3ZperspectiveZpgmZphaseZphongZ
phong_sizeÚpiZpigmentZpigment_mapZplanar_mappingZpngZpoint_atÚpotrÂ   Úppmr1   ZpwrZquadratic_splineZ
quaternionZquick_colorZquick_colourZquiltedZradialrÃ   Z	radiosityZradiusÚrainbowZ	ramp_waverþ   r4  Z
reciprocalÚrecursion_limitÚredZ
reflectionZ
refractionrQ  rÿ   ÚrgbZrgbfZrgbftZrgbtÚrightZripplesr   Z	roughnessZsamplesr  Zscallop_waveZ
scatteringÚseedZ
shadowlessrÆ   Z	sine_waverÇ   ZskyZ
sky_sphereÚsliceZ	slope_mapr+   ZspecularZspherical_mappingZspiralZspiral1Zspiral2Z	spotlightZspottedZsqrrÈ   rR  ÚstrZstrcmpZstrengthZstrlenZstrlwrZstruprZsturmÚsubstrr:   ÚsysÚtrÊ   rË   Ztest_camera_1Ztest_camera_2Ztest_camera_3Ztest_camera_4r�   Ztexture_mapZtgaZ	thicknessÚ	thresholdZ	tightnessZtile2ZtilesÚtrackr  r	  ZtransmitZtriangle_waverF   ZttfZ
turbulenceZ
turb_depthÚtypeZultra_wide_angleÚupZ	use_colorZ
use_colourZ	use_indexZu_stepsÚvalZvarianceZvaxis_rotateZvcrossZvdotrS  ZvlengthZ
vnormalizeZvolume_objectZvolume_renderedZvol_with_lightZvrotateZv_stepsrT  ZwarpZwater_levelZwavesr9   ÚwidthZwoodZwrinklesÚyes)Zbicubic_patchZblobÚboxÚcameraZconeZcubicZcylinderÚ
differenceZdiscZheight_fieldÚintersectionZjulia_fractalZlatheÚlight_sourceÚmergeZmeshÚobjectZplaneZpolyZpolygonZprismZquadricZquarticZsmooth_triangleZsorZsphereZsuperellipsoidr$  ZtorusrŽ   rR   r  z\b(x|y|z|u|v)\brh   z[0-9]*\.[0-9]+z[0-9]+z[\[\](){}<>;,]z[-+*/=.|&]|<=|>=|!=r  ri   c                 C   sH   d}d| v r|d7 }d| v r$|d7 }d| v r4|d7 }d| v rD|d7 }|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$  Úresultr€   r€   r�   Úanalyse_text	  s    zPovrayLexer.analyse_textN)rj   rk   rl   rm   rn   rr   ro   rp   rq   rs   r
   rv   ru   r   ÚDoubler   rt   r   r   r~   ÚPseudor   rw   rz   r   r   r   r   r•  r€   r€   r€   r�   r   ®  sJ   ûú0Ð1Ï2ûú
µÿPr   N)rm   Zpygments.lexerr   r   r   r   r   r   r   Zpygments.tokenr	   r
   r   r   r   r   r   r   r   Ú__all__r   r   r   r   r6  r8  r   r   r€   r€   r€   r�   Ú<module>   s   
$,  ^u !