this is easy once you see whats going on.
except for the outermost [], all the inner [] are -ve
and numbers within [] should just be added;
so [1,1] = 1+1 = 2
[1,2,[8]] = 1+2 - 8 = -5
you can use a stack to push the numbers and the opening [ and as and when you see a ] you can pop the values off the stack to compute the value between [ ] and push it back onto the stack.