45 std::istream &instream,
46 const std::string &path,
47 std::ostream &outstream)
54 std::istream &instream,
55 const std::string &path)
81 const std::string &module)
128 const std::string &code,
129 const std::string &module,
134 std::istringstream instream(code);
154 if(symbol_table.
symbols.size()!=1)
158 expr=symbol_table.
symbols.begin()->second.value;
The type of an expression.
virtual bool from_expr(const exprt &expr, std::string &code, const namespacet &ns)
virtual bool parse(std::istream &instream, const std::string &path)
std::string expr2jsil(const exprt &expr, const namespacet &ns)
jsil_parse_treet parse_tree
virtual bool preprocess(std::istream &instream, const std::string &path, std::ostream &outstream)
void jsil_internal_additions(symbol_tablet &dest)
virtual bool final(symbol_tablet &context)
std::string get_base_name(const std::string &in, bool strip_suffix)
cleans a filename from path and extension
virtual std::set< std::string > extensions() const
virtual void modules_provided(std::set< std::string > &modules)
languaget * new_jsil_language()
void swap(jsil_parse_treet &other)
void set_file(const irep_idt &file)
virtual void set_message_handler(message_handlert &_message_handler)
virtual bool interfaces(symbol_tablet &symbol_table)
Adding symbols for all procedure declarations.
void output(std::ostream &out) const
virtual void show_parse(std::ostream &out)
bool jsil_entry_point(symbol_tablet &symbol_table, message_handlert &message_handler)
virtual ~jsil_languaget()
message_handlert & get_message_handler()
std::string type2jsil(const typet &type, const namespacet &ns)
Base class for all expressions.
Jsil Language Conversion.
bool jsil_convert(const jsil_parse_treet &parse_tree, symbol_tablet &symbol_table, message_handlert &message_handler)
jsil_parse_treet parse_tree
virtual bool from_type(const typet &type, std::string &code, const namespacet &ns)
virtual bool to_expr(const std::string &code, const std::string &module, exprt &expr, const namespacet &ns)
virtual void clear() override
virtual bool parse() override
virtual bool typecheck(symbol_tablet &context, const std::string &module)
Converting from parse tree and type checking.
bool jsil_typecheck(symbol_tablet &symbol_table, message_handlert &message_handler)