HY.我正在尝试使用 JavaCC(汇编程序)制作一个解析器,以将汇编代码(微控制器 8051)转换为机器代码。我已经阅读了有关 javaCC 语法及其结构方式的信息,但我遇到了困境。例如我有ADD
指示:
`ADD A,Rn` or `ADD A,@Ri`
并且对于他们每个人,我都有一个 Machine code (hexa code)ex:ADD A,R0
转换为 28H 。而且我也可以得到MOV
指令:
MOV A,Rn
或者MOV A,@Ri
但我也有 MOV data_addr,Rn
等等 MOV R6,#data
。
现在我的问题是我如何在两条指令之间做出这种区别。假设我这样定义我的标记:
我无法为每个标记定义函数来指定特定行为的函数,因为我有很多指令。说这是一个很少,你不觉得吗?....所以我几乎被卡住了。我不知道该怎么走。
谢谢你的帮助。!
Token{
<IN_MOV :"mov">
|<IN_ADD:"add"
}token.image==.equals("mov"), then go on one direction to the specific behaviour