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 命令。 |