(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202211054216.7 (22)申请日 2022.08.31 (71)申请人 快意电梯股份有限公司 地址 523000 广东省东莞 市清溪镇谢坑村 金龙工业区 (72)发明人 李敬勇 雷树礼  (74)专利代理 机构 东莞卓为知识产权代理事务 所(普通合伙) 44429 专利代理师 齐海迪 (51)Int.Cl. G06F 40/205(2020.01) G06F 40/226(2020.01) G06F 30/13(2020.01) (54)发明名称 一种基于VB6的表达式处 理方法 (57)摘要 本发明公开一种基于VB6的表达式处理方 法, 包括表达式的验证及引用的变量的获取和表 达式的解析及计算两部分, 表达式的验证及引用 的变量的获取包括以下步骤: 初始化; 输入表达 式字符串; 读取操作项; 验证操作项; 操作项判 断; 储存变量名; 输出变量名数组; 表达式的解析 及计算包括以下步骤: 初始化; 输入表达式字符 串及变量名/变量值的键值对二维数组; 读取操 作项; 操作项判断; 优先级判断; 操作数出栈; 计 算; 操作数压栈; 操作符出栈; 是否变量; 替换变 量; 操作数压栈; 输出计算结果。 本发明提供的一 种基于VB6的表 达式处理方法, 用于CBOM, 可根据 编写出来的表达式不同的输入计算出不同的结 果, 同时还可以实时验证表达式的编写是否正 确。 权利要求书2页 说明书7页 附图2页 CN 115310424 A 2022.11.08 CN 115310424 A 1.一种基于VB6的表达式处理方法, 包括表达式的验证及引用的变量的获取和表达式 的解析及计算两 部分, 其特 征在于, 表达式的验证及引用的变量的获取包括以下步骤: a1、 初始化 加载包含所有内部 定义操作符的字典对象, 用作验证操作项; a2、 输入表达式字符串 接收表达式字符串; a3、 读取操作项 从表达式字符串中读取操作项; a4、 验证操作项 验证操作项是否为字符常量、 数字常量、 符号操作符、 函数操作符、 变量中的一种; a5、 操作项判断 判断操作项是否为变量; a6、 储存变量名 将变量名储 存于变量名数组中, 跳 到步骤a3读取 下一个最前面的操作项; a7、 输出变量名数组 将步骤a6中的变量名数组返回, 结束验证; 表达式的解析及计算包括以下步骤: b1、 初始化 加载包含所有内部定义操作符的字典对象, 用作计算时获取操作符所需操作数的数 量; 加载两个操作符 之间的优先级的字典对象, 用作优先级判断; b2、 输入表达式字符串及变量名/变量 值的键值对二维数组 接收表达 式字符串、 变量名/变量值的键值对二维数组将其转化成变量字典对象、 初始 化操作符栈、 操作符栈顶、 操作数栈、 操作数栈顶; b3、 读取操作项 从表达式字符串中读取最前面的操作项; b4、 操作项判断 判断读取到的操作项是否为操作符; b5、 优先级判断 根据操作符栈顶与步骤b3读取到操作项判断两个操作符 之间的优先级; b6、 操作数 出栈 根据操作符字典对象获取操作符栈顶所需操作 数的数量, 并按照此数量分别进行操作 数出栈; b7、 计算 根据操作符栈顶与步骤b6出栈的操作数调用内部计算 函数运算得出结果; b8、 操作数压栈 将步骤b7 所得运算结果压入操作数栈; b9、 操作符出栈 操作符出栈, 跳 到步骤b5, 进行当前操作符栈顶优先级判断; b10、 是否变量权 利 要 求 书 1/2 页 2 CN 115310424 A 2判断操作数 是否是变量; b11、 替换变量 根据变量的变量名从变量字典对象中获取变量 值; b12、 操作数压栈 将步骤b11中的变量值或者步骤b10中的操作数压入操作数栈, 跳到步骤b3读取下一个 最前面的操作项; b13、 输出计算结果 返回计算结果, 并结束。 2.根据权利要求1所述的一种基于VB6的表达式处理方法, 其特征在于, 步骤a1在一个 进程中仅需执 行一次。 3.根据权利 要求1所述的一种基于VB6的表达式处理方法, 其特征在于, 步骤a3中, 如果 读取到操作项则执 行步骤a4, 如果未读取到操作项则跳 到步骤a7。 4.根据权利 要求1所述的一种基于VB6的表达式处理方法, 其特征在于, 步骤a4中, 若操 作项是字符常量、 数字常量、 符号操作符、 函数操作符、 变量中的一种, 则执行步骤a5, 否则 广播错误。 5.根据权利 要求1所述的一种基于VB6的表达式处理方法, 其特征在于, 步骤a5中, 若步 骤a3读取到的操作项为变量, 则执 行步骤a6, 否则跳 到步骤a3读取 下一个最前面的操作项。 6.根据权利要求1所述的一种基于VB6的表达式处理方法, 其特征在于, 步骤b1在一个 进程中仅需执 行一次。 7.根据权利 要求1所述的一种基于VB6的表达式处理方法, 其特征在于, 步骤b3中, 如果 读取到操作项则执 行步骤b4, 如果未读取到操作项则跳 到步骤b13 。 8.根据权利 要求1所述的一种基于VB6的表达式处理方法, 其特征在于, 步骤b4中, 若步 骤b3读取到的操作项为操作符, 则执 行步骤b5, 否则跳 到步骤b10 。 9.根据权利 要求1所述的一种基于VB6的表达式处理方法, 其特征在于, 步骤b5中, 若操 作符栈顶优先级较高, 则执行步骤b6, 若操作符栈顶优先级较低, 则操作符压栈, 跳到步骤 b3。 10.根据权利 要求1所述的一种基于VB6的表达式处理方法, 其特征在于, 步骤b10中, 若 操作数为变量, 则执 行步骤b1 1, 否则跳 到步骤b12。权 利 要 求 书 2/2 页 3 CN 115310424 A 3

PDF文档 专利 一种基于VB6的表达式处理方法

文档预览
中文文档 12 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共12页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种基于VB6的表达式处理方法 第 1 页 专利 一种基于VB6的表达式处理方法 第 2 页 专利 一种基于VB6的表达式处理方法 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-24 00:46:30上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。