跳转至

语法

快速开始

本项目的语法与原始 Wenyan 项目的 语法 大体相同,仅有一些细微变化。

语法设计完全兼容原始语法,意味着在原始版本上运行的代码可以直接在本项目中使用。然而,大多数因编译到 JavaScript 而产生的特性尚未扩展。

函数

详见方術

  • 所有运算符(例如 )已被替换为函数,可以作为函数调用使用。例如:取三以施加, 施加於一以一
  • 现在是一个运算符,可以作为普通函数使用,例如 書一

代词

  • 代词 现在仅 pop 一个值。然而,在单次调用中 pop 的顺序是未定义的。例如,除其以其 产生未定义结果。
  • 新增代词 。其行为类似于 ,但不会从答案堆栈中 pop 元素。与 类似,避免在同一函数调用中使用 。这已在原始语法中使用,例如 書之名之曰

数据

  • 属性引用现在可以在任何期望普通数据值的地方使用。例如:加「甲」之「乙」於一
  • 现在可以与任何数据配对,例如 夫其
  • 名之曰 现在是一个独立语句,定义一个等于堆栈顶部值的变量。

类型

详见数据类型

  • 该语言目前是弱类型语言,仅在赋值(例如 昔之...者 今...是矣)和函数调用时尝试 cast 值。
  • 当对两种不同类型的值进行加法时,语言会尝试将它们 cast 为兼容类型。

对象

详见格物

  • 对象定义现在定义了一种类型,可以使用 造「物」施「物」 调用其构造函数来实例化对象。原始定义对象的方法保留为类的静态变量。
  • 函数可以声明为 物之「甲」者術....
  • 要声明非静态变量,请在构造函数中定义属性,例如 名之曰己之「甲」,类似于 Python。
  • 对象现在可以通过 吾有一物 后使用 繼「物」 进行 extend,仅 extend 函数。
  • 引入两个新变量: 指代类的实例, 指代 super 类类型。
  • 函数可以通过省略 成为静态函数。

未实现

  • Macros
  • 错误处理