+// return value is an array of Nodes, A Node contains:
+// type: one of: "tag", "text", "comment", "doctype"
+// text: contents for text/comment nodes
+// attrs: object of attributes, eg {href: "#main"}
+// children: array of Nodes
+// namespace: one of: "html", "mathml", "svg"
+// parent: another Node or null