Esempio n. 1
0
        private static void ProcessCloseToken(OperationToken operationToken, Stack<OperationToken> operationStack, Stack<Expression> expressionStack)
        {
            while (operationStack.Count > 0 && operationStack.Peek().TokenType != TokenType.OpenBracket)
            {
                ExecuteOperation(operationStack, expressionStack);
            }

            if (operationStack.Count == 0)
            {
                throw new InvalidOperationException("Try parse not opened close bracket");
            }

            operationStack.Pop();
        }
Esempio n. 2
0
        private static void ProcessOperationToken(OperationToken token, Stack<OperationToken> operationStack, Stack<Expression> expressionStack)
        {
            while (operationStack.Count > 0 && operationStack.Peek().Priority > token.Priority)
            {
                ExecuteOperation(operationStack, expressionStack);
            }

            operationStack.Push(token);
        }