|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Diggins.Jigsaw
{
public class PostfixCalculator
{
Stack<Object> stack = new Stack<object>();
private object EvalTerm(string s)
{
switch (s)
{
case "+": return Primitives.add(stack.Pop(), stack.Pop());
case "-": return Primitives.subtract(stack.Pop(), stack.Pop());
case "*": return Primitives.multiply(stack.Pop(), stack.Pop());
case "/": return Primitives.divide(stack.Pop(), stack.Pop());
case "%": return Primitives.modulo(stack.Pop(), stack.Pop());
default: return Double.Parse(s);
}
}
public void Eval(string s)
{
foreach (var t in s.Split(' '))
stack.Push(EvalTerm(t));
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.