[C++] Let target specific variable have its own scope
diff --git a/eval.h b/eval.h
index a9be28f..70d5466 100644
--- a/eval.h
+++ b/eval.h
@@ -55,18 +55,22 @@
   // For target specific variables.
   Var* LookupVarInCurrentScope(StringPiece name);
 
-  EvalResult* GetEvalResult();
-
   const Loc& loc() const { return loc_; }
 
+  const vector<shared_ptr<Rule>>& rules() const { return rules_; }
+  const unordered_map<StringPiece, Vars*>& rule_vars() const {
+    return rule_vars_;
+  }
   Vars* mutable_vars() { return vars_; }
 
   void Error(const string& msg);
 
   void set_is_bootstrap(bool b) { is_bootstrap_ = b; }
 
+  void set_current_scope(Vars* v) { current_scope_ = v; }
+
  private:
-  void DoAssign(StringPiece lhs, Value* rhs, StringPiece orig_rhs, AssignOp op);
+  Var* EvalRHS(StringPiece lhs, Value* rhs, StringPiece orig_rhs, AssignOp op);
   void DoInclude(const char* fname, bool should_exist);
 
   const Vars* in_vars_;