コンパイラ作成(17) 細かな修正

symlink

前回、いろいろなパターンでテストをしてて思ったんだけど、一々clang呼び出すのが面倒くさいよ。てことで楽ができるようにするよ。まずはsymlink。

~$ cd /usr/local/bin
/usr/local/bin$ sudo ln -s /home/xxx/myc/myc.rb myc
/usr/local/bin$

symlinkを張るのなんてめったにやらないからすぐにやり方忘れちゃうよ。

clangの自動実行

どうしようか悩んだけどmyc.rbの中に組み込んじゃった。

  # アセンブル、リンクコマンド
  def asmcmd()
     if @needprint then
       "clang-5.0 -s "+@asmfname+" print.o -o "+@exefname
     else
       "clang-5.0 -s "+@asmfname+" -o "+@exefname
     end
  end

Parserクラスにヘルパーメソッドを追加した。思いっきしハードコーディング。それはもう清々しいくらいに。

fname = ARGV[0]
parser = Parser.new(fname)
parser.program
system(parser.asmcmd)

コンパイル後にclangを実行するようsystemを追加。

動作チェック

動かしてみるよ。

~/myc$ myc i6.myc
~/myc$ ./i6
97
18048
~/myc$

よしよし。これでちょっと楽になったよ。さてと式の解析を改良する作業に戻るか。