Compare commits

..

10 Commits

Author SHA1 Message Date
Mike Nolan ea83025455 Fix some other code 2023-05-12 09:48:27 -05:00
Mike Nolan c726d6c0bb Fix some other code 2023-05-11 08:02:45 -05:00
Mike Nolan 5dbe7a6604 Fix some other code 2023-05-11 06:43:36 -05:00
Mike Nolan 1f578e25fa Fix some other code 2023-05-11 06:42:10 -05:00
Mike Nolan ff2140ddd8 Fix some other code 2023-05-11 06:39:34 -05:00
Mike Nolan c5bc5bc9ce Fix some other code 2023-05-11 06:36:58 -05:00
Mike Nolan b229826e14 Fix getarraynode.c 2023-05-11 06:34:42 -05:00
Mike Nolan fde7c6b5ab Remove wii stuff from tlang/src/main.c 2023-05-10 08:37:54 -05:00
Mike Nolan 82fef9c699 Add DockerWii 2023-05-10 08:37:00 -05:00
Mike Nolan bcbd2f124c Fix TLang.h maybe 2023-05-10 08:19:04 -05:00
15 changed files with 53 additions and 63 deletions

View File

@ -3,3 +3,12 @@ project(TLangInterperter)
add_subdirectory(libtlang) add_subdirectory(libtlang)
add_subdirectory(tlang) add_subdirectory(tlang)
install(TARGETS tlang RUNTIME DESTINATION bin)
set(CPACK_PACKAGE_NAME "tlang")
set(CPACK_PROJECT_NAME "tlang")
set(CPACK_PACKAGE_VERSION_MAJOR 0)
set(CPACK_PACKAGE_VERSION_MINOR 0)
set(CPACK_PACKAGE_VERSION_PATCH 0)
set(CPACK_PACKAGE_VERSION_PATCH 1)
include(CPack)

View File

@ -1 +1,3 @@
# TLang Scripting Language # TLang Scripting Language
## Please don't use yet (still in buggy state and will probably change)

7
docker/Wii/Dockerfile Normal file
View File

@ -0,0 +1,7 @@
FROM devkitpro/devkitppc:20230501
RUN dkp-pacman --noconfirm -Su && dkp-pacman --noconfirm -S libfat-ogc ppc-zlib ppc-jansson
WORKDIR "/tmp"
RUN wget https://gitlab.com/4TU/wii-packages/uploads/686f898638fb96af55e3754b92c5aaa7/libwiisocket-0.1-1-any.pkg.tar.zst https://gitlab.com/4TU/wii-packages/uploads/fc3378553929e58a397df6ec6204a1c0/wii-mbedtls-2.16.6-1-any.pkg.tar.zst https://gitlab.com/4TU/wii-packages/uploads/2b19acc728140dcfbbf7e18f9d9e312a/wii-curl-7.75.0-1-any.pkg.tar.zst && dkp-pacman --noconfirm -U libwiisocket-0.1-1-any.pkg.tar.zst wii-mbedtls-2.16.6-1-any.pkg.tar.zst wii-curl-7.75.0-1-any.pkg.tar.zst
WORKDIR "/usr/local/bin"
COPY run.sh run.sh
ENTRYPOINT ["bash","/usr/local/bin/run.sh"]

BIN
docker/Wii/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

10
docker/Wii/meta.xml Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<app version="1">
<name>TLang Scripting Language</name>
<version>0.0.0.1</version>
<release_date>20230510000000</release_date>
<coder>Tesses</coder>
<short_description>TLang Wii Version</short_description>
<long_description>My Scripting Language Created In 2023
</long_description>
</app>

10
docker/Wii/run.sh Normal file
View File

@ -0,0 +1,10 @@
#!/bin/bash
mkdir /project
cd /project
git clone https://gitlab.tesses.net/tesses50/tlang-c .
cd libtlang
make -f Makefile.wii
mkdir -p /out/apps/TLang/
cp boot.dol /out/apps/TLang/
cp /project/docker/Wii/meta.xml /out/apps/TLang/
cp /project/docker/Wii/icon.png /out/apps/TLang/

View File

@ -1,6 +1,7 @@
project(tlanginterp) project(tlanginterp)
add_library(tlanginterp STATIC src/addnode.c src/bit.c src/bitwiseand.c src/bitwiseor.c src/breaknode.c src/bwnot.c src/closurenode.c src/constnode.c src/curl.c src/dict.c src/dirittr.c src/dividenode.c src/eachnode.c src/eq.c src/forloop.c src/fs.c src/functioncallnode.c src/getarraynode.c src/getmembernode.c src/getvariablenode.c src/getvariablenode.c src/greaterthan.c src/greaterthanequal.c src/if.c src/ittr.c src/json.c src/leftshift.c src/lessthan.c src/lessthanequal.c src/lexer.c src/lextokenlist.c src/listittr.c src/logicaland.c src/logicalor.c src/mbed.c src/methodcallnode.c src/modulonode.c src/multiplynode.c src/neg.c src/neq.c src/net.c src/nodetwo.c src/not.c src/parser.c src/postfixdecrementnode.c src/postfixincrementnode.c src/rand.c src/returnnode.c src/rightshift.c src/runtime.c src/scope.c src/scopenode.c src/sdl2.c src/setvariablenode.c src/stream.c src/string.c src/stringittr.c src/subnode.c src/switch.c src/threading.c src/tobject.c src/whileloop.c src/wpad-wii.c src/xor.c include/FreeMonoBold.h include/myfeatures.h include/tlang_version.h include/tlang.h)
add_definitions(-DCMAKE_TLANG_BUILD) add_definitions(-DCMAKE_TLANG_BUILD)
add_library(tlanginterp STATIC src/addnode.c src/bit.c src/bitwiseand.c src/bitwiseor.c src/breaknode.c src/bwnot.c src/closurenode.c src/constnode.c src/curl.c src/dict.c src/dirittr.c src/dividenode.c src/eachnode.c src/eq.c src/forloop.c src/fs.c src/functioncallnode.c src/getarraynode.c src/getmembernode.c src/getvariablenode.c src/getvariablenode.c src/greaterthan.c src/greaterthanequal.c src/if.c src/ittr.c src/json.c src/leftshift.c src/lessthan.c src/lessthanequal.c src/lexer.c src/lextokenlist.c src/listittr.c src/logicaland.c src/logicalor.c src/mbed.c src/methodcallnode.c src/modulonode.c src/multiplynode.c src/neg.c src/neq.c src/net.c src/nodetwo.c src/not.c src/parser.c src/postfixdecrementnode.c src/postfixincrementnode.c src/rand.c src/returnnode.c src/rightshift.c src/runtime.c src/scope.c src/scopenode.c src/sdl2.c src/setvariablenode.c src/stream.c src/string.c src/stringittr.c src/subnode.c src/switch.c src/threading.c src/tobject.c src/whileloop.c src/wpad-wii.c src/xor.c include/FreeMonoBold.h include/myfeatures.h include/tlang_version.h include/tlang.h)
option(USE_SDL "Enable SDL2" ON) option(USE_SDL "Enable SDL2" ON)
option(USE_NETWORK "Enable Networking" ON) option(USE_NETWORK "Enable Networking" ON)
option(USE_CURL "Enable curl" ON) option(USE_CURL "Enable curl" ON)

View File

@ -285,7 +285,7 @@ void list_create(runtime_t* rt,list_tobject_t* ls,int count);
void list_add(list_tobject_t* a,tobject_t* item); void list_add(list_tobject_t* a,tobject_t* item);
void string_appendn(string_t* s,double val); void string_appendn(string_t* s,double val);
bool string_samep(string_t* s,const char* text); bool string_samep(string_t* s,const char* text);
string_t* string_replace(string_t* text,string_t* old,string_t* new); string_t* string_replace(string_t* text,string_t* old,string_t*);
tobject_t* string_split(runtime_t* rt,string_t* text,string_t* del,int max,bool empty); tobject_t* string_split(runtime_t* rt,string_t* text,string_t* del,int max,bool empty);
bool string_startswith(string_t* haystack,string_t* needle); bool string_startswith(string_t* haystack,string_t* needle);
bool string_endswith(string_t* haystack,string_t* needle); bool string_endswith(string_t* haystack,string_t* needle);

View File

@ -96,7 +96,7 @@ tobject_t* __node_getarray_execute(node_t* n,scope_t* s,retarg_t* retArg)
} }
void __kvp_set(tobject_t* parent_obj,tobject_t* argument_obj,tobject_t* variable) void __kvp_set(tobject_t* parent_obj,tobject_t* argument_obj,tobject_t* variable)
{ {
if(parent_obj->type != tdict) return NULL; if(parent_obj->type != tdict) return;
if(argument_obj->type == tstring) if(argument_obj->type == tstring)
{ {
char* p = string_dupp(argument_obj->data.string); char* p = string_dupp(argument_obj->data.string);

View File

@ -44,7 +44,7 @@ tobject_t* __node_method_call_execute(node_t* n,scope_t* s,retarg_t* retArg)
o->type = tchar; o->type = tchar;
o->data.chr= parent_obj->data.boolean ? 'y' : 'n'; o->data.chr= parent_obj->data.boolean ? 'y' : 'n';
} }
if(strcmp(name,'toNumber') == 0) if(strcmp(name,"toNumber") == 0)
{ {
o = tobject_create(s->rt); o = tobject_create(s->rt);
o->type = tnumber; o->type = tnumber;

View File

@ -123,7 +123,7 @@ tobject_t* __fs_readalltext_external_method(runtime_t* rt,void* ptr,list_tobject
if(f) if(f)
{ {
string_t* str = string_create(); string_t* str = string_create();
string_read(str,f,fread); string_read(str,f,(size_t (*)(void*,size_t,size_t,void*))fread);
free(fileName); free(fileName);
fclose(f); fclose(f);
return tobject_string(rt,str); return tobject_string(rt,str);

View File

@ -1,11 +1,11 @@
#include "tlang.h" #include "tlang.h"
extern void __node_two_free(node_t* n); extern void __node_two_free(node_t* n);
extern void __node_single_free(node_t* n); extern void __node_single_free(node_t* n);
node_t* __case_node_exec(node_t* n,scope_t* s,retarg_t* retArg) tobject_t* __case_node_exec(node_t* n,scope_t* s,retarg_t* retArg)
{ {
return n->data.two_node_node.right->execute(n->data.two_node_node.right,s,retArg); return n->data.two_node_node.right->execute(n->data.two_node_node.right,s,retArg);
} }
node_t* __default_node_exec(node_t* n,scope_t* s,retarg_t* retArg) tobject_t* __default_node_exec(node_t* n,scope_t* s,retarg_t* retArg)
{ {
return n->data.single_node_node->execute(n->data.single_node_node,s,retArg); return n->data.single_node_node->execute(n->data.single_node_node,s,retArg);
} }

View File

@ -1,7 +1,7 @@
#include "tlang.h" #include "tlang.h"
extern tobject_t* __loop_exec2(node_t* n,scope_t* s,retarg_t* retArg); extern tobject_t* __loop_exec2(node_t* n,scope_t* s,retarg_t* retArg);
extern bool __loop_bool(node_t* n,scope_t* s,retarg_t* retArg); extern bool __loop_bool(node_t* n,scope_t* s,retarg_t* retArg);
node_t* __while_loop_exec(node_t* n,scope_t* s,retarg_t* retArg) tobject_t* __while_loop_exec(node_t* n,scope_t* s,retarg_t* retArg)
{ {
s=scope_begin(s); s=scope_begin(s);

View File

@ -1,3 +1,5 @@
project(tlang) project(tlang)
add_executable(tlang src/main.c) add_executable(tlang src/main.c)
target_link_libraries(tlang tlanginterp) target_link_libraries(tlang tlanginterp)

View File

@ -4,63 +4,12 @@ void register_funcs(runtime_t* rt)
{ {
} }
#if defined(GEKKO)
#include <fat.h>
#include <stdio.h>
#include <stdlib.h>
#include <gccore.h>
void init_ogc(runtime_t* rt)
{
#if defined(HW_RVL)
__reg_wpad(rt);
#endif
VIDEO_Init();
fatInitDefault();
// Obtain the preferred video mode from the system
// This will correspond to the settings in the Wii menu
rmode = VIDEO_GetPreferredMode(NULL);
// Allocate memory for the display in the uncached region
xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
// Initialise the console, required for printf
console_init(xfb,20,20,rmode->fbWidth,rmode->xfbHeight,rmode->fbWidth*VI_DISPLAY_PIX_SZ);
// Set up the video registers with the chosen mode
VIDEO_Configure(rmode);
// Tell the video hardware where our display memory is
VIDEO_SetNextFramebuffer(xfb);
// Make the display visible
VIDEO_SetBlack(FALSE);
// Flush the video register changes to the hardware
VIDEO_Flush();
// Wait for Video setup to complete
VIDEO_WaitVSync();
if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync();
// The console understands VT terminal escape codes
// This positions the cursor on row 2, column 0
// we can use variables for this with format codes too
// e.g. printf ("\x1b[%d;%dH", row, column );
printf("\x1b[2;0H");
}
#endif
int main(int argc,char** argv) int main(int argc,char** argv)
{ {
runtime_t* rt = runtime_init(); runtime_t* rt = runtime_init();
runtime_register_std(rt); runtime_register_std(rt);
runtime_register(rt,register_funcs); runtime_register(rt,register_funcs);
#if defined(GEKKO)
init_ogc(rt);
#endif
if(argc < 2) if(argc < 2)
{ {
string_t* cmd=string_create(); string_t* cmd=string_create();
@ -88,7 +37,7 @@ int main(int argc,char** argv)
FILE* f = fopen(argv[1],"r"); FILE* f = fopen(argv[1],"r");
if(f != NULL){ if(f != NULL){
string_read(cmd,f,fread); string_read(cmd,f,(size_t (*)(void*,size_t,size_t,void*))fread);
fclose(f); fclose(f);
} }