X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Console%2FParse.cci;h=322fc44f6011e77c445067580c5e54de50f2d6fd;hb=feeec0e9cd78825120bd52f9ef4e115d383bf6a8;hp=04821013a69ee9a783a57d6810af0c08b39edd1d;hpb=d3607ce23b75abc46b387fccabe591c989f5daf0;p=senf.git diff --git a/Console/Parse.cci b/Console/Parse.cci index 0482101..322fc44 100644 --- a/Console/Parse.cci +++ b/Console/Parse.cci @@ -131,6 +131,10 @@ prefix_ senf::console::Token senf::console::WordToken(std::string const & value) /////////////////////////////////////////////////////////////////////////// // senf::console::ParseCommandInfo +prefix_ senf::console::ParseCommandInfo::ParseCommandInfo() + : builtin_ (NoBuiltin) +{} + prefix_ senf::console::ParseCommandInfo::BuiltinCommand senf::console::ParseCommandInfo::builtin() const @@ -159,26 +163,30 @@ prefix_ senf::console::ParseCommandInfo::TokensRange senf::console::ParseCommand return boost::make_iterator_range(tokens_.begin(), tokens_.end()); } -//////////////////////////////////////// -// private members - -prefix_ void senf::console::ParseCommandInfo::init() +prefix_ void senf::console::ParseCommandInfo::clear() { builtin_ = NoBuiltin; commandPath_.clear(); tokens_.clear(); } -prefix_ void senf::console::ParseCommandInfo::setBuiltin(BuiltinCommand builtin) +prefix_ bool senf::console::ParseCommandInfo::empty() +{ + return builtin_ == NoBuiltin && commandPath_.empty(); +} + +prefix_ void senf::console::ParseCommandInfo::builtin(BuiltinCommand builtin) { builtin_ = builtin; + commandPath_.clear(); } prefix_ void -senf::console::ParseCommandInfo::setCommand(std::vector & commandPath) +senf::console::ParseCommandInfo::command(std::vector & commandPath) { commandPath_.clear(); commandPath_.swap(commandPath); + builtin_ = NoBuiltin; } prefix_ void senf::console::ParseCommandInfo::addToken(Token const & token) @@ -221,6 +229,23 @@ prefix_ void senf::console::ParseCommandInfo::ArgumentIterator::increment() } /////////////////////////////////////////////////////////////////////////// +// senf::console::SyntaxErrorException + +prefix_ senf::console::SyntaxErrorException::SyntaxErrorException(std::string const & msg) + : message_(msg) +{} + +prefix_ senf::console::SyntaxErrorException::~SyntaxErrorException() + throw() +{} + +prefix_ std::string const & senf::console::SyntaxErrorException::message() + const +{ + return message_; +} + +/////////////////////////////////////////////////////////////////////////// prefix_ senf::console::CheckedArgumentIteratorWrapper:: CheckedArgumentIteratorWrapper(ParseCommandInfo::ArgumentsRange const & range,