41 #include <sphinxbase/fsg_model.h>
46 static const arg_t defn[] = {
50 "Shows the usage of the tool"},
55 "Input grammar in jsgf format (required)"},
60 "Root rule name (optional)"},
65 "Output grammar in fsg format"},
70 "Output grammar in FSM format"},
75 "Output symtab for grammar in FSM format"},
80 "Compute grammar closure to speedup loading"},
82 { NULL, 0, NULL, NULL }
89 E_INFO(
"Usage: %s -jsgf <input.jsgf> -rule <rule name>\\\n", pgm);
90 E_INFOCONT(
"\t[-fsm yes/no] [-compile yes/no]\n");
97 get_fsg(
jsgf_t *grammar,
const char *name)
109 || (name && strlen(rule_name)-2 == strlen(name) &&
110 0 == strncmp(rule_name + 1, name, strlen(rule_name) - 2))) {
122 main(
int argc,
char *argv[])
128 if ((config =
cmd_ln_parse_r(NULL, defn, argc, argv, TRUE)) == NULL)
143 fsg_model_null_trans_closure(fsg, NULL);
151 fsg_model_writefile_fsm(fsg, outfile);
153 fsg_model_write_fsm(fsg, stdout);
155 fsg_model_writefile_symtab(fsg, symfile);
160 fsg_model_writefile(fsg, outfile);
162 fsg_model_write(fsg, stdout);
171 #if defined(_WIN32_WCE)
172 #pragma comment(linker,"/entry:mainWCRTStartup")
176 int wmain(int32 argc,
wchar_t *wargv[]) {
182 argv = malloc(argc*
sizeof(
char*));
183 for (i=0; i<argc; i++){
184 wlen = lstrlenW(wargv[i]);
185 len = wcstombs(NULL, wargv[i], wlen);
186 argv[i] = malloc(len+1);
187 wcstombs(argv[i], wargv[i], wlen);
191 return main(argc, argv);