| BindingEnv | An Env which contains a mapping of variables to values as well as a pointer to a parent scope |
| BuildConfig | Options (e.g. verbosity, parallelism) passed to a build |
| Builder | Builder wraps the build process: starting commands, updating status |
| BuildLog | Store a log of every command ran for every build |
| BuildLogTest | |
| BuildStatus | Tracks the status of a build: completion fraction, printing updates |
| BuildTest | |
| BuildWithLogTest | |
| Cleaner | |
| CleanTest | |
| CommandRunner | CommandRunner is an interface that wraps running the build subcommands |
| DiskInterface | Interface for accessing the disk |
| DryRunCommandRunner | A CommandRunner that doesn't actually run the commands |
| Edge | An edge in the dependency graph; links between Nodes using Rules |
| EdgeEnv | An Env for an Edge, providing $in and $out |
| VirtualFileSystem::Entry | An entry for a single in-memory file |
| Env | An interface for a scope for variable (e.g. "$foo") lookups |
| EvalString | A tokenized string that contains variable references |
| ExternalStringEq | Equality binary predicate for const char* |
| ExternalStringHash | Hash functor for const char* |
| ExternalStringHashMap< V > | A template for hash_maps keyed by a const char* that is maintained within the values |
| ManifestParser::FileReader | |
| FileStat | Information about a single on-disk file: path, mtime |
| GETOPT_LONG_OPTION_T | |
| GraphTest | |
| GraphViz | Runs the process of creating GraphViz .dot file output |
| __gnu_cxx::hash< std::string > | |
| BuildLog::LogEntry | |
| MakefileParser | Parses simple Makefiles as generated by gcc |
| ManifestParser | Parses .ninja files |
| Node | Information about a node in the dependency graph: the file, whether it's dirty, etc |
| ParserTest | |
| Plan | Plan stores the state of a build plan: what we intend to build, which steps we're ready to execute |
| PlanTest | Fixture for tests involving Plan |
| RealCommandRunner | |
| RealDiskInterface | Implementation of DiskInterface that actually hits the disk |
| Rule | An invokable build command and associated metadata (description, etc.) |
| StatCache | Mapping of path -> FileStat |
| State | Global state (file status, loaded rules) for a single run |
| StateTestWithBuiltinRules | A base test fixture that includes a State object with a builtin "cat" rule |
| StringPiece | StringPiece represents a slice of a string whose memory is managed externally |
| Subprocess | Subprocess wraps a single async subprocess |
| SubprocessSet | SubprocessSet runs a poll() loop around a set of Subprocesses |
| Token | A single parsed token in an input stream |
| Tokenizer | Processes an input stream into Tokens |
| VirtualFileSystem | An implementation of DiskInterface that uses an in-memory representation of disk state |