class TypeParser extends AbstractParser<TypeAST> {
	@Override
	public TypeAST visit(int lineNo, String line) throws ASTParseException {<FILL_FUNCTION_BODY>}

	@Override
	public List<String> suggest(ParseResult<RootAST> lastParse, String text) {
		String trim = text.trim();
		if (trim.isEmpty())
			return Collections.emptyList();
		return AutoCompleteUtil.internalName(trim);
	}
}

		try {
			String trim = line.trim();
			trim = EscapeUtil.unescape(trim);
			if (trim.charAt(0) == '[') {
				// Handle array types
				if (!trim.matches("\\S+"))
					throw new ASTParseException(lineNo, "Name cannot contain whitespace characters");
			} else {
				// Handle normal types, cannot have any '[' or ';' in it
				if(!trim.matches("[^\\[;]+"))
					throw new ASTParseException(lineNo, "Contains illegal characters");
				if (!trim.matches("\\S+"))
					throw new ASTParseException(lineNo, "Name cannot contain whitespace characters");
			}
			int start = line.indexOf(trim);
			return new TypeAST(lineNo, getOffset() + start, trim);
		} catch(Exception ex) {
			throw new ASTParseException(ex, lineNo, "Bad format for type");
		}
	
<methods>public void <init>() ,public void <init>(AbstractParser#RAW) ,public int getOffset() ,public void setOffset(int) ,public List<java.lang.String> suggest(ParseResult<me.coley.recaf.parse.bytecode.ast.RootAST>, java.lang.String) ,public abstract me.coley.recaf.parse.bytecode.ast.TypeAST visit(int, java.lang.String) throws me.coley.recaf.parse.bytecode.exception.ASTParseException<variables>private int offset,protected final non-sealed AbstractParser#RAW parent