mirror of
https://github.com/leporello-js/leporello-js
synced 2026-01-13 21:14:28 -08:00
deploy: leporello-js/app@63a4281071
This commit is contained in:
487
lib/monaco/vs/basic-languages/wgsl/wgsl.js
Normal file
487
lib/monaco/vs/basic-languages/wgsl/wgsl.js
Normal file
@@ -0,0 +1,487 @@
|
||||
/*!-----------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
|
||||
* Released under the MIT license
|
||||
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
|
||||
*-----------------------------------------------------------------------------*/
|
||||
define("vs/basic-languages/wgsl/wgsl", ["require"],(require)=>{
|
||||
"use strict";
|
||||
var moduleExports = (() => {
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
|
||||
// src/basic-languages/wgsl/wgsl.ts
|
||||
var wgsl_exports = {};
|
||||
__export(wgsl_exports, {
|
||||
conf: () => conf,
|
||||
language: () => language
|
||||
});
|
||||
var conf = {
|
||||
comments: {
|
||||
lineComment: "//",
|
||||
blockComment: ["/*", "*/"]
|
||||
},
|
||||
brackets: [
|
||||
["{", "}"],
|
||||
["[", "]"],
|
||||
["(", ")"]
|
||||
],
|
||||
autoClosingPairs: [
|
||||
{ open: "[", close: "]" },
|
||||
{ open: "{", close: "}" },
|
||||
{ open: "(", close: ")" }
|
||||
],
|
||||
surroundingPairs: [
|
||||
{ open: "{", close: "}" },
|
||||
{ open: "[", close: "]" },
|
||||
{ open: "(", close: ")" }
|
||||
]
|
||||
};
|
||||
function qw(str) {
|
||||
let result = [];
|
||||
const words = str.split(/\t+|\r+|\n+| +/);
|
||||
for (let i = 0; i < words.length; ++i) {
|
||||
if (words[i].length > 0) {
|
||||
result.push(words[i]);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
var atoms = qw("true false");
|
||||
var keywords = qw(`
|
||||
alias
|
||||
break
|
||||
case
|
||||
const
|
||||
const_assert
|
||||
continue
|
||||
continuing
|
||||
default
|
||||
diagnostic
|
||||
discard
|
||||
else
|
||||
enable
|
||||
fn
|
||||
for
|
||||
if
|
||||
let
|
||||
loop
|
||||
override
|
||||
requires
|
||||
return
|
||||
struct
|
||||
switch
|
||||
var
|
||||
while
|
||||
`);
|
||||
var reserved = qw(`
|
||||
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
|
||||
`);
|
||||
var predeclared_enums = qw(`
|
||||
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
|
||||
`);
|
||||
var predeclared_types = qw(`
|
||||
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
|
||||
`);
|
||||
var predeclared_type_generators = qw(`
|
||||
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
|
||||
`);
|
||||
var predeclared_type_aliases = qw(`
|
||||
vec2i vec3i vec4i
|
||||
vec2u vec3u vec4u
|
||||
vec2f vec3f vec4f
|
||||
vec2h vec3h vec4h
|
||||
mat2x2f mat2x3f mat2x4f
|
||||
mat3x2f mat3x3f mat3x4f
|
||||
mat4x2f mat4x3f mat4x4f
|
||||
mat2x2h mat2x3h mat2x4h
|
||||
mat3x2h mat3x3h mat3x4h
|
||||
mat4x2h mat4x3h mat4x4h
|
||||
`);
|
||||
var predeclared_intrinsics = qw(`
|
||||
bitcast all any select arrayLength abs acos acosh asin asinh atan atanh atan2
|
||||
ceil clamp cos cosh countLeadingZeros countOneBits countTrailingZeros cross
|
||||
degrees determinant distance dot exp exp2 extractBits faceForward firstLeadingBit
|
||||
firstTrailingBit floor fma fract frexp inverseBits inverseSqrt ldexp length
|
||||
log log2 max min mix modf normalize pow quantizeToF16 radians reflect refract
|
||||
reverseBits round saturate sign sin sinh smoothstep sqrt step tan tanh transpose
|
||||
trunc dpdx dpdxCoarse dpdxFine dpdy dpdyCoarse dpdyFine fwidth fwidthCoarse fwidthFine
|
||||
textureDimensions textureGather textureGatherCompare textureLoad textureNumLayers
|
||||
textureNumLevels textureNumSamples textureSample textureSampleBias textureSampleCompare
|
||||
textureSampleCompareLevel textureSampleGrad textureSampleLevel textureSampleBaseClampToEdge
|
||||
textureStore atomicLoad atomicStore atomicAdd atomicSub atomicMax atomicMin
|
||||
atomicAnd atomicOr atomicXor atomicExchange atomicCompareExchangeWeak pack4x8snorm
|
||||
pack4x8unorm pack2x16snorm pack2x16unorm pack2x16float unpack4x8snorm unpack4x8unorm
|
||||
unpack2x16snorm unpack2x16unorm unpack2x16float storageBarrier workgroupBarrier
|
||||
workgroupUniformLoad
|
||||
`);
|
||||
var operators = qw(`
|
||||
&
|
||||
&&
|
||||
->
|
||||
/
|
||||
=
|
||||
==
|
||||
!=
|
||||
>
|
||||
>=
|
||||
<
|
||||
<=
|
||||
%
|
||||
-
|
||||
--
|
||||
+
|
||||
++
|
||||
|
|
||||
||
|
||||
*
|
||||
<<
|
||||
>>
|
||||
+=
|
||||
-=
|
||||
*=
|
||||
/=
|
||||
%=
|
||||
&=
|
||||
|=
|
||||
^=
|
||||
>>=
|
||||
<<=
|
||||
`);
|
||||
var directive_re = /enable|requires|diagnostic/;
|
||||
var ident_re = /[_\p{XID_Start}]\p{XID_Continue}*/u;
|
||||
var predefined_token = "variable.predefined";
|
||||
var language = {
|
||||
tokenPostfix: ".wgsl",
|
||||
defaultToken: "invalid",
|
||||
unicode: true,
|
||||
atoms,
|
||||
keywords,
|
||||
reserved,
|
||||
predeclared_enums,
|
||||
predeclared_types,
|
||||
predeclared_type_generators,
|
||||
predeclared_type_aliases,
|
||||
predeclared_intrinsics,
|
||||
operators,
|
||||
symbols: /[!%&*+\-\.\/:;<=>^|_~,]+/,
|
||||
tokenizer: {
|
||||
root: [
|
||||
[directive_re, "keyword", "@directive"],
|
||||
[
|
||||
// Identifier-like things, but also include '_'
|
||||
ident_re,
|
||||
{
|
||||
cases: {
|
||||
"@atoms": predefined_token,
|
||||
"@keywords": "keyword",
|
||||
"@reserved": "invalid",
|
||||
"@predeclared_enums": predefined_token,
|
||||
"@predeclared_types": predefined_token,
|
||||
"@predeclared_type_generators": predefined_token,
|
||||
"@predeclared_type_aliases": predefined_token,
|
||||
"@predeclared_intrinsics": predefined_token,
|
||||
"@default": "identifier"
|
||||
}
|
||||
}
|
||||
],
|
||||
{ include: "@commentOrSpace" },
|
||||
{ include: "@numbers" },
|
||||
[/[{}()\[\]]/, "@brackets"],
|
||||
["@", "annotation", "@attribute"],
|
||||
[
|
||||
/@symbols/,
|
||||
{
|
||||
cases: {
|
||||
"@operators": "operator",
|
||||
"@default": "delimiter"
|
||||
}
|
||||
}
|
||||
],
|
||||
[/./, "invalid"]
|
||||
],
|
||||
commentOrSpace: [
|
||||
[/\s+/, "white"],
|
||||
[/\/\*/, "comment", "@blockComment"],
|
||||
[/\/\/.*$/, "comment"]
|
||||
],
|
||||
blockComment: [
|
||||
// Soak up uninteresting text: anything except * or /
|
||||
[/[^\/*]+/, "comment"],
|
||||
// Recognize the start of a nested block comment.
|
||||
[/\/\*/, "comment", "@push"],
|
||||
// Recognize the end of a nested block comment.
|
||||
[/\*\//, "comment", "@pop"],
|
||||
// Recognize insignificant * and /
|
||||
[/[\/*]/, "comment"]
|
||||
],
|
||||
attribute: [
|
||||
// For things like '@fragment' both '@' and 'fragment'
|
||||
// are marked as annotations. This should work even if
|
||||
// there are spaces or comments between the two tokens.
|
||||
{ include: "@commentOrSpace" },
|
||||
[/\w+/, "annotation", "@pop"]
|
||||
],
|
||||
directive: [
|
||||
// For things like 'enable f16;', 'enable' maps to 'meta'
|
||||
// and 'f16' maps to 'meta.tag'.
|
||||
{ include: "@commentOrSpace" },
|
||||
[/[()]/, "@brackets"],
|
||||
[/,/, "delimiter"],
|
||||
[ident_re, "meta.content"],
|
||||
[/;/, "delimiter", "@pop"]
|
||||
],
|
||||
numbers: [
|
||||
// Decimal float literals
|
||||
// https://www.w3.org/TR/WGSL/#syntax-decimal_float_literal
|
||||
// 0, with type-specifying suffix.
|
||||
[/0[fh]/, "number.float"],
|
||||
// Other decimal integer, with type-specifying suffix.
|
||||
[/[1-9][0-9]*[fh]/, "number.float"],
|
||||
// Has decimal point, at least one digit after decimal.
|
||||
[/[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/, "number.float"],
|
||||
// Has decimal point, at least one digit before decimal.
|
||||
[/[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/, "number.float"],
|
||||
// Has at least one digit, and has an exponent.
|
||||
[/[0-9]+[eE][+-]?[0-9]+[fh]?/, "number.float"],
|
||||
// Hex float literals
|
||||
// https://www.w3.org/TR/WGSL/#syntax-hex_float_literal
|
||||
[/0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+(?:[pP][+-]?[0-9]+[fh]?)?/, "number.hex"],
|
||||
[/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*(?:[pP][+-]?[0-9]+[fh]?)?/, "number.hex"],
|
||||
[/0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/, "number.hex"],
|
||||
// Hexadecimal integer literals
|
||||
// https://www.w3.org/TR/WGSL/#syntax-hex_int_literal
|
||||
[/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.
|
||||
[/[1-9][0-9]*[iu]?/, "number"],
|
||||
[/0[iu]?/, "number"]
|
||||
// Must match last
|
||||
]
|
||||
}
|
||||
};
|
||||
return __toCommonJS(wgsl_exports);
|
||||
})();
|
||||
return moduleExports;
|
||||
});
|
||||
Reference in New Issue
Block a user