【AIGC】把文本当表达式:五个易语言计算小程序共享的一套手法

先看工具箱 五个程序按日期排:计算.e(2016-03-09)、计算无括号.e(2016-03-11)、简单的猜数字游戏(2016-03-29)、计算器 (2).e(2016-04-03)、XXX乘以XX23等于XX13计算.e(2018-07-26)。跨度两年多,但把源码并排放开,用到的命令翻来覆去就是那几个: 寻找文本:找子串第一次出现的位置,找不到返回 -1。这是全套程序里唯一的位置来源; 分割文本:按分隔符切成文本数组; 取文本左边 / 右边 / 中间:按位置和长度切片; 文本替换:按位置替换固定长度; 到整数 / 到数值:把文本拽回数字。 没有任何一个程序调用现成的求值接口——求值、解析、运算符分发,全部是这几个字符串原语手工搭出来的。下面按两个方向展开:把文本切出数字来算(求值器),和把数字写进文本里去试(填洞)。 值得先点破一件事:这套手法里唯一产出数字的命令是 寻找文本,而它在五个程序里同时扮演三种角色——跟 -1 比是存在性检查,位置互相比大小就是优先级表,相减就变成切片长度和扫描游标。所谓"手写求值器",剥到底就是把这一个返回位置的命令按不同形状组织起来。 ...