package name.panitz.gm;
public class NodeToString {
  static public String toString(Node n) throws Exception{
    if (n instanceof NNum) return "(NNum "+((NNum)n).n+")";
    if (n instanceof NChar)return "(NChar \'"+((NChar)n).c+"\')";
    if (n instanceof NConstr ){
      String args = "[";
      for (int i:((NConstr)n).args) args=args+i+" ";
      return "(NConstr "+((NConstr)n).name+args+"])";
    }
    if (n instanceof NInd)return "(NInd "+((NInd)n).adr+")";
    if (n instanceof NAp)
      return "(NAp "+((NAp)n).n1+","+((NAp)n).n2+")";
    if (n instanceof NGlobal)
      return "(NGlobal "+((NGlobal)n).argc+","+((NGlobal)n).i+")";
    throw new Exception("unmatched node type: "+n);
  }
}

