mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
add DEF ARG and RET to VM instructs
This commit is contained in:
parent
5069eb683c
commit
85bfc2c9d8
15
src/PikaVM.c
15
src/PikaVM.c
@ -16,7 +16,7 @@ static int32_t getLineSize(char* str) {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
enum Instruct { NON, REF, RUN, STR, OUT, NUM, JMP, JEZ, OPT };
|
||||
enum Instruct { NON, REF, RUN, STR, OUT, NUM, JMP, JEZ, OPT, ARG, DEF, RET };
|
||||
|
||||
static char* strs_getLine(Args* buffs, char* code) {
|
||||
int32_t lineSize = getLineSize(code);
|
||||
@ -51,6 +51,15 @@ static enum Instruct getInstruct(char* line) {
|
||||
if (0 == strncmp(line + 2, "JEZ", 3)) {
|
||||
return JEZ;
|
||||
}
|
||||
if (0 == strncmp(line + 2, "ARG", 3)) {
|
||||
return ARG;
|
||||
}
|
||||
if (0 == strncmp(line + 2, "DEF", 3)) {
|
||||
return DEF;
|
||||
}
|
||||
if (0 == strncmp(line + 2, "RET", 3)) {
|
||||
return RET;
|
||||
}
|
||||
return NON;
|
||||
}
|
||||
|
||||
@ -134,6 +143,10 @@ Arg* pikaVM_runAsmInstruct(PikaObj* self,
|
||||
Arg* arg = arg_copy(obj_getArg(self, data));
|
||||
return arg;
|
||||
}
|
||||
if (instruct == ARG) {
|
||||
Arg* arg = arg_copy(args_getArg(localArgs, data));
|
||||
return arg;
|
||||
}
|
||||
if (instruct == JMP) {
|
||||
*jmp = fast_atoi(data);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user