+#define SS_MAKEARRAY(_type) ((_type) + 0x10000)
+#define SS_DOWNARRAY(_type) ((_type) - 0x10000)
+#define SS_GETARRAYDEPTH(_type) ((_type) >> 16)
+
+enum eSpiderValueOps
+{
+ SS_VALUEOP_NOP,
+
+ SS_VALUEOP_ADD,
+ SS_VALUEOP_SUBTRACT,
+ SS_VALUEOP_NEGATE,
+ SS_VALUEOP_MULIPLY,
+ SS_VALUEOP_DIVIDE,
+ SS_VALUEOP_MODULO,
+
+ SS_VALUEOP_BITNOT,
+ SS_VALUEOP_BITAND,
+ SS_VALUEOP_BITOR,
+ SS_VALUEOP_BITXOR,
+
+ SS_VALUEOP_SHIFTLEFT,
+ SS_VALUEOP_SHIFTRIGHT,
+ SS_VALUEOP_ROTATELEFT
+};
+
+/**
+ * \brief Namespace definition
+ */
+struct sSpiderNamespace
+{
+ tSpiderNamespace *Next;
+
+ tSpiderNamespace *FirstChild;
+
+ tSpiderFunction *Functions;
+
+ tSpiderObjectDef *Classes;
+
+ int NConstants; //!< Number of constants
+ tSpiderValue *Constants; //!< Number of constants
+
+ const char Name[];
+};
+