title: How can I achieve strict reverse ranking of graphviz dot?
body: <p><strong>Edit</strong>: If posted a new question to supersede this question. <a href="https://stackoverflow.com/questions/47416827/align-ranks-in-graphviz">Align Ranks in Graphviz</a></p>
  
  <p>First, let me apologize for inventing/abusing some terminology in the title. By "strict" I mean all nodes of the same rank need the same y position in the output image, whereas by default they are shifted around slightly. Second, by "reverse" I mean all the leafs are the same rank, appearing at the same row at the bottom of the graph, and all of their ancestors to be ranked and aligned accordingly (without reversing the edge directions). The graphs I'm working with are bounded semilattices, so there's no cyclical portions and all nodes have a well defined rank.</p>
  
  <p><img src="https://i.stack.imgur.com/b5evh.png" alt="Abstract Syntax Tree"></p>
  
  <p>I tried reversing the edge direction (and "dir=back" can make the edges <em>look</em> like the original direction), but the "strict" part is still a problem</p>
  
  <p><a href="https://i.stack.imgur.com/V45Yj.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/V45Yj.png" alt="enter image description here"></a></p>