現在の|Sapid|では、二つの基本コマンドが用意されている。 一つは StreamCode を生成する``scat''である。このコマンドは 引数に指定されたソースプログラムを解析してStreamCodeを生成する。 また、ソースプログラムが指定されなかった場合には、標準入力から ソースプログラムを読み込んで解析する。
もう一つは、元のソースプログラムを再構成する``tacs''である。 このコマンドは標準入力からStreamCodeを読み込み再構成する。 また、オプションに `` -v'' を指定すると、各識別子と ブロックの直前に、それらの内部識別子を含むコメントが付加される。 これは、操作の対象を指定する際に用いる。 図3 に図1 を内部識別子付きソースプログラムに変換した 例を示す。 このソースプログラムは次のように実行した結果である。
scat hoge.c | tacs -vなお、現時点では前処理については一切対処していないため、 前処理後のソースプログラムが再構成される。
1 # 1 "hoge.c" 2 int /*##0abs*/ abs(int/*##*/ ); /* prototype */ 3 4 static int */*##0g*/ g; /* global variable */ 5 6 /* 7 * main function 8 */ 9 void /*##0main*/ main(int /*##0argc*/ argc, char **/*##0argv*/ argv) /*##6291464*/ { 10 int /* aaa */ /*##0a*/ a; 11 static char * /*##0p*/ p /* ppp */; 12 13 a = *g; 14 /*##6291462*/ if (a > 0) /*##6291459*/ { 15 a++; 16 } else /*##6291461*/ { 17 a = abs(a - 1); 18 } 19 20 printf("%d,%d\n", a, *g); 21 } |