aboutsummaryrefslogtreecommitdiffstats
path: root/var.go
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-04-16 14:03:24 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-04-16 14:32:42 +0900
commita485d2f9bea1fb5b14013f042da66e403a83154e (patch)
treeb75828aca399320eccb0b0ecb9dcde556220cc67 /var.go
parentda7f2553fc21cac830664f381e059636d208e253 (diff)
downloadandroid_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.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/var.go b/var.go
index ce42519..e06ab30 100644
--- a/var.go
+++ b/var.go
@@ -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