Chill 语言是一种使用S-表达式的语言。
Chill 的表达式由位于 ()
左端的 可调用对象/表达式 或 操作符 与 右侧的参数 组成。
在如下的定义中,对象与表达式 使用同一表示方法 : expr。
定义中:
- fexpr : 可调用的对象/表达式
- sexpr : 子表达式,没有特殊的要求
- bexpr : 布尔表达式
- rexpr : 范围表达式
- texpr : 类型表达式
- cexpr : 常量表达式
- vexpr : 带有值的表达式
- I : 标识符对象
- T : 类型对象
...
位于后缀 : 一个或多个表达式<>
所引用 : 可省略的内容<>*
所引用 : 任意个内容- 后缀的数字或 k, n 等字母 : 区别不同内容所使用的序号
(fexpr <sexpr ...>)
(do
<sexpr ...>
)
(? bexpr sexpr1 <sexpr2>)
(if bexpr0
sexpr0 ...
<elsif bexprk
sexprk ...>*
<else
sexprn ...>
)
(loop
sexpr ...
)
(while bexpr
sexpr ...
)
(for I in rexpr
sexpr ...
)
(let I vexpr)
(set I vexpr)
(cpy <I> vexpr)
(ref I I2)
(dim I texpr)
(restrict I texpr)
(define I cexpr)
(defunc I [<(I <: Type>)>*] <-> Type>
sexpr ...
)
(function <I> [<(I <: Type>)>*] <-> Type>
sexpr ...
)
(defstruct I
<[(I <: Type>)]>*
)
(struct <I>
<[(I <: Type>)]>*
)