summaryrefslogtreecommitdiffstats
path: root/src/manifest_parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/manifest_parser.h')
-rw-r--r--src/manifest_parser.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/manifest_parser.h b/src/manifest_parser.h
index f72cd6f..043e4b2 100644
--- a/src/manifest_parser.h
+++ b/src/manifest_parser.h
@@ -23,17 +23,18 @@ using namespace std;
struct BindingEnv;
struct EvalString;
+struct FileReader;
struct State;
+enum DupeEdgeAction {
+ kDupeEdgeActionWarn,
+ kDupeEdgeActionError,
+};
+
/// Parses .ninja files.
struct ManifestParser {
- struct FileReader {
- virtual ~FileReader() {}
- virtual bool ReadFile(const string& path, string* content, string* err) = 0;
- };
-
ManifestParser(State* state, FileReader* file_reader,
- bool dupe_edge_should_err = false);
+ DupeEdgeAction dupe_edge_action);
/// Load and parse a file.
bool Load(const string& filename, string* err, Lexer* parent = NULL);
@@ -66,7 +67,7 @@ private:
BindingEnv* env_;
FileReader* file_reader_;
Lexer lexer_;
- bool dupe_edge_should_err_;
+ DupeEdgeAction dupe_edge_action_;
bool quiet_;
};