V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AbaoFromCUG
V2EX  ›  计算机

如何从 C++ 操作 lua 语法树,并从语法树最终生成 lua 代码

  •  
  •   AbaoFromCUG · 2019-09-12 12:45:21 +08:00 · 2168 次点击
    这是一个创建于 1903 天前的主题,其中的信息可能已经有所发展或是发生改变。

    应用场景

    在桌面端( C++编写),用户通过设置动画的播放时长、触发条件、播放动作(出现消失等),但最终需要导出为 lua 文件供 SDK 进行渲染,以前的做法是通过手动拼接字符串,最终导出为脚本,这样不够高效,且需要考虑的边界条件比较多,现在设想通过不同的 C++数据体导出生成自己的 body 代码,最终通过在 C++操作组装 lua AST,最终导出根据 ast 导出脚本(与脚本解析生成 AST 刚好相反)

    类似的工具

    目前类似的轮子找到recast,是用来 js 操作 js 语法树最终导出 js 脚本的工具

    metaluaLua 代码分析工具,自带 AST,但是是 lua 写的

    期望能找到一个 C++写的能直接操作 lua 语法树的轮子,不然就只能自己造轮子,成本比较高

    2 条回复    2019-10-05 08:48:14 +08:00
    ccpp132
        1
    ccpp132  
       2019-09-12 13:26:48 +08:00   ❤️ 1
    如果就是生成的话,ast 其实不方便,比较推荐搞个模版引擎
    AngelCriss
        2
    AngelCriss  
       2019-10-05 08:48:14 +08:00
    lua 有 opcode
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5438 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:28 · PVG 15:28 · LAX 23:28 · JFK 02:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.