●数式のツリーを表示するスクリプト

disptree.js

001: function disptree(index, prefix, n, br) {
002:   var line = "";
003:   if (n.isAPP()) {
004:     line += "(" + String.fromCharCode(n.op) + ")" + br;
005:     if (n.v2 == null) {
006:       line += prefix + "┗";
007:       if (n.v1.isAPP()) {
008:         line += disptree(index+1, prefix+" ", n.v1, br);
009:       } else {
010:         line += n.v1.toString() + br;
011:       }
012:     } else {
013:       line += prefix;
014:       if (n.v1.isAPP()) {
015:         line += "┣" + disptree(index+1, prefix+"┃", n.v1, br);
016:       } else {
017:         line += "┣" + n.v1.toString() + br;
018:       }
019:       line += prefix;
020:       if (n.v2.isAPP()) {
021:         line += "┗" + disptree(index+1, prefix+" ", n.v2, br);
022:       } else {
023:         line += "┗" +n.v2.toString() + br;
024:       }
025:     }
026:   } else {
027:     line += prefix + "┗" + n.v1.toString() + br;
028:   }
029: 
030:   return line;
031: }