Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="rhsExpr"></param>
        /// <returns></returns>
        private SteExpression BybassSingleTempVariableRhsExpr(SteExpression rhsExpr)
        {
            while (true)
            {
                //The RHS expression is not a variable name. Return the full expression
                if (rhsExpr.IsVariable == false)
                {
                    return(rhsExpr);
                }

                //The RHS expression is a variable name
                var rhsExprVarName = rhsExpr.HeadText;

                //The RHS expression is not a low-level variable name. Return the full expression
                if (LowLevelUtils.IsLowLevelVariableName(rhsExprVarName) == false)
                {
                    return(rhsExpr);
                }

                var llItem = _dataTable.GetItemByName(rhsExprVarName);

                //The RHS expression is not a temp item. Return the full expression
                if (llItem.IsTemp == false)
                {
                    return(rhsExpr);
                }

                //Iterate over the RHS of the temp low-level item whos name is given in rhsExprVarName
                rhsExpr = llItem.AssignedRhsSymbolicScalar.ToTextExpressionTree();
            }
        }