// $Id$ // // Copyright (C) 2008 // Fraunhofer Institute for Open Communication Systems (FOKUS) // Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the // Free Software Foundation, Inc., // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. /** \file \brief Parse inline non-template implementation */ // We do NOT want to include the complete parser definition into every other compilation unit // (disabled) #include "Parse.ih" // Custom includes #include "../Utils/senfassert.hh" #define prefix_ inline ///////////////////////////////cci.p/////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// // senf::console::ArgumentToken prefix_ std::string const & senf::console::ArgumentToken::value() const { return token_; } prefix_ senf::console::ArgumentToken::ArgumentToken(std::string token) : token_ (token) {} /////////////////////////////////////////////////////////////////////////// // senf::console::ParseCommandInfo prefix_ std::string const & senf::console::ParseCommandInfo::commandPath() const { return commandPath_; } prefix_ senf::console::ParseCommandInfo::size_type senf::console::ParseCommandInfo::arguments() const { return arguments_.size(); } prefix_ senf::console::ParseCommandInfo::argument_iterator senf::console::ParseCommandInfo::begin_arguments() const { return arguments_.begin(); } prefix_ senf::console::ParseCommandInfo::argument_iterator senf::console::ParseCommandInfo::end_arguments() 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(); } //////////////////////////////////////// // private members prefix_ void senf::console::ParseCommandInfo::init() { commandPath_ = ""; tokens_.clear(); arguments_.clear(); tempArguments_.clear(); } prefix_ void senf::console::ParseCommandInfo::setCommand(std::string const & commandPath) { commandPath_ = commandPath; } prefix_ void senf::console::ParseCommandInfo::startArgument() { tempArguments_.push_back( TempArgumentRange( tokens_.size(), tokens_.size() ) ); } prefix_ void senf::console::ParseCommandInfo::endArgument() { tempArguments_.back().second = tokens_.size(); } prefix_ void senf::console::ParseCommandInfo::addToken(ArgumentToken const & token) { tokens_.push_back(token); } /////////////////////////////////////////////////////////////////////////// // senf::console::SingleCommandParser prefix_ senf::console::SingleCommandParser::Impl & senf::console::SingleCommandParser::impl() { SENF_ASSERT(impl_); return *impl_; } ///////////////////////////////cci.e/////////////////////////////////////// #undef prefix_ // Local Variables: // mode: c++ // fill-column: 100 // comment-column: 40 // c-file-style: "senf" // indent-tabs-mode: nil // ispell-local-dictionary: "american" // compile-command: "scons -u test" // End: