pub(crate) fn generate(
    formats: &[Rc<InstructionFormat>],
    all_inst: &Vec<Rc<InstructionContent>>,
    opcode_filename: &str,
    inst_builder_filename: &str,
    isle_opt_filename: &str,
    isle_lower_filename: &str,
    out_dir: &str,
    isle_dir: &str
) -> Result<(), Error>