ostrm <<
"FuncName: "<< f_args.
m_FName<< endl;
88ostrm <<
"Negate: "<< f_args.
m_Negate<< endl;
90 for(
const auto& it : f_args.
m_FArgs) {
91ostrm << it.first <<
"\t"<< it.second << endl;
107 m_Target= macro_rep.GetForEachString();
114 boolremove_field =
false;
115 boolupdate_mrna =
false;
116 boolcopy_name_to_cds =
false;
118 autofn_it = func_list.begin();
119 while(fn_it != func_list.end()) {
120 const auto& fn_name = fn_it->m_FuncName;
122 autoassign_fn_it = assign_fn_map.find(fn_name);
123 if(assign_fn_it != assign_fn_map.end()) {
124 boolvalid = assign_fn_it->second(*
this, fn_it->m_FuncArgs);
126 if(edit_fn_map.find(fn_name) == edit_fn_map.end()) {
144 if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_RemoveModifier::GetFuncName())) {
145 size_tnr_args = fn_it->m_FuncArgs.size();
152remove_field =
true;
157remove_field =
true;
162 else if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_RemoveQual::GetFuncName())) {
163 size_tnr_args = fn_it->m_FuncArgs.size();
167remove_field =
true;
171 else if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_RemoveRnaProduct::GetFuncName())) {
172 if(!fn_it->m_FuncArgs.empty())
175remove_field =
true;
179 else if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_RmvRelFeatQual::GetFuncName())) {
180 if(fn_it->m_FuncArgs.size() != 2)
183remove_field =
true;
187 else if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_RemoveFeature::GetFuncName())) {
188 if(!fn_it->m_FuncArgs.empty())
191remove_field =
true;
198 if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_UpdatemRNAProduct::GetFuncName())) {
199 if(!fn_it->m_FuncArgs.empty()) {
207 if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_CopyNameToCDSNote::GetFuncName())) {
208 if(!fn_it->m_FuncArgs.empty()) {
211copy_name_to_cds =
true;
217 automap_it = edit_fn_map.find(fn_name);
218 if(map_it != edit_fn_map.end()) {
219 boolvalid = map_it->second(*
this, fn_it->m_FuncArgs, new_info.
m_FArgs);
228 auto& args = it.m_FArgs;
231 if(arg_it != args.end()) {
237 if(arg_it != args.end()) {
243 if(arg_it != args.end()) {
249 if(arg_it != args.end()) {
255 if(arg_it != args.end()) {
257 if(!updated.empty())
258arg_it->second = updated;
263 if(arg_it != args.end()) {
269 if(arg_it != args.end()) {
276 if(arg_it != args.end()) {
287 if(copy_name_to_cds) {
293 if(arg_it != args.end()) {
302 auto& f_args = it.m_FArgs;
306 if(value_it != f_args.end() && !
NStr::StartsWith(value_it->second,
"col:")) {
308value_it->second = updated;
322 if(feat_type_it == func_args.end()) {
325 if(feat_type_it != func_args.end() && feat_type_it->second.empty()) {
332 if(
m_Target== macro::CMacroBioData::sm_Seqdesc ||
333 m_Target== macro::CMacroBioData::sm_UserObject) {
338 else if(
m_Target== macro::CMacroBioData::sm_RNA) {
342 if(
m_Target== macro::CMacroBioData::sm_mRNA) {
345 auto& fn_args = fn_it.m_FArgs;
351 if((from_it != fn_args.end()) && (from_it->second ==
"comment"|| from_it->second ==
"product")) {
352from_it->second =
"mRNA "+ from_it->second;
358 if((to_it != fn_args.end()) && (to_it->second ==
"comment"|| to_it->second ==
"product")) {
359to_it->second =
"mRNA "+ to_it->second;
364 auto& fn_args = fn_it.m_FArgs;
370 else if(
m_Target== macro::CMacroBioData::sm_miscRNA) {
378 else if(
m_Target== macro::CMacroBioData::sm_rRNA) {
386 else if(
m_Target== macro::CMacroBioData::sm_SeqFeat) {
393 if(macro::CMacroBioData::s_IsFeatSelector(
m_Target)) {
407 if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_GetSeqdesc::sm_MolinfoForBsrc) ||
408 NStr::EqualNocase(fn_name, macro::CMacroFunction_GetSeqdesc::sm_MolinfoForFeat)) {
409target = macro::CMacroBioData::sm_MolInfo;
411 else if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_GetSeqdesc::sm_BsrcForMolinfo) ||
414 NStr::EqualNocase(fn_name, macro::CMacroFunction_GetSeqdesc::sm_BsrcForSeqdesc)) {
415target = macro::CMacroBioData::sm_BioSource;
417 else if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_GetDBLink::GetFuncName())) {
418target = macro::CMacroBioData::sm_DBLink;
420 else if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_Features_For_Object::GetFuncName()) ||
421 NStr::EqualNocase(fn_name, macro::CMacroFunction_RelatedFeatures::GetFuncName())) {
424target = macro::CMacroBioData::sm_CdRegion;
427target = macro::CMacroBioData::sm_RNA;
430target = macro::CMacroBioData::sm_Miscfeat;
433target = macro::CMacroBioData::sm_Protein;
435 else if(!macro::CMacroBioData::s_IsFeatSelector(target)) {
436target = macro::CMacroBioData::sm_ImpFeat;
439 else if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_GetSequence::sm_SeqForDescr) ||
441target = macro::CMacroBioData::sm_Seq;
443 else if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_GetRnaProduct::GetFuncName())) {
444target = macro::CMacroBioData::sm_RNA;
446 else if(macro::CMacroFunction_PubFields::s_IsPubFieldFnc(fn_name)) {
447target = macro::CMacroBioData::sm_Pubdesc;
449 else if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_StructCommField::GetFuncName()) ||
450 NStr::EqualNocase(fn_name, macro::CMacroFunction_StructCommDatabase::GetFuncName()) ||
451 NStr::EqualNocase(fn_name, macro::CMacroFunction_StructCommFieldname::GetFuncName())) {
452target = macro::CMacroBioData::sm_Seq;
458 if(feat_type.empty())
462 auto& args = fn_it.m_FArgs;
464 if(field_it != args.end()) {
472 if(from_field != args.end()) {
473 if(from_field->second !=
"gene description"&&
479to_field->second = to_field->second.substr(
string(
"CDS,").length(),
NPOS);
499 auto& args = fn_it.m_FArgs;
501 if(field_it != args.end()) {
503 if(fn_it.m_ChildFnc) {
504 const auto& fn_name = fn_it.m_ChildFnc->m_FuncName;
505 if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_RelatedFeatures::GetFuncName())) {
509 else if(
NStr::EqualNocase(fn_name, macro::CMacroFunction_GetDBXref::GetFuncName()) ||
510 NStr::EqualNocase(fn_name, macro::CMacroFunction_GetRnaProduct::GetFuncName()) ||
511 NStr::EqualNocase(fn_name, macro::CMacroFunction_SatelliteName::GetFuncName()) ||
512 NStr::EqualNocase(fn_name, macro::CMacroFunction_SatelliteType::GetFuncName()) ||
513 NStr::EqualNocase(fn_name, macro::CMacroFunction_MobileElementName::GetFuncName()) ||
514 NStr::EqualNocase(fn_name, macro::CMacroFunction_MobileElementType::GetFuncName())) {
523 if(macro::CMacroBioData::s_IsFeatSelector(target)) {
530field_it->second !=
"codon-start"&&
535 if(added && feat_type ==
"comment"&& field_it->second ==
"comment") {
549 auto& args = fn_it.m_FArgs;
551 if(feat_type == args.end())
555 if(field_it != args.end()) {
556 if(field_it->second !=
"codon-start"&&
570cout <<
"Error: "<<
m_MacroRep->GetSource() << endl;
581fn_name == macro::CMacroFunction_ChoiceType::GetFuncName()) {
595 if(wh_it.m_FName == macro::CMacroFunction_ChoiceType::GetFuncName() ||
601 if(constr_field.empty())
606 if(fn_it.m_FName == macro::CMacroFunction_EditStringQual::GetFuncName() ||
607fn_it.m_FName == macro::CMacroFunction_RemoveOutside::GetFuncName()) {
612valid = (field_it->second == gui_field);
616 else if(fn_it.m_FName == macro::CMacroFunction_RemoveQual::GetFuncName()) {
621 else if(fn_it.m_FName == macro::CMacroFunction_RemoveDescriptor::GetFuncName()) {
623 if(
m_Target== macro::CMacroBioData::sm_Seqdesc) {
624 if(field_it->second.empty()) {
630 else if(
m_Target== macro::CMacroBioData::sm_UserObject) {
631 if(field_it->second ==
"User") {
648 stringrna_type =
"any";
653 if(rna_it != wh_it.m_FArgs.end()) {
658 if(ncRNAcl_it != wh_it.m_FArgs.end()) {
659ncRNAclass = ncRNAcl_it->second;
665 if(!ncRNAclass.empty()) {
674 return(
value==
"name"||
675 value==
"description"||
676 value==
"EC number"||
677 value==
"activity"||
678 value==
"comment");
683 boolis_mat_peptide =
false;
694 boolupdated =
false;
697 auto& args = fn_it.m_FArgs;
699 if(from_it == args.end()) {
702 if(from_it != args.end() &&
705from_it->second =
"mat_peptide "+ from_it->second;
710 if(to_it != args.end() &&
713to_it->second =
"mat_peptide "+ to_it->second;
719 auto& args = fn_it.m_FArgs;
721 if(field_it != args.end() &&
724field_it->second =
"mat_peptide "+ field_it->second;
728 if(fn_it.m_ChildFnc &&
729 NStr::EqualNocase(fn_it.m_ChildFnc->m_FuncName, macro::CMacroFunction_RelatedFeatures::GetFuncName())) {
732 if(field_it->second !=
"codon-start"&&
754 if(feat_it != fn_args.end()) {
756feat_type = feat_it->second;
757 if(feat_type ==
"non-std-residue"|| feat_type ==
"psec-str")
762 if(feat_it->second ==
"mature")
763feat_type =
"Mature Peptide AA";
764 else if(feat_it->second ==
"signal-peptide")
765feat_type =
"Signal Peptide AA";
766 else if(feat_it->second ==
"transit-peptide")
767feat_type =
"Transit Peptide AA";
768 else if(feat_it->second ==
"propeptide")
769feat_type =
"propeptide AA";
770 else if(feat_it->second ==
"preprotein")
771feat_type =
"ProProtein";
773 if(!feat_type.empty()) {
789feat_type =
"Protein";
794 if(feat_it != wh_it.m_FArgs.end()) {
795feat_type = feat_it->second;
803 if(rna_it != wh_it.m_FArgs.end()) {
805 if(feat_type ==
"preRNA")
806feat_type =
"precursor_RNA";
815feat_type =
"misc_RNA";
821feat_type =
"misc_feature";
836 autowhere_tree =
m_MacroRep->GetWhereClause();
840 if(!do_constraints.empty()) {
841 copy(do_constraints.begin(), do_constraints.end(), back_inserter(where_funcs));
844 if(where_funcs.empty())
848 autofn_end = fn_map.end();
849 for(
auto& fn_it : where_funcs) {
850 const auto& fn_name = fn_it.m_FuncName;
854 automap_it = fn_map.find(fn_name);
855 if(map_it != fn_end) {
856 boolvalid = map_it->second(*
this, fn_it.m_FuncArgs, new_info.
m_FArgs);
869 auto& args = it.m_FArgs;
871 if(field_it == args.end())
885 if(strcomm_it != args.end()) {
886field_it->second +=
" "+ strcomm_it->second;
891it.m_ParentFnc ==
"=") {
892it.m_FName = macro::CMacroFunction_StringConstraints::sm_Equal;
894it.m_ParentFnc.clear();
911 automap_it = fn_map.find(child_fnc->
m_FuncName);
912 if(map_it != fn_map.end()) {
913 boolvalid = map_it->second(*
this, child_fnc->
m_FuncArgs, mapped_args);
926 boolrmv_choicetype =
false;
935 if(is_protein_feat) {
937 if(it != args.end()) {
938valid = (it->second ==
"preprotein"||
939it->second ==
"mature"||
940it->second ==
"signal-peptide"||
941it->second ==
"transit-peptide"||
942it->second ==
"propeptide");
944rmv_choicetype =
true;
953 if(field_it != args.end()) {
955rmv_choicetype =
true;
962 if(rmv_choicetype) {
964[](
const CFuncWithArgs& elem) { return NStr::EqualNocase(elem.m_FName, macro::CMacroFunction_ChoiceType::GetFuncName()); });
978 boolhas_cgp_quals =
true;
981 if(field_it == fn_it->m_FArgs.end()) {
982has_cgp_quals =
false;
985 if(find_if(qualifier_list.begin(), qualifier_list.end(),
986[&field_it](
const string& elem) { return NStr::EqualNocase(elem, field_it->second); }) == qualifier_list.end())
987has_cgp_quals =
false;
989 returnhas_cgp_quals;
995 auto& args = fn_it.m_FArgs;
999 if(field_it != args.end() && feat_it != args.end()) {
1003field_it->second = feat_it->second +
" "+ field_it->second;
1012 LOG_POST(
Error<<
"Attempt to add an already existing run-time variable: "<< name);
1033 switch(action_type) {
1074 if(f_args.size() < 3 && f_args.size() > 5)
1077 autofnc_arg_it = f_args.begin();
1086TArgumentsVector::const_iterator& args_it,
constTArgumentsVector::const_iterator& end,
TInterpretedArgs& mapped_args)
1088 _ASSERT(fnc_arg_it != f_args.end());
1090 if((fnc_arg_it == f_args.end()) || (args_it == end)) {
1091 LOG_POST(
Error<<
"Wrong iterator passed to CMacroInterpreter::x_ParseArgsForApplyTable()");
1095 autovalue_it =
m_RTVars.find(*fnc_arg_it);
1096 if(value_it !=
m_RTVars.end() && value_it->second.size() == 2) {
1099 if(++fnc_arg_it != f_args.end()) {
1100 if(*fnc_arg_it !=
"true"&& *fnc_arg_it !=
"false") {
1107 if(f_args.size() == max_size) {
1116 while(fnc_arg_it != f_args.end() && args_it != end) {
1117mapped_args.emplace(args_it->m_Name, *fnc_arg_it);
1128 if(f_args.size() < 4 || f_args.size() > 6)
1132 autofnc_arg_it = f_args.begin();
1134 stringfirst_arg = *fnc_arg_it;
1135 autoRT_it =
m_RTVars.find(first_arg);
1137 if(RT_it->second.size() == 2) {
1138 stringmember_type, member_name, main_qual_name;
1141 if(member_type ==
"subtype"&& member_name ==
"subname") {
1142first_arg = RT_it->second[1];
1147 stringfield_part = *(++fnc_arg_it);
1149mapped_args.emplace(args_it->m_Name,
"org.orgname.mod,"+ first_arg +
","+ field_part);
1158 if(f_args.size() < 5 || f_args.size() > 7)
1162 autofnc_arg_it = f_args.begin();
1164 stringrt_var_name = *fnc_arg_it;
1165 stringcontainer = *(++fnc_arg_it);
1166 stringsubtype = *(++fnc_arg_it);
1168 autoRT_it =
m_RTVars.find(rt_var_name);
1170(RT_it->second.size() != 2) ||
1171RT_it->second[0] != container || RT_it->second[1] != subtype)
1174mapped_args.emplace(args_it->m_Name, container +
","+ subtype);
1186 if(f_args.size() != 5 && f_args.size() != 6)
1189 autofnc_arg_it = f_args.begin();
1194 while(++fnc_arg_it != f_args.end()) {
1195mapped_args.emplace((++args_it)->m_Name, *fnc_arg_it);
1199 if(it_casesens != mapped_args.end()) {
1208 boolvalid =
false;
1209 size_tpos =
value.find(
".");
1211mapped_args.emplace(name,
value);
1215 stringrt_var =
value.substr(0, pos);
1216 autoRT_it =
m_RTVars.find(rt_var);
1218mapped_args.emplace(name,
value);
1222 if(RT_it->second.size() > 1) {
1223 stringmember_type, member_name, main_qual_name;
1227mapped_args.emplace(name, RT_it->second.front() +
","+ RT_it->second[1]);
1230 else if(
m_Target== macro::CMacroBioData::sm_StrComm) {
1231 if(RT_it->second[0] ==
"data") {
1232mapped_args.emplace(name, RT_it->second[1]);
1233 if(RT_it->second.size() == 3) {
1239 else if(
m_Target== macro::CMacroBioData::sm_DBLink) {
1240 if(RT_it->second[0] ==
"data") {
1241mapped_args.emplace(name, RT_it->second[1]);
1246 else if(RT_it->second.size() == 1) {
1248mapped_args.emplace(name, RT_it->second.front());
1260 if(f_args.size() != 6 && f_args.size() != 7)
1263 autofnc_arg_it = f_args.begin();
1268 if(RT_it->second.size() != 2)
1271 stringmember_type, member_name, main_qual_name;
1274 stringfirst_arg = *fnc_arg_it;
1275 stringsubfield = *(++fnc_arg_it);
1281mapped_args.emplace(args_it->m_Name, RT_it->second.front() +
","+ RT_it->second[1] +
","+ subfield);
1287 while(++fnc_arg_it != f_args.end()) {
1288mapped_args.emplace((++args_it)->m_Name, *fnc_arg_it);
1292 if(it_casesens != mapped_args.end()) {
1302 if(f_args.size() != 5 && f_args.size() != 6)
1305 autoargs_it = convert_args.begin();
1306 autofnc_arg_it = f_args.begin();
1319 stringcapital_option = *(++fnc_arg_it);
1322 while(++fnc_arg_it != f_args.end()) {
1323mapped_args.emplace((++args_it)->m_Name, *fnc_arg_it);
1328mapped_args.emplace(convert_args[4].m_Name,
"false");
1330 for(
size_t i= 5;
i< convert_args.size(); ++
i) {
1331mapped_args.emplace(convert_args[
i].m_Name,
1340 if(f_args.size() != 3 && f_args.size() != 4)
1344 autofnc_arg_it = f_args.begin();
1356 while(++fnc_arg_it != f_args.end()) {
1357mapped_args.emplace((++args_it)->m_Name, *fnc_arg_it);
1365 if(f_args.size() < 2 || f_args.size() > 4)
1368 autofnc_arg_it = f_args.begin();
1370 boolvalid =
false;
1371 if(f_args.size() == 2) {
1374mapped_args.emplace(args_it->m_Name, *fnc_arg_it);
1377}
while(valid && ++fnc_arg_it != f_args.end());
1380 else if(f_args.size() == 3) {
1386 if(RT_it->second.size() == 2) {
1387 if((*fnc_arg_it == RT_it->first) && *(++fnc_arg_it) == RT_it->second[1]) {
1388mapped_args.emplace(args_it->m_Name, RT_it->second[0] +
","+ RT_it->second[1]);
1389mapped_args.emplace((++args_it)->m_Name, *(++fnc_arg_it));
1393fnc_arg_it = f_args.begin();
1394 if(*fnc_arg_it != RT_it->first) {
1395mapped_args.emplace(args_it->m_Name, *fnc_arg_it);
1400 if((*fnc_arg_it == RT_it->first) && *(++fnc_arg_it) == RT_it->second[1]) {
1401mapped_args.emplace(args_it->m_Name, RT_it->second[0] +
","+ RT_it->second[1]);
1411 else if(f_args.size() == 4) {
1415 if((RT_it->second.size() == 2) &&
1416(*fnc_arg_it == RT_it->first) &&
1417*(++fnc_arg_it) == RT_it->second[1]) {
1418mapped_args.emplace(args_it->m_Name, RT_it->second[0] +
","+ RT_it->second[1]);
1423}
while(valid && ++fnc_arg_it != f_args.end());
1434 if(f_args.size() != 1)
1437 autort_it =
m_RTVars.find(f_args[0]);
1438 if(rt_it !=
m_RTVars.end() && rt_it->second.size() == 2) {
1439mapped_args.emplace(
NMacroArgs::kField, rt_it->second[0] +
","+ rt_it->second[1]);
1448 if(f_args.size() != 1)
1451 autort_it =
m_RTVars.find(f_args[0]);
1452 if(rt_it !=
m_RTVars.end() && rt_it->second.size() == 2) {
1453mapped_args.emplace(
NMacroArgs::kField, rt_it->second[0] +
","+ rt_it->second[1]);
1461 if(f_args.size() != 1 ||
m_RTVars.empty())
1465 autofnc_arg_it = f_args.begin();
1467 boolvalid =
false;
1469mapped_args.emplace(args_it->m_Name, RT_it->second[0] +
","+ RT_it->second[1]);
1479 if(f_args.size() != 1)
1485 autoRT_it =
m_RTVars.find(f_args[0]);
1487mapped_args.emplace(args_it->m_Name, RT_it->second[0] +
","+ RT_it->second[1]);
1498 if(f_args.size() != 2 ||
m_RTVars.empty())
1502 autofnc_arg_it = f_args.begin();
1504 if(RT_it->second.size() != 2)
1507 stringmember_type, member_name, main_qual_name;
1510 stringfirst_arg = *fnc_arg_it;
1511 stringsubfield = *(++fnc_arg_it);
1512 boolvalid =
false;
1517mapped_args.emplace(args_it->m_Name, RT_it->second.front() +
","+ RT_it->second[1] +
","+ subfield);
1527 if(f_args.size() < 4 || f_args.size() > 5)
1532 autofnc_arg_it = f_args.begin();
1545 while(++fnc_arg_it != f_args.end()) {
1546mapped_args.emplace((++args_it)->m_Name, *fnc_arg_it);
1548TRTVarmap::const_iterator it =
m_RTVars.end();
1558 if(f_args.size() != 4 && f_args.size() != 5)
1563 autofnc_arg_it = f_args.begin();
1565TRTVarmap::const_iterator parsed_it =
m_RTVars.find(*fnc_arg_it);
1569 boolvalid =
false;
1571 const auto& parsed_args = parsed_it->second;
1572 if(parsed_args.size() == 11) {
1573mapped_args.emplace(args_it->m_Name, parsed_args[0] +
","+ parsed_args[1]);
1593 while(++fnc_arg_it != f_args.end()) {
1594mapped_args.emplace((++args_it)->m_Name, *fnc_arg_it);
1605 if(f_args.size() < 4 || f_args.size() > 6)
1610 autofnc_arg_it = f_args.begin();
1612 boolvalid =
false;
1613TRTVarmap::const_iterator parsed_it =
m_RTVars.find(*fnc_arg_it);
1614 if(parsed_it !=
m_RTVars.end()) {
1615 const auto& parsed_args = parsed_it->second;
1616 stringsrc_field = parsed_args[0];
1619 size_tpos = src_field.find(
'.');
1621 stringrt_var_name = src_field.substr(0, pos);
1622 autosrc_it =
m_RTVars.find(rt_var_name);
1623 if(src_it !=
m_RTVars.end() && src_it->second.size() == 2) {
1624 stringmember_type, member_name, main_qual_name;
1628mapped_args.emplace(args_it->m_Name, src_it->second.front() +
","+ src_it->second[1]);
1635mapped_args.emplace(args_it->m_Name, src_field);
1647mapped_args.emplace((++args_it)->m_Name, *(++fnc_arg_it));
1654 while(++fnc_arg_it != f_args.end()) {
1655mapped_args.emplace((++args_it)->m_Name, *fnc_arg_it);
1664 if(f_args.size() != 4 && f_args.size() != 5)
1669 autofnc_arg_it = f_args.begin();
1672 boolvalid =
false;
1673TRTVarmap::const_iterator parsed_it =
m_RTVars.find(*fnc_arg_it);
1674 if(parsed_it !=
m_RTVars.end()) {
1675 const auto& parsed_args = parsed_it->second;
1676mapped_args.emplace(args_it->m_Name, parsed_args[0]);
1679 if(parsed_args.size() == 1)
1690mapped_args.emplace((++args_it)->m_Name, *(++fnc_arg_it));
1694 while(++fnc_arg_it != f_args.end()) {
1695mapped_args.emplace((++args_it)->m_Name, *fnc_arg_it);
1705 for(
size_t i= 5;
i< prs_args.size(); ++
i) {
1706mapped_args.emplace(prs_args[
i].m_Name,
"false");
1712 const auto& parsed_args = iter->second;
1714 autonr_args = parsed_args.size();
1718 else if(nr_args == 11)
1723 stringleft_delimiter = parsed_args[index];
1725 stringright_delimiter = parsed_args[++index];
1733 if(left_delimiter ==
"eDigits") {
1736 else if(left_delimiter ==
"eLetters") {
1747 if(right_delimiter ==
"eDigits") {
1750 else if(right_delimiter ==
"eLetters") {
1780 if(f_args.size() != 1)
1784 autofnc_arg_it = f_args.begin();
1793 if(f_args.size() != 9 && f_args.size() != 10)
1797 autofnc_arg_it = f_args.begin();
1803mapped_args.emplace((++args_it)->m_Name, *(++fnc_arg_it));
1804 const stringleft_delimiter = *(++fnc_arg_it);
1805 if(left_delimiter ==
"eDigits") {
1808 else if(left_delimiter ==
"eLetters") {
1819mapped_args.emplace((++args_it)->m_Name, *(++fnc_arg_it));
1820 const stringright_delimiter = *(++fnc_arg_it);
1821 if(right_delimiter ==
"eDigits") {
1824 else if(right_delimiter ==
"eLetters") {
1835mapped_args.emplace((++args_it)->m_Name, *(++fnc_arg_it));
1837mapped_args.emplace((++args_it)->m_Name, *(++fnc_arg_it));
1839 if(++fnc_arg_it < f_args.end()) {
1849 if(f_args.size() != 10 && f_args.size() != 11)
1853mapped_args.emplace(args_it->m_Name, f_args[0] +
","+ f_args[1]);
1855 autofnc_arg_it = f_args.begin() + 1;
1857mapped_args.emplace((++args_it)->m_Name, *(++fnc_arg_it));
1858 const stringleft_delimiter = *(++fnc_arg_it);
1859 if(left_delimiter ==
"eDigits") {
1862 else if(left_delimiter ==
"eLetters") {
1873mapped_args.emplace((++args_it)->m_Name, *(++fnc_arg_it));
1874 const stringright_delimiter = *(++fnc_arg_it);
1875 if(right_delimiter ==
"eDigits") {
1878 else if(right_delimiter ==
"eLetters") {
1889mapped_args.emplace((++args_it)->m_Name, *(++fnc_arg_it));
1891mapped_args.emplace((++args_it)->m_Name, *(++fnc_arg_it));
1893 if(++fnc_arg_it < f_args.end()) {
1902 if(f_args.size() != 2)
1913 if(f_args.size() < 3 || f_args.size() > 5)
1916 autort_it =
m_RTVars.find(f_args[0]);
1917 if(rt_it ==
m_RTVars.end() || (rt_it !=
m_RTVars.end() && rt_it->second.size() != 1)) {
1922 autofnc_arg_it = f_args.begin();
1923mapped_args.emplace(args_it->m_Name, rt_it->second.front());
1931 if(f_args.size() < 3 || f_args.size() > 5)
1935 autofnc_arg_it = f_args.begin();
1936mapped_args.emplace(args_it->m_Name, *fnc_arg_it);
1944 if(f_args.size() < 4 || f_args.size() > 6)
1947 autort_it =
m_RTVars.find(f_args[0]);
1948 if((rt_it ==
m_RTVars.end()) || (rt_it->second.size() != 1) || (rt_it->second[0] !=
"author name list")) {
1952 autofnc_arg_it = f_args.begin();
1954mapped_args.emplace(args_it->m_Name, author_name);
1962 if(f_args.size() < 3 || f_args.size() > 5)
1965 autort_it =
m_RTVars.find(f_args[0]);
1966 if((rt_it ==
m_RTVars.end()) || (rt_it->second.size() != 1) || (rt_it->second[0] !=
"author name list")) {
1970 autofnc_arg_it = f_args.begin();
1972mapped_args.emplace(args_it->m_Name, author_name);
1979 if(f_args.size() < 2 && f_args.size() > 4)
1984mapped_args.emplace(args_it->m_Name, field);
1986 autofnc_arg_it = f_args.begin();
2030 if(f_args.size() != 1 && f_args.size() != 2)
2036 autovalue_it =
m_RTVars.find(f_args[0]);
2037 if(value_it !=
m_RTVars.end() && value_it->second.size() == 2) {
2039 if(f_args.size() != 2)
2056 if(f_args.size() != 1 && f_args.size() != 2)
2062 autovalue_it =
m_RTVars.find(f_args[0]);
2063 if(value_it !=
m_RTVars.end() && value_it->second.size() == 2) {
2065 if(f_args.size() != 2)
2084 if(f_args.size() != 1)
2099 if(f_args.size() != 1 && f_args.size() != 2)
2105 autovalue_it =
m_RTVars.find(f_args[0]);
2106 if(value_it !=
m_RTVars.end() && value_it->second.size() == 2) {
2122 if(f_args.size() < 2 || f_args.size() > 3)
2125 autofnc_arg_it = f_args.begin();
2126 boolvalid =
false;
2140 autovalue_it =
m_RTVars.find(*(++fnc_arg_it));
2141 if(value_it !=
m_RTVars.end() && value_it->second.size() == 2) {
2143 if(f_args.size() != 3)
2161 if(f_args.size() != 1 && f_args.size() != 3)
2166 if(f_args.size() == 1) {
2167 autovalue_it =
m_RTVars.find(f_args[0]);
2168 if(value_it !=
m_RTVars.end() && value_it->second.size() == 2) {
2179 else if(f_args.size() == 3) {
2195 if(f_args.size() != 1)
2198 boolvalid =
false;
2199 autort_it =
m_RTVars.find(f_args[0]);
2200 if(rt_it !=
m_RTVars.end() && rt_it->second.size() == 1) {
2202 if(authors == rt_it->second[0]) {
2214 if(f_args.empty()) {
2225 if(f_args.size() == 1) {
2238 if(f_args.empty()) {
2251 if(f_args.empty()) {
2263 if(f_args.size() != 2)
2266 boolvalid =
false;
2267 autort_it =
m_RTVars.find(f_args[0]);
2268 if(rt_it !=
m_RTVars.end() && rt_it->second.size() == 1) {
2270 if(title == rt_it->second[0]) {
2281 if(f_args.size() != 2)
2284 boolvalid =
false;
2285 autort_it =
m_RTVars.find(f_args[0]);
2286 if(rt_it !=
m_RTVars.end() && rt_it->second.size() == 1) {
2288 if(title == rt_it->second[0]) {
2299 if(f_args.size() != 2)
2302 autort_it =
m_RTVars.find(f_args[0]);
2304rt_it->second.size() == 1 &&
2315 if(f_args.size() != 2)
2318 boolvalid =
false;
2319 autort_it =
m_RTVars.find(f_args[0]);
2320 if(rt_it !=
m_RTVars.end() && rt_it->second.size() == 1) {
2322 if(title == rt_it->second[0]) {
2333 if(f_args.size() != 2)
2336 autort_it =
m_RTVars.find(f_args[0]);
2338rt_it->second.size() == 1 &&
2349 if(f_args.size() < 3 || f_args.size() > 6)
2353 autort_it =
m_RTVars.find(f_args[0]);
2358 autofnc_arg_it = f_args.begin() + 1;
2364 autofnc_arg_it = f_args.begin();
2376 if(f_args.size() < 2 || f_args.size() > 4)
2382 if(f_args.back() ==
"eAddQual") {
2383 autort_it =
m_RTVars.find(f_args[0]);
2384 if(rt_it !=
m_RTVars.end() && f_args.size() > 2) {
2390 autofnc_arg_it = f_args.begin();
2397 if(f_args.size() != 5)
2400 autofnc_arg_it = f_args.begin();
2412 if(f_args.size() < 3 || f_args.size() > 5)
2416 autofnc_arg_it = f_args.begin();
2417mapped_args.emplace(args_it->m_Name, *fnc_arg_it);
2425 if(!f_args.empty())
2430field =
"BioSource";
2436field =
"Publication";
2439field =
"StructuredComment";
2456 if(f_args.size() != 1)
2464 if(f_args.size() != 1)
2472 if(f_args.size() != 3)
2484 if(f_args.size() < 2 || f_args.size() > 4)
2488 autofnc_arg_it = f_args.begin();
2490mapped_args.emplace(args_it->m_Name,
"product");
2498 if(f_args.size() < 5 || f_args.size() > 7)
2502 autofnc_arg_it = f_args.begin();
2504 stringrt_var_name = *fnc_arg_it;
2505 stringcontainer = *(++fnc_arg_it);
2506 stringsubtype = *(++fnc_arg_it);
2508 autoRT_it =
m_RTVars.find(rt_var_name);
2509 if(RT_it ==
m_RTVars.end() || (RT_it->second[0] != container))
2512 boolgood_subtype = (RT_it->second[1] == subtype) ||
2518mapped_args.emplace(args_it->m_Name, container +
","+ subtype);
2530 autoarg_nr = f_args.size();
2531 if(arg_nr < 4 || arg_nr > 7)
2536 autovalue_it =
m_RTVars.find(f_args[2]);
2537 if(value_it !=
m_RTVars.end() && value_it->second.size() == 2) {
2540 if(f_args.size() > 4) {
2542 if(f_args[index] !=
"true"&& f_args[index] !=
"false") {
2547 if(index < arg_nr) {
2550 if(++index < arg_nr) {
2575 if(f_args.size() != 6 && f_args.size() != 7)
2581 autofnc_arg_it = f_args.begin() + 1;
2583 while(++fnc_arg_it != f_args.end()) {
2584mapped_args.emplace((++args_it)->m_Name, *fnc_arg_it);
2588 if(it_casesens != mapped_args.end()) {
2598 if(f_args.size() < 7 || f_args.size() > 8)
2602 autoargs_it = convert_args.begin();
2613mapped_args.emplace(args_it->m_Name, f_args[1] +
","+ f_args[2]);
2615 autofnc_arg_it = f_args.begin() + 3;
2616 stringcapital_option = *fnc_arg_it;
2622 while(++fnc_arg_it != f_args.end()) {
2623mapped_args.emplace((++args_it)->m_Name, *fnc_arg_it);
2628mapped_args.emplace(convert_args[4].m_Name,
"false");
2630 for(
size_t i= 5;
i< convert_args.size(); ++
i) {
2631mapped_args.emplace(convert_args[
i].m_Name,
2640 if(f_args.size() < 5 || f_args.size() > 6)
2644 autoargs_it = copy_args.begin();
2652mapped_args.emplace(args_it->m_Name, f_args[1] +
","+ f_args[2]);
2654 autofnc_arg_it = f_args.begin() + 3;
2658 while(++fnc_arg_it != f_args.end()) {
2659mapped_args.emplace((++args_it)->m_Name, *fnc_arg_it);
2667 if(f_args.empty()) {
2677 if(f_args.size() != 2)
2687 if(f_args.size() != 1)
2692TRTVarmap::const_iterator rt_it =
m_RTVars.find(f_args[0]);
2699 const auto& parsed_args = rt_it->second;
2700 if(parsed_args.size() == 10) {
2704 else if(parsed_args.size() == 11) {
2720 if(f_args.size() != 5 && f_args.size() != 6)
2723 if(f_args[0] ==
"rna") {
2726 else if(f_args[0] ==
"gene") {
2733 if(f_args[2] ==
"rna") {
2736 else if(f_args[2] ==
"gene") {
2743 if(f_args.size() == 6) {
2752 if(f_args.size() != 7 && f_args.size() != 8)
2755 if(f_args[0] ==
"rna") {
2758 else if(f_args[0] ==
"gene") {
2765 if(f_args[2] ==
"rna") {
2768 else if(f_args[2] ==
"gene") {
2774 stringcapital_option = f_args[4];
2778 if(f_args.size() == 8) {
2788 for(
size_t i= 5;
i< convert_args.size(); ++
i) {
2789mapped_args.emplace(convert_args[
i].m_Name,
2798 if(f_args.size() != 6 && f_args.size() != 7)
2808mapped_args.emplace((++args_it)->m_Name, f_args[1] +
","+ f_args[2]);
2813 autofnc_arg_it = f_args.begin() + 4;
2817 while(++fnc_arg_it != f_args.end()) {
2818mapped_args.emplace((++args_it)->m_Name, *fnc_arg_it);
2821TRTVarmap::const_iterator it =
m_RTVars.end();
2828 if(f_args.size() != 6 && f_args.size() != 7)
2834TRTVarmap::const_iterator parsed_it =
m_RTVars.find(f_args[0]);
2838 boolvalid =
false;
2840 const auto& parsed_args = parsed_it->second;
2841 if(parsed_args.size() == 11) {
2842mapped_args.emplace(args_it->m_Name, parsed_args[0] +
","+ parsed_args[1]);
2855mapped_args.emplace((++args_it)->m_Name, f_args[1] +
","+ f_args[2]);
2861 autofnc_arg_it = f_args.begin() + 4;
2862 while(++fnc_arg_it != f_args.end()) {
2863mapped_args.emplace((++args_it)->m_Name, *fnc_arg_it);
2873 if(f_args.size() != 6 && f_args.size() != 7)
2876 if(f_args[0] ==
"rna") {
2879 else if(f_args[0] ==
"gene") {
2886 if(f_args[2] ==
"rna") {
2889 else if(f_args[2] ==
"gene") {
2899 if(f_args.size() == 7) {
2903TRTVarmap::const_iterator it =
m_RTVars.end();
2910 if(f_args.size() != 4 && f_args.size() != 5)
2913 boolvalid =
false;
2914 if(f_args.size() == 4) {
2926 else if(f_args.size() == 5) {
2932 if(RT_it->second.size() == 2) {
2933 if((f_args[0] == RT_it->first) && f_args[1] == RT_it->second[1]) {
2953 stringretranslate_cds =
"false";
2954 stringadjust_gene =
"false";
2955 if(f_args.empty()) {
2958 else if(f_args.size() == 1) {
2959retranslate_cds = f_args[0];
2961 else if(f_args.size() == 2) {
2962retranslate_cds = f_args[0];
2963adjust_gene = f_args[1];
2977 autonr_args = f_args.size();
2978 if(nr_args < 2 || nr_args > 4)
2982 if(f_args[0] ==
"all")
2983partial_opt =
"All";
2984 else if(f_args[0] ==
"at-end")
2985partial_opt =
"Only if at 5' end";
2986 else if(f_args[0] ==
"bad-start")
2987partial_opt =
"If bad start codon";
2988 else if(f_args[0] ==
"frame-not-one")
2989partial_opt =
"If CDS frame > 1";
2991 if(partial_opt.empty())
2999 stringretranslate_cds =
"false";
3000 stringadjust_gene =
"false";
3002retranslate_cds = f_args[2];
3005adjust_gene = f_args[3];
3016 autonr_args = f_args.size();
3017 if(nr_args < 2 || nr_args > 4)
3021 if(f_args[0] ==
"all")
3022partial_opt =
"All";
3023 else if(f_args[0] ==
"at-end")
3024partial_opt =
"Only if at 3' end";
3025 else if(f_args[0] ==
"bad-end")
3026partial_opt =
"If bad stop codon";
3028 if(partial_opt.empty())
3035 stringretranslate_cds =
"false";
3036 stringadjust_gene =
"false";
3038retranslate_cds = f_args[2];
3041adjust_gene = f_args[3];
3052 autonr_args = f_args.size();
3053 if(nr_args < 2 || nr_args > 4)
3057 if(f_args[0] ==
"all")
3058partial_opt =
"All";
3059 else if(f_args[0] ==
"at-end")
3060partial_opt =
"If both ends at end of sequence";
3062 if(partial_opt.empty())
3069 stringretranslate_cds =
"false";
3070 stringadjust_gene =
"false";
3072retranslate_cds = f_args[2];
3075adjust_gene = f_args[3];
3086 autonr_args = f_args.size();
3087 if(nr_args < 1 || nr_args > 3)
3091 if(f_args[0] ==
"all")
3092partial_opt =
"All";
3093 else if(f_args[0] ==
"not-at-end")
3094partial_opt =
"If not at 5' end";
3095 else if(f_args[0] ==
"good-start")
3096partial_opt =
"If good start codon";
3098 if(partial_opt.empty())
3103 stringretranslate_cds =
"false";
3104 stringadjust_gene =
"false";
3106retranslate_cds = f_args[1];
3109adjust_gene = f_args[2];
3119 autonr_args = f_args.size();
3120 if(nr_args < 1 || nr_args > 3)
3124 if(f_args[0] ==
"all")
3125partial_opt =
"All";
3126 else if(f_args[0] ==
"not-at-end")
3127partial_opt =
"If not at 3' end";
3128 else if(f_args[0] ==
"good-end")
3129partial_opt =
"If good stop codon";
3131 if(partial_opt.empty())
3136 stringretranslate_cds =
"false";
3137 stringadjust_gene =
"false";
3139retranslate_cds = f_args[1];
3142adjust_gene = f_args[2];
3152 autonr_args = f_args.size();
3153 if(nr_args < 1 || nr_args > 3)
3157 if(f_args[0] ==
"all")
3158partial_opt =
"All";
3159 else if(f_args[0] ==
"not-at-end")
3160partial_opt =
"If both ends not at end of sequence";
3162 if(partial_opt.empty())
3167 stringretranslate_cds =
"false";
3168 stringadjust_gene =
"false";
3170retranslate_cds = f_args[1];
3173adjust_gene = f_args[2];
3186 autonr_args = f_args.size();
3187 if(nr_args < 2 || nr_args > 4)
3191 if(from_strand.find(f_args[0]) == from_strand.end())
3195 if(to_strand.find(f_args[1]) == to_strand.end())
3201 stringretranslate_cds =
"false";
3202 stringadjust_gene =
"false";
3204retranslate_cds = f_args[2];
3207adjust_gene = f_args[3];
3218 autonr_args = f_args.size();
3219 if(nr_args < 1 || nr_args > 3)
3223 if(
type.find(f_args[0]) ==
type.end())
3226 string tmp= f_args[0];
3230 stringretranslate_cds =
"false";
3231 stringadjust_gene =
"false";
3233retranslate_cds = f_args[1];
3236adjust_gene = f_args[2];
3247 if(f_args.size() != 1)
3257 if(f_args.size() < 1 || f_args.size() > 2)
3261 if(f_args.size() == 2) {
3270 if(f_args.size() < 1 || f_args.size() > 2)
3274 if(f_args.size() == 2) {
3283 if(f_args.size() < 2) {
3294 stringcheck_rule =
NStr::EqualNocase(f_args[1],
"delete") ?
"false":
"true";
3297vector<string> modifiers;
3298 for(
size_t i= 2;
i< f_args.size(); ++
i) {
3299modifiers.push_back(f_args[
i]);
3305 stringselect_all = (modifiers.size() == fieldnames.size()) ?
"true":
"false";
3314 if(f_args.size() < 1) {
3325 stringcheck_rule =
NStr::EqualNocase(f_args[0],
"delete") ?
"false":
"true";
3328vector<string> modifiers;
3329 for(
size_t i= 1;
i< f_args.size(); ++
i) {
3330modifiers.push_back(f_args[
i]);
3336 stringselect_all = (modifiers.size() == fieldnames.size()) ?
"true":
"false";
3344 if(f_args.size() < 3 && f_args.size() > 4)
3348 autofnc_arg_it = f_args.begin();
3349mapped_args.emplace(args_it->m_Name, *fnc_arg_it);
3356 if(f_args.size() != 1)
3374 if(f_args.size() != 9)
3379 for(
const auto& fnc_arg_it : f_args) {
3380mapped_args.emplace((*args_it), fnc_arg_it);
3389 if(f_args.size() != 6)
3394 for(
const auto& fnc_arg_it : f_args) {
3395mapped_args.emplace((*args_it), fnc_arg_it);
3406delete_gene =
"false";
3407 else if(f_args.size() == 1)
3408delete_gene = f_args[0];
3420 if(!f_args.empty())
3429 if(!f_args.empty())
3438 if(f_args.size() != 2)
3442mapped_args.emplace(args_it->m_Name,
"");
3445{
"any",
"Suppressing or non-suppressing"},
3446{
"suppressing",
"Suppressing"},
3447{
"nonsuppressing",
"Non-suppressing"}
3449 autosuppr_it = suppr_type.
find(f_args[0]);
3450 if(suppr_it != suppr_type.end()) {
3451mapped_args.emplace((++args_it)->m_Name, suppr_it->second);
3457{
"any",
"Necessary or unnecessary"},
3458{
"necessary",
"Necessary"},
3459{
"unnecessary",
"Unnecessary"}
3461 autonecess_it = necess_type.
find(f_args[1]);
3462 if(necess_it != necess_type.end()) {
3463mapped_args.emplace((++args_it)->m_Name, necess_it->second);
3475 if(f_args.size() < 1 && f_args.size() > 2)
3484 if(f_args.size() != 2) {
3489 if(f_args.size() != 2)
3505 if(f_args.size() < 4 && f_args.size() > 5)
3511 autofnc_arg_it = f_args.begin() + 1;
3515 if(f_args.size() != 5)
3521 if(f_args.size() != 5)
3539 if(f_args.size() != 4)
3543 autofnc_arg_it = f_args.begin();
3544 while(fnc_arg_it != f_args.end()) {
3545mapped_args.emplace(args_it->m_Name, *fnc_arg_it);
3554 if(f_args.size() != 1)
3563 if(f_args.size() < 6)
3577 if(++index < f_args.size() && index + 1 < f_args.size()) {
3578 if(f_args[index] ==
"comment") {
3589 if(f_args.size() < 3)
3595 for(
size_tindex = 1; index < f_args.size() && index + 1 < f_args.size(); index += 2) {
3596 if(f_args[index] ==
"data.gene.locus") {
3599 else if(f_args[index] ==
"data.gene.desc") {
3609 if(f_args.size() < 4)
3621 for(++index; index < f_args.size() && index + 1 < f_args.size(); ++index) {
3622 if(f_args[index] ==
"comment") {
3625 else if(f_args[index] ==
"data.rna.ext.gen.class") {
3635 if(f_args.size() < 3)
3639 if(f_args[index] ==
"data.gene.locus") {
3643 else if(f_args[index] ==
"data.gene.desc") {
3647 else if(f_args[index] ==
"data.imp.key") {
3659 for(++index; index < f_args.size() && index + 1 < f_args.size() &&
i< quals.size(); index+=2) {
3660 if(f_args[index] ==
"data.gene.desc") {
3663 else if(f_args[index] ==
"comment") {
3666 else if(f_args[index] ==
"qual.qual") {
3667mapped_args.emplace(quals[
i], f_args[index + 1]);
3669 else if(f_args[index] ==
"qual.val") {
3670mapped_args.emplace(vals[
i], f_args[index + 1]);
3675mapped_args.emplace(quals[
i], qualifier);
3676mapped_args.emplace(vals[
i], f_args[index + 1]);
3686 boolgood_args =
false;
3702 boolgood_args =
false;
3719 if(f_args.size() != 2 || f_args[1] !=
"match_by_id")
3738 size_targ_nr = f_args.size();
3742 boolmodifier =
false;
3744!f_args[0].
empty() &&
3745!
s_IsBool(f_args[2]) && !macro::CMacroFunction_StringConstraints::s_IsSynonymFile(f_args[2])) {
3756 size_tindex = (modifier) ? 2 : 1;
3766 autotmp_it =
tmp.begin();
3767 while(++index < arg_nr && tmp_it !=
tmp.end() &&
s_IsBool(f_args[index])) {
3768mapped_args.emplace(*tmp_it, f_args[index]);
3774 if(index < arg_nr) {
3778 while(++index < arg_nr) {
3781 if(index + 1 < arg_nr) {
3782 if(
s_IsBool(f_args[index + 1])) {
3789 if(index + 1 < arg_nr) {
3790 if(
s_IsBool(f_args[index + 1])) {
3805 if(f_args.size() == 1 || f_args.size() == 2) {
3814 if(f_args.size() != 2)
3817 if(
m_Target== macro::CMacroBioData::sm_Seqdesc) {
3818 if(!f_args[0].
empty())
3822 else if(
m_Target== macro::CMacroBioData::sm_UserObject) {
3826 else if((
m_Target== macro::CMacroBioData::sm_SeqFeat) && (f_args[0] ==
"data")) {
3837 if(f_args.size() == 1 || f_args.size() == 2) {
3847 return(f_args.size() == 1 && f_args[0] ==
"dbxref");
3854 if(f_args.size() < 4)
3857 boolmodifier = (!f_args[3].empty() && f_args[3].find_first_not_of(
"0123456789") ==
NPOS);
3865 size_tindex = (modifier) ? 2 : 1;
3869 if(++index < f_args.size()) {
3872 if(++index < f_args.size()) {
3875 if(++index < f_args.size()) {
3878 if(++index < f_args.size()) {
3894 if(f_args.empty()) {
3908 size_tnr_args = f_args.size();
3909 if(nr_args > 0 && nr_args < 4) {
3914 else if(nr_args == 3) {
3926 if(f_args.size() == 1) {
3930 else if(f_args.size() == 2) {
3940 if(f_args.empty()) {
3950 if(f_args.empty()) {
3960 if(f_args.empty()) {
3970 if(f_args.empty()) {
3980 if(f_args.size() == 1) {
3990 if(f_args.size() == 2) {
3995 else if(f_args.size() > 2) {
3997 string value= f_args[1];
3998 for(
size_tindex = 2; index < f_args.size(); ++index) {
3999 value+=
","+ f_args[index];
4011 if(f_args.size() == 1) {
4015 else if(f_args.size() == 2) {
4026 if(f_args.size() == 2) {
4028 string value= f_args[0] +
","+ f_args[1];
4042 if(f_args.size() == 1) {
4053 if(f_args.empty()) {
4063 if(f_args.empty()) {
4073 return(f_args.empty());
4079 if(f_args.empty()) {
4089 if(f_args.empty()) {
4098 if(f_args.size() != 1)
4107 if(f_args.size() != 1)
4116 if(f_args.size() != 1)
4125 if(f_args.size() != 1 && f_args.size() != 2)
4129 if(f_args.size() == 2) {
4139 if(f_args.size() == 1 && (f_args[0] ==
"plus"|| f_args[0] ==
"minus")) {
4149 return(f_args.empty());
4155 return(f_args.empty());
4161 if(f_args.size() == 1 &&
4174 if(f_args.size() == 1) {
4185 return(f_args.empty() || (f_args.size() == 1 && f_args[0] ==
"location"));
4192 if(f_args.size() == 1) {
4196 else if(f_args.size() == 2) {
4206 if(f_args.size() == 2) {
4218 return(f_args.size() == 1);
4336 returnsm_FuncInterpreters;
4414 returnsm_WhereFuncInterpreters;
4447 returnsm_AssignFuncInterpreters;
4455 autonr_args = f_args.size();
4460 TArgs tmp(f_args.begin() + 1, f_args.end());
4467 if(f_args.size() == 1) {
4479 if(f_args.size() == 3 && f_args[2] ==
"eAddQual") {
4480 TArgs tmp(f_args.begin() + 1, f_args.end());
4490 if(f_args.size() != 4)
4493 TArgs tmp(f_args.begin() + 1, f_args.end());
4501 if(f_args.size() != 6)
4504 TArgs tmp(f_args.begin() + 1, f_args.end());
4512 if(f_args.size() == 2) {
4521 if(f_args.size() == 11) {
4522 autoit = ++(f_args.begin());
4523 TArgstmp_args(it, f_args.end());
4532 if(f_args.size() == 12) {
4533 autoit = ++(f_args.begin());
4534 TArgstmp_args(it, f_args.end());
4544 if(f_args.size() == 1) {
4555 if(f_args.empty()) {
4568 if(f_args.size() == 1) {
4570}
else if(f_args.size() == 2) {
4584 if(f_args.size() == 1) {
4595 if(f_args.size() == 1) {
4598 else if(f_args.size() == 2) {
4612 if(f_args.empty()) {
4615 else if(f_args.size() == 1) {
4618 if(!field.empty()) {
4628 if(f_args.size() == 1) {
4638 if(f_args.empty()) {
4649 if(f_args.size() == 1) {
4659 if(f_args.empty()) {
4670 if(f_args.size() == 1) {
4680 if(f_args.empty()) {
4690 if(f_args.size() == 1) {
4700 if(f_args.empty()) {
4711 if(f_args.size() == 1) {
4721 if(f_args.empty()) {
4732 if(f_args.size() == 2) {
4742 if(f_args.size() == 1) {
4753 if(f_args.size() == 1) {
4763 if(f_args.empty()) {
4774 if(f_args.size() == 1) {
4784 if(f_args.empty()) {
4795 if(f_args.size() == 1) {
4805 if(f_args.empty()) {
4817 if(f_args.size() == 1) {
4827 if(f_args.empty()) {
4840 if(f_args.size() < 2) {
4852 if(f_args.size() != 3)
4855 TArgs tmp(f_args.begin() + 1, f_args.end());
4856 if(!f_args[2].
empty() && f_args[2].find_first_not_of(
"0123456789") !=
NPOS)
4874 if(fn_it.m_FName != macro::CMacroFunction_SetQual::GetFuncName())
4878 if(field_it == fn_it.m_FArgs.end() || value_it == fn_it.m_FArgs.end())
4882 if(field_it->second ==
"molecule") {
4885 else if(field_it->second ==
"technique") {
4888 else if(field_it->second ==
"completedness") {
4891 else if(field_it->second ==
"class") {
4894 else if(field_it->second ==
"topology") {
4897 else if(field_it->second ==
"strand") {
4905edit_fn.
m_FArgs.find(field_name)->second = value_it->second;
4910 if(
m_Target== macro::CMacroBioData::sm_Seq) {
4911seq_type =
"Any sequence";
4913 else if(
m_Target== macro::CMacroBioData::sm_SeqNa) {
4914seq_type =
"Nucleotides";
4916 else if(
m_Target== macro::CMacroBioData::sm_SeqAa) {
4917seq_type =
"Proteins";
4920 boolis_class =
false;
4929 if(field_it == args.end() || value_it == args.end())
4935 if(field_it->second ==
"molecule") {
4938 else if(field_it->second ==
"technique") {
4941 else if(field_it->second ==
"completedness") {
4944 else if(field_it->second ==
"class") {
4951 else if(field_it->second ==
"topology") {
4954 else if(field_it->second ==
"strand") {
4962 if(is_class &&
m_Target== macro::CMacroBioData::sm_SeqNa) {
4968edit_fn.
m_FArgs.find(field_name)->second = value_it->second;
4971edit_fn.
m_FArgs.find(field_name)->second = value_it->second;
5012vector<string> test_names;
5014 if(fn_it.m_FName != macro::CMacroFunction_DiscrepancyAutofix::GetFuncName())
5017test_names.push_back(fn_it.m_FArgs.begin()->second);
5033 boolfield_set =
true;
5035 const auto& fn_args = fn_it.
m_FArgs;
5037 if(
NStr::EqualNocase(fn_it.m_FName, macro::CMacroFunction_CopyStringQual::GetFuncName())) {
5049 else if(
NStr::EqualNocase(fn_it.m_FName, macro::CMacroFunction_SetStringQual::GetFuncName())) {
5058 else if(
NStr::EqualNocase(fn_it.m_FName, macro::CMacroFunction_SetQual::GetFuncName())) {
5074 boolfound =
false;
5103 boolfield_set =
true;
5105 const auto& fn_args = fn_it.
m_FArgs;
5107 if(
NStr::EqualNocase(fn_it.m_FName, macro::CMacroFunction_CopyStringQual::GetFuncName())) {
5119 else if(
NStr::EqualNocase(fn_it.m_FName, macro::CMacroFunction_RemoveQual::GetFuncName())) {
5137!
NStr::EqualNocase(wh_it->m_FName, macro::CMacroFunction_IllegalDbXref::GetFuncName())) {
5157 if(
NStr::EqualNocase(fn_it.m_FName, macro::CMacroFunction_SetStructCommDb::GetFuncName())) {
5159 if(!(handle_text_it != fn_it.m_FArgs.end() && handle_text_it->second ==
"add new qualifier"))
5172 boolset_field =
false;
5173 if(
NStr::EqualNocase(fn.m_FName, macro::CMacroFunction_SetQual::GetFuncName())) {
5176 if(field_it != fn.m_FArgs.end() && field_it->second ==
"class"&& value_it != fn.m_FArgs.end()) {
5177fn.m_FArgs.erase(field_it);
5180fn.m_FArgs.erase(value_it);
5196 if(field_it != args.end() && field_it->second ==
"class"&& value_it != args.end()) {
5229 if(fn_name == macro::CMacroFunction_ApplyCDS::GetFuncName())
5233 boollocation_set =
false;
5236 if(
NStr::EqualNocase(fn_it->m_FName, macro::CMacroFunction_MakeWholeSeqInterval::GetFuncName()) ||
5237 NStr::EqualNocase(fn_it->m_FName, macro::CMacroFunction_MakeInterval::GetFuncName())) {
5241edit_fn.
m_FArgs.insert(fn_it->m_FArgs.begin(), fn_it->m_FArgs.end());
5242location_set =
true;
5245 else if(
NStr::EqualNocase(fn_it->m_FName, macro::CMacroFunction_ApplyGene::GetFuncName())) {
5246edit_fn.
m_FArgs.insert(fn_it->m_FArgs.begin(), fn_it->m_FArgs.end());
5250 if(
NStr::EqualNocase(fn_it->m_FName, macro::CMacroFunction_ApplyOtherFeature::GetFuncName()))
5252 else if(
NStr::EqualNocase(fn_it->m_FName, macro::CMacroFunction_ApplyRNA::GetFuncName()))
5289!
NStr::EqualNocase(wh_it->m_FName, macro::CMacroFunction_InTable::GetFuncName())) {
Class to store one function as it appears in the macro and its arguments (as GUI fieldnames)
bool operator==(const CFuncWithArgs &other) const
EMacroFieldType m_FieldTypeTo
EMacroFieldType m_FieldTypeFrom
CFuncWithArgs & operator=(const CFuncWithArgs &)
string m_FName
Function name as it appears in the macro.
CRef< SMacroFuncWithArgs > m_ChildFnc
string GetGUIFieldName(const string ¯o_field, const string &target, EMacroFieldType &type, EMSection clause=EMSection::eDoSection)
string GetGUIDateField(const string ¯o_field)
string GetGUIPubField(CPubFieldType::EPubFieldType)
string GetGUIMolinfoValue(const string ¯o_field, const string &molinfo_field)
const vector< string > & GetKeywords(EMacroFieldType type) const
static CMacroEditorContext & GetInstance()
string GetGUIAuthorName(const string &author_part)
string GetGUIFeatQualifier(const string ¯o_field)
string GetGUIAffilField(const string ¯o_field)
string GetGUIDescriptor(const string ¯o_field)
vector< string > GetFieldNames(EMacroFieldType type) const
bool x_DOILookupValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_RmvDescrValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_UpdateProteinsValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_FixPubAuthorsValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubVolValidateArgs(const TArgs &)
bool x_ConvertGapsValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ApplyCDSValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PostProcessEditMolinfo()
bool x_ParseStringQualValidateArgs(const TArgs &, TInterpretedArgs &)
void x_InsertFeatureTypeToWhereClause()
bool x_SetPubIssueValidateArgs(const TArgs &, TInterpretedArgs &)
vector< CFuncWithArgs > m_WhereGUIFuncInfo
the same as m_WhereFuncInfo, but here the fields are interpreted
bool x_PostProcessRmvDbxref()
bool x_EditStringQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_GetSequenceValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetBothPartialValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_GeneQualValidateArgs(const TArgs &)
bool x_ParseFeatQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ParseRNARelQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_DistanceValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_MobileElemTypeValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetStrCommDbValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_IllegalDbXrefValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SatelliteTypeValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ConvertLocStrandValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ProcessNestedFunctions(CRef< SMacroFuncWithArgs > &child_fnc, TInterpretedArgs &mapped_args)
bool InterpretDoFunctions(const macro::CMacroRep ¯o_rep)
bool x_RmvOutsideRelFeatValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_RmvOrgnameValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_InconsTaxaValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_FixPubTitleValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_AddGeneXrefValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubAuthorValidateArgs(const TArgs &)
bool x_ApplyRNAValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_RemoveAllFeatsValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_InTableValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ExtendFeatValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubPagesConstrValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ApplyFeatureValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubTitleConstrValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ValueFromTblValidateArgs(const TArgs &)
bool x_UpdateTargetFieldForRNA()
CFuncWithArgs::TInterpretedArgs TInterpretedArgs
bool x_PubAuthorConstrValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_CaseConstraintValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubIssueConstrValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_GetDBLinkValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_InterpretncRNAclassValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SeqIdValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PostProcessDiscrAutofix()
bool x_PartialStartValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetRelFeatQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_MakeWholeSeqIntAssignValidateArgs(const TArgs &)
bool x_SeqForDescValidateArgs(const TArgs &)
bool x_SatelliteNameValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_UpdateTargetFieldForSeqdesc()
bool x_SetPubDateValidateArgs(const TArgs &, TInterpretedArgs &)
bool PostProcess(EMActionType action_type)
bool x_SetStatusValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_StructCommFieldNameValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubDateConstrValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetDoiValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubDOIValidateArgs(const TArgs &)
bool x_SetQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_AddStructVoucherPart(const TArgs &, TInterpretedArgs &)
bool x_CopyStringQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_FixFormatValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubPMIDConstrValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetPmidValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_LocationTypeValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ConvertRNARelQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_NumberofFeatsValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_RemoveSubfieldValidateArgs(const TArgs &, TInterpretedArgs &)
CConstRef< macro::CMacroRep > m_MacroRep
bool x_RemoveRnaProdValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ConvertFeatureValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_RemoveFeatValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetPubAuthorValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_UpdateFieldsForMatPeptide()
bool x_SetRnaProdValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ConvertFeatQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_RmvRelFeatQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetCodonRecognizedValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_RestoreRNAEditValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetSerialNumberValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_StructCommFieldValidateArgs(const TArgs &, TInterpretedArgs &)
bool m_MightRemove
when 'true', it signals that the action requires an additional 'remove' function
bool x_PubJournalConstrValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_GetRnaProdValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_RmvDuplFeatsValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PostProcessApplyQualifierTable()
bool x_LocationLengthValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_GetFeatureValidateArgs(const TArgs &, TInterpretedArgs &)
static const TFncValidatorMap & x_GetFncValidatorMap()
bool x_RmvOutsideValidateArgs(const TArgs &, TInterpretedArgs &)
void NormalizeFieldForFeatPanel()
bool x_PostProcessApplyAuthors()
bool x_RemoveAuthorsValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_InterpretFeatTypeValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetStringQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_FixPubAffilCountryValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubDOIConstrValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubTitleValidateArgs(const TArgs &)
bool x_GlobalDOIValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubJournalValidateArgs(const TArgs &)
bool x_PubStatusConstrValidateArgs(const TArgs &, TInterpretedArgs &)
string m_Target
the FOR EACH selector of the edited macro
bool x_SetStrCommDbAssignValidateArgs(const TArgs &)
bool x_EditSubfieldValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_StructVoucherPartValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ApplyUnverifiedValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ApplyDOIValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ParseToStructCommValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubDateValidateArgs(const TArgs &)
bool x_SetPubJournalValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetModifierValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PostProcessAddFeature(const string &fn_name)
bool x_SetDateFieldValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubSerialNrConstrValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_LocalIdValidateArgs(const TArgs &)
bool x_AutodefCompleteValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubAffilConstrValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetPubPagesValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_AddGapFeatsbyNsValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_RmvGeneXrefValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_InterpretRNATypeValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_StrandValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_CopyRNARelQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PostProcessAddStructComment()
bool x_MakeIntervalAssignValidateArgs(const TArgs &)
bool x_CopyFeatQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PartialStopValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_FixSourceQualCapsValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ApplyAutodefOptsValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ConsolidateWhereFunctions()
bool x_ChoiceTypeValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SwapRelFeatQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_InterpretWhereFunctions(const TMacroFuncList &do_constraints)
static const TFncValidatorMap & x_GetWhereFncValidatorMap()
bool x_ConvertStringQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_RemoveQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_GetDBxrefValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubPMIDValidateArgs(const TArgs &)
bool x_SetStrCommFieldValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_AddToRTVar(const string &name, const TArgs &members)
bool x_StoreParsingArguments(TInterpretedArgs &, TRTVarmap::const_iterator &iter)
bool x_RetranslateCDSValidateArgs(const TArgs &, TInterpretedArgs &)
void x_CleanupWhereFunctions()
bool x_FixPubAffilFieldsValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_RemoveMInitialsValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_EditRelFeatQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubIssueValidateArgs(const TArgs &)
bool x_DiscrAutofixValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_GetFirstItemValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_DOILookupInArticlesValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_MakeIntervalValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ParsedTextValidateArgs(const TArgs &)
bool x_PostProcessConvertSetClass()
string x_FindFeatureType()
bool x_InterpretFieldValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ValidateMultiArgs(const TArgs &, TInterpretedArgs &mapped_args, CPubFieldType::EPubFieldType type)
bool x_Clear5PartialValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ParseFieldFromRTVar(TInterpretedArgs &, const string &name, const string &value)
bool x_MobileElemNameValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_AddAuthorsValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ParsedTextFromValidateArgs(const TArgs &)
bool x_PubStatusValidateArgs(const TArgs &)
bool x_UpdateReplECsValidateArgs(const TArgs &, TInterpretedArgs &)
void x_InsertFeatureType(const string &feat_type)
bool x_ConvertRawToDeltabyNsValidateArgs(const TArgs &, TInterpretedArgs &)
adjust_cds (false), keep_gap_length, gap_type, linkage, linkage_evidence)
bool x_ApplyPMIDValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_MakeWholeSeqIntValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubCitValidateArgs(const TArgs &)
bool x_PubSerialNrValidateArgs(const TArgs &)
bool x_ClearBothPartialValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetPubVolumeValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_Clear3PartialValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubCitConstrValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_IsPresentValidateArgs(const TArgs &, TInterpretedArgs &)
bool ActionHasCdsGeneProtQuals()
bool x_AutodefValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubAffilValidateArgs(const TArgs &)
vector< CFuncWithArgs > m_WhereFuncInfo
function information about the functions from the WHERE clause
bool x_ParseToDBLinkValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubVolConstrValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetPubAffilValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetGBQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_Set3PartialValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ResolveValidateArgs(const TArgs &)
bool x_ConvertLocTypeValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SeqTypeValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ParseArgsForApplyTable(const TArgs &, size_t, TArgs::const_iterator &, TArgumentsVector::const_iterator &, const TArgumentsVector::const_iterator &, TInterpretedArgs &)
bool x_AddDBLinkValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_RemoveModifierValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetPubAuthMIValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_GetSeqdescValidateArgs(const TArgs &, TInterpretedArgs &)
vector< CFuncWithArgs > m_DoFuncInfo
interpreted functions that appear in the DO section
bool x_StringConstraintValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SwapQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_StructCommDbValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PubPagesValidateArgs(const TArgs &)
bool x_ConvertCDSValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_PostProcessSetException()
static const TAssignFncValidatorMap & x_GetAssignFncValidatorMap()
bool x_SetPubTitleValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_AddMultiAuthorsValidateArgs(const TArgs &, TInterpretedArgs &)
SMacroFuncWithArgs::TArgs TArgs
bool x_ApplyGeneValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_Set5PartialValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_AddParsedTextFeatQualValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_ComparisonOpValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_FixPubAffilValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_AddParsedTextValidateArgs(const TArgs &, TInterpretedArgs &)
bool x_SetPubCitValidateArgs(const TArgs &, TInterpretedArgs &)
static EMolInfoFieldType GetFieldType(const string &field_name)
@ ePubFieldType_AffilCountry
@ ePubFieldType_SerialNumber
@ ePubFieldType_DateMonth
@ ePubFieldType_AuthorMiddleInitial
const_iterator find(const key_type &key) const
const char * kGenomeProjectID
const char * kGenbankBlockKeyword
const char * kGenProjIDUserType
static void DLIST_NAME() remove(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
static const char * str(char *buf, int n)
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void Error(CExceptionArgs_Base &args)
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
const char * kMobileElementTType
const char * kStrCommFieldValue
bool IsStructVoucherPart(const string &field)
const char * kSatelliteType
const char * kSatelliteName
const char * kStrCommFieldName
bool IsSatelliteSubfield(const string &field)
bool IsMobileElementTSubfield(const string &field)
const char * kMobileElementTQual
const char * kMobileElementTName
EUnverifiedType GetUnverifiedType(const string &value)
const char * kStrCommDbname
void Reset(void)
Reset reference object.
void Reset(void)
Reset reference object.
TObjectType & GetObject(void)
Get object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
static bool StringToBool(const CTempString str)
Convert string to bool.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
static bool EndsWith(const CTempString str, const CTempString end, ECase use_case=eCase)
Check if a string ends with a specified suffix value.
static const string BoolToString(bool value)
Convert bool to string.
static string Join(const TContainer &arr, const CTempString &delim)
Join strings using the specified delimiter.
static string UIntToString(unsigned int value, TNumToStringFlags flags=0, int base=10)
Convert UInt to string.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
static string & ReplaceInPlace(string &src, const string &search, const string &replace, SIZE_TYPE start_pos=0, SIZE_TYPE max_replace=0, SIZE_TYPE *num_replace=0)
Replace occurrences of a substring within a string.
@ eNocase
Case insensitive compare.
static string MonthNumToName(int month, ENameFormat format=eFull)
Get name of the month by numerical value.
@ eAbbr
Use abbreviated name.
unsigned int
A callback function used to compare two keys in a database.
@ eApplyCDSGeneProtQualTable
Functions used in the DO/DONE section affecting the top seq-entry.
static bool s_IsProteinField(const string &value)
static void s_UpdateTarget(const string &fn_name, const CMacroInterpreter::TInterpretedArgs &args, string &target)
CNcbiOstream & operator<<(CNcbiOstream &ostrm, const CFuncWithArgs &f_args)
static bool s_IsBool(const string &str)
vector< SMacroFuncWithArgs > TMacroFuncList
const string kPlaceHolderFn
Temporary function name to return the relevant information from the Where clause.
TMacroFuncList GetWhereFunctionsWithArgs(const macro::CMacroRep ¯o_rep)
Returns the list of WHERE functions and their arguments as they appear in the macro.
const string kncRNAclassFn
const string kComparisonOp
TMacroFuncList GetDoFunctionsWithArgs(const macro::CMacroRep ¯o_rep, TMacroFuncList &do_constraints)
Returns the list of DO functions and their arguments as they appear in the macro.
void GetMemberNames(const string &container, const string &field, string &member_type, string &member_name, string &main_qual_name)
string GetCapitalizationType(const string &cap_change)
string GetGUIRNAType(const string &rna_type)
string GetCapitalizationTypeFromChoice(const string &cap_change)
string GetHandleOldValue(const string &type)
string GetBlankGUIText(const string &str)
string GetDelimiterChar(const string &del)
const vector< string > & GetAddAssemblyGapsNArgs()
const string kApplyMultiple
const TArgumentsVector & GetSwapArgs()
const string kAddRedundant
const string kAffiliation
const string kConstr_IgnorePunct
const string kWhereFeatProduct
const TArgumentsVector & GetRmvOutsideArgs()
const string kProteinDescr
const string kMiscFeatCheck
const string kConstr_IgnoreWeasel
const string kAddFeatQual3
const string kUnverMisassembled
const string kConstr_Strand
const TArgumentsVector & GetRemoveGeneXrefArgs()
const string kWholeWordParse
const string kDigitsRight
const string kMiscFeatRule
const string kAddFeatVal2
const string kConstr_FeatCount
const string kExceptionType
const string kLetterRight
const TArgumentsVector & GetSetArgs()
const string kListFeatRule
const string kConstr_SynCaseSens
const string kConvertMulti
const string kProteinName
const string kConstr_StrCaseSens
const string kAddFeatVal4
const string kPartialOption
const string kAutodefCompl
const TArgumentsVector & GetConvertArgs()
const string kAddFeatQual1
const string kConstr_SynFile
const string kConstr_WholeWord
const string kRmvOverlapGene
const string kConstr_SynWholeWord
const string kDelMultRepl
const TArgumentsVector & GetOptionalArgs()
const TArgumentsVector & GetRmvDuplFeaturesArgs()
const string kConstr_FeatType
const TArgumentsVector & GetParseArgs()
const string kCreateOnProtein
const string kExistingText
const string kSourceField
const string kConstr_SynMatch
const string kDelImproper
const string kRetranslate
const string kUnverContamination
const TArgumentsVector & GetCopyArgs()
const string kAddFeatQual2
const string kRemTranscriptid
const string kIllegalDbxref
const string kAddFeatQual4
const TArgumentsVector & GetEditArgs()
const string kAddFeatVal1
const string kCaseInsensParse
const string kConstr_LocType
const string kConstr_Match
const string kMoveExplanation
const TArgumentsVector & GetEditMolinfoArgs()
const string kStrCommField
const string kFeatureType
const string kObeyStopCodon
const string kConstr_IgnoreSpace
const string kAddFeatVal3
const string kConstr_Distance
constexpr bool empty(list< Ts... >) noexcept
const GenericPointer< typename T::ValueType > T2 value
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
static SLJIT_INLINE sljit_ins nr(sljit_gpr dst, sljit_gpr src)
static int parse_args(int argc, char *argv[])
Structure to store parsed function name and its arguments - as it appears in the macro It is used whe...
CRef< SMacroFuncWithArgs > m_ChildFnc
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4