00001 #ifndef TOKENSOURCE_H_
00002 #define TOKENSOURCE_H_
00003
00004 #include <string>
00005 #include <list>
00006 #include "lexer.h"
00007
00008
00009 class Token;
00010
00011
00012 typedef std::list<Token>::iterator TokenIterator;
00013
00014
00018 class TokenSource
00019 {
00020 private:
00021 int sourceType;
00022 std::list<Token> tokenList;
00023
00024 public:
00032 TokenSource();
00040 ~TokenSource();
00041
00049 void setFileInput(std::string& fileName);
00057 TokenIterator getIterator();
00065 TokenIterator getEndIterator();
00066
00067 static void assertTokenType(int correctType,TokenIterator& curToken,char* errorStr);
00068 static void assertTokenNotEnd(TokenIterator& curToken);
00069 };
00070
00071
00072 #endif