public void PushVariable(Variable variable)
 {
     if (!this.variableStacks.ContainsKey(variable.Name))
         this.variableStacks[variable.Name] = new Stack<Variable>();
     this.variableStacks[variable.Name].Push(variable);
 }
 private static void ProcessVariableAccordingMode(Variable curVariable, ExpressionAnalizationMode mode)
 {
     if (mode.HasFlag(ExpressionAnalizationMode.IsUsedForComputingMode))
         curVariable.SetUsedForComputing();
     if (mode.HasFlag(ExpressionAnalizationMode.IsContolMode))
         curVariable.SetUsedAsControl();
 }
 private static ExpressionAnalizationMode GetModeAccordingVariable(Variable variable)
 {
     ExpressionAnalizationMode mode = new ExpressionAnalizationMode();
     if (variable.IsCurrentlyUsedAsControl)
         mode |= ExpressionAnalizationMode.IsContolMode;
     if (variable.IsUsedForComputing)
         mode |= ExpressionAnalizationMode.IsUsedForComputingMode;
     return mode;
 }