nfd::tools::nfdc::CommandParser Class Reference

parses a command More...

#include <tools/nfdc/command-parser.hpp>

+ Inheritance diagram for nfd::tools::nfdc::CommandParser:
+ Collaboration diagram for nfd::tools::nfdc::CommandParser:


class  NoSuchCommandError

Public Member Functions

CommandParseraddAlias (const std::string &noun, const std::string &verb, const std::string &verb2)
 add an alias "noun verb2" to existing command "noun verb" More...
CommandParseraddCommand (const CommandDefinition &def, const ExecuteCommand &execute, std::underlying_type< AvailableIn >::type modes=AVAILABLE_IN_ALL)
 add an available command More...
std::vector< const CommandDefinition * > listCommands (const std::string &noun, ParseMode mode) const
 list known commands for help More...
std::tuple< std::string, std::string, CommandArguments, ExecuteCommandparse (const std::vector< std::string > &tokens, ParseMode mode) const
 parse a command line More...

Detailed Description

parses a command

Definition at line 63 of file command-parser.hpp.

Member Function Documentation

CommandParser & nfd::tools::nfdc::CommandParser::addAlias ( const std::string &  noun,
const std::string &  verb,
const std::string &  verb2 

add an alias "noun verb2" to existing command "noun verb"

std::out_of_range"noun verb" does not exist

Definition at line 90 of file command-parser.cpp.

CommandParser & nfd::tools::nfdc::CommandParser::addCommand ( const CommandDefinition def,
const ExecuteCommand execute,
std::underlying_type< AvailableIn >::type  modes = AVAILABLE_IN_ALL 

add an available command

defcommand semantics definition
executea function to execute the command
modesparse modes this command should be available in, must not be AVAILABLE_IN_NONE

Definition at line 74 of file command-parser.cpp.

std::vector< const CommandDefinition * > nfd::tools::nfdc::CommandParser::listCommands ( const std::string &  noun,
ParseMode  mode 
) const

list known commands for help

nounif not empty, filter results by this noun
modeinclude commands for the specified parse mode
commands in insertion order

Definition at line 97 of file command-parser.cpp.

std::tuple< std::string, std::string, CommandArguments, ExecuteCommand > nfd::tools::nfdc::CommandParser::parse ( const std::vector< std::string > &  tokens,
ParseMode  mode 
) const

parse a command line

tokenscommand line
modeparser mode, must be ParseMode::ONE_SHOT, other modes are not implemented
NoSuchCommandErrorcommand not found
CommandDefinition::Errorcommand arguments are invalid
noun, verb, arguments, execute function

Definition at line 111 of file command-parser.cpp.