As I did in Preserving Original Token Sequence In ASTs, track the range of tokens covered by each subtree so we can spit out the nodes in the original order.