setenv MATXCPP /usr/local/lib/gcc-lib/cpp
また,インタプリタmatxの実行時には__MATX__が,
コンパイラmatcの実行時には__MATC__が自動的に1に
定義される。これらを用いるとプログラム中の実行される箇所を
インタプリタとコンパイラで容易に変更できる。例えば関数のデバッグ時に
その関数をmatxでスクリプトとして実行したいとき以下のようすれば良い。
この例では,matxを実行するとプログラムはスクリプトとして実行され,
A, B, Cは大域変数として定義されるので,コマンドライン
からそれらを参照できる。matcを実行すれば,関数afo()が定義さ
れる。
#ifdef __MATC__
Func void afo()
{
#endif
Matrix A,B,C;
A = [[1 2][3 4]];
B = [[5 6][7 8]];
C = A + B;
print A,B,C;
#ifdef __MATC__
}
#endif
また,以下の例(関数がafo.mmというファイルに含まれるとする)
ではmatxをコマンドラインから
% matx afo.mm -e 'main();'
Func void afo()
{
Matrix A,B,C;
A = [[1 2][3 4]];
B = [[5 6][7 8]];
C = A + B;
print A,B,C;
}
#ifdef __MATX__
main();
#endif