package de.gaalop; import de.gaalop.cfg.ControlFlowGraph; import java.util.Set; /** * This interface provides methods to generate code from * a control flow graph. * * Please note: Implementing classes MUST be thread safe. * * @author Sebastian Hartte * @version 1.0 * @since 1.0 * @see OutputFile */ public interface CodeGenerator { /** * Generates a set of files for a given control flow graph. * * @param in The control flow graph to generated code from. * @return A set of generated files. This set will not be modified. * @throws CodeGeneratorException If any error occurs during the code generation phase. */ Set<OutputFile> generate(ControlFlowGraph in) throws CodeGeneratorException; }