AmpGen 2.1
Loading...
Searching...
No Matches
OptionsParser.h
Go to the documentation of this file.
1#ifndef AMPGEN_OPTIONSPARSER_H
2#define AMPGEN_OPTIONSPARSER_H
3
4#include <iostream>
5#include <vector>
6#include <map>
7#include <string>
8#include <utility>
9#include <functional>
10
11namespace AmpGen
12{
13
14 class OptionsParser
15 {
16 public:
17 typedef std::map<std::string, std::vector<std::string>>::const_iterator const_iterator;
18 typedef std::map<std::string, std::vector<std::string>>::iterator iterator;
19
20 static OptionsParser* getMe();
21 static bool printHelp();
22 static void setArgs( int argc, char** argv, const std::string& description="" );
23 static void setArg( const std::string& arg );
24 void setQuiet();
25 void addArg( const std::string& arg );
26 void setCommandLineArgs( int argc, char** argv, const std::string& description ="");
27 void import( const std::string& fName );
28 iterator find( const std::string& name );
33 std::vector<std::vector<std::string>> getInputOrdered() const;
34 private:
35 struct AllowedArgument {
36 std::string m_name;
37 std::string m_helpString;
38 };
39 std::vector<std::string> m_allowedArguments;
40 std::vector<std::string> m_orderedKeys;
41 std::map<std::string, std::vector<std::string>> m_parsedLines;
42 std::map<std::string, std::function<void(std::vector<std::string>)> > m_keywords;
43 bool m_printHelp = {false};
44 bool m_quiet = {false};
45 static OptionsParser* gOptionsParser;
46
47 OptionsParser();
48 bool ignoreThisLine( const std::string& line );
49 void readStream( std::istream& is );
50 std::vector<std::string> makeParsedStrings( const std::string& line, int& braceDepth ) const;
51 void addArg(const std::vector<std::string>& tokens );
52
53 };
54} // namespace AmpGen
55#endif
static OptionsParser * getMe()
std::map< std::string, std::vector< std::string > >::iterator iterator
iterator find(const std::string &name)
std::vector< std::vector< std::string > > getInputOrdered() const
std::map< std::string, std::vector< std::string > >::const_iterator const_iterator
static bool printHelp()
const_iterator end() const
const_iterator begin() const
static void setArg(const std::string &arg)
static void setArgs(int argc, char **argv, const std::string &description="")
void addArg(const std::string &arg)
void setCommandLineArgs(int argc, char **argv, const std::string &description="")
bool is(const Expression &expression)
Definition Expression.h:494