#include <sa_param_declaration_empty.g.hh>
Inheritance diagram for lestes::lang::cplus::sem::sa_param_declaration_empty:

Public Member Functions | |
| bool | process (ptr< as_param_declaration > decl) |
| Checks empty parameter declaration. | |
| virtual ptr< reflection_list > | reflection_get () const |
| for purposes of dumping | |
| virtual ptr< field_list_list > | field_values_get () const |
| for purposes of dumping | |
Static Public Member Functions | |
| static ptr< sa_param_declaration_empty > | create () |
| First generated factory method for class sa_param_declaration_empty. | |
Protected Member Functions | |
| sa_param_declaration_empty () | |
| Generated constructor for class sa_param_declaration_empty. | |
| virtual void | gc_mark () |
| Marking routine for class sa_param_declaration_empty. | |
Static Private Attributes | |
| static ptr< reflection_list > | reflection = reflection |
Tests whether a parameter declaration is a special case of bare (void) representing empty parameter list. It should be run only in case there is exactly one parameter declaration in the parameter declaration list, in other cases this kind of declaration is disallowed.
Definition at line 36 of file sa_param_declaration_empty.g.hh.
| lestes::lang::cplus::sem::sa_param_declaration_empty::sa_param_declaration_empty | ( | ) | [protected] |
Generated constructor for class sa_param_declaration_empty.
Generated constructor for class sa_param_declaration_empty.
Definition at line 42 of file sa_param_declaration_empty.g.cc.
Referenced by create().
00043 : object() 00044 {}
| bool lestes::lang::cplus::sem::sa_param_declaration_empty::process | ( | ptr< as_param_declaration > | decl | ) |
Checks empty parameter declaration.
Tests whether a parameter declaration contains only void declaration specifier and nothing else, no declarator specifiers and no name, so that it can be considered as a (void) parameter, designating empty paramter list. Does not report any error, only checks the conditions. Errors are reported in the parameter declaration itself.
| decl | The parameter declaration to test. |
Definition at line 57 of file sa_param_declaration_empty.cc.
References lestes::lang::cplus::sem::as_declaration_specifier2is_void::create(), lestes::msg::eolog, and lassert.
00058 { 00059 typedef list< srp<as_declaration_specifier> > as_declaration_specifier_list; 00060 00061 sa_param_declaration_empty_logger << "sa_param_declaration::process()\n" << msg::eolog; 00062 00063 lassert(decl); 00064 00065 bool correct = false; 00066 00067 do { 00068 sa_param_declaration_empty_logger << "checking declaration specifiers\n" << msg::eolog; 00069 00070 // analyse the declaration specifiers 00071 ptr<as_declaration_specifier_list> adsl = decl->declaration_specifiers_get(); 00072 // TODO pt BUGBUG must test the actual type, perhaps typedefed!!!! 00073 00074 // must be only specifier 00075 if (adsl->size() != 1) break; 00076 00077 sa_param_declaration_empty_logger << "has single specifier\n" << msg::eolog; 00078 00079 // must be void 00080 if (!as_declaration_specifier2is_void::create()->process(adsl->front())) break; 00081 00082 sa_param_declaration_empty_logger << "the specifier is void\n" << msg::eolog; 00083 00084 sa_param_declaration_empty_logger << "checking the declarator\n" << msg::eolog; 00085 00086 // analyse declarator 00087 ptr<as_declarator> asd = decl->declarator_get(); 00088 // must have no ops 00089 if (asd->declarator_ops_get()->size() != 0) break; 00090 00091 sa_param_declaration_empty_logger << "has no declarator ops\n" << msg::eolog; 00092 00093 // must have no name 00094 if (asd->name_get()) break; 00095 00096 sa_param_declaration_empty_logger << "has no name\n" << msg::eolog; 00097 00098 // all checks passed 00099 correct = true; 00100 00101 sa_param_declaration_empty_logger << "all checks passed\n" << msg::eolog; 00102 } while (false); 00103 00104 sa_param_declaration_empty_logger << "sa_param_declaration::process() end\n" << msg::eolog; 00105 00106 return correct; 00107 }
| ptr< sa_param_declaration_empty > lestes::lang::cplus::sem::sa_param_declaration_empty::create | ( | void | ) | [static] |
First generated factory method for class sa_param_declaration_empty.
This factory method for class sa_param_declaration_empty takes values of all fields as arguments.
Definition at line 33 of file sa_param_declaration_empty.g.cc.
References sa_param_declaration_empty().
00034 { 00035 return ptr< sa_param_declaration_empty > ( new sa_param_declaration_empty() ); 00036 }
| ptr< object::reflection_list > lestes::lang::cplus::sem::sa_param_declaration_empty::reflection_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::std::object.
Definition at line 46 of file sa_param_declaration_empty.g.cc.
References lestes::std::list< T >::create(), reflection, and lestes::std::object::reflection_get().
00047 { 00048 if (!reflection) { 00049 typedef class_reflection::field_metadata md; 00050 typedef class_reflection::field_metadata_list mdlist; 00051 ptr<mdlist> mdl = mdlist::create(); 00052 reflection = reflection_list::create( ::lestes::std::object::reflection_get() ); 00053 reflection->push_back( class_reflection::create( "sa_param_declaration_empty", mdl ) ); 00054 } 00055 return reflection; 00056 }
| ptr< object::field_list_list > lestes::lang::cplus::sem::sa_param_declaration_empty::field_values_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::std::object.
Definition at line 58 of file sa_param_declaration_empty.g.cc.
References lestes::std::object::field_values_get().
00059 { 00060 ptr < field_list_list > result = ::lestes::std::object::field_values_get(); 00061 return result; 00062 }
| void lestes::lang::cplus::sem::sa_param_declaration_empty::gc_mark | ( | void | ) | [protected, virtual] |
Marking routine for class sa_param_declaration_empty.
Marking routine is used for garbage collection.
Reimplemented from lestes::std::mem::keystone.
Definition at line 69 of file sa_param_declaration_empty.g.cc.
References lestes::std::mem::keystone::gc_mark().
00070 { 00071 ::lestes::std::object::gc_mark(); 00072 }
ptr< object::reflection_list > lestes::lang::cplus::sem::sa_param_declaration_empty::reflection = reflection [static, private] |
Reimplemented from lestes::std::object.
Definition at line 62 of file sa_param_declaration_empty.g.hh.
Referenced by reflection_get().
1.5.1-20070107