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 コマンドが入っています。