: (shuntingYard "3 + 4 * 2 / (1 - 5) \^ 2 \^ 3") Token Output Stack 3 3 + 3 + 4 3 4 + * 3 4 *+ 2 3 4 2 *+ / 3 4 2 * /+ ( 3 4 2 * (/+ 1 3 4 2 * 1 (/+ - 3 4 2 * 1 -(/+ 5 3 4 2 * 1 5 -(/+ ) 3 4 2 * 1 5 - /+ ^ 3 4 2 * 1 5 - ^/+ 2 3 4 2 * 1 5 - 2 ^/+ ^ 3 4 2 * 1 5 - 2 ^^/+ 3 3 4 2 * 1 5 - 2 3 ^^/+ 3 4 2 * 1 5 - 2 3 ^ ^/+ 3 4 2 * 1 5 - 2 3 ^ ^ /+ 3 4 2 * 1 5 - 2 3 ^ ^ / + 3 4 2 * 1 5 - 2 3 ^ ^ / + -> (3 4 2 "*" 1 5 "-" 2 3 "\^" "\^" "/" "+")