* @return a list of compilation results.
* @throws GoloCompilationException if a problem occurs during any phase of the compilation work.
*/
public final List<CodeGenerationResult> compile(String goloSourceFilename, InputStream sourceCodeInputStream) throws GoloCompilationException {
resetExceptionBuilder();
ASTCompilationUnit compilationUnit = parse(goloSourceFilename, initParser(sourceCodeInputStream));
throwIfErrorEncountered();
GoloModule goloModule = check(compilationUnit);
throwIfErrorEncountered();
JavaBytecodeGenerationGoloIrVisitor bytecodeGenerator = new JavaBytecodeGenerationGoloIrVisitor();
return bytecodeGenerator.generateBytecode(goloModule, goloSourceFilename);