From 22765a70cb4317f7a035a4ea816b8bc51363d915 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 13 Jun 2015 13:57:53 -0400 Subject: [PATCH] CLI2: Entity capture. - CLI2::entity now captures all the known entities, duplicating the processing in Context for now. --- src/CLI2.cpp | 4 +++- src/CLI2.h | 4 ++++ src/Context.cpp | 20 ++++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/CLI2.cpp b/src/CLI2.cpp index 648b2d776..fedff7923 100644 --- a/src/CLI2.cpp +++ b/src/CLI2.cpp @@ -26,7 +26,7 @@ #include //#include -//#include +#include #include //#include //#include @@ -317,6 +317,7 @@ void CLI2::alias (const std::string& name, const std::string& value) { _aliases.insert (std::pair (name, value)); } +*/ //////////////////////////////////////////////////////////////////////////////// void CLI2::entity (const std::string& category, const std::string& name) @@ -331,6 +332,7 @@ void CLI2::entity (const std::string& category, const std::string& name) _entities.insert (std::pair (category, name)); } +/* //////////////////////////////////////////////////////////////////////////////// // Capture the original, intact command line arguments. void CLI2::initialize (int argc, const char** argv) diff --git a/src/CLI2.h b/src/CLI2.h index 25e569e04..3c4fb0fc7 100644 --- a/src/CLI2.h +++ b/src/CLI2.h @@ -79,7 +79,9 @@ public: ~CLI2 (); /* void alias (const std::string&, const std::string&); +*/ void entity (const std::string&, const std::string&); +/* void initialize (int, const char**); void add (const std::string&); void addContextFilter (); @@ -138,9 +140,11 @@ private: bool disqualifyOnlyParenOps (const std::vector >&) const; bool disqualifyFirstLastBinary (const std::vector >&) const; bool disqualifySugarFree (const std::vector >&) const; +*/ public: std::multimap _entities; +/* std::map _aliases; std::vector _original_args; std::vector _args; diff --git a/src/Context.cpp b/src/Context.cpp index cd8bcdee2..5a3eb24b1 100644 --- a/src/Context.cpp +++ b/src/Context.cpp @@ -155,6 +155,12 @@ int Context::initialize (int argc, const char** argv) Command::factory (commands); for (auto& cmd : commands) { + cli2.entity ("cmd", cmd.first); + cli2.entity ((cmd.second->read_only () ? "readcmd" : "writecmd"), cmd.first); + + if (cmd.first[0] == '_') + cli2.entity ("helper", cmd.first); + cli.entity ("cmd", cmd.first); cli.entity ((cmd.second->read_only () ? "readcmd" : "writecmd"), cmd.first); @@ -169,6 +175,11 @@ int Context::initialize (int argc, const char** argv) //////////////////////////////////////////////////////////////////////////// Column::factory (columns); + for (auto& col : columns) + cli2.entity ("attribute", col.first); + + cli2.entity ("pseudo", "limit"); + for (auto& col : columns) cli.entity ("attribute", col.first); @@ -180,6 +191,15 @@ int Context::initialize (int argc, const char** argv) // //////////////////////////////////////////////////////////////////////////// + for (unsigned int i = 0; i < NUM_MODIFIER_NAMES; ++i) + cli2.entity ("modifier", modifierNames[i]); + + for (auto& op : Eval::getOperators ()) + cli2.entity ("operator", op); + + for (auto& op : Eval::getBinaryOperators ()) + cli2.entity ("binary_operator", op); + for (unsigned int i = 0; i < NUM_MODIFIER_NAMES; ++i) cli.entity ("modifier", modifierNames[i]);