@aurelia/expression-parser
Version:
[](https://opensource.org/licenses/MIT) [](http://www.typescriptlang.org/) [;
evaluate(...params: unknown[]): unknown;
assign(...params: unknown[]): unknown;
bind(...params: unknown[]): void;
unbind(...params: unknown[]): void;
accept<T>(_visitor: IVisitor<T>): T;
}
export interface BindingBehaviorExpression {
readonly $kind: 'BindingBehavior';
readonly key: string;
readonly expression: IsBindingBehavior;
readonly name: string;
readonly args: readonly IsAssign[];
}
export declare function createBindingBehaviorExpression(expression: IsBindingBehavior, name: string, args: readonly IsAssign[]): BindingBehaviorExpression;
export interface ValueConverterExpression {
readonly $kind: 'ValueConverter';
readonly expression: IsValueConverter;
readonly name: string;
readonly args: readonly IsAssign[];
}
export declare function createValueConverterExpression(expression: IsValueConverter, name: string, args: readonly IsAssign[]): ValueConverterExpression;
export interface AssignExpression {
readonly $kind: 'Assign';
readonly target: IsAssignable;
readonly value: IsAssign;
readonly op: AssignmentOperator;
}
export declare function createAssignExpression(target: IsAssignable, value: IsAssign, op?: AssignmentOperator): AssignExpression;
export interface ConditionalExpression {
readonly $kind: 'Conditional';
readonly condition: IsBinary;
readonly yes: IsAssign;
readonly no: IsAssign;
}
export declare function createConditionalExpression(condition: IsBinary, yes: IsAssign, no: IsAssign): ConditionalExpression;
export interface AccessGlobalExpression {
readonly $kind: 'AccessGlobal';
readonly name: string;
}
export declare function createAccessGlobalExpression(name: string): AccessGlobalExpression;
export interface AccessThisExpression {
readonly $kind: 'AccessThis';
readonly ancestor: number;
}
export declare function createAccessThisExpression(ancestor?: number): AccessThisExpression;
export interface AccessBoundaryExpression {
readonly $kind: 'AccessBoundary';
}
export declare const AccessBoundary: AccessBoundaryExpression;
export declare function createAccessBoundaryExpression(): AccessBoundaryExpression;
export interface AccessScopeExpression {
readonly $kind: 'AccessScope';
readonly name: string;
readonly ancestor: number;
}
export declare function createAccessScopeExpression(name: string, ancestor?: number): AccessScopeExpression;
export interface AccessMemberExpression {
readonly $kind: 'AccessMember';
readonly accessGlobal: boolean;
readonly object: IsLeftHandSide;
readonly name: string;
readonly optional: boolean;
}
export declare function createAccessMemberExpression(object: IsLeftHandSide, name: string, optional?: boolean): AccessMemberExpression;
export interface AccessKeyedExpression {
readonly $kind: 'AccessKeyed';
readonly accessGlobal: boolean;
readonly object: IsLeftHandSide;
readonly key: IsAssign;
readonly optional: boolean;
}
export declare function createAccessKeyedExpression(object: IsLeftHandSide, key: IsAssign, optional?: boolean): AccessKeyedExpression;
export interface NewExpression {
readonly $kind: 'New';
readonly func: IsLeftHandSide;
readonly args: readonly IsAssign[];
}
export declare function createNewExpression(func: IsLeftHandSide, args: readonly IsAssign[]): NewExpression;
export interface CallScopeExpression {
readonly $kind: 'CallScope';
readonly name: string;
readonly args: readonly IsAssign[];
readonly ancestor: number;
readonly optional: boolean;
}
export declare function createCallScopeExpression(name: string, args: readonly IsAssign[], ancestor?: number, optional?: boolean): CallScopeExpression;
export interface CallMemberExpression {
readonly $kind: 'CallMember';
readonly object: IsLeftHandSide;
readonly name: string;
readonly args: readonly IsAssign[];
readonly optionalMember: boolean;
readonly optionalCall: boolean;
}
export declare function createCallMemberExpression(object: IsLeftHandSide, name: string, args: readonly IsAssign[], optionalMember?: boolean, optionalCall?: boolean): CallMemberExpression;
export interface CallFunctionExpression {
readonly $kind: 'CallFunction';
readonly func: IsLeftHandSide;
readonly args: readonly IsAssign[];
readonly optional: boolean;
}
export declare function createCallFunctionExpression(func: IsLeftHandSide, args: readonly IsAssign[], optional?: boolean): CallFunctionExpression;
export interface CallGlobalExpression {
readonly $kind: 'CallGlobal';
readonly name: string;
readonly args: readonly IsAssign[];
}
export declare function createCallGlobalExpression(name: string, args: readonly IsAssign[]): CallGlobalExpression;
export interface BinaryExpression {
readonly $kind: 'Binary';
readonly operation: BinaryOperator;
readonly left: IsBinary;
readonly right: IsBinary;
}
export declare function createBinaryExpression(operation: BinaryOperator, left: IsBinary, right: IsBinary): BinaryExpression;
export interface UnaryExpression {
readonly $kind: 'Unary';
readonly operation: UnaryOperator;
readonly expression: IsLeftHandSide;
readonly pos: 0 | 1;
}
export declare function createUnaryExpression(operation: UnaryOperator, expression: IsLeftHandSide, pos?: 0 | 1): UnaryExpression;
export interface PrimitiveLiteralExpression<TValue extends null | undefined | number | boolean | string = null | undefined | number | boolean | string> {
readonly $kind: 'PrimitiveLiteral';
readonly value: TValue;
}
export declare const PrimitiveLiteral: {
$undefined: {
$kind: "PrimitiveLiteral";
value: undefined;
};
$null: {
$kind: "PrimitiveLiteral";
value: null;
};
$true: {
$kind: "PrimitiveLiteral";
value: true;
};
$false: {
$kind: "PrimitiveLiteral";
value: false;
};
$empty: {
$kind: "PrimitiveLiteral";
value: string;
};
};
export declare function createPrimitiveLiteralExpression<T extends null | undefined | number | boolean | string>(value: T): PrimitiveLiteralExpression<T>;
export interface ArrayLiteralExpression {
readonly $kind: 'ArrayLiteral';
readonly elements: readonly IsAssign[];
}
export declare const ArrayLiteral: {
$empty: {
$kind: "ArrayLiteral";
elements: any[];
};
};
export declare function createArrayLiteralExpression(elements: readonly IsAssign[]): ArrayLiteralExpression;
export interface ObjectLiteralExpression {
readonly $kind: 'ObjectLiteral';
readonly keys: readonly (number | string)[];
readonly values: readonly IsAssign[];
}
export declare const ObjectLiteral: {
$empty: {
$kind: "ObjectLiteral";
keys: any[];
values: any[];
};
};
export declare function createObjectLiteralExpression(keys: readonly (number | string)[], values: readonly IsAssign[]): ObjectLiteralExpression;
export interface TemplateExpression {
readonly $kind: 'Template';
readonly cooked: readonly string[];
readonly expressions: readonly IsAssign[];
}
export declare const Template: {
$empty: {
$kind: "Template";
cooked: string[];
expressions: any[];
};
};
export declare function createTemplateExpression(cooked: readonly string[], expressions?: readonly IsAssign[]): TemplateExpression;
export interface TaggedTemplateExpression {
readonly $kind: 'TaggedTemplate';
readonly cooked: readonly string[] & {
raw?: readonly string[];
};
readonly func: IsLeftHandSide;
readonly expressions: readonly IsAssign[];
}
export declare function createTaggedTemplateExpression(cooked: readonly string[] & {
raw?: readonly string[];
}, raw: readonly string[], func: IsLeftHandSide, expressions?: readonly IsAssign[]): TaggedTemplateExpression;
export interface ArrayBindingPattern {
readonly $kind: 'ArrayBindingPattern';
readonly elements: readonly IsAssign[];
}
export declare function createArrayBindingPattern(elements: readonly IsAssign[]): ArrayBindingPattern;
export interface ObjectBindingPattern {
readonly $kind: 'ObjectBindingPattern';
readonly keys: readonly (string | number)[];
readonly values: readonly IsAssign[];
}
export declare function createObjectBindingPattern(keys: readonly (string | number)[], values: readonly IsAssign[]): ObjectBindingPattern;
export interface BindingIdentifier {
readonly $kind: 'BindingIdentifier';
readonly name: string;
}
export declare function createBindingIdentifier(name: string): BindingIdentifier;
export interface ForOfStatement {
readonly $kind: 'ForOfStatement';
readonly declaration: BindingIdentifierOrPattern | DestructuringAssignmentExpression;
readonly iterable: IsBindingBehavior;
readonly semiIdx: number;
}
export declare function createForOfStatement(declaration: BindingIdentifierOrPattern | DestructuringAssignmentExpression, iterable: IsBindingBehavior, semiIdx: number): ForOfStatement;
export interface Interpolation {
readonly $kind: 'Interpolation';
readonly isMulti: boolean;
readonly firstExpression: IsBindingBehavior;
readonly parts: readonly string[];
readonly expressions: readonly IsBindingBehavior[];
}
export declare function createInterpolation(parts: readonly string[], expressions?: readonly IsBindingBehavior[]): Interpolation;
export interface DestructuringAssignmentExpression {
readonly $kind: 'ArrayDestructuring' | 'ObjectDestructuring';
readonly list: readonly (DestructuringAssignmentExpression | DestructuringAssignmentSingleExpression | DestructuringAssignmentRestExpression)[];
readonly source: AccessMemberExpression | AccessKeyedExpression | undefined;
readonly initializer: IsBindingBehavior | undefined;
}
export declare function createDestructuringAssignmentExpression($kind: 'ArrayDestructuring' | 'ObjectDestructuring', list: readonly (DestructuringAssignmentExpression | DestructuringAssignmentSingleExpression | DestructuringAssignmentRestExpression)[], source: AccessMemberExpression | AccessKeyedExpression | undefined, initializer: IsBindingBehavior | undefined): DestructuringAssignmentExpression;
export interface DestructuringAssignmentSingleExpression {
readonly $kind: 'DestructuringAssignmentLeaf';
readonly target: AccessMemberExpression;
readonly source: AccessMemberExpression | AccessKeyedExpression;
readonly initializer: IsBindingBehavior | undefined;
}
export declare function createDestructuringAssignmentSingleExpression(target: AccessMemberExpression, source: AccessMemberExpression | AccessKeyedExpression, initializer: IsBindingBehavior | undefined): DestructuringAssignmentSingleExpression;
export interface DestructuringAssignmentRestExpression {
readonly $kind: 'DestructuringAssignmentLeaf';
readonly target: AccessMemberExpression;
readonly indexOrProperties: string[] | number;
}
export declare function createDestructuringAssignmentRestExpression(target: AccessMemberExpression, indexOrProperties: string[] | number): DestructuringAssignmentRestExpression;
export interface ArrowFunction {
readonly $kind: 'ArrowFunction';
readonly args: BindingIdentifier[];
readonly body: IsAssign;
readonly rest: boolean;
}
export declare function createArrowFunction(args: BindingIdentifier[], body: IsAssign, rest?: boolean): ArrowFunction;
//# sourceMappingURL=ast.d.ts.map