版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

计算变量,是对一次变量进行数学或逻辑计算,计算的结果作为变量的值。

计算变量的值根据数据类型的不同,可以是小数/整数

计算变量是采用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','中文'

...