Actually, what's funny is that this is probably the most succinct explanation of an operator overloading approach to AD that I've heard. But, from what I can tell as well, yes. Most of the action is in var.cpp:
https://github.com/ZigaSajovic/dCpp/blob/master/src/var.cpp
It looks like the AST is held by a collection of maps that contain pointers and other variables.
Outside of this paper, most of my time on writing AD codes has been literally just trying to do things on ASTs really, really fast, which is why your comment is really apt.