00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef skiEXECUTABLE_H
00023 #define skiEXECUTABLE_H
00024
00025 #include "skString.h"
00026 #include "skExecutableContext.h"
00027
00028 class CLASSEXPORT skRValueArray;
00029 class CLASSEXPORT skRValueTable;
00030 class CLASSEXPORT skRValue;
00031 class CLASSEXPORT skExecutableIterator;
00032 class CLASSEXPORT skInterpreter;
00033
00034 #ifndef EXCEPTIONS_DEFINED
00035 #include "skScriptError.h"
00036 #endif
00037
00038
00039
00040
00041 const int UNDEFINED_TYPE=0;
00042
00043
00044
00045 const int START_USER_TYPES=10;
00046
00051 class CLASSEXPORT skiExecutable
00052 {
00053 public:
00057 virtual ~skiExecutable() {}
00058
00063 virtual int executableType() const=0;
00067 virtual int intValue() const=0;
00071 virtual bool boolValue() const=0;
00075 virtual Char charValue() const=0;
00079 virtual skString strValue() const=0;
00080 #ifdef USE_FLOATING_POINT
00081
00084 virtual float floatValue() const=0;
00085 #endif
00086
00093 virtual bool setValue(const skString& field_name,const skString& attribute,const skRValue& value)=0;
00101 virtual bool setValueAt(const skRValue& array_index,const skString& attribute,const skRValue& value)=0;
00109 virtual bool getValue(const skString& field_name,const skString& attribute,skRValue& value)=0;
00117 virtual bool getValueAt(const skRValue& array_index,const skString& attribute,skRValue& value)=0;
00130 virtual bool method(const skString& method_name,skRValueArray& arguments,skRValue& return_value,skExecutableContext& context)=0;
00134 virtual bool equals(const skiExecutable * other_object) const=0;
00140 virtual skExecutableIterator * createIterator(const skString& qualifier)=0;
00145 virtual skExecutableIterator * createIterator()=0;
00146
00152 virtual skString getSource(const skString& location)=0;
00157 virtual void getInstanceVariables(skRValueTable& table)=0;
00162 virtual void getAttributes(skRValueTable& table)=0;
00163 };
00164
00165
00166
00167 #define IS_METHOD(s,m) (s==m)
00168 #define IS_GETVALUE(s,v) (s==v)
00169 #define IS_SETVALUE(s,v) (s==v)
00170
00171
00172 #endif