Mercurial > hg > Members > nobuyasu > myCompiler
comparison Bison-Flex/BasicCompiler-StackBase/UTF8/vm_code.h @ 2:fbe42292d479
upload test
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 10 May 2011 06:43:55 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1:a3ea4c73696b | 2:fbe42292d479 |
---|---|
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 |