If you leave out temperature changes you can as first guess use set feedrate and move distances, so only needing G0/G1 to parse. Maybe add 8% or so to adjust to missing acceleration consideration. That is how Repetier-Host does it and is easy. Repetier-Server simulates our firmware for this using buffer planing and acceleration plus heating speed in addition which is a good bit complicater but the gain is not worth the trouble if it is for cooling purposes.