Parsing object-oriented expressions with Dijkstra's shunting yard algorithm