Type Alias: Ast
type Ast =
| {
k: "lit";
o: number;
v: string | number | boolean | null;
}
| {
k: "ref";
meta: boolean;
o: number;
path: RefSegment[];
root: boolean;
up: number;
}
| {
k: "dot";
o: number;
}
| {
k: "col";
name: string;
o: number;
}
| {
a: Ast;
k: "un";
o: number;
op: UnaryOp;
}
| {
a: Ast;
b: Ast;
k: "bin";
o: number;
op: BinaryOp;
}
| {
a: Ast;
b: Ast;
k: "cond";
o: number;
test: Ast;
}
| {
args: Ast[];
k: "call";
name: string;
o: number;
}
| {
items: Ast[];
k: "arr";
o: number;
}
| {
a: Ast;
k: "member";
name: string;
o: number;
}
| {
a: Ast;
i: Ast;
k: "index";
o: number;
};
Defined in: packages/core/src/expr/ast.ts:33
Union Members
Type Literal
{
k: "lit";
o: number;
v: string | number | boolean | null;
}
Literal: number, string, boolean or null.
Type Literal
{
k: "ref";
meta: boolean;
o: number;
path: RefSegment[];
root: boolean;
up: number;
}
${…} reference. up = number of ../ hops; root = leading /.
Type Literal
{
k: "dot";
o: number;
}
. — the owner element's own value.
Type Literal
{
k: "col";
name: string;
o: number;
}
Bare identifier naming a choice column (legal in choiceFilter only).
Type Literal
{
a: Ast;
k: "un";
o: number;
op: UnaryOp;
}
Type Literal
{
a: Ast;
b: Ast;
k: "bin";
o: number;
op: BinaryOp;
}
Type Literal
{
a: Ast;
b: Ast;
k: "cond";
o: number;
test: Ast;
}
Type Literal
{
args: Ast[];
k: "call";
name: string;
o: number;
}
Type Literal
{
items: Ast[];
k: "arr";
o: number;
}
Type Literal
{
a: Ast;
k: "member";
name: string;
o: number;
}
expr.key — static member access on an object value.
Type Literal
{
a: Ast;
i: Ast;
k: "index";
o: number;
}
expr[i] — dynamic index (1-based for repeat collections).