sno コマンド
目的
SNOBOL インタープリターを提供します。
構文
sno [ファイル ...]
説明
sno コマンドは、SNOBOL コンパイラーおよびインタープリターを提供します。 これらは標準 SNOBOL とは一部が異なります。 このコマンドは指定されたファイルと標準入力を読み取り、end ラベルを含むステートメントまでの入力をすべてコンパイルします。 残りは疑似変数 syspit で使用できます。
sno コマンドは、以下の点で標準 SNOBOL と異なります。
- アンカーなしの検索はありません。 同じ効果を得るには、以下のような行を使用してください。
項目 説明 a ** b b のアンカーなしの検索を行います。 a *x* b = x c アンカーなしの割り当てを作成します。 - 逆参照はありません。
x = "abc"
項目 説明 a *x* x abc のアンカーなしの検索を作成します。 - 関数宣言は、コンパイル時に (非固有の) define ラベルを使用して行われます。 関数呼び出しの実行は、define ラベルの次のステートメントから始まります。 関数は実行時に定義することはできず、名前 define は優先使用されています。 パラメーター以外に自動変数は提供されません。 次に例を示します。
define f() define f(a, b, c) - define ( end) を除くすべてのラベルには、空でないステートメントが必要です。
- ラベル、関数、および変数は、すべて別個の名前を持つ必要があります。 特に end についての空ではないステートメントには、ラベルを指定するだけということはできません。
- start がプログラム内のラベルの場合、プログラムの実行はそこから始まります。 そうでなければ、プログラムの実行は最初の実行可能ステートメントから行われます。 define ラベルは実行可能ステートメントではありません。
- 組み込み関数はありません。
- 算術計算には括弧は必要ありません。 通常の計算順序が適用されます。 そのため、算術用演算子 ¥ (円記号) および * (アスタリスク) は、スペースで区切らなければなりません。
- 割り当ての右側は空であってはなりません。
- リテラル引用符には、 ' (単一引用符) または " (二重引用符) のいずれかを使用できます。
- 疑似変数 sysppt は使用できません。
例
ファイルを実行するにはtest.ssno コマンドを使用して出力をファイル出力に送信するには、次のように入力します。
sno < test.s > outputファイル
| 項目 | 説明 |
|---|---|
| /usr/bin/sno | sno コマンドが入っています。 |