diff --git a/app/Makefile b/app/Makefile index a752eb3..21f52f7 100644 --- a/app/Makefile +++ b/app/Makefile @@ -27,7 +27,7 @@ export UTT_SHARE_DIR=${UTT_DIR}/share ############################## # list of components to be included in the distribution -COMPONENTS = compiledic cor dgp fla gph grp kon kor kot lem mar rm12 rs12 sen-l sen-nl ser tags tok.l unfla +COMPONENTS = compiledic cor dgp fla gph grp gue kon kor kot lem mar rm12 rs12 sen-l sen-nl ser tags tok.l unfla # gue nie dziala! ############################## diff --git a/app/src/gue/main.cc b/app/src/gue/main.cc index 2ee40e2..9afb96c 100644 --- a/app/src/gue/main.cc +++ b/app/src/gue/main.cc @@ -116,71 +116,160 @@ int main(int argc, char** argv) { unsigned first=1; char* parms_end = parms; char last_lemma[MAX_LINE]; + + count = 1; - while ((i=tab.next()) != -1 && count++= cut_off && tab[count].w_suf() >= delta * last_weight) + { + first=0; + last_weight = tab[i].w_suf(); + count++; + } else - parms_end += sprintf(parms_end, ",%s", tab[i].descr()); - - if (!args.one_field_flag) { - seg.addfield(parms); - parms_end = parms; - } - - if (!(args.one_field_flag || args.one_line_flag)) { - seg.print(outline); + break; + + // drukujemy count pierwszych z tab + + + if(one_line) + { + char* descp=desc; + for (int i=0; i< count; ++i) + { + descp += sprintf(descp," %s%s,%s", output_field_prefix, tab[i].lemma(), tab[i].descr()); + if(weights) descp += sprintf(descp,":%d",(int)tab[i].w_suf()); + } + strcpy(outline,line); + outline[strlen(outline)-1]='\0'; + strcat(outline,desc); + strcat(outline,"\n"); fputs(outline, outputf); - --seg.auxn; + if (copy_processed) + fputs(line,outputf); } - //if (copy_processed) - // fputs(outline, stdout); - } //while - - if (args.one_field_flag) - seg.addfield(parms); - - if (args.one_field_flag || args.one_line_flag){ - seg.print(outline); - fputs(outline, outputf); - } - } else { // if (process_segment) - // jak to nie jest wyraz - to przepisz token na wyjscie. - // printtok(line, start, len, cat, form); - seg.print(outline); - fputs(outline, outputf); - if (copy_processed) - fputs(outline, stdout); - } + else if(one_field) + { + char* descp=desc; + for (int i=0; i< count; ++i) + if(i==0) + { + descp += sprintf(descp," %s%s,%s", output_field_prefix, tab[i].lemma(), tab[i].descr()); + if(weights) descp += sprintf(descp,":%d",(int)tab[i].w_suf()); + } + else + { + if(strcmp(tab[i].lemma(),tab[i-1].lemma())==0) + descp += sprintf(descp,",%s",tab[i].descr()); + else + descp += sprintf(descp,";%s,%s",tab[i].lemma(),tab[i].descr()); + if(weights) descp += sprintf(descp,":%d",(int)tab[i].w_suf()); + } + + strcpy(outline,line); + outline[strlen(outline)-1]='\0'; + strcat(outline,desc); + strcat(outline,"\n"); + fputs(outline, outputf); + if (copy_processed) + fputs(line,outputf); + } + else + { + for (int i=0; i< tab.count(); ++i) + { + // kolejne opisy - kolejne linie. + char* descp=desc; + descp += sprintf(desc, " %s%s,%s\n", output_field_prefix, tab[i].lemma(), tab[i].descr()); + if(weights) descp += sprintf(descp,":%d",(int)tab[i].w_suf()); + strcpy(outline,line); + outline[strlen(outline)-1]='\0'; + strcat(outline,desc); + fputs(outline, outputf); + } + if (copy_processed) + fputs(line,outputf); + } + } } - time_t end_time = time(NULL); - if (per_info) { - printf("Liczba s³ów: %d\n", words_count); - printf("Czas analizy: %d sekund\n", end_time-start_time); - } - cmdline_parser_free(&args); + if(args.interactive_flag) + fflush(outputf), fflush(failedf); + } + cmdline_parser_free(&args); +} + + + + + + + + +// while ((i=tab.next()) != -1 && count++