Thursday, 28 June 2018

A09

6809用のアセンブラですが、OS9 用の directive 入れようかなと。そんなことしなくても、適当にbinary作れば良いんですけどね。

いろいろ怪しいのだが、

  擬似命令のコードが2分木で実装されてるので辞書順

なのだが、その順序が間違ってる... おいおい。

expression を再帰下降法で作っているのだが、level を定義して、

short scanexpr(int level) { /* This is what you call _recursive_ descent!!!*/
if(level==10)return scanfactor();
t=scanexpr(level+1);
while(1) {
skipspace();
c=*srcptr++;
switch(c) {
case '*':oldcat=exprcat;
t*=scanexpr(10);
exprcat|=oldcat|16;
break;


ちょっと待て。そういうのrecursive_ descentとは言わんだろ。でも、こうすると、一種の先読み文法みたいになるらしく、演算子の順序をlevelで制御できるらしい。

治そうかと思ったけど、これも面白いかな。

No comments: