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

易语言代码转C++代码工具源码_V2.1-云资源库
易语言代码转C++代码工具源码_V2.1
此内容为免费资源,请登录后查看
0
免费资源

1120240510213350

 

源码介绍

这个框架还挺自由,目前可以翻译比较基础的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++写个快一点的函数。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容