1 module derelict.angelscript.types; 2 3 enum ANGELSCRIPT_VERSION = 23200; 4 5 enum asERetCodes { 6 asSUCCESS = 0, 7 asERROR = -1, 8 asCONTEXT_ACTIVE = -2, 9 asCONTEXT_NOT_FINISHED = -3, 10 asCONTEXT_NOT_PREPARED = -4, 11 asINVALID_ARG = -5, 12 asNO_FUNCTION = -6, 13 asNOT_SUPPORTED = -7, 14 asINVALID_NAME = -8, 15 asNAME_TAKEN = -9, 16 asINVALID_DECLARATION = -10, 17 asINVALID_OBJECT = -11, 18 asINVALID_TYPE = -12, 19 asALREADY_REGISTERED = -13, 20 asMULTIPLE_FUNCTIONS = -14, 21 asNO_MODULE = -15, 22 asNO_GLOBAL_VAR = -16, 23 asINVALID_CONFIGURATION = -17, 24 asINVALID_INTERFACE = -18, 25 asCANT_BIND_ALL_FUNCTIONS = -19, 26 asLOWER_ARRAY_DIMENSION_NOT_REGISTERED = -20, 27 asWRONG_CONFIG_GROUP = -21, 28 asCONFIG_GROUP_IS_IN_USE = -22, 29 asILLEGAL_BEHAVIOUR_FOR_TYPE = -23, 30 asWRONG_CALLING_CONV = -24, 31 asBUILD_IN_PROGRESS = -25, 32 asINIT_GLOBAL_VARS_FAILED = -26, 33 asOUT_OF_MEMORY = -27, 34 asMODULE_IS_IN_USE = -28 35 } 36 37 enum asEEngineProp { 38 asEP_ALLOW_UNSAFE_REFERENCES = 1, 39 asEP_OPTIMIZE_BYTECODE = 2, 40 asEP_COPY_SCRIPT_SECTIONS = 3, 41 asEP_MAX_STACK_SIZE = 4, 42 asEP_USE_CHARACTER_LITERALS = 5, 43 asEP_ALLOW_MULTILINE_STRINGS = 6, 44 asEP_ALLOW_IMPLICIT_HANDLE_TYPES = 7, 45 asEP_BUILD_WITHOUT_LINE_CUES = 8, 46 asEP_INIT_GLOBAL_VARS_AFTER_BUILD = 9, 47 asEP_REQUIRE_ENUM_SCOPE = 10, 48 asEP_SCRIPT_SCANNER = 11, 49 asEP_INCLUDE_JIT_INSTRUCTIONS = 12, 50 asEP_STRING_ENCODING = 13, 51 asEP_PROPERTY_ACCESSOR_MODE = 14, 52 asEP_EXPAND_DEF_ARRAY_TO_TMPL = 15, 53 asEP_AUTO_GARBAGE_COLLECT = 16, 54 asEP_DISALLOW_GLOBAL_VARS = 17, 55 asEP_ALWAYS_IMPL_DEFAULT_CONSTRUCT = 18, 56 asEP_COMPILER_WARNINGS = 19, 57 asEP_DISALLOW_VALUE_ASSIGN_FOR_REF_TYPE = 20, 58 asEP_ALTER_SYNTAX_NAMED_ARGS = 21, 59 asEP_DISABLE_INTEGER_DIVISION = 22, 60 asEP_DISALLOW_EMPTY_LIST_ELEMENTS = 23, 61 asEP_PRIVATE_PROP_AS_PROTECTED = 24, 62 asEP_ALLOW_UNICODE_IDENTIFIERS = 25, 63 asEP_HEREDOC_TRIM_MODE = 26, 64 65 asEP_LAST_PROPERTY 66 } 67 68 enum asECallConvTypes { 69 asCALL_CDECL = 0, 70 asCALL_STDCALL = 1, 71 asCALL_THISCALL_ASGLOBAL = 2, 72 asCALL_THISCALL = 3, 73 asCALL_CDECL_OBJLAST = 4, 74 asCALL_CDECL_OBJFIRST = 5, 75 asCALL_GENERIC = 6, 76 asCALL_THISCALL_OBJLAST = 7, 77 asCALL_THISCALL_OBJFIRST = 8 78 } 79 80 enum asEObjTypeFlags { 81 asOBJ_REF = (1<<0), 82 asOBJ_VALUE = (1<<1), 83 asOBJ_GC = (1<<2), 84 asOBJ_POD = (1<<3), 85 asOBJ_NOHANDLE = (1<<4), 86 asOBJ_SCOPED = (1<<5), 87 asOBJ_TEMPLATE = (1<<6), 88 asOBJ_ASHANDLE = (1<<7), 89 asOBJ_APP_CLASS = (1<<8), 90 asOBJ_APP_CLASS_CONSTRUCTOR = (1<<9), 91 asOBJ_APP_CLASS_DESTRUCTOR = (1<<10), 92 asOBJ_APP_CLASS_ASSIGNMENT = (1<<11), 93 asOBJ_APP_CLASS_COPY_CONSTRUCTOR = (1<<12), 94 asOBJ_APP_CLASS_C = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_CONSTRUCTOR), 95 asOBJ_APP_CLASS_CD = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_CONSTRUCTOR + asOBJ_APP_CLASS_DESTRUCTOR), 96 asOBJ_APP_CLASS_CA = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_CONSTRUCTOR + asOBJ_APP_CLASS_ASSIGNMENT), 97 asOBJ_APP_CLASS_CK = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_CONSTRUCTOR + asOBJ_APP_CLASS_COPY_CONSTRUCTOR), 98 asOBJ_APP_CLASS_CDA = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_CONSTRUCTOR + asOBJ_APP_CLASS_DESTRUCTOR + asOBJ_APP_CLASS_ASSIGNMENT), 99 asOBJ_APP_CLASS_CDK = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_CONSTRUCTOR + asOBJ_APP_CLASS_DESTRUCTOR + asOBJ_APP_CLASS_COPY_CONSTRUCTOR), 100 asOBJ_APP_CLASS_CAK = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_CONSTRUCTOR + asOBJ_APP_CLASS_ASSIGNMENT + asOBJ_APP_CLASS_COPY_CONSTRUCTOR), 101 asOBJ_APP_CLASS_CDAK = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_CONSTRUCTOR + asOBJ_APP_CLASS_DESTRUCTOR + asOBJ_APP_CLASS_ASSIGNMENT + asOBJ_APP_CLASS_COPY_CONSTRUCTOR), 102 asOBJ_APP_CLASS_D = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_DESTRUCTOR), 103 asOBJ_APP_CLASS_DA = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_DESTRUCTOR + asOBJ_APP_CLASS_ASSIGNMENT), 104 asOBJ_APP_CLASS_DK = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_DESTRUCTOR + asOBJ_APP_CLASS_COPY_CONSTRUCTOR), 105 asOBJ_APP_CLASS_DAK = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_DESTRUCTOR + asOBJ_APP_CLASS_ASSIGNMENT + asOBJ_APP_CLASS_COPY_CONSTRUCTOR), 106 asOBJ_APP_CLASS_A = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_ASSIGNMENT), 107 asOBJ_APP_CLASS_AK = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_ASSIGNMENT + asOBJ_APP_CLASS_COPY_CONSTRUCTOR), 108 asOBJ_APP_CLASS_K = (asOBJ_APP_CLASS + asOBJ_APP_CLASS_COPY_CONSTRUCTOR), 109 asOBJ_APP_PRIMITIVE = (1<<13), 110 asOBJ_APP_FLOAT = (1<<14), 111 asOBJ_APP_ARRAY = (1<<15), 112 asOBJ_APP_CLASS_ALLINTS = (1<<16), 113 asOBJ_APP_CLASS_ALLFLOATS = (1<<17), 114 asOBJ_NOCOUNT = (1<<18), 115 asOBJ_APP_CLASS_ALIGN8 = (1<<19), 116 asOBJ_IMPLICIT_HANDLE = (1<<20), 117 asOBJ_MASK_VALID_FLAGS = 0x1FFFFF, 118 119 asOBJ_SCRIPT_OBJECT = (1<<21), 120 asOBJ_SHARED = (1<<22), 121 asOBJ_NOINHERIT = (1<<23), 122 asOBJ_FUNCDEF = (1<<24), 123 asOBJ_LIST_PATTERN = (1<<25), 124 asOBJ_ENUM = (1<<26), 125 asOBJ_TEMPLATE_SUBTYPE = (1<<27), 126 asOBJ_TYPEDEF = (1<<28), 127 asOBJ_ABSTRACT = (1<<29), 128 asOBJ_APP_ALIGN16 = (1<<30) 129 } 130 131 enum asEBehaviours { 132 asBEHAVE_CONSTRUCT, 133 asBEHAVE_LIST_CONSTRUCT, 134 asBEHAVE_DESTRUCT, 135 136 asBEHAVE_FACTORY, 137 asBEHAVE_LIST_FACTORY, 138 asBEHAVE_ADDREF, 139 asBEHAVE_RELEASE, 140 asBEHAVE_GET_WEAKREF_FLAG, 141 142 asBEHAVE_TEMPLATE_CALLBACK, 143 144 asBEHAVE_FIRST_GC, 145 asBEHAVE_GETREFCOUNT = asBEHAVE_FIRST_GC, 146 asBEHAVE_SETGCFLAG, 147 asBEHAVE_GETGCFLAG, 148 asBEHAVE_ENUMREFS, 149 asBEHAVE_RELEASEREFS, 150 asBEHAVE_LAST_GC = asBEHAVE_RELEASEREFS, 151 152 asBEHAVE_MAX 153 } 154 155 enum asEMsgType { 156 asMSGTYPE_ERROR = 0, 157 asMSGTYPE_WARNING = 1, 158 asMSGTYPE_INFORMATION = 2 159 } 160 161 enum asEContextState { 162 asEXECUTION_FINISHED = 0, 163 asEXECUTION_SUSPENDED = 1, 164 asEXECUTION_ABORTED = 2, 165 asEXECUTION_EXCEPTION = 3, 166 asEXECUTION_PREPARED = 4, 167 asEXECUTION_UNINITIALIZED = 5, 168 asEXECUTION_ACTIVE = 6, 169 asEXECUTION_ERROR = 7 170 } 171 172 enum asEGCFlags { 173 asGC_FULL_CYCLE = 1, 174 asGC_ONE_STEP = 2, 175 asGC_DESTROY_GARBAGE = 4, 176 asGC_DETECT_GARBAGE = 8 177 } 178 179 enum asETokenClass { 180 asTC_UNKNOWN = 0, 181 asTC_KEYWORD = 1, 182 asTC_VALUE = 2, 183 asTC_IDENTIFIER = 3, 184 asTC_COMMENT = 4, 185 asTC_WHITESPACE = 5 186 } 187 188 enum asETypeIdFlags { 189 asTYPEID_VOID = 0, 190 asTYPEID_BOOL = 1, 191 asTYPEID_INT8 = 2, 192 asTYPEID_INT16 = 3, 193 asTYPEID_INT32 = 4, 194 asTYPEID_INT64 = 5, 195 asTYPEID_UINT8 = 6, 196 asTYPEID_UINT16 = 7, 197 asTYPEID_UINT32 = 8, 198 asTYPEID_UINT64 = 9, 199 asTYPEID_FLOAT = 10, 200 asTYPEID_DOUBLE = 11, 201 asTYPEID_OBJHANDLE = 0x40000000, 202 asTYPEID_HANDLETOCONST = 0x20000000, 203 asTYPEID_MASK_OBJECT = 0x1C000000, 204 asTYPEID_APPOBJECT = 0x04000000, 205 asTYPEID_SCRIPTOBJECT = 0x08000000, 206 asTYPEID_TEMPLATE = 0x10000000, 207 asTYPEID_MASK_SEQNBR = 0x03FFFFFF 208 } 209 210 enum asETypeModifiers { 211 asTM_NONE = 0, 212 asTM_INREF = 1, 213 asTM_OUTREF = 2, 214 asTM_INOUTREF = 3, 215 asTM_CONST = 4 216 } 217 218 enum asEGMFlags { 219 asGM_ONLY_IF_EXISTS = 0, 220 asGM_CREATE_IF_NOT_EXISTS = 1, 221 asGM_ALWAYS_CREATE = 2 222 } 223 224 enum asECompileFlags { 225 asCOMP_ADD_TO_MODULE = 1 226 } 227 228 enum asEFuncType { 229 asFUNC_DUMMY =-1, 230 asFUNC_SYSTEM = 0, 231 asFUNC_SCRIPT = 1, 232 asFUNC_INTERFACE = 2, 233 asFUNC_VIRTUAL = 3, 234 asFUNC_FUNCDEF = 4, 235 asFUNC_IMPORTED = 5, 236 asFUNC_DELEGATE = 6 237 } 238 239 enum asBOOL { 240 asTRUE = 1, 241 asFALSE = 0 242 } 243 244 alias asBYTE = ubyte; 245 alias asWORD = ushort; 246 alias asUINT = uint; 247 alias asPWORD = size_t; 248 static if ((void*).sizeof == long.sizeof) { 249 alias asDWORD = uint; 250 alias asQWORD = ulong; 251 alias asINT64 = long; 252 } else { 253 alias asDWORD = ulong; 254 // TODO: Implement __GNUC__/__MWERKS__ from angelscript_c.h 255 // TODO: Implement else part of that. 256 } 257 258 259 struct asSMessageInfo { 260 const char *section; 261 int row; 262 int col; 263 asEMsgType type; 264 const char *message; 265 } 266 267 struct asIScriptEngine; 268 struct asIScriptModule; 269 struct asIScriptContext; 270 struct asIScriptGeneric; 271 struct asIScriptObject; 272 struct asITypeInfo; 273 struct asIScriptFunction; 274 struct asIBinaryStream; 275 struct asIJITCompiler; 276 struct asIThreadManager; 277 struct asILockableSharedBool; 278 279 alias asBINARYREADFUNC_t = void function(void*, asUINT, void*); 280 alias asBINARYWRITEFUNC_t = void function(const(void*), asUINT, void*); 281 alias asFUNCTION_t = void function(); 282 alias asGENFUNC_t = void function(asIScriptGeneric*); 283 alias asALLOCFUNC_t = void* function(size_t); 284 alias asFREEFUNC_t = void function(void*); 285 alias asCLEANENGINEFUNC_t = void function(asIScriptEngine*); 286 alias asCLEANMODULEFUNC_t = void function(asIScriptModule*); 287 alias asCLEANCONTEXTFUNC_t = void function(asIScriptContext*); 288 alias asCLEANFUNCTIONFUNC_t = void function(asIScriptFunction*); 289 alias asCLEANTYPEINFOFUNC_t = void function(asITypeInfo*); 290 alias asCLEANSCRIPTOBJECTFUNC_t = void function(asIScriptObject*); 291 alias asREQUESTCONTEXTFUNC_t = asIScriptContext* function(asIScriptEngine*, void*); 292 alias asRETURNCONTEXTFUNC_t = void function(asIScriptEngine*, asIScriptContext*, void*);