diff options
Diffstat (limited to 'eval.h')
-rw-r--r-- | eval.h | 19 |
1 files changed, 3 insertions, 16 deletions
@@ -15,7 +15,6 @@ #ifndef EVAL_H_ #define EVAL_H_ -#include <memory> #include <unordered_map> #include <unordered_set> #include <vector> @@ -32,18 +31,9 @@ class Rule; class Var; class Vars; -struct EvalResult { - ~EvalResult(); - vector<shared_ptr<Rule>> rules; - Vars* vars; - unordered_map<StringPiece, Vars*> rule_vars; - // TODO: read_mks - unordered_map<StringPiece, bool> exports; -}; - class Evaluator { public: - Evaluator(const Vars* vars); + Evaluator(); ~Evaluator(); void EvalAssign(const AssignStmt* stmt); @@ -62,11 +52,10 @@ class Evaluator { const Loc& loc() const { return loc_; } void set_loc(const Loc& loc) { loc_ = loc; } - const vector<shared_ptr<Rule>>& rules() const { return rules_; } + const vector<const Rule*>& rules() const { return rules_; } const unordered_map<Symbol, Vars*>& rule_vars() const { return rule_vars_; } - Vars* mutable_vars() { return vars_; } const unordered_map<Symbol, bool>& exports() const { return exports_; } void Error(const string& msg); @@ -107,10 +96,8 @@ class Evaluator { Var* LookupVarGlobal(Symbol name); - const Vars* in_vars_; - Vars* vars_; unordered_map<Symbol, Vars*> rule_vars_; - vector<shared_ptr<Rule>> rules_; + vector<const Rule*> rules_; unordered_map<Symbol, bool> exports_; Rule* last_rule_; |