home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / word2x0a.zip / source / rtest2.cc < prev    next >
C/C++ Source or Header  |  1997-04-13  |  2KB  |  106 lines

  1. /* $Id: rtest2.cc,v 1.8 1997/04/13 12:59:00 dps Exp $ */
  2. /* Reader test program */
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include "interface.h"
  7.  
  8. /* Dummy to just read the files out */
  9. void reader_test_raw(FILE *f)
  10. {
  11.     const char *s;
  12.     const tok_seq::tok *d;
  13.     tok_seq rd(f);
  14.     static const char null[]={ '\0' };
  15.  
  16.     while ((d=rd.read_token())!=NULL)
  17.     {
  18.  
  19.     printf((d->end==tok_seq::tok::TOK_START) ? "<" : "</");
  20.     if (d->tok!=T_TABLE)
  21.     {
  22.         s=(d->data.d==NULL) ? null : d->data.d;
  23.     }
  24.  
  25.     switch(d->tok)
  26.     {
  27.     case T_TABLE:
  28.         printf("TABLE %d x %d>\n", d->data.table.cols, d->data.table.rows);
  29.         break;
  30.  
  31.     case T_PARAGRAPH:
  32.         printf("PARAGRAPH>%s\n\n", s);
  33.         break;
  34.  
  35.     case T_FIELD:
  36.         printf("FIELD>%s", s);
  37.         break;
  38.  
  39.     case T_ROW:
  40.         printf("ROW>%s\n", s);
  41.         break;
  42.  
  43.     case T_SPEC:
  44.         printf("SPEC>%s", s);
  45.         break;
  46.  
  47.     case T_LIST:
  48.         printf("LIST>%s\n", s);
  49.         break;
  50.  
  51.     case T_ITEM:
  52.         printf("ITEM>%s\n", s);
  53.         break;
  54.         
  55.     case T_DOC:
  56.         printf("DOCUMENT>%s", s);
  57.         break;
  58.  
  59.     case T_CODE:
  60.         fputs("CODE ", stdout);
  61.         switch(*s)
  62.         {
  63.         case CH_PAGE:
  64.         fputs("page break", stdout);
  65.         break;
  66.  
  67.         case CH_FOOTNOTE:
  68.         fputs("footnote", stdout);
  69.         break;
  70.  
  71.         default:
  72.         printf("unexpected value %d", *s);
  73.         break;
  74.         }
  75.         puts(">");
  76.         break;
  77.  
  78.     case T_OTHER:
  79.         printf("OTHER>%s\n", s);
  80.         break;
  81.  
  82.     default:
  83.         printf("?>%s\n", s);
  84.         break;
  85.     }
  86.     fflush(stdout);
  87.     }
  88. }
  89.  
  90.  
  91. int main(int argc, const char **argv)
  92. {
  93.     FILE *f;
  94.  
  95.     argc=argc;
  96.     f=fopen(argv[1],"r");
  97.     if (f==NULL)
  98.     {
  99.     fprintf(stderr,"%s not found\n", argv[1]);
  100.     exit(1);
  101.     }
  102.     reader_test_raw(f);
  103.     return 0;
  104. }
  105.  
  106.