See the makefile for details. The applib directory contains the runtime library code. I use flex and bison for the app scanner and parser components. You will need to use something similar if you change either. All major components live in their own files including most classes.
Most symbols live in a namespace, of which there are several.
The general post-initialization control flow can be summarized as follows. Customizing App provides a factory class 'Make' that can make it easy to customize the code without having to modify in many cases or recompile in some cases the original code. It should only be necessary to modify the existing main.cpp file to establish the new factory class, then recompile the app code and relink with the custom code which presumably lives in its own directory, perhaps as a static library. Once the app code has been recompiled with the new main.cpp, it should only be necessary to relink it thereafter, provided that changes to the existing app code files are confined to main.cpp. One thing you really have to watch out for is changing the code in such a way that app is no longer able to regenerate itself.