00001 /* 00002 ** Copyright (C) 2000 Alan McIvor <alan@mcivor.gen.nz>, 00003 ** 2003 Guilhem Bonnefille <guilhem.bonnefille@laposte.net> 00004 ** 00005 ** This program is free software; you can redistribute it and/or modify 00006 ** it under the terms of the GNU General Public License as published by 00007 ** the Free Software Foundation; either version 2 of the License, or 00008 ** (at your option) any later version. 00009 ** 00010 ** This program is distributed in the hope that it will be useful, 00011 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 ** GNU General Public License for more details. 00014 ** 00015 ** You should have received a copy of the GNU General Public License 00016 ** along with this program; if not, write to the Free Software 00017 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00018 */ 00019 #ifndef COMMAND_H 00020 #define COMMAND_H 00021 00022 #include <string> 00023 #include <stdexcept> 00024 using namespace std; 00025 00031 class Command 00032 { 00033 public: 00037 typedef enum { 00038 STRICT, 00039 AT_LEAST 00040 } TypeArgs; 00041 00042 Command(const char *keyword, TypeArgs typeArgs, int nbArgs) 00043 : mKeyword(keyword), mTypeArgs(typeArgs), mNbArgs(nbArgs) 00044 {} 00045 virtual ~Command() throw() 00046 {} 00047 00048 private: 00049 std::string mKeyword; 00050 00051 TypeArgs mTypeArgs; 00052 00053 int mNbArgs; 00054 }; 00055 00056 #endif // COMMAND_H