#include "anyproc.hpp"

#include <iostream>
#include <string>



int main(int argc, char **argv) {
    if (argc != 2) {
        std::cerr << "Usage: " << argv[0] << " <model file>" << std::endl;
        return -1;
    }

    const auto progress_indicator = [](float progress) {
        std::cout << unsigned(progress) << "% \r" << std::flush;
        return true;
    };
    const auto result_printer = [](const char *token) {
        if (token[0] != '\n')
            std::cout << token << std::flush;
        else
            std::cout << '\r' << std::flush;
        return true;
    };

    Translator translator(argv[1]);
    for (;;) {
        std::string language;
        std::cout << "Language: " << std::flush;
        std::getline(std::cin, language);
        for (;;) {
            std::string text;
            std::cout << "\rText: " << std::flush;
            std::getline(std::cin, text);
            if (text.empty()) break;
            std::cout << translator.translate(text, language, progress_indicator, result_printer) << "        " << std::endl;
        }
    }
}