ROSE 0.11.145.147
Classes | Typedefs | Enumerations | Variables
Rose::CodeGen Namespace Reference

Description

Collection of classes/functions to facilitate generation of source-code (esp. C/C++)

Classes

struct  __factory_helper_t
 enables partial specializations w.r.t the template parameter otag More...
 
class  API
 permits to gather types and symbols to extract an API from a set of headers. More...
 
class  Driver
 facilitates the manipulation of source-files (esp. More...
 
class  Factory
 constructs expressions and types for the given API More...
 
struct  object_helper
 
struct  object_helper< Object::a_class >
 
struct  object_helper< Object::a_function >
 
struct  object_helper< Object::a_namespace >
 
struct  object_helper< Object::a_typedef >
 
struct  object_helper< Object::a_variable >
 

Typedefs

using tplargs_t = std::vector< SgTemplateArgument * >
 
template<Object otag>
using symbol_t = typename object_helper< otag >::symbol_t
 The SgSymbol specialization for an Object kind /tparam otag an Object kind.
 
template<Object otag>
using reference_t = typename object_helper< otag >::ref_t
 The SgReference specialization for an Object kind /tparam otag an Object kind.
 
template<Object otag>
using declaration_t = typename object_helper< otag >::decl_t
 The SgDeclarationStatement specialization for an Object kind /tparam otag an Object kind.
 
template<Object otag, typename API >
using symref_t = symbol_t< otag > *API::*
 Pointer to an API member /tparam otag an Object kind /tparam API.
 

Enumerations

enum class  Object {
  a_namespace ,
  a_class ,
  a_typedef ,
  a_variable ,
  a_function
}
 The five kind of objects manipulated by Rose::CodeGen::API and associated Rose::CodeGen::Factory. More...
 

Variables

template<Object otag>
constexpr auto is_template_symbol_variant = object_helper<otag>::is_template_symbol_variant
 This function returns whether the node variant is a template symbol for an Object kind /tparam otag an Object kind.
 

Typedef Documentation

◆ tplargs_t

using Rose::CodeGen::tplargs_t = typedef std::vector<SgTemplateArgument *>

Definition at line 31 of file Factory.h.

◆ symbol_t

template<Object otag>
using Rose::CodeGen::symbol_t = typedef typename object_helper<otag>::symbol_t

The SgSymbol specialization for an Object kind /tparam otag an Object kind.

Definition at line 27 of file Object.h.

◆ reference_t

template<Object otag>
using Rose::CodeGen::reference_t = typedef typename object_helper<otag>::ref_t

The SgReference specialization for an Object kind /tparam otag an Object kind.

Definition at line 33 of file Object.h.

◆ declaration_t

template<Object otag>
using Rose::CodeGen::declaration_t = typedef typename object_helper<otag>::decl_t

The SgDeclarationStatement specialization for an Object kind /tparam otag an Object kind.

Definition at line 39 of file Object.h.

◆ symref_t

template<Object otag, typename API >
using Rose::CodeGen::symref_t = typedef symbol_t<otag> * API::*

Pointer to an API member /tparam otag an Object kind /tparam API.

Definition at line 52 of file Object.h.

Enumeration Type Documentation

◆ Object

enum class Rose::CodeGen::Object
strong

The five kind of objects manipulated by Rose::CodeGen::API and associated Rose::CodeGen::Factory.

Definition at line 12 of file Object.h.

Variable Documentation

◆ is_template_symbol_variant

template<Object otag>
constexpr auto Rose::CodeGen::is_template_symbol_variant = object_helper<otag>::is_template_symbol_variant
constexpr

This function returns whether the node variant is a template symbol for an Object kind /tparam otag an Object kind.

Definition at line 45 of file Object.h.