/* [<][>][^][v][top][bottom][index][help] */
#ifndef PARSER_H
#define PARSER_H
#include <iostream>
#include <string>
#include <vector>
using namespace std;
namespace SWF {
class Parser {
        public:
                Parser(const char begin, const char end, const char parameter = 0);
                virtual ~Parser();
                
        protected:
                virtual void handleData(const string& outside, const vector<string>& inside) = 0;
                void doParse(const char* str);
                void trimString(string& s);                     
                
        private:
                void handleDelimiter(string& tmp);
                void swapDelimiters();
                bool isWhitespace(const char c);
                                
                char expectedDelimiter;
                char otherDelimiter;
                char parameterDelimiter;
                bool insideParams;
                vector<string> params;
                string outside;
};
}
#endif