LLVM でなんかしたい
遊びで言語処理系を作ってみようって感じ.
この本は,自分用のメモ的な感覚で書いてるので,あんまりしっかりはしてないかも.
書いたコードはここに置いてる.
気長〜に続けていきたい……
C++ で文字列を扱うのは,めんどくさい.
目的はあくまで,LLVM を使って何かしてみること.文字列処理に苦しみたいわけじゃない.
そこで,今回作る言語のソースコードは,[lex.charset] にある basic source character set のみで書かれているものとする.
コメントも例外ではない(日本語でコメント書けないのはつらいけど).でも,実装的には UTF-8 なら日本語でコメント書いても大丈夫だと思う
ASCII にあるドル $
とかバッククォート `
が無いけれど,それなりの言語は作れるだろう(C++ 自体がそうなわけだし).
ソースコード末尾の改行
ソースコードの末尾には,改行が必ず付いているものとする.そうするとちょっと楽になる.
JIT コンパイラ
1 文ずつコンパイルして実行する.
モジュールというのは LLVM の翻訳単位.よって 1 つの文が 1 つのモジュールとなる.