表格语言
表格的书写与求值方式:记法、行形式、名称、严格与安静的行,以及 total 命令。
Numlex 表格是一叠逻辑行。你输入一行普通的便笺文本,答案列旁就会出现经过校验的结果。
本页是表格语言的正式起点:整个参考使用的记法、行可以采取的所有形式、名称与赋值规则、
严格行与安静文本的区别,以及内置的 total 命令。
记法
参考中使用少量占位符:
| 占位符 | 含义 |
|---|---|
<expr> | 任意算术表达式 |
<value> | 数值 |
<unit> | 单位或单位表达式 |
<place> | 自由文本地点名称(最多 100 个字符) |
<Answer Token> | 插入的答案令牌(U+FFFC 标记) |
语法单词为英文。在注明之处不区分大小写——OF 等同 of,Per Day 等同
per day。界面语言和区域数字格式是相互独立的设置:本地化绝不改变语法本身。
一行一结果
每个逻辑行在右列产生一个结果。行自上而下求值,某一行声明的名称对其下方的行可见。
行的形式
| 形式 | 示例 | 行为 |
|---|---|---|
| 空行 | 无结果。 | |
| 标题 | # Payroll sheet | 视觉标题;计算时跳过。 |
| 注释 | // week total | 可跳过的标题/注释行:无结果,永不参与计算(不是赋值,也不是「表格名称」)。 |
| 标签 | Total: | 以冒号结尾的行是标签/分隔符;按跳过求值。 |
| 命名值 | base pay = 4500 | <name> = <expr>:名称是 1–6 个 ASCII 单词(或单个令牌单词),≤ 40 个字符,首词以字母开头,名称不含运算符。值可变——后面更靠下的 <name> = <expr> 行会为下方的行覆盖它。 |
| 内置合计 | total | 命令(不区分大小写),汇总当前小节符合条件的行——参见 total 命令。 |
| 数字表达式 | 12 + 30 × 2 | 参见运算符与逻辑。 |
| 百分比与货币 | 15% of 490、$24 per day | 参见百分比和货币与费率。 |
| 单位 | 10 km to m、90 km per 3 day | 参见单位与数量。 |
| 整数进制 | 0x1F、255 as hex | 参见数字与进制。 |
| 日期 | May 5 + 3 weeks | 参见日期。 |
| 网络 | weather in London、distance between … | 参见实时数据与地理。 |
| 普通文本 | bought cable | 安静:无结果。唯一的旧式回退——在数字行中,未知拉丁单词会被划掉(5 apples + 3 → 8)。没有数字的普通文本和其他字母的单词永远不会被求值。 |
严格行与安静文本
大多数行可以是普通文本:如果 Numlex 读不出计算,该行就保持安静。有三类行则是严格的—— 它们的形状完全占用该行,解析失败是错误而不是回退:
- 货币行。 含货币标记(
$、€、100 USD…)的行必须完全解析为货币表达式;否则 是隐藏错误,不做任何猜测。 - 形似日期的行。
May 5 + 43(没有时长单词)是错误——绝不「退化」为普通数字。 - 形似调用的行。 形如函数调用的行(
name()是严格的:未知函数是错误,而不是括号 分组。
其他内容保持安静——包括普通文本,它永远不会被标记。
名称与赋值
- 用
name = expression声明值;之后该名称在下面所有行中代表该值。 - 名称是 1–6 个 ASCII 单词,最多 40 个字符,首词以字母开头,内部没有运算符。
- 赋值可变:再次写入同一名称会从该处向下覆盖它。
- 货币值也可以命名——声明
lunch = $45,之后写2 people × lunch(参见 货币与费率)。 - 表格名称与设置常量相互独立;常量机制见 自定义单位与常量。
total 命令
确切的命令是内容完全为 total 的行(不区分大小写)。它求当前小节的符合条件结果之和
——从工作表开头,或最近的上一 total、# 标题或精确 --- 分隔线起。
total行不会互相重复计入:先前算出的合计不进入下一个合计。但对合计行的普通引用是 普通行,会被计入。- 符合条件: 有限标量数字——包括百分比和倍数显示类型、命名标量,以及精确整数 (在 |v| ≤ 2^53 时精确)。
- 不符合条件: 货币、带单位的数量、布尔值、日期、错误、空行/标签行和派生聚合行。
- 遮蔽: 名为
total的活动命名值或常量会停用该命令——该行变成普通命名值。 total行是表格内的小节合计。它不同于应用底部的 Total 面板(后者不分小节汇总整个 表格),也不同于subtotal/grand total命令——见 标签、小计与统计。