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); } }
internal virtual Expression Pop() { Expression ex = ExpressionStack.Peek(); if (ex.InnerStack && !ex.InnerStackCompleted) { ex = ex.Pop(); } else { ex = ExpressionStack.Pop(); } return(ex); }
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()); }