Indentations break the feed.
[SquirrelJME.git] / nanocoat / include / sjme / nvm / classyVm.h
blobe0168b4c7ee8ad8ecbb802d89d8ad8e87c0ea5bf
1 /* -*- Mode: C; indent-tabs-mode: t; tab-width: 4 -*-
2 // ---------------------------------------------------------------------------
3 // SquirrelJME
4 // Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
5 // ---------------------------------------------------------------------------
6 // SquirrelJME is under the Mozilla Public License Version 2.0.
7 // See license.mkd for licensing and copyright information.
8 // -------------------------------------------------------------------------*/
10 /**
11 * Classes as they appear to the runtime virtual machine.
13 * @since 2024/09/08
16 #ifndef SQUIRRELJME_CLASSYVM_H
17 #define SQUIRRELJME_CLASSYVM_H
19 #include "sjme/nvm/classy.h"
21 /* Anti-C++. */
22 #ifdef __cplusplus
23 #ifndef SJME_CXX_IS_EXTERNED
24 #define SJME_CXX_IS_EXTERNED
25 #define SJME_CXX_SQUIRRELJME_CLASSYVM_H
26 extern "C"
28 #endif /* #ifdef SJME_CXX_IS_EXTERNED */
29 #endif /* #ifdef __cplusplus */
31 /*--------------------------------------------------------------------------*/
33 /**
34 * Base structure for the class loader.
36 * @since 2024/09/08
38 typedef struct sjme_vmClass_loaderBase sjme_vmClass_loaderBase;
40 /**
41 * Virtual machine equivalent to Java's @c ClassLoader .
43 * @since 2024/09/08
45 typedef sjme_vmClass_loaderBase* sjme_vmClass_loader;
47 struct sjme_vmClass_loaderBase
49 /** Common NanoCoat storage. */
50 sjme_nvm_commonBase common;
53 /*--------------------------------------------------------------------------*/
55 /* Anti-C++. */
56 #ifdef __cplusplus
57 #ifdef SJME_CXX_SQUIRRELJME_CLASSYVM_H
59 #undef SJME_CXX_SQUIRRELJME_CLASSYVM_H
60 #undef SJME_CXX_IS_EXTERNED
61 #endif /* #ifdef SJME_CXX_SQUIRRELJME_CLASSYVM_H */
62 #endif /* #ifdef __cplusplus */
64 #endif /* SQUIRRELJME_CLASSYVM_H */