Example #1
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public void RegisterExpressionStatement(IExpressionOperand expression)
        {
            if (expression != null)
            {
                InsertStatementToBlock(new ExpressionStatement(expression));
            }
        }
Example #2
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        protected void EnsureOperandLeavesValueOnStack(IExpressionOperand expressionOperand)
        {
            if (expressionOperand != null)
            {
                expressionOperand.ShouldLeaveValueOnStack = true;
            }
        }
Example #3
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public void Consume(IExpressionOperand expression)
        {
            if (expression != null)
            {
                var removedIndex = m_StatementBlock.RemoveExpressionStatement(expression);

                if (m_IsRewriteMode && removedIndex >= 0 && removedIndex < m_RewriteInsertionIndex)
                {
                    m_RewriteInsertionIndex--;
                }
            }
        }
Example #4
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public int RemoveExpressionStatement(IExpressionOperand expression)
        {
            for (int index = m_StatementList.Count - 1; index >= 0; index--)
            {
                var statement = (m_StatementList[index] as ExpressionStatement);

                if (statement != null && ReferenceEquals(statement.Expression, expression))
                {
                    m_StatementList.RemoveAt(index);
                    return(index);
                }
            }

            return(-1);
        }
Example #5
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public ExpressionStatement(IExpressionOperand expression)
        {
            m_Expression = expression;
        }