lestes::backend_v2::workers::body_preprocessor Class Reference

Preprocesses function body before it is passed to backend's workers. More...

#include <body_preprocessor.g.hh>

Inheritance diagram for lestes::backend_v2::workers::body_preprocessor:

lestes::backend_v2::workers::worker_base lestes::std::object lestes::std::mem::keystone List of all members.

Public Member Functions

void process ()
 Preprocesses a function body.
ptr< ::lestes::backend_v2::structs::func_dataget_result ()
 Returns preprocessed function body.
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< body_preprocessorcreate (ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data)
 First generated factory method for class body_preprocessor.

Protected Member Functions

 body_preprocessor (ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data)
 Generated constructor for class body_preprocessor.
virtual void gc_mark ()
 Marking routine for class body_preprocessor.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Preprocesses function body before it is passed to backend's workers.

Definition at line 32 of file body_preprocessor.g.hh.


Constructor & Destructor Documentation

lestes::backend_v2::workers::body_preprocessor::body_preprocessor ( ptr< ::lestes::backend_v2::structs::func_data a__worker_base__data  )  [protected]

Generated constructor for class body_preprocessor.

Generated constructor for class body_preprocessor.

Author:
lsg

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

Referenced by create().

00037         : worker_base(a__worker_base__data)
00038 {}


Member Function Documentation

void lestes::backend_v2::workers::body_preprocessor::process (  )  [virtual]

Preprocesses a function body.

For now, it just registers all function calls in symbol_register.

Implements lestes::backend_v2::workers::worker_base.

Definition at line 23 of file body_preprocessor.cc.

References lestes::backend_v2::workers::worker_base::data_get().

00023                                 {
00024         
00025         ptr<ge_pi_list__type> body = data_get()->ge_body_get();
00026         
00027         for(ge_pi_list__type::iterator it = body->begin(); it!=body->end(); ++it) {
00028                 
00029                 ptr<ge_pi> ge = *it;
00030                 
00031                 if ( ge->kind_get()==ge_pi::CALL ) {
00032                         symbol_register::instance()->register_symbol(ge.dncast<ge_call>()->function_decl_get());
00033                 }
00034         }
00035 }

ptr< func_data > lestes::backend_v2::workers::body_preprocessor::get_result (  )  [virtual]

Returns preprocessed function body.

Implements lestes::backend_v2::workers::worker_base.

Definition at line 41 of file body_preprocessor.cc.

References lestes::backend_v2::workers::worker_base::data_get().

00041                                              {
00042         return data_get();
00043 }

ptr< body_preprocessor > lestes::backend_v2::workers::body_preprocessor::create ( ptr< ::lestes::backend_v2::structs::func_data a__worker_base__data  )  [static]

First generated factory method for class body_preprocessor.

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

Author:
lsg

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

References body_preprocessor().

00028 {
00029         return ptr< body_preprocessor > ( new body_preprocessor(a__worker_base__data) );
00030 }

ptr< object::reflection_list > lestes::backend_v2::workers::body_preprocessor::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::backend_v2::workers::worker_base.

Definition at line 40 of file body_preprocessor.g.cc.

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

00041 {
00042         if (!reflection) {
00043                 typedef class_reflection::field_metadata md;
00044                 typedef class_reflection::field_metadata_list mdlist;
00045                 ptr<mdlist> mdl = mdlist::create();
00046                 reflection = reflection_list::create( worker_base::reflection_get() );
00047                 reflection->push_back( class_reflection::create( "body_preprocessor", mdl ) );
00048         }
00049         return reflection;
00050 }

ptr< object::field_list_list > lestes::backend_v2::workers::body_preprocessor::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::backend_v2::workers::worker_base.

Definition at line 52 of file body_preprocessor.g.cc.

References lestes::backend_v2::workers::worker_base::field_values_get().

00053 {
00054         ptr < field_list_list > result = worker_base::field_values_get();
00055         return result;
00056 }

void lestes::backend_v2::workers::body_preprocessor::gc_mark ( void   )  [protected, virtual]

Marking routine for class body_preprocessor.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::backend_v2::workers::worker_base.

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

References lestes::backend_v2::workers::worker_base::gc_mark().

00064 {
00065         worker_base::gc_mark();
00066 }


Member Data Documentation

ptr< object::reflection_list > lestes::backend_v2::workers::body_preprocessor::reflection = reflection [static, private]

Reimplemented from lestes::backend_v2::workers::worker_base.

Definition at line 59 of file body_preprocessor.g.hh.

Referenced by reflection_get().


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