構文チェッカー
SSPにゴーストを読み込ませなくても、手元でスクリプトの誤りを確かめられるツールがあります。
構文エラーと静的解析の結果(未定義の call、ループの外の break など)を一覧で表示します。
チェックするだけなので、save.json を読み書きしたり、SAORIを読み込んだりはしません。
ツールは2種類あります。
| ツール | 向いている人 |
|---|---|
minato_check_gui.exe(GUI版) | ダブルクリックで使いたい人 |
minato_check.exe(CLI版) | コマンドラインやスクリプトから使いたい人 |
どちらも同じチェックを行います。
GUI版(minato_check_gui)
minato_check_gui.exeをダブルクリックして起動します。- ゴーストのフォルダか、
talksフォルダの中の.mntファイルを窓にドラッグ&ドロップします。 ドロップできないときは「フォルダを選ぶ」「ファイルを選ぶ」ボタンから選んでください。 - エラー・警告・お知らせが色分けされて一覧で表示されます。
exeのアイコンにフォルダをドロップして起動することもできます。 前回選んだフォルダは記憶され、次に選択画面を開くとそこから始まります。
渡すフォルダは、ゴーストのフォルダ(ghost/master を含むフォルダ)でも、ghost/master そのものでもかまいません。
talks/main.mnt がある場所を自動で探します。
CLI版(minato_check)
talks/main.mnt を含むフォルダ(ゴーストの ghost/master)を指定して実行します。
minato_check.exe "C:\ghost\mighost\ghost\master"
GUI版と違い、CLI版には ghost/master そのものを渡してください。
| オプション | 意味 |
|---|---|
--no-color | 色付き表示をやめる(ログに保存するときなど) |
-h / --help | 使い方を表示する |
診断は1件につき次のような形で表示されます。
[error] main.mntの4行目(OnBoot内): メッセージ ヒント: …
問題がなければ「構文・静的解析ともに問題ありませんでした」と表示されます。 診断は標準エラー出力に、問題なしのメッセージだけが標準出力に出ます。
終了コード
| 終了コード | 意味 |
|---|---|
0 | 問題なし、または warning / notice だけ |
1 | 構文エラーか、errorレベルの静的解析結果がある |
コミット前のチェックやCIに組み込むときは、この終了コードで判定してください。
ドラッグ&ドロップで使う
minato_check.exe と tools\minato_check.bat を同じフォルダに置くと、
minato_check.bat に ghost/master フォルダをドラッグ&ドロップするだけでチェックできます。
結果を読めるように、終わったあと窓は閉じずに止まります。
自分でビルドする
Rustの環境があれば、ソースからビルドできます。
cargo build --release --features cli --bin minato_check
--features cli はチェッカー専用の依存を有効にするためのもので、本体DLLのビルドには必要ありません。
表示されるレベル
| レベル | 意味 |
|---|---|
error | このままでは読み込めない。直す必要がある |
warning | 動くが、意図どおりでない可能性が高い |
notice | 動作には影響しない。念のための知らせ |
それぞれのエラーの読み方はパースエラーの読み方を、よくある原因はよくあるミスを見てください。