mirror of
https://github.com/wren-lang/wren.git
synced 2026-01-11 14:18:42 +01:00
There's a lot of changes here and surely some rough edges to iron out. Also, I need to update the docs. But I want to get closer to landing this so I can build on it.
45 lines
1.2 KiB
C
45 lines
1.2 KiB
C
#include <string.h>
|
|
|
|
#include "get_variable.h"
|
|
|
|
static void beforeDefined(WrenVM* vm)
|
|
{
|
|
wrenGetVariable(vm, "./test/api/get_variable", "A", 0);
|
|
}
|
|
|
|
static void afterDefined(WrenVM* vm)
|
|
{
|
|
wrenGetVariable(vm, "./test/api/get_variable", "A", 0);
|
|
}
|
|
|
|
static void afterAssigned(WrenVM* vm)
|
|
{
|
|
wrenGetVariable(vm, "./test/api/get_variable", "A", 0);
|
|
}
|
|
|
|
static void otherSlot(WrenVM* vm)
|
|
{
|
|
wrenEnsureSlots(vm, 3);
|
|
wrenGetVariable(vm, "./test/api/get_variable", "B", 2);
|
|
|
|
// Move it into return position.
|
|
const char* string = wrenGetSlotString(vm, 2);
|
|
wrenSetSlotString(vm, 0, string);
|
|
}
|
|
|
|
static void otherModule(WrenVM* vm)
|
|
{
|
|
wrenGetVariable(vm, "./test/api/get_variable_module", "Variable", 0);
|
|
}
|
|
|
|
WrenForeignMethodFn getVariableBindMethod(const char* signature)
|
|
{
|
|
if (strcmp(signature, "static GetVariable.beforeDefined()") == 0) return beforeDefined;
|
|
if (strcmp(signature, "static GetVariable.afterDefined()") == 0) return afterDefined;
|
|
if (strcmp(signature, "static GetVariable.afterAssigned()") == 0) return afterAssigned;
|
|
if (strcmp(signature, "static GetVariable.otherSlot()") == 0) return otherSlot;
|
|
if (strcmp(signature, "static GetVariable.otherModule()") == 0) return otherModule;
|
|
|
|
return NULL;
|
|
}
|