老规矩,放法国人d'oxygen。
枚举值 符号表的使用 | |
---|---|
Tk | 是否关键字 |
Hash | Symbol哈希值 |
Name | Symbol名 |
Class | 常量 全局变量 本地变量 函数 系统调用 Id |
Type | 基础类型char,int,ptr, 一次指针 *char,*int,*ptr,二次指针**char,**int,**ptr |
Val | 常量 全局变量 本地变量 函数 系统调用 的值 |
HClass | 全局变量vs局部变量 |
HType | 全局变量vs局部变量 |
HVal | 全局变量vs局部变量 |
Idsz |
可以解析的关键字类型(不支持switch-case, do-while等)
enum | { Num = 128, Fun, Sys, Glo, Loc, Id, Char, Else, Enum, If, Int, Return, Sizeof, While, Assign, Cond, Lor, Lan, Or, Xor, And, Eq, Ne, Lt, Gt, Le, Ge, Shl, Shr, Add, Sub, Mul, Div, Mod, Inc, Dec, Brak} |
---|
自定义中间代码(在虚拟机中运行的伪汇编代码,可以用 -d 参数在命令行中打印查看)
枚举值 | |
---|---|
LEA | load局部变量 |
IMM | load 全局变量 |
JMP | jump |
JSR | goto 子程序 |
BZ | jump if |
BNZ | jump if not |
ENT | 再次goto gotuo 子程序 |
ADJ | sp+2 |
LEV | 子程序跳出 |
LI | load integer |
LC | load char |
SI | store integer |
SC | store char |
PSH | push register to sp |
OR | register operator |
XOR | register operator |
AND | register operator |
EQ | register operator |
NE | register operator |
LT | register operator |
GT | register operator |
LE | register operator |
GE | register operator |
SHL | register operator |
SHR | register operator |
ADD | register operator |
SUB | register operator |
MUL | register operator |
DIV | register operator |
MOD | register operator |
OPEN | system call |
READ | system call |
CLOS | system call |
PRTF | system call |
MALC | system call |
FREE | system call |
MSET | system call |
MCMP | system call |
EXIT | exit sp and print sp top |
具体的解析后面再展开。
我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。