mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2024-12-25 04:32:33 -06:00
59 lines
1.3 KiB
C++
59 lines
1.3 KiB
C++
// Filename: ppMain.h
|
|
// Created by: drose (28Sep00)
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef PPMAIN_H
|
|
#define PPMAIN_H
|
|
|
|
#include "ppremake.h"
|
|
#include "ppDirectoryTree.h"
|
|
#include "ppNamedScopes.h"
|
|
#include "filename.h"
|
|
|
|
class PPScope;
|
|
class PPCommandFile;
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
// Class : PPMain
|
|
// Description : Handles the toplevel processing in this program:
|
|
// holds the tree of source files, and all the scopes,
|
|
// etc. Generally get the ball rolling.
|
|
////////////////////////////////////////////////////////////////////
|
|
class PPMain {
|
|
public:
|
|
PPMain(PPScope *global_scope);
|
|
~PPMain();
|
|
|
|
bool read_source(const string &root);
|
|
|
|
bool process_all();
|
|
bool process(string dirname);
|
|
|
|
void report_depends(const string &dirname) const;
|
|
void report_reverse_depends(const string &dirname) const;
|
|
|
|
static string get_root();
|
|
static void chdir_root();
|
|
|
|
private:
|
|
bool r_process_all(PPDirectory *dir);
|
|
bool p_process(PPDirectory *dir);
|
|
bool read_global_file();
|
|
static Filename get_cwd();
|
|
|
|
|
|
PPScope *_global_scope;
|
|
PPScope *_def_scope;
|
|
PPCommandFile *_defs;
|
|
|
|
PPDirectoryTree _tree;
|
|
PPNamedScopes _named_scopes;
|
|
PPScope *_parent_scope;
|
|
|
|
static Filename _root;
|
|
string _original_working_dir;
|
|
};
|
|
|
|
#endif
|
|
|