Ejemplo n.º 1
0
        // Middle-ware function
        private static void CreateExpr(Opr operation, ref Stack <Expression> exprStack)
        {
            Expression ex2 = exprStack.Pop();
            Expression ex1;

            switch (operation.Show())
            {
            case "x":
                ex1 = exprStack.Pop();
                exprStack.Push(new MultExpression(ex1, ex2)); break;

            case "+":
                ex1 = exprStack.Pop();
                exprStack.Push(new AddExpression(ex1, ex2)); break;

            case "^":
                ex1 = exprStack.Pop();
                exprStack.Push(new PowerExpression(ex1, ex2)); break;

            case "÷":
                ex1 = exprStack.Pop();
                exprStack.Push(new DivExpression(ex1, ex2)); break;

            case "-":
                ex1 = exprStack.Pop();
                exprStack.Push(new MinusExpression(ex1, ex2)); break;

            case "√":
                exprStack.Push(new RootExpression(ex2)); break;

            case ";":
                exprStack.Push(new NegativeExpression(ex2)); break;

            default:
                throw new SyntaxErrorException();
            }
        }
Ejemplo n.º 2
0
 private static void PrintEvaluationState(Opr opr, Expression expr1, Expression expr2)
 {
     Console.Write("Operation State: ");
     Console.WriteLine(expr1.Solve() + opr.Show() + expr2.Solve());
 }
Ejemplo n.º 3
0
 // Debugging function
 private static void PrintOperatorState(Opr opr, string state)
 {
     Console.WriteLine(state + ":");
     Console.WriteLine("Operator:" + opr.Show());
 }