47 #include "EST_SCFG_Chart.h"
52 static int scfg_parse_main(
int argc,
char **argv);
91 int main(
int argc,
char **argv)
94 scfg_parse_main(argc,argv);
100 static int scfg_parse_main(
int argc,
char **argv)
107 FILE *corpus,*output;
113 "Summary: Parse a corpus with a stochastic context free grammar\n"+
114 "-grammar <ifile> Grammar file, one rule per line.\n"+
115 "-corpus <ifile> Corpus file, one bracketed sentence per line.\n"+
116 "-brackets Output bracketing only.\n"+
117 "-o <ofile> Output file for parsed sentences.\n",
121 outfile = al.
val(
"-o");
129 rules = vload(al.
val(
"-grammar"),1);
134 cerr <<
"scfg_parse: no grammar specified" << endl;
140 if ((corpus = fopen(al.
val(
"-corpus"),
"r")) == NULL)
142 cerr <<
"scfg_parse: can't open corpus file \"" <<
143 al.
val(
"-corpus") <<
"\" for reading " << endl;
149 cerr <<
"scfg_parse: no corpus specified" << endl;
155 if ((output=fopen(al.
val(
"-o"),
"w")) == NULL)
157 cerr <<
"scfg_parse: can't open output file \"" <<
158 al.
val(
"-o") <<
"\" for writing " << endl;
167 for (i=0; ((s=lreadf(corpus)) != get_eof_val()); i++)
169 parse = scfg_parse(s,rules);
172 LISP bparse = scfg_bracketing_only(parse);
175 pprint_to_fd(output,bparse);
178 pprint_to_fd(output,parse);
183 if (output != stdout)
186 gc_unprotect(&parse);
187 gc_unprotect(&rules);