lestes::backend_v2::interface::backend_data_builder Class Reference

Interface for passing intercode structures representing translation unit to backend. More...

#include <backend_data_builder.g.hh>

Inheritance diagram for lestes::backend_v2::interface::backend_data_builder:

lestes::std::object lestes::std::mem::keystone List of all members.

Public Member Functions

ptr< ::lestes::std::vector<
srp< builder_func_data > > > 
functions_get () const
 The method functions_get returns the value of the field backend_data_builder::functions.
void functions_set (const ptr< ::lestes::std::vector< srp< builder_func_data > > > &)
 The method functions_set sets the field backend_data_builder::functions to the given value.
ptr< builder_func_datacurrent_function_body_get () const
 The method current_function_body_get returns the value of the field backend_data_builder::current_function_body.
void current_function_body_set (const ptr< builder_func_data > &)
 The method current_function_body_set sets the field backend_data_builder::current_function_body to the given value.
ptr< lestes::std::vector<
srp< ::lestes::backend_v2::interface::builder_func_data > > > 
get_result ()
 Returns builder's result.
void add_pi (ptr< ::lestes::backend_v2::intercode::pi_pi > pi)
 Adds a pseudoinstruction to the currently built function's body.
void add_pis (ptr< lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > > pis)
 Adds a list of pseudoinstructions to the currently built function's body.
void add_sp (ptr< ::lestes::backend_v2::intercode::pi_sp > sp)
 Adds a sequencepoint to the currently built function's body.
void add_function_start (ptr< ::lestes::lang::cplus::sem::ss_function_declaration > function)
 Initiates processing of another function's body.
void add_function_end ()
 Finishes processing of the current function's body.
void add_rail ()
 Finishes processing of particular sematic structure.
virtual ptr< reflection_listreflection_get () const
 for purposes of dumping
virtual ptr< field_list_listfield_values_get () const
 for purposes of dumping

Static Public Member Functions

static ptr< backend_data_buildersingleton_instance_get ()
 The method singleton_instance_get returns the value of the field backend_data_builder::singleton_instance.
static void singleton_instance_set (const ptr< backend_data_builder > &)
 The method singleton_instance_set sets the field backend_data_builder::singleton_instance to the given value.
static ptr< backend_data_builderinstance ()
 Returns instance of builder.
static ptr< backend_data_buildercreate (ptr< ::lestes::std::vector< srp< builder_func_data > > > a__backend_data_builder__functions, ptr< builder_func_data > a__backend_data_builder__current_function_body)
 First generated factory method for class backend_data_builder.
static ptr< backend_data_buildercreate ()
 Second generated factory method for class backend_data_builder.

Protected Member Functions

 backend_data_builder (ptr< ::lestes::std::vector< srp< builder_func_data > > > a__backend_data_builder__functions, ptr< builder_func_data > a__backend_data_builder__current_function_body)
 Generated constructor for class backend_data_builder.
virtual void gc_mark ()
 Marking routine for class backend_data_builder.

Private Attributes

srp< ::lestes::std::vector<
srp< builder_func_data > > > 
functions
 Bodies of the functions composing single translation unit.
srp< builder_func_datacurrent_function_body

Static Private Attributes

static ptr< backend_data_buildersingleton_instance = NULL
static ptr< reflection_listreflection = reflection

Detailed Description

Interface for passing intercode structures representing translation unit to backend.

Definition at line 69 of file backend_data_builder.g.hh.


Constructor & Destructor Documentation

lestes::backend_v2::interface::backend_data_builder::backend_data_builder ( ptr< ::lestes::std::vector< srp< builder_func_data > > >  a__backend_data_builder__functions,
ptr< builder_func_data a__backend_data_builder__current_function_body 
) [protected]

Generated constructor for class backend_data_builder.

Generated constructor for class backend_data_builder.

Author:
lsg

Definition at line 101 of file backend_data_builder.g.cc.

Referenced by create().

00103         : ::lestes::std::object(), functions(checked(a__backend_data_builder__functions)), current_function_body(a__backend_data_builder__current_function_body)
00104 {}


Member Function Documentation

ptr< backend_data_builder > lestes::backend_v2::interface::backend_data_builder::singleton_instance_get (  )  [static]

The method singleton_instance_get returns the value of the field backend_data_builder::singleton_instance.

Returns:
The value of backend_data_builder::singleton_instance.
Author:
lsg

Definition at line 27 of file backend_data_builder.g.cc.

References singleton_instance.

00028 {
00029         return singleton_instance;
00030 }

void lestes::backend_v2::interface::backend_data_builder::singleton_instance_set ( const ptr< backend_data_builder > &  x  )  [static]

The method singleton_instance_set sets the field backend_data_builder::singleton_instance to the given value.

Parameters:
[in] x The new value to set backend_data_builder::singleton_instance to.
Author:
lsg

Definition at line 36 of file backend_data_builder.g.cc.

References singleton_instance.

Referenced by instance().

00037 {
00038         backend_data_builder::singleton_instance = x;
00039 }

ptr<::lestes::std::vector< srp< builder_func_data > > > lestes::backend_v2::interface::backend_data_builder::functions_get (  )  const

The method functions_get returns the value of the field backend_data_builder::functions.

Returns:
The value of backend_data_builder::functions.
Author:
lsg

Definition at line 45 of file backend_data_builder.g.cc.

References functions.

00046 {
00047         return functions;
00048 }

void lestes::backend_v2::interface::backend_data_builder::functions_set ( const ptr< ::lestes::std::vector< srp< builder_func_data > > > &  x  ) 

The method functions_set sets the field backend_data_builder::functions to the given value.

Parameters:
[in] x The new value to set backend_data_builder::functions to.
Author:
lsg

Definition at line 54 of file backend_data_builder.g.cc.

References functions.

00055 {
00056         backend_data_builder::functions = x;
00057 }

ptr< builder_func_data > lestes::backend_v2::interface::backend_data_builder::current_function_body_get (  )  const

The method current_function_body_get returns the value of the field backend_data_builder::current_function_body.

Returns:
The value of backend_data_builder::current_function_body.
Author:
lsg

Definition at line 63 of file backend_data_builder.g.cc.

References current_function_body.

00064 {
00065         return current_function_body;
00066 }

void lestes::backend_v2::interface::backend_data_builder::current_function_body_set ( const ptr< builder_func_data > &  x  ) 

The method current_function_body_set sets the field backend_data_builder::current_function_body to the given value.

Parameters:
[in] x The new value to set backend_data_builder::current_function_body to.
Author:
lsg

Definition at line 72 of file backend_data_builder.g.cc.

References current_function_body.

ptr< backend_data_builder > lestes::backend_v2::interface::backend_data_builder::instance (  )  [static]

Returns instance of builder.

Definition at line 33 of file backend_data_builder.cc.

References create(), singleton_instance, and singleton_instance_set().

00033                                                          {
00034         if ( !singleton_instance ) {
00035                 //An singleton instance has not been created yet. Create it!
00036                 singleton_instance_set(backend_data_builder::create());
00037         }
00038         //Return instance.
00039         return singleton_instance;
00040 }

ptr< builder_func_data__vector > lestes::backend_v2::interface::backend_data_builder::get_result (  ) 

Returns builder's result.

Definition at line 46 of file backend_data_builder.cc.

References functions.

00046                                                                {
00047         return functions;
00048 }

void lestes::backend_v2::interface::backend_data_builder::add_pi ( ptr< ::lestes::backend_v2::intercode::pi_pi pi  ) 

Adds a pseudoinstruction to the currently built function's body.

void lestes::backend_v2::interface::backend_data_builder::add_pis ( ptr< lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > >  pis  ) 

Adds a list of pseudoinstructions to the currently built function's body.

void lestes::backend_v2::interface::backend_data_builder::add_sp ( ptr< ::lestes::backend_v2::intercode::pi_sp sp  ) 

Adds a sequencepoint to the currently built function's body.

void lestes::backend_v2::interface::backend_data_builder::add_function_start ( ptr< ::lestes::lang::cplus::sem::ss_function_declaration function  ) 

Initiates processing of another function's body.

void lestes::backend_v2::interface::backend_data_builder::add_function_end (  ) 

Finishes processing of the current function's body.

Definition at line 160 of file backend_data_builder.cc.

References current_function_body, lestes::msg::eolog, functions, and lassert.

00160                                             {
00161         //Assure that we are inside an function body.
00162         lassert(current_function_body);
00163         
00164         //Finish processing of the current function and insert it to the list of translation unit's functions.
00165         functions->push_back(current_function_body);    
00166                 
00167         log << "function(" << current_function_body->function_decl_get()->uid_get() <<"): end\n" << eolog;
00168         
00169         //Clear fields holding info about processed function.
00170         current_function_body = NULL;
00171 }

void lestes::backend_v2::interface::backend_data_builder::add_rail (  ) 

Finishes processing of particular sematic structure.

For debuging purposes.

Definition at line 134 of file backend_data_builder.cc.

References current_function_body, and lestes::msg::eolog.

00134                                     {
00135     //for debug purposes only
00136         log << "function(" << current_function_body->function_decl_get()->uid_get() <<"): rail added\n" << eolog;
00137 }

ptr< backend_data_builder > lestes::backend_v2::interface::backend_data_builder::create ( ptr< ::lestes::std::vector< srp< builder_func_data > > >  a__backend_data_builder__functions,
ptr< builder_func_data a__backend_data_builder__current_function_body 
) [static]

First generated factory method for class backend_data_builder.

This factory method for class backend_data_builder takes values of all fields as arguments.

Author:
lsg

Definition at line 81 of file backend_data_builder.g.cc.

References backend_data_builder().

00083 {
00084         return ptr< backend_data_builder > ( new backend_data_builder(a__backend_data_builder__functions,
00085                 a__backend_data_builder__current_function_body) );
00086 }

ptr< backend_data_builder > lestes::backend_v2::interface::backend_data_builder::create (  )  [static]

Second generated factory method for class backend_data_builder.

This factory method for class backend_data_builder uses initializers.

Author:
lsg

Definition at line 92 of file backend_data_builder.g.cc.

References backend_data_builder().

Referenced by instance().

00093 {
00094         return ptr< backend_data_builder > ( new backend_data_builder(::lestes::std::vector< srp< builder_func_data > > ::create(), NULL) );
00095 }

ptr< object::reflection_list > lestes::backend_v2::interface::backend_data_builder::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::object.

Definition at line 106 of file backend_data_builder.g.cc.

References lestes::std::list< T >::create(), reflection, and lestes::std::object::reflection_get().

00107 {
00108         if (!reflection) {
00109                 typedef class_reflection::field_metadata md;
00110                 typedef class_reflection::field_metadata_list mdlist;
00111                 ptr<mdlist> mdl = mdlist::create();
00112                 mdl->push_back( md::create( "singleton_instance", "backend_data_builder" ) );
00113                 mdl->push_back( md::create( "functions", "vector&lt; srp&lt; builder_func_data &gt; &gt;" ) );
00114                 mdl->push_back( md::create( "current_function_body", "builder_func_data" ) );
00115                 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00116                 reflection->push_back( class_reflection::create( "backend_data_builder", mdl ) );
00117         }
00118         return reflection;
00119 }

ptr< object::field_list_list > lestes::backend_v2::interface::backend_data_builder::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::object.

Definition at line 121 of file backend_data_builder.g.cc.

References lestes::std::list< T >::create(), and lestes::std::object::field_values_get().

00122 {
00123         ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00124         result->push_back( value_list::create() );
00125         result->back()->push_back( this->singleton_instance );
00126         result->push_back( value_list::create() );
00127         result->back()->push_back( this->functions );
00128         result->push_back( value_list::create() );
00129         result->back()->push_back( this->current_function_body );
00130         return result;
00131 }

void lestes::backend_v2::interface::backend_data_builder::gc_mark ( void   )  [protected, virtual]

Marking routine for class backend_data_builder.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::std::mem::keystone.

Definition at line 138 of file backend_data_builder.g.cc.

References lestes::std::mem::keystone::gc_mark().

00139 {
00140 	::lestes::std::object::gc_mark();
00141 }


Member Data Documentation

ptr< backend_data_builder > lestes::backend_v2::interface::backend_data_builder::singleton_instance = NULL [static, private]

Definition at line 139 of file backend_data_builder.g.hh.

Referenced by instance(), singleton_instance_get(), and singleton_instance_set().

srp< ::lestes::std::vector< srp< builder_func_data > > > lestes::backend_v2::interface::backend_data_builder::functions [private]

Bodies of the functions composing single translation unit.

Definition at line 141 of file backend_data_builder.g.hh.

Referenced by add_function_end(), functions_get(), functions_set(), and get_result().

srp< builder_func_data > lestes::backend_v2::interface::backend_data_builder::current_function_body [private]

Definition at line 142 of file backend_data_builder.g.hh.

Referenced by add_function_end(), add_rail(), current_function_body_get(), and current_function_body_set().

ptr< object::reflection_list > lestes::backend_v2::interface::backend_data_builder::reflection = reflection [static, private]

Reimplemented from lestes::std::object.

Definition at line 143 of file backend_data_builder.g.hh.

Referenced by reflection_get().


The documentation for this class was generated from the following files:
Generated on Mon Feb 12 18:24:09 2007 for lestes by doxygen 1.5.1-20070107