static void makeLinkage(per_thread_data *ptd) { if (ptd->cur_linkage < ptd->num_linkages) { if (ptd->linkage) linkage_delete(ptd->linkage); ptd->linkage = linkage_create(ptd->cur_linkage,ptd->sent,ptd->opts); linkage_compute_union(ptd->linkage); linkage_set_current_sublinkage(ptd->linkage, linkage_get_num_sublinkages(ptd->linkage)-1); #if DO_PHRASE_TREE if (tree) linkage_free_constituent_tree(tree); tree = linkage_constituent_tree(linkage); printTree(tree); #endif } }
void process_linkage(Linkage linkage, Parse_Options opts) { char * string; int j, mode, first_sublinkage; if (parse_options_get_display_union(opts)) { linkage_compute_union(linkage); first_sublinkage = linkage_get_num_sublinkages(linkage)-1; } else { first_sublinkage = 0; } for (j=first_sublinkage; j<linkage_get_num_sublinkages(linkage); ++j) { linkage_set_current_sublinkage(linkage, j); if (parse_options_get_display_on(opts)) { string = linkage_print_diagram(linkage); fprintf(stdout, "%s", string); string_delete(string); } if (parse_options_get_display_links(opts)) { string = linkage_print_links_and_domains(linkage); fprintf(stdout, "%s", string); string_delete(string); } if (parse_options_get_display_postscript(opts)) { string = linkage_print_postscript(linkage, FALSE); fprintf(stdout, "%s\n", string); string_delete(string); } } if ((mode=parse_options_get_display_constituents(opts))) { string = linkage_print_constituent_tree(linkage, mode); if (string != NULL) { fprintf(stdout, "%s\n", string); string_delete(string); } else { fprintf(stderr, "Can't generate constituents.\n"); fprintf(stderr, "Constituent processing has been turned off.\n"); } } }
static char * print_flat_constituents(con_context_t *ctxt, Linkage linkage) { int num_words; Sentence sent; Postprocessor * pp; int s, numcon_total, numcon_subl, num_subl; char * q; sent = linkage_get_sentence(linkage); ctxt->phrase_ss = string_set_create(); pp = linkage->sent->dict->constituent_pp; numcon_total = 0; count_words_used(ctxt, linkage); num_subl = linkage->num_sublinkages; if(num_subl > MAXSUBL) { num_subl=MAXSUBL; if(verbosity>=2) printf("Number of sublinkages exceeds maximum: only considering first %d sublinkages\n", MAXSUBL); } if(linkage->unionized==1 && num_subl>1) num_subl--; for (s=0; s<num_subl; s++) { linkage_set_current_sublinkage(linkage, s); linkage_post_process(linkage, pp); num_words = linkage_get_num_words(linkage); generate_misc_word_info(ctxt, linkage); numcon_subl = read_constituents_from_domains(ctxt, linkage, numcon_total, s); numcon_total = numcon_total + numcon_subl; } numcon_total = merge_constituents(ctxt, linkage, numcon_total); numcon_total = last_minute_fixes(ctxt, linkage, numcon_total); q = exprint_constituent_structure(ctxt, linkage, numcon_total); string_set_delete(ctxt->phrase_ss); ctxt->phrase_ss = NULL; return q; }
//############################################################################################## static void process_linkage(Linkage linkage, Parse_Options opts,char * tmp_path,char * file_name) //############################################################################################## { char * string; int j, mode, first_sublinkage; int nlink; if (!linkage) return; /* Can happen in timeout mode */ if (parse_options_get_display_union(opts)) { linkage_compute_union(linkage); first_sublinkage = linkage_get_num_sublinkages(linkage)-1; } else { first_sublinkage = 0; } nlink = linkage_get_num_sublinkages(linkage); for (j=first_sublinkage; j<nlink; ++j) { linkage_set_current_sublinkage(linkage, j); if (parse_options_get_display_on(opts)) { string = linkage_print_diagram(linkage); //######################################## // fprintf(stdout, "%s", string); //######################################### linkage_free_diagram(string); } if (parse_options_get_display_links(opts)) { string = linkage_print_links_and_domains(linkage); fprintf(stdout, "%s", string); linkage_free_links_and_domains(string); } if (parse_options_get_display_senses(opts)) { string = linkage_print_senses(linkage); fprintf(stdout, "%s", string); linkage_free_senses(string); } if (parse_options_get_display_disjuncts(opts)) { string = linkage_print_disjuncts(linkage); fprintf(stdout, "%s", string); linkage_free_disjuncts(string); } if (parse_options_get_display_postscript(opts)) { //######################################################################## string = linkage_print_postscript(linkage, FALSE,tmp_path,file_name); // fprintf(stdout, "%s\n", string); //######################################################################## linkage_free_postscript(string); /*string = linkage_print_postscript(linkage, FALSE); fprintf(stdout, "%s\n", string); linkage_free_postscript(string);*/ } } if ((mode = parse_options_get_display_constituents(opts))) { string = linkage_print_constituent_tree(linkage, mode); if (string != NULL) { /*###########################################*/ // fprintf(stdout, "%s\n", string); /*##########################################*/ linkage_free_constituent_tree_str(string); } else { fprintf(stderr, "Can't generate constituents.\n"); fprintf(stderr, "Constituent processing has been turned off.\n"); } } }