＜はじめに＞
"sps.exe"はSphereEngine4.0で使用されるスクリプト「SphereScript」の
記法習得およびアルゴリズム試験のために作成されたコンソールコンパイラ・実行エンジンです。

＜使用方法＞
テキストエディタなどで作成したスクリプトファイルを"sps.exe"の引数として指定してください。
スクリプトファイルをアイコンの上にドラッグアンドドロップしても同じことになります。

＜エラーが発生した場合＞
コンパイルエラーが発生した場合は"CompileError.txt"にエラー内容が出力されます。
サクラエディタ、秀丸などのタグジャンプが出来るようになっています。

ランタイムエラーが発生した場合は同様に"RuntimeError.txt"にエラー内容が出力されます。

＜サンプルスクリプトについて＞
「test.spt」
いわゆるHelloWorldです。
C言語のようなmain関数は必須ではないので、入出力やタスク管理を行う関数が定義されているインクルードファイル"system.inc"をインクルードして、文字列を表示する合計2行だけです。

「test2.spt」
入出力のサンプルとして、階乗を求めるスクリプトです。
input_string();関数は文字列を返すので、整数が欲しい場合は(int)で型キャストを行ってください。同様に少数の場合は(float)、文字列のままでいい場合はそのまま代入します。代入先の変数がint型で事前宣言されていれば自動型キャストされるので(int)などは不要になります。

「test3.spt」
2次元配列のサンプルとして、九九の表を求めるスクリプトです。
4次元配列まで作成できます。配列の宣言では（現在の機能では）初期値の代入ができません。必ずゼロクリアされます。
何らかの初期値が必要な場合はスクリプトで代入文を記述してください。
宣言しない変数はvaliable型になるという特性から、配列の添え字の範囲を超えてもエラーとならず、valiable型変数になってしまうので注意してください。

「test4.spt」
const型のサンプルです。
constを付与して変数宣言すると、値の代入が出来なくなります。関数の引数にconstを使うことも出来ます。
基本的にポカ除けなので、できることが増えるわけではないですが、このような修飾子をうまく使えるかどうかが、
大規模プログラミングに手を出すときに品質の差となって現れます。

「test5.spt」
関数型変数のサンプルです。
関数を変数に代入すると「関数型」と解釈されて、関数の別名のように扱えます。
C言語の関数ポインタとほぼ同じ使い方が出来ます。
サンプルにはありませんが、配列変数に関数を代入することも出来ます。

＜ライセンスについて＞
SphereEngine4.0に関わるソフトウェアは将来的にMITライセンスでオープンソース化される計画ですが、
現時点では本ソフトウェアはRectangleの著作物であり、全ての権利は著作権法により保護されております。
