Analysis of expression

This library provides modules for the analysis of expressions. If a composed expression is FALSE, those of its components can be evaluated which are adding to this result. In the The Sequential Function Chart Editor the flag SFC Flags uses this function implicitely for the analysis of expressions in transitions.

Example of an expression:

b OR NOT(y < x) OR NOT (NOT d AND e)

The functions:

The following variables are used by all modules:

  • InputExpr: BOOL, expression to be analysed
  • DoAnalyze: BOOL, TRUE starts analysis
  • ExpResult: BOOL, current value of the expression

Different is the output of the result of the analyzation:

‘AnalyzeExpression’ returns in a string the components of the expression, which are adding to the total value FALSE. Function AppendErrorString is used for this purpose, separating the particular components in the output string by “|” characters:

‘AnalyseExpressionTable’ writes the components of the expression, which are adding to the total value FALSE, to an array. For each component the following information is provided by structure ExpressionResult: name, address, comment, (current)value:

../_images/ea525baed0478d1d0a317d31664b36aa

‘AnalyseExpressionCombined’ combines the functionalities of AnalyzeExpression plus AnalyseExpressionTable