15 #ifndef NINJA_MANIFEST_PARSER_H_
16 #define NINJA_MANIFEST_PARSER_H_
46 bool ParseTest(
const std::string& input, std::string* err) {
48 return Parse(
"input", input, err);
53 bool Parse(
const std::string& filename,
const std::string& input,
An Env which contains a mapping of variables to values as well as a pointer to a parent scope.
A tokenized string that contains variable references.
Interface for reading files from disk.
PhonyCycleAction phony_cycle_action_
bool ParseEdge(std::string *err)
std::unique_ptr< ManifestParser > subparser_
bool ParseRule(std::string *err)
bool Parse(const std::string &filename, const std::string &input, std::string *err)
Parse a file, given its contents as a string.
bool ParseTest(const std::string &input, std::string *err)
Parse a text string of input. Used by tests.
ManifestParserOptions options_
std::vector< EvalString > outs_
std::vector< EvalString > ins_
bool ParseDefault(std::string *err)
bool ParsePool(std::string *err)
Parse various statement types.
std::vector< EvalString > validations_
ManifestParser(State *state, FileReader *file_reader, ManifestParserOptions options=ManifestParserOptions())
bool ParseFileInclude(bool new_scope, std::string *err)
Parse either a 'subninja' or 'include' line.
bool ParseLet(std::string *key, EvalString *val, std::string *err)
Global state (file status) for a single run.