コンパイラについて
利用方法
以下は Shol コンパイラの最も一般的な利用方法です。
shol myscript.shol
myscript.shol
から実行可能ファイルが生成されます。
オプション
Shol コンパイラにはいくつかのオプションを指定することができます。
-
-h
,--help
コマンドのヘルプメッセージを表示します。
-
-o FILENAME
出力ファイル名を指定します。
--rs
との併用時には、Rust のファイル名を指定します。 -
--rs
Rust ファイルを生成します。
実行可能ファイルは生成されません。 -
-S
,--save-temps
中間生成ファイルを保持します。
主にコンパイラのデバッグに使用します。 -
--log
コンパイル過程のログを出力します。
JSON 形式の AST や型推論の様子などが出力されます。
主にコンパイラのデバッグに使用します。
コンパイルの流れ
Shol コンパイラは、バックエンドとして Rust をターゲットとし、Rust のコンパイラ (rustc) を利用してバイナリを生成しています。
Shol コンパイラの内部で行われる処理の流れの詳細は以下の通りです。
-
プリプロセス
入力されたプログラムに、いくつかの前処理を行います。
-
AST の生成
字句解析と構文解析を行い、抽象構文木(AST)を生成します。
-
意味解析
AST を解析し、条件式の種別やキャプチャの型の推論などを行います。
-
コード生成
AST から、Rust コードを生成します。
-
rustc コンパイル
生成された Rust コードを rustc でコンパイルし、実行可能ファイルを生成します。
--rs
オプションを指定した場合には、このステップはスキップされます。