OOStuBS - Technische Informatik II (TI-II)  2.4
parser.cc
gehe zur Dokumentation dieser Datei
1 #include <user/parser.h>
2 #include <common/null.h>
3 #include <object/kout.h>
4 #include <common/string.h>
5 
6 Parser::Parser(): mNum(0), mFinished(false){}
7 
8 void Parser::clear(){
9  for(unsigned int i=0;i<BUFFERSIZE;i++)
10  mBuffer[i]='\0';
11  mNum=0;
12  mFinished=false;
13 }
14 
15 bool Parser::feed(char c){
16  if(c=='\n')
17  return mFinished=true;
18 
19  if(!mFinished && mNum<BUFFERSIZE){
20  mBuffer[mNum++]=c;
21  return true;
22  }else
23  return false;
24 }
25 
27  if(mNum)
28  mNum--;
29 }
30 
31 bool Parser::finished() const{
32  return mFinished;
33 }
34 
35 Parser::Commands Parser::result(const char** arg) const{
36  *arg=NULL;
37  if(!mNum)
38  return unknown;
39  if(strncmp(mBuffer, "start", mNum)==0){
40  *arg=mBuffer+6;
41  return start;
42  }
43 
44  if(strncmp(mBuffer, "kill", mNum)==0){
45  *arg=mBuffer+5;
46  return kill;
47  }
48 
49  if(strncmp(mBuffer, "list", mNum)==0)
50  return list;
51 
52  if(strncmp(mBuffer, "help", mNum)==0)
53  return help;
54 
55  return unknown;
56 }
57 
59  o << " start <app name> : starts the given application" << endl;
60  o << " kill <app name> : stops the given application" << endl;
61  o << " list : list all available applications" << endl;
62  o << " help : output this help" << endl;
63  return o;
64 }