HY.JavaCC (アセンブラー) を使用してアセンブリ コード (マイクロコントローラー 8051) からマシン コードに変換するパーサーを作成しようとしています。JavaCC の文法とその構造については読みましたが、ジレンマがあります。私はADD
指示を持っています:
`ADD A,Rn` or `ADD A,@Ri`
そして、それらのそれぞれについて、私は Machine code (hex code)ex: ADD A,R0
translates to 28H を持っています。また、私はMOV
命令を持つことができます:
MOV A,Rn
またはMOV A,@Ri
しかし、私も持ってい MOV data_addr,Rn
ます MOV R6,#data
。
今、私の問題は、2 つの命令の間でこの違いをどのように作成するかです。トークンを次のように
定義するとします。多くの命令があるため、特定の動作を指定する関数であるトークンごとに関数を定義できませんでした。少し、そう思いませんか....だから私はかなり行き詰まっています。どちらの道に進むべきかわかりません。
助けてくれてありがとう!
Token{
<IN_MOV :"mov">
|<IN_ADD:"add"
}token.image==.equals("mov"), then go on one direction to the specific behaviour