【技术实现步骤摘要】
一种基于VB6的表达式处理方法
[0001]本专利技术涉及一种表达式处理引擎,具体涉及一种基于VB6的表达式处理方法。
技术介绍
[0002]电梯设计BOM数字化平台(简称:CBOM)是一种自动获取电梯整梯设计BOM的系统。在CBOM中图纸的设计将转换成逻辑数据,在转换时需录入表达式。CBOM使用这些逻辑数据及用户输入的电梯参数信息自动获取电梯的设计BOM,在获取过程中,需要解析数据中的表达式。因此,表达式处理引擎是CBOM中较为关键的技术之一。
[0003]表达式可分为两种:常量表达式、带变量表达式,表达式是由至少一个操作项组成的字符串,其中操作项可分两种:操作数、操作符,其中操作数分为两种:常量、变量,操作符分为两种:符号操作符、函数操作符,常量分为两种:数值常量、字符串常量,变量根据其储存的类型不同可分为3种:数值变量、字符串变量、NULL变量。
[0004]变量:以英文中括号包含的一组字符串,其中字符串即为变量名,如[A1],此变量的变量名为A1,变量可储存3种不同的类型:数值、字符串、NULL(未知 ...
【技术保护点】
【技术特征摘要】
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、是否变量
判断操作数是否是变量;b11、替换变量根据变量的变量名从变量字典...
【专利技术属性】
技术研发人员:李敬勇,雷树礼,
申请(专利权)人:快意电梯股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。