/* $Id: rtest2.cc,v 1.8 1997/04/13 12:59:00 dps Exp $ */ /* Reader test program */ #include #include #include #include "strip.h" #include "interface.h" /* Dummy to just read the files out */ void reader_test_raw(istream *f) { const char *s; const tok_seq::tok *d; tok_seq rd(f); static const char null[]={ '\0' }; while ((d=rd.read_token())!=NULL) { printf((d->end==tok_seq::tok::TOK_START) ? "<" : "tokval!=T_TABLE) { s=(d->data.d==NULL) ? null : d->data.d; } switch(d->tokval) { case T_TABLE: printf("TABLE %d x %d>\n", d->data.table.cols, d->data.table.rows); break; case T_PARAGRAPH: printf("PARAGRAPH>%s\n\n", s); break; case T_FIELD: printf("FIELD>%s", s); break; case T_ROW: printf("ROW>%s\n", s); break; case T_SPEC: printf("SPEC>%s", s); break; case T_LIST: printf("LIST>%s\n", s); break; case T_ITEM: printf("ITEM>%s\n", s); break; case T_DOC: printf("DOCUMENT>%s", s); break; case T_CODE: fputs("CODE ", stdout); switch(*s) { case CH_PAGE: fputs("page break", stdout); break; case CH_FOOTNOTE: fputs("footnote", stdout); break; default: printf("unexpected value %d", *s); break; } puts(">"); break; case T_OTHER: printf("OTHER>%s\n", s); break; default: printf("?>%s\n", s); break; } fflush(stdout); } } int main(int argc, const char **argv) { FILE *f; argc=argc; f=fopen(argv[1],"r"); if (f==NULL) { fprintf(stderr,"%s not found\n", argv[1]); exit(1); } else { fclose(f); word_junk_filter filt(argv[1]); istream in(&filt); reader_test_raw(&in); } return 0; }