cprover
cpp_languaget Class Reference

#include <cpp_language.h>

Inheritance diagram for cpp_languaget:
[legend]
Collaboration diagram for cpp_languaget:
[legend]

Public Member Functions

bool preprocess (std::istream &instream, const std::string &path, std::ostream &outstream) override
 ANSI-C preprocessing. More...
 
bool parse (std::istream &instream, const std::string &path) override
 
bool typecheck (symbol_tablet &symbol_table, const std::string &module) override
 
bool merge_symbol_table (symbol_tablet &dest, symbol_tablet &src, const std::string &module, class replace_symbolt &replace_symbol) const
 
bool final (symbol_tablet &symbol_table) override
 
void show_parse (std::ostream &out) override
 
 ~cpp_languaget () override
 
 cpp_languaget ()
 
bool from_expr (const exprt &expr, std::string &code, const namespacet &ns) override
 
bool from_type (const typet &type, std::string &code, const namespacet &ns) override
 
bool type_to_name (const typet &type, std::string &name, const namespacet &ns) override
 
bool to_expr (const std::string &code, const std::string &module, exprt &expr, const namespacet &ns) override
 
languagetnew_language () override
 
std::string id () const override
 
std::string description () const override
 
std::set< std::string > extensions () const override
 
void modules_provided (std::set< std::string > &modules) override
 
- Public Member Functions inherited from languaget
virtual void get_language_options (const cmdlinet &)
 
virtual void dependencies (const std::string &module, std::set< std::string > &modules)
 
virtual void lazy_methods_provided (std::set< irep_idt > &methods) const
 
virtual void convert_lazy_method (const irep_idt &id, symbol_tablet &)
 
virtual bool interfaces (symbol_tablet &symbol_table)
 
 languaget ()
 
virtual ~languaget ()
 
- Public Member Functions inherited from messaget
virtual void set_message_handler (message_handlert &_message_handler)
 
message_handlertget_message_handler ()
 
 messaget ()
 
 messaget (const messaget &other)
 
 messaget (message_handlert &_message_handler)
 
virtual ~messaget ()
 
mstreamtget_mstream (unsigned message_level)
 
mstreamterror ()
 
mstreamtwarning ()
 
mstreamtresult ()
 
mstreamtstatus ()
 
mstreamtstatistics ()
 
mstreamtprogress ()
 
mstreamtdebug ()
 

Protected Member Functions

void show_parse (std::ostream &out, const cpp_itemt &item)
 
std::string main_symbol ()
 

Protected Attributes

cpp_parse_treet cpp_parse_tree
 
std::string parse_path
 
- Protected Attributes inherited from messaget
message_handlertmessage_handler
 
mstreamt mstream
 

Additional Inherited Members

- Public Types inherited from messaget
enum  message_levelt {
  M_ERROR =1, M_WARNING =2, M_RESULT =4, M_STATUS =6,
  M_STATISTICS =8, M_PROGRESS =9, M_DEBUG =10
}
 
- Static Public Member Functions inherited from messaget
static mstreamteom (mstreamt &m)
 
static mstreamtendl (mstreamt &m)
 

Detailed Description

Definition at line 19 of file cpp_language.h.

Constructor & Destructor Documentation

◆ ~cpp_languaget()

cpp_languaget::~cpp_languaget ( )
override

Definition at line 278 of file cpp_language.cpp.

◆ cpp_languaget()

cpp_languaget::cpp_languaget ( )
inline

Definition at line 48 of file cpp_language.h.

Referenced by new_language().

Member Function Documentation

◆ description()

std::string cpp_languaget::description ( ) const
inlineoverridevirtual

Reimplemented from languaget.

Definition at line 78 of file cpp_language.h.

◆ extensions()

std::set< std::string > cpp_languaget::extensions ( ) const
overridevirtual

Reimplemented from languaget.

Definition at line 33 of file cpp_language.cpp.

◆ final()

bool cpp_languaget::final ( symbol_tablet symbol_table)
overridevirtual

Reimplemented from languaget.

Definition at line 137 of file cpp_language.cpp.

References ansi_c_entry_point(), and messaget::get_message_handler().

◆ from_expr()

bool cpp_languaget::from_expr ( const exprt expr,
std::string &  code,
const namespacet ns 
)
overridevirtual

Reimplemented from languaget.

Definition at line 213 of file cpp_language.cpp.

References expr2cpp().

◆ from_type()

bool cpp_languaget::from_type ( const typet type,
std::string &  code,
const namespacet ns 
)
overridevirtual

Reimplemented from languaget.

Definition at line 222 of file cpp_language.cpp.

References type2cpp().

◆ id()

std::string cpp_languaget::id ( ) const
inlineoverridevirtual

Reimplemented from languaget.

Definition at line 77 of file cpp_language.h.

◆ main_symbol()

std::string cpp_languaget::main_symbol ( )
inlineprotected

Definition at line 89 of file cpp_language.h.

◆ merge_symbol_table()

bool cpp_languaget::merge_symbol_table ( symbol_tablet dest,
symbol_tablet src,
const std::string &  module,
class replace_symbolt replace_symbol 
) const

◆ modules_provided()

void cpp_languaget::modules_provided ( std::set< std::string > &  modules)
overridevirtual

Reimplemented from languaget.

Definition at line 51 of file cpp_language.cpp.

References get_base_name(), and parse_path.

◆ new_language()

languaget* cpp_languaget::new_language ( )
inlineoverridevirtual

Implements languaget.

Definition at line 74 of file cpp_language.h.

References cpp_languaget().

◆ parse()

◆ preprocess()

bool cpp_languaget::preprocess ( std::istream &  instream,
const std::string &  path,
std::ostream &  outstream 
)
overridevirtual

ANSI-C preprocessing.

Reimplemented from languaget.

Definition at line 57 of file cpp_language.cpp.

References c_preprocess(), and messaget::get_message_handler().

Referenced by parse().

◆ show_parse() [1/2]

void cpp_languaget::show_parse ( std::ostream &  out)
overridevirtual

Implements languaget.

Definition at line 145 of file cpp_language.cpp.

References cpp_parse_tree, and cpp_parse_treet::items.

Referenced by show_parse().

◆ show_parse() [2/2]

◆ to_expr()

bool cpp_languaget::to_expr ( const std::string &  code,
const std::string &  module,
exprt expr,
const namespacet ns 
)
overridevirtual

◆ type_to_name()

bool cpp_languaget::type_to_name ( const typet type,
std::string &  name,
const namespacet ns 
)
overridevirtual

Reimplemented from languaget.

Definition at line 231 of file cpp_language.cpp.

References cpp_type2name().

◆ typecheck()

bool cpp_languaget::typecheck ( symbol_tablet symbol_table,
const std::string &  module 
)
overridevirtual

Implements languaget.

Definition at line 121 of file cpp_language.cpp.

References cpp_parse_tree, cpp_typecheck(), messaget::get_message_handler(), and linking().

Member Data Documentation

◆ cpp_parse_tree

cpp_parse_treet cpp_languaget::cpp_parse_tree
protected

Definition at line 84 of file cpp_language.h.

Referenced by parse(), show_parse(), and typecheck().

◆ parse_path

std::string cpp_languaget::parse_path
protected

Definition at line 85 of file cpp_language.h.

Referenced by modules_provided(), and parse().


The documentation for this class was generated from the following files: