Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/python/pygments/pygments/lexers/   (Fast Lexical Analyzer Version 2.6©)  Datei vom 10.2.2025 mit Größe 38 kB image not shown  

Quelle  graphics.py

  Sprache: Python
 

"""
    pygments.lexers.graphics
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for computer graphics and plotting related languages.

    :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
"""

from pygments.lexer import RegexLexer, words, include, bygroups, using, \
    this, default
from pygments.token import Text, Comment, Operator, Keyword, Name, \
    Number, Punctuation, String, Whitespace

__all__ = ['GLShaderLexer''PostScriptLexer''AsymptoteLexer''GnuplotLexer',
           'PovrayLexer''HLSLShaderLexer']


class GLShaderLexer(RegexLexer):
    """
    GLSL (OpenGL Shader) lexer.
    """
    name = 'GLSL'
    aliases = ['glsl']
    filenames = ['*.vert''*.frag''*.geo']
    mimetypes = ['text/x-glslsrc']
    url = 'https://www.khronos.org/api/opengl'
    version_added = '1.1'

    tokens = {
        'root': [
            (r'#(?:.*\\\n)*.*$', Comment.Preproc),
            (r'//.*$', Comment.Single),
            (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
            (r'\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?',
             Operator),
            (r'[?:]', Operator),  # quick hack for ternary
            (r'\bdefined\b', Operator),
            (r'[;{}(),\[\]]', Punctuation),
            # FIXME when e is present, no decimal point needed
            (r'[+-]?\d*\.\d+([eE][-+]?\d+)?', Number.Float),
            (r'[+-]?\d+\.\d*([eE][-+]?\d+)?', Number.Float),
            (r'0[xX][0-9a-fA-F]*', Number.Hex),
            (r'0[0-7]*', Number.Oct),
            (r'[1-9][0-9]*', Number.Integer),
            (words((
                # Storage qualifiers
                'attribute''const''uniform''varying',
                'buffer''shared''in''out',
                # Layout qualifiers
                'layout',
                # Interpolation qualifiers
                'flat''smooth''noperspective',
                # Auxiliary qualifiers
                'centroid''sample''patch',
                # Parameter qualifiers. Some double as Storage qualifiers
                'inout',
                # Precision qualifiers
                'lowp''mediump''highp''precision',
                # Invariance qualifiers
                'invariant',
                # Precise qualifiers
                'precise',
                # Memory qualifiers
                'coherent''volatile''restrict''readonly''writeonly',
                # Statements
                'break''continue''do''for''while''switch',
                'case''default''if''else''subroutine',
                'discard''return''struct'),
                prefix=r'\b', suffix=r'\b'),
             Keyword),
            (words((
                # Boolean values
                'true''false'),
                prefix=r'\b', suffix=r'\b'),
             Keyword.Constant),
            (words((
                # Miscellaneous types
                'void''atomic_uint',
                # Floating-point scalars and vectors
                'float''vec2''vec3''vec4',
                'double''dvec2''dvec3''dvec4',
                # Integer scalars and vectors
                'int''ivec2''ivec3''ivec4',
                'uint''uvec2''uvec3''uvec4',
                # Boolean scalars and vectors
                'bool''bvec2''bvec3''bvec4',
                # Matrices
                'mat2''mat3''mat4''dmat2''dmat3''dmat4',
                'mat2x2''mat2x3''mat2x4''dmat2x2''dmat2x3''dmat2x4',
                'mat3x2''mat3x3''mat3x4''dmat3x2''dmat3x3',
                'dmat3x4''mat4x2''mat4x3''mat4x4''dmat4x2''dmat4x3''dmat4x4',
                # Floating-point samplers
                'sampler1D''sampler2D''sampler3D''samplerCube',
                'sampler1DArray''sampler2DArray''samplerCubeArray',
                'sampler2DRect''samplerBuffer',
                'sampler2DMS''sampler2DMSArray',
                # Shadow samplers
                'sampler1DShadow''sampler2DShadow''samplerCubeShadow',
                'sampler1DArrayShadow''sampler2DArrayShadow',
                'samplerCubeArrayShadow''sampler2DRectShadow',
                # Signed integer samplers
                'isampler1D''isampler2D''isampler3D''isamplerCube',
                'isampler1DArray''isampler2DArray''isamplerCubeArray',
                'isampler2DRect''isamplerBuffer',
                'isampler2DMS''isampler2DMSArray',
                # Unsigned integer samplers
                'usampler1D''usampler2D''usampler3D''usamplerCube',
                'usampler1DArray''usampler2DArray''usamplerCubeArray',
                'usampler2DRect''usamplerBuffer',
                'usampler2DMS''usampler2DMSArray',
                # Floating-point image types
                'image1D''image2D''image3D''imageCube',
                'image1DArray''image2DArray''imageCubeArray',
                'image2DRect''imageBuffer',
                'image2DMS''image2DMSArray',
                # Signed integer image types
                'iimage1D''iimage2D''iimage3D''iimageCube',
                'iimage1DArray''iimage2DArray''iimageCubeArray',
                'iimage2DRect''iimageBuffer',
                'iimage2DMS''iimage2DMSArray',
                # Unsigned integer image types
                'uimage1D''uimage2D''uimage3D''uimageCube',
                'uimage1DArray''uimage2DArray''uimageCubeArray',
                'uimage2DRect''uimageBuffer',
                'uimage2DMS''uimage2DMSArray'),
                prefix=r'\b', suffix=r'\b'),
             Keyword.Type),
            (words((
                # Reserved for future use.
                'common''partition''active''asm''class',
                'union''enum''typedef''template''this',
                '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',
                'namespace''using'),
                prefix=r'\b', suffix=r'\b'),
             Keyword.Reserved),
            # All names beginning with "gl_" are reserved.
            (r'gl_\w*', Name.Builtin),
            (r'[a-zA-Z_]\w*', Name),
            (r'\.', Punctuation),
            (r'\s+', Whitespace),
        ],
    }


class HLSLShaderLexer(RegexLexer):
    """
    HLSL (Microsoft Direct3D Shader) lexer.
    """
    name = 'HLSL'
    aliases = ['hlsl']
    filenames = ['*.hlsl''*.hlsli']
    mimetypes = ['text/x-hlsl']
    url = 'https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl'
    version_added = '2.3'

    tokens = {
        'root': [
            (r'#(?:.*\\\n)*.*$', Comment.Preproc),
            (r'//.*$', Comment.Single),
            (r'/(\\\n)?[*](.|\n)*?[*](\\\n)?/', Comment.Multiline),
            (r'\+|-|~|!=?|\*|/|%|<<|>>|<=?|>=?|==?|&&?|\^|\|\|?',
             Operator),
            (r'[?:]', Operator),  # quick hack for ternary
            (r'\bdefined\b', Operator),
            (r'[;{}(),.\[\]]', Punctuation),
            # FIXME when e is present, no decimal point needed
            (r'[+-]?\d*\.\d+([eE][-+]?\d+)?f?', Number.Float),
            (r'[+-]?\d+\.\d*([eE][-+]?\d+)?f?', Number.Float),
            (r'0[xX][0-9a-fA-F]*', Number.Hex),
            (r'0[0-7]*', Number.Oct),
            (r'[1-9][0-9]*', Number.Integer),
            (r'"', String, 'string'),
            (words((
                'asm','asm_fragment','break','case','cbuffer','centroid','class',
                'column_major','compile','compile_fragment','const','continue',
                'default','discard','do','else','export','extern','for','fxgroup',
                'globallycoherent','groupshared','if','in','inline','inout',
                'interface','line','lineadj','linear','namespace','nointerpolation',
                'noperspective','NULL','out','packoffset','pass','pixelfragment',
                'point','precise','return','register','row_major','sample',
                'sampler','shared','stateblock','stateblock_state','static',
                'struct','switch','tbuffer','technique','technique10',
                'technique11','texture','typedef','triangle','triangleadj',
                'uniform','vertexfragment','volatile','while'),
                prefix=r'\b', suffix=r'\b'),
             Keyword),
            (words(('true','false'), prefix=r'\b', suffix=r'\b'),
             Keyword.Constant),
            (words((
                'auto','catch','char','const_cast','delete','dynamic_cast','enum',
                'explicit','friend','goto','long','mutable','new','operator',
                'private','protected','public','reinterpret_cast','short','signed',
                'sizeof','static_cast','template','this','throw','try','typename',
                'union','unsigned','using','virtual'),
                prefix=r'\b', suffix=r'\b'),
             Keyword.Reserved),
            (words((
                'dword','matrix','snorm','string','unorm','unsigned','void','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'),
                prefix=r'\b', suffix=r'\b'),
             Keyword.Type),
            (words((
                'bool','double','float','int','half','min16float','min10float',
                'min16int','min12int','min16uint','uint'),
                prefix=r'\b', suffix=r'([1-4](x[1-4])?)?\b'),
             Keyword.Type),     # vector and matrix types
            (words((
                'abort','abs','acos','all','AllMemoryBarrier',
                'AllMemoryBarrierWithGroupSync','any','AppendStructuredBuffer',
                'asdouble','asfloat','asin','asint','asuint','asuint','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','tex1D','tex1D','tex1Dbias','tex1Dgrad','tex1Dlod',
                'tex1Dproj','tex2D','tex2D','tex2Dbias','tex2Dgrad','tex2Dlod',
                'tex2Dproj','tex3D','tex3D','tex3Dbias','tex3Dgrad','tex3Dlod',
                'tex3Dproj','texCUBE','texCUBE','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'),
                prefix=r'\b', suffix=r'\b'),
             Name.Builtin),     # built-in functions
            (words((
                '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_ViewportArrayIndex'),
                prefix=r'\b', suffix=r'\b'),
             Name.Decorator),   # system-value semantics
            (r'\bSV_Target[0-7]?\b', Name.Decorator),
            (words((
                'allow_uav_condition','branch','call','domain','earlydepthstencil',
                'fastopt','flatten','forcecase','instance','loop','maxtessfactor',
                'numthreads','outputcontrolpoints','outputtopology','partitioning',
                'patchconstantfunc','unroll'),
                prefix=r'\b', suffix=r'\b'),
             Name.Decorator),   # attributes
            (r'[a-zA-Z_]\w*', Name),
            (r'\\$', Comment.Preproc),  # backslash at end of line -- usually macro continuation
            (r'\s+', Whitespace),
        ],
        'string': [
            (r'"', String, '#pop'),
            (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|'
             r'u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|[0-7]{1,3})', String.Escape),
            (r'[^\\"\n]+', String),  # all other characters
            (r'\\\n', String),  # line continuation
            (r'\\', String),  # stray backslash
        ],
    }


class PostScriptLexer(RegexLexer):
    """
    Lexer for PostScript files.
    """
    name = 'PostScript'
    url = 'https://en.wikipedia.org/wiki/PostScript'
    aliases = ['postscript''postscr']
    filenames = ['*.ps''*.eps']
    mimetypes = ['application/postscript']
    version_added = '1.4'

    delimiter = r'()<>\[\]{}/%\s'
    delimiter_end = rf'(?=[{delimiter}])'

    valid_name_chars = rf'[^{delimiter}]'
    valid_name = rf"{valid_name_chars}+{delimiter_end}"

    tokens = {
        'root': [
            # All comment types
            (r'^%!.+$', Comment.Preproc),
            (r'%%.*$', Comment.Special),
            (r'(^%.*\n){2,}', Comment.Multiline),
            (r'%.*$', Comment.Single),

            # String literals are awkward; enter separate state.
            (r'\(', String, 'stringliteral'),

            (r'[{}<>\[\]]', Punctuation),

            # Numbers
            (r'<[0-9A-Fa-f]+>' + delimiter_end, Number.Hex),
            # Slight abuse: use Oct to signify any explicit base system
            (r'[0-9]+\#(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)'
             r'((e|E)[0-9]+)?' + delimiter_end, Number.Oct),
            (r'(\-|\+)?([0-9]+\.?|[0-9]*\.[0-9]+|[0-9]+\.[0-9]*)((e|E)[0-9]+)?'
             + delimiter_end, Number.Float),
            (r'(\-|\+)?[0-9]+' + delimiter_end, Number.Integer),

            # References
            (rf'\/{valid_name}', Name.Variable),

            # Names
            (valid_name, Name.Function),      # Anything else is executed

            # These keywords taken from
            # <http://www.math.ubc.ca/~cass/graphics/manual/pdf/a1.pdf>
            # Is there an authoritative list anywhere that doesn't involve
            # trawling documentation?

            (r'(false|true)' + delimiter_end, Keyword.Constant),

            # Conditionals / flow control
            (r'(eq|ne|g[et]|l[et]|and|or|not|if(?:else)?|for(?:all)?)'
             + delimiter_end, Keyword.Reserved),

            (words((
                'abs''add''aload''arc''arcn''array''atan''begin',
                'bind''ceiling''charpath''clip''closepath''concat',
                'concatmatrix''copy''cos''currentlinewidth''currentmatrix',
                'currentpoint''curveto''cvi''cvs''def''defaultmatrix',
                'dict''dictstackoverflow''div''dtransform''dup''end',
                'exch''exec''exit''exp''fill''findfont''floor''get',
                'getinterval''grestore''gsave''gt''identmatrix''idiv',
                'idtransform''index''invertmatrix''itransform''length',
                'lineto''ln''load''log''loop''matrix''mod''moveto',
                'mul''neg''newpath''pathforall''pathbbox''pop''print',
                'pstack''put''quit''rand''rangecheck''rcurveto''repeat',
                'restore''rlineto''rmoveto''roll''rotate''round''run',
                'save''scale''scalefont''setdash''setfont''setgray',
                'setlinecap''setlinejoin''setlinewidth''setmatrix',
                'setrgbcolor''shfill''show''showpage''sin''sqrt',
                'stack''stringwidth''stroke''strokepath''sub''syntaxerror',
                'transform''translate''truncate''typecheck''undefined',
                'undefinedfilename''undefinedresult'), suffix=delimiter_end),
             Name.Builtin),

            (r'\s+', Whitespace),
        ],

        'stringliteral': [
            (r'[^()\\]+', String),
            (r'\\', String.Escape, 'escape'),
            (r'\(', String, '#push'),
            (r'\)', String, '#pop'),
        ],

        'escape': [
            (r'[0-8]{3}|n|r|t|b|f|\\|\(|\)', String.Escape, '#pop'),
            default('#pop'),
        ],
    }


class AsymptoteLexer(RegexLexer):
    """
    For Asymptote source code.
    """
    name = 'Asymptote'
    url = 'http://asymptote.sf.net/'
    aliases = ['asymptote''asy']
    filenames = ['*.asy']
    mimetypes = ['text/x-asymptote']
    version_added = '1.2'

    #: optional Comment or Whitespace
    _ws = r'(?:\s|//.*?\n|/\*.*?\*/)+'

    tokens = {
        'whitespace': [
            (r'\n', Whitespace),
            (r'\s+', Whitespace),
            (r'(\\)(\n)', bygroups(Text, Whitespace)),  # line continuation
            (r'//(\n|(.|\n)*?[^\\]\n)', Comment),
            (r'/(\\\n)?\*(.|\n)*?\*(\\\n)?/', Comment),
        ],
        'statements': [
            # simple string (TeX friendly)
            (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
            # C style string (with character escapes)
            (r"'", String, 'string'),
            (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+[lL]?', Number.Float),
            (r'(\d+\.\d*|\.\d+|\d+[fF])[fF]?', Number.Float),
            (r'0x[0-9a-fA-F]+[Ll]?', Number.Hex),
            (r'0[0-7]+[Ll]?', Number.Oct),
            (r'\d+[Ll]?', Number.Integer),
            (r'[~!%^&*+=|?:<>/-]', Operator),
            (r'[()\[\],.]', Punctuation),
            (r'\b(case)(.+?)(:)', bygroups(Keyword, using(this), Text)),
            (r'(and|controls|tension|atleast|curl|if|else|while|for|do|'
             r'return|break|continue|struct|typedef|new|access|import|'
             r'unravel|from|include|quote|static|public|private|restricted|'
             r'this|explicit|true|false|null|cycle|newframe|operator)\b', Keyword),
            # Since an asy-type-name can be also an asy-function-name,
            # in the following we test if the string "  [a-zA-Z]" follows
            # the Keyword.Type.
            # Of course it is not perfect !
            (r'(Braid|FitResult|Label|Legend|TreeNode|abscissa|arc|arrowhead|'
             r'binarytree|binarytreeNode|block|bool|bool3|bounds|bqe|circle|'
             r'conic|coord|coordsys|cputime|ellipse|file|filltype|frame|grid3|'
             r'guide|horner|hsv|hyperbola|indexedTransform|int|inversion|key|'
             r'light|line|linefit|marginT|marker|mass|object|pair|parabola|path|'
             r'path3|pen|picture|point|position|projection|real|revolution|'
             r'scaleT|scientific|segment|side|slice|splitface|string|surface|'
             r'tensionSpecifier|ticklocate|ticksgridT|tickvalues|transform|'
             r'transformation|tree|triangle|trilinear|triple|vector|'
             r'vertex|void)(?=\s+[a-zA-Z])', Keyword.Type),
            # Now the asy-type-name which are not asy-function-name
            # except yours !
            # Perhaps useless
            (r'(Braid|FitResult|TreeNode|abscissa|arrowhead|block|bool|bool3|'
             r'bounds|coord|frame|guide|horner|int|linefit|marginT|pair|pen|'
             r'picture|position|real|revolution|slice|splitface|ticksgridT|'
             r'tickvalues|tree|triple|vertex|void)\b', Keyword.Type),
            (r'[a-zA-Z_]\w*:(?!:)', Name.Label),
            (r'[a-zA-Z_]\w*', Name),
        ],
        'root': [
            include('whitespace'),
            # functions
            (r'((?:[\w*\s])+?(?:\s|\*))'  # return arguments
             r'([a-zA-Z_]\w*)'            # method name
             r'(\s*\([^;]*?\))'           # signature
             r'(' + _ws + r')(\{)',
             bygroups(using(this), Name.Function, using(this), using(this),
                      Punctuation),
             'function'),
            # function declarations
            (r'((?:[\w*\s])+?(?:\s|\*))'  # return arguments
             r'([a-zA-Z_]\w*)'            # method name
             r'(\s*\([^;]*?\))'           # signature
             r'(' + _ws + r')(;)',
             bygroups(using(this), Name.Function, using(this), using(this),
                      Punctuation)),
            default('statement'),
        ],
        'statement': [
            include('whitespace'),
            include('statements'),
            ('[{}]', Punctuation),
            (';', Punctuation, '#pop'),
        ],
        'function': [
            include('whitespace'),
            include('statements'),
            (';', Punctuation),
            (r'\{', Punctuation, '#push'),
            (r'\}', Punctuation, '#pop'),
        ],
        'string': [
            (r"'", String, '#pop'),
            (r'\\([\\abfnrtv"\'?]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
            (r'\n', String),
            (r"[^\\'\n]+", String),  # all other characters
            (r'\\\n', String),
            (r'\\n', String),        # line continuation
            (r'\\', String),         # stray backslash
        ],
    }

    def get_tokens_unprocessed(self, text):
        from pygments.lexers._asy_builtins import ASYFUNCNAME, ASYVARNAME
        for index, token, value in \
                RegexLexer.get_tokens_unprocessed(self, text):
            if token is Name and value in ASYFUNCNAME:
                token = Name.Function
            elif token is Name and value in ASYVARNAME:
                token = Name.Variable
            yield index, token, value


def _shortened(word):
    dpos = word.find('$')
    return '|'.join(word[:dpos] + word[dpos+1:i] + r'\b'
                    for i in range(len(word), dpos, -1))


def _shortened_many(*words):
    return '|'.join(map(_shortened, words))


class GnuplotLexer(RegexLexer):
    """
    For Gnuplot plotting scripts.
    """

    name = 'Gnuplot'
    url = 'http://gnuplot.info/'
    aliases = ['gnuplot']
    filenames = ['*.plot''*.plt']
    mimetypes = ['text/x-gnuplot']
    version_added = '0.11'

    tokens = {
        'root': [
            include('whitespace'),
            (_shortened('bi$nd'), Keyword, 'bind'),
            (_shortened_many('ex$it''q$uit'), Keyword, 'quit'),
            (_shortened('f$it'), Keyword, 'fit'),
            (r'(if)(\s*)(\()', bygroups(Keyword, Text, Punctuation), 'if'),
            (r'else\b', Keyword),
            (_shortened('pa$use'), Keyword, 'pause'),
            (_shortened_many('p$lot''rep$lot''sp$lot'), Keyword, 'plot'),
            (_shortened('sa$ve'), Keyword, 'save'),
            (_shortened('se$t'), Keyword, ('genericargs''optionarg')),
            (_shortened_many('sh$ow''uns$et'),
             Keyword, ('noargs''optionarg')),
            (_shortened_many('low$er''ra$ise''ca$ll''cd$''cl$ear',
                             'h$elp''\\?$''hi$story''l$oad''pr$int',
                             'pwd$''re$read''res$et''scr$eendump',
                             'she$ll''sy$stem''up$date'),
             Keyword, 'genericargs'),
            (_shortened_many('pwd$''re$read''res$et''scr$eendump',
                             'she$ll''test$'),
             Keyword, 'noargs'),
            (r'([a-zA-Z_]\w*)(\s*)(=)',
             bygroups(Name.Variable, Whitespace, Operator), 'genericargs'),
            (r'([a-zA-Z_]\w*)(\s*)(\()(.*?)(\))(\s*)(=)',
             bygroups(Name.Function, Whitespace, Punctuation,
                      Text, Punctuation, Whitespace, Operator), 'genericargs'),
            (r'@[a-zA-Z_]\w*', Name.Constant),  # macros
            (r';', Keyword),
        ],
        'comment': [
            (r'[^\\\n]+', Comment),
            (r'\\\n', Comment),
            (r'\\', Comment),
            # don't add the newline to the Comment token
            default('#pop'),
        ],
        'whitespace': [
            ('#', Comment, 'comment'),
            (r'[ \t\v\f]+', Whitespace),
        ],
        'noargs': [
            include('whitespace'),
            # semicolon and newline end the argument list
            (r';', Punctuation, '#pop'),
            (r'\n', Whitespace, '#pop'),
        ],
        'dqstring': [
            (r'"', String, '#pop'),
            (r'\\([\\abfnrtv"\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})', String.Escape),
            (r'[^\\"\n]+', String),   # all other characters
            (r'\\\n', String),        # line continuation
            (r'\\', String),          # stray backslash
            (r'\n', Whitespace, '#pop'),  # newline ends the string too
        ],
        'sqstring': [
            (r"''", String),          # escaped single quote
            (r"'", String, '#pop'),
            (r"[^\\'\n]+", String),   # all other characters
            (r'\\\n', String),        # line continuation
            (r'\\', String),          # normal backslash
            (r'\n', Whitespace, '#pop'),  # newline ends the string too
        ],
        'genericargs': [
            include('noargs'),
            (r'"', String, 'dqstring'),
            (r"'", String, 'sqstring'),
            (r'(\d+\.\d*|\.\d+|\d+)[eE][+-]?\d+', Number.Float),
            (r'(\d+\.\d*|\.\d+)', Number.Float),
            (r'-?\d+', Number.Integer),
            ('[,.~!%^&*+=|?:<>/-]', Operator),
            (r'[{}()\[\]]', Punctuation),
            (r'(eq|ne)\b', Operator.Word),
            (r'([a-zA-Z_]\w*)(\s*)(\()',
             bygroups(Name.Function, Text, Punctuation)),
            (r'[a-zA-Z_]\w*', Name),
            (r'@[a-zA-Z_]\w*', Name.Constant),  # macros
            (r'(\\)(\n)', bygroups(Text, Whitespace)),
        ],
        'optionarg': [
            include('whitespace'),
            (_shortened_many(
                "a$ll""an$gles""ar$row""au$toscale""b$ars""bor$der",
                "box$width""cl$abel""c$lip""cn$trparam""co$ntour""da$ta",
                "data$file""dg$rid3d""du$mmy""enc$oding""dec$imalsign",
                "fit$""font$path""fo$rmat""fu$nction""fu$nctions""g$rid",
                "hid$den3d""his$torysize""is$osamples""k$ey""keyt$itle",
                "la$bel""li$nestyle""ls$""loa$dpath""loc$ale""log$scale",
                "mac$ros""map$ping""map$ping3d""mar$gin""lmar$gin",
                "rmar$gin""tmar$gin""bmar$gin""mo$use""multi$plot",
                "mxt$ics""nomxt$ics""mx2t$ics""nomx2t$ics""myt$ics",
                "nomyt$ics""my2t$ics""nomy2t$ics""mzt$ics""nomzt$ics",
                "mcbt$ics""nomcbt$ics""of$fsets""or$igin""o$utput",
                "pa$rametric""pm$3d""pal$ette""colorb$ox""p$lot",
                "poi$ntsize""pol$ar""pr$int""obj$ect""sa$mples""si$ze",
                "st$yle""su$rface""table$""t$erminal""termo$ptions""ti$cs",
                "ticsc$ale""ticsl$evel""timef$mt""tim$estamp""tit$le",
                "v$ariables""ve$rsion""vi$ew""xyp$lane""xda$ta""x2da$ta",
                "yda$ta""y2da$ta""zda$ta""cbda$ta""xl$abel""x2l$abel",
                "yl$abel""y2l$abel""zl$abel""cbl$abel""xti$cs""noxti$cs",
                "x2ti$cs""nox2ti$cs""yti$cs""noyti$cs""y2ti$cs""noy2ti$cs",
                "zti$cs""nozti$cs""cbti$cs""nocbti$cs""xdti$cs""noxdti$cs",
                "x2dti$cs""nox2dti$cs""ydti$cs""noydti$cs""y2dti$cs",
                "noy2dti$cs""zdti$cs""nozdti$cs""cbdti$cs""nocbdti$cs",
                "xmti$cs""noxmti$cs""x2mti$cs""nox2mti$cs""ymti$cs",
                "noymti$cs""y2mti$cs""noy2mti$cs""zmti$cs""nozmti$cs",
                "cbmti$cs""nocbmti$cs""xr$ange""x2r$ange""yr$ange",
                "y2r$ange""zr$ange""cbr$ange""rr$ange""tr$ange""ur$ange",
                "vr$ange""xzeroa$xis""x2zeroa$xis""yzeroa$xis""y2zeroa$xis",
                "zzeroa$xis""zeroa$xis""z$ero"), Name.Builtin, '#pop'),
        ],
        'bind': [
            ('!', Keyword, '#pop'),
            (_shortened('all$windows'), Name.Builtin),
            include('genericargs'),
        ],
        'quit': [
            (r'gnuplot\b', Keyword),
            include('noargs'),
        ],
        'fit': [
            (r'via\b', Name.Builtin),
            include('plot'),
        ],
        'if': [
            (r'\)', Punctuation, '#pop'),
            include('genericargs'),
        ],
        'pause': [
            (r'(mouse|any|button1|button2|button3)\b', Name.Builtin),
            (_shortened('key$press'), Name.Builtin),
            include('genericargs'),
        ],
        'plot': [
            (_shortened_many('ax$es''axi$s''bin$ary''ev$ery''i$ndex',
                             'mat$rix''s$mooth''thru$''t$itle',
                             'not$itle''u$sing''w$ith'),
             Name.Builtin),
            include('genericargs'),
        ],
        'save': [
            (_shortened_many('f$unctions''s$et''t$erminal''v$ariables'),
             Name.Builtin),
            include('genericargs'),
        ],
    }


class PovrayLexer(RegexLexer):
    """
    For Persistence of Vision Raytracer files.
    """
    name = 'POVRay'
    url = 'http://www.povray.org/'
    aliases = ['pov']
    filenames = ['*.pov''*.inc']
    mimetypes = ['text/x-povray']
    version_added = '0.11'

    tokens = {
        'root': [
            (r'/\*[\w\W]*?\*/', Comment.Multiline),
            (r'//.*$', Comment.Single),
            (r'(?s)"(?:\\.|[^"\\])+"', String.Double),
            (words((
                'break''case''debug''declare''default''define''else',
                'elseif''end''error''fclose''fopen''for''if''ifdef',
                'ifndef''include''local''macro''range''read''render',
                'statistics''switch''undef''version''warning''while',
                'write'), prefix=r'#', suffix=r'\b'),
             Comment.Preproc),
            (words((
                'aa_level''aa_threshold''abs''acos''acosh''adaptive''adc_bailout',
                'agate''agate_turb''all''alpha''ambient''ambient_light''angle',
                'aperture''arc_angle''area_light''asc''asin''asinh''assumed_gamma',
                'atan''atan2''atanh''atmosphere''atmospheric_attenuation',
                'attenuating''average''background''black_hole''blue''blur_samples',
                'bounded_by''box_mapping''bozo''break''brick''brick_size',
                'brightness''brilliance''bumps''bumpy1''bumpy2''bumpy3''bump_map',
                'bump_size''case''caustics''ceil''checker''chr''clipped_by''clock',
                'color''color_map''colour''colour_map''component''composite''concat',
                'confidence''conic_sweep''constant''control0''control1''cos''cosh',
                'count''crackle''crand''cube''cubic_spline''cylindrical_mapping',
                'debug''declare''default''degrees''dents''diffuse''direction',
                'distance''distance_maximum''div''dust''dust_type''eccentricity',
                'else''emitting''end''error''error_bound''exp''exponent',
                'fade_distance''fade_power''falloff''falloff_angle''false',
                'file_exists''filter''finish''fisheye''flatness''flip''floor',
                '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''hypercomplex',
                'if''ifdef''iff''image_map''incidence''include''int''interpolate',
                'inverse''ior''irid''irid_wavelength''jitter''lambda''leopard',
                'linear''linear_spline''linear_sweep''location''log''looks_like',
                'look_at''low_error_factor''mandel''map_type''marble''material_map',
                'matrix''max''max_intersections''max_iteration''max_trace_level',
                'max_value''metallic''min''minimum_reuse''mod''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''pot''pow''ppm',
                'precision''pwr''quadratic_spline''quaternion''quick_color',
                'quick_colour''quilted''radial''radians''radiosity''radius''rainbow',
                'ramp_wave''rand''range''reciprocal''recursion_limit''red',
                'reflection''refraction''render''repeat''rgb''rgbf''rgbft''rgbt',
                'right''ripples''rotate''roughness''samples''scale''scallop_wave',
                'scattering''seed''shadowless''sin''sine_wave''sinh''sky''sky_sphere',
                'slice''slope_map''smooth''specular''spherical_mapping''spiral',
                'spiral1''spiral2''spotlight''spotted''sqr''sqrt''statistics''str',
                'strcmp''strength''strlen''strlwr''strupr''sturm''substr''switch''sys',
                't''tan''tanh''test_camera_1''test_camera_2''test_camera_3',
                'test_camera_4''texture''texture_map''tga''thickness''threshold',
                'tightness''tile2''tiles''track''transform''translate''transmit',
                'triangle_wave''true''ttf''turbulence''turb_depth''type',
                'ultra_wide_angle''up''use_color''use_colour''use_index''u_steps',
                'val''variance''vaxis_rotate''vcross''vdot''version''vlength',
                'vnormalize''volume_object''volume_rendered''vol_with_light',
                'vrotate''v_steps''warning''warp''water_level''waves''while''width',
                'wood''wrinkles''yes'), prefix=r'\b', suffix=r'\b'),
             Keyword),
            (words((
                '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''superellipsoid',
                'text''torus''triangle''union'), suffix=r'\b'),
             Name.Builtin),
            (r'\b(x|y|z|u|v)\b', Name.Builtin.Pseudo),
            (r'[a-zA-Z_]\w*', Name),
            (r'[0-9]*\.[0-9]+', Number.Float),
            (r'[0-9]+', Number.Integer),
            (r'[\[\](){}<>;,]', Punctuation),
            (r'[-+*/=.|&]|<=|>=|!=', Operator),
            (r'"(\\\\|\\[^\\]|[^"\\])*"', String),
            (r'\s+', Whitespace),
        ]
    }

    def analyse_text(text):
        """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."""
        result = 0
        if '#version' in text:
            result += 0.05
        if '#declare' in text:
            result += 0.05
        if 'camera' in text:
            result += 0.05
        if 'light_source' in text:
            result += 0.1

        return result

Messung V0.5 in Prozent
C=77 H=87 G=81

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.17Bemerkung:  (Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-04-26) ¤

*Eine klare Vorstellung vom Zielzustand






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.