diff options
author | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-04-16 14:03:24 +0900 |
---|---|---|
committer | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-04-16 14:32:42 +0900 |
commit | a485d2f9bea1fb5b14013f042da66e403a83154e (patch) | |
tree | b75828aca399320eccb0b0ecb9dcde556220cc67 /var.go | |
parent | da7f2553fc21cac830664f381e059636d208e253 (diff) | |
download | android_build_kati-a485d2f9bea1fb5b14013f042da66e403a83154e.tar.gz android_build_kati-a485d2f9bea1fb5b14013f042da66e403a83154e.tar.bz2 android_build_kati-a485d2f9bea1fb5b14013f042da66e403a83154e.zip |
Fix the implementation of target specific variables
Diffstat (limited to 'var.go')
-rw-r--r-- | var.go | 36 |
1 files changed, 36 insertions, 0 deletions
@@ -14,6 +14,42 @@ type Var interface { IsDefined() bool } +type TargetSpecificVar struct { + v Var + op string +} + +func (v TargetSpecificVar) Append(ev *Evaluator, s string) Var { + return TargetSpecificVar{ + v: v.v.Append(ev, s), + op: v.op, + } +} +func (v TargetSpecificVar) AppendVar(ev *Evaluator, v2 Var) Var { + return TargetSpecificVar{ + v: v.v.AppendVar(ev, v2), + op: v.op, + } +} +func (v TargetSpecificVar) Flavor() string { + return v.v.Flavor() +} +func (v TargetSpecificVar) Origin() string { + return v.v.Origin() +} +func (v TargetSpecificVar) IsDefined() bool { + return v.v.IsDefined() +} +func (v TargetSpecificVar) String() string { + // TODO: If we add the info of |op| a test starts + // failing. Shouldn't we use this only for debugging? + return v.v.String() + // return v.v.String() + " (op=" + v.op + ")" +} +func (v TargetSpecificVar) Eval(w io.Writer, ev *Evaluator) { + v.v.Eval(w, ev) +} + type SimpleVar struct { // TODO(ukai): []byte -> Value (literal or so?) value []byte |