12#ifndef CPROVER_JSIL_JSIL_LANGUAGE_H
13#define CPROVER_JSIL_JSIL_LANGUAGE_H
28 const std::string &path,
31 bool parse(std::istream &
instream,
const std::string &path)
override;
50 const std::string &code,
58 std::string
id()
const override
63 {
return "Javascript Intermediate Language"; }
64 std::set<std::string>
extensions()
const override;
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Base class for all expressions.
bool preprocess(std::istream &instream, const std::string &path, std::ostream &outstream) override
jsil_parse_treet parse_tree
bool from_expr(const exprt &expr, std::string &code, const namespacet &ns) override
Formats the given expression in a language-specific way.
std::unique_ptr< languaget > new_language() override
bool parse(std::istream &instream, const std::string &path) override
virtual ~jsil_languaget()
bool to_expr(const std::string &code, const std::string &module, exprt &expr, const namespacet &ns) override
Parses the given string into an expression.
std::set< std::string > extensions() const override
std::string id() const override
bool typecheck(symbol_table_baset &context, const std::string &module) override
Converting from parse tree and type checking.
bool from_type(const typet &type, std::string &code, const namespacet &ns) override
Formats the given type in a language-specific way.
bool generate_support_functions(symbol_table_baset &symbol_table) override
Create language-specific support functions, such as __CPROVER_start, __CPROVER_initialize and languag...
bool interfaces(symbol_table_baset &symbol_table) override
Adding symbols for all procedure declarations.
void show_parse(std::ostream &out) override
void modules_provided(std::set< std::string > &modules) override
std::string description() const override
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
The symbol table base class interface.
The type of an expression, extends irept.
std::unique_ptr< languaget > new_jsil_language()
Abstract interface to support a programming language.