|
15楼

楼主 |
发表于 2021-10-15 02:24:36
|
只看该作者
河北省唐山市

在尝试用系统核心库仿制精易模块函数时发现编译器有一个致命BUG,关于嵌套函数
目前已经有了新的处理算法解决方案,将要大修,请以最新版为主
以下是算法思路分享
//!!!注这是一个处理函数的处理流程
//首先删除括号内容中的所有空格
取文本右边(r,取文本长度(前面文本)-1,相加(1,2) + 相加(1,2))
//变这样后 拿掉主函数名留以备用 //函数名变量+1
取文本右边(r,取文本长度(前面文本)-1,相加(1,2)+相加(1,2))
//变这样后 删除首尾括号
(r,取文本长度(前面文本)-1,相加(1,2)+相加(1,2))
//变这样后 进行括号内逗号转义
r,取文本长度(前面文本)-1,相加(1,2)+相加(1,2)
//变这样后 将所有逗号变为空格
r,取文本长度(前面文本)-1,相加(1{D}2)+相加(1{D}2)
//变这样后 恢复所有被转义的逗号
r 取文本长度(前面文本)-1 相加(1{D}2)+相加(1{D}2)
//变这样后 将所有括号内的内容,包括括号,存放到一个数组变量中,内容位置并用占位符号标注 _RE?_KHBJ
r 取文本长度(前面文本)-1 相加(1,2)+相加(1,2)
//变这样后 分割“ ”(空格)
r 取文本长度<数组1>-1 相加<数组2>+相加<数组3>
//变这样后 将逐个分割表达式
{
r
取文本长度_RE1_KHBJ-1
相加_RE2_KHBJ+相加_RE3_KHBJ
}
//变这样后 将所有含 _RE 且 含 _KHBJ 的分割段储存,并将所有的_RE_KHBJ所在位置替换为 ^F?F^ 函数寄托占位符
{
r
取文本长度_RE1_KHBJ , - , 1
相加_RE2_KHBJ , + , 相加_RE3_KHBJ
}
//变这样后 将所有 ^F?F^数据中含有的括号以及内容复原到 _RE?_KHBJ 中,并依次所有表达式拼合
{
r
^F1F^ , - , 1
^F2F^ , + , ^F3F^
}
//变这样后 按数组排列将数组复原为一条数据用空格分割
{
r
^F1F^-1
^F2F^+^F3F^
}
//变这样后 根据情况按照这样返回
r ^F1F^-1 ^F2F^+^F3F^
//递归以及返回演示
判断循环(当前^F^的数量 > 处理)
{
处理 = 处理 + 1
FLT = FLT + #换行符 + 本处理流程递归调用(尖F[处理])
}
返回(函数名变量 + "r ^F1F^-1 ^F2F^+^F3F^" + #换行符 + 删除空行(FLT))
|
|