diff options
author | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-06-19 14:25:17 +0900 |
---|---|---|
committer | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-06-22 15:46:23 +0900 |
commit | 9b16bda965b29b6ba5ce3178abf8e4655e5af044 (patch) | |
tree | 7f61396a6d8acb6fe01764b69b307e02a04ed539 /eval.cc | |
parent | 9d959c38e872b453396bb20a4bff40d62f933fac (diff) | |
download | android_build_kati-9b16bda965b29b6ba5ce3178abf8e4655e5af044.tar.gz android_build_kati-9b16bda965b29b6ba5ce3178abf8e4655e5af044.tar.bz2 android_build_kati-9b16bda965b29b6ba5ce3178abf8e4655e5af044.zip |
[C++] Parse all kinds of rules
Diffstat (limited to 'eval.cc')
-rw-r--r-- | eval.cc | 17 |
1 files changed, 11 insertions, 6 deletions
@@ -87,13 +87,18 @@ void Evaluator::EvalRule(const RuleAST* ast) { if (expr->find_first_not_of(" \t\n;") == string::npos) return; - Rule* rule = new Rule; - rule->loc = loc_; - rule->Parse(*expr); + Rule* rule; + RuleVar rule_var; + ParseRule(loc_, *expr, &rule, &rule_var); + + if (rule) { + LOG("Rule: %s", rule->DebugString().c_str()); + rules_.push_back(rule); + last_rule_ = rule; + return; + } - LOG("Rule: %s", rule->DebugString().c_str()); - rules_.push_back(rule); - last_rule_ = rule; + CHECK(false); } void Evaluator::EvalCommand(const CommandAST* ast) { |