
public abstract class Node {
	public abstract String toIndentedString(int surroundingIndentation);
	public static String toIndentedString(Object o, int surroundingIndentation) {
		if(o == null)
			return "";
		else if(o instanceof Node)
			return ((Node) o).toIndentedString(surroundingIndentation);
		else 
			return o.toString();
	}
	@Override
	public String toString() {
		return toIndentedString(-1000);
	}
	public static String newline(int surroundingIndentation) {
		if(surroundingIndentation < 0)
			return "";
		StringBuffer buffer = new StringBuffer();
		buffer.append("\n");
		for(; surroundingIndentation > 0; --surroundingIndentation)
			buffer.append('\t');
		return buffer.toString();
	}
}
