Chiba Logo CHIBA v0.6.13
CHIBA blog RSS feed
CHIBA / DOCS / LEVEL-1 SPEC

表达式语句

这里集中展示 CHIBA level-1 specification,覆盖 core language、control flow、memory、patterns、IR lowering 与 package system 等实现边界。

The docs surface keeps CHIBA level-1 specification pages browsable inside the site, with direct paths into language, control flow, memory, pattern, and lowering rules.

表达式语句

语法

表达式可以出现在语句位置。

在 level-1 中,expression statement 的结束符只认:

  • ;
  • 换行 \n
  • Windows 风格换行 \r\n

这意味着 level-0 那种“expr 后任意空白都可以开始下一个表达式”的规则不再保留到 level-1。

语义

表达式语句的值会被丢弃,但其副作用仍保留。

因此,在 block 中需要“执行但丢弃结果”时,直接写表达式语句即可;level-1 不再把 let _ = expr 作为首选表面写法。

statement 边界必须可由显式分号或行结束稳定决定,而不能依赖任意空白分隔。

特别地,call expression 在行结束处默认终止;下一行出现的大括号不会被自动回接为上一行 call 的 trailing closure,即使该大括号以 {| 起手也一样。

level-1 只在少数明确情形下抑制“行结束即终止”的默认规则:

  • 当前仍处于未闭合的 ( [ { 内部
  • 当前行以明确的续接运算符结束,例如 |>

此外,某些 literal token 自身也会在词法层吞掉换行,例如允许多行的字符串字面量;这类情况不属于 layout 续接,而属于 token 尚未闭合。

除此之外,行结束默认终止当前 expression statement。