class lex_directory { char name[BUFSIZ]; char ext[8]; char wd[BUFSIZ]; char xd[BUFSIZ]; public: lex_directory(char* s, char* x = "") { strcpy(name,s); strcpy(ext,x); getwd(wd); chdir(s); getwd(xd); cerr << "CWD: " << xd << endl; } ~lex_directory() { chdir(wd); } istream* stream() { lex_file f( strip(name), ext ); return f.stream(); } void process(iter<term>* l) { (*l)(); } };