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