构造函数

属性

assign: boolean

是否是赋值状态

assignLeft: enumOperator

类似于+=、-=、/=、*=、>>=、<<=这种逻辑

attribute: Record<string, TypeOut>
code: string

原始未解析的代码

defParam: string[] | WebGPUShaderToken

ifdef的参数

describe: enumDescribe
includefiles: any[]
inOrOut: enumInOut
name: string

如果是函数,这里就是函数名,否则是变量名,或者是精度定义

operator: enumOperator

操作符,例如=、+、-、*、/

operatorRight: boolean

操作符是在name的左侧还是右侧,通常是用于++和--,但是有时也会用于=

参数数据的数据源

函数类型的话会有这些参数数据

parameterArr: WebGPUShaderToken[]

这里是数组参数a[][]这种,支持多维数组

用原始code分析出来的语法树

structs: Record<string, WebGPUShaderToken>
type: string

节点的类型,例如vec4,float...如果是函数,则是函数的返回值,还有可能是参数的分隔符,或者?或者:

uniform: Record<string, TypeOut>
variable: Set<string>
varNames: string[]

这里是uniform或者struct后面默认追加变量定义的地方

varying: Record<string, TypeOut>
z: number = 0

方法