summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/pygments/lexers/wgsl.py
diff options
context:
space:
mode:
authorcyfraeviolae <cyfraeviolae>2024-04-03 03:17:55 -0400
committercyfraeviolae <cyfraeviolae>2024-04-03 03:17:55 -0400
commit12cf076118570eebbff08c6b3090e0d4798447a1 (patch)
tree3ba25e17e3c3a5e82316558ba3864b955919ff72 /venv/lib/python3.11/site-packages/pygments/lexers/wgsl.py
parentc45662ff3923b34614ddcc8feb9195541166dcc5 (diff)
no venv
Diffstat (limited to 'venv/lib/python3.11/site-packages/pygments/lexers/wgsl.py')
-rw-r--r--venv/lib/python3.11/site-packages/pygments/lexers/wgsl.py407
1 files changed, 0 insertions, 407 deletions
diff --git a/venv/lib/python3.11/site-packages/pygments/lexers/wgsl.py b/venv/lib/python3.11/site-packages/pygments/lexers/wgsl.py
deleted file mode 100644
index f233421..0000000
--- a/venv/lib/python3.11/site-packages/pygments/lexers/wgsl.py
+++ /dev/null
@@ -1,407 +0,0 @@
-"""
- pygments.lexers.wgsl
- ~~~~~~~~~~~~~~~~~~~~
-
- Lexer for the WebGPU Shading Language.
-
- :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
- :license: BSD, see LICENSE for details.
-"""
-
-from pygments.lexer import RegexLexer, include, bygroups, words, default
-from pygments.token import Comment, Operator, Keyword, Name, \
- Number, Punctuation, Whitespace
-from pygments import unistring as uni
-
-__all__ = ['WgslLexer']
-
-LF = '\\u000a'
-VT = '\\u000b'
-FF = '\\u000c'
-CR = '\\u000d'
-NextLine = '\\u0085'
-LineSep = '\\u2028'
-ParaSep = '\\u2029'
-LineEndCodePoints = [LF,VT,FF,CR,NextLine,LineSep,ParaSep]
-NotLineEndRE = '[^' + "".join(LineEndCodePoints) + ']'
-LineEndRE = '[' + "".join(LineEndCodePoints) + ']'
-
-# https://www.w3.org/TR/WGSL/#syntax-ident_pattern_token
-ident_pattern_token = '([{}][{}]+)|[{}]'.format(uni.xid_start,uni.xid_continue,uni.xid_start)
-
-
-class WgslLexer(RegexLexer):
- """
- Lexer for the WebGPU Shading Language.
-
- .. versionadded:: 2.15
- """
- name = 'WebGPU Shading Language'
- url = 'https://www.w3.org/TR/WGSL/'
- aliases = ['wgsl']
- filenames = ['*.wgsl']
- mimetypes = ['text/wgsl']
-
- # https://www.w3.org/TR/WGSL/#var-and-value
- keyword_decl = (words('var let const override'.split(),suffix=r'\b'), Keyword.Declaration)
- # https://www.w3.org/TR/WGSL/#keyword-summary
- keywords = (words("""
- alias
- break
- case
- const_assert
- continue
- continuing
- default
- diagnostic
- discard
- else
- enable
- false
- fn
- for
- if
- loop
- requires
- return
- struct
- switch
- true
- while
- """.split(), suffix=r'\b'), Keyword)
-
- # https://www.w3.org/TR/WGSL/#reserved-words
- keyword_reserved = (words("""
- NULL
- Self
- abstract
- active
- alignas
- alignof
- as
- asm
- asm_fragment
- async
- attribute
- auto
- await
- become
- binding_array
- cast
- catch
- class
- co_await
- co_return
- co_yield
- coherent
- column_major
- common
- compile
- compile_fragment
- concept
- const_cast
- consteval
- constexpr
- constinit
- crate
- debugger
- decltype
- delete
- demote
- demote_to_helper
- do
- dynamic_cast
- enum
- explicit
- export
- extends
- extern
- external
- fallthrough
- filter
- final
- finally
- friend
- from
- fxgroup
- get
- goto
- groupshared
- highp
- impl
- implements
- import
- inline
- instanceof
- interface
- layout
- lowp
- macro
- macro_rules
- match
- mediump
- meta
- mod
- module
- move
- mut
- mutable
- namespace
- new
- nil
- noexcept
- noinline
- nointerpolation
- noperspective
- null
- nullptr
- of
- operator
- package
- packoffset
- partition
- pass
- patch
- pixelfragment
- precise
- precision
- premerge
- priv
- protected
- pub
- public
- readonly
- ref
- regardless
- register
- reinterpret_cast
- require
- resource
- restrict
- self
- set
- shared
- sizeof
- smooth
- snorm
- static
- static_assert
- static_cast
- std
- subroutine
- super
- target
- template
- this
- thread_local
- throw
- trait
- try
- type
- typedef
- typeid
- typename
- typeof
- union
- unless
- unorm
- unsafe
- unsized
- use
- using
- varying
- virtual
- volatile
- wgsl
- where
- with
- writeonly
- yield
- """.split(), suffix=r'\b'), Keyword.Reserved)
-
- # https://www.w3.org/TR/WGSL/#predeclared-enumerants
- predeclared_enums = (words("""
- read write read_write
- function private workgroup uniform storage
- perspective linear flat
- center centroid sample
- vertex_index instance_index position front_facing frag_depth
- local_invocation_id local_invocation_index
- global_invocation_id workgroup_id num_workgroups
- sample_index sample_mask
- rgba8unorm
- rgba8snorm
- rgba8uint
- rgba8sint
- rgba16uint
- rgba16sint
- rgba16float
- r32uint
- r32sint
- r32float
- rg32uint
- rg32sint
- rg32float
- rgba32uint
- rgba32sint
- rgba32float
- bgra8unorm
- """.split(), suffix=r'\b'), Name.Builtin)
-
- # https://www.w3.org/TR/WGSL/#predeclared-types
- predeclared_types = (words("""
- bool
- f16
- f32
- i32
- sampler sampler_comparison
- texture_depth_2d
- texture_depth_2d_array
- texture_depth_cube
- texture_depth_cube_array
- texture_depth_multisampled_2d
- texture_external
- texture_external
- u32
- """.split(), suffix=r'\b'), Name.Builtin)
-
- # https://www.w3.org/TR/WGSL/#predeclared-types
- predeclared_type_generators = (words("""
- array
- atomic
- mat2x2
- mat2x3
- mat2x4
- mat3x2
- mat3x3
- mat3x4
- mat4x2
- mat4x3
- mat4x4
- ptr
- texture_1d
- texture_2d
- texture_2d_array
- texture_3d
- texture_cube
- texture_cube_array
- texture_multisampled_2d
- texture_storage_1d
- texture_storage_2d
- texture_storage_2d_array
- texture_storage_3d
- vec2
- vec3
- vec4
- """.split(), suffix=r'\b'), Name.Builtin)
-
- # Predeclared type aliases for vectors
- # https://www.w3.org/TR/WGSL/#vector-types
- predeclared_type_alias_vectors = (words("""
- vec2i vec3i vec4i
- vec2u vec3u vec4u
- vec2f vec3f vec4f
- vec2h vec3h vec4h
- """.split(), suffix=r'\b'), Name.Builtin)
-
- # Predeclared type aliases for matrices
- # https://www.w3.org/TR/WGSL/#matrix-types
- predeclared_type_alias_matrices = (words("""
- mat2x2f mat2x3f mat2x4f
- mat3x2f mat3x3f mat3x4f
- mat4x2f mat4x3f mat4x4f
- mat2x2h mat2x3h mat2x4h
- mat3x2h mat3x3h mat3x4h
- mat4x2h mat4x3h mat4x4h
- """.split(), suffix=r'\b'), Name.Builtin)
-
- tokens = {
- 'blankspace': [
- # https://www.w3.org/TR/WGSL/#blankspace
- (r'[\u0020\u0009\u000a\u000b\u000c\u000d\u0085\u200e\u200f\u2028\u2029]+', Whitespace),
- ],
- 'comments': [
- # Line ending comments
- # Match up CR/LF pair first.
- (r'//{}*{}{}'.format(NotLineEndRE,CR,LF), Comment.Single),
- (r'//{}*{}'.format(NotLineEndRE,LineEndRE), Comment.Single),
- (r'/\*', Comment.Multiline, 'block_comment'),
- ],
- 'attribute': [
- include('blankspace'),
- include('comments'),
- (ident_pattern_token, Name.Decorator,'#pop'),
- default('#pop'),
- ],
- 'root': [
- include('blankspace'),
- include('comments'),
-
- # Attributes.
- # https://www.w3.org/TR/WGSL/#attributes
- # Mark the '@' and the attribute name as a decorator.
- (r'@', Name.Decorator, 'attribute'),
-
- # Keywords
- (r'(true|false)\b', Keyword.Constant),
- keyword_decl,
- keywords,
- keyword_reserved,
-
- # Predeclared
- predeclared_enums,
- predeclared_types,
- predeclared_type_generators,
- predeclared_type_alias_vectors,
- predeclared_type_alias_matrices,
-
- # Decimal float literals
- # https://www.w3.org/TR/WGSL/#syntax-decimal_float_literal
- # 0, with type-specifying suffix.
- (r'0[fh]', Number.Float),
- # Other decimal integer, with type-specifying suffix.
- (r'[1-9][0-9]*[fh]', Number.Float),
- # Has decimal point, at least one digit after decimal.
- (r'[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?', Number.Float),
- # Has decimal point, at least one digit before decimal.
- (r'[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?', Number.Float),
- # Has at least one digit, and has an exponent.
- (r'[0-9]+[eE][+-]?[0-9]+[fh]?', Number.Float),
-
- # Hex float literals
- # https://www.w3.org/TR/WGSL/#syntax-hex_float_literal
- (r'0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?', Number.Float),
- (r'0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?', Number.Float),
- (r'0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?', Number.Float),
-
- # Hexadecimal integer literals
- # https://www.w3.org/TR/WGSL/#syntax-hex_int_literal
- (r'0[xX][0-9a-fA-F]+[iu]?', Number.Hex),
- # Decimal integer literals
- # https://www.w3.org/TR/WGSL/#syntax-decimal_int_literal
- # We need two rules here because 01 is not valid.
- (r'[1-9][0-9]*[iu]?', Number.Integer),
- (r'0[iu]?', Number.Integer), # Must match last.
-
- # Operators and Punctuation
- (r'[{}()\[\],\.;:]', Punctuation),
- (r'->', Punctuation), # Return-type arrow
- (r'[+\-*/%&|<>^!~=]', Operator),
-
- # TODO: Treat context-depedendent names specially
- # https://www.w3.org/TR/WGSL/#context-dependent-name
-
- # Identifiers
- (ident_pattern_token, Name),
-
- # TODO: templates start and end tokens.
- # https://www.w3.org/TR/WGSL/#template-lists-sec
- ],
- 'block_comment': [
- # https://www.w3.org/TR/WGSL/#block-comment
- (r'[^*/]+', Comment.Multiline),
- (r'/\*', Comment.Multiline, '#push'),
- (r'\*/', Comment.Multiline, '#pop'),
- (r'[*/]', Comment.Multiline),
- ],
- }