template<typename CRT, typename
API>
class Rose::Source::Generation::Factory< CRT, API >
constructs expressions and types for the given API
- Template Parameters
-
Definition at line 34 of file Factory.h.
|
|
| Factory (Driver &driver_) |
| |
| template<Object otag, typename... Args> |
| declaration_t< otag > * | instantiate (symbol_t< otag > *API::*obj, SgNamedType *parent, Args... args) const |
| | Return an instantiation.
|
| |
| template<Object otag, typename... Args> |
| reference_t< otag > * | reference (symbol_t< otag > *API::*obj, SgNamedType *parent, Args... args) const |
| | Return an expression or type referencing the object.
|
| |
| template<Object otag, typename... Args> |
| SgExpression * | access (symbol_t< otag > *API::*obj, SgExpression *parent, Args... args) const |
| | Build expression to access a member of the parent expression.
|
| |
| template<Object otag, typename... Args> |
| access_return_t< otag > * | access (symbol_t< otag > *API::*obj, SgNamedType *parent, Args... args) const |
| | Build expression or type to access static member and subtype of the parent type.
|
| |
◆ factory_t
template<typename CRT , typename
API >
◆ access_return_t
template<typename CRT , typename
API >
Select return type for access based on Object type.
- Template Parameters
-
| otag | must be one of a_class/a_typedef or a_variable/a_function |
Definition at line 102 of file Factory.h.
◆ instantiate()
template<typename CRT , typename
API >
template<
Object otag, typename... Args>
Return an instantiation.
- Template Parameters
-
| otag | must be one of a_class/a_typedef/a_variable/a_function |
| Args | types of the nodes to use as template arguments (SgType/SgExpression for type/non-type respectively |
- Parameters
-
| obj | must points to a template symbol |
| args | nodes to use as template arguments |
| parent | is used when called by reference which was called by one of the access methods |
- Returns
- a template instantiation
◆ reference()
template<typename CRT , typename
API >
template<
Object otag, typename... Args>
Return an expression or type referencing the object.
Args are forwarded to instantiate as needed.
- Template Parameters
-
| otag | must be one of a_class/a_typedef/a_variable/a_function |
| Args | types of template arguments (see instantiate) |
- Parameters
-
| obj | points to a symbol |
| args | template arguments (see instantiate) |
| parent | is used when called by one of the access methods |
- Returns
- a reference expression
◆ access() [1/2]
template<typename CRT , typename
API >
template<
Object otag, typename... Args>
Build expression to access a member of the parent expression.
Args are forwarded to instantiate as needed.
- Template Parameters
-
| otag | must be one of a_variable/a_function |
| Args | types of template arguments (see instantiate) |
- Parameters
-
| obj | points to a symbol |
| parent | |
| args | template arguments (see instantiate) |
- Returns
- either
. or -> operator with parent as lhs and reference(obj, args...) as rhs
◆ access() [2/2]
template<typename CRT , typename
API >
template<
Object otag, typename... Args>
Build expression or type to access static member and subtype of the parent type.
Args are forwarded to instantiate as needed.
otag must be one of a_class/a_typedef or a_variable/a_function Args types of template arguments (see instantiate)
obj points to a symbol lhs args template arguments (see instantiate)
◆ driver
template<typename CRT , typename
API >
◆ api
template<typename CRT , typename
API >
The documentation for this class was generated from the following file: