Skip to content

Commit 8a3ec6c

Browse files
authored
implement expression as super class (#112)
1 parent fe78c9e commit 8a3ec6c

File tree

4 files changed

+366
-155
lines changed

4 files changed

+366
-155
lines changed

expressions.d.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ export declare interface ExpressionBase {
44
exprOf(): any;
55
}
66

7+
export declare abstract class Expression extends Expression {
8+
exprOf(): any;
9+
source?: string;
10+
}
11+
712
export declare class Operators {
813
static Not : string;
914
static Mul : string;
@@ -24,32 +29,32 @@ export declare class Operators {
2429
static BitAnd : string;
2530
}
2631

27-
export declare class ArithmeticExpression implements ExpressionBase {
32+
export declare class ArithmeticExpression extends Expression {
2833
constructor(left: any, operator: string, right:any);
2934
exprOf(): any;
3035
}
3136

32-
export declare class MemberExpression implements ExpressionBase {
37+
export declare class MemberExpression extends Expression {
3338
constructor(name: string);
3439
exprOf(): any;
3540
}
3641

37-
export declare class LogicalExpression implements ExpressionBase {
42+
export declare class LogicalExpression extends Expression {
3843
constructor(operator: string, args: Array<any>);
3944
exprOf(): any;
4045
}
4146

42-
export declare class LiteralExpression implements ExpressionBase {
47+
export declare class LiteralExpression extends Expression {
4348
constructor(value: any);
4449
exprOf(): any;
4550
}
4651

47-
export declare class ComparisonExpression implements ExpressionBase {
52+
export declare class ComparisonExpression extends Expression {
4853
constructor(left: any, operator: string, right:any);
4954
exprOf(): any;
5055
}
5156

52-
export declare class MethodCallExpression implements ExpressionBase {
57+
export declare class MethodCallExpression extends Expression {
5358
constructor(name: string, args: Array<any>);
5459
exprOf(): any;
5560
}
@@ -59,12 +64,12 @@ export declare class SwitchExpression extends MethodCallExpression {
5964
exprOf(): any;
6065
}
6166

62-
export declare class SequenceExpression implements ExpressionBase {
67+
export declare class SequenceExpression extends Expression {
6368
constructor();
6469
exprOf(): any;
6570
}
6671

67-
export declare class ObjectExpression implements ExpressionBase {
72+
export declare class ObjectExpression extends Expression {
6873
constructor();
6974
exprOf(): any;
7075
}

0 commit comments

Comments
 (0)