语法
本项目的语法与原始 Wenyan 项目的 语法 大体相同,仅有一些细微变化。
语法设计完全兼容原始语法,意味着在原始版本上运行的代码可以直接在本项目中使用。然而,大多数因编译到 JavaScript 而产生的特性尚未扩展。
函数
详见方術
- 所有运算符(例如
加
、減
)已被替换为函数,可以作为函数调用使用。例如:取三以施加, 施加於一以一
。 書
现在是一个运算符,可以作为普通函数使用,例如書一
。
代词
- 代词
其
现在仅 pop 一个值。然而,在单次调用中 pop 的顺序是未定义的。例如,除其以其
产生未定义结果。 - 新增代词
之
。其行为类似于其
,但不会从答案堆栈中 pop 元素。与其
类似,避免在同一函数调用中使用之
和其
。这已在原始语法中使用,例如書之
、名之曰
。
数据
- 属性引用现在可以在任何期望普通数据值的地方使用。例如:
加「甲」之「乙」於一
。 夫
现在可以与任何数据配对,例如夫其
。名之曰
现在是一个独立语句,定义一个等于堆栈顶部值的变量。
类型
详见数据类型
- 该语言目前是弱类型语言,仅在赋值(例如
昔之...者 今...是矣
)和函数调用时尝试 cast 值。 - 当对两种不同类型的值进行加法时,语言会尝试将它们 cast 为兼容类型。
对象
详见格物
- 对象定义现在定义了一种类型,可以使用
造「物」
或施「物」
调用其构造函数来实例化对象。原始定义对象的方法保留为类的静态变量。 - 函数可以声明为
物之「甲」者術....
。 - 要声明非静态变量,请在构造函数中定义属性,例如
名之曰己之「甲」
,类似于 Python。 - 对象现在可以通过
吾有一物
后使用繼「物」
进行 extend,仅 extend 函数。 - 引入两个新变量:
己
指代类的实例,父
指代 super 类类型。 - 函数可以通过省略
己
成为静态函数。
未实现
- Macros
- 错误处理