diff options
| author | Fumitoshi Ukai <fumitoshi.ukai@gmail.com> | 2015-04-02 16:18:02 +0900 |
|---|---|---|
| committer | Fumitoshi Ukai <fumitoshi.ukai@gmail.com> | 2015-04-02 16:18:32 +0900 |
| commit | c1847609ea41f70fdb39bcc5b417c3dd28fcd6ac (patch) | |
| tree | 87800ff625523ebe0de67d3b3ed041e77d035688 /var.go | |
| parent | 07e146b008f92a2702c1cff89cec7736dc663ebc (diff) | |
fix var_append.mk
Diffstat (limited to 'var.go')
| -rw-r--r-- | var.go | 27 |
1 files changed, 21 insertions, 6 deletions
@@ -10,6 +10,7 @@ type Var interface { type Value interface { String() string Eval(ev *Evaluator) string + Append(*Evaluator, string) Var } type SimpleVar struct { @@ -23,6 +24,10 @@ func (v SimpleVar) IsDefined() bool { return true } func (v SimpleVar) String() string { return v.value } func (v SimpleVar) Eval(ev *Evaluator) string { return v.value } +func (v SimpleVar) Append(ev *Evaluator, s string) Var { + v.value += " " + ev.evalExpr(s) + return v +} type RecursiveVar struct { expr string @@ -32,18 +37,28 @@ type RecursiveVar struct { func (v RecursiveVar) Flavor() string { return "recursive" } func (v RecursiveVar) Origin() string { return v.origin } func (v RecursiveVar) IsDefined() bool { return true } -func (v RecursiveVar) String() string { return v.expr } + +func (v RecursiveVar) String() string { return v.expr } func (v RecursiveVar) Eval(ev *Evaluator) string { return ev.evalExpr(v.expr) } +func (v RecursiveVar) Append(_ *Evaluator, s string) Var { + v.expr += " " + s + return v +} type UndefinedVar struct{} -func (_ UndefinedVar) Flavor() string { return "undefined" } -func (_ UndefinedVar) Origin() string { return "" } -func (_ UndefinedVar) IsDefined() bool { return false } -func (_ UndefinedVar) String() string { return "" } -func (_ UndefinedVar) Eval(ev *Evaluator) string { return "" } +func (_ UndefinedVar) Flavor() string { return "undefined" } +func (_ UndefinedVar) Origin() string { return "" } +func (_ UndefinedVar) IsDefined() bool { return false } +func (_ UndefinedVar) String() string { return "" } +func (_ UndefinedVar) Eval(ev *Evaluator) string { + return "" +} +func (_ UndefinedVar) Append(*Evaluator, string) Var { + return UndefinedVar{} +} type VarTab struct { m map[string]Var |
