aboutsummaryrefslogtreecommitdiff
path: root/eval.h
diff options
context:
space:
mode:
Diffstat (limited to 'eval.h')
-rw-r--r--eval.h19
1 files changed, 3 insertions, 16 deletions
diff --git a/eval.h b/eval.h
index 6bc21b9..3eede2b 100644
--- a/eval.h
+++ b/eval.h
@@ -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_;