CBMC
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
namespacet Class Reference

A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in them. More...

#include <namespace.h>

+ Inheritance diagram for namespacet:
+ Collaboration diagram for namespacet:

Public Member Functions

 
 
 
  See documentation for namespace_baset::lookup().
 
std::size_t  smallest_unused_suffix (const std::string &prefix) const override
  See documentation for namespace_baset::smallest_unused_suffix().
 
  Return first symbol table registered with the namespace.
 
  Lookup a symbol in the namespace.
 
  Generic lookup function for a symbol expression in a symbol table.
 
  Generic lookup function for a tag type in a symbol table.
 
  Searches for a symbol named name.
 
- Public Member Functions inherited from namespace_baset
  Lookup a symbol in the namespace.
 
  Generic lookup function for a symbol expression in a symbol table.
 
  Generic lookup function for a tag type in a symbol table.
 
 
  Follow macros to their values in a given expression.
 
  Follow type tag of union type.
 
  Follow type tag of struct type.
 
  Follow type tag of enum type.
 
  Resolve a struct_tag_typet or union_tag_typet to the complete version.
 

Protected Attributes

 
 

Detailed Description

A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in them.

The basic idea is that you might want to combine a value table and a type table, so that for a variable you can lookup both of these essential properties, in one structure.

Definition at line 90 of file namespace.h.

Constructor & Destructor Documentation

◆  namespacet() [1/3]

namespacet::namespacet ( const symbol_table_baset_symbol_table )
inlineexplicit

Definition at line 94 of file namespace.h.

◆  namespacet() [2/3]

namespacet::namespacet ( const symbol_table_baset_symbol_table1,
const symbol_table_baset_symbol_table2 
)
inline

Definition at line 97 of file namespace.h.

◆  namespacet() [3/3]

namespacet::namespacet ( const symbol_table_baset_symbol_table1,
const symbol_table_baset_symbol_table2 
)
inline

Definition at line 105 of file namespace.h.

Member Function Documentation

◆  get_symbol_table()

const symbol_table_baset & namespacet::get_symbol_table ( ) const
inline

Return first symbol table registered with the namespace.

Definition at line 123 of file namespace.h.

◆  lookup() [1/5]

const symbolt & namespace_baset::lookup ( const irep_idtname ) const
inline

Lookup a symbol in the namespace.

Parameters
name The name of the symbol to lookup.
Returns
A reference to the symbol found.
Remarks
: It is a PRECONDITION that the symbol name exists in the namespace.

Definition at line 45 of file namespace.h.

◆  lookup() [2/5]

bool namespacet::lookup ( const irep_idtname,
const symbolt *&  symbol 
) const
overridevirtual

See documentation for namespace_baset::lookup().

Search for a given symbol by name, in the two symbol tables, if present.

Note that namespacet has two symbol tables.

Parameters
name The name of the symbol to be looked up.
symbol The const pointer to the reference of the symbol if it's found during lookup.
Returns
False if the symbol was found, True otherwise.

Implements namespace_baset.

Definition at line 134 of file namespace.cpp.

◆  lookup() [3/5]

virtual bool namespace_baset::lookup ( const irep_idtname,
const symbolt *&  symbol 
) const
virtual

Searches for a symbol named name.

Iff found, set symbol to point to the symbol and return false; else symbol is unmodified and true is returned. With multiple symbol tables, symbol_table1 is searched first and then symbol_table2.

Returns
False iff the requested symbol is found in at least one of the tables.

Implements namespace_baset.

◆  lookup() [4/5]

const symbolt & namespace_baset::lookup ( const symbol_exprtexpr ) const

Generic lookup function for a symbol expression in a symbol table.

Parameters
expr The symbol expression to lookup.
Returns
The symbol found in the namespace.
Remarks
The lookup function called assumes that the symbol we are looking for exists in the symbol table. If it doesn't, it hits an INVARIANT.

Definition at line 57 of file namespace.cpp.

◆  lookup() [5/5]

const symbolt & namespace_baset::lookup ( const tag_typettype ) const

Generic lookup function for a tag type in a symbol table.

Parameters
type The tag type to lookup.
Returns
The symbol found in the namespace.
Remarks
The lookup function called assumes that the tag symbol we are looking for exists in the symbol table. If it doesn't, it hits an INVARIANT.

Definition at line 58 of file namespace.cpp.

◆  smallest_unused_suffix()

std::size_t namespacet::smallest_unused_suffix ( const std::string &  prefix ) const
overridevirtual

See documentation for namespace_baset::smallest_unused_suffix().

Find smallest unused suffix in the two symbol tables, assuming they are present.

Parameters
prefix The prefix to find smallest unused suffix of.
Returns
The smallest prefix size.

Implements namespace_baset.

Definition at line 116 of file namespace.cpp.

Member Data Documentation

◆  symbol_table1

const symbol_table_baset* namespacet::symbol_table1
protected

Definition at line 129 of file namespace.h.

◆  symbol_table2

const symbol_table_baset * namespacet::symbol_table2
protected

Definition at line 129 of file namespace.h.


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

AltStyle によって変換されたページ (->オリジナル) /