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.s通过 sno 命令并将输出定向到文件输出中,输入:

sno < test.s > output

文件

描述
/usr/bin/sno 包含 sno 命令。