2 * Acess2 - SpiderScript
3 * - Script Exports (Lang. Namespace)
8 #include <spiderscript.h>
11 tSpiderValue *Exports_sizeof(tSpiderScript *Script, int NArgs, tSpiderValue **Args);
12 tSpiderValue *Exports_Lang_Strings_Split(tSpiderScript *Script, int NArgs, tSpiderValue **Args);
13 tSpiderValue *Exports_Lang_Struct(tSpiderScript *Script, int NArgs, tSpiderValue **Args);
16 tSpiderFunction gExports_Lang_Strings_Split = {
18 .Handler = Exports_Lang_Strings_Split,
19 .ReturnType = SS_MAKEARRAY(SS_DATATYPE_STRING),
20 .ArgTypes = {SS_DATATYPE_STRING, SS_DATATYPE_STRING, -1}
22 tSpiderNamespace gExports_NS_Lang_Strings = {
24 .Functions = &gExports_Lang_Strings_Split
27 tSpiderFunction gExports_Lang_Struct = {
29 .Handler = Exports_Lang_Struct,
30 .ReturnType = SS_DATATYPE_OPAQUE,
31 .ArgTypes = {SS_DATATYPE_STRING, -1}
34 tSpiderNamespace gExports_NS_Lang = {
36 .Functions = &gExports_Lang_Struct,
37 .FirstChild = &gExports_NS_Lang_Strings
39 tSpiderNamespace gExportNamespaceRoot = {
40 .FirstChild = &gExports_NS_Lang
43 // -- Global Functions
44 tSpiderFunction gExports_sizeof = {
46 .Handler = Exports_sizeof,
47 .ReturnType = SS_DATATYPE_INTEGER,
48 .ArgTypes = {SS_DATATYPE_UNDEF, -1}
50 tSpiderFunction *gpExports_First;
53 tSpiderValue *Exports_sizeof(tSpiderScript *Script, int NArgs, tSpiderValue **Args)
55 if(NArgs != 1 || !Args[0]) return NULL;
57 switch( Args[0]->Type )
59 case SS_DATATYPE_STRING:
60 return SpiderScript_CreateInteger(Args[0]->String.Length);
61 case SS_DATATYPE_ARRAY:
62 return SpiderScript_CreateInteger(Args[0]->Array.Length);
68 tSpiderValue *Exports_Lang_Strings_Split(tSpiderScript *Script, int NArgs, tSpiderValue **Args)
73 tSpiderValue *Exports_Lang_Struct(tSpiderScript *Script, int NArgs, tSpiderValue **Args)
76 printf("Exports_Lang_Struct: (Script=%p, NArgs=%i, Args=%p)\n", Script, NArgs, Args);
78 for( i = 0; i < NArgs; i ++ )
80 printf(" Args[%i] = {Type: %i, ", i, Args[i]->Type);
83 case SS_DATATYPE_INTEGER:
84 printf(" Integer: 0x%lx", Args[i]->Integer);
86 case SS_DATATYPE_REAL:
87 printf(" Real: %f", Args[i]->Real);
89 case SS_DATATYPE_STRING:
90 printf(" Length: %i, Data = '%s'", Args[i]->String.Length, Args[i]->String.Data);