示例#1
0
        /// <summary>
        /// Try to get a temporary variable by its low-level name
        /// </summary>
        /// <param name="lowLevelVarName"></param>
        /// <param name="tempVar"></param>
        /// <returns></returns>
        public bool TryGetTempVariable(string lowLevelVarName, out GMacCbTempVariable tempVar)
        {
            if (VariablesDictionary.Count == 0)
            {
                tempVar = TempVariables.FirstOrDefault(item => item.LowLevelName == lowLevelVarName);
                return(tempVar != null);
            }

            GMacCbVariable result;

            if (VariablesDictionary.TryGetValue(lowLevelVarName, out result) == false)
            {
                tempVar = null;
                return(false);
            }

            tempVar = result as GMacCbTempVariable;
            return(tempVar != null);
        }
示例#2
0
 /// <summary>
 /// Replace a given temp variable in the RHS expression of this computed variable by another
 /// temp variable
 /// </summary>
 /// <param name="oldTempVar"></param>
 /// <param name="newTempVar"></param>
 internal void ReplaceRhsTempVariable(GMacCbTempVariable oldTempVar, GMacCbTempVariable newTempVar)
 {
     RhsExpr.ReplaceAllVariablesInPlace(oldTempVar.LowLevelName, newTempVar.LowLevelName);
 }