bool parse_body(FILE * input, PhraseLargeTable3 * phrase_table, FacadePhraseIndex * phrase_index, KMixtureModelBigram * bigram){ taglib_push_state(); assert(taglib_add_tag(END_LINE, "\\end", 0, "", "")); assert(taglib_add_tag(GRAM_1_LINE, "\\1-gram", 0, "", "")); assert(taglib_add_tag(GRAM_2_LINE, "\\2-gram", 0, "", "")); do { retry: assert(taglib_read(linebuf, line_type, values, required)); switch(line_type) { case END_LINE: goto end; case GRAM_1_LINE: my_getline(input); parse_unigram(input, phrase_table, phrase_index, bigram); goto retry; case GRAM_2_LINE: my_getline(input); parse_bigram(input, phrase_table, phrase_index, bigram); goto retry; default: assert(false); } } while (my_getline(input) != -1) ; end: taglib_pop_state(); return true; }
bool parse_body(FILE * input, FILE * output){ taglib_push_state(); assert(taglib_add_tag(END_LINE, "\\end", 0, "", "")); assert(taglib_add_tag(GRAM_1_LINE, "\\1-gram", 0, "", "")); assert(taglib_add_tag(GRAM_2_LINE, "\\2-gram", 0, "", "")); do { retry: assert(taglib_read(linebuf, line_type, values, required)); switch(line_type) { case END_LINE: fprintf(output, "\\end\n"); goto end; case GRAM_1_LINE: fprintf(output, "\\1-gram\n"); my_getline(input); parse_unigram(input, output); goto retry; case GRAM_2_LINE: fprintf(output, "\\2-gram\n"); my_getline(input); parse_bigram(input, output); goto retry; default: assert(false); } } while (my_getline(input) != -1); end: taglib_pop_state(); return true; }