/[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 2588 by schoenebeck, Sun Jun 1 14:44:38 2014 UTC revision 2594 by schoenebeck, Thu Jun 5 00:16:25 2014 UTC
# Line 139  public: Line 139  public:
139  };  };
140  typedef Ref<ConstIntVariable,Node> ConstIntVariableRef;  typedef Ref<ConstIntVariable,Node> ConstIntVariableRef;
141    
142    class BuiltInIntVariable : public IntVariable {
143        String name;
144        VMIntRelPtr* ptr;
145    public:
146        BuiltInIntVariable(const String& name, VMIntRelPtr* ptr);
147        void assign(Expression* expr);
148        int evalInt();
149        void dump(int level = 0);
150    };
151    typedef Ref<BuiltInIntVariable,Node> BuiltInIntVariableRef;
152    
153  class PolyphonicIntVariable : public IntVariable {  class PolyphonicIntVariable : public IntVariable {
154  public:  public:
155      PolyphonicIntVariable(ParserContext* ctx);      PolyphonicIntVariable(ParserContext* ctx);
# Line 152  public: Line 163  public:
163      IntArrayVariable(ParserContext* ctx, int size);      IntArrayVariable(ParserContext* ctx, int size);
164      IntArrayVariable(ParserContext* ctx, int size, ArgsRef values);      IntArrayVariable(ParserContext* ctx, int size, ArgsRef values);
165      void assign(Expression* expr) {} // ignore scalar assignment      void assign(Expression* expr) {} // ignore scalar assignment
166      String evalCastToStr() { return ""; } // ignore cast to string      String evalCastToStr() { return ""; } // ignore scalar cast to string
167      ExprType_t exprType() const { return INT_ARR_EXPR; }      ExprType_t exprType() const { return INT_ARR_EXPR; }
168      const int arraySize() const { return values.size(); }      virtual int arraySize() const { return values.size(); }
169        virtual int evalIntElement(uint i);
170        virtual void assignIntElement(uint i, int value);
171        void dump(int level = 0);
172    protected:
173        IntArrayVariable(ParserContext* ctx, bool bConst);
174    };
175    typedef Ref<IntArrayVariable,Node> IntArrayVariableRef;
176    
177    class BuiltInIntArrayVariable : public IntArrayVariable {
178        String name;
179        VMInt8Array* array;
180    public:
181        BuiltInIntArrayVariable(const String& name, VMInt8Array* array);
182        int arraySize() const { return array->size; }
183      int evalIntElement(uint i);      int evalIntElement(uint i);
184      void assignIntElement(uint i, int value);      void assignIntElement(uint i, int value);
185      void dump(int level = 0);      void dump(int level = 0);
186  };  };
187  typedef Ref<IntArrayVariable,Node> IntArrayVariableRef;  typedef Ref<BuiltInIntArrayVariable,Node> BuiltInIntArrayVariableRef;
188    
189  class IntArrayElement : public IntVariable {  class IntArrayElement : public IntVariable {
190      IntArrayVariableRef array;      IntArrayVariableRef array;
# Line 548  public: Line 573  public:
573      std::vector<ParserIssue> warnings() const OVERRIDE;      std::vector<ParserIssue> warnings() const OVERRIDE;
574      VMEventHandler* eventHandler(uint index) OVERRIDE;      VMEventHandler* eventHandler(uint index) OVERRIDE;
575      VMEventHandler* eventHandlerByName(const String& name) OVERRIDE;      VMEventHandler* eventHandlerByName(const String& name) OVERRIDE;
576        void registerBuiltInConstIntVariables(const std::map<String,int>& vars);
577        void registerBuiltInIntVariables(const std::map<String,VMIntRelPtr*>& vars);
578        void registerBuiltInIntArrayVariables(const std::map<String,VMInt8Array*>& vars);
579  };  };
580    
581  class ExecContext : public VMExecContext {  class ExecContext : public VMExecContext {

Legend:
Removed from v.2588  
changed lines
  Added in v.2594

  ViewVC Help
Powered by ViewVC