00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00026 #include "ParsedCommand.ih"
00027
00028
00029
00030 #define prefix_ inline
00031
00032
00033
00034
00035
00036 prefix_ senf::console::detail::ArgumentInfoBase::ArgumentInfoBase(std::string const & type_,
00037 bool singleToken_)
00038 : type (type_), name (), hasDefault (false), singleToken (singleToken_)
00039 {}
00040
00041
00042
00043
00044 prefix_ senf::console::ParsedCommandOverloadBase::ParsedCommandOverloadBase()
00045 {}
00046
00047 prefix_ senf::console::detail::ArgumentInfoBase &
00048 senf::console::ParsedCommandOverloadBase::arg(unsigned n)
00049 const
00050 {
00051 BOOST_ASSERT(n < parameters_.size());
00052 return * parameters_[n];
00053 }
00054
00055 prefix_ void senf::console::ParsedCommandOverloadBase::doc(std::string const & d)
00056 {
00057 doc_ = d;
00058 }
00059
00060
00061
00062
00063 prefix_ senf::console::OverloadedCommandNode &
00064 senf::console::ParsedCommandAttributorBase::create(DirectoryNode & dir,
00065 std::string const & name)
00066 const
00067 {
00068 OverloadedCommandNode & node (OverloadedCommandNode::insertOverload(dir, name, overload_));
00069 if (doc_) node.doc(*doc_);
00070 if (shortdoc_) node.shortdoc(*shortdoc_);
00071 return node;
00072 }
00073
00074 prefix_ senf::console::ParsedCommandAttributorBase::
00075 ParsedCommandAttributorBase(ParsedCommandOverloadBase::ptr overload, unsigned index)
00076 : overload_ (overload), index_ (index)
00077 {}
00078
00079 prefix_ senf::console::ParsedCommandAttributorBase::
00080 ParsedCommandAttributorBase(ParsedCommandAttributorBase const & other, unsigned index)
00081 : overload_ (other.overload_), index_ (index), doc_ (other.doc_), shortdoc_ (other.shortdoc_)
00082 {}
00083
00084 prefix_ senf::console::ParsedCommandOverloadBase &
00085 senf::console::ParsedCommandAttributorBase::overload()
00086 const
00087 {
00088 return *overload_;
00089 }
00090
00091 prefix_ void senf::console::ParsedCommandAttributorBase::argName(std::string const & name)
00092 {
00093 overload().arg(index_).name = name;
00094 }
00095
00096 prefix_ void senf::console::ParsedCommandAttributorBase::argDoc(std::string const & doc)
00097 {
00098 overload().arg(index_).doc = doc;
00099 }
00100
00101 prefix_ void senf::console::ParsedCommandAttributorBase::typeName(std::string const & doc)
00102 {
00103 overload().arg(index_).type = doc;
00104 }
00105
00106 prefix_ void senf::console::ParsedCommandAttributorBase::defaultDoc(std::string const & doc)
00107 {
00108 overload().arg(index_).defaultDoc = doc;
00109 }
00110
00111 prefix_ void senf::console::ParsedCommandAttributorBase::overloadDoc(std::string const & doc)
00112 {
00113 overload().doc(doc);
00114 }
00115
00116 prefix_ void senf::console::ParsedCommandAttributorBase::nodeDoc(std::string const & doc)
00117 {
00118 doc_ = doc;
00119 }
00120
00121 prefix_ void senf::console::ParsedCommandAttributorBase::shortDoc(std::string const & doc)
00122 {
00123 shortdoc_ = doc;
00124 }
00125
00126
00127 #undef prefix_
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138