Example #1
0
int main(int argc, char* argv[])
{
	setlocale(LC_ALL, "Russian");
	try {
		//MorphLanguageEnum langua = morphUnknown;
		MorphLanguageEnum langua = morphRussian;
		string  FileName;
		FileName = "C:\\testTexts\\input_Alisa.txt";
		if (!FileExists(FileName.c_str()))
		{
			fprintf(stderr, "cannot open file %s\n", FileName.c_str());
			exit(1);
		}
		//for (size_t i = 1; i<argc; i++)
		//{
		//	string s = argv[i];
		//	EngMakeLower(s);
		//	if ((s == "-help")
		//		|| (s == "--help")
		//		|| (s == "/?")
		//		)
		//		PrintUsage();
		//	else {
		//		if (langua == morphUnknown) {
		//			if (!GetLanguageByString(s, langua))
		//				PrintUsage();
		//		}
		//		else {
		//			FileName = argv[i];
		//			if (!FileExists(FileName.c_str()))
		//			{
		//				fprintf(stderr, "cannot open file %s\n", FileName.c_str());
		//				exit(1);
		//			}
		//		}
		//	}
		//
		//}
		//if ((langua == morphUnknown)) PrintUsage();

		CSyntaxHolder H;

		if (!H.LoadSyntax(langua))
		{
			fprintf(stderr, "initialization error\n");
			return 1;
		};


		fprintf(stderr, "ok\n");
		if (!FileName.empty())
		{
			vector<string> Files;
			if ((FileName.length() > 4) && FileName.substr(FileName.length() - 4) == ".lst")
			{
				FILE* fp = fopen(FileName.c_str(), "r");
				if (!fp)
				{
					fprintf(stderr, "cannot open %s\n", FileName.c_str());
					return 1;
				}
				char buffer[1024];
				while (fgets(buffer, 1024, fp))
				{
					rtrim(buffer);
					Files.push_back(buffer);
				}
				fclose(fp);

			}
			else
				Files.push_back(FileName);

			string OutPutFile = "C:\\testTexts\\input_Alisa.syn";
			ofstream out;
			out.open(OutPutFile);
			for (size_t i = 0; i < Files.size(); i++)
			{
				fprintf(stderr, "File %s\n", Files[i].c_str());
				fflush(stderr);
				H.m_bTimeStatis = true;
				H.GetSentencesFromSynAn(Files[i], true);
				string s = GetStringBySyntax(H.m_Synan, *H.m_pGramTab, Files[i].c_str());
				out << s << "\n\n";
				//printf("%s\n\n", s.c_str());
			}
			return 0;
		}


		// ===============  WORKING ===============
		char buffer[10000];
		while (fgets(buffer, 10000, stdin))
		{
			string s = buffer;
			Trim(s);
			if (s.empty()) continue;

			H.GetSentencesFromSynAn(s, false);
			s = GetStringBySyntax(H.m_Synan, *H.m_pGramTab, s);
			printf("%s", s.c_str());
			fflush(stdout);
		};
	}
	catch (...)
	{
		fprintf(stderr, "an exception occurred!\n");
		return 1;
	};
	system("pause");
	return 0;
};
Example #2
0
int main(int argc, char* argv[])
{
try {
	

	MorphLanguageEnum langua = morphUnknown;
    string  FileName;
	for (size_t i=1; i<argc; i++)
	{
		string s = argv[i];
		EngMakeLower(s);
		if (		(s == "-help") 
				||	(s == "--help") 
				||	(s == "/?") 
			)
			PrintUsage();
        else {
            if (langua == morphUnknown) {
                if (!GetLanguageByString(s, langua)) 
                        PrintUsage();
            }
            else {
                FileName = argv[i];
                if (!FileExists(FileName.c_str()))
                {
                    fprintf (stderr, "cannot open file %s\n",  FileName.c_str());
                    exit(1);
                }
            }
        }

    }
	if ((langua == morphUnknown)) PrintUsage();

	CSyntaxHolder H;
	
	if (!H.LoadSyntax(langua))
	{
		fprintf (stderr, "initialization error\n");
		return 1;
	};
	
	
	fprintf (stderr, "ok\n");   	
    if (!FileName.empty())
    {
        vector<string> Files;
        if ((FileName.length() > 4) && FileName.substr(FileName.length() -4) == ".lst")
        {
            FILE* fp = fopen(FileName.c_str(), "r");
            if (!fp) 
            {
                fprintf( stderr, "cannot open %s\n", FileName.c_str());
                return 1;
            }
            char buffer[1024];
            while (fgets (buffer, 1024, fp))
            {
                rtrim (buffer);
                Files.push_back(buffer);
            }
            fclose (fp);

        }
        else
            Files.push_back(FileName);
        for (size_t i=0; i < Files.size(); i++)
        {
            fprintf( stderr, "File %s\n", Files[i].c_str());
            fflush (stderr);
            H.m_bTimeStatis = true;
            H.GetSentencesFromSynAn(Files[i], true);
	    	string s = GetStringBySyntax(H.m_Synan, *H.m_pGramTab, Files[i].c_str());
		    printf  ("%s\n\n", s.c_str());
        }
        return 0;
    }


	// ===============  WORKING ===============
    char buffer[10000] ;
	while  (fgets(buffer, 10000, stdin))
	{
		string s = buffer;
		Trim(s);
		if (s.empty()) continue;
		
		H.GetSentencesFromSynAn(s, false);
		s = GetStringBySyntax(H.m_Synan, *H.m_pGramTab, s);
		printf  ("%s", s.c_str());
        fflush(stdout);
	};
}
catch(...)
{
 	fprintf (stderr, "an exception occurred!\n");   	
	return 1;
};

	return 0;
};