Added comments
This commit is contained in:
@ -34,21 +34,25 @@ namespace fsh {
|
||||
bool extends; //Not implemented
|
||||
};
|
||||
|
||||
// Dodavanje argumenta koji sluzi za ulaz
|
||||
void add_input_rule() {
|
||||
has_input = true;
|
||||
pos_arg_rules.push_back({ &_Argument::create<ArgInput>, false, false });
|
||||
}
|
||||
|
||||
// Dodavanje pozicionog argumenta sa automatskim prebacivanjem
|
||||
template <typename T>
|
||||
void add_rule(bool mandatory, bool extends = false) {
|
||||
pos_arg_rules.push_back({ &_Argument::create<Argument<T> >, mandatory, extends });
|
||||
}
|
||||
|
||||
// Dodavanje pravila za flag (sa mogucnoscu da se pokupi argument priljepljen npr. -n<count>)
|
||||
template <typename T = bool>
|
||||
void add_rule(const std::string name, bool capturing = false) {
|
||||
flag_rules[name] = { _Argument::create<Argument<T> >, false, capturing, false };
|
||||
}
|
||||
|
||||
// Popunjava ArgManager (Mozda bolji naziv bi bio populate?)
|
||||
void parse(ArgManager& manager, ArgNodes& vec, FlagNode flag);
|
||||
|
||||
bool ghas_input() { return has_input; }
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
|
||||
namespace fsh {
|
||||
|
||||
// Ovaj singleton odrzava podatke o komanadama
|
||||
class CommandRegistry {
|
||||
public:
|
||||
static CommandRegistry& instance() {
|
||||
@ -27,6 +28,7 @@ namespace fsh {
|
||||
Command& operator[](const std::string n) { return get(n); }
|
||||
|
||||
private:
|
||||
// Nove komande bi registrovali ovde:
|
||||
CommandRegistry() {
|
||||
cmds["wc"] = Command::register_cmd<CmdWc>();
|
||||
cmds["date"] = Command::register_cmd<CmdDate>();
|
||||
@ -40,4 +42,4 @@ namespace fsh {
|
||||
std::unordered_map<std::string, std::unique_ptr<Command> > cmds;
|
||||
};
|
||||
|
||||
} // namespace fsh
|
||||
}
|
||||
@ -27,7 +27,10 @@ namespace fsh {
|
||||
}
|
||||
|
||||
protected:
|
||||
// Register_flags se zove jednom pri registraciji komande i sluzi da u ArgFactory postavis
|
||||
// pravila za argumente i opcije
|
||||
virtual void register_flags() {};
|
||||
// Korisnik u ovoj funkciju implementira glavnu funkcionalnost komande
|
||||
virtual void run(std::istream& in, std::ostream& out, ArgManager& args) {};
|
||||
ArgFactory& get_factory() { return arg_factory; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user