1234567891011121314151617181920212223242526272829303132333435363738394041 |
- /*
- * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- #include "output_format.h"
- #include <iostream>
- struct hex_output : public output_format {
- struct factory {
- factory() {
- output_format::add(new hex_output());
- }
- };
- hex_output() : output_format("hex") {}
- std::string get_description() {
- return "Raw hex output (only valid for single program inputs)";
- }
- virtual int output(std::string destination, std::vector<std::string> output_options,
- const compiled_source &source) {
- FILE *out = open_single_output(destination);
- if (!out) return 1;
- if (source.programs.size() > 1) {
- // todo don't have locations any more!
- std::cerr << "error: hex output only supports a single program input\n";
- return 1;
- }
- for (const auto &i : source.programs[0].instructions) {
- fprintf(out, "%04x\n", i);
- }
- if (out != stdout) { fclose(out); }
- return 0;
- }
- };
- static hex_output::factory creator;
|