comparison Bison-Flex/BasicCompiler-StackBase/EUC/vm_code.h @ 0:db40c85cad7a default tip

upload sample source
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Mon, 09 May 2011 03:11:59 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:db40c85cad7a
1 #ifdef VM_ENUMDEF
2 #define VMCODE0(code_, name_) code_,
3 #define VMCODE1(code_, name_) code_,
4 #endif
5 #ifdef VM_CREATE
6 #define VMCODE0(code_, name_) void name_() { statement.push_back(CVMCode(code_)); }
7 #define VMCODE1(code_, name_) void name_(int arg1) { statement.push_back(CVMCode(code_, arg1)); }
8 #endif
9 #ifdef VM_EXEC
10 #define VMCODE0(code_, name_) void name_();
11 #define VMCODE1(code_, name_) void name_();
12 #endif
13 #ifdef VM_EXECTABLE
14 #define VMCODE0(code_, name_) &vcpu::name_,
15 #define VMCODE1(code_, name_) &vcpu::name_,
16 #endif
17 #ifdef VM_NAMETABLE
18 #define VMCODE0(code_, name_) #name_,
19 #define VMCODE1(code_, name_) #name_,
20 #endif
21
22 VMCODE1(VM_PUSHCONST, PushConst)
23 VMCODE1(VM_PUSHVALUE, PushValue)
24 VMCODE1(VM_POPVALUE, PopValue)
25 VMCODE0(VM_POP, OpPop)
26 VMCODE0(VM_NEG, OpNeg)
27 VMCODE0(VM_EQ, OpEq)
28 VMCODE0(VM_NE, OpNe)
29 VMCODE0(VM_GT, OpGt)
30 VMCODE0(VM_GE, OpGe)
31 VMCODE0(VM_LT, OpLt)
32 VMCODE0(VM_LE, OpLe)
33 VMCODE0(VM_ADD, OpAdd)
34 VMCODE0(VM_SUB, OpSub)
35 VMCODE0(VM_MUL, OpMul)
36 VMCODE0(VM_DIV, OpDiv)
37 VMCODE0(VM_MOD, OpMod)
38 VMCODE1(VM_JMP, OpJmp)
39 VMCODE1(VM_JMPC, OpJmpC)
40 VMCODE1(VM_JMPNC, OpJmpNC)
41 VMCODE1(VM_PRINT, OpPrint)
42 VMCODE0(VM_RAND, OpRand)
43 VMCODE0(VM_HALT, OpHalt)
44
45 #undef VMCODE0
46 #undef VMCODE1