diff --git a/src/CLI.cpp b/src/CLI.cpp index 04523405f..893b40c51 100644 --- a/src/CLI.cpp +++ b/src/CLI.cpp @@ -666,7 +666,8 @@ void CLI::addArg (const std::string& arg) if (disqualifyInsufficientTerms (lexemes) || disqualifyNoOps (lexemes) || - disqualifyOnlyParenOps (lexemes)) + disqualifyOnlyParenOps (lexemes) || + disqualifyFirstLastBinary (lexemes)) { _original_args.push_back (raw); } @@ -2370,4 +2371,20 @@ bool CLI::disqualifyOnlyParenOps ( return opCount == opParenCount; } + +//////////////////////////////////////////////////////////////////////////////// +bool CLI::disqualifyFirstLastBinary ( + const std::vector >& lexemes) const +{ + std::string dummy; + if (canonicalize (dummy, "binary_operator", lexemes[0].first)) + return true; + + if (lexemes.size () > 1 && + canonicalize (dummy, "binary_operator", lexemes[lexemes.size () - 1].first)) + return true; + + return false; +} + //////////////////////////////////////////////////////////////////////////////// diff --git a/src/CLI.h b/src/CLI.h index 51a9aa45f..1265b6862 100644 --- a/src/CLI.h +++ b/src/CLI.h @@ -129,6 +129,7 @@ private: bool disqualifyInsufficientTerms (const std::vector >&) const; bool disqualifyNoOps (const std::vector >&) const; bool disqualifyOnlyParenOps (const std::vector >&) const; + bool disqualifyFirstLastBinary (const std::vector >&) const; public: std::multimap _entities;