50 |
|
|
51 |
class VMIntExpr; |
class VMIntExpr; |
52 |
class VMStringExpr; |
class VMStringExpr; |
53 |
|
class VMIntArrayExpr; |
54 |
|
class VMStringArrayExpr; |
55 |
|
|
56 |
class VMExpr { |
class VMExpr { |
57 |
public: |
public: |
58 |
virtual ExprType_t exprType() const = 0; |
virtual ExprType_t exprType() const = 0; |
59 |
VMIntExpr* asInt() const; |
VMIntExpr* asInt() const; |
60 |
VMStringExpr* asString() const; |
VMStringExpr* asString() const; |
61 |
|
VMIntArrayExpr* asIntArray() const; |
62 |
}; |
}; |
63 |
|
|
64 |
class VMIntExpr : virtual public VMExpr { |
class VMIntExpr : virtual public VMExpr { |
73 |
ExprType_t exprType() const { return STRING_EXPR; } |
ExprType_t exprType() const { return STRING_EXPR; } |
74 |
}; |
}; |
75 |
|
|
76 |
|
class VMArrayExpr : virtual public VMExpr { |
77 |
|
public: |
78 |
|
virtual int arraySize() const = 0; |
79 |
|
}; |
80 |
|
|
81 |
|
class VMIntArrayExpr : virtual public VMArrayExpr { |
82 |
|
public: |
83 |
|
virtual int evalIntElement(uint i) = 0; |
84 |
|
virtual void assignIntElement(uint i, int value) = 0; |
85 |
|
}; |
86 |
|
|
87 |
class VMFnArgs { |
class VMFnArgs { |
88 |
public: |
public: |
89 |
virtual int argsCount() const = 0; |
virtual int argsCount() const = 0; |