o
    Ñ­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)?[*](.|\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Ú	mimetypesÚurlÚversion_addedr
   ÚPreprocÚSingleÚ	Multiliner   r   r   ÚFloatÚHexÚOctÚIntegerr   r   ÚConstantÚTypeÚReservedr   ÚBuiltinr   Útokens© r  r  úU/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pygments/lexers/graphics.pyr      sb    ÿèçýü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)?rÍ   Úasm_fragmentr?   rE   Úcbufferr0   rÎ   Úcolumn_majorÚcompileÚcompile_fragmentr%   r@   r   rI   rA   rG   ÚexportrÙ   rB   ÚfxgroupÚgloballycoherentÚgroupsharedrF   r*   rÕ   r3   rÛ   ÚlineÚlineadjÚlinearrî   Únointerpolationr/   ÚNULLr+   Ú
packoffsetÚpassÚpixelfragmentÚpointr9   rJ   ÚregisterÚ	row_majorr1   Úsamplerr)   Ú
stateblockÚstateblock_staterØ   rK   rD   ÚtbufferÚ	techniqueÚtechnique10Útechnique11ÚtexturerÑ   ÚtriangleÚtriangleadjr&   Úvertexfragmentr;   rC   rL   rM   rP   )Ú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à   rS   Ú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)re   rY   rU   r]   rÞ   Ú
min16floatÚ
min10floatÚmin16intÚmin12intÚ	min16uintra   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  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]+>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\/z(false|true)z6(eq|ne|g[et]|l[et]|and|or|not|if(?:else)?|for(?:all)?))lry  Ú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Å  r@  rA  Ú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©rO   rð   z[^()\\]+rK  Úescapeú#pushú\)rH  z[0-8]{3}|n|r|t|b|f|\\|\(|\))r   rS  r³  N)&rñ   rò   ró   rô   rõ   rù   rö   r÷   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   rM  r   r  r  r  r  r  r   1  sl    ÿÿÿÿÿÿîíÅ?
ü
þ
º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|/\*.*?\*/)+ú\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[{}]ú;rH  z\{r´  z\}z0\\([\\abfnrtv"\'?]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})ú	[^\\'\n]+rJ  z\\nrK  )rÄ  rÇ  r   rÆ  rÅ  r  c                 c   sh   � ddl m}m} t | |¡D ]"\}}}|tu r ||v r tj}n|tu r+||v r+tj}|||fV  qd S )Nr   )ÚASYFUNCNAMEÚ
ASYVARNAME)Ú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)#rñ   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   rM  r  rÍ  r  r  r  r  r   �  s     û	ý	÷ýÙ*ýýÿúýýÿüïüûù¯\r   c                    s0   ˆ  d¡‰ d ‡ ‡fdd„ttˆƒˆ dƒD ƒ¡S )Nú$ú|c                 3   s0   � | ]}ˆd ˆ … ˆˆ d |…  d V  qd S )Né   rL   r  )Ú.0Úi©ÚdposÚwordr  r  Ú	<genexpr>  s   € (ÿz_shortened.<locals>.<genexpr>éÿÿÿÿ)ÚfindÚjoinÚrangeÚlen)rÛ  r  rÙ  r  Ú
_shortened  s   
ÿrâ  c                  G   s   d  tt| ƒ¡S )NrÕ  )rß  Úmaprâ  )r   r  r  r  Ú_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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dRŽ ejd<fgdSed<fedTƒejfe
d2ƒgdUefe
d4ƒgdVejfe
dƒgdWed<fe
d2ƒgdXejfedYƒejfe
d2ƒgedZd[d\d]d^d_d`dadbdcdddeƒejfe
d2ƒgedfdgdhdiƒejfe
d2ƒgdjœZ dkS )lr   z'
    For Gnuplot plotting scripts.
    ÚGnuplotzhttp://gnuplot.info/Úgnuplotz*.plotz*.pltztext/x-gnuplotú0.11rÄ  zbi$ndrZ  zex$itzq$uitrŒ  zf$itÚfitz(if)(\s*)(\()rF   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]+rJ  rK  rH  ú#Úcommentz
[ \t\v\f]+rÀ  r  z/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})rI  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í  rZ  rŒ  rè  rF   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   r   rM  r   rþ   r  ÚWordr  r  r  r  r  r  r     sø    ÿ
ýü
ÿþÿ
ÿþåûþüú	ú	ÿòäþ!ýþþþýþýûÿý �
ó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)"(?:\\.|[^"\\])+")r?   rE   ÚdebugÚdeclarer   ÚdefinerG   Úelseifrn  ÚerrorÚfcloseÚfopenrB   rF   ÚifdefÚifndefr   ÚlocalÚmacrorà  ÚreadÚrenderÚ
statisticsrD   ÚundefÚversionÚwarningrC   Úwriterð  rL   rM   (9  Úaa_levelÚaa_thresholdry  rz  Ú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Úbozor?   ÚbrickÚ
brick_sizeÚ
brightnessÚ
brillianceÚbumpsÚbumpy1Úbumpy2Úbumpy3Úbump_mapÚ	bump_sizerE   Ú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_maximumrk  ÚdustÚ	dust_typeÚeccentricityrG   Úemittingrn  rþ  Úerror_boundr£  ÚexponentÚfade_distanceÚ
fade_powerÚfalloffÚfalloff_anglerR   Ú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ÚhypercomplexrF   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_maprA  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Ð  Úppmr7   Ú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_mapr.   ÚspecularÚspherical_mappingÚspiralÚspiral1Úspiral2Ú	spotlightÚspottedÚsqrrì  r  ÚstrÚstrcmpÚstrengthÚstrlenÚstrlwrÚstruprÚsturmÚsubstrrD   Ú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_waverQ   Ú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ÚwavesrC   Ú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                 C   sH   d}d| v r
|d7 }d| v r|d7 }d| v r|d7 }d| v r"|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)rñ   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  r'  r  r  r  r  r   ®  sL    ûú0Ð1Ï2ûú
µÿPr   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  r  Ú<module>   s    $
,  ^u !