X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Console%2FParse.cci;h=c85fad85c1480e730860a742223d8d88eca45196;hb=16d94efc2159cba35fc44e5b26747ae0a2ab237b;hp=1a72abfb80b48887afbaa7693837228d75cf8035;hpb=327ff174bdc67db20c64d92c9a171abfa5443333;p=senf.git diff --git a/Console/Parse.cci b/Console/Parse.cci index 1a72abf..c85fad8 100644 --- a/Console/Parse.cci +++ b/Console/Parse.cci @@ -48,50 +48,31 @@ prefix_ senf::console::ArgumentToken::ArgumentToken(std::string token) /////////////////////////////////////////////////////////////////////////// // senf::console::ParseCommandInfo -prefix_ std::string const & senf::console::ParseCommandInfo::commandPath() +prefix_ senf::console::ParseCommandInfo::BuiltinCommand +senf::console::ParseCommandInfo::builtin() const { - return commandPath_; + return builtin_; } -prefix_ senf::console::ParseCommandInfo::size_type senf::console::ParseCommandInfo::arguments() +prefix_ senf::console::ParseCommandInfo::CommandPathRange +senf::console::ParseCommandInfo::commandPath() const { - return arguments_.size(); + return boost::make_iterator_range(commandPath_.begin(), commandPath_.end()); } -prefix_ senf::console::ParseCommandInfo::argument_iterator -senf::console::ParseCommandInfo::begin_arguments() +prefix_ senf::console::ParseCommandInfo::ArgumentsRange +senf::console::ParseCommandInfo::arguments() const { - return arguments_.begin(); + return boost::make_iterator_range(arguments_.begin(), arguments_.end()); } -prefix_ senf::console::ParseCommandInfo::argument_iterator -senf::console::ParseCommandInfo::end_arguments() +prefix_ senf::console::ParseCommandInfo::TokensRange senf::console::ParseCommandInfo::tokens() const { - return arguments_.end(); -} - -prefix_ senf::console::ParseCommandInfo::size_type senf::console::ParseCommandInfo::tokens() - const -{ - return tokens_.size(); -} - -prefix_ senf::console::ParseCommandInfo::token_iterator -senf::console::ParseCommandInfo::begin_tokens() - const -{ - return tokens_.begin(); -} - -prefix_ senf::console::ParseCommandInfo::token_iterator -senf::console::ParseCommandInfo::end_tokens() - const -{ - return tokens_.end(); + return boost::make_iterator_range(tokens_.begin(), tokens_.end()); } //////////////////////////////////////// @@ -99,15 +80,23 @@ senf::console::ParseCommandInfo::end_tokens() prefix_ void senf::console::ParseCommandInfo::init() { - commandPath_ = ""; + builtin_ = NoBuiltin; + commandPath_.clear(); tokens_.clear(); arguments_.clear(); tempArguments_.clear(); } -prefix_ void senf::console::ParseCommandInfo::setCommand(std::string const & commandPath) +prefix_ void senf::console::ParseCommandInfo::setBuiltin(BuiltinCommand builtin) +{ + builtin_ = builtin; +} + +prefix_ void +senf::console::ParseCommandInfo::setCommand(std::vector & commandPath) { - commandPath_ = commandPath; + commandPath_.clear(); + commandPath_.swap(commandPath); } prefix_ void senf::console::ParseCommandInfo::startArgument() @@ -128,7 +117,7 @@ prefix_ void senf::console::ParseCommandInfo::addToken(ArgumentToken const & tok /////////////////////////////////////////////////////////////////////////// // senf::console::SingleCommandParser -prefix_ senf::console::SingleCommandParser::Impl & senf::console::SingleCommandParser::impl() +prefix_ senf::console::CommandParser::Impl & senf::console::CommandParser::impl() { SENF_ASSERT(impl_); return *impl_;