跳转至

词法

Lumos 认可的空白字符只有 \x20(空格),\x09(制表符), \x0A(换行符)。
其它任何字符均不会被认为是空白字符。


对于运算符,我们的处理方法非常简单:

  • 以下字符被允许作为运算符的一部分:! @ # $ % ^ & * - + = | \ : ; < > , . ? / ~
  • 永远取最长的匹配。

也就是说,如果遇到这样的内容 a+-b,它会被解析为 +- 运算符,而不是 + 运算符后跟 - 运算符。
此时如果未定义 +- 运算符,则会报错。

如果我们定义一个运算:

// 我们用 `\mul` 来表示 `*` 运算符
// `\mul_mul` 也就是 `**` 运算符
def \mul_mul(int a, int b) -> int {
    return pow(a, b);
}