33 const std::vector<std::string> &files=cmdline.
args;
42 std::vector<std::string> binaries, sources;
43 binaries.reserve(files.size());
44 sources.reserve(files.size());
46 for(
const auto &
file : files)
49 binaries.push_back(
file);
51 sources.push_back(
file);
60 for(
const auto &filename : sources)
63 std::ifstream infile(
widen(filename));
65 std::ifstream infile(filename);
70 msg.
error() <<
"failed to open input file `" << filename
75 std::pair<language_filest::file_mapt::iterator, bool>
76 result=language_files.
file_map.insert(
77 std::pair<std::string, language_filet>(filename,
language_filet()));
99 if(language.
parse(infile, filename))
126 for(
const auto &
file : binaries)
134 if(!binaries.empty())
149 catch(
const std::string e)
158 catch(std::bad_alloc)
void goto_convert(const codet &code, symbol_tablet &symbol_table, goto_programt &dest, message_handlert &message_handler)
std::wstring widen(const char *s)
virtual void get_language_options(const cmdlinet &)
bool is_goto_binary(const std::string &filename)
symbol_tablet symbol_table
static mstreamt & eom(mstreamt &m)
Initialize a Goto Program.
source_locationt source_location
void set_file(const irep_idt &file)
Abstract interface to support a programming language.
bool typecheck(symbol_tablet &symbol_table)
virtual void set_message_handler(message_handlert &_message_handler)
bool read_object_and_link(const std::string &file_name, symbol_tablet &symbol_table, goto_functionst &functions, message_handlert &message_handler)
reads an object file
void set_from_symbol_table(const symbol_tablet &)
bool final(symbol_tablet &symbol_table)
Goto Programs with Functions.
languaget * get_language_from_filename(const std::string &filename)
virtual bool parse(std::istream &instream, const std::string &path)=0
bool initialize_goto_model(goto_modelt &goto_model, const cmdlinet &cmdline, message_handlert &message_handler)
goto_functionst goto_functions