Index: trunk/doc/developer/lihata_format/render/common.awk =================================================================== --- trunk/doc/developer/lihata_format/render/common.awk (nonexistent) +++ trunk/doc/developer/lihata_format/render/common.awk (revision 16854) @@ -0,0 +1,56 @@ +function get_name(node, ty, level) +{ + if (node "/name" in DATA) + nm = DATA[node "/name"] + else + nm = qstrip(NAME[node]) + if (ty != "") + nm = ty ":" nm + while(level > 0) { + nm = " " nm + level-- + } + return nm +} + +function gen_sub(root, level, v, n, N, node, dst_children, dupsav) +{ + if (!(root in NAME)) { + print "Error: path not found: " root > "/dev/stderr" + return + } + v = children(N, root "/children") + for(n = 1; n <= v; n++) { + node = N[n] + if (TYPE[node] == "symlink") { + # normal node symlink: generate a link +# print "SY:" node " " DATA[node] "^^^" sy_is_recursive(node) > "/dev/stderr" + if (NAME[node] ~ "@dup") { + dupsav = dupd_prefix + if (dupsav == "") + dupd_prefix = "dup" ++uniq_node_name "_" + tbl_entry(DATA[node], level, root) + gen_sub(DATA[node], level+1) + if (dupsav == "") + dupd_prefix = "" + } + else + tbl_entry_link(node, DATA[node], level, root) + } + else if ((node "/children") in NAME) { + tbl_entry(node, level, root) + if (TYPE[node "/children"] == "symlink") { + dst_children = DATA[node "/children"] + sub("/children$", "", dst_children) + gen_sub(dst_children, level+1) + } + else { + gen_sub(node, level+1) + } + } + else if (TYPE[node] == "hash") + tbl_entry(node, level, root) + else + print "Unhandled child (unknown type): " node > "/dev/stderr" + } +} Index: trunk/doc/developer/lihata_format/render/dot.awk =================================================================== --- trunk/doc/developer/lihata_format/render/dot.awk (nonexistent) +++ trunk/doc/developer/lihata_format/render/dot.awk (revision 16854) @@ -0,0 +1,76 @@ +BEGIN { + nl = "\\n" +} + +function tbl_entry(node, level, parent ,nm,vt,dsc,ty,vr, url, tip,duppar) +{ + ty = DATA[node "/type"] + nm = get_name(node, ty, 0) + vt = DATA[node "/valtype"] + vr = DATA[node "/ver"] + dsc = qstrip(DATA[node "/desc"]) + gsub("\"", "\\\"", dsc) + tip=" tooltip=" q dsc q + url=" URL=" q "tree.html#" node q + if (dupd_prefix != "") { + node = dupd_prefix node + DUPD[node] ++ + + if (parent != "") { + duppar = dupd_prefix parent + if (duppar in DUPD) + parent = duppar + } + } + + print " " q node q " [label=" q nm nl vt nl vr q url tip "]" >fn + if (parent != "") + print " " q parent q " -> " q node q > fn +} + +function tbl_entry_link(node, dst, level, parent ,nm,vt,dsc,ty,vr,contid,url,tip,dr) +{ + ty = DATA[node "/type"] + nm = get_name(node, ty, 0) + vt = DATA[node "/valtype"] + vr = DATA[node "/ver"] + dsc = qstrip(DATA[node "/desc"]) + gsub("\"", "\\\"", dsc) + dr = dst + sub("^.*/", "", dr) + url=" URL=" q dr ".svg" q + tip=" tooltip=" q dsc q + print " " q node q " [label=" q nm " ->" nl vt nl vr nl q url tip " shape=plaintext]" >fn + if (parent != "") + print " " q parent q " -> " q node q > fn +} + +function gen_graph(rpath, v, n, N, name) +{ + name = get_name(rpath, DATA[rpath "/type"]) + fn=name + sub(".*[:/]", "", fn) + gsub("[*]", "", fn) + fn = "../" fn ".dot" + + print "digraph " q name q " {" > fn + tbl_entry(rpath, 0) + gen_sub(rpath, 1) + print "}" > fn + close(fn) +} + +function gen_graphs(rpath, v, n, N, name) +{ + v = children(N, rpath) + for(n = 1; n <= v; n++) { + if (N[n] "/hide" in NAME) + continue + gen_graph(N[n]) + } +} + +END { + gen_graphs("/lht_tree_doc/roots") + gen_graphs("/lht_tree_doc/comm") +} Index: trunk/doc/developer/lihata_format/render/html.awk =================================================================== --- trunk/doc/developer/lihata_format/render/html.awk (revision 16853) +++ trunk/doc/developer/lihata_format/render/html.awk (revision 16854) @@ -13,21 +13,6 @@ print "