2#ifndef STORMM_COMMAND_LINE_PARSER_H
3#define STORMM_COMMAND_LINE_PARSER_H
9#include "namelist_emulator.h"
10#include "namelist_inventory.h"
17const char default_stormm_input_deck[] =
"stormm.in";
18const char default_stormm_input_topology[] =
"prmtop";
19const char default_stormm_input_coordinates[] =
"inpcrd";
20const char default_stormm_report_file[] =
"stormm_report.m";
21const char default_stormm_output_trajectory[] =
"mdcrd";
22const char default_stormm_output_checkpoint[] =
"mdrst";
38 CommandLineParser(
const std::string &program_name_in,
const std::string &program_description,
39 const std::vector<std::string> ¬ed_imports_in = {},
40 ExceptionResponse policy_in = ExceptionResponse::WARN);
42 CommandLineParser(
const std::string &program_name_in,
const std::string &program_description,
43 ExceptionResponse policy_in);
100 const char* key_c =
nullptr,
const char* key_d =
nullptr);
109 const char* key_c =
nullptr,
const char* key_d =
nullptr);
118 const char* key_c =
nullptr,
const char* key_d =
nullptr);
168 ExceptionResponse policy;
172 std::string program_name;
173 std::string executable;
175 bool help_on_no_args;
185 std::vector<std::string> command_line_text;
188 std::vector<std::string> control_blocks;
191 std::vector<CommandLineParser*> coordinations;
194 std::map<std::string, NamelistType> excluded_keys;
197 std::vector<std::string> noted_imports;
202 std::vector<NamelistToken> custom_namelists;
const NamelistEmulator * getNamelistPointer() const
Return a pointer to the internal namelist.
Definition command_line_parser.cpp:408
void addStandardAmberInputs(const std::vector< std::string > &cli_keys)
Impart the typical comand-line keywords inspired by Amber.
Definition command_line_parser.cpp:128
void coordinateWithPartner(CommandLineParser *other)
The nature of the command line parser as a unique sort of namelist which can be assembled and recombi...
Definition command_line_parser.cpp:537
void activateExitOnHelp()
Order the program to exit after displaying general help documentation, with a return value of zero.
Definition command_line_parser.cpp:118
bool doesProgramExitOnHelp() const
Obtain a verdict on whether the program is to exit after displaying a help message....
Definition command_line_parser.cpp:103
void addControlBlocks(const std::vector< std::string > &list)
Add a list of relevant namelists that will be displayed in the context of any help message....
Definition command_line_parser.cpp:614
void suppressHelpOnNoArgs()
Suppress the printout of help messages if no command line arguments are provided.
Definition command_line_parser.cpp:113
void addStandardApplicationInputs(const std::vector< std::string > &cli_keys)
Impart some common application command line arguments to the interface. Overloading and descriptions ...
Definition command_line_parser.cpp:325
void parseUserInput(int argc, const char *argv[])
Supply the internal namelist with command-line input as if parsing from an input file.
Definition command_line_parser.cpp:413
CommandLineParser(const CommandLineParser &original)=default
With no pointers to repair and all members coming from or built using Standard Template Library objec...
std::string getInputAsString(int width=0) const
Return the command line text as a string.
Definition command_line_parser.cpp:92
void addCustomNamelists(const std::vector< NamelistToken > &custom_namelists_in)
Add a series of custom namelists to the object's repertoire of control blocks, about which it is prep...
Definition command_line_parser.cpp:627
void activateHelpOnNoArgs()
Activate the printout of help messages if no command line arguments are provided.
Definition command_line_parser.cpp:108
void addStandardBenchmarkingInputs(const std::vector< std::string > &cli_keys)
Impart some common benchmarking keywords to the command line interface. Overloading and descriptions ...
Definition command_line_parser.cpp:213
void preventExitOnHelp()
Prevent the program from exiting after displaying general help documentation, with a return value of ...
Definition command_line_parser.cpp:123
CommandLineParser(const std::string &program_name_in, const std::string &program_description, const std::vector< std::string > ¬ed_imports_in={}, ExceptionResponse policy_in=ExceptionResponse::WARN)
The constructor is passed the list of command-line arguments. The object will take the first string i...
Definition command_line_parser.cpp:60
Collection of variables to transcribe information contained within a namelist.
Definition namelist_emulator.h:30