wenyan-lang / wenyan

文言文編程語言 A programming language for the ancient Chinese.
https://wy-lang.org/
MIT License
19.77k stars 1.1k forks source link

wenyan-json 结构化信息数据的文言表达 #539

Open lymslive opened 4 years ago

lymslive commented 4 years ago

Hi

首先感谢 @LingDong- 开辟了这么个有趣的项目。我之前都未尝在 github 上提过这么多 issue 。在多次讨论中也使我触发了更多的思考。由此我想到了将 json 结构化数据也用文言表达出来。不过这或许与 wenyan-lang 的发展方向未必十分吻合,所以我新建了一个独立项目:

https://github.com/lymslive/wenyan-json

欢迎品评。有兴趣的也可以用其熟悉的语言实现下 wenyan-json ,标准 json 的语法很简单的。

wenyan-lang 代码文件后缀名已提议推广用 .文言 了,所以我将 wenyan-json 数据文件后缀名提议 .wson.文语

由于个人兴趣原因,目前我先用非主流脚本语言 viml 实现了 wson 标准语法(有些细节尚待优化)。后面有时间可能考虑写个 C++ 版(也可呼唤大神援助)。等 wenyan-lang 成熟了,定是要用它实现一遍的,因为那将是 wenyan-lang 自举的初步试炼。

还是觉得用母语中文打字比较舒适,直达胸臆,请莫见怪。

LingDong- commented 4 years ago

This is looking great! Let's add it to wyg package registry or maybe even the stdlib when the wenyan-lang implementation is ready. It should be straightforward to implement, but I'm currently writing a classical Chinese handbook on programming with wenyan-lang, so I can look into it afterwards if nobody has taken up the job ;)

We can also think about the naming, JSON is javascript object notation. 拋磚引玉: WONTON(餛飩) Wenyan's Own Number, Text & Object Notation. It also hints that the format is "wrapping" data for "digestion", like wonton :D

Thanks for the good work!

lymslive commented 4 years ago

WONTON(餛飩) 的意象以及你的解释很好。这用于 wenyan-lang 语境中很合适。 不过我提出 wson 项目的意图,是希望它能成为更通用的中文数据表达格式,而不仅于 wenyan-lang. 就如 json 现已几乎内置于各个主流语言了(或库)。 我们开始推广 wson ,是需要先“编译”成 json ,以便让各语言读取处理,这是我开始取名 wson 的原因,见名思义。当大多数语言都能处理 wson 了,那么(在处理中文信息的应用中)就可以直接用 wson 文档交换信息了,那时或许就可以叫 .wonton 了。不过这用于文件后缀名有点长,json 四个字符已经偏长少见了。

但在 wenyan-lang 内部我支持用“餛飩”表达这种特殊类型。比如可先把 wson 解析模块独立实现, 然后在 wanyan-lang 代码中要用它表示 json 字面量时:

吾有一餛飩,名之曰‘甲’,其實如是曰:
……
是谓‘甲’之餛飩也

或者这样说:

吾有……,名……,餛飩开焉
……一波 wson 字面量……
也 // end

当然也可以扩展字面量语法,加入“术”