class NumberAST extends AST {
	private final Number value;

	/**
	 * @param line
	 * 		Line number this node is written on.
	 * @param start
	 * 		Offset from line start this node starts at.
	 * @param value
	 * 		Numeric value.
	 */
	public NumberAST(int line, int start, Number value) {
		super(line, start);
		this.value = value;
	}

	/**
	 * @return value.
	 */
	public Number getValue() {
		return value;
	}

	/**
	 * @return value as int.
	 */
	public int getIntValue() {
		return value.intValue();
	}

	/**
	 * @return value as long.
	 */
	public long getLongValue() {
		return value.longValue();
	}

	/**
	 * @return value as float.
	 */
	public float getFloatValue() {
		return value.floatValue();
	}

	/**
	 * @return value as double.
	 */
	public double getDoubleValue() {
		return value.doubleValue();
	}

	@Override
	public String print() {<FILL_FUNCTION_BODY>}
}

		String val = String.valueOf(value);
		String suffix = "";
		if (value instanceof Long)
			suffix = "L";
		else if (value instanceof Float)
			suffix = "F";
		return val + suffix;
	
<methods>public void <init>(int, int) ,public void addChild(me.coley.recaf.parse.bytecode.ast.AST) ,public List<me.coley.recaf.parse.bytecode.ast.AST> getChildren() ,public int getLine() ,public me.coley.recaf.parse.bytecode.ast.AST getNext() ,public me.coley.recaf.parse.bytecode.ast.AST getParent() ,public me.coley.recaf.parse.bytecode.ast.AST getPrev() ,public int getStart() ,public abstract java.lang.String print() ,public List<T> search(Class<T>) ,public void setNext(me.coley.recaf.parse.bytecode.ast.AST) ,public void setParent(me.coley.recaf.parse.bytecode.ast.AST) ,public void setPrev(me.coley.recaf.parse.bytecode.ast.AST) ,public java.lang.String toString() <variables>private final List<me.coley.recaf.parse.bytecode.ast.AST> children,private final non-sealed int line,private me.coley.recaf.parse.bytecode.ast.AST next,private me.coley.recaf.parse.bytecode.ast.AST parent,private me.coley.recaf.parse.bytecode.ast.AST prev,private final non-sealed int start