diff --git a/src/CLI2.cpp b/src/CLI2.cpp index d9b61259a..82920ea0b 100644 --- a/src/CLI2.cpp +++ b/src/CLI2.cpp @@ -52,9 +52,10 @@ A2::A2 () } */ //////////////////////////////////////////////////////////////////////////////// -A2::A2 (const std::string& name, const std::string& raw) +A2::A2 (const std::string& name, const std::string& raw, Lexer::Type lextype) { _name = name; + _lextype = lextype; attribute ("raw", raw); } @@ -344,10 +345,12 @@ void CLI2::add (const std::string& argument) // Intended to be called after ::add() to perform the final analysis. void CLI2::analyze () { + _args.clear (); + for (unsigned int i = 0; i < _original_args.size (); ++i) { std::string raw = _original_args[i]; - A a ("arg", raw); + A2 a ("arg", raw, Lexer::Type::word); /* a.tag ("ORIGINAL"); diff --git a/src/CLI2.h b/src/CLI2.h index f878f5d13..693b7b842 100644 --- a/src/CLI2.h +++ b/src/CLI2.h @@ -30,22 +30,22 @@ #include #include #include +*/ #include #include -*/ // Represents a single argument. class A2 { public: A2 (); - A2 (const std::string&, const std::string&); + A2 (const std::string&, const std::string&, Lexer::Type); /* - A (const std::string&, const int); - A (const std::string&, const double); - ~A (); - A (const A&); - A& operator= (const A&); + A2 (const std::string&, const int); + A2 (const std::string&, const double); + ~A2 (); + A2 (const A&); + A2& operator= (const A2&); bool hasTag (const std::string&) const; void tag (const std::string&); void unTag (const std::string&); @@ -61,6 +61,7 @@ public: */ public: std::string _name; + Lexer::Type _lextype; /* std::vector _tags; */ @@ -150,7 +151,7 @@ public: std::multimap _entities; std::map _aliases; std::vector _original_args; - std::vector _args; + std::vector _args; /* std::vector > _id_ranges;