SalHe 发表于 2015-4-19 12:51

【开源】【2015.04.19】易语言宏插件源码(易语言版源码),现已支持数组参数!!!

本帖最后由 SalHe 于 2015-4-21 12:52 编辑

嗯哼,这个源码呢搁浅了两个月
因为现在初二,同学们赶着学习呢
做事一定要提前有计划~~!

OK,今天周末,马上要去学校了扫地了
才写完滴,发给各位耍耍咯
我也不想废话哈,各位知道是啥就行咯
这是上次发的帖子:
【开源】【2015.02.16】易语言宏插件源码(易语言版源码)
http://bbs.125.la/thread-13776963-1-1.html

效果图:
http://bcs.duapp.com/salhe-space/bbs/pic/bbs.125.la/【2015.04.19】演示宏.gif

OK,我发下此图中的代码
.版本 2
.支持库 spec

.子程序 __启动窗口_创建完毕

' !!!请结合插件源码理解
' !!!其中 test_plugin 为宏插件编译后不包括扩展名的文件名

' !!!那个长整数型和小数型不知如何测试
' !!!因为我试过输入一个长整数,编译还是整数型
' !!!而小数型则是双精度小数型

' !!!Step.1
' !!!先测试下非数组的
调试输出 (“------------------------------------------”)
调试输出 (“Ok,让我们来测试下非数组宏参数的功能如何”)
调试输出 (宏 (“test_plugin”, 1))' @整数型
调试输出 (宏 (“test_plugin”, 1.1))' @双精度小数型
调试输出 (宏 (“test_plugin”, “文本型”))' @文本型
调试输出 (宏 (“test_plugin”, { 1, 2, 3, 4, 5 }))' @字节集
调试输出 (宏 (“test_plugin”, ))' @日期时间型
调试输出 (宏 (“test_plugin”, 真))' @逻辑型
调试输出 (宏 (“test_plugin”, 假))' @逻辑型

' !!!Step.2
' !!!然后是数组的
调试输出 (“------------------------------------------”)
调试输出 (“Ok,再来看看数组呢”)
调试输出 (宏 (“test_plugin”, { 1, 2, 3, 4, 5 }))' @整数型数组。编译器会理解成字节集 = =,大家明白就行啦哈
调试输出 (宏 (“test_plugin”, { 1.1, 2.1, 3.1, 4.1, 5.1 }))' @双精度小数型数组
调试输出 (宏 (“test_plugin”, { “a”, “b”, “c”, “d”, “e” }))' @文本型数组
调试输出 (宏 (“test_plugin”, { , }))' @日期时间型数组
调试输出 (宏 (“test_plugin”, { 真, 假 }))' @逻辑型数组
' 调试输出 (宏 (“test_plugin”, { {1,2}, {1,2}, {1,2}, {1,2}, {1,2}}))' @字节集数组?! 谁能告诉我怎么传?

' !!!Step.3
' !!!测试出个错
' 调试输出 (宏 (“test_plugin”, 1, 1))' @出个错试试(我们写的宏插件限制了1个参数)

' !!!下面这句话可跳过
' !!!参数类型不符合的错我到没想到

' !!!结束(),是为了我方便调试宏插件添加的
结束 ()

然后呢是输出栏的结果:
★☆WonderWall☆★正在检查并编译内联汇编代码 ... ...
正在编译现行程序
正在检查重复名称...
正在预处理现行程序
正在进行名称连接...
正在统计需要编译的子程序
正在编译...
★信息: 编译插件"test_plugin"被载入使用
正在生成主程序入口代码
★☆WonderWall☆★内联汇编代码编译成功,正在连接程序 ... ...
程序代码编译成功
正在封装易格式目的代码
开始运行被调试程序
* “------------------------------------------”
* “Ok,让我们来测试下非数组宏参数的功能如何”
* 2
* 2.100000
* “这是宏插件加上的哦~_文本型”
* 字节集:6{1,2,3,4,5,111}
*
* 假
* 真
* “------------------------------------------”
* “Ok,再来看看数组呢”
* 字节集:6{1,2,3,4,5,111}
* 数组:5{1.300000,2.300000,3.300000,4.300000,5.300000}
* 数组:5{“a_我会告诉你我是小尾巴么!~~”,“b_我会告诉你我是小尾巴么!~~”,“c_我会告诉你我是小尾巴么!~~”,“d_我会告诉你我是小尾巴么!~~”,“e_我会告诉你我是小尾巴么!~~”}
* 数组:2{,}
* 数组:2{假,真}
被调试易程序运行完毕

差点忘了附件:

源码修正:
.版本 2

.子程序 CalcArgPointer, 整数型, , 计算参数指针
.参数 apImmArgs, 整数型, , 宏参数首参数指针.其结构为 IMM_VALUE_WITH_DATA_TYPE
.参数 nArgIndex, 整数型, , 参数序号.

返回 (apImmArgs + (nArgIndex - 1) × 16)

快乐的2B 发表于 2015-4-19 13:05

这个插件干嘛的啊

lwa 发表于 2015-4-19 13:29

转往精益论坛,然后转钱。
页: [1]
查看完整版本: 【开源】【2015.04.19】易语言宏插件源码(易语言版源码),现已支持数组参数!!!