2021-01-04 15:00:48 -05:00
|
|
|
#ifndef VM_TRANSLATOR
|
|
|
|
#define VM_TRANSLATOR
|
|
|
|
#include "vm-lines.h"
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
char* classname;
|
|
|
|
int classnamelen;
|
|
|
|
LINE* start;
|
|
|
|
LINE* currln;
|
|
|
|
STRINGLIST* garbage;
|
|
|
|
int cmpind;
|
|
|
|
int retind;
|
|
|
|
} VMTRANSLATOR;
|
|
|
|
|
2021-01-05 11:00:23 -05:00
|
|
|
typedef struct {
|
|
|
|
STRINGLIST* head;
|
|
|
|
STRINGLIST* tail;
|
|
|
|
} ASMBLK;
|
2021-01-04 15:00:48 -05:00
|
|
|
|
2021-01-05 11:00:23 -05:00
|
|
|
ASMBLK* translatevm(VMTRANSLATOR* t);
|
2021-01-04 15:00:48 -05:00
|
|
|
VMTRANSLATOR* mkvmtranslator(char* classname, LINEBLOCK* vmlines);
|
|
|
|
void freevmtranslator(VMTRANSLATOR* t);
|
2021-01-05 11:00:23 -05:00
|
|
|
void mergeasmblks(ASMBLK* a, ASMBLK* b);
|
2021-01-04 15:00:48 -05:00
|
|
|
|
|
|
|
#endif
|