41 std::istream &instream,
42 const std::string &path,
43 std::ostream &outstream)
53 std::istream &instream,
54 const std::string &path)
60 std::ostringstream o_preprocessed;
65 std::istringstream i_preprocessed(o_preprocessed.str());
71 std::istringstream codestr(code);
106 const std::string &module)
173 const std::string &code,
174 const std::string &module,
182 std::istringstream i_preprocessed(
183 "void __my_expression = (void) (\n"+code+
"\n);");
210 if(expr.
id()==ID_typecast &&
211 expr.
type().
id()==ID_empty &&
static std::string type2name(const typet &type, const namespacet &ns, symbol_numbert &symbol_number)
The type of an expression.
struct configt::ansi_ct ansi_c
~ansi_c_languaget() override
bool ansi_c_typecheck(ansi_c_parse_treet &ansi_c_parse_tree, symbol_tablet &symbol_table, const std::string &module, message_handlert &message_handler)
bool typecheck(symbol_tablet &symbol_table, const std::string &module) override
ansi_c_parse_treet parse_tree
ANSI-C Language Type Checking.
languaget * new_ansi_c_language()
ansi_c_parse_treet parse_tree
bool linking(symbol_tablet &dest_symbol_table, symbol_tablet &new_symbol_table, message_handlert &message_handler)
bool c_preprocess(std::istream &instream, std::ostream &outstream, message_handlert &message_handler)
ANSI-C preprocessing.
bool parse(std::istream &instream, const std::string &path) override
std::string get_base_name(const std::string &in, bool strip_suffix)
cleans a filename from path and extension
bool to_expr(const std::string &code, const std::string &module, exprt &expr, const namespacet &ns) override
void ansi_c_internal_additions(std::string &code)
void output(std::ostream &out) const
const irep_idt & id() const
virtual bool parse() override
void remove_internal_symbols(symbol_tablet &symbol_table)
A symbol is EXPORTED if it is a * non-static function with body that is not extern inline * symbol us...
void set_file(const irep_idt &file)
bool preprocess(std::istream &instream, const std::string &path, std::ostream &outstream) override
ANSI-C preprocessing.
std::string type2c(const typet &type, const namespacet &ns)
void ansi_c_scanner_init()
virtual void set_message_handler(message_handlert &_message_handler)
bool type_to_name(const typet &type, std::string &name, const namespacet &ns) override
void show_parse(std::ostream &out) override
message_handlert & get_message_handler()
bool ansi_c_entry_point(symbol_tablet &symbol_table, const std::string &standard_main, message_handlert &message_handler)
Base class for all expressions.
ansi_c_parsert ansi_c_parser
std::string expr2c(const exprt &expr, const namespacet &ns)
bool from_type(const typet &type, std::string &code, const namespacet &ns) override
void set_line_no(unsigned _line_no)
void swap(ansi_c_parse_treet &other)
std::set< std::string > extensions() const override
bool from_expr(const exprt &expr, std::string &code, const namespacet &ns) override
Remove symbols that are internal only.
void modules_provided(std::set< std::string > &modules) override
virtual void clear() override
bool final(symbol_tablet &symbol_table) override