B
    b                 @   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 dddddd	g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-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               @   s   e Zd ZdZdZdgZdddg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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.

    .. versionadded:: 1.1
    ZGLSLZglslz*.vertz*.fragz*.geoztext/x-glslsrcrootz^#.*$z//.*$z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z0\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?z[?:]z\bdefined\bz[;{}(),\[\]]z[+-]?\d*\.\d+([eE][-+]?\d+)?z[+-]?\d+\.\d*([eE][-+]?\d+)?z0[xX][0-9a-fA-F]*z0[0-7]*z[1-9][0-9]*))Z	attributeconstuniformZvaryingbuffersharedinoutZlayoutZflatsmoothnoperspectivecentroidsampleZ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structz\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halfZfixedunsignedZsuperpinputoutputZhvec2Zhvec3Zhvec4Zfvec2Zfvec3Zfvec4Zsampler3DRectfiltersizeofcast	namespacer   zgl_\w*z[a-zA-Z_]\w*z\.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 rk   rk   7lib/python3.7/site-packages/pygments/lexers/graphics.pyr      sN   
0c               @   s^  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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   zL
    HLSL (Microsoft Direct3D Shader) lexer.

    .. versionadded:: 2.3
    ZHLSLZhlslz*.hlslz*.hlsliztext/x-hlslz^#.*$z//.*$z/(\\\n)?[*](.|\n)*?[*](\\\n)?/z0\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?z[?:]z\bdefined\bz[;{}(),.\[\]]z[+-]?\d*\.\d+([eE][-+]?\d+)?f?z[+-]?\d+\.\d*([eE][-+]?\d+)?f?z0[xX][0-9a-fA-F]*z0[0-7]*z[1-9][0-9]*"string)?r@   Zasm_fragmentr(   r.   Zcbufferr!   rA   Zcolumn_majorcompileZcompile_fragmentr   r)   r   r1   r*   r0   ZexportrK   r+   ZfxgroupZgloballycoherentZgroupsharedr/   r   rH   r#   rL   lineZlineadjlinearrV   Znointerpolationr    ZNULLr   Z
packoffsetpassZpixelfragmentZpointr%   r2   registerZ	row_majorr"   Zsamplerr   Z
stateblockZstateblock_staterJ   r3   r-   ZtbufferZ	techniqueZtechnique10Ztechnique11texturerD   triangleZtriangleadjr   Zvertexfragmentr&   r,   z\b)r4   r5   )r6   r7   )autoZcatchcharZ
const_castdeleteZdynamic_castrC   ZexplicitZfriendrG   rM   ZmutablenewoperatorZprivateZ	protectedrI   Zreinterpret_castrN   signedrT   Zstatic_castrE   r   throwtrytypenamerB   rP   r   Zvirtual)6ZdwordmatrixZsnormrn   ZunormrP   r8   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)r=   r:   r9   r;   rO   Z
min16floatZ
min10floatZmin16intZmin12intZ	min16uintr<   z([1-4](x[1-4])?)?\b)abortabsacosallZAllMemoryBarrierZAllMemoryBarrierWithGroupSyncanyZAppendStructuredBufferZasdoubleZasfloatasinZasintasuintr   atanatan2ceilZCheckAccessFullyMappedZclampclipZCompileShaderZConsumeStructuredBuffercoscoshZ	countbitsZ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floorZfmaZfmodZfracZfrexpZfwidthZGetRenderTargetSampleCountZGetRenderTargetSamplePositionZGlobalOrderedCountIncrementZGroupMemoryBarrierZGroupMemoryBarrierWithGroupSyncZInterlockedAddZInterlockedAndZInterlockedCompareExchangeZInterlockedCompareStoreZInterlockedExchangeZInterlockedMaxZInterlockedMinZInterlockedOrZInterlockedXorZisfiniteZisinfZisnanZldexplengthZlerpZlitlogZlog10Zlog2ZmadmaxminZmodfZmsad4mulZ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	transposeZ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branchZcalldomainZearlydepthstencilZfastoptZflattenZ	forcecaseinstanceloopZmaxtessfactorZ
numthreadsZoutputcontrolpointsZoutputtopologyZpartitioningZpatchconstantfuncZunrollz[a-zA-Z_]\w*z\\$z\s+z#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})z	[^\\"\n]+z\\\nz\\)r   rn   N)rW   rX   rY   rZ   r[   r\   r]   r^   r
   r_   r`   ra   r   r   r   rb   rc   rd   re   r   r   r   rf   rh   rg   r   ri   Z	Decoratorr   Escaperj   rk   rk   rk   rl   r      sv   '
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
e	 Z
de	 Zdee
f 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.

    .. versionadded:: 1.4
    Z
PostScriptz(https://en.wikipedia.org/wiki/PostScriptZ
postscriptZpostscrz*.psz*.epszapplication/postscriptz()<>\[\]{}/%\sz(?=[%s])z[^%s]z%s+%sz^%!.+$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   addZaloadZarcZarcnZarrayr   Z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linetoZlnloadr   r   r   modZmovetor   negnewpathZ
pathforallZpathbboxpopprintZpstackZputquitrandZ
rangecheckZrcurvetorepeatZrestoreZrlinetoZrmovetoZrollrotater   runsavescaleZ	scalefontZsetdashZsetfontZsetgrayZ
setlinecapZsetlinejoinZsetlinewidthZ	setmatrixZsetrgbcolorZshfillZshowZshowpager   r   stackZstringwidthZstrokeZ
strokepathsubZsyntaxerror	transform	translatetruncateZ	typecheckZ	undefinedZundefinedfilenameZundefinedresult)r5   z\s+z[^()\\]+z\\escapez#pushz\)z#popz[0-8]{3}|n|r|t|b|f|\\|\(|\))r   r   r   N)%rW   rX   rY   rZ   r[   urlr\   r]   r^   Z	delimiterZdelimiter_endZvalid_name_charsZ
valid_namer
   r_   Specialra   r`   r   r   r   rc   rd   rb   re   r   VariableFunctionr   rf   rh   r   ri   r   r   r   rj   rk   rk   rk   rl   r   1  sL   





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	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d/efgd0Z d1d2 Z!d3S )4r   z?
    For Asymptote source code.

    .. versionadded:: 1.2
    Z	Asymptotezhttp://asymptote.sf.net/Z	asymptoteZasyz*.asyztext/x-asymptotez(?:\s|//.*?\n|/\*.*?\*/)+z\nz\s+z(\\)(\n)z//(\n|(.|\n)*?[^\\]\n)z/(\\\n)?\*(.|\n)*?\*(\\\n)?/z"(\\\\|\\[^\\]|[^"\\])*"'rn   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*:(?!:)z[a-zA-Z_]\w*
whitespacez6((?:[\w*\s])+?(?:\s|\*))([a-zA-Z_]\w*)(\s*\([^;]*?\))(z)(\{)functionz)(;)	statement
statementsz[{}];z#popz\{z#pushz\}z0\\([\\abfnrtv"\'?]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})z	[^\\'\n]+z\\\nz\\nz\\)r   r   r   r   r   rn   c             c   sj   ddl m}m} xTt| |D ]D\}}}|tkr@||kr@tj}n|tkrV||krVtj}|||fV  qW d S )Nr   )ASYFUNCNAME
ASYVARNAME)Zpygments.lexers._asy_builtinsr   r   r   get_tokens_unprocessedr   r   r   )selftextr   r   r   tokenvaluerk   rk   rl   r     s    z%AsymptoteLexer.get_tokens_unprocessedN)"rW   rX   rY   rZ   r[   r   r\   r]   r^   Z_wsr   r   r	   r
   r   r   rb   rc   rd   re   r   r   r   r   r   rg   r   ZLabelr   r   r   r   rj   r   rk   rk   rk   rl   r     sp   	



c                s0    d d fddtt dD S )N$|c             3   s.   | ]&}d    d |  d V  qd S )N   z\brk   ).0i)dposwordrk   rl   	<genexpr>  s   z_shortened.<locals>.<genexpr>)findjoinrangelen)r   rk   )r   r   rl   
_shortened  s    
r   c              G   s   d tt| S )Nr   )r   mapr   )r   rk   rk   rl   _shortened_many  s    r   c               @   s  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d4eejeed1fd5e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dNeejeefdOefd6ejfdPeeefge	dedQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddddddd)ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd䃖ejd;fgded;fe
dejfe	d1gdefe	d3gdejfe	dgded;fe	d1gdejfe
dejfe	d1geddddddddddddejfe	d1geddddejfe	d1gdZdS )r   zC
    For Gnuplot plotting scripts.

    .. versionadded:: 0.11
    ZGnuplotzhttp://gnuplot.info/Zgnuplotz*.plotz*.pltztext/x-gnuplotr   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$r   z([a-zA-Z_]\w*)(\s*)(=)z ([a-zA-Z_]\w*)(\s*\(.*?\)\s*)(=)z@[a-zA-Z_]\w*r   z[^\\\n]z\\\nz\\z#pop#commentz
[ \t\v\f]+z\nrm   z/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})z	[^\\"\n]+z''r   z	[^\\'\n]+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*)(\()z[a-zA-Z_]\w*z(\\)(\n)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\bz\)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   r   r   r   r   r   r   r   r   r   r   r/   r   r   r   N) rW   rX   rY   rZ   r[   r   r\   r]   r^   r   r   r   r   r   r	   r   r   r   r   r   r   rf   r
   r   r   r   r   rb   re   ZWordri   rj   rk   rk   rk   rl   r     s   



















c               @   s   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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   zP
    For Persistence of Vision Raytracer files.

    .. versionadded:: 0.11
    ZPOVRayzhttp://www.povray.org/Zpovz*.povz*.incztext/x-povrayr   z/\*[\w\W]*?\*/z//.*$z(?s)"(?:\\.|[^"\\])+")r(   r.   debugdeclarer   Zdefiner0   Zelseifr   errorZfcloseZfopenr+   r/   ifdefZifndefr   ZlocalZmacror   readrender
statisticsr-   Zundefversionwarningr,   writer   z\b)r4   r5   (9  Zaa_levelZaa_thresholdr   r   ZacoshZadaptiveZadc_bailoutZagateZ
agate_turbr   ZalphaZambientZambient_lightZangleZapertureZ	arc_angleZ
area_lightZascr   ZasinhZassumed_gammar   r   ZatanhZ
atmosphereZatmospheric_attenuationZattenuatingZaverageZ
backgroundZ
black_holeZblueZblur_samplesZ
bounded_byZbox_mappingZbozor(   ZbrickZ
brick_sizeZ
brightnessZ
brillianceZbumpsZbumpy1Zbumpy2Zbumpy3Zbump_mapZ	bump_sizer.   Zcausticsr   ZcheckerchrZ
clipped_byZclockZcolorZ	color_mapZcolourZ
colour_mapZ	componentZ	compositer   Z
confidenceZconic_sweepZconstantZcontrol0Zcontrol1r   r   countZcrackleZcrandZcubeZcubic_splineZcylindrical_mappingr   r   r   r   ZdentsZdiffuse	directionr   Zdistance_maximumr   ZdustZ	dust_typeZeccentricityr0   Zemittingr   r   Zerror_boundr   ZexponentZfade_distanceZ
fade_powerZfalloffZfalloff_angler7   Zfile_existsrS   ZfinishZfisheyeZflatnessZflipr   Zfocal_pointZfogZfog_altZ
fog_offsetZfog_typeZ	frequencyZgifZglobal_settingsZglowingZgradientZgraniteZgray_thresholdZgreenZhaloZhexagonZ
hf_gray_16Z	hierarchyZhollowZhypercomplexr/   r   ZiffZ	image_mapZ	incidencer   r;   ZinterpolateZinverseiorZiridZirid_wavelengthZjitterlambdaZleopardrq   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noZnormalZ
normal_mapZ	no_shadowZnumber_of_wavesZoctavesZoffoffsetZomegaZomnimaxZononceZonionopenZorthographicZ	panoramicZpattern1Zpattern2Zpattern3ZperspectiveZpgmZphaseZphongZ
phong_sizeZpiZpigmentZpigment_mapZplanar_mappingZpngZpoint_atZpotr   Zppmr$   ZpwrZquadratic_splineZ
quaternionZquick_colorZquick_colourZquiltedZradialr   Z	radiosityZradiusZrainbowZ	ramp_waver   r   Z
reciprocalZrecursion_limitZredZ
reflectionZ
refractionr   r   ZrgbZrgbfZrgbftZrgbtrightZripplesr   Z	roughnessZsamplesr   Zscallop_waveZ
scatteringZseedZ
shadowlessr   Z	sine_waver   ZskyZ
sky_spheresliceZ	slope_mapr   ZspecularZspherical_mappingZspiralZspiral1Zspiral2Z	spotlightZspottedZsqrr   r  strZstrcmpZstrengthZstrlenZstrlwrZstruprZsturmZsubstrr-   systr   r   Ztest_camera_1Ztest_camera_2Ztest_camera_3Ztest_camera_4rt   Ztexture_mapZtgaZ	thicknessZ	thresholdZ	tightnessZtile2ZtilesZtrackr   r   ZtransmitZtriangle_waver6   ZttfZ
turbulenceZ
turb_depthtypeZultra_wide_angleZupZ	use_colorZ
use_colourZ	use_indexZu_stepsvalZvarianceZvaxis_rotateZvcrossZvdotr  ZvlengthZ
vnormalizeZvolume_objectZvolume_renderedZvol_with_lightZvrotateZv_stepsr  ZwarpZwater_levelZwavesr,   widthZwoodZwrinklesZyes)Zbicubic_patchZblobZ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torusru   rB   )r5   z\b(x|y|z|u|v)\bz[a-zA-Z_]\w*z[0-9]*\.[0-9]+z[0-9]+z[\[\](){}<>;,]z[-+*/=.|&]|<=|>=|!=z"(\\\\|\\[^\\]|[^"\\])*"z\s+c             C   sH   d}d| kr|d7 }d| kr$|d7 }d| kr4|d7 }d| k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?rk   )r   resultrk   rk   rl   analyse_text  s    zPovrayLexer.analyse_textN)rW   rX   rY   rZ   r[   r   r\   r]   r^   r
   ra   r`   r   Doubler   r_   r   r   ri   ZPseudor   rb   re   r   r   r   rj   r  rk   rk   rk   rl   r     s>   /
N)rZ   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   r   r   r   r   rk   rk   rk   rl   <module>	   s   $,  _v !