|erdZddlmZmZmZmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZmZgdZGddeZGddeZGd d eZGd d eZd ZdZGddeZGddeZy)z pygments.lexers.graphics ~~~~~~~~~~~~~~~~~~~~~~~~ Lexers for computer graphics and plotting related languages. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. ) RegexLexerwordsincludebygroupsusingthisdefault) TextCommentOperatorKeywordNameNumber PunctuationString Whitespace) GLShaderLexerPostScriptLexerAsymptoteLexer GnuplotLexer PovrayLexerHLSLShaderLexerceZdZdZdZdgZgdZdgZddejfdejfd ejfd e fd e fd e fd e fdejfdejfdej fdej"fdej$fedddefedddej*fedddej,fedddej.fdej2fdefde fdefgiZy)rz@ GLSL (OpenGL Shader) lexer. .. versionadded:: 1.1 GLSLglsl)z*.vertz*.fragz*.geoztext/x-glslsrcroot#(?:.*\\\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]*)) attributeconstuniformvaryingbuffersharedinoutlayoutflatsmooth noperspectivecentroidsamplepatchinoutlowpmediumphighp precision invariantprecisecoherentvolatilerestrictreadonly writeonlybreakcontinuedoforwhileswitchcaser ifelse subroutinediscardreturnstruct\bprefixsuffixtruefalse)wvoid atomic_uintfloatvec2vec3vec4doubledvec2dvec3dvec4intivec2ivec3ivec4uintuvec2uvec3uvec4boolbvec2bvec3bvec4mat2mat3mat4dmat2dmat3dmat4mat2x2mat2x3mat2x4dmat2x2dmat2x3dmat2x4mat3x2mat3x3mat3x4dmat3x2dmat3x3dmat3x4mat4x2mat4x3mat4x4dmat4x2dmat4x3dmat4x4 sampler1D sampler2D sampler3D samplerCubesampler1DArraysampler2DArraysamplerCubeArray sampler2DRect samplerBuffer sampler2DMSsampler2DMSArraysampler1DShadowsampler2DShadowsamplerCubeShadowsampler1DArrayShadowsampler2DArrayShadowsamplerCubeArrayShadowsampler2DRectShadow isampler1D isampler2D isampler3D isamplerCubeisampler1DArrayisampler2DArrayisamplerCubeArrayisampler2DRectisamplerBuffer isampler2DMSisampler2DMSArray usampler1D usampler2D usampler3D usamplerCubeusampler1DArrayusampler2DArrayusamplerCubeArrayusampler2DRectusamplerBuffer usampler2DMSusampler2DMSArrayimage1Dimage2Dimage3D imageCube image1DArray image2DArrayimageCubeArray image2DRect imageBuffer image2DMSimage2DMSArrayiimage1Diimage2Diimage3D iimageCube iimage1DArray iimage2DArrayiimageCubeArray iimage2DRect iimageBuffer iimage2DMSiimage2DMSArrayuimage1Duimage2Duimage3D uimageCube uimage1DArray uimage2DArrayuimageCubeArray uimage2DRect uimageBuffer uimage2DMSuimage2DMSArray)'common partitionactiveasmclassunionenumtypedeftemplaterresourcegotoinlinenoinlinepublicstaticexternexternal interfacelongshorthalffixedunsignedsuperpinputoutputhvec2hvec3hvec4fvec2fvec3fvec4 sampler3DRectfiltersizeofcast namespacerzgl_\w* [a-zA-Z_]\w*z\.\s+N)__name__ __module__ __qualname____doc__namealiases filenames mimetypesr PreprocSingle Multiliner rrFloatHexOctIntegerrr ConstantTypeReservedrBuiltinrtokens:/usr/lib/python3/dist-packages/pygments/lexers/graphics.pyrrst DhG-I!"I   1 w~~ & .0A0A B @   h  X & k * ,fll ; ,fll ; !6:: .  $ V^^ , /0U1,23 4!U,     11dUe2,f\\g3 h &U ,    % d # K Z es uFrrceZdZdZdZdgZddgZdgZdejfdejfd ejfd e fd e fd e fd e fdejfdejfdej fdej"fdej$fdedfedddefedddej,fedddej.fedddej0fedddej0fedddej4fedddej6fdej6fed ddej6fd!efd"ejfd#efgded$fd%ej:fd&efd'efd(efgd)Zy*)+rzL HLSL (Microsoft Direct3D Shader) lexer. .. versionadded:: 2.3 HLSLhlslz*.hlslz*.hlsliz text/x-hlslrrrr r!r"z [;{}(),.\[\]]z[+-]?\d*\.\d+([eE][-+]?\d+)?f?z[+-]?\d+\.\d*([eE][-+]?\d+)?f?r#r$r%"string)?r asm_fragmentrArGcbufferr2r column_majorcompilecompile_fragmentr'rBr rKrCrIexportrrDfxgroupgloballycoherent groupsharedrHr,rr5rlinelineadjlinearrnointerpolationr1NULLr- packoffsetpass pixelfragmentpointr;rLregister row_majorr3samplerr+ stateblockstateblock_staterrMrFtbuffer technique technique10 technique11texturertriangle triangleadjr(vertexfragmentr=rErNrOrR)autocatchchar const_castdelete dynamic_castrexplicitfriendrrmutablenewoperatorprivate protectedrreinterpret_castrsignedr static_castrrthrowtrytypenamerrrvirtual)6dwordmatrixsnormrunormrrUvector BlendStateBufferByteAddressBuffer ComputeShaderDepthStencilStateDepthStencilView DomainShaderGeometryShader HullShader InputPatch LineStream OutputPatch PixelShader PointStreamRasterizerStateRenderTargetViewRasterizerOrderedBuffer"RasterizerOrderedByteAddressBuffer!RasterizerOrderedStructuredBufferRasterizerOrderedTexture1DRasterizerOrderedTexture1DArrayRasterizerOrderedTexture2DRasterizerOrderedTexture2DArrayRasterizerOrderedTexture3DRWBufferRWByteAddressBufferRWStructuredBuffer RWTexture1DRWTexture1DArray RWTexture2DRWTexture2DArray RWTexture3D SamplerStateSamplerComparisonStateStructuredBuffer Texture1DTexture1DArray Texture2DTexture2DArray Texture2DMSTexture2DMSArray Texture3D TextureCubeTextureCubeArrayTriangleStream VertexShader) rgr[rWr_r min16float min10floatmin16intmin12int min16uintrcz([1-4](x[1-4])?)?\b)abortabsacosallAllMemoryBarrierAllMemoryBarrierWithGroupSyncanyAppendStructuredBufferasdoubleasfloatasinasintasuintratanatan2ceilCheckAccessFullyMappedclampclip CompileShaderConsumeStructuredBuffercoscosh countbitscrossD3DCOLORtoUBYTE4ddx ddx_coarseddx_fineddy ddy_coarseddy_finedegrees determinantDeviceMemoryBarrier DeviceMemoryBarrierWithGroupSyncdistancedotdsterrorfEvaluateAttributeAtCentroidEvaluateAttributeAtSampleEvaluateAttributeSnappedexpexp2f16tof32f32tof16 faceforward firstbithigh firstbitlowfloorfmafmodfracfrexpfwidthGetRenderTargetSampleCountGetRenderTargetSamplePositionGlobalOrderedCountIncrementGroupMemoryBarrierGroupMemoryBarrierWithGroupSyncInterlockedAddInterlockedAndInterlockedCompareExchangeInterlockedCompareStoreInterlockedExchangeInterlockedMaxInterlockedMin InterlockedOrInterlockedXorisfiniteisinfisnanldexplengthlerplitloglog10log2madmaxminmodfmsad4mulnoise normalizepowprintfProcess2DQuadTessFactorsAvgProcess2DQuadTessFactorsMaxProcess2DQuadTessFactorsMinProcessIsolineTessFactorsProcessQuadTessFactorsAvgProcessQuadTessFactorsMaxProcessQuadTessFactorsMinProcessTriTessFactorsAvgProcessTriTessFactorsMaxProcessTriTessFactorsMinQuadReadLaneAt QuadSwapX QuadSwapYradiansrcpreflectrefract reversebitsroundrsqrtsaturatesignsinsincossinh smoothstepsqrtsteptantanhtex1Dr tex1Dbias tex1Dgradtex1Dlod tex1Dprojtex2Dr tex2Dbias tex2Dgradtex2Dlod tex2Dprojtex3Dr tex3Dbias tex3Dgradtex3Dlod tex3DprojtexCUBEr texCUBEbias texCUBEgrad texCUBElod texCUBEproj transposetrunc WaveAllBitAnd WaveAllMax WaveAllMin WaveAllBitOr WaveAllBitXor WaveAllEqualWaveAllProduct WaveAllSum WaveAllTrue WaveAnyTrue WaveBallotWaveGetLaneCountWaveGetLaneIndexWaveGetOrderedIndexWaveIsHelperLaneWaveOnceWavePrefixProduct WavePrefixSumWaveReadFirstLaneWaveReadLaneAt)SV_ClipDistanceSV_ClipDistance0SV_ClipDistance1SV_CulldistanceSV_CullDistance0SV_CullDistance1 SV_CoverageSV_DepthSV_DepthGreaterEqualSV_DepthLessEqualSV_DispatchThreadIDSV_DomainLocation SV_GroupID SV_GroupIndexSV_GroupThreadIDSV_GSInstanceIDSV_InnerCoverageSV_InsideTessFactor SV_InstanceIDSV_IsFrontFaceSV_OutputControlPointID SV_PositionSV_PrimitiveIDSV_RenderTargetArrayIndexSV_SampleIndex SV_StencilRef SV_TessFactor SV_VertexIDSV_ViewportArrayIndexz\bSV_Target[0-7]?\b)allow_uav_conditionbranchcalldomainearlydepthstencilfastoptflatten forcecaseinstanceloop maxtessfactor numthreadsoutputcontrolpointsoutputtopology partitioningpatchconstantfuncunrollrz\\$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\\)rrN)rrrrrrrrr rrrr rrrrrrrrr rrrrr DecoratorrEscaperrrr rrsF DhG9%II  1 w~~ & .0A0A B @   h  X & { + . = . = !6:: .  $ V^^ , 68 $  ?U , #E% @     6 U ,   R"U#,$\\% &:%;=\\   '"PUQ(,R\\S) T )U ,^^ $T^^ 4 . U , ^^  d # W__ % Z CB H66 "<=C]] L 6 " f  FO  ILFrrc\eZdZdZdZdZddgZddgZdgZd Z d e zZ d e zZ e d e Z d e jfde jfde j fde j"fdedfdefde zej*fde zej,fde zej.fde zej0fde zej4fe ej6fde zej:fde zej<fede ej@fde!fgdefdejDd fded!fd"ed#fgd$ejDd#fe#d#gd%Z$y&)'rz@ Lexer for PostScript files. .. versionadded:: 1.4 PostScriptz(https://en.wikipedia.org/wiki/PostScript postscriptpostscrz*.psz*.epszapplication/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{addaloadarcarcnarrayrbeginbindceilingcharpathr closepathconcat concatmatrixcopyrcurrentlinewidth currentmatrix currentpointcurvetocvicvsdef defaultmatrixdictdictstackoverflowdiv dtransformdupendexchexecexitrfillfindfontrget getintervalgrestoregsavegt identmatrixidiv idtransformindex invertmatrix itransformrlinetolnloadrrBrCmodmovetornegnewpath pathforallpathbboxpopprintpstackputquitrand rangecheckrcurvetorepeatrestorerlinetormovetorollrotaterrunsavescale scalefontsetdashsetfontsetgray setlinecap setlinejoin setlinewidth setmatrix setrgbcolorshfillshowshowpagerrstack stringwidthstroke strokepathsub syntaxerror transform translatetruncate typecheck undefinedundefinedfilenameundefinedresultrQrz[^()\\]+rMescape#push\)rJz[0-8]{3}|n|r|t|b|f|\\|\(|\))rrUrN)%rrrrrurlrrr delimiter delimiter_endvalid_name_chars valid_namer rSpecialrrrrrrrrrrVariableFunctionr rrrrrrOr rrrr rr1s D 4CY'G!I)*I!I)+M)+-}=J  ( w ' g// 0 gnn %FO , K ( . ;!./06  < O$ll ,  . ?z !4== 1 '} ,g.>.> ?G%.. 08$AN%O&\\' *Z w< ~& ! FMM8 , FG $ FF #  ,V]]F C FO MJFrrceZdZdZdZdZddgZdgZdgZdZ d e fd e fd e e e fd e fd e fgdefdedfdej fdej fdej"fdej$fdej&fdefdefde eeee fdefdej2fdej2fdej6fdefgedde zd ze eeej:eeeeed!fde zd"ze eeej:eeeeefed#geded$d%efd&ed'fgeded$d&efd(ed)fd*ed'fgded'fd+ej>fd efd,efd-efd.efd/efgd0Z d1Z!y2)3rz? For Asymptote source code. .. versionadded:: 1.2 Asymptotezhttp://asymptote.sf.net/ asymptoteasyz*.asyztext/x-asymptotez(?:\s|//.*?\n|/\*.*?\*/)+\nr(\\)(\n)z//(\n|(.|\n)*?[^\\]\n)z/(\\\n)?\*(.|\n)*?\*(\\\n)?/"(\\\\|\\[^\\]|[^"\\])*"'rz%(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?z(\d+\.\d*|\.\d+|\d+[fF])[fF]?z0x[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[{}];rJz\{rz\}z0\\([\\abfnrtv"\'?]|x[a-fA-F0-9]{2,4}|[0-7]{1,3}) [^\\'\n]+rLz\\nrM)rrrrrrc#Kddlm}m}tj||D]F\}}}|t ur||vrt j }n|t ur||vrt j}|||fHyw)Nr) ASYFUNCNAME ASYVARNAME)pygments.lexers._asy_builtinsrrrget_tokens_unprocessedrrr)selftextrrr~tokenvalues r rz%AsymptoteLexer.get_tokens_unprocessedsgI11$= & E5%}+!5 $5J#6 % %  &sA)A+N)"rrrrrrrrr_wsrrr r rrrrrrr rr rrrrLabelrrr rOrrrrr rrs D $CE"G I#$I 'CJ  Z (44 5 & 0 ,g 6  )& 1 68 $ 5v|| D -v|| < #VZZ 0 fjj ) &.. ) !8 , K ( (7E$K"F GIKR S ,.5\\ ;68?|| E#DJJ / d #O( T L !##eDk4==%+uT{!#   ""eDk4==%+uT{!#  $ K # ( L ! L ! [ ! +v &   L ! L ! +  K ) K (  66 " @&-- P FO 6 " f  V  FO cZFx&rrcjddjfdttdDS)N$|c3@K|]}ddz|zdzyw)NrNr).0idposwords r  z_shortened..s39$K$tAva.0589s)findjoinrangelen)rrs`@r  _shortenedrs; 99S>D 889"3t9dB79 99rc@djtt|S)Nr)rmapr)rs r _shortened_manyr s 88C E* ++rc&eZdZdZdZdZdgZddgZdgZe de d e d fe d d e d fe de dfde e eedfde fe de dfe ddde dfe de dfe de dfe dde dfe d d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0e d1fe d*d+d,d-d.d2e d3fd4e ej"eed1fd5e ej(eeeeeed1fd6ej*fd7e fgd8efd9efd:efed;gdefge dd7ed;fd?ed;fgd@ed;fdAej2fdBefd9efd:efd?ed;fgdCefdDed;fdEefd9efd:efd?ed;fge d3d@edFfdDedGfdHej6fdIej6fdJej8fdKefdLefdMej:fdNe ej(eefdOefd6ej*fdPe eefg e de dQej<d;fgdRe d;fe dSej<fe d1gdTe fe d3gdUej<fe dgdVed;fe d1gdWej<fe dXej<fe d1ge dYdZd[d\d]d^d_d`dadbdcdd ej<fe d1ge dedfdgdhej<fe d1gdiZyj)krzC For Gnuplot plotting scripts. .. versionadded:: 0.11 Gnuplotzhttp://gnuplot.info/gnuplotz*.plotz*.pltztext/x-gnuplotrzbi$ndr\zex$itzq$uitrzf$itfitz (if)(\s*)(\()rHzelse\bzpa$usepausep$lotzrep$lotzsp$lotplotzsa$verzse$t) genericargs optionargzsh$owzuns$et)noargsrzlow$erzra$isezca$llzcd$zcl$earzh$elpz\?$zhi$storyzl$oadpr$intzpwd$zre$readzres$etz scr$eendumpzshe$llzsy$stemzup$daterztest$rz([a-zA-Z_]\w*)(\s*)(=)z(([a-zA-Z_]\w*)(\s*)(\()(.*?)(\))(\s*)(=)z @[a-zA-Z_]\w*rz[^\\\n]+rLrMrJ#commentz [ \t\v\f]+rr z/\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})rKz''rrdqstringsqstringz (\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+z(\d+\.\d*|\.\d+)z-?\d+z[,.~!%^&*+=|?:<>/-]z [{}()\[\]]z (eq|ne)\bz([a-zA-Z_]\w*)(\s*)(\()rr)za$llzan$gleszar$rowz au$toscalezb$arszbor$derz box$widthzcl$abelzc$lipz cn$trparamzco$ntourzda$taz data$filezdg$rid3dzdu$mmyz enc$odingz dec$imalsignzfit$z font$pathzfo$rmatz fu$nctionz fu$nctionszg$ridz hid$den3dz his$torysizez is$osampleszk$eyz keyt$itlezla$belz li$nestylezls$z loa$dpathzloc$alez log$scalezmac$roszmap$pingz map$ping3dzmar$ginzlmar$ginzrmar$ginztmar$ginzbmar$ginzmo$usez multi$plotzmxt$icsz nomxt$icszmx2t$icsz nomx2t$icszmyt$icsz nomyt$icszmy2t$icsz nomy2t$icszmzt$icsz nomzt$icszmcbt$icsz nomcbt$icszof$fsetszor$iginzo$utputz pa$rametriczpm$3dzpal$ettez colorb$oxrz poi$ntsizezpol$arrzobj$ectzsa$mpleszsi$zezst$ylezsu$rfaceztable$ t$erminalz termo$ptionszti$csz ticsc$alez ticsl$evelztimef$mtz tim$estampztit$le v$ariableszve$rsionzvi$ewzxyp$lanezxda$tazx2da$tazyda$tazy2da$tazzda$tazcbda$tazxl$abelzx2l$abelzyl$abelzy2l$abelzzl$abelzcbl$abelzxti$csznoxti$cszx2ti$csz nox2ti$cszyti$csznoyti$cszy2ti$csz noy2ti$cszzti$csznozti$cszcbti$csz nocbti$cszxdti$csz noxdti$cszx2dti$csz nox2dti$cszydti$csz noydti$cszy2dti$csz noy2dti$cszzdti$csz nozdti$cszcbdti$csz nocbdti$cszxmti$csz noxmti$cszx2mti$csz nox2mti$cszymti$csz noymti$cszy2mti$csz noy2mti$cszzmti$csz nozmti$cszcbmti$csz nocbmti$cszxr$angezx2r$angezyr$angezy2r$angezzr$angezcbr$angezrr$angeztr$angezur$angezvr$angez xzeroa$xisz x2zeroa$xisz yzeroa$xisz y2zeroa$xisz zzeroa$xisz zeroa$xiszz$ero!z all$windowsz gnuplot\bzvia\brz%(mouse|any|button1|button2|button3)\bz key$presszax$eszaxi$szbin$aryzev$eryzi$ndexzmat$rixzs$moothzthru$zt$itleznot$itlezu$singzw$ithz f$unctionszs$etrr)rrrrrrrrr\rrrHrrrN) rrrrrrrrrrrr rrr rrrrr rrr r rrOrrrWordrrrrr rrsA D CkG7#I!"I L !  '6 2 Wg . @  % 0 x{CT J   !7G 4 Wi :GV L  '6 2  *F G Wh / - / Xx%$fj'8#Y-%y)=m  % VY-%w0 h ' dmmZ :M K 8 dmmZKX?@M Ot}} - 7O7 <' " g  G  FO  '9 % J ' L ! ; ' J '  66 " ? O 6 " f  FO J '  FO 66 " 6 " f  FO J '   H  6: & 6: & 0&,, ? &,, / v~~ & "H - K ( 8== ) ' dmmT; 7 9 d # t}} - (44 5 " L ! 486:\\69 K B'6 "  & 5 M " 7 # H  t|| $ FO K ( M " 6t|| D  $dll 3 M " Wgy(H& 7H'7<\\  M "  \6; M \\  M " YQFrrcveZdZdZdZdZdgZddgZdgZdd e jfd e jfd e jfed d de jfedddefeddej$fdej$j&fdefdej*fdej,fdefdefde fdefgiZdZy)rzP For Persistence of Vision Raytracer files. .. versionadded:: 0.11 POVRayzhttp://www.povray.org/povz*.povz*.incz text/x-povrayrz/\*[\w\W]*?\*/rz(?s)"(?:\\.|[^"\\])+")rArGdebugdeclarer definerIelseifrperrorfclosefopenrDrHifdefifndefrlocalmacrorreadrender statisticsrFundefversionwarningrEwriterrNrO(9aa_level aa_thresholdr{r|acoshadaptive adc_bailoutagate agate_turbr}alphaambient ambient_lightangleaperture arc_angle area_lightascrasinh assumed_gammarratanh atmosphereatmospheric_attenuation attenuatingaverage background black_holeblue blur_samples bounded_by box_mappingbozorAbrick brick_size brightness brilliancebumpsbumpy1bumpy2bumpy3bump_map bump_sizerGcausticsrcheckerchr clipped_byclockcolor color_mapcolour colour_map component compositer` confidence conic_sweepconstantcontrol0control1rrcountcracklecrandcube cubic_splinecylindrical_mappingrrr rdentsdiffuse directionrdistance_maximumrmdust dust_type eccentricityrIemittingrpr error_boundrexponent fade_distance fade_powerfalloff falloff_anglerT file_existsrfinishfisheyeflatnessflipr focal_pointfogfog_alt fog_offsetfog_type frequencygifglobal_settingsglowinggradientgranitegray_thresholdgreenhalohexagon hf_gray_16 hierarchyhollow hypercomplexrHr iff image_map incidencerr_ interpolateinverseioriridirid_wavelengthjitterlambdaleopardr linear_spline linear_sweeplocationr looks_likelook_atlow_error_factormandelmap_typemarble material_maprCrmax_intersections max_iterationmax_trace_level max_valuemetallicr minimum_reusermortar nearest_countnonormal normal_map no_shadownumber_of_wavesoctavesoffoffsetomegaomnimaxononceonionopen orthographic panoramicpattern1pattern2pattern3 perspectivepgmphasephong phong_sizepipigment pigment_mapplanar_mappingpngpoint_atpotrppmr9pwrquadratic_spline quaternion quick_color quick_colourquiltedradialr radiosityradiusrainbow ramp_waverr reciprocalrecursion_limitred reflection refractionrrrgbrgbfrgbftrgbtrightripplesr roughnesssamplesr scallop_wave scatteringseed shadowlessr sine_waversky sky_sphereslice slope_mapr0specularspherical_mappingspiralspiral1spiral2 spotlightspottedsqrrrstrstrcmpstrengthstrlenstrlwrstruprsturmsubstrrFsystrr test_camera_1 test_camera_2 test_camera_3 test_camera_4r* texture_maptga thickness threshold tightnesstile2tilestrackrrtransmit triangle_waverSttf turbulence turb_depthtypeultra_wide_angleup use_color use_colour use_indexu_stepsvalvariance vaxis_rotatevcrossvdotrvlength vnormalize volume_objectvolume_renderedvol_with_lightvrotatev_stepsrwarp water_levelwavesrEwidthwoodwrinklesyes) bicubic_patchblobboxcameraconecubiccylinder differencedisc height_field intersection julia_fractallathe light_sourcemergemeshobjectplanepolypolygonprismquadricquarticsmooth_trianglesorspheresuperellipsoidrtorusr+rrz\b(x|y|z|u|v)\brz[0-9]*\.[0-9]+z[0-9]+z[\[\](){}<>;,]z[-+*/=.|&]|<=|>=|!=rrcRd}d|vr|dz }d|vr|dz }d|vr|dz }d|vr|dz }|S)atPOVRAY 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.rz#versiong?z#declarerrg?r)rresults r  analyse_textzPovrayLexer.analyse_text sR   dNF   dNF t  dNF T ! cMF rN)rrrrrrrrrr rrrDoublerrr rrPseudorrrrr rrr0rrr rrs, D "CgG'"I !I   1 1 2 w~~ & %v}} 5  "&e 5 __  0+`49a0Hbc1 d6 ?D E \\   !4!4 5 d #  -  '  , #X . (& 1 Z WL NF`rrN)rpygments.lexerrrrrrrr pygments.tokenr r r r rrrrr__all__rrrrrrrrrrr r6s,,, -@J@FWjWt\j\~s&Zs&l9 ,^:^Bm*mr