38 static char rcsid[] not_used =
46 #include "Error.tab.hh" 49 void test_parser(Error &err);
51 void test_object(Error &err);
58 extern YYSTYPE Errorlval;
59 extern int Errordebug;
60 const char *prompt =
"error-test: ";
67 main(
int argc,
char *argv[])
70 GetOpt getopt(argc, argv,
"spd");
72 GetOpt getopt(argc, argv,
"spdo");
75 bool scanner_test =
false, parser_test =
false, object_test =
false;
79 while ((option_char = getopt()) != EOF)
80 switch (option_char) {
92 parser_test = object_test =
true;
101 if (!(scanner_test || parser_test))
103 if (!(scanner_test || parser_test || object_test))
129 fprintf(stderr,
"usage: error-test: [d][sp] < filename ...\n") ;
131 fprintf(stderr,
"usage: error-test: [d][spo] < filename ...\n") ;
133 fprintf(stderr,
" d: extra parser debugging information\n") ;
134 fprintf(stderr,
" s: run the scanner\n") ;
135 fprintf(stderr,
" p: run the parser\n") ;
137 fprintf(stderr,
" o: evaluate the object, runs the parser\n") ;
146 fprintf(stdout,
"%s", prompt) ;
148 while ((tok = Errorlex())) {
151 fprintf(stdout,
"ERROR\n") ;
154 fprintf(stdout,
"CODE\n") ;
157 fprintf(stdout,
"PTYPE\n") ;
160 fprintf(stdout,
"MSG\n") ;
163 fprintf(stdout,
"PROGRAM\n") ;
166 fprintf(stdout,
"%s\n", Errorlval.string) ;
169 fprintf(stdout,
"%d\n", Errorlval.integer) ;
172 fprintf(stdout,
"Left Brace\n") ;
175 fprintf(stdout,
"Right Brace\n") ;
178 fprintf(stdout,
"Semicolon\n") ;
181 fprintf(stdout,
"Assignment\n") ;
184 fprintf(stdout,
"Error: Unrecognized input\n") ;
186 fprintf(stdout,
"%s", prompt) ;
192 test_parser(Error &err)
194 int status = err.parse(stdin);
195 fprintf(stdout,
"Status from parser: %d\n", status) ;
198 fprintf(stdout,
"Error passed OK check\n") ;
200 fprintf(stdout,
"Error failed OK check\n") ;