diff options
| author | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-12-12 12:37:51 +0900 |
|---|---|---|
| committer | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-12-12 12:38:50 +0900 |
| commit | b552df31a53738f72d273c1e6c43bf2e370c3597 (patch) | |
| tree | fc1ca490c253357bd1d438d3ab3db95e5b80124f /command.cc | |
| parent | 29e45702687fc8f1f9925824adeddc36e69ae030 (diff) | |
[C++] Fail early for unsupported automatic variables
This is for issue #40.
Diffstat (limited to 'command.cc')
| -rw-r--r-- | command.cc | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -70,6 +70,7 @@ DECLARE_AUTO_VAR_CLASS(AutoLessVar); DECLARE_AUTO_VAR_CLASS(AutoHatVar); DECLARE_AUTO_VAR_CLASS(AutoPlusVar); DECLARE_AUTO_VAR_CLASS(AutoStarVar); +DECLARE_AUTO_VAR_CLASS(AutoNotImplementedVar); class AutoSuffixDVar : public AutoVar { public: @@ -128,6 +129,10 @@ void AutoStarVar::Eval(Evaluator*, string* s) const { pat.Stem(n->output.str()).AppendToString(s); } +void AutoNotImplementedVar::Eval(Evaluator*, string*) const { + ERROR("Automatic variable `$%s' isn't supported yet", sym_); +} + void AutoSuffixDVar::Eval(Evaluator* ev, string* s) const { string buf; wrapped_->Eval(ev, &buf); @@ -177,6 +182,10 @@ CommandEvaluator::CommandEvaluator(Evaluator* ev) INSERT_AUTO_VAR(AutoHatVar, "^"); INSERT_AUTO_VAR(AutoPlusVar, "+"); INSERT_AUTO_VAR(AutoStarVar, "*"); + // TODO: Implement them. + INSERT_AUTO_VAR(AutoNotImplementedVar, "%"); + INSERT_AUTO_VAR(AutoNotImplementedVar, "?"); + INSERT_AUTO_VAR(AutoNotImplementedVar, "|"); } void CommandEvaluator::Eval(DepNode* n, vector<Command*>* commands) { |
