bool TrFunctions::IsType( const UCString &t ) const { return t.eqi(L"const") || t.eqi(L"bool") || t.eqi(L"int") || t.eqi(L"string") || t.eqi(L"tree") || t.eqi(L"trees") || t.eqi(L"variant") || t.eqi(L"fun") || t.eqi(L"tuple"); }
void SyntaxShell::SetLanguage( const UCString &lang_name ) { if( lang_name.eqi(L"autodetect") || lang_name.eqi(L"auto") ) { // Язык нужно определять для каждой вводимой фразы. default_language = UNKNOWN; guess_language = true; } else { default_language = sol_id->GetSynGram().Find_Language(lang_name); // Проверим, что этот язык есть среди определенных в лексиконе lem::MCollect<int> langs; sol_id->GetLanguages(langs); if( langs.find(default_language)==UNKNOWN ) { merr->printf( "\n%vfCError:%vn target language %vfE%us%vn is not available in lexicon", lang_name.c_str() ); throw E_BaseException(); } } return; }