stage0 更改名称spl_ir -> spl_mcode spl_cli提供debug模式 提供临时语言规范

This commit is contained in:
zzy committed 2026-07-29 12:05:18 +08:00
1 parent 89d4bae8db
commit a77eade06f
10 files changed
+1224 -476

No files matched your search

+16 -6
View File
@@ -4,23 +4,32 @@
* Built-in syscalls are auto-registered via spl_syscall_register().
*
* Usage:
* spl_cli <file.sir> [entry_point]
* spl_cli [-d] <file.sir> [entry_point]
*/
#include "spl_ir.h"
#include "spl_mcode.h"
#include "spl_syscall.h"
#include "spl_vm.h"
#include <stdio.h>
#include <string.h>
int main(int argc, const char **argv) {
if (argc < 2) {
fprintf(stderr, "Usage: spl_cli <file.sir> [entry_point]\n");
int debug_mode = 0;
int arg_idx = 1;
if (argc >= 2 && strcmp(argv[1], "-d") == 0) {
debug_mode = 1;
arg_idx = 2;
}
if (arg_idx >= argc) {
fprintf(stderr, "Usage: spl_cli [-d] <file.sir> [entry_point]\n");
return 1;
}
const char *path = argv[1];
const char *entry = argc >= 3 ? argv[2] : "main";
const char *path = argv[arg_idx];
const char *entry = argc >= arg_idx + 2 ? argv[arg_idx + 1] : "main";
spl_prog_t prog;
if (spl_prog_load_from_file(path, &prog) != 0) {
@@ -32,6 +41,7 @@ int main(int argc, const char **argv) {
spl_vm_t vm;
spl_vm_init(&vm);
if (debug_mode) spl_vm_set_debug(&vm, 1);
if (spl_vm_load_prog(&vm, &prog) != 0) {
fprintf(stderr, "vm: prog '%s' not found\n", entry);
spl_prog_drop(&prog);