...
计算变量,是对一次变量进行数学或逻辑计算,计算的结果作为变量的值。
计算变量的值根据数据类型的不同,可以是小数/整数
计算变量是采用C++的yacc和lex,结合自己代码进行实现
- lex和yacc定义了操作符和函数
- 定义在sosource\common\exprcalc\lexyacc\lex.l,定义了函数的名称
- syntex.y定义了操作数的个数,变量名称、数字、字符串的解析方法、运算规则等
- 使用GenCode.bat,生成对应的C++文件lexer.cpp,parser.cpp,parser.h,根据GenCode.bat的注释,复制到上级目录下
- 在ExprCalc.cpp中,定义了各个操作符和函数的实现方法
- 如果想要增加其他的方法,则按照此实现
计算变量表达式格式
数字和表达式、字符串定义
- 数字定义
- 连续的0到9和.号组成的字符串,会解析为数字。1,2,3,4,5,6,7,8,9,0,.
- 不支持十六进制的A,B,C,D,E
- 示例:1.99,200
- 变量定义
- 由大小写英文字母、中文开头,中间可以包含数字0-9的连续字符串,被识别为变量
- 不能以数字0-9开头,否则会被识别为数字
- 如:tag1、Object1.Prop1
- 字符串定义
- 包含在两个单引号之间的内容,被识别为字符串
- 如:'abcdefg','中文'
...