This is very boring:
CommandInfo const * InsetCommandParams::findInfo(
InsetCode code, std::string const & cmdName)
{
switch (code) {
case BIBITEM_CODE:
return InsetBibitem::findInfo(cmdName);
case BIBTEX_CODE:
return InsetBibtex::findInfo(cmdName);
case CITE_CODE:
return InsetCitation::findInfo(cmdName);
case FLOAT_LIST_CODE:
return InsetFloatList::findInfo(cmdName);
case HFILL_CODE:
return InsetHFill::findInfo(cmdName);
case HYPERLINK_CODE:
return InsetHyperlink::findInfo(cmdName);
case INCLUDE_CODE:
return InsetInclude::findInfo(cmdName);
case INDEX_CODE:
return InsetIndex::findInfo(cmdName);
case INDEX_PRINT_CODE:
return InsetPrintIndex::findInfo(cmdName);
case LABEL_CODE:
return InsetLabel::findInfo(cmdName);
case NOMENCL_CODE:
return InsetNomencl::findInfo(cmdName);
case NOMENCL_PRINT_CODE:
return InsetPrintNomencl::findInfo(cmdName);
case REF_CODE:
return InsetRef::findInfo(cmdName);
case TOC_CODE:
return InsetTOC::findInfo(cmdName);
default:
BOOST_ASSERT(false);
}
return 0;
}
std::string InsetCommandParams::getDefaultCmd(InsetCode code) {
switch (code) {
case BIBITEM_CODE:
return InsetBibitem::defaultCommand();
case BIBTEX_CODE:
return InsetBibtex::defaultCommand();
case CITE_CODE:
return InsetCitation::defaultCommand();
case FLOAT_LIST_CODE:
return InsetFloatList::defaultCommand();
case HFILL_CODE:
return InsetHFill::defaultCommand();
case HYPERLINK_CODE:
return InsetHyperlink::defaultCommand();
case INCLUDE_CODE:
return InsetInclude::defaultCommand();
case INDEX_CODE:
return InsetIndex::defaultCommand();
case INDEX_PRINT_CODE:
return InsetPrintIndex::defaultCommand();
case LABEL_CODE:
return InsetLabel::defaultCommand();
case NOMENCL_CODE:
return InsetNomencl::defaultCommand();
case NOMENCL_PRINT_CODE:
return InsetPrintNomencl::defaultCommand();
case REF_CODE:
return InsetRef::defaultCommand();
case TOC_CODE:
return InsetTOC::defaultCommand();
default:
BOOST_ASSERT(false);
}
return string(); //silence the warning
}
static bool InsetCommandParams::isCompatibleCommand(
InsetCode code, std::string const & s)
{
switch (code) {
case BIBITEM_CODE:
return InsetBibitem::isCompatiableCommand(s);
case BIBTEX_CODE:
return InsetBibtex::isCompatiableCommand(s);
case CITE_CODE:
return InsetCitation::isCompatiableCommand(s);
case FLOAT_LIST_CODE:
return InsetFloatList::isCompatiableCommand(s);
case HFILL_CODE:
return InsetHFill::isCompatiableCommand(s);
case HYPERLINK_CODE:
return InsetHyperlink::isCompatiableCommand(s);
case INCLUDE_CODE:
return InsetInclude::isCompatiableCommand(s);
case INDEX_CODE:
return InsetIndex::isCompatiableCommand(s);
case INDEX_PRINT_CODE:
return InsetPrintIndex::isCompatiableCommand(s);
case LABEL_CODE:
return InsetLabel::isCompatiableCommand(s);
case NOMENCL_CODE:
return InsetNomencl::isCompatiableCommand(s);
case NOMENCL_PRINT_CODE:
return InsetPrintNomencl::isCompatiableCommand(s);
case REF_CODE:
return InsetRef::isCompatiableCommand(s);
case TOC_CODE:
return InsetTOC::isCompatiableCommand(s);
default:
BOOST_ASSERT(false);
}
return false; //silence the warning
}
So tell me: The fact that C++ is strongly typed and not really object
oriented makes it impossible to do this neatly? There are such nice ways
to do it in both Perl and Python...right Bo?
rh
--
==================================================================
Richard G Heck, Jr
Professor of Philosophy
Brown University
http://frege.brown.edu/heck/
==================================================================
Get my public key from http://sks.keyserver.penguin.de
Hash: 0x1DE91F1E66FFBDEC
Learn how to sign your email using Thunderbird and GnuPG at:
http://dudu.dyn.2-h.org/nist/gpg-enigmail-howto