class Shell {

	Command runCommand(final LineReader lineReader, final String prompt) {
		Command command = null;
		try {
			command = this.readCommand(lineReader, prompt);
		} catch (final Exception e) {
			this.interpreter.printNormal("Unexpected error: " + e.getMessage() + "\n");
			e.printStackTrace();
		}

		if (command != null) {
			try {
				this.interpreter.runCommand(command);
			} catch (final CommandExecutionException e) {
				this.interpreter.printNormal("Error: " + e.getMessage() + "\n");
			}
		}
		return command;
	}

	public  Shell(final Interpreter interpreter);

}