Saturday 5 June 2021

LLVM Clang compile from string

ちょっと苦労しましたが動きました。CurLexer と CurTokenLexer とあって、

  Lex して MacroInfo にためたToken stream を CurTokenLexer が提供する

感じ。なのだが unique_ptr で、CurLexer が消されてしまう。なので、新しく作った TokenLexer と sawp 方式で。

まぁ、C++ 一つ一つの仕様は必然性があって便利に作られているんでしょうけど、

  あとから全体を見ると狂気にしか見えない

そんなものだな。でも、

   CompileFromString("int env_buf[64];",CompoundStmts);

とかできる。これで全体を書き直すと、かなり短かくなりますが、

  まぁ、そこまでやらなくても良いかな

少し盛り上がりに欠けるけど。

この部分は優秀な学生が書いてくれたんですが、優秀な学生にありがちなんだが、

  書き過ぎ

なんだよね。書き過ぎたら「他の方法があるはず」と思った方が良いらしい。そのOBに見せて自慢したい気もします。

No comments: