12 #ifndef CPROVER_JSIL_JSIL_LANGUAGE_H 13 #define CPROVER_JSIL_JSIL_LANGUAGE_H 23 std::istream &instream,
24 const std::string &path,
25 std::ostream &outstream);
28 std::istream &instream,
29 const std::string &path);
33 const std::string &module);
54 const std::string &code,
55 const std::string &module,
62 virtual std::string
id()
const {
return "jsil"; }
64 {
return "Javascript Intermediate Language"; }
65 virtual std::set<std::string>
extensions()
const;
77 #endif // CPROVER_JSIL_JSIL_LANGUAGE_H 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)
jsil_parse_treet parse_tree
virtual bool preprocess(std::istream &instream, const std::string &path, std::ostream &outstream)
virtual std::set< std::string > extensions() const
virtual void modules_provided(std::set< std::string > &modules)
virtual std::string id() const
Abstract interface to support a programming language.
virtual bool interfaces(symbol_tablet &symbol_table)
Adding symbols for all procedure declarations.
virtual languaget * new_language()
virtual void show_parse(std::ostream &out)
virtual ~jsil_languaget()
Base class for all expressions.
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 bool typecheck(symbol_tablet &context, const std::string &module)
Converting from parse tree and type checking.
languaget * new_jsil_language()
virtual std::string description() const