wgsl_reflect
Version:
WGSL Parser and Reflection library
57 lines (56 loc) • 3.43 kB
TypeScript
import { Node, Type, Let, Var, Const, If, For, While, Loop, Assign, Increment, Call, BinaryOperator, LiteralExpr, VariableExpr, CallExpr, CreateExpr, ConstExpr, BitcastExpr, UnaryOperator, Function, Switch } from "./wgsl_ast.js";
import { Data } from "./wgsl_ast.js";
import { Reflect } from "./reflect/reflect.js";
import { TypeInfo } from "./reflect/info.js";
import { ExecContext, FunctionRef } from "./exec/exec_context.js";
import { ExecInterface } from "./exec/exec_interface.js";
import { BuiltinFunctions } from "./exec/builtin_functions.js";
export declare class WgslExec extends ExecInterface {
ast: Node[];
context: ExecContext;
reflection: Reflect;
builtins: BuiltinFunctions;
typeInfo: Object;
constructor(ast?: Node[], context?: ExecContext);
getVariableValue(name: string): number | number[] | null;
execute(config?: Object): void;
dispatchWorkgroups(kernel: string, dispatchCount: number | number[], bindGroups: Object, config?: Object): void;
static _breakObj: Data;
static _continueObj: Data;
execStatement(stmt: Node, context: ExecContext): Data | null;
evalExpression(node: Node, context: ExecContext): Data | null;
getTypeInfo(type: Type | string): TypeInfo | null;
_setOverrides(constants: Object, context: ExecContext): void;
_dispatchWorkgroup(f: FunctionRef, workgroup_id: number[], context: ExecContext): void;
_dispatchExec(f: FunctionRef, context: ExecContext): void;
getVariableName(node: Node, context: ExecContext): string | null;
_execStatements(statements: Node[], context: ExecContext): Data | null;
_call(node: Call, context: ExecContext): void;
_increment(node: Increment, context: ExecContext): void;
_getVariableData(node: Node, context: ExecContext): Data | null;
_assign(node: Assign, context: ExecContext): void;
_function(node: Function, context: ExecContext): void;
_const(node: Const, context: ExecContext): void;
_let(node: Let, context: ExecContext): void;
_var(node: Var, context: ExecContext): void;
_switch(node: Switch, context: ExecContext): Data | null;
_if(node: If, context: ExecContext): Data | null;
_getScalarValue(v: Data | null): number;
_for(node: For, context: ExecContext): Data | null;
_loop(node: Loop, context: ExecContext): Data | null;
_while(node: While, context: ExecContext): Data | null;
_evalBitcast(node: BitcastExpr, context: ExecContext): Data | null;
_evalConst(node: ConstExpr, context: ExecContext): Data | null;
_evalCreate(node: CreateExpr | CallExpr | Call, context: ExecContext): Data | null;
_evalLiteral(node: LiteralExpr, context: ExecContext): Data | null;
_evalVariable(node: VariableExpr, context: ExecContext): Data | null;
static _priority: Map<string, number>;
_maxFormatTypeInfo(x: TypeInfo[]): TypeInfo | null;
_evalUnaryOp(node: UnaryOperator, context: ExecContext): Data | null;
_evalBinaryOp(node: BinaryOperator, context: ExecContext): Data | null;
_evalCall(node: CallExpr, context: ExecContext): Data | null;
_callBuiltinFunction(node: CallExpr | Call, context: ExecContext): Data | null;
_callConstructorValue(node: CreateExpr, context: ExecContext): Data | null;
_callConstructorVec(node: CreateExpr | LiteralExpr, context: ExecContext): Data | null;
_callConstructorMatrix(node: CreateExpr | LiteralExpr, context: ExecContext): Data | null;
}