senfscons: Implement COMPILE_FAILS tests
[senf.git] / Console / OverloadedCommand.cci
index ea87c2d..4892e53 100644 (file)
 prefix_ senf::console::CommandOverload::~CommandOverload()
 {}
 
+prefix_ void senf::console::CommandOverload::execute(std::ostream & os,
+                                                     ParseCommandInfo const & command)
+{
+    v_execute(os, command);
+}
+
 prefix_ void senf::console::CommandOverload::operator()(std::ostream & os,
-                                                        Arguments const & arguments)
+                                                        ParseCommandInfo const & command)
+{
+    execute(os, command);
+}
+
+prefix_ unsigned senf::console::CommandOverload::numArguments()
+    const
+{
+    return v_numArguments();
+}
+
+prefix_ void senf::console::CommandOverload::argumentDoc(unsigned index, ArgumentDoc & doc)
+    const
 {
-    v_execute(os, arguments);
+    return v_argumentDoc(index,doc);
 }
 
-prefix_ void senf::console::CommandOverload::help(std::ostream & os)
+prefix_ std::string senf::console::CommandOverload::doc()
+    const
 {
-    v_help(os);
+    return v_doc();
 }
 
 prefix_ senf::console::OverloadedCommandNode & senf::console::CommandOverload::node()
+    const
 {
     SENF_ASSERT( node_ );
     return *node_;
 }
 
+prefix_ unsigned senf::console::CommandOverload::overloadIndex()
+    const
+{
+    return node().overloadIndex(*this);
+}
+
 prefix_ senf::console::CommandOverload::CommandOverload()
     : node_(0)
 {}
@@ -83,6 +109,13 @@ senf::console::OverloadedCommandNode::doc(std::string const & doc)
     return *this;
 }
 
+prefix_ unsigned
+senf::console::OverloadedCommandNode::overloadIndex(CommandOverload const & overload)
+{
+    return find(overloads_.begin(), overloads_.end(), CommandOverload::cptr(&overload)) 
+        - overloads_.begin() + 1;
+}
+
 prefix_ senf::console::OverloadedCommandNode::OverloadedCommandNode()
 {}