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

Gathers information from visited declaration specifiers into main ss_type variant and flags.
Definition at line 54 of file as_declaration_specifier2properties.g.hh.
| lestes::lang::cplus::sem::as_declaration_specifier2properties::as_declaration_specifier2properties | ( | ptr< ::lestes::lang::cplus::sem::ss_type > | a__as_declaration_specifier2properties__other_type, | |
| type_specifier_type | a__as_declaration_specifier2properties__type_specifier, | |||
| ss_storage_class::type | a__as_declaration_specifier2properties__storage_class, | |||
| bool | a__as_declaration_specifier2properties__explicit_flag, | |||
| bool | a__as_declaration_specifier2properties__inline_flag, | |||
| bool | a__as_declaration_specifier2properties__virtual_flag, | |||
| bool | a__as_declaration_specifier2properties__friend_flag, | |||
| bool | a__as_declaration_specifier2properties__const_flag, | |||
| bool | a__as_declaration_specifier2properties__volatile_flag, | |||
| bool | a__as_declaration_specifier2properties__signed_flag, | |||
| bool | a__as_declaration_specifier2properties__unsigned_flag, | |||
| bool | a__as_declaration_specifier2properties__short_flag, | |||
| bool | a__as_declaration_specifier2properties__long_flag | |||
| ) | [protected] |
Generated constructor for class as_declaration_specifier2properties.
Generated constructor for class as_declaration_specifier2properties.
Definition at line 191 of file as_declaration_specifier2properties.g.cc.
Referenced by create().
00204 : as_declaration_specifier_visitor(), other_type(a__as_declaration_specifier2properties__other_type), type_specifier(a__as_declaration_specifier2properties__type_specifier), storage_class(a__as_declaration_specifier2properties__storage_class), explicit_flag(a__as_declaration_specifier2properties__explicit_flag), inline_flag(a__as_declaration_specifier2properties__inline_flag), virtual_flag(a__as_declaration_specifier2properties__virtual_flag), friend_flag(a__as_declaration_specifier2properties__friend_flag), const_flag(a__as_declaration_specifier2properties__const_flag), volatile_flag(a__as_declaration_specifier2properties__volatile_flag), signed_flag(a__as_declaration_specifier2properties__signed_flag), unsigned_flag(a__as_declaration_specifier2properties__unsigned_flag), short_flag(a__as_declaration_specifier2properties__short_flag), long_flag(a__as_declaration_specifier2properties__long_flag) 00205 {}
| ptr<::lestes::lang::cplus::sem::ss_type > lestes::lang::cplus::sem::as_declaration_specifier2properties::other_type_get | ( | ) | const |
The method other_type_get returns the value of the field as_declaration_specifier2properties::other_type.
Definition at line 32 of file as_declaration_specifier2properties.g.cc.
References other_type.
00033 { 00034 return other_type; 00035 }
| as_declaration_specifier2properties::type_specifier_type lestes::lang::cplus::sem::as_declaration_specifier2properties::type_specifier_get | ( | ) | const |
The method type_specifier_get returns the value of the field as_declaration_specifier2properties::type_specifier.
Definition at line 41 of file as_declaration_specifier2properties.g.cc.
References type_specifier.
00042 { 00043 return type_specifier; 00044 }
| ss_storage_class::type lestes::lang::cplus::sem::as_declaration_specifier2properties::storage_class_get | ( | ) | const |
The method storage_class_get returns the value of the field as_declaration_specifier2properties::storage_class.
Definition at line 50 of file as_declaration_specifier2properties.g.cc.
References storage_class.
00051 { 00052 return storage_class; 00053 }
| bool lestes::lang::cplus::sem::as_declaration_specifier2properties::explicit_flag_get | ( | ) | const |
The method explicit_flag_get returns the value of the field as_declaration_specifier2properties::explicit_flag.
Definition at line 59 of file as_declaration_specifier2properties.g.cc.
References explicit_flag.
00060 { 00061 return explicit_flag; 00062 }
| bool lestes::lang::cplus::sem::as_declaration_specifier2properties::inline_flag_get | ( | ) | const |
The method inline_flag_get returns the value of the field as_declaration_specifier2properties::inline_flag.
Definition at line 68 of file as_declaration_specifier2properties.g.cc.
References inline_flag.
00069 { 00070 return inline_flag; 00071 }
| bool lestes::lang::cplus::sem::as_declaration_specifier2properties::virtual_flag_get | ( | ) | const |
The method virtual_flag_get returns the value of the field as_declaration_specifier2properties::virtual_flag.
Definition at line 77 of file as_declaration_specifier2properties.g.cc.
References virtual_flag.
00078 { 00079 return virtual_flag; 00080 }
| bool lestes::lang::cplus::sem::as_declaration_specifier2properties::friend_flag_get | ( | ) | const |
The method friend_flag_get returns the value of the field as_declaration_specifier2properties::friend_flag.
Definition at line 86 of file as_declaration_specifier2properties.g.cc.
References friend_flag.
00087 { 00088 return friend_flag; 00089 }
| bool lestes::lang::cplus::sem::as_declaration_specifier2properties::const_flag_get | ( | ) | const |
The method const_flag_get returns the value of the field as_declaration_specifier2properties::const_flag.
Definition at line 95 of file as_declaration_specifier2properties.g.cc.
References const_flag.
00096 { 00097 return const_flag; 00098 }
| bool lestes::lang::cplus::sem::as_declaration_specifier2properties::volatile_flag_get | ( | ) | const |
The method volatile_flag_get returns the value of the field as_declaration_specifier2properties::volatile_flag.
Definition at line 104 of file as_declaration_specifier2properties.g.cc.
References volatile_flag.
00105 { 00106 return volatile_flag; 00107 }
| bool lestes::lang::cplus::sem::as_declaration_specifier2properties::signed_flag_get | ( | ) | const |
The method signed_flag_get returns the value of the field as_declaration_specifier2properties::signed_flag.
Definition at line 113 of file as_declaration_specifier2properties.g.cc.
References signed_flag.
00114 { 00115 return signed_flag; 00116 }
| bool lestes::lang::cplus::sem::as_declaration_specifier2properties::unsigned_flag_get | ( | ) | const |
The method unsigned_flag_get returns the value of the field as_declaration_specifier2properties::unsigned_flag.
Definition at line 122 of file as_declaration_specifier2properties.g.cc.
References unsigned_flag.
00123 { 00124 return unsigned_flag; 00125 }
| bool lestes::lang::cplus::sem::as_declaration_specifier2properties::short_flag_get | ( | ) | const |
The method short_flag_get returns the value of the field as_declaration_specifier2properties::short_flag.
Definition at line 131 of file as_declaration_specifier2properties.g.cc.
References short_flag.
00132 { 00133 return short_flag; 00134 }
| bool lestes::lang::cplus::sem::as_declaration_specifier2properties::long_flag_get | ( | ) | const |
The method long_flag_get returns the value of the field as_declaration_specifier2properties::long_flag.
Definition at line 140 of file as_declaration_specifier2properties.g.cc.
References long_flag.
00141 { 00142 return long_flag; 00143 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::process | ( | ptr< ::lestes::lang::cplus::sem::as_declaration_specifier > | specifier | ) |
Processes the declaration specifier.
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_function_specifier_inline | ( | ptr< ::lestes::lang::cplus::sem::as_function_specifier_inline > | specifier | ) | [virtual] |
Visits instance of as_function_specifier_inline.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 64 of file as_declaration_specifier2properties.cc.
References inline_flag, and lassert.
00066 { 00067 lassert(specifier); 00068 if (inline_flag) { 00069 // TODO pt report error: duplicate inline 00070 } 00071 inline_flag = true; 00072 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_function_specifier_virtual | ( | ptr< ::lestes::lang::cplus::sem::as_function_specifier_virtual > | specifier | ) | [virtual] |
Visits instance of as_function_specifier_virtual.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 78 of file as_declaration_specifier2properties.cc.
References lassert, and virtual_flag.
00080 { 00081 lassert(specifier); 00082 if (virtual_flag) { 00083 // TODO pt report error: duplicat virtual 00084 } 00085 virtual_flag = true; 00086 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_function_specifier_explicit | ( | ptr< ::lestes::lang::cplus::sem::as_function_specifier_explicit > | specifier | ) | [virtual] |
Visits instance of as_function_specifier_explicit.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 92 of file as_declaration_specifier2properties.cc.
References explicit_flag, and lassert.
00094 { 00095 lassert(specifier); 00096 if (explicit_flag) { 00097 // TODO pt report error: duplicate explicit 00098 } 00099 explicit_flag = true; 00100 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_friend_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_friend_specifier > | specifier | ) | [virtual] |
Visits instance of as_friend_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 106 of file as_declaration_specifier2properties.cc.
References friend_flag, and lassert.
00108 { 00109 lassert(specifier); 00110 if (friend_flag) { 00111 // TODO pt report error: duplicate friend 00112 } 00113 friend_flag = true; 00114 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_typedef_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_typedef_specifier > | specifier | ) | [virtual] |
Visits instance of as_typedef_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 120 of file as_declaration_specifier2properties.cc.
References lassert, lestes::lang::cplus::sem::ss_storage_class::ST_NONE, lestes::lang::cplus::sem::ss_storage_class::ST_TYPEDEF, and storage_class.
00122 { 00123 lassert(specifier); 00124 if (storage_class == ss_storage_class::ST_NONE) { 00125 storage_class = ss_storage_class::ST_TYPEDEF; 00126 } else { 00127 // TODO pt report errors 00128 } 00129 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_storage_class_specifier_auto | ( | ptr< ::lestes::lang::cplus::sem::as_storage_class_specifier_auto > | specifier | ) | [virtual] |
Visits instance of as_storage_class_specifier_auto.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 135 of file as_declaration_specifier2properties.cc.
References lassert, lestes::lang::cplus::sem::ss_storage_class::ST_AUTO, lestes::lang::cplus::sem::ss_storage_class::ST_NONE, and storage_class.
00137 { 00138 lassert(specifier); 00139 if (storage_class == ss_storage_class::ST_NONE) { 00140 storage_class = ss_storage_class::ST_AUTO; 00141 } else { 00142 // TODO pt report error 00143 } 00144 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_storage_class_specifier_register | ( | ptr< ::lestes::lang::cplus::sem::as_storage_class_specifier_register > | specifier | ) | [virtual] |
Visits instance of as_storage_class_specifier_register.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 150 of file as_declaration_specifier2properties.cc.
References lassert, lestes::lang::cplus::sem::ss_storage_class::ST_NONE, lestes::lang::cplus::sem::ss_storage_class::ST_REGISTER, and storage_class.
00152 { 00153 lassert(specifier); 00154 if (storage_class == ss_storage_class::ST_NONE) { 00155 storage_class = ss_storage_class::ST_REGISTER; 00156 } else { 00157 // TODO pt report error 00158 } 00159 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_storage_class_specifier_static | ( | ptr< ::lestes::lang::cplus::sem::as_storage_class_specifier_static > | specifier | ) | [virtual] |
Visits instance of as_storage_class_specifier_static.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 165 of file as_declaration_specifier2properties.cc.
References lassert, lestes::lang::cplus::sem::ss_storage_class::ST_NONE, lestes::lang::cplus::sem::ss_storage_class::ST_STATIC, and storage_class.
00167 { 00168 lassert(specifier); 00169 if (storage_class == ss_storage_class::ST_NONE) { 00170 storage_class = ss_storage_class::ST_STATIC; 00171 } else { 00172 // TODO pt report error 00173 } 00174 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_storage_class_specifier_extern | ( | ptr< ::lestes::lang::cplus::sem::as_storage_class_specifier_extern > | specifier | ) | [virtual] |
Visits instance of as_storage_class_specifier_extern.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 180 of file as_declaration_specifier2properties.cc.
References lassert, lestes::lang::cplus::sem::ss_storage_class::ST_EXTERN, lestes::lang::cplus::sem::ss_storage_class::ST_NONE, and storage_class.
00182 { 00183 lassert(specifier); 00184 if (storage_class == ss_storage_class::ST_NONE) { 00185 storage_class = ss_storage_class::ST_EXTERN; 00186 } else { 00187 // TODO pt report error 00188 } 00189 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_storage_class_specifier_mutable | ( | ptr< ::lestes::lang::cplus::sem::as_storage_class_specifier_mutable > | specifier | ) | [virtual] |
Visits instance of as_storage_class_specifier_mutable.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 195 of file as_declaration_specifier2properties.cc.
References lassert, lestes::lang::cplus::sem::ss_storage_class::ST_MUTABLE, lestes::lang::cplus::sem::ss_storage_class::ST_NONE, and storage_class.
00197 { 00198 lassert(specifier); 00199 if (storage_class == ss_storage_class::ST_NONE) { 00200 storage_class = ss_storage_class::ST_MUTABLE; 00201 } else { 00202 // TODO pt report error 00203 } 00204 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_enumeration_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_enumeration_specifier > | specifier | ) | [virtual] |
Visits instance of as_enumeration_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 210 of file as_declaration_specifier2properties.cc.
References lestes::lang::cplus::sem::ss_type_wchar_t::instance(), lassert, other_type, TS_NONE, TS_OTHER, and type_specifier.
00212 { 00213 lassert(specifier); 00214 if (type_specifier == TS_NONE) { 00215 // TODO pt lookup 00216 //other_type = lookup(specifier->name_get()); 00217 other_type = ss_type_wchar_t::instance(); // temporarily wchar 00218 type_specifier = TS_OTHER; 00219 } else { 00220 // TODO pt report error: multiple types in declaration 00221 } 00222 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_char_simple_type_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_char_simple_type_specifier > | specifier | ) | [virtual] |
Visits instance of as_char_simple_type_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 228 of file as_declaration_specifier2properties.cc.
References lassert, TS_CHAR, TS_NONE, and type_specifier.
00230 { 00231 lassert(specifier); 00232 if (type_specifier == TS_NONE) { 00233 type_specifier = TS_CHAR; 00234 } else { 00235 // TODO pt report error: multiple types 00236 } 00237 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_wchar_t_simple_type_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_wchar_t_simple_type_specifier > | specifier | ) | [virtual] |
Visits instance of as_wchar_t_simple_type_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 243 of file as_declaration_specifier2properties.cc.
References lestes::lang::cplus::sem::ss_type_wchar_t::instance(), lassert, other_type, TS_NONE, TS_OTHER, and type_specifier.
00245 { 00246 lassert(specifier); 00247 if (type_specifier == TS_NONE) { 00248 type_specifier = TS_OTHER; 00249 other_type = ss_type_wchar_t::instance(); 00250 } else { 00251 // TODO pt report error: multiple types 00252 } 00253 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_bool_simple_type_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_bool_simple_type_specifier > | specifier | ) | [virtual] |
Visits instance of as_bool_simple_type_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 259 of file as_declaration_specifier2properties.cc.
References lestes::lang::cplus::sem::ss_bool::instance(), lassert, other_type, TS_NONE, TS_OTHER, and type_specifier.
00261 { 00262 lassert(specifier); 00263 if (type_specifier == TS_NONE) { 00264 type_specifier = TS_OTHER; 00265 other_type = ss_bool::instance(); 00266 } else { 00267 // TODO pt report error: multiple types 00268 } 00269 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_short_simple_type_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_short_simple_type_specifier > | specifier | ) | [virtual] |
Visits instance of as_short_simple_type_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 337 of file as_declaration_specifier2properties.cc.
References lassert, long_flag, and short_flag.
00339 { 00340 lassert(specifier); 00341 if (short_flag) { 00342 // TODO pt report error 00343 } else if (long_flag) { 00344 // TODO pt report error: short and long 00345 } else { 00346 short_flag = true; 00347 } 00348 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_int_simple_type_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_int_simple_type_specifier > | specifier | ) | [virtual] |
Visits instance of as_int_simple_type_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 275 of file as_declaration_specifier2properties.cc.
References lassert, TS_INT, TS_NONE, and type_specifier.
00277 { 00278 lassert(specifier); 00279 if (type_specifier == TS_NONE) { 00280 type_specifier = TS_INT; 00281 } else { 00282 // TODO pt report error: multiple types 00283 } 00284 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_long_simple_type_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_long_simple_type_specifier > | specifier | ) | [virtual] |
Visits instance of as_long_simple_type_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 354 of file as_declaration_specifier2properties.cc.
References lassert, long_flag, and short_flag.
00356 { 00357 lassert(specifier); 00358 if (long_flag) { 00359 // TODO pt report error 00360 } else if (short_flag) { 00361 // TODO pt report error: short and long 00362 } else { 00363 long_flag = true; 00364 } 00365 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_signed_simple_type_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_signed_simple_type_specifier > | specifier | ) | [virtual] |
Visits instance of as_signed_simple_type_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 371 of file as_declaration_specifier2properties.cc.
References lassert, signed_flag, and unsigned_flag.
00373 { 00374 lassert(specifier); 00375 if (signed_flag) { 00376 // TODO pt report error 00377 } else if (unsigned_flag) { 00378 // TODO pt report error: signed and unsigned together 00379 } else { 00380 signed_flag = true; 00381 } 00382 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_unsigned_simple_type_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_unsigned_simple_type_specifier > | specifier | ) | [virtual] |
Visits instance of as_unsigned_simple_type_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 388 of file as_declaration_specifier2properties.cc.
References lassert, signed_flag, and unsigned_flag.
00390 { 00391 lassert(specifier); 00392 if (unsigned_flag) { 00393 // TODO pt report error 00394 } else if (signed_flag) { 00395 // TODO pt report error: signed and unsigned together 00396 } else { 00397 unsigned_flag = true; 00398 } 00399 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_float_simple_type_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_float_simple_type_specifier > | specifier | ) | [virtual] |
Visits instance of as_float_simple_type_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 290 of file as_declaration_specifier2properties.cc.
References lestes::lang::cplus::sem::ss_type_float::instance(), lassert, other_type, TS_NONE, TS_OTHER, and type_specifier.
00292 { 00293 lassert(specifier); 00294 if (type_specifier == TS_NONE) { 00295 type_specifier = TS_OTHER; 00296 other_type = ss_type_float::instance(); 00297 } else { 00298 // TODO pt report error: multiple types 00299 } 00300 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_double_simple_type_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_double_simple_type_specifier > | specifier | ) | [virtual] |
Visits instance of as_double_simple_type_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 306 of file as_declaration_specifier2properties.cc.
References lassert, TS_DOUBLE, TS_NONE, and type_specifier.
00308 { 00309 lassert(specifier); 00310 if (type_specifier == TS_NONE) { 00311 type_specifier = TS_DOUBLE; 00312 } else { 00313 // TODO pt report error: multiple types 00314 } 00315 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_void_simple_type_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_void_simple_type_specifier > | specifier | ) | [virtual] |
Visits instance of as_void_simple_type_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 321 of file as_declaration_specifier2properties.cc.
References lestes::lang::cplus::sem::ss_void::instance(), lassert, other_type, TS_NONE, TS_OTHER, and type_specifier.
00323 { 00324 lassert(specifier); 00325 if (type_specifier == TS_NONE) { 00326 type_specifier = TS_OTHER; 00327 other_type = ss_void::instance(); 00328 } else { 00329 // TODO pt report error: multiple types 00330 } 00331 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_cv_qualifier_const | ( | ptr< ::lestes::lang::cplus::sem::as_cv_qualifier_const > | specifier | ) | [virtual] |
Visits instance of as_cv_qualifier_const.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 405 of file as_declaration_specifier2properties.cc.
References const_flag, and lassert.
00407 { 00408 lassert(specifier); 00409 if (const_flag) { 00410 // TODO pt report error 00411 } 00412 const_flag = true; 00413 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_cv_qualifier_volatile | ( | ptr< ::lestes::lang::cplus::sem::as_cv_qualifier_volatile > | specifier | ) | [virtual] |
Visits instance of as_cv_qualifier_volatile.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 419 of file as_declaration_specifier2properties.cc.
References lassert, and volatile_flag.
00421 { 00422 lassert(specifier); 00423 if (volatile_flag) { 00424 // TODO pt report error 00425 } 00426 volatile_flag = true; 00427 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_cv_qualifier_restrict | ( | ptr< ::lestes::lang::cplus::sem::as_cv_qualifier_restrict > | specifier | ) | [virtual] |
Visits instance of as_cv_qualifier_restrict.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 433 of file as_declaration_specifier2properties.cc.
References lassert, and lassert2.
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_named_simple_type_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_named_simple_type_specifier > | specifier | ) | [virtual] |
Visits instance of as_named_simple_type_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 444 of file as_declaration_specifier2properties.cc.
References lestes::lang::cplus::sem::as_id_to_declaration_set::instance(), lassert, other_type, TS_NONE, TS_OTHER, and type_specifier.
00446 { 00447 lassert(specifier); 00448 if (type_specifier == TS_NONE) { 00449 ptr<declaration_set_type> decls = 00450 as_id_to_declaration_set::instance()->process(specifier->name_get()->identifier_get() ); 00451 lassert(decls && decls->size() == 1); 00452 00453 other_type = (*decls->begin())->type_get(); 00454 00455 type_specifier = TS_OTHER; 00456 } else { 00457 // TODO pt report error: multiple types in declaration 00458 } 00459 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_elaborated_type_specifier_typename | ( | ptr< ::lestes::lang::cplus::sem::as_elaborated_type_specifier_typename > | specifier | ) | [virtual] |
Visits instance of as_elaborated_type_specifier_typename.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 465 of file as_declaration_specifier2properties.cc.
References lassert, and lassert2.
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_elaborated_type_specifier_class_key | ( | ptr< ::lestes::lang::cplus::sem::as_elaborated_type_specifier_class_key > | specifier | ) | [virtual] |
Visits instance of as_elaborated_type_specifier_class_key.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 476 of file as_declaration_specifier2properties.cc.
References lestes::lang::cplus::sem::as_id_to_declaration_set::instance(), lassert, other_type, TS_NONE, TS_OTHER, and type_specifier.
00478 { 00479 lassert(specifier); 00480 if (type_specifier == TS_NONE) { 00481 ptr<declaration_set_type> decls = 00482 as_id_to_declaration_set::instance()->process(specifier->name_get()->identifier_get() ); 00483 // TODO pt add the invisible forward for the class, if the name was not found 00484 lassert(decls && decls->size() == 1); 00485 00486 other_type = (*decls->begin())->type_get(); 00487 00488 type_specifier = TS_OTHER; 00489 } else { 00490 // TODO pt report error: multiple types in declaration 00491 } 00492 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_elaborated_type_specifier_enum | ( | ptr< ::lestes::lang::cplus::sem::as_elaborated_type_specifier_enum > | specifier | ) | [virtual] |
Visits instance of as_elaborated_type_specifier_enum.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 498 of file as_declaration_specifier2properties.cc.
References lestes::lang::cplus::sem::as_id_to_declaration_set::instance(), lassert, other_type, TS_NONE, TS_OTHER, and type_specifier.
00500 { 00501 lassert(specifier); 00502 if (type_specifier == TS_NONE) { 00503 ptr<declaration_set_type> decls = 00504 as_id_to_declaration_set::instance()->process(specifier->name_get()->identifier_get() ); 00505 // TODO pt add the invisible forward for the enum if the name was not found 00506 lassert(decls && decls->size() == 1); 00507 00508 other_type = (*decls->begin())->type_get(); 00509 00510 type_specifier = TS_OTHER; 00511 } else { 00512 // TODO pt report error: multiple types in declaration 00513 } 00514 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::visit_as_class_specifier | ( | ptr< ::lestes::lang::cplus::sem::as_class_specifier > | specifier | ) | [virtual] |
Visits instance of as_class_specifier.
| specifier | The instance to visit. |
Implements lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 520 of file as_declaration_specifier2properties.cc.
References lestes::lang::cplus::sem::ss_type_wchar_t::instance(), lassert, other_type, TS_NONE, TS_OTHER, and type_specifier.
00522 { 00523 lassert(specifier); 00524 if (type_specifier == TS_NONE) { 00525 // TODO pt lookup 00526 //other_type = lookup(specifier->name_get(),specifier->key_get()); 00527 // TODO pt rename wchar_t to wchar 00528 other_type = ss_type_wchar_t::instance(); // temporarily wchar 00529 type_specifier = TS_OTHER; 00530 } else { 00531 // TODO pt report error: multiple types in declaration 00532 } 00533 }
| ptr< as_declaration_specifier2properties > lestes::lang::cplus::sem::as_declaration_specifier2properties::create | ( | ptr< ::lestes::lang::cplus::sem::ss_type > | a__as_declaration_specifier2properties__other_type, | |
| type_specifier_type | a__as_declaration_specifier2properties__type_specifier, | |||
| ss_storage_class::type | a__as_declaration_specifier2properties__storage_class, | |||
| bool | a__as_declaration_specifier2properties__explicit_flag, | |||
| bool | a__as_declaration_specifier2properties__inline_flag, | |||
| bool | a__as_declaration_specifier2properties__virtual_flag, | |||
| bool | a__as_declaration_specifier2properties__friend_flag, | |||
| bool | a__as_declaration_specifier2properties__const_flag, | |||
| bool | a__as_declaration_specifier2properties__volatile_flag, | |||
| bool | a__as_declaration_specifier2properties__signed_flag, | |||
| bool | a__as_declaration_specifier2properties__unsigned_flag, | |||
| bool | a__as_declaration_specifier2properties__short_flag, | |||
| bool | a__as_declaration_specifier2properties__long_flag | |||
| ) | [static] |
First generated factory method for class as_declaration_specifier2properties.
This factory method for class as_declaration_specifier2properties takes values of all fields as arguments.
Definition at line 149 of file as_declaration_specifier2properties.g.cc.
References as_declaration_specifier2properties().
00162 { 00163 return ptr< as_declaration_specifier2properties > ( new as_declaration_specifier2properties(a__as_declaration_specifier2properties__other_type, 00164 a__as_declaration_specifier2properties__type_specifier, 00165 a__as_declaration_specifier2properties__storage_class, 00166 a__as_declaration_specifier2properties__explicit_flag, 00167 a__as_declaration_specifier2properties__inline_flag, 00168 a__as_declaration_specifier2properties__virtual_flag, 00169 a__as_declaration_specifier2properties__friend_flag, 00170 a__as_declaration_specifier2properties__const_flag, 00171 a__as_declaration_specifier2properties__volatile_flag, 00172 a__as_declaration_specifier2properties__signed_flag, 00173 a__as_declaration_specifier2properties__unsigned_flag, 00174 a__as_declaration_specifier2properties__short_flag, 00175 a__as_declaration_specifier2properties__long_flag) ); 00176 }
| ptr< as_declaration_specifier2properties > lestes::lang::cplus::sem::as_declaration_specifier2properties::create | ( | void | ) | [static] |
Second generated factory method for class as_declaration_specifier2properties.
This factory method for class as_declaration_specifier2properties uses initializers.
Definition at line 182 of file as_declaration_specifier2properties.g.cc.
References as_declaration_specifier2properties(), lestes::lang::cplus::sem::ss_storage_class::ST_NONE, and TS_NONE.
00183 { 00184 return ptr< as_declaration_specifier2properties > ( new as_declaration_specifier2properties(NULL, TS_NONE, ss_storage_class::ST_NONE, false, false, false, false, false, false, false, false, false, false) ); 00185 }
| ptr< object::reflection_list > lestes::lang::cplus::sem::as_declaration_specifier2properties::reflection_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 207 of file as_declaration_specifier2properties.g.cc.
References lestes::std::list< T >::create(), reflection, and lestes::lang::cplus::sem::as_declaration_specifier_visitor::reflection_get().
00208 { 00209 if (!reflection) { 00210 typedef class_reflection::field_metadata md; 00211 typedef class_reflection::field_metadata_list mdlist; 00212 ptr<mdlist> mdl = mdlist::create(); 00213 mdl->push_back( md::create( "other_type", "ss_type" ) ); 00214 mdl->push_back( md::create( "type_specifier", "type_specifier_type" ) ); 00215 mdl->push_back( md::create( "storage_class", "ss_storage_class::type" ) ); 00216 mdl->push_back( md::create( "explicit_flag", "bool" ) ); 00217 mdl->push_back( md::create( "inline_flag", "bool" ) ); 00218 mdl->push_back( md::create( "virtual_flag", "bool" ) ); 00219 mdl->push_back( md::create( "friend_flag", "bool" ) ); 00220 mdl->push_back( md::create( "const_flag", "bool" ) ); 00221 mdl->push_back( md::create( "volatile_flag", "bool" ) ); 00222 mdl->push_back( md::create( "signed_flag", "bool" ) ); 00223 mdl->push_back( md::create( "unsigned_flag", "bool" ) ); 00224 mdl->push_back( md::create( "short_flag", "bool" ) ); 00225 mdl->push_back( md::create( "long_flag", "bool" ) ); 00226 reflection = reflection_list::create( as_declaration_specifier_visitor::reflection_get() ); 00227 reflection->push_back( class_reflection::create( "as_declaration_specifier2properties", mdl ) ); 00228 } 00229 return reflection; 00230 }
| ptr< object::field_list_list > lestes::lang::cplus::sem::as_declaration_specifier2properties::field_values_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 232 of file as_declaration_specifier2properties.g.cc.
References lestes::std::list< T >::create(), and lestes::lang::cplus::sem::as_declaration_specifier_visitor::field_values_get().
00233 { 00234 ptr < field_list_list > result = as_declaration_specifier_visitor::field_values_get(); 00235 result->push_back( value_list::create() ); 00236 result->back()->push_back( this->other_type ); 00237 result->push_back( value_list::create() ); 00238 result->back()->push_back( objectize< type_specifier_type > ::create( this->type_specifier ) ); 00239 result->push_back( value_list::create() ); 00240 result->back()->push_back( objectize< ss_storage_class::type > ::create( this->storage_class ) ); 00241 result->push_back( value_list::create() ); 00242 result->back()->push_back( objectize< bool > ::create( this->explicit_flag ) ); 00243 result->push_back( value_list::create() ); 00244 result->back()->push_back( objectize< bool > ::create( this->inline_flag ) ); 00245 result->push_back( value_list::create() ); 00246 result->back()->push_back( objectize< bool > ::create( this->virtual_flag ) ); 00247 result->push_back( value_list::create() ); 00248 result->back()->push_back( objectize< bool > ::create( this->friend_flag ) ); 00249 result->push_back( value_list::create() ); 00250 result->back()->push_back( objectize< bool > ::create( this->const_flag ) ); 00251 result->push_back( value_list::create() ); 00252 result->back()->push_back( objectize< bool > ::create( this->volatile_flag ) ); 00253 result->push_back( value_list::create() ); 00254 result->back()->push_back( objectize< bool > ::create( this->signed_flag ) ); 00255 result->push_back( value_list::create() ); 00256 result->back()->push_back( objectize< bool > ::create( this->unsigned_flag ) ); 00257 result->push_back( value_list::create() ); 00258 result->back()->push_back( objectize< bool > ::create( this->short_flag ) ); 00259 result->push_back( value_list::create() ); 00260 result->back()->push_back( objectize< bool > ::create( this->long_flag ) ); 00261 return result; 00262 }
| void lestes::lang::cplus::sem::as_declaration_specifier2properties::gc_mark | ( | void | ) | [protected, virtual] |
Marking routine for class as_declaration_specifier2properties.
Marking routine is used for garbage collection.
Reimplemented from lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 269 of file as_declaration_specifier2properties.g.cc.
References lestes::lang::cplus::sem::as_declaration_specifier_visitor::gc_mark().
00270 { 00271 as_declaration_specifier_visitor::gc_mark(); 00272 }
srp< ::lestes::lang::cplus::sem::ss_type > lestes::lang::cplus::sem::as_declaration_specifier2properties::other_type [private] |
The other ss_type, valid when type_specifier is TS_OTHER.
Definition at line 217 of file as_declaration_specifier2properties.g.hh.
Referenced by other_type_get(), visit_as_bool_simple_type_specifier(), visit_as_class_specifier(), visit_as_elaborated_type_specifier_class_key(), visit_as_elaborated_type_specifier_enum(), visit_as_enumeration_specifier(), visit_as_float_simple_type_specifier(), visit_as_named_simple_type_specifier(), visit_as_void_simple_type_specifier(), and visit_as_wchar_t_simple_type_specifier().
type_specifier_type lestes::lang::cplus::sem::as_declaration_specifier2properties::type_specifier [private] |
The type specifier kind.
Definition at line 219 of file as_declaration_specifier2properties.g.hh.
Referenced by type_specifier_get(), visit_as_bool_simple_type_specifier(), visit_as_char_simple_type_specifier(), visit_as_class_specifier(), visit_as_double_simple_type_specifier(), visit_as_elaborated_type_specifier_class_key(), visit_as_elaborated_type_specifier_enum(), visit_as_enumeration_specifier(), visit_as_float_simple_type_specifier(), visit_as_int_simple_type_specifier(), visit_as_named_simple_type_specifier(), visit_as_void_simple_type_specifier(), and visit_as_wchar_t_simple_type_specifier().
ss_storage_class::type lestes::lang::cplus::sem::as_declaration_specifier2properties::storage_class [private] |
The storage class (including typedef).
Definition at line 221 of file as_declaration_specifier2properties.g.hh.
Referenced by storage_class_get(), visit_as_storage_class_specifier_auto(), visit_as_storage_class_specifier_extern(), visit_as_storage_class_specifier_mutable(), visit_as_storage_class_specifier_register(), visit_as_storage_class_specifier_static(), and visit_as_typedef_specifier().
The explicit specifier flag.
Definition at line 223 of file as_declaration_specifier2properties.g.hh.
Referenced by explicit_flag_get(), and visit_as_function_specifier_explicit().
The inline specifier flag.
Definition at line 225 of file as_declaration_specifier2properties.g.hh.
Referenced by inline_flag_get(), and visit_as_function_specifier_inline().
The virtual specifier flag.
Definition at line 227 of file as_declaration_specifier2properties.g.hh.
Referenced by virtual_flag_get(), and visit_as_function_specifier_virtual().
The friend specifier flag.
Definition at line 229 of file as_declaration_specifier2properties.g.hh.
Referenced by friend_flag_get(), and visit_as_friend_specifier().
Const qualifier flag.
Definition at line 231 of file as_declaration_specifier2properties.g.hh.
Referenced by const_flag_get(), and visit_as_cv_qualifier_const().
Volatile qualifier flag.
Definition at line 233 of file as_declaration_specifier2properties.g.hh.
Referenced by visit_as_cv_qualifier_volatile(), and volatile_flag_get().
Signed specifier flag.
Definition at line 235 of file as_declaration_specifier2properties.g.hh.
Referenced by signed_flag_get(), visit_as_signed_simple_type_specifier(), and visit_as_unsigned_simple_type_specifier().
Unsigned specifier flag.
Definition at line 237 of file as_declaration_specifier2properties.g.hh.
Referenced by unsigned_flag_get(), visit_as_signed_simple_type_specifier(), and visit_as_unsigned_simple_type_specifier().
Type length flag.
Definition at line 239 of file as_declaration_specifier2properties.g.hh.
Referenced by short_flag_get(), visit_as_long_simple_type_specifier(), and visit_as_short_simple_type_specifier().
Type length flag.
Definition at line 241 of file as_declaration_specifier2properties.g.hh.
Referenced by long_flag_get(), visit_as_long_simple_type_specifier(), and visit_as_short_simple_type_specifier().
ptr< object::reflection_list > lestes::lang::cplus::sem::as_declaration_specifier2properties::reflection = reflection [static, private] |
Reimplemented from lestes::lang::cplus::sem::as_declaration_specifier_visitor.
Definition at line 242 of file as_declaration_specifier2properties.g.hh.
Referenced by reflection_get().
1.5.1-20070107