38 lines
1.2 KiB
C
Raw Normal View History

2022-01-29 00:53:57 +08:00
#include "PikaVM.h"
#include "dataStrs.h"
2022-01-28 00:43:09 +08:00
extern PikaObj* __pikaMain;
2022-01-28 12:10:32 +08:00
static enum shell_state __obj_shellLineHandler_debuger(PikaObj* self,
char* input_line) {
/* continue */
if (strEqu("c", input_line)) {
2022-01-28 00:43:09 +08:00
/* exit pika shell */
return SHELL_STATE_EXIT;
}
2022-01-29 00:53:57 +08:00
/* launch shell */
if (strEqu("sh", input_line)) {
/* exit pika shell */
pikaScriptShell(__pikaMain);
return SHELL_STATE_CONTINUE;
}
2022-01-29 00:53:57 +08:00
/* print */
if (strIsStartWith(input_line, "p ")) {
char* path = input_line + 2;
Arg* asm_buff = arg_setStr(NULL, "", "B0\n1 REF ");
asm_buff = arg_strAppend(asm_buff, path);
asm_buff = arg_strAppend(asm_buff, "\n0 RUN print\n");
pikaVM_runAsm(__pikaMain, arg_getStr(asm_buff));
arg_deinit(asm_buff);
2022-01-30 00:34:14 +08:00
return SHELL_STATE_CONTINUE;
2022-01-29 00:53:57 +08:00
}
2022-01-30 00:34:14 +08:00
__platform_printf("[error]: commond no found.\r\n");
2022-01-29 00:27:03 +08:00
return SHELL_STATE_CONTINUE;
2022-01-28 00:43:09 +08:00
}
void PikaDebug_Debuger_set_trace(PikaObj* self) {
struct shell_config cfg = {
.prefix = "(pika-debug) ",
};
2022-01-28 12:10:32 +08:00
obj_shellLineProcess(__pikaMain, __obj_shellLineHandler_debuger, &cfg);
2022-01-28 00:43:09 +08:00
}