HY. Я пытаюсь создать синтаксический анализатор с использованием JavaCC (ассемблер) для преобразования из кода сборки (Microcontroller 8051) в код машины. Я читал о грамматике javaCC и ее структуре, но у меня возникла дилемма Например, у меня есть инструкция ADD
:
`ADD A,Rn` or `ADD A,@Ri`
и для каждого из них у меня есть машинный код (гекса код), например: ADD A,R0
переводится в 28H.
А также я могу иметь инструкцию MOV
:
MOV A,Rn
или MOV A,@Ri
но у меня также есть MOV data_addr,Rn
и MOV R6,#data
и т. Д.
Теперь моя проблема в том, как мне сделать эту разницу между двумя инструкциями. Предположим, я определил свои токены следующим образом:
Token{<br>
<IN_MOV :"mov"><br>
|<IN_ADD:"add"<br>
}
я не мог определить функции для каждого токена, чтобы функция определяла определенное поведение, потому что у меня много инструкций. Сказать, что token.image==.equals("mov"), then go on one direction to the specific behaviour
это немного, не правда ли? .... так что я в значительной степени застрял. Я не знаю, куда идти.
Спасибо за помощь.!