class PARSE_TEST is
   -- Test the parser out.

   main(arg: ARRAY{STR}) is
      if arg.size < 2 then #OUT + "Usage: " + arg[0] + " [-pSather] <files>\n" end;
      #OUT + "Sather/pSather 1.0 parser - 9 Aug 94\n";
      pSather: BOOL; i: INT;
      if (arg.size > 1) and (arg[1] = "-pSather") then pSather := true; i := 2
      else pSather := false; i := 1
      end;
      p ::= PROG::create;
      t ::= p.parse;
      parse:PARSE;
      typecase t 
      when PARSE then parse := t;
      end;
      loop while!(i < arg.size);
         parser ::= PARSER::create(p, arg[i], pSather, parse.convert_files.test(arg[i]), parse.version_1_0);
         if ~void(parser) then
            #OUT + "In file " + arg[i] + ":\n";
            tcd: AS_CLASS_DEF := parser.source_file;
            #OUT + "\n";
            loop until!(void(tcd));
               #OUT + ' ' + tcd.name.str + '\n';
               tcd := tcd.next
            end
         end;
         #OUT + "\n\n";
         i := i+1
      end
   end

end; -- PARSE
   
