commit d6c23b84707869786826106ec5b24ac3045a4909 Author: vaydheesh Date: Thu Aug 1 01:09:03 2019 +0530 wrapper: load files during initialization diff --git a/python/apertium_core.i b/python/apertium_core.i index 83c840a..3ec2743 100644 --- a/python/apertium_core.i +++ b/python/apertium_core.i @@ -43,16 +43,48 @@ #include #include #include -class apertium: public Transfer, public Interchunk, public Postchunk + +/** + * Imitates functionality of apertium-core binaries using file path + */ + + +void pretransfer(char arg, char *input_path, char *output_path) +{ + bool useMaxEnt = false; + FILE *input = fopen(input_path, "r"), *output = fopen(output_path, "w"); + processStream(input, output, false, false, false); + fclose(input); + fclose(output); +} + +class transfer: public Transfer { public: - /** - * Imitates functionality of apertium-core binaries using file path - */ - void interchunk_text(char arg, char *transferfile, char *datafile, char *input_path, char *output_path); - void pretransfer(char arg, char *input_path, char *output_path); - void postchunk_text(char arg, char *transferfile, char *datafile, char *input_path, char *output_path); - void transfer_text(char arg, char *transferfile, char *datafile, char *input_path, char *output_path); + + transfer(char *transferfile, char *datafile) + { + read(transferfile, datafile); + } + + void transfer_text(char arg, char *input_path, char *output_path) + { + FILE *input = fopen(input_path, "r"), *output = fopen(output_path, "w"); + switch(arg) + { + case 'b': + setPreBilingual(true); + setUseBilingual(false); + break; + + case 'n': + setUseBilingual(false); + break; + } + Transfer::transfer(input, output); + fclose(input); + fclose(output); + } }; class tagger: public Apertium::apertium_tagger @@ -65,56 +97,40 @@ class tagger: public Apertium::apertium_tagger tagger(int argc, char **argv): apertium_tagger(argc, argv){} }; -void -apertium::transfer_text(char arg, char *transferfile, char *datafile, char *input_path, char *output_path) +class interchunk: public Interchunk { - FILE *input = fopen(input_path, "r"), *output = fopen(output_path, "w"); + public: - switch(arg) + interchunk(char *transferfile, char *datafile) { - case 'b': - setPreBilingual(true); - setUseBilingual(false); - break; - - case 'n': - setUseBilingual(false); - break; + read(transferfile, datafile); } - Transfer::read(transferfile, datafile); - transfer(input, output); - fclose(input); - fclose(output); -} -void -apertium::interchunk_text(char arg, char *transferfile, char *datafile, char *input_path, char *output_path) -{ - FILE *input = fopen(input_path, "r"), *output = fopen(output_path, "w"); - Interchunk::read(transferfile, datafile); - interchunk(input, output); - fclose(input); - fclose(output); -} + void interchunk_text(char arg, char *input_path, char *output_path) + { + FILE *input = fopen(input_path, "r"), *output = fopen(output_path, "w"); + Interchunk::interchunk(input, output); + fclose(input); + fclose(output); + } +}; -void -apertium::pretransfer(char arg, char *input_path, char *output_path) +class postchunk: public Postchunk { - bool useMaxEnt = false; - FILE *input = fopen(input_path, "r"), *output = fopen(output_path, "w"); - processStream(input, output, false, false, false); - fclose(input); - fclose(output); -} + public: -void -apertium::postchunk_text(char arg, char *transferfile, char *datafile, char *input_path, char *output_path) -{ - FILE *input = fopen(input_path, "r"), *output = fopen(output_path, "w"); - Postchunk::read(transferfile, datafile); - postchunk(input, output); - fclose(input); - fclose(output); -} + postchunk(char *transferfile, char *datafile) + { + read(transferfile, datafile); + } + + void postchunk_text(char arg, char *input_path, char *output_path) + { + FILE *input = fopen(input_path, "r"), *output = fopen(output_path, "w"); + Postchunk::postchunk(input, output); + fclose(input); + fclose(output); + } +}; %}