public static void AnalizeVariablesInExpression(string expression, VariableStacks variables, ExpressionAnalizationMode mode)
        {
            expressionForAnalization = expression;
            avaliableVariables = variables;
            curMode = mode;

            ProcessVariables();
        }
 private static void ProcessVariableAccordingMode(Variable curVariable, ExpressionAnalizationMode mode)
 {
     if (mode.HasFlag(ExpressionAnalizationMode.IsUsedForComputingMode))
         curVariable.SetUsedForComputing();
     if (mode.HasFlag(ExpressionAnalizationMode.IsContolMode))
         curVariable.SetUsedAsControl();
 }
 private static void ProcessVariablesInExpressionAccordingMode(string expression, ExpressionAnalizationMode mode)
 {
     foreach (string variableName in avaliableVariables.VariableNames)
     {
         ProcessVariableInExpression(expression, mode, variableName);
     }
 }
        private static void ProcessVariableInExpression(string expression, ExpressionAnalizationMode mode, string variableName)
        {
            string variableInExpressionPattern = GetVariablePattern(variableName);
            Regex variableInExpressionRegex = new Regex(variableInExpressionPattern);

            if (variableInExpressionRegex.IsMatch(expression))
            {
                Variable curVariable = avaliableVariables.GetTopVariable(variableName);
                ProcessVariableAccordingMode(curVariable, mode);
            }
        }
Пример #5
0
 private static ExpressionAnalizationMode GetModeAccordingVariable(Variable variable)
 {
     ExpressionAnalizationMode mode = new ExpressionAnalizationMode();
     if (variable.IsCurrentlyUsedAsControl)
         mode |= ExpressionAnalizationMode.IsContolMode;
     if (variable.IsUsedForComputing)
         mode |= ExpressionAnalizationMode.IsUsedForComputingMode;
     return mode;
 }