メインコンテンツまでスキップ

コンパイラについて

利用方法

以下は 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 コンパイラの内部で行われる処理の流れの詳細は以下の通りです。

  1. プリプロセス

    入力されたプログラムに、いくつかの前処理を行います。

  2. AST の生成

    字句解析と構文解析を行い、抽象構文木(AST)を生成します。

  3. 意味解析

    AST を解析し、条件式の種別やキャプチャの型の推論などを行います。

  4. コード生成

    AST から、Rust コードを生成します。

  5. rustc コンパイル

    生成された Rust コードを rustc でコンパイルし、実行可能ファイルを生成します。
    --rs オプションを指定した場合には、このステップはスキップされます。