}
}
-func dumpLevel(w io.Writer, n *Node, level int) os.Error {
+func dumpIndent(w io.Writer, level int) {
io.WriteString(w, "| ")
for i := 0; i < level; i++ {
io.WriteString(w, " ")
}
+}
+
+func dumpLevel(w io.Writer, n *Node, level int) os.Error {
+ dumpIndent(w, level)
switch n.Type {
case ErrorNode:
return os.NewError("unexpected ErrorNode")
return os.NewError("unexpected DocumentNode")
case ElementNode:
fmt.Fprintf(w, "<%s>", n.Data)
+ for _, a := range n.Attr {
+ io.WriteString(w, "\n")
+ dumpIndent(w, level+1)
+ fmt.Fprintf(w, `%s="%s"`, a.Key, a.Val)
+ }
case TextNode:
fmt.Fprintf(w, "%q", n.Data)
case CommentNode:
rc := make(chan io.Reader)
go readDat(filename, rc)
// TODO(nigeltao): Process all test cases, not just a subset.
- for i := 0; i < 31; i++ {
+ for i := 0; i < 32; i++ {
// Parse the #data section.
b, err := ioutil.ReadAll(<-rc)
if err != nil {