I have completed code for a postfix expression calculator, but I'm unsure how to go about evaluating the expression when I come across a negative sign.

For example, the expression: -1-2-3
comes out like this in my program:

original = -1-2-3

infix tokens = [[-;SIGN], [1;NUM], [-;OP], [2;NUM], [-;OP], [3;NUM]]

Postfix = [[1;NUM], [-;SIGN], [2;NUM], [-;OP], [3;NUM], [-;OP]]

Postfix Evaluation = -2

Obviously the answer should be -6, but I just can't see the logic behind actually making the sign before a number apply to the entire expression. I'm confident my postfix method is correct and I know I need to create a case for when I see the sign, but I don't know what to do after that. 

Here is my code so far:

```
public static String eval(ArrayList<Tokenize.Token> list) {  
     Stack<Integer> stack = new Stack<Integer>(); 

     for (int i=0; i<list.size(); i++) { 
        Tokenize.Token t = list.get(i); 
        TokenType type = t.getType();

        if (type==TokenType.NUM) { 
                String x = t.getValue();
                int x1 = Integer.parseInt(x);
                stack.push(x1);
        } 

        else if (type==TokenType.OP) {

                int y = stack.pop();
                int x = stack.pop();

                if(t.getValue().equals("*")) {
                    int z = y * x;
                    stack.push(z);
                }
                else if(t.getValue().equals("/")) {
                    int z = y / x;
                    stack.push(z); 
                }
                else if(t.getValue().equals("+")) {
                    int z = y + x;
                    stack.push(z);
                }
                else if(t.getValue().equals("-")) {
                    int z = y - x;
                    stack.push(z);
                }
        } 

        else if(type == TokenType.SIGN) { 
        //????                 
            } 
     } 
     return stack.pop() + ""; 
  }

```