Esempio n. 1
0
    public int PostfixEvalSpanStack()
    {
        Span <Token> span  = new Token[100];
        var          stack = span.AsStack();

        foreach (var token in tokens)
        {
            switch (token)
            {
            case Operand t:
                stack.Push(t);
                break;

            case Operator o:
                var a      = stack.Pop() as Operand;
                var b      = stack.Pop() as Operand;
                var result = o.Calc(a.Value, b.Value);
                stack.Push(new Operand(result));
                break;
            }
        }
        return((stack.Pop() as Operand).Value);
    }