//================== // Load DFA grammar //================== bool cJulius::loadGrammar( WORD_INFO *winfo, DFA_INFO *dfa, char *dictfile, char *dfafile, RecogProcess *r ) { boolean ret; if ( ! m_recog ) return false; // load grammar switch( r->lmvar ) { case LM_DFA_WORD: ret = init_wordlist(winfo, dictfile, r->lm->am->hmminfo, r->lm->config->wordrecog_head_silence_model_name, r->lm->config->wordrecog_tail_silence_model_name, (r->lm->config->wordrecog_silence_context_name[0] == '\0') ? NULL : r->lm->config->wordrecog_silence_context_name, r->lm->config->forcedict_flag); if (ret == FALSE) { return false; } break; case LM_DFA_GRAMMAR: ret = init_voca(winfo, dictfile, r->lm->am->hmminfo, FALSE, r->lm->config->forcedict_flag); if (ret == FALSE) { return false; } ret = init_dfa(dfa, dfafile); if (ret == FALSE) { return false; } break; } return true; }
int main(int argc, const char* argv[]) { // Call the various initialisation functions for safe garbage collection init_dfa(); init_sslparser(); init_basicblock(); return Boomerang::get()->commandLine(argc, argv); }
int main(int argc, char *argv[]) { init_dfa(); init_sslparser(); init_basicblock(); QApplication app(argc, argv); MainWindow mainWindow; mainWindow.show(); return app.exec(); }
int main(int argc, char *argv[]) { int i, len; char *prefix = NULL; char *dfafile, *dictfile, *termfile; int gnum = 10; char *spname_default = SPNAME_DEF; char *spname = NULL; #define NEXTARG (++i >= argc) ? (char *)usage(argv[0]) : argv[i] /* argument */ for(i=1;i<argc;i++) { if (argv[i][0] == '-') { switch(argv[i][1]) { case 'v': /* verbose output */ verbose_flag = TRUE; gnum = 1; break; case 't': /* terminal mode */ term_mode = TRUE; break; case 'n': gnum = atoi(NEXTARG); break; case 's': if (++i >= argc) { usage(argv[0]); } spname = argv[i]; break; default: fprintf(stderr, "no such option: %s\n",argv[i]); usage(argv[0]); } } else { prefix = argv[i]; } } if (prefix == NULL) usage(argv[0]); if (spname == NULL) spname = spname_default; len = strlen(prefix) + 10; dfafile = (char *)mymalloc(len); dictfile = (char *)mymalloc(len); termfile = (char *)mymalloc(len); strcpy(dfafile, prefix); strcat(dfafile, ".dfa"); strcpy(dictfile, prefix); strcat(dictfile, ".dict"); strcpy(termfile, prefix); strcat(termfile, ".term"); /* start init */ winfo = word_info_new(); init_voca(winfo, dictfile, NULL, TRUE, FALSE); dfa = dfa_info_new(); init_dfa(dfa, dfafile); make_dfa_voca_ref(dfa, winfo); termname = (char **)mymalloc(sizeof(char *) * dfa->term_num); init_term(termfile, termname); if (termname[0] == NULL) { /* no .term file */ no_term_file = TRUE; } else { no_term_file = FALSE; } /* output info */ put_dfainfo(); /* set dfa->sp_id and dfa->is_sp[cid] from name "sp" */ { int t, i; WORD_ID w; dfa->sp_id = WORD_INVALID; dfa->is_sp = (boolean *)mymalloc(sizeof(boolean) * dfa->term_num); for(t=0;t<dfa->term_num;t++) { dfa->is_sp[t] = FALSE; for(i=0;i<dfa->term.wnum[t]; i++) { w = dfa->term.tw[t][i]; if (strcmp(winfo->woutput[w], spname) == 0) { if (dfa->sp_id == WORD_INVALID) dfa->sp_id = w; dfa->is_sp[t] = TRUE; break; } } } } if (verbose_flag) { if (dfa->sp_id != WORD_INVALID) { printf("skippable word for NOISE: %s\t%s\n", winfo->wname[dfa->sp_id], winfo->woutput[dfa->sp_id]); } } printf("----- \n"); /* random seed */ srand(getpid()); /* main loop */ generate_main(gnum); free(dfafile); free(dictfile); return 0; }
/* * 获得一个dfa */ struct t_dfa *make_dfa(void) { struct t_dfa *pd = (struct t_dfa *)malloc(sizeof(struct t_dfa)); init_dfa(pd); return pd; }