From 01bbc3d915e4b05d3df2b2a850a98341f2138bfb Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 2 Apr 2016 14:09:10 -0400 Subject: [PATCH] CLI: Added ::add --- src/CLI.cpp | 12 ++++++++++++ src/CLI.h | 3 +++ 2 files changed, 15 insertions(+) diff --git a/src/CLI.cpp b/src/CLI.cpp index 90f6751d..8be1a5bf 100644 --- a/src/CLI.cpp +++ b/src/CLI.cpp @@ -92,6 +92,18 @@ void CLI::entity (const std::string& category, const std::string& name) _entities.insert (std::pair (category, name)); } +//////////////////////////////////////////////////////////////////////////////// +// Capture a single argument. +void CLI::add (const std::string& argument) +{ + A2 arg (Lexer::trim (argument), Lexer::Type::word); + arg.tag ("ORIGINAL"); + _original_args.push_back (arg); + + // Adding a new argument invalidates prior analysis. + _args.clear (); +} + //////////////////////////////////////////////////////////////////////////////// // Search for 'value' in _entities category, return canonicalized value. bool CLI::canonicalize ( diff --git a/src/CLI.h b/src/CLI.h index 6ac44b2a..7b431201 100644 --- a/src/CLI.h +++ b/src/CLI.h @@ -55,10 +55,13 @@ class CLI public: CLI () = default; void entity (const std::string&, const std::string&); + void add (const std::string&); bool canonicalize (std::string&, const std::string&, const std::string&) const; public: std::multimap _entities {}; + std::vector _original_args {}; + std::vector _args {}; }; #endif