Classes | |
| class | dump_at_lassert |
| Contains a dump action called at lassert event. More... | |
| class | dump_context_at_lassert |
| Contains a dump action called at lassert event. More... | |
| class | syntax_error |
| class | one_hinter |
| class | elab_spec_key |
| class | elab_spec_enum |
| class | elab_spec_class_key |
| class | hint_from_declaration_set |
| class | typedef_class_resolver |
| class | hinter |
| class | spawn_hinter_action |
| class | close_hinter_action |
| class | push_state_action |
| class | pop_state_action |
| class | streamer |
| class | source_streamer |
| class | pack_streamer |
| class | transaction |
| class | undo_delete_token |
| class | undo_unpack |
| class | one_manager |
| class | manager |
| class | parse_result_type |
| Class that contains data about a finished parser run. More... | |
| class | parser |
| struct | prefix2hint_map_item |
| class | prefixer |
| class | semref |
| class | semval |
| class | bison_token |
| class | bison_madeup_token |
| class | bison_id_token |
| class | bison_pack_token |
Typedefs | |
| typedef list< srp< one_hinter > > | hinter_stack_type |
| typedef list< srp< bison_token > > | token_list_type |
| typedef token_list_type::iterator | token_list_iterator |
| typedef list< srp< action > > | action_list_type |
| typedef list< token_list_iterator > | iter_list_type |
| typedef list< srp< one_manager > > | mgr_stack_type |
| typedef ::lestes::intercode::as_base | semref_type |
Functions | |
| int | do_it (bool flat_dump, lstring filename, lstring ss_filename, bool hinter_on) |
| ptr< ::lestes::msg::message_stencil1< lstring > > | parse_error (::lestes::msg::message_stencil1< lstring >::create("%0",::lestes::msg::message::FLG_ERROR,::lestes::msg::formatter< lstring >::instance())) |
| ptr< ::lestes::msg::message_stencil0< bool > > | disa_failed (::lestes::msg::message_stencil0< bool >::create("syntax error",::lestes::msg::message::FLG_ERROR)) |
| ptr< ::lestes::msg::message_stencil0< bool > > | sub_error (::lestes::msg::message_stencil0< bool >::create(" sub-error here",::lestes::msg::message::FLG_ERROR)) |
| ptr< ::lestes::msg::message_stencil0< bool > > | cont_here (::lestes::msg::message_stencil0< bool >::create(" continuing here",::lestes::msg::message::FLG_ERROR)) |
| ptr< ::lestes::msg::message_stencil0< bool > > | unmatched_open (::lestes::msg::message_stencil0< bool >::create("syntax error: unmatched opening",::lestes::msg::message::FLG_ERROR)) |
| ptr< ::lestes::msg::message_stencil0< bool > > | invalid_cond (::lestes::msg::message_stencil0< bool >::create("syntax error: error in condition",::lestes::msg::message::FLG_ERROR)) |
| ptr< ::lestes::msg::message_stencil0< bool > > | or_here (::lestes::msg::message_stencil0< bool >::create(" possibly here",::lestes::msg::message::FLG_ERROR)) |
| ptr< ::lestes::msg::message_stencil0< bool > > | empty_condition (::lestes::msg::message_stencil0< bool >::create("syntax error: empty condition not allowed here",::lestes::msg::message::FLG_ERROR)) |
| ptr< ::lestes::msg::message_stencil0< bool > > | bad_end (::lestes::msg::message_stencil0< bool >::create("syntax error: unexpected end",::lestes::msg::message::FLG_ERROR)) |
| ptr< ::lestes::msg::message_stencil0< bool > > | bad_global_qual (::lestes::msg::message_stencil0< bool >::create("global qualification (::) not allowed here",::lestes::msg::message::FLG_ERROR)) |
| ptr< ::lestes::msg::message_stencil0< bool > > | wrong_before_coloncolon (::lestes::msg::message_stencil0< bool >::create("name followed by :: is not a class, nor a namespace name",::lestes::msg::message::FLG_ERROR)) |
| ptr< ::lestes::msg::message_stencil0< bool > > | unknown_before_coloncolon (::lestes::msg::message_stencil0< bool >::create("unknown name followed by ::",::lestes::msg::message::FLG_ERROR)) |
| declare_logger (hl) | |
| initialize_logger (hl,"hinter", syn_logger) | |
| static ptr< declaration_set_type > | unqualified (const ptr< ss_decl_name > &name, const ptr< ss_decl_seq > &seq) |
| static ptr< declaration_set_type > | unqualified_elab (const ptr< ss_decl_name > &name, const ptr< ss_decl_seq > &seq) |
| static ptr< declaration_set_type > | look_first (const ptr< ss_decl_name > &name, const ptr< ss_decl_seq > &seq) |
| static ptr< declaration_set_type > | look_last (const ptr< ss_decl_name > &name, const ptr< ss_decl_seq > &seq) |
| static ptr< declaration_set_type > | look_last_elab (const ptr< ss_decl_name > &name, const ptr< ss_decl_seq > &seq) |
| static ptr< declaration_set_type > | middle (const ptr< ss_decl_name > &name, const ptr< ss_decl_seq > &seq) |
| static ptr< declaration_set_type > | nmspace (const ptr< ss_decl_name > &name, const ptr< ss_decl_seq > &seq) |
| declare_logger (ml) | |
| initialize_logger (ml,"manager", syn_logger) | |
| initialize_event (manager::spawn_event) | |
| initialize_event (manager::close_event) | |
| initialize_event (manager::start_event) | |
| initialize_event (manager::commit_event) | |
| initialize_event (manager::rollback_event) | |
| declare_logger (pl) | |
| initialize_logger (pl,"parser", syn_logger) | |
| static int | yylex (semval *sv) |
| static void | yyerror (ptr< as_base > &, const char *str) |
| declare_logger (prl) | |
| initialize_logger (prl,"prefixer", syn_logger) | |
| initialize_logger (syn_logger,"syn", cplus_logger) | |
| declare_logger (syn_logger) | |
| int | do_it (bool flat_dump, lstring filename, lstring ss_filename, lstring context_filename, bool hinter_on) |
| static lstring | hint2str (bison_token::hint_type hint) |
| static lstring | hinted_by2str (bison_id_token::hinted_by_type hb) |
| ::std::ostream & | operator<< (::std::ostream &os, const ptr< bison_token > &bt) |
Variables | |
| ptr< ::lestes::msg::message_stencil1< lstring > > | parse_error |
| ptr< ::lestes::msg::message_stencil0< bool > > | disa_failed |
| ptr< ::lestes::msg::message_stencil0< bool > > | sub_error |
| ptr< ::lestes::msg::message_stencil0< bool > > | cont_here |
| ptr< ::lestes::msg::message_stencil0< bool > > | unmatched_open |
| ptr< ::lestes::msg::message_stencil0< bool > > | invalid_cond |
| ptr< ::lestes::msg::message_stencil0< bool > > | or_here |
| ptr< ::lestes::msg::message_stencil0< bool > > | empty_condition |
| ptr< ::lestes::msg::message_stencil0< bool > > | bad_end |
| ptr< ::lestes::msg::message_stencil0< bool > > | bad_global_qual |
| ptr< ::lestes::msg::message_stencil0< bool > > | wrong_before_coloncolon |
| ptr< ::lestes::msg::message_stencil0< bool > > | unknown_before_coloncolon |
| static ptr< hinter_stack_type > | hinter_stack |
| static ptr< mgr_stack_type > | mgr_stack |
| static struct lestes::lang::cplus::syn::prefix2hint_map_item | prefix2hint_map [] |
| typedef list< srp<action> > lestes::lang::cplus::syn::action_list_type |
Definition at line 51 of file manager.cc.
| typedef list< srp<one_hinter> > lestes::lang::cplus::syn::hinter_stack_type |
Definition at line 74 of file manager.cc.
| typedef list< srp<one_manager> > lestes::lang::cplus::syn::mgr_stack_type |
Definition at line 598 of file manager.cc.
| typedef token_list_type::iterator lestes::lang::cplus::syn::token_list_iterator |
Definition at line 50 of file manager.cc.
| typedef list< srp<bison_token> > lestes::lang::cplus::syn::token_list_type |
Definition at line 47 of file manager.cc.
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::bad_end | ( | ::lestes::msg::message_stencil0< bool >:: | create("syntax error: unexpected end",::lestes::msg::message::FLG_ERROR) | ) |
Referenced by yyerror().
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::bad_global_qual | ( | ::lestes::msg::message_stencil0< bool >:: | create("global qualification (::) not allowed here",::lestes::msg::message::FLG_ERROR) | ) |
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::cont_here | ( | ::lestes::msg::message_stencil0< bool >:: | create(" continuing here",::lestes::msg::message::FLG_ERROR) | ) |
| lestes::lang::cplus::syn::declare_logger | ( | syn_logger | ) |
| lestes::lang::cplus::syn::declare_logger | ( | prl | ) |
| lestes::lang::cplus::syn::declare_logger | ( | pl | ) |
| lestes::lang::cplus::syn::declare_logger | ( | ml | ) |
| lestes::lang::cplus::syn::declare_logger | ( | hl | ) |
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::disa_failed | ( | ::lestes::msg::message_stencil0< bool >:: | create("syntax error",::lestes::msg::message::FLG_ERROR) | ) |
| int lestes::lang::cplus::syn::do_it | ( | bool | flat_dump, | |
| lstring | filename, | |||
| lstring | ss_filename, | |||
| lstring | context_filename, | |||
| bool | hinter_on | |||
| ) |
Definition at line 56 of file test.cc.
References as_result, lestes::lang::cplus::lex::file_system::create(), lestes::lang::cplus::sem::dump(), lestes::std::dumper::dump(), and lestes::lang::cplus::sem::sa_statements::instance().
Referenced by main().
00057 { 00058 /* lex init */ 00059 ptr<prefixer::preprocessor> pp = 00060 prefixer::preprocessor::create( 00061 ::lestes::lang::cplus::lex::file_system::create(), "" ); 00062 00063 /* syn init */ 00064 prefixer::init( prefixer::PREFIX_ON, pp ); 00065 manager::init(); 00066 hinter::init( hinter_on ? hinter::HINTER_CHECK : hinter::HINTER_OFF ); 00067 parser::init(); 00068 ::lestes::lang::cplus::sem::sa_statements::instance(); 00069 lassert_event->attach(dump_at_lassert::create(ss_filename)); 00070 lassert_event->attach(dump_context_at_lassert::create(context_filename)); 00071 00072 //F// //FIXME: this should be done elsewhere 00073 //F// hinter::forced_scope_set( ss_decl_seq::root_instance() ); 00074 //F// // end 00075 00076 ptr<parse_result_type> parse_result = parser::parse(); 00077 bool success = parse_result->success_get(); 00078 ::std::cout << "top level parser " << 00079 (success ? "succeeded" : "failed") << ::std::endl; 00080 00081 ptr< ::lestes::intercode::as_base > as_result = parse_result->as_result_get(); 00082 if (filename != "" && as_result) { 00083 ::std::ofstream f(filename.c_str()); 00084 if (flat_dump) 00085 ::lestes::std::dumper::dump( f, as_result ); 00086 else 00087 ::lestes::std::readable_dumper::dump( f, as_result ); 00088 f.close(); 00089 } 00090 00091 if (ss_filename != "") { 00092 ::std::ofstream f(ss_filename.c_str()); 00093 if (flat_dump) 00094 ::lestes::std::dumper::dump(f, sem::ss_decl_seq::root_instance()); 00095 else 00096 ::lestes::std::readable_dumper::dump(f, sem::ss_decl_seq::root_instance()); 00097 f.close(); 00098 } 00099 00100 if (context_filename != "") { 00101 ::std::ofstream f(context_filename.c_str()); 00102 if (flat_dump) 00103 ::lestes::std::dumper::dump(f, sa_context_manager::instance()); 00104 else 00105 ::lestes::std::readable_dumper::dump(f, sa_context_manager::instance()); 00106 f.close(); 00107 } 00108 00109 return success ? 0 : 1; 00110 }
| int lestes::lang::cplus::syn::do_it | ( | bool | flat_dump, | |
| lstring | filename, | |||
| lstring | ss_filename, | |||
| bool | hinter_on | |||
| ) |
Definition at line 61 of file ss2pi.test.cc.
References as_result, lestes::lang::cplus::lex::file_system::create(), lestes::lang::cplus::sem::dump(), lestes::std::dumper::dump(), lestes::lang::cplus::sem::sa_statements::instance(), and lestes::lang::cplus::sem::ss2pi_start().
00062 { 00063 /* lex init */ 00064 ptr<prefixer::preprocessor> pp = 00065 prefixer::preprocessor::create( 00066 ::lestes::lang::cplus::lex::file_system::create(), "" ); 00067 00068 /* syn init */ 00069 prefixer::init( prefixer::PREFIX_ON, pp ); 00070 manager::init(); 00071 hinter::init( hinter_on ? hinter::HINTER_CHECK : hinter::HINTER_OFF ); 00072 parser::init(); 00073 ::lestes::lang::cplus::sem::sa_statements::instance(); 00074 00075 //F// //FIXME: this should be done elsewhere 00076 //F// hinter::forced_scope_set( ss_decl_seq::root_instance() ); 00077 //F// // end 00078 00079 ptr<parse_result_type> parse_result = parser::parse(); 00080 bool success = parse_result->success_get(); 00081 ::std::cout << (success ? "succeeded" : "failed") << ::std::endl; 00082 00083 ptr< ::lestes::intercode::as_base > as_result = parse_result->as_result_get(); 00084 if (filename != "" && as_result) { 00085 ::std::ofstream f(filename.c_str()); 00086 if (flat_dump) 00087 ::lestes::std::dumper::dump( f, as_result ); 00088 else 00089 ::lestes::std::readable_dumper::dump( f, as_result ); 00090 f.close(); 00091 } 00092 00093 if (ss_filename != "") { 00094 ::std::ofstream f(ss_filename.c_str()); 00095 if (flat_dump) 00096 ::lestes::std::dumper::dump(f, sem::ss_decl_seq::root_instance()); 00097 else 00098 ::lestes::std::readable_dumper::dump(f, sem::ss_decl_seq::root_instance()); 00099 f.close(); 00100 } 00101 00102 ss2pi_start(ss_translation_unit::create(ss_decl_seq::root_instance())); 00103 lestes::backend::backend::create(::std::cout)->main(); 00104 return success ? 0 : 1; 00105 }
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::empty_condition | ( | ::lestes::msg::message_stencil0< bool >:: | create("syntax error: empty condition not allowed here",::lestes::msg::message::FLG_ERROR) | ) |
| static lstring lestes::lang::cplus::syn::hint2str | ( | bison_token::hint_type | hint | ) | [static] |
Definition at line 42 of file token.cc.
Referenced by lestes::lang::cplus::syn::bison_token::field_values_get(), and lestes::lang::cplus::syn::bison_token::print().
00043 { 00044 lstring str = "BUG!"; 00045 switch (hint) { 00046 case bison_token::HINT_NONE: 00047 str = "HINT_NONE"; 00048 break; 00049 00050 case bison_token::HINT_TEMPL_NONTYPE: 00051 str = "HINT_TEMPL_NONTYPE"; 00052 break; 00053 case bison_token::HINT_TEMPL_TYPE: 00054 str = "HINT_TEMPL_TYPE"; 00055 break; 00056 case bison_token::HINT_NONTYPE: 00057 str = "HINT_NONTYPE"; 00058 break; 00059 case bison_token::HINT_CLASS: 00060 str = "HINT_CLASS"; 00061 break; 00062 case bison_token::HINT_ENUM: 00063 str = "HINT_ENUM"; 00064 break; 00065 case bison_token::HINT_TYPEDEF: 00066 str = "HINT_TYPEDEF"; 00067 break; 00068 case bison_token::HINT_NAMESPACE: 00069 str = "HINT_NAMESPACE"; 00070 break; 00071 case bison_token::HINT_UNKNOWN: 00072 str = "HINT_UNKNOWN"; 00073 break; 00074 00075 case bison_token::HINT_CTOR: 00076 str = "HINT_CTOR"; 00077 break; 00078 case bison_token::HINT_NO_CTOR: 00079 str = "HINT_NO_CTOR"; 00080 break; 00081 00082 case bison_token::HINT_BITFIELD: 00083 str = "HINT_BITFIELD"; 00084 break; 00085 case bison_token::HINT_NO_BITFIELD: 00086 str = "HINT_NO_BITFIELD"; 00087 break; 00088 } 00089 return str; 00090 }
| static lstring lestes::lang::cplus::syn::hinted_by2str | ( | bison_id_token::hinted_by_type | hb | ) | [static] |
Definition at line 92 of file token.cc.
Referenced by lestes::lang::cplus::syn::bison_id_token::field_values_get(), and lestes::lang::cplus::syn::bison_id_token::print().
00093 { 00094 lstring str = "BUG!"; 00095 switch (hb) { 00096 case bison_id_token::BY_HINTER: 00097 str = "BY_HINTER"; 00098 break; 00099 // case bison_id_token::BY_BOTH: 00100 // str = "BY_BOTH"; 00101 // break; 00102 case bison_id_token::BY_USER: 00103 str = "BY_USER"; 00104 break; 00105 } 00106 return str; 00107 }
| lestes::lang::cplus::syn::initialize_event | ( | manager::rollback_event | ) |
| lestes::lang::cplus::syn::initialize_event | ( | manager::commit_event | ) |
| lestes::lang::cplus::syn::initialize_event | ( | manager::start_event | ) |
| lestes::lang::cplus::syn::initialize_event | ( | manager::close_event | ) |
| lestes::lang::cplus::syn::initialize_event | ( | manager::spawn_event | ) |
| lestes::lang::cplus::syn::initialize_logger | ( | syn_logger | , | |
| "syn" | , | |||
| cplus_logger | ||||
| ) |
| lestes::lang::cplus::syn::initialize_logger | ( | prl | , | |
| "prefixer" | , | |||
| syn_logger | ||||
| ) |
| lestes::lang::cplus::syn::initialize_logger | ( | pl | , | |
| "parser" | , | |||
| syn_logger | ||||
| ) |
| lestes::lang::cplus::syn::initialize_logger | ( | ml | , | |
| "manager" | , | |||
| syn_logger | ||||
| ) |
| lestes::lang::cplus::syn::initialize_logger | ( | hl | , | |
| "hinter" | , | |||
| syn_logger | ||||
| ) |
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::invalid_cond | ( | ::lestes::msg::message_stencil0< bool >:: | create("syntax error: error in condition",::lestes::msg::message::FLG_ERROR) | ) |
| static ptr<declaration_set_type> lestes::lang::cplus::syn::look_first | ( | const ptr< ss_decl_name > & | name, | |
| const ptr< ss_decl_seq > & | seq | |||
| ) | [static] |
Definition at line 355 of file hinter.cc.
Referenced by lestes::lang::cplus::syn::hinter::compute_hint().
00356 { 00357 static ptr<lu_params> params; 00358 static ptr<lu_name_filter> name_filter; 00359 static ptr<lu_visible_filter> visible_filter; 00360 if (!params) { 00361 ptr<lu_multi_filter> big_filter = lu_multi_filter::create(); 00362 // XXX: really UDIR_ALWAYS ??? 00363 params = lu_params::create( lu_params::UDIR_ALWAYS, 00364 lu_params::UDECL_RESOLVE_BEFORE_FILTER, 00365 lu_params::SEARCH_PARENTS, 00366 ss_declaration_time::infinity(), big_filter ); 00367 name_filter = lu_name_filter::create( name ); 00368 big_filter->add_filter( name_filter ); 00369 big_filter->add_filter( lu_qual_filter::instance() ); 00370 visible_filter = lu_visible_filter::create( ss_declaration_time::infinity() ); 00371 big_filter->add_filter( visible_filter ); 00372 } 00373 // the location -> time translation should be made easier... 00374 ptr<ss_declaration_time> time = ss_declaration_time::create( name->location_get()->order_get() ); 00375 params->time_set( time ); 00376 visible_filter->visible_before_set( time ); 00377 name_filter->name_set( name ); 00378 return lu_lookup::instance()->main( seq, params ); 00379 }
| static ptr<declaration_set_type> lestes::lang::cplus::syn::look_last | ( | const ptr< ss_decl_name > & | name, | |
| const ptr< ss_decl_seq > & | seq | |||
| ) | [static] |
Definition at line 381 of file hinter.cc.
Referenced by lestes::lang::cplus::syn::hinter::compute_hint().
00382 { 00383 static ptr<lu_params> params; 00384 static ptr<lu_name_filter> name_filter; 00385 static ptr<lu_visible_filter> visible_filter; 00386 if (!params) { 00387 ptr<lu_multi_filter> big_filter = lu_multi_filter::create(); 00388 params = lu_params::create( lu_params::UDIR_FALLBACK, 00389 lu_params::UDECL_RESOLVE_BEFORE_FILTER, 00390 lu_params::SKIP_PARENTS, 00391 ss_declaration_time::infinity(), big_filter ); 00392 name_filter = lu_name_filter::create( name ); 00393 big_filter->add_filter( name_filter ); 00394 big_filter->add_filter( lu_func_cont_filter::instance() ); 00395 visible_filter = lu_visible_filter::create( ss_declaration_time::infinity() ); 00396 big_filter->add_filter( visible_filter ); 00397 } 00398 // the location -> time translation should be made easier... 00399 ptr<ss_declaration_time> time = ss_declaration_time::create( name->location_get()->order_get() ); 00400 params->time_set( time ); 00401 visible_filter->visible_before_set( time ); 00402 name_filter->name_set( name ); 00403 return lu_lookup::instance()->main( seq, params ); 00404 }
| static ptr<declaration_set_type> lestes::lang::cplus::syn::look_last_elab | ( | const ptr< ss_decl_name > & | name, | |
| const ptr< ss_decl_seq > & | seq | |||
| ) | [static] |
Definition at line 406 of file hinter.cc.
Referenced by lestes::lang::cplus::syn::hinter::compute_hint().
00407 { 00408 static ptr<lu_params> params; 00409 static ptr<lu_name_filter> name_filter; 00410 static ptr<lu_visible_filter> visible_filter; 00411 if (!params) { 00412 ptr<lu_multi_filter> big_filter = lu_multi_filter::create(); 00413 params = lu_params::create( lu_params::UDIR_FALLBACK, 00414 lu_params::UDECL_RESOLVE_BEFORE_FILTER, 00415 lu_params::SKIP_PARENTS, 00416 ss_declaration_time::infinity(), big_filter ); 00417 name_filter = lu_name_filter::create( name ); 00418 big_filter->add_filter( name_filter ); 00419 big_filter->add_filter( lu_elaborated_filter::instance() ); 00420 visible_filter = lu_visible_filter::create( ss_declaration_time::infinity() ); 00421 // we _want_ to see invisible classes in elaborated type specifiers 00422 // big_filter->add_filter( visible_filter ); 00423 } 00424 // the location -> time translation should be made easier... 00425 ptr<ss_declaration_time> time = ss_declaration_time::create( name->location_get()->order_get() ); 00426 params->time_set( time ); 00427 visible_filter->visible_before_set( time ); 00428 name_filter->name_set( name ); 00429 return lu_lookup::instance()->main( seq, params ); 00430 }
| static ptr<declaration_set_type> lestes::lang::cplus::syn::middle | ( | const ptr< ss_decl_name > & | name, | |
| const ptr< ss_decl_seq > & | seq | |||
| ) | [static] |
Definition at line 432 of file hinter.cc.
Referenced by lestes::lang::cplus::syn::hinter::compute_hint().
00433 { 00434 static ptr<lu_params> params; 00435 static ptr<lu_name_filter> name_filter; 00436 static ptr<lu_visible_filter> visible_filter; 00437 if (!params) { 00438 ptr<lu_multi_filter> big_filter = lu_multi_filter::create(); 00439 params = lu_params::create( lu_params::UDIR_FALLBACK, 00440 lu_params::UDECL_RESOLVE_BEFORE_FILTER, 00441 lu_params::SKIP_PARENTS, 00442 ss_declaration_time::infinity(), big_filter ); 00443 name_filter = lu_name_filter::create( name ); 00444 big_filter->add_filter( name_filter ); 00445 big_filter->add_filter( lu_qual_filter::instance() ); 00446 visible_filter = lu_visible_filter::create( ss_declaration_time::infinity() ); 00447 big_filter->add_filter( visible_filter ); 00448 } 00449 // the location -> time translation should be made easier... 00450 ptr<ss_declaration_time> time = ss_declaration_time::create( name->location_get()->order_get() ); 00451 params->time_set( time ); 00452 visible_filter->visible_before_set( time ); 00453 name_filter->name_set( name ); 00454 return lu_lookup::instance()->main( seq, params ); 00455 }
| static ptr<declaration_set_type> lestes::lang::cplus::syn::nmspace | ( | const ptr< ss_decl_name > & | name, | |
| const ptr< ss_decl_seq > & | seq | |||
| ) | [static] |
Definition at line 457 of file hinter.cc.
Referenced by lestes::lang::cplus::syn::hinter::compute_hint().
00458 { 00459 static ptr<lu_params> params; 00460 static ptr<lu_name_filter> name_filter; 00461 if (!params) { 00462 ptr<lu_multi_filter> big_filter = lu_multi_filter::create(); 00463 params = lu_params::create( lu_params::UDIR_IGNORE, 00464 lu_params::UDECL_RESOLVE_BEFORE_FILTER, 00465 lu_params::SKIP_PARENTS, 00466 ss_declaration_time::infinity(), big_filter ); 00467 name_filter = lu_name_filter::create( name ); 00468 big_filter->add_filter( name_filter ); 00469 // deliberately commented out: 00470 // big_filter->add_filter( lu_namespace_filter::instance() ); 00471 } 00472 // the location -> time translation should be made easier... 00473 ptr<ss_declaration_time> time = ss_declaration_time::create( name->location_get()->order_get() ); 00474 params->time_set( time ); 00475 name_filter->name_set( name ); 00476 return lu_lookup::instance()->main( seq, params ); 00477 }
| std::ostream & lestes::lang::cplus::syn::operator<< | ( | ::std::ostream & | os, | |
| const ptr< bison_token > & | bt | |||
| ) |
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::or_here | ( | ::lestes::msg::message_stencil0< bool >:: | create(" possibly here",::lestes::msg::message::FLG_ERROR) | ) |
| ptr< ::lestes::msg::message_stencil1< lstring > > lestes::lang::cplus::syn::parse_error | ( | ::lestes::msg::message_stencil1< lstring >:: | create("%0",::lestes::msg::message::FLG_ERROR,::lestes::msg::formatter< lstring >::instance()) | ) |
Referenced by yyerror().
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::sub_error | ( | ::lestes::msg::message_stencil0< bool >:: | create(" sub-error here",::lestes::msg::message::FLG_ERROR) | ) |
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::unknown_before_coloncolon | ( | ::lestes::msg::message_stencil0< bool >:: | create("unknown name followed by ::",::lestes::msg::message::FLG_ERROR) | ) |
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::unmatched_open | ( | ::lestes::msg::message_stencil0< bool >:: | create("syntax error: unmatched opening",::lestes::msg::message::FLG_ERROR) | ) |
| static ptr<declaration_set_type> lestes::lang::cplus::syn::unqualified | ( | const ptr< ss_decl_name > & | name, | |
| const ptr< ss_decl_seq > & | seq | |||
| ) | [static] |
Definition at line 305 of file hinter.cc.
Referenced by lestes::lang::cplus::syn::hinter::compute_hint().
00306 { 00307 static ptr<lu_params> params; 00308 static ptr<lu_name_filter> name_filter; 00309 static ptr<lu_visible_filter> visible_filter; 00310 if (!params) { 00311 ptr<lu_multi_filter> big_filter = lu_multi_filter::create(); 00312 params = lu_params::create( lu_params::UDIR_ALWAYS, 00313 lu_params::UDECL_RESOLVE_BEFORE_FILTER, 00314 lu_params::SEARCH_PARENTS, 00315 ss_declaration_time::infinity(), big_filter ); 00316 name_filter = lu_name_filter::create( name ); 00317 big_filter->add_filter( name_filter ); 00318 big_filter->add_filter( lu_func_cont_filter::instance() ); 00319 visible_filter = lu_visible_filter::create( ss_declaration_time::infinity() ); 00320 big_filter->add_filter( visible_filter ); 00321 } 00322 // the location -> time translation should be made easier... 00323 ptr<ss_declaration_time> time = ss_declaration_time::create( name->location_get()->order_get() ); 00324 params->time_set( time ); 00325 visible_filter->visible_before_set( time ); 00326 name_filter->name_set( name ); 00327 return lu_lookup::instance()->main( seq, params ); 00328 }
| static ptr<declaration_set_type> lestes::lang::cplus::syn::unqualified_elab | ( | const ptr< ss_decl_name > & | name, | |
| const ptr< ss_decl_seq > & | seq | |||
| ) | [static] |
Definition at line 330 of file hinter.cc.
Referenced by lestes::lang::cplus::syn::hinter::compute_hint().
00331 { 00332 static ptr<lu_params> params; 00333 static ptr<lu_name_filter> name_filter; 00334 static ptr<lu_visible_filter> visible_filter; 00335 if (!params) { 00336 ptr<lu_multi_filter> big_filter = lu_multi_filter::create(); 00337 params = lu_params::create( lu_params::UDIR_ALWAYS, 00338 lu_params::UDECL_RESOLVE_BEFORE_FILTER, 00339 lu_params::SEARCH_PARENTS, 00340 ss_declaration_time::infinity(), big_filter ); 00341 name_filter = lu_name_filter::create( name ); 00342 big_filter->add_filter( name_filter ); 00343 big_filter->add_filter( lu_elaborated_filter::instance() ); 00344 visible_filter = lu_visible_filter::create( ss_declaration_time::infinity() ); 00345 big_filter->add_filter( visible_filter ); 00346 } 00347 // the location -> time translation should be made easier... 00348 ptr<ss_declaration_time> time = ss_declaration_time::create( name->location_get()->order_get() ); 00349 params->time_set( time ); 00350 visible_filter->visible_before_set( time ); 00351 name_filter->name_set( name ); 00352 return lu_lookup::instance()->main( seq, params ); 00353 }
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::wrong_before_coloncolon | ( | ::lestes::msg::message_stencil0< bool >:: | create("name followed by :: is not a class, nor a namespace name",::lestes::msg::message::FLG_ERROR) | ) |
| static void lestes::lang::cplus::syn::yyerror | ( | ptr< as_base > & | , | |
| const char * | str | |||
| ) | [static] |
Definition at line 84 of file parser.cc.
References bad_end(), llog, parse_error(), lestes::report(), and TOK_EOF.
00085 { 00086 llog(pl) << "yyerror: " << str << "\n"; 00087 // do not report errors when trying to resolve an ambiguity 00088 // nor when we are expecting more errors to follow (we are failing) 00089 if (!manager::in_disambiguation() && !manager::failing_get()) { 00090 ptr<bison_token> prev = manager::prev_yylex(); 00091 // supress confusing message about TOK_EOF -- it might be end 00092 // of a function body just as well 00093 if (prev->type_get() == bison_token::TOK_EOF) 00094 report << bad_end << prev->location_get(); 00095 else 00096 report << parse_error << lstring(str) << prev->location_get(); 00097 } 00098 }
| static int lestes::lang::cplus::syn::yylex | ( | semval * | sv | ) | [static] |
Definition at line 75 of file parser.cc.
References llog, lestes::lang::cplus::syn::semval::select(), and lestes::ui::yylex().
00076 { 00077 ptr<bison_token> t = manager::yylex(); 00078 llog(pl) << "yylex: " << t << "\n"; 00079 sv->select<bison_token>() = t; 00080 return t->type_get(); 00081 }
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::bad_end |
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::bad_global_qual |
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::cont_here |
Referenced by lestes::lang::cplus::syn::syntax_error::disa_stmt().
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::disa_failed |
Referenced by lestes::lang::cplus::syn::syntax_error::disa_stmt().
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::empty_condition |
Referenced by lestes::lang::cplus::syn::syntax_error::condition().
ptr<hinter_stack_type> lestes::lang::cplus::syn::hinter_stack [static] |
Definition at line 224 of file hinter.cc.
Referenced by lestes::lang::cplus::syn::hinter::elab_spec_get(), lestes::lang::cplus::syn::hinter::elab_spec_set(), lestes::lang::cplus::syn::hinter::init(), lestes::lang::cplus::syn::hinter::namespace_mode_get(), lestes::lang::cplus::syn::hinter::namespace_mode_set(), lestes::lang::cplus::syn::hinter::qual_scope_get(), lestes::lang::cplus::syn::pop_state_action::run(), lestes::lang::cplus::syn::push_state_action::run(), lestes::lang::cplus::syn::close_hinter_action::run(), and lestes::lang::cplus::syn::spawn_hinter_action::run().
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::invalid_cond |
Referenced by lestes::lang::cplus::syn::syntax_error::condition().
ptr<mgr_stack_type> lestes::lang::cplus::syn::mgr_stack [static] |
Definition at line 599 of file manager.cc.
Referenced by lestes::lang::cplus::syn::manager::back_up(), lestes::lang::cplus::syn::manager::close(), lestes::lang::cplus::syn::manager::commit(), lestes::lang::cplus::syn::manager::failing_get(), lestes::lang::cplus::syn::manager::failing_set_true(), lestes::lang::cplus::syn::manager::in_disambiguation(), lestes::lang::cplus::syn::manager::init(), lestes::lang::cplus::syn::manager::install_undo_action(), lestes::lang::cplus::syn::manager::pack(), lestes::lang::cplus::syn::manager::peek(), lestes::lang::cplus::syn::manager::prev_yylex(), lestes::lang::cplus::syn::manager::rollback(), lestes::lang::cplus::syn::manager::spawn(), lestes::lang::cplus::syn::manager::start(), lestes::lang::cplus::syn::manager::unpack(), and lestes::lang::cplus::syn::manager::yylex().
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::or_here |
| ptr< ::lestes::msg::message_stencil1< lstring > > lestes::lang::cplus::syn::parse_error |
struct lestes::lang::cplus::syn::prefix2hint_map_item lestes::lang::cplus::syn::prefix2hint_map[] [static] |
Referenced by lestes::lang::cplus::syn::prefixer::prefix2hint().
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::sub_error |
Referenced by lestes::lang::cplus::syn::syntax_error::disa_stmt().
Referenced by lestes::lang::cplus::syn::hinter::compute_hint().
| ptr< ::lestes::msg::message_stencil0< bool > > lestes::lang::cplus::syn::unmatched_open |
Referenced by lestes::lang::cplus::syn::one_manager::find_closing().
Referenced by lestes::lang::cplus::syn::hinter::compute_hint().
1.5.1-20070107