• 注册
  • 易源码 易源码 关注:72 内容:2222

    易语言代码转C++代码工具源码_V2.1

  • 查看作者
  • 打赏作者
  • 当前位置: 七七博客 > 易源码 > 正文
    • 7
    • 易源码
    • 易语言代码转C++代码工具源码_V2.1

      源码介绍

      这个框架还挺自由,目前可以翻译比较基础的c语言(对象暂时没识别),本篇代码采用全新模板框架,模板翻译函数已能识别易语言我能翻译的所有结构“变量、参数、子程序、类、程序集、常量,当然除了窗口”。

      怎么个模板翻译法?

      e2ee的创建文本知道吗?有点类似。速度可能慢一点,没有用格式化文本(没做优化)比方说:我要翻译“寻找文本”这个指令,它有四个参数,如果直接字符串替换,会变成什么呢?寻找文本(a,b,c,d)——>  find(a,b,c,d)明显自由度不高!

      那么如果我参考格式化文本的方法呢?将参数用{x}替换,然后封装一下:“寻找文本({1},{2},{3},{4})——>  {1}.find({2},{3})”是不是自由多了?这是好实现的吧?于是扩展到可变参数“调试输出({…})—>debug(, , , , , , )”于是:加上附加目录、库目录、依赖项、剖析-易语言变量、参数、子程序、类、程序集、常量(模板可以任意搭配,也包括可变参数)

      模板你可以这样写;

      寻找文本()->find({1},{2})

      .如果()-> if({1})

      结束() -> exit(0)

      计次循环首()-> for(size_t i = {2}; {2} < {1} – 1; ++{2})

      可变参数你可以这样写;

      调试输出()-> debug({1}, {…})

      也可以这样写;

      调试输出()-> {2}.debug({1}, {…})

      也可以这样写;

      调试输出()-> {3}.debug({1}, {…})

      也可以这样写;

      调试输出()-> debug( {…})

      模板具体是怎么替换的呢?

      递归(虽然是递归,但是速度还行)取子参数,类似于树的后序遍历算法,取到最小的参数后,依次替换字符串,当然这里偷个懒,直接子字节集替换,没有用e2ee的函数,或者自己c++写个快一点的函数。

      隐藏内容需要回复可以看见

      回复
      Lv.11

      卧槽!无奈本人没文化,一句卧槽行天下!

      回复
      Lv.4

      楼主辛苦了,谢谢楼主,楼主好人一生平安!

      回复

      楼主辛苦了,谢谢楼主,楼主好人一生平安!

      回复

      感谢分享

      回复

      卧槽!无奈本人没文化,一句卧槽行天下!

      回复
      Lv.3

      1111111111111111111

      回复

      卧槽!无奈本人没文化,一句卧槽行天下!


      回复

      请登录之后再进行评论

      登录
    • 任务系统
    • 帖子间隔 侧栏位置: