00001 #ifndef __SOURCEREADER__
00002 #define __SOURCEREADER__
00003
00004 #include "boxes.hh"
00005 #include <string>
00006 #include <set>
00007 #include <vector>
00008
00009 using namespace std;
00010
00011 Tree formatDefinitions(Tree rldef);
00012 Tree checkRulelist (Tree lrules);
00013 void declareMetadata(Tree key, Tree value);
00014 void declareDoc(Tree t);
00015
00016 class SourceReader
00017 {
00018 map<string, Tree> fFileCache;
00019 vector<string> fFilePathnames;
00020 Tree parse(string fname);
00021 Tree expandrec(Tree ldef, set<string>& visited, Tree lresult);
00022
00023 public:
00024 bool cached(string fname);
00025 Tree getlist(string fname);
00026 Tree expandlist(Tree ldef);
00027 vector<string> listSrcFiles();
00028 };
00029
00030
00031 #endif