aboutsummaryrefslogtreecommitdiff
path: root/eval.cc
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-07-05 14:18:15 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-07-05 14:18:15 +0900
commit631a9f83ffa25074612d53c8b32c771401264f2d (patch)
treecd8bbb632420a3f17e0c96272137143724ca2ba4 /eval.cc
parent10612c238c68dd076d66c755be2fe8d1a30a0196 (diff)
[C++] Re-parse command when it turns out it is not actually a command
Diffstat (limited to 'eval.cc')
-rw-r--r--eval.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/eval.cc b/eval.cc
index ad0d580..9504f51 100644
--- a/eval.cc
+++ b/eval.cc
@@ -167,8 +167,11 @@ void Evaluator::EvalCommand(const CommandAST* ast) {
loc_ = ast->loc();
if (!last_rule_) {
- // TODO:
- ERROR("TODO");
+ vector<AST*> asts;
+ ParseNotAfterRule(ast->orig, ast->loc(), &asts);
+ for (AST* a : asts)
+ a->Eval(this);
+ return;
}
last_rule_->cmds.push_back(ast->expr);