精易论坛

标题: e2cpp,易转C++工具链 [打印本页]

作者: 阿龙    时间: 2022-5-20 03:36
标题: e2cpp,易转C++工具链
e2txt+反编译引擎+翻译的工具链
本来是打算词法分析直接替换的,后来发现要处理字符串和可空参数,还要写语法解析树,json还需要模块,只能放弃,改用文本替换+特殊情况处理。
生成的CPP稍微修改后可以编译(仅通过编译),不能全自动化自举(工具把工具源码转C++后我又稍微手动调整了一些地方),C++编译后的功能还没有测试。为了通过MSVC编译器编译易源码需要进行符合规则的调整,例如变量名不能与数据类型重名,亦不能与函数重名。需要调用指针的位置请在易源码里手动初始化赋值。自定义数据类型一定要按照声明顺序添加。尽量不要使用置入代码(不然只能X86了),调用DLL函数名不要和DLL的函数名重名,可以在前面加"e_",全局变量初始化等等等等。目前仅支持核心库的大部分命令并且无模块的控制台程序。待解决的点,能同时通过X64X86unicode和多字符编译的的核心库所有命令(除EDB)。可空参数补全。类文件的解析。系统API自动识别后从windows头文件的接口调用而非dll。Cmake文件生成并自动化编译链接,IDE,win窗口程序等等等等。目前当个玩具看看就行。



翻译工具转换后的源码

易语言源码

有些晚了也不想多写,完善完善再说吧。
源码有些大,链接地址:
70多兆是因为我把x86ansi的核心库放进去了,为什么核心库这么大,因为为了编译后体积更小我把每个函数单独写了一个cpp,目前一个lib里有一百多个obj,不想用可以用自己写的代替就行了。

5.20 添加类处理,也稍微修改了一下后编译成了一个模块(不是命令行,不是命令行)给搞不懂的水友做个例程。命令行源码仅仅加上了类。资源文件太大会导致文件翻译很慢,所以还是不要内存调用太大的文件,放到文件夹里会好点。子程序分析需要重新写,不然字节集类下标引用还需要手动调整。反正也开源了,大家自己改吧.
类处理:

函数测试:


另外核心库一起写有无?


备份:https://lanzout.com/i9W1P0l6pgba


e2cpp.7z

34.42 KB, 下载次数: 296, 下载积分: 精币 -2 枚


作者: Kyu    时间: 2022-5-20 09:00

作者: jiang910615    时间: 2022-5-20 09:03
学习学习
作者: 天雨时晴    时间: 2022-5-20 09:08
看一下
作者: zjmowu    时间: 2022-5-20 09:21
学习学习

作者: wjswzj0    时间: 2022-5-20 09:27
学习学习
作者: sinewtec    时间: 2022-5-20 09:31
大工程呀!继续努力!!!
作者: 胖虎O    时间: 2022-5-20 09:34
易语言转cpp?
作者: 飘零    时间: 2022-5-20 09:35
是个牛人啊
作者: e1jylt1m    时间: 2022-5-20 09:39
膜拜大佬 大佬加油
作者: byjimo    时间: 2022-5-20 10:10
感谢分享
作者: pjm123    时间: 2022-5-20 10:15
谢谢分享  
作者: yoobaby    时间: 2022-5-20 10:17
本帖最后由 yoobaby 于 2022-5-20 10:53 编辑

好工具,,感谢分享。。。。
作者: anshifu    时间: 2022-5-20 10:18
发帖
RE: e2cpp,易转C++工具链
作者: arlonshen    时间: 2022-5-20 10:18
感谢分享
作者: cf2006a    时间: 2022-5-20 10:20
好像很不错的样子

作者: 深爱者    时间: 2022-5-20 10:22
666666666666666666
作者: yuan71058    时间: 2022-5-20 10:33
感谢发布原创作品
作者: べ仅    时间: 2022-5-20 10:39
谢谢分享,学习一下。
作者: jysoft2022    时间: 2022-5-20 10:39
谢谢分享
作者: 千以亦    时间: 2022-5-20 10:39
支持!好东西
作者: qbb1822    时间: 2022-5-20 10:41
谢谢,楼主,无私奉献。
作者: 揰掵佲    时间: 2022-5-20 10:42
           
作者: mooo    时间: 2022-5-20 10:43
大佬太厉害了...
作者: yoobaby    时间: 2022-5-20 10:46
好奇的问下:这转换代码的方式是能过编译时提取易语言到C++转换后的代码吗?还是什么原理?
希望作者抽空回复下!!谢谢!
作者: 狐白    时间: 2022-5-20 10:48
先看看效果
作者: hekituik    时间: 2022-5-20 10:48
谢谢大佬啊11111
作者: hrb011011    时间: 2022-5-20 10:49
大佬牛逼
作者: Axinger    时间: 2022-5-20 10:51
支持楼主分享了
作者: kentfung    时间: 2022-5-20 10:52
这个可以哦,不知道能不能反过来,c++转成易呢??
作者: 阿龙    时间: 2022-5-20 11:11
yoobaby 发表于 2022-5-20 10:46
好奇的问下:这转换代码的方式是能过编译时提取易语言到C++转换后的代码吗?还是什么原理?
希望作者抽空回 ...

不会自动编译,只是分析易文件转为相应的C++代码,dll,全局变量和资源文件工具链末端没加cl编译器,也没有自动生成cmake文件,编译需要自己手动,易语言代码写的时候符合规范就行,还有几个不定参数我没有完善,字节集我也想直接用vector<byte>代替,不然字节集下标调用还需要手动改,核心库抽空我穿gitee上大家一起完善。
作者: shimengdage    时间: 2022-5-20 11:13
支持         
作者: a447409657    时间: 2022-5-20 11:25
66666666666666666
作者: xjshuaishuai    时间: 2022-5-20 11:36

作者: A6928564    时间: 2022-5-20 11:45
谢谢分享 太强大了
作者: 我是悟空    时间: 2022-5-20 11:49
支持开源~!感谢分享
作者: 汉族    时间: 2022-5-20 11:51
支持一下   
作者: windkey    时间: 2022-5-20 11:56
nb!!!!!!
作者: hk6242337    时间: 2022-5-20 12:01
感谢分享哈
作者: 我就等你Ⅳ个月    时间: 2022-5-20 12:02
这就非常牛逼了
作者: cwgwww    时间: 2022-5-20 12:02
这不错~感谢大佬分享!
作者: yunquan612    时间: 2022-5-20 12:16
啊啊啊啊啊啊啊啊啊
作者: 116154801    时间: 2022-5-20 12:21
66666666666666666666666666
作者: wmv520    时间: 2022-5-20 12:22
        支持开源~!感谢分享
作者: 梦想ol    时间: 2022-5-20 12:30
支持开源~!感谢分享
作者: fjgh    时间: 2022-5-20 12:30

作者: goldstars    时间: 2022-5-20 12:31
看看学习一下子
作者: TianYi_    时间: 2022-5-20 12:33
支持开源~!感谢分享
作者: 一一一2    时间: 2022-5-20 12:39
兄弟直接重新搞中文编程吧 这样太费事
作者: 杰西卡技术传媒    时间: 2022-5-20 12:39
感谢发布原创作品,精易因你更精彩!
作者: 2928133915    时间: 2022-5-20 12:39
支持一下呗- -
作者: 魄郁    时间: 2022-5-20 12:42
厉害了,不知道什么时候能完善使用
作者: 只听你德歌    时间: 2022-5-20 12:43
支持开源~!感谢分享
作者: Qmoon    时间: 2022-5-20 12:46
这是为数不多的好东西
作者: huayinzhe    时间: 2022-5-20 12:53
66666666
作者: 阿龙    时间: 2022-5-20 12:57
一一一2 发表于 2022-5-20 12:39
兄弟直接重新搞中文编程吧 这样太费事

那不就成火山了吗,我想是能直接向下兼容直接编译.e程序。不需要再写一遍,但是目前看来,还不如直接写编译器,这样就没办法纯易语言完成了。
作者: fengyishen    时间: 2022-5-20 12:59
感谢分享。
作者: jiang910615    时间: 2022-5-20 13:07
学习学习
作者: fdassd    时间: 2022-5-20 13:12
感谢分享
作者: 小花匠    时间: 2022-5-20 13:33
转C++工具链
作者: onefish    时间: 2022-5-20 13:49
#在这里快速回复# 转C++工具链
作者: 卡罢死机    时间: 2022-5-20 13:52
支持开源~!感谢分享
作者: 小翁哥哥    时间: 2022-5-20 14:01
顶楼主,感谢楼主的分享,谢谢
作者: 乡下佬陈    时间: 2022-5-20 14:12
强到没朋友啊
作者: 大猫猫    时间: 2022-5-20 14:39
开源精神必须支持
作者: likehao525    时间: 2022-5-20 14:48
感谢大佬分享
作者: TLDream    时间: 2022-5-20 14:52
谢谢分享嘎嘎
作者: z348870672    时间: 2022-5-20 14:57
6666666666666666
作者: mrd    时间: 2022-5-20 15:04
000000000000000000
作者: xiyuena    时间: 2022-5-20 15:18

作者: yfz0574    时间: 2022-5-20 15:43
当作玩具看看?似乎完成度挺高了的.
作者: incwin    时间: 2022-5-20 15:52
支持开源~!感谢分享
作者: 知识分子    时间: 2022-5-20 16:10
6666666666666666666666
作者: 无名d晓峰    时间: 2022-5-20 16:24

作者: 八零    时间: 2022-5-20 16:33
回复看一下能不能学到
作者: chenliben    时间: 2022-5-20 16:37
下载看看   
作者: 4891311a    时间: 2022-5-20 16:47
顶顶顶顶顶
作者: 温暖的舌骨    时间: 2022-5-20 16:48
学习一下~
作者: 阿龙    时间: 2022-5-20 17:15
yfz0574 发表于 2022-5-20 15:43
当作玩具看看?似乎完成度挺高了的.

差太多了,不能自动化编译连接,意义就不是特别大,只能说对于有C++基础的人让易语言项目转C++项目更方便了。但是转完还需要手动修改一部分,还要符合自己代码风格
作者: 反客为主    时间: 2022-5-20 17:20
开源精神必须支持~
作者: 小黄毛    时间: 2022-5-20 17:20
感谢楼主分享
作者: 1aa82e    时间: 2022-5-20 17:25
开源精神必须支持
作者: 愤怒的Rabbit    时间: 2022-5-20 17:41
看看看看看
作者: kflizcst    时间: 2022-5-20 17:42
厉害了,还是民间厉害,想尽办法来发挥易语言的价值,只可惜官方放弃了
作者: 戴眼镜的猫    时间: 2022-5-20 17:56
666666666666666大佬牛逼
作者: GYNB    时间: 2022-5-20 18:56
楼主太棒啦!正好在学C++针不戳
作者: 小熊君    时间: 2022-5-20 19:30
越来越多各种程序互相转换的了。
作者: chyun63    时间: 2022-5-20 19:43
支持开源~!感谢分享
作者: yxl2008    时间: 2022-5-20 19:46
感谢分享,下载学习!!!
作者: 冰棍好烫啊    时间: 2022-5-20 20:05
回复看隐藏
作者: 亲爸爸    时间: 2022-5-20 20:40

作者: 土匪668    时间: 2022-5-20 21:05
非常666666666
作者: wwff    时间: 2022-5-20 21:21
下载来学习学习
作者: fyh505099    时间: 2022-5-20 21:31
感谢分享 支持一下
作者: kantal    时间: 2022-5-20 22:48
支持开源~!感谢分享
作者: chis777780    时间: 2022-5-20 23:32
支持开源~!感谢分享
作者: 794229345    时间: 2022-5-20 23:44
楼主辛苦了,谢谢楼主,感谢楼主分享,楼主好人一生平安!!!
作者: 865473666    时间: 2022-5-20 23:53
学习学习学习
作者: 也许123    时间: 2022-5-21 00:21
9999999999999999999999
作者: luojunhu    时间: 2022-5-21 00:22
6666666666666666666666666666666




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4