blob: 19d07aefe4e89a796721f84cebc60727e96d9a41 [file] [log] [blame]
//===------------- MSCorlib.h - The MSCorlib interface --------------------===//
//
// N3
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef N3_MSCORLIB_H
#define N3_MSCORLIB_H
#include "N3MetaType.h"
namespace n3 {
class N3;
class VMClass;
class VMClassArray;
class VMField;
class VMMethod;
class MSCorlib {
public:
static void initialise(N3* vm);
static void loadStringClass(N3* vm);
static void loadBootstrap(N3* vm);
static const char* libsPath;
static VMMethod* ctorClrType;
static VMClass* clrType;
static VMField* typeClrType;
static VMMethod* ctorAssemblyReflection;
static VMClass* assemblyReflection;
static VMClass* typedReference;
static VMField* assemblyAssemblyReflection;
static VMClass* propertyType;
static VMClass* methodType;
static VMMethod* ctorPropertyType;
static VMMethod* ctorMethodType;
static VMField* propertyPropertyType;
static VMField* methodMethodType;
static VMClass* resourceStreamType;
static VMMethod* ctorResourceStreamType;
#define DEF_TYPE(name, type) \
static VMClass* p##name;
#define DEF_ARRAY_AND_TYPE(name, type) \
DEF_TYPE(name, type) \
static VMClassArray* array##name; \
static VMField* ctor##name;
ON_TYPES(DEF_ARRAY_AND_TYPE, _F_NT)
ON_STRING(DEF_ARRAY_AND_TYPE, _F_NT)
ON_VOID(DEF_TYPE, _F_NT)
#undef DEF_ARRAY_AND_TYPE
#undef DEF_TYPE
static VMClass* pValue;
static VMClass* pEnum;
static VMClass* pArray;
static VMClass* pDelegate;
static VMClass* pException;
};
} // end namespace n3
#endif // N3_MSCORLIB_H