internal override void Push(Expression e)
 {
     if (e is RightBraceExpression)
     {
         Expression expression = ExpressionStack.Peek();
         if (!expression.InnerStack)
         {
             InnerStackCompleted = true;
         }
         else if (expression.InnerStack)
         {
             if (expression.InnerStackCompleted)
             {
                 InnerStackCompleted = true;
             }
             else
             {
                 expression.Push(e);
             }
         }
     }
     else
     {
         base.Push(e);
     }
 }
Exemple #2
0
        internal virtual Expression Pop()
        {
            Expression ex = ExpressionStack.Peek();

            if (ex.InnerStack && !ex.InnerStackCompleted)
            {
                ex = ex.Pop();
            }
            else
            {
                ex = ExpressionStack.Pop();
            }
            return(ex);
        }
Exemple #3
0
 internal virtual void Push(Expression e)
 {
     if (ExpressionStack.Count == 0)
     {
         ExpressionStack.Push(e);
     }
     else
     {
         Expression ex = ExpressionStack.Peek();
         if (ex.InnerStack && !ex.InnerStackCompleted)
         {
             ex.Push(e);
         }
         else
         {
             ExpressionStack.Push(e);
         }
     }
 }
 public SymbolicValue PeekValue()
 {
     return(ExpressionStack.Peek());
 }