package interpreter; import java.io.*; import java.util.function.Function; public interface LispInterpreterBuilder { void setInput(InputStream inputStream, String inputName); void setOutput(PrintStream outputStream); void setErrorOutput(PrintStream errorOutputStream); void setTerminationFunction(Runnable terminationFunction); void setErrorTerminationFunction(Runnable errorTerminationFunction); void setNotInteractive(); void useFile(String fileName); void setOutputDecorator(Function outputDecorator); void setValueOutputDecorator(Function valueOutputDecorator); void setWarningOutputDecorator(Function warningOutputDecorator); void setErrorOutputDecorator(Function errorOutputDecorator); void setCriticalOutputDecorator(Function criticalOutputDecorator); default void reset() {} LispInterpreter build(); }