/[svn]/linuxsampler/trunk/src/scriptvm/tree.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/scriptvm/tree.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3292 by schoenebeck, Thu Jun 22 10:45:38 2017 UTC revision 3293 by schoenebeck, Tue Jun 27 22:19:19 2017 UTC
# Line 65  public: Line 65  public:
65  };  };
66  typedef Ref<IntExpr,Node> IntExprRef;  typedef Ref<IntExpr,Node> IntExprRef;
67    
68  /*class IntArrayExpr : virtual public VMIntArrayExpr, virtual public Expression {  class IntArrayExpr : virtual public VMIntArrayExpr, virtual public Expression {
69  public:  public:
70      ExprType_t exprType() const { return INT_ARR_EXPR; }      ExprType_t exprType() const { return INT_ARR_EXPR; }
71      String evalCastToStr();      String evalCastToStr();
72  };  };
73  typedef Ref<IntArrayExpr,Node> IntArrayExprRef;*/  typedef Ref<IntArrayExpr,Node> IntArrayExprRef;
74    
75  class StringExpr : virtual public VMStringExpr, virtual public Expression {  class StringExpr : virtual public VMStringExpr, virtual public Expression {
76  public:  public:
# Line 173  public: Line 173  public:
173  };  };
174  typedef Ref<PolyphonicIntVariable,Node> PolyphonicIntVariableRef;  typedef Ref<PolyphonicIntVariable,Node> PolyphonicIntVariableRef;
175    
176  class IntArrayVariable : public Variable, virtual public VMIntArrayExpr {  class IntArrayVariable : public Variable, virtual public IntArrayExpr {
177      ArrayList<int> values;      ArrayList<int> values;
178  public:  public:
179      IntArrayVariable(ParserContext* ctx, int size);      IntArrayVariable(ParserContext* ctx, int size);
# Line 205  public: Line 205  public:
205  typedef Ref<BuiltInIntArrayVariable,Node> BuiltInIntArrayVariableRef;  typedef Ref<BuiltInIntArrayVariable,Node> BuiltInIntArrayVariableRef;
206    
207  class IntArrayElement : public IntVariable {  class IntArrayElement : public IntVariable {
208      IntArrayVariableRef array;      IntArrayExprRef array;
209      IntExprRef index;      IntExprRef index;
210  public:  public:
211      IntArrayElement(IntArrayVariableRef array, IntExprRef arrayIndex);      IntArrayElement(IntArrayExprRef array, IntExprRef arrayIndex);
212      void assign(Expression* expr);      void assign(Expression* expr);
213      int evalInt();      int evalInt();
214      void dump(int level = 0);      void dump(int level = 0);
# Line 333  public: Line 333  public:
333      virtual Statements* branch(uint i) const = 0;      virtual Statements* branch(uint i) const = 0;
334  };  };
335    
336  class DynamicVariableCall : public Variable, virtual public IntExpr, virtual public StringExpr {  class DynamicVariableCall : public Variable, virtual public IntExpr, virtual public StringExpr, virtual public IntArrayExpr {
337      VMDynVar* dynVar;      VMDynVar* dynVar;
338      String varName;      String varName;
339  public:  public:
# Line 347  public: Line 347  public:
347      int evalInt() OVERRIDE;      int evalInt() OVERRIDE;
348      String evalStr() OVERRIDE;      String evalStr() OVERRIDE;
349      String evalCastToStr() OVERRIDE;      String evalCastToStr() OVERRIDE;
350        int arraySize() const OVERRIDE { return dynVar->asIntArray()->arraySize(); }
351        int evalIntElement(uint i) OVERRIDE { return dynVar->asIntArray()->evalIntElement(i); }
352        void assignIntElement(uint i, int value) { return dynVar->asIntArray()->assignIntElement(i, value); }
353      void dump(int level = 0) OVERRIDE;      void dump(int level = 0) OVERRIDE;
354  };  };
355  typedef Ref<DynamicVariableCall,Node> DynamicVariableCallRef;  typedef Ref<DynamicVariableCall,Node> DynamicVariableCallRef;
# Line 743  public: Line 746  public:
746      void signalAbort() OVERRIDE {      void signalAbort() OVERRIDE {
747          flags = StmtFlags_t(flags | STMT_ABORT_SIGNALLED);          flags = StmtFlags_t(flags | STMT_ABORT_SIGNALLED);
748      }      }
749    
750        void forkTo(VMExecContext* ectx) const OVERRIDE;
751  };  };
752    
753  } // namespace LinuxSampler  } // namespace LinuxSampler

Legend:
Removed from v.3292  
changed lines
  Added in v.3293

  ViewVC Help
Powered by ViewVC