Add some helpers for tree manipulation
This commit is contained in:
@@ -1,3 +1,29 @@
|
||||
// TOML Parser.
|
||||
|
||||
package toml
|
||||
|
||||
import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Given a tree and a key, create the necessary intermediate subtrees to create
|
||||
// a subtree at that point. In-place.
|
||||
//
|
||||
// e.g. passing a.b.c will create (assuming tree is empty) tree[a], tree[a][b]
|
||||
// and tree[a][b][c]
|
||||
func createSubTree(tree *tomlTree, key string) {
|
||||
subtree := tree
|
||||
for _, intermediate_key := range strings.Split(key, ".") {
|
||||
_, exists := (*subtree)[intermediate_key]
|
||||
if !exists {
|
||||
(*subtree)[intermediate_key] = make(tomlTree)
|
||||
}
|
||||
subtree = (*subtree)[intermediate_key].(*tomlTree)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
func parse(chan token) *tomlTree {
|
||||
result := make(tomlTree)
|
||||
return &result
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user