18 lines
496 B
C
18 lines
496 B
C
|
|
#include "../../../include/ground.h"
|
||
|
|
#include <stdint.h>
|
||
|
|
|
||
|
|
void _GroundBytecodeProgramExecute(GroundBytecodeProgram* program, GroundBytecodeHeap* heap) {
|
||
|
|
for (GroundSize i = 0; i < program->len; i++) {
|
||
|
|
int64_t status = Ground.Bytecode.Instruction.execute(&program->at[i], heap);
|
||
|
|
if (Ground.Flags.error) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
switch (status) {
|
||
|
|
case -1: break;
|
||
|
|
case -2: return;
|
||
|
|
default: i = status; break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|