言語書いてる人すごいな〜かっけな〜って思ったので、ちょっとした処理系を書いてみたくてやってみた。 主にWebやアプリを開発している人がやってみたので、処理系をやったことなくても、読みやすいと思う。 ※ ちょっと前に書いたRustのコードなので書き方がふるくなってるかも?? ソースコード https://github.com/anharu2394/rust-llvm-calculator 使ったライブラリ rust-PEG 知識がなくても、とりあえず簡単に構文が作れる。 inkwell LLVMのラッパー。安全にラップしたらしい。 詳しくないので勧められたから使った。 計算機の処理の流れ のちに詳しく説明する。 パース(文字列→AST) ↓ ASTをたどってLLVM IRに変換(AST->LLVM IR) ↓ (LLVM IRの関数を)実行する パース 上の通り、PEGというライブラリに任せ