https://unnikked.ga/the-shunting-yard-algorithm