STORM_PRINT(std::endl<<"Type 'storm --help modulename' to display all options of a specific module or 'storm --help all' for a complete list of options."<<std::endl);
}
}
}else{
}else{
// Create a regular expression from the input hint.
// Create a regular expression from the input hint.
std::stringoptionList=getHelpForSelection(matchingModuleNames,matchingOptionNames,"Matching modules for filter '"+filter+"':","Matching options for filter '"+filter+"':");
if(optionList.empty()){
STORM_PRINT("Filter '"<<filter<<"' did not match any modules or options."<<std::endl);
}else{
STORM_PRINT(optionList);
}
}
// Print the matching options.
if(matchingOptions.size()>0){
STORM_PRINT("Matching options for hint '"<<hint<<"':"<<std::endl);
STORM_LOG_THROW(moduleIterator!=modules.end(),storm::exceptions::IllegalFunctionCallException,"Unable to retrieve option length of unknown module '"<<moduleName<<"'.");
STORM_LOG_THROW(moduleIterator!=modules.end(),storm::exceptions::IllegalFunctionCallException,"Unable to retrieve option length of unknown module '"<<moduleName<<"'.");
STORM_LOG_THROW(conversionOk,storm::exceptions::OptionParserException,"Value '"<<argumentCache[i]<<"' is invalid for argument <"<<argument.getName()<<"> of option:\n"<<*option);
STORM_LOG_THROW(conversionOk,storm::exceptions::OptionParserException,"Value '"<<argumentCache[i]<<"' is invalid for argument <"<<argument.getName()<<"> of option:\n"<<*option);
}
}
// In case there are optional arguments that were not set, we set them to their default value.
// In case there are optional arguments that were not set, we set them to their default value.
STORM_LOG_THROW(argument.getHasDefaultValue()||argument.getIsOptional(),storm::exceptions::OptionParserException,"Non-optional argument <"<<argument.getName()<<"> of option:\n"<<*option);
this->addOption(storm::settings::OptionBuilder(moduleName,helpOptionName,false,"Shows all available options, arguments and descriptions.").setShortName(helpOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("hint","A regular expression to show help for all matching entities or 'all' for the complete help.").setDefaultValueString("all").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,helpOptionName,false,"Shows available options, arguments and descriptions.").setShortName(helpOptionShortName)
.addArgument(storm::settings::ArgumentBuilder::createStringArgument("filter","'frequent' for frequently used options, 'all' for the complete help, or a regular expression to show help for all matching entities.").setDefaultValueString("frequent").build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,versionOptionName,false,"Prints the version information.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,versionOptionName,false,"Prints the version information.").build());
this->addOption(storm::settings::OptionBuilder(moduleName,verboseOptionName,false,"Enables more verbose output.").setShortName(verboseOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,verboseOptionName,false,"Enables more verbose output.").setShortName(verboseOptionShortName).build());
this->addOption(storm::settings::OptionBuilder(moduleName,showProgressOptionName,false,"Sets when additional information (if available) about the progress is printed.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("delay","The delay to wait (in seconds) between emitting information (0 means never print progress).").setDefaultValueUnsignedInteger(5).build()).build());
this->addOption(storm::settings::OptionBuilder(moduleName,showProgressOptionName,false,"Sets when additional information (if available) about the progress is printed.").addArgument(storm::settings::ArgumentBuilder::createUnsignedIntegerArgument("delay","The delay to wait (in seconds) between emitting information (0 means never print progress).").setDefaultValueUnsignedInteger(5).build()).build());