Shunting-yard algorithm
Test expression: ((3+1)*2)^3


((3+1)*2)^3

3 1 + 2 * 3 ^

Test expression: ((3*2+1-6)^(3+1)^3)^2

((3*2+1-6)^(3+1)^3)^2
3 2 * 1 + 6 - 3 1 + ^ 3 ^ 2 ^

Test expression: ((3*2+1-6)^sin(3+1)^3)^2

((3*2+1-6)^sin(3+1)^3)^2
3 2 * 1 + 6 - 3 1 + sin ^ 3 ^ 2 ^

Test expression: ((3*2+1-6)^atan2(3+1, 27)^3)^2

((3*2+1-6)^atan2(3+1, 27)^3)^2
3 2 * 1 + 6 - 3 1 + 27 atan2 ^ 3 ^ 2 ^