Scripting: Add "internal" marker to classes, exported to docgen

This commit is contained in:
Vicki Pfau 2022-09-29 03:11:59 -07:00
parent 7719dd5ec4
commit 91fb63c484
5 changed files with 13 additions and 0 deletions

View File

@ -233,6 +233,10 @@ CXX_GUARD_START
} \ } \
}, },
#define mSCRIPT_DEFINE_INTERNAL { \
.type = mSCRIPT_CLASS_INIT_INTERNAL \
},
#define _mSCRIPT_STRUCT_METHOD_POP(TYPE, S, NPARAMS, ...) \ #define _mSCRIPT_STRUCT_METHOD_POP(TYPE, S, NPARAMS, ...) \
_mCALL(_mCAT(mSCRIPT_POP_, _mSUCC_ ## NPARAMS), &frame->arguments, _mCOMMA_ ## NPARAMS(S(TYPE), __VA_ARGS__)); \ _mCALL(_mCAT(mSCRIPT_POP_, _mSUCC_ ## NPARAMS), &frame->arguments, _mCOMMA_ ## NPARAMS(S(TYPE), __VA_ARGS__)); \
if (mScriptListSize(&frame->arguments)) { \ if (mScriptListSize(&frame->arguments)) { \

View File

@ -154,6 +154,7 @@ enum mScriptClassInitType {
mSCRIPT_CLASS_INIT_DEINIT, mSCRIPT_CLASS_INIT_DEINIT,
mSCRIPT_CLASS_INIT_GET, mSCRIPT_CLASS_INIT_GET,
mSCRIPT_CLASS_INIT_SET, mSCRIPT_CLASS_INIT_SET,
mSCRIPT_CLASS_INIT_INTERNAL,
}; };
enum { enum {
@ -245,6 +246,7 @@ struct mScriptTypeClass {
const struct mScriptClassInitDetails* details; const struct mScriptClassInitDetails* details;
const struct mScriptType* parent; const struct mScriptType* parent;
const char* docstring; const char* docstring;
bool internal;
struct Table instanceMembers; struct Table instanceMembers;
struct Table castToMembers; struct Table castToMembers;
struct mScriptClassMember* alloc; // TODO struct mScriptClassMember* alloc; // TODO

View File

@ -208,6 +208,9 @@ void explainClass(struct mScriptTypeClass* cls, int level) {
if (cls->parent) { if (cls->parent) {
fprintf(out, "%sparent: %s\n", indent, cls->parent->name); fprintf(out, "%sparent: %s\n", indent, cls->parent->name);
} }
if (cls->internal) {
fprintf(out, "%sinternal: true\n", indent);
}
if (cls->docstring) { if (cls->docstring) {
if (strchr(cls->docstring, '\n')) { if (strchr(cls->docstring, '\n')) {
fprintf(out, "%scomment: |-\n", indent); fprintf(out, "%scomment: |-\n", indent);

View File

@ -204,6 +204,7 @@ mSCRIPT_DECLARE_STRUCT_METHOD(mScriptSocket, WSTR, recv, _mScriptSocketRecv, 1,
mSCRIPT_DECLARE_STRUCT_METHOD(mScriptSocket, S32, select, _mScriptSocketSelectOne, 1, S64, timeoutMillis); mSCRIPT_DECLARE_STRUCT_METHOD(mScriptSocket, S32, select, _mScriptSocketSelectOne, 1, S64, timeoutMillis);
mSCRIPT_DEFINE_STRUCT(mScriptSocket) mSCRIPT_DEFINE_STRUCT(mScriptSocket)
mSCRIPT_DEFINE_INTERNAL
mSCRIPT_DEFINE_CLASS_DOCSTRING("An internal implementation of a TCP network socket.") mSCRIPT_DEFINE_CLASS_DOCSTRING("An internal implementation of a TCP network socket.")
mSCRIPT_DEFINE_STRUCT_DEINIT_NAMED(mScriptSocket, close) mSCRIPT_DEFINE_STRUCT_DEINIT_NAMED(mScriptSocket, close)
mSCRIPT_DEFINE_DOCSTRING("Closes the socket. If the socket is already closed, this function does nothing.") mSCRIPT_DEFINE_DOCSTRING("Closes the socket. If the socket is already closed, this function does nothing.")

View File

@ -1088,6 +1088,9 @@ static void _mScriptClassInit(struct mScriptTypeClass* cls, const struct mScript
docstring = NULL; docstring = NULL;
} }
break; break;
case mSCRIPT_CLASS_INIT_INTERNAL:
cls->internal = true;
break;
} }
} }
} }