易语⾔代码转换python_易语⾔通过⽂本解析的⽅式把C代码
转换成易代码
常量数据表
.版本 2
.常量 c, "", , '常量值是⼀段C代码
C代码转易代码
.版本 2
.⽀持库 commobj
.⽀持库 iext2
.程序集 窗⼝程序集_启动窗⼝
.程序集变量 k, 快速⽂本对象
.
程序集变量 k2, 快速⽂本对象
.⼦程序 __启动窗⼝_创建完毕
.局部变量 z, 字符格式
z.字体⼤⼩ = 8
z.字体名称 = “微软雅⿊”
d1.置默认字符格式 (z)
d2.置默认字符格式 (z)
d1.内容 = #c
.⼦程序 替换_程序命名, ⽂本型
.参数 str, ⽂本型
.局部变量 替换到
.
局部变量 位置1
.局部变量 位置2
.局部变量 s, ⽂本型, , "0"
.局部变量 s2, ⽂本型, , "0"
.局部变量 替换, ⽂本型, , "0"
.局部变量 替换为, ⽂本型, , "0"
.局部变量 参考数组, ⽂本型
.局部变量 i
k.置⽂本 (str)
位置1 = k.寻⽂本 (“void”, , 假)
.如果真 (位置1 = -1)
返回 (str)
.如果真结束
位置2 = k.寻⽂本 (“{”, 位置1, 假)
k2.置⽂本 (k.取⽂本 (位置1, 位置2 - 位置1))
k2.替换⼦⽂本 (#换⾏符, “”, , , 假)
k2.替换⼦⽂本 (“void”, “.⼦程序”, , , 假)
k2.替换⼦⽂本 (“,”, #换⾏符, , , 假)
k2.替换⼦⽂本 (“(”, #换⾏符, , 1, 假)
位置1 = k2.倒⽂本 (“)”, , 真)
.如果真 (位置1 ≠ -1)
k2.替换⽂本 (位置1, 1, “”)
.
如果真结束
str = “”
s = k2.分割⽂本 (#换⾏符, )
.计次循环⾸ (取数组成员数 (s), i)
s2 = 分割⽂本 (删⾸尾空 (s [i]), “ ”, )
.如果 (取⽂本右边 (s2 [2], 1) = “]”)
s2 [2] = ⽂本_最右标识取左 (s2 [2], “[”)
参考数组 = “, 数组”
.否则
参考数组 = “”
.如果结束
.
如果真 (取⽂本左边 (s2 [2], 1) = “(”)
s2 [2] = ⽂本_按前两标识取中 (s2 [2], “(&”, “)”)
参考数组 = “, 参考 数组”
.如果真结束
.如果真 (取⽂本左边 (s2 [2], 1) = “&”)
s2 [2] = 取⽂本右边 (s2 [2], 取⽂本长度 (s2 [2]) - 1)
参考数组 = “, 参考”
.如果真结束
.判断开始 (s2 [1] = “float”)
str = str + “.参数 ” + s2 [2] + “, ⼩数型” + 参考数组 + #换⾏符.判断 (s2 [1] = “int” 或 s2 [1] = “long”)
str = str + “.参数 ” + s2 [2] + “, 整数型” + 参考数组 + #换⾏符
.判断 (s2 [1] = “string”)
str = str + “.参数 ” + s2 [2] + “, ⽂本型” + 参考数组 + #换⾏符.判断 (s2 [1] = “short”)
str = str + “.参数 ” + s2 [2] + “, 短整数型” + 参考数组 + #换⾏符.默认
str = str + s [i] + #换⾏符
.判断结束
.计次循环尾 ()
返回 (str)
.⼦程序 替换_索引数字累加, ⽂本型
.参数 ⽂本, ⽂本型
.局部变量 i1
.局部变量 i2
.
局部变量 k0, 快速⽂本对象
python代码转换k0.置⽂本 (⽂本)
.循环判断⾸ ()
i1 = k0.寻⽂本 (“[”, i2, 真)
.如果真 (i1 = -1)
跳出循环 ()
.如果真结束
i1 = i1 + 1
i2 = k0.寻⽂本 (“]”, i1, 真)
.如果真 (i2 = -1)
跳出循环 ()
.
如果真结束
.判断开始 (到整数 (k0.取⽂本 (i1, i2 - i1)) > 0)
k0.替换⽂本 (i1, i2 - i1, 到⽂本 (到整数 (k0.取⽂本 (i1, i2 - i1)) + 1))
.判断 (到字节集 (k0.取⽂本 (i1, i2 - i1)) = { 48 })
k0.替换⽂本 (i1, 1, “1”)
.默认
.判断结束
.循环判断尾 (真)
返回 (k0.取⽂本 (, ))
.⼦程序 替换_注释, ⽂本型
.参数 ⽂本, ⽂本型
.
局部变量 i1
.局部变量 i2
k2.置⽂本 (⽂本)
.循环判断⾸ ()
i1 = k2.寻⽂本 (“//”, i2, 真)
.如果真 (i1 = -1)
跳出循环 ()
.如果真结束
i2 = k2.寻⽂本 (#换⾏符, i1, 真)
.如果真 (i2 = -1)
跳出循环 ()
.
如果真结束
k2.替换⽂本 (i1, i2 - i1, “'” + k2.取⽂本 (i1 + 2, i2 - i1 - 2) + “;”)
.循环判断尾 (真)
返回 (k2.取⽂本 (, ))
.⼦程序 替换_按⾏, ⽂本型
.参数 ⽂本, ⽂本型
.局部变量 s, ⽂本型, , "0"
.局部变量 f, ⽂本型, , "0"
.局部变量 i
s = 分割⽂本 (⽂本, #换⾏符, )
⽂本 = “”
.
计次循环⾸ (取数组成员数 (s), i)
s [i] = 删⾸尾空 (s [i])
.判断开始 (取⽂本左边 (s [i], 6) = “float ”)
f = 分割⽂本 (s [i], “float ”, )
⽂本 = “.局部变量 ” + ⽂本_按前两标识取中 (s [i], “float ”, “=”) + “,⼩数型” + #换⾏符 + ⽂本 + f [2] + #换⾏符.判断 (寻⽂本 (s [i], “*=”, , 假) ≠ -1)
f = 分割⽂本 (s [i], “*=”, )
⽂本 = ⽂本 + f [1] + “= ” + f [1] + “*” + f [2] + #换⾏符
.判断 (寻⽂本 (s [i], “/=”, , 假) ≠ -1)
f = 分割⽂本 (s [i], “/=”, )
⽂本 = ⽂本 + f [1] + “= ” + f [1] + “/” + f [2] + #换⾏符
.判断 (寻⽂本 (s [i], “+=”, , 假) ≠ -1)
f = 分割⽂本 (s [i], “+=”, )
⽂本 = ⽂本 + f [1] + “= ” + f [1] + “+” + f [2] + #换⾏符.判断 (寻⽂本 (s [i], “-=”, , 假) ≠ -1)
f = 分割⽂本 (s [i], “-=”, )
⽂本 = ⽂本 + f [1] + “= ” + f [1] + “-” + f [2] + #换⾏符.判断 (取⽂本右边 (s [i], 2) = “++”)
f = 分割⽂本 (s [i], “++”, )
⽂本 = ⽂本 + f [1] + “= ” + f [1] + “+1” + #换⾏符
.判断 (取⽂本右边 (s [i], 2) = “--”)
f = 分割⽂本 (s [i], “--”, )
⽂本 = ⽂本 + f [1] + “= ” + f [1] + “-1” + #换⾏符
.默认
⽂本 = ⽂本 + s [i] + #换⾏符
.
判断结束
.计次循环尾 ()
返回 (⽂本)
.⼦程序 替换_函数, ⽂本型
.参数 代码, ⽂本型
.局部变量 i
.局部变量 原, ⽂本型, , "0"
.局部变量 到, ⽂本型, , "0"
k2.置⽂本 (代码)
原 = { “/”, “*”, “sqrtf”, “cosf”, “sinf” }
到 = { “÷”, “×”, “求平⽅根”, “求余弦”, “求正弦 ” }
.
计次循环⾸ (取数组成员数 (原), i)
k2.替换⼦⽂本 (原 [i], 到 [i], , , 假)
.计次循环尾 ()
返回 (k2.取⽂本 (, ))
.⼦程序 _转换钮_被单击
.局部变量 s, ⽂本型
d2.内容 = 替换_程序命名 (⽂本_按标识取左 (d1.内容, “{”))
s = ⽂本_按两边标识取中 (d1.内容, “{”, “}”)
s = 替换_注释 (s)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论