diff options
author | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-04-28 04:25:37 +0900 |
---|---|---|
committer | Shinichiro Hamaji <shinichiro.hamaji@gmail.com> | 2015-04-28 16:19:41 +0900 |
commit | f8f075c5176a9d5277bfdd2e730acc0aca9fbde2 (patch) | |
tree | 634b85d361824b2372322dc92d0bb67d52c34f33 /serialize.go | |
parent | e666ac8315a423f81416844c6b219a6a1692c14e (diff) | |
download | kati-f8f075c5176a9d5277bfdd2e730acc0aca9fbde2.tar.gz |
Fix all serialization
Diffstat (limited to 'serialize.go')
-rw-r--r-- | serialize.go | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/serialize.go b/serialize.go index 2cc3812..354797b 100644 --- a/serialize.go +++ b/serialize.go @@ -142,6 +142,13 @@ func DeserializeVar(sv SerializableVar) (r Value) { expr: DeserializeSingleChild(sv), origin: sv.Origin, } + + case ":=", "=", "+=", "?=": + return TargetSpecificVar{ + v: DeserializeSingleChild(sv).(Var), + op: sv.Type, + } + default: panic(fmt.Sprintf("unknown serialized variable type: %q", sv)) } @@ -172,10 +179,7 @@ func DeserializeNodes(nodes []*SerializableDepNode) (r []*DepNode) { } for k, v := range n.TargetSpecificVars { - d.TargetSpecificVars[k] = TargetSpecificVar{ - v: DeserializeVar(v.Children[0]).(Var), - op: v.Type, - } + d.TargetSpecificVars[k] = DeserializeVar(v).(Var) } nodeMap[n.Output] = d |