...
This will leave you with two directories:
- one is "gnu", and contains the code for gathering options from the
command line. This code can be safely ignored, as its functionality
will be replaced by whatever option-capturing code the porters like to
use, e.g. the GetOpt class in c++. - the other is "com", which is where the meat is.
Inside "com" you'll find the directories "bluemarsh" and
"traviswheeler". The former is of little importance. Open the latter.
Inside "traviswheeler", you'll find two directories of interest:
- "libs" contains implementations of a Binary Heap and an External
Memory Array Heap, both of which are fairly specifically tied to the
kind of input they'll get from Ninja. - "ninja" holds the core of the application
The code has some extra layers of abstraction that were necessary to
plug it into another piece of software called Mesquite, but it's not
too much to deal with. The file "Ninja.java" runs the show, but all
the meat is in TreeBuilderManager, in the function "doJob".
...