generated at
Hytl
RytlをHaskellで再実装する
mrsekutの自作プログラミング言語

CLI
alex/happyの実行とビルド
$ ./scripts/build.sh
インタプリタの起動
$ stack exec -- hytl-exe repl
:quit で終了
コンパイラの使用
.hytl ファイルをコンパイル
$ stack exec -- hytl-exe compile examples/ex1.hytl
もしくは --compile
.ll ファイルが作成される
バイナリまでのコンパイルをする
LLVM経由のインタプリタの起動
$ stack exec -- hytl-exe -i
未実装
.lli ファイルを実行する
$ lli examples/ex1.ll
brewの場合は $ /usr/local/opt/llvm/bin/lli examples/ex1.ll
バイナリの作成
$ llc examples/ex1.ll
$ gcc examples/ex1.s -o examples/ex1
バイナリファイルの実行
$ ./examples/ex1
引数をコンパイル&実行
$ ./scripts/compile.sh "fac = n => if n > 1 then n * fac (n - 1) else 1"
helpを見る
$ stack exec -- hytl-exe -h
もしくは --help
ファイルをコンパイル&実行
$
未実装



インタプリタのコマンド
起動
$ stack exec -- hytl-exe repl
実行
ex. hytl> 1 + 1
ASTの確認
:a または :ast
ex. hytl>:a 1+1
型の確認
:t または :type
ex. hytl>:t 1+1
終了
:q または :quit


目的
「こういう言語を作りたい」ってなったときにパパット作れるぐらいの素養を培いたい
今は、parserつくるとか、evalを作るところでいちいち躓いているが、その辺のスピード感を改善したい
「こういう言語を作りたい」という小さなアイディアをたくさん出して、それをバンバン形にできるような、そういう感じにしたい
Rytlの反省を活かしてとりあえず自堕落なコンセプトである程度形にする
Rustが大変すぎて開発がストップしたまま時間が経ってしまった
色々忙しくて時間が取れなかった
でかい目標を掲げていてかつ、全部手書きでやろうとしてたのが良くなかった