60 lines
1.5 KiB
C
60 lines
1.5 KiB
C
// Copyright (c) 1993-1999 Microsoft Corporation
|
|
|
|
#include <stdlib.h>
|
|
#include "y1.h"
|
|
|
|
/*
|
|
* 12-Apr-83 (RBD) Add symbolic exit status
|
|
* Added s - switch. Please refer to ywstat.c for details on sswitch
|
|
*/
|
|
|
|
extern FILE * finput;
|
|
extern FILE * faction;
|
|
extern FILE * fdefine;
|
|
extern FILE * ftable;
|
|
extern FILE * ftemp;
|
|
extern FILE * foutput;
|
|
extern FILE *tokxlathdl; /* token xlation file,token index vs value*/
|
|
extern FILE *stgotohdl; /* state goto table file handle */
|
|
extern FILE *stexhdl; /* state vs expected construct handle */
|
|
|
|
void
|
|
main(argc,argv) int argc;
|
|
char *argv[];
|
|
|
|
{
|
|
|
|
tokxlathdl = stdout;/* token xlation file,token index vs value*/
|
|
stgotohdl = stdout; /* state goto table file handle */
|
|
stexhdl = stdout; /* state vs expected construct handle */
|
|
|
|
puts("Setup...");
|
|
setup(argc,argv); /* initialize and read productions */
|
|
puts("cpres ...");
|
|
tbitset = NWORDS(ntokens);
|
|
cpres(); /* make table of which productions yield a given nonterminal */
|
|
puts("cempty ...");
|
|
cempty(); /* make a table of which nonterminals can match the empty string */
|
|
puts("cpfir ...");
|
|
cpfir(); /* make a table of firsts of nonterminals */
|
|
puts("stagen ...");
|
|
stagen(); /* generate the states */
|
|
puts("output ...");
|
|
output(); /* write the states and the tables */
|
|
puts("go2out ...");
|
|
go2out();
|
|
puts("hideprod ...");
|
|
hideprod();
|
|
puts("summary ...");
|
|
summary();
|
|
puts("callopt ...");
|
|
callopt();
|
|
puts("others ...");
|
|
others();
|
|
puts("DONE !!!");
|
|
|
|
SSwitchExit();
|
|
|
|
exit(EX_SUC);
|
|
}
|