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 |
|
ExprType_t exprType() const { return INT_ARR_EXPR; } |
86 |
|
}; |
87 |
|
|
88 |
class VMFnArgs { |
class VMFnArgs { |
89 |
public: |
public: |
90 |
virtual int argsCount() const = 0; |
virtual int argsCount() const = 0; |
350 |
virtual int suspensionTimeMicroseconds() const = 0; |
virtual int suspensionTimeMicroseconds() const = 0; |
351 |
}; |
}; |
352 |
|
|
353 |
|
/** @brief Script callback for a certain event. |
354 |
|
* |
355 |
|
* Represents a script callback for a certain event, i.e. |
356 |
|
* "on note ... end on". |
357 |
|
*/ |
358 |
class VMEventHandler { |
class VMEventHandler { |
359 |
public: |
public: |
360 |
|
/** |
361 |
|
* Name of the event handler which identifies its purpose. For example |
362 |
|
* for a "on note ... end on" script callback block, the name "note" |
363 |
|
* would be returned here. |
364 |
|
*/ |
365 |
virtual String eventHandlerName() const = 0; |
virtual String eventHandlerName() const = 0; |
366 |
|
|
367 |
|
/** |
368 |
|
* Whether or not the event handler makes any use of so called |
369 |
|
* "polyphonic" variables. |
370 |
|
*/ |
371 |
|
virtual bool isPolyphonic() const = 0; |
372 |
}; |
}; |
373 |
|
|
374 |
struct ParserIssue { |
struct ParserIssue { |