From 5a220b91d02ec37493e3103ce2b8a5fcb6c2895c Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Thu, 8 Apr 2010 16:15:17 -0400 Subject: [PATCH] added Parser class and a parameter for it to parse_input() --- Parser.cc | 8 ++++++++ Parser.h | 23 +++++++++++++++++++++++ imbecile.cc | 4 +++- parse-input.cc | 5 +++-- parse-input.h | 6 ++++-- 5 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 Parser.cc create mode 100644 Parser.h diff --git a/Parser.cc b/Parser.cc new file mode 100644 index 0000000..41efa70 --- /dev/null +++ b/Parser.cc @@ -0,0 +1,8 @@ + +#include "Parser.h" + +using namespace std; + +Parser::Parser() +{ +} diff --git a/Parser.h b/Parser.h new file mode 100644 index 0000000..5687764 --- /dev/null +++ b/Parser.h @@ -0,0 +1,23 @@ + +#ifndef PARSER_H +#define PARSER_H + +#include + +#include "refptr/refptr.h" +#include "TokenDefinition.h" + +class Parser +{ + public: + Parser(); + void addTokenDefinition(refptr td) + { + m_tokens.push_back(td); + } + + protected: + std::vector< refptr< TokenDefinition > > m_tokens; +}; + +#endif diff --git a/imbecile.cc b/imbecile.cc index 3da448c..966b482 100644 --- a/imbecile.cc +++ b/imbecile.cc @@ -42,7 +42,9 @@ int main(int argc, char * argv[]) char * buff = new char[size]; ifs.read(buff, size); - parse_input(buff, size); + Parser p; + + parse_input(buff, size, p); ifs.close(); delete[] buff; diff --git a/parse-input.cc b/parse-input.cc index a6c4eff..37ad7ed 100644 --- a/parse-input.cc +++ b/parse-input.cc @@ -9,12 +9,13 @@ #include "parse-input.h" #include "TokenDefinition.h" +#include "Parser.h" using namespace std; enum Section{ none, tokens, rules }; -bool parse_input(char * buff, int size) +bool parse_input(char * buff, int size, Parser & parser) { pcre * empty; pcre * comment; @@ -130,7 +131,7 @@ bool parse_input(char * buff, int size) refptr td = new TokenDefinition(); if (td->create(name, definition, flags)) { - /* TODO: do something with td */ + parser.addTokenDefinition(td); } else { diff --git a/parse-input.h b/parse-input.h index dbf704a..ea37f03 100644 --- a/parse-input.h +++ b/parse-input.h @@ -3,8 +3,10 @@ #define PARSE_INPUT_H #include -#include "refptr/refptr.h" -bool parse_input(char * buff, int size); +#include "refptr/refptr.h" +#include "Parser.h" + +bool parse_input(char * buff, int size, Parser & parser); #endif