#miniserde #serialization #ast #json #turn #full-moon #luaparse

full-moon-compat-luaparse

将 full-moon AST 转换为 luaparse.js 兼容 JSON 的序列化器(使用 miniserde)

1 个不稳定版本

0.1.0 2020 年 8 月 4 日

#5 in #miniserde

MPL-2.0 许可证

47KB
1.5K SLoC

full-moon-compat-luaparse

这个包包含了一些具有 miniserde::Serialize 实现的包装类型,可以将 full-moon AST 序列化为与 luaparse 兼容的 JSON 文件


lib.rs:

full-moon <-miniserde-> luaparse.js

这是我编写的一个库,用于在我之前编写的一些软件和选定的 full_moon lua 解析库之间架起桥梁,这些软件使用的是 luaparse.js 的 JSON 输出。

它提供了一系列围绕 full-moon 类型构建的包装类型,并在它们上实现了 miniserdeminiserde::Serialize 特性。使用 Chunk::wrap(ast) 方法从 full-moon 的某个 Ast 开始。

然后您可以在实现 miniserde::Serialize 的任何 x 上使用 miniserde::json::to_string(x),例如上面提到的 Chunk

注意:此库包含一些代码,用于解决 full-moon 中缺失操作符优先级等问题。由于上游作者目前正在重构解析器,因此尝试分叉当前 API 没有意义。

依赖项

~3.5MB
~69K SLoC