UNPKG

@thi.ng/shader-ast

Version:

DSL to define shader code in TypeScript and cross-compile to GLSL, JS and other targets

37 lines 3.99 kB
import type { Fn, Fn0, Fn2, Fn3, Fn4, Fn5, Fn6, Fn7, Fn8, Nullable } from "@thi.ng/api"; import type { FnCall, Sym, Term } from "./nodes.js"; import type { SymOpts } from "./syms.js"; import type { Type } from "./types.js"; export type ScopeBody = Nullable<Term<any>>[]; export type Arg<A extends Type> = A | [A, string?, SymOpts?]; export type Arg1<A extends Type> = [Arg<A>]; export type Arg2<A extends Type, B extends Type> = [Arg<A>, Arg<B>]; export type Arg3<A extends Type, B extends Type, C extends Type> = [ Arg<A>, Arg<B>, Arg<C> ]; export type Arg4<A extends Type, B extends Type, C extends Type, D extends Type> = [Arg<A>, Arg<B>, Arg<C>, Arg<D>]; export type Arg5<A extends Type, B extends Type, C extends Type, D extends Type, E extends Type> = [Arg<A>, Arg<B>, Arg<C>, Arg<D>, Arg<E>]; export type Arg6<A extends Type, B extends Type, C extends Type, D extends Type, E extends Type, F extends Type> = [Arg<A>, Arg<B>, Arg<C>, Arg<D>, Arg<E>, Arg<F>]; export type Arg7<A extends Type, B extends Type, C extends Type, D extends Type, E extends Type, F extends Type, G extends Type> = [Arg<A>, Arg<B>, Arg<C>, Arg<D>, Arg<E>, Arg<F>, Arg<G>]; export type Arg8<A extends Type, B extends Type, C extends Type, D extends Type, E extends Type, F extends Type, G extends Type, H extends Type> = [Arg<A>, Arg<B>, Arg<C>, Arg<D>, Arg<E>, Arg<F>, Arg<G>, Arg<H>]; export type FnBody0 = Fn0<ScopeBody>; export type FnBody1<A extends Type> = Fn<Sym<A>, ScopeBody>; export type FnBody2<A extends Type, B extends Type> = Fn2<Sym<A>, Sym<B>, ScopeBody>; export type FnBody3<A extends Type, B extends Type, C extends Type> = Fn3<Sym<A>, Sym<B>, Sym<C>, ScopeBody>; export type FnBody4<A extends Type, B extends Type, C extends Type, D extends Type> = Fn4<Sym<A>, Sym<B>, Sym<C>, Sym<D>, ScopeBody>; export type FnBody5<A extends Type, B extends Type, C extends Type, D extends Type, E extends Type> = Fn5<Sym<A>, Sym<B>, Sym<C>, Sym<D>, Sym<E>, ScopeBody>; export type FnBody6<A extends Type, B extends Type, C extends Type, D extends Type, E extends Type, F extends Type> = Fn6<Sym<A>, Sym<B>, Sym<C>, Sym<D>, Sym<E>, Sym<F>, ScopeBody>; export type FnBody7<A extends Type, B extends Type, C extends Type, D extends Type, E extends Type, F extends Type, G extends Type> = Fn7<Sym<A>, Sym<B>, Sym<C>, Sym<D>, Sym<E>, Sym<F>, Sym<G>, ScopeBody>; export type FnBody8<A extends Type, B extends Type, C extends Type, D extends Type, E extends Type, F extends Type, G extends Type, H extends Type> = Fn8<Sym<A>, Sym<B>, Sym<C>, Sym<D>, Sym<E>, Sym<F>, Sym<G>, Sym<H>, ScopeBody>; export type Func0<T extends Type> = Fn0<FnCall<T>>; export type Func1<A extends Type, T extends Type> = Fn<Term<A>, FnCall<T>>; export type Func2<A extends Type, B extends Type, T extends Type> = Fn2<Term<A>, Term<B>, FnCall<T>>; export type Func3<A extends Type, B extends Type, C extends Type, T extends Type> = Fn3<Term<A>, Term<B>, Term<C>, FnCall<T>>; export type Func4<A extends Type, B extends Type, C extends Type, D extends Type, T extends Type> = Fn4<Term<A>, Term<B>, Term<C>, Term<D>, FnCall<T>>; export type Func5<A extends Type, B extends Type, C extends Type, D extends Type, E extends Type, T extends Type> = Fn5<Term<A>, Term<B>, Term<C>, Term<D>, Term<E>, FnCall<T>>; export type Func6<A extends Type, B extends Type, C extends Type, D extends Type, E extends Type, F extends Type, T extends Type> = Fn6<Term<A>, Term<B>, Term<C>, Term<D>, Term<E>, Term<F>, FnCall<T>>; export type Func7<A extends Type, B extends Type, C extends Type, D extends Type, E extends Type, F extends Type, G extends Type, T extends Type> = Fn7<Term<A>, Term<B>, Term<C>, Term<D>, Term<E>, Term<F>, Term<G>, FnCall<T>>; export type Func8<A extends Type, B extends Type, C extends Type, D extends Type, E extends Type, F extends Type, G extends Type, H extends Type, T extends Type> = Fn8<Term<A>, Term<B>, Term<C>, Term<D>, Term<E>, Term<F>, Term<G>, Term<H>, FnCall<T>>; //# sourceMappingURL=function.d.ts.map