NCBI C++ ToolKit
macro_rmvoutside_itemdata.cpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id: macro_rmvoutside_itemdata.cpp 46703 2021-09-07 18:35:12Z asztalos $
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * Authors: Andrea Asztalos
27 
28  */
29 
30 
31 #include <ncbi_pch.hpp>
38 
42 USING_SCOPE(macro);
43 
44 namespace {
45  string GetDelimiterDescr(const CArgumentList& args)
46  {
47  string descr = "Remove text ";
48  string match;
49  if (args[kBefore].IsTrue()) {
50  if (args[kTextLeft].IsTrue() && !args[kDelLeft].Empty()) {
51  match = "'" + args[kDelLeft].GetValue() + "' ";
52  }
53  else if (args[kDigitsLeft].IsTrue()) {
54  match = "'numbers' ";
55  }
56  else if (args[kLetterLeft].IsTrue()) {
57  match = "'letters' ";
58  }
59  if (!match.empty()) {
60  descr += "before " + match;
61  }
62  }
63 
64  match.resize(0);
65  if (args[kAfter].IsTrue()) {
66  if (args[kTextRight].IsTrue() && !args[kDelRight].Empty()) {
67  match += "'" + args[kDelRight].GetValue() + "' ";
68  }
69  else if (args[kDigitsRight].IsTrue()) {
70  match = "'numbers' ";
71  }
72  else if (args[kLetterRight].IsTrue()) {
73  match = "'letters' ";
74  }
75  if (!match.empty()) {
76  if (descr.find("before ") != NPOS) {
77  descr += "and ";
78  }
79  descr += "after " + match;
80  }
81  }
82  return descr;
83  }
84 }
85 
86 // CRmvOutsideQualTreeItemData
88  : CMacroActionItemData(description, type)
89 {
90 }
91 
93 {
95  copy(GetRmvOutsideArgs().begin(), GetRmvOutsideArgs().end(), back_inserter(args));
97 
98  vector<string> fieldnames = CMacroEditorContext::GetInstance().GetFieldNames(m_FieldType);
99  m_Panel->SetControlValues(kField, fieldnames);
100 
101  m_Panel->GetArgumentList().Attach(NMItemData::OnBeforeCheck);
102  m_Panel->GetArgumentList().Attach(NMItemData::OnAfterCheck);
103 }
104 
106 {
109  bool modified = (new_target != m_Target);
110  m_Target = new_target;
111  return modified;
112  }
113  return false;
114 }
115 
117 {
118  string descr = GetDelimiterDescr(m_ArgList) + "in ";
120  descr += "publication ";
121  }
122  descr += m_ArgList[kField].GetValue();
123  return descr;
124 }
125 
127 {
128  string variables;
129  bool value = m_ArgList[kRmvLeft].GetEnabled() && m_ArgList[kRmvLeft].IsTrue() ? true : false;
130  variables += kRmvLeft + " = " + NStr::BoolToString(value) + "\n";
131  value = m_ArgList[kRmvRight].GetEnabled() && m_ArgList[kRmvRight].IsTrue() ? true : false;
132  variables += kRmvRight + " = " + NStr::BoolToString(value) + "\n";
133  variables += kCaseInsensRmv + " = " + m_ArgList[kCaseInsensRmv].GetValue() + "\n";
134  variables += kWholeWordRmv + " = " + m_ArgList[kWholeWordRmv].GetValue();
135  return variables;
136 }
137 
139 {
140  string function;
141  const string& field = m_ArgList[kField].GetValue();
142  if (field.empty()) return function;
143 
146  // place the constraint in the Do section
147  string rt_var = "obj";
148  function = NMItemData::GetResolveFuncForMultiValuedQual(path, rt_var, constraints, true);
149 
150  if (function.empty()) {
152  function += "(\"" + path + "\", ";
153  }
154  else {
156  function += "(" + rt_var + ", ";
157  }
158  }
159  else if (path.find(',') != NPOS) {
160  vector<string> tokens;
161  NStr::Split(path, ",", tokens);
162 
163  _ASSERT(tokens.size() == 2);
164  // it is either an orgmod or a soubsource modifier
165  string rt_var = "obj";
166  function = NMItemData::GetResolveFuncForQual(tokens[0], tokens[1], rt_var, constraints);
167 
169  function += "(\"" + NMItemData::GetEditableFieldForPair(field, rt_var, false) + "\", ";
170  }
172  string rt_var;
173  function = NMItemData::GetResolveFuncForPubQual(field, rt_var, constraints);
174 
176  function += "(" + rt_var + ", ";
177  }
179  string rt_var;
180  bool found_constraint = false;
181  function = NMItemData::GetResolveFuncForDBLink(m_ArgList[kField].GetValue(), rt_var, constraints, found_constraint);
183  if (found_constraint) {
184  function += "(" + rt_var + ", ";
185  }
186  else {
187  function += "(\"" + rt_var + ".data.strs\", ";
188  }
189  }
190  else {
192  function += "(\"" + CMacroEditorContext::GetInstance().GetAsnPathToFieldName(field, m_FieldType) + "\", ";
193  }
194 
197  }
198 
199  function += x_GetMarkedTextFunction() + ", " + kCaseInsensRmv + ", " + kWholeWordRmv + ");";
200  return function;
201 }
202 
204 {
205  string left_del;
206  if (m_ArgList[kBefore].IsTrue()) {
207  if (m_ArgList[kTextLeft].IsTrue()) {
208  left_del = m_ArgList[kDelLeft].GetValue();
209  }
210  else if (m_ArgList[kDigitsLeft].IsTrue()) {
211  left_del = "eDigits";
212  }
213  else if (m_ArgList[kLetterLeft].IsTrue()) {
214  left_del = "eLetters";
215  }
216  }
217 
218  NMItemData::WrapInQuotes(left_del);
219  string function = m_ArgList[kBefore].GetValue() + ", " + left_del + ", " + kRmvLeft + ", ";
220 
221  string right_del;
222  if (m_ArgList[kAfter].IsTrue()) {
223  if (m_ArgList[kTextRight].IsTrue()) {
224  right_del = m_ArgList[kDelRight].GetValue();
225  }
226  else if (m_ArgList[kDigitsRight].IsTrue()) {
227  right_del = "eDigits";
228  }
229  else if (m_ArgList[kLetterRight].IsTrue()) {
230  right_del = "eLetters";
231  }
232  }
233 
234  NMItemData::WrapInQuotes(right_del);
235  function += m_ArgList[kAfter].GetValue() + ", " + right_del + ", " + kRmvRight;
236  return function;
237 }
238 
240 {
241  vector<string> funcs{ CMacroFunction_RemoveOutside::GetFuncName(), CMacroFunction_Resolve::GetFuncName() };
242 
244  auto pub_fncs = x_GetPubFunctions();
245  funcs.reserve(funcs.size() + pub_fncs.size());
246  funcs.insert(funcs.end(), pub_fncs.begin(), pub_fncs.end());
247  }
248  return funcs;
249 }
250 
251 
252 // CRmvOutsideBsrcTreeItemData
254  : CRmvOutsideQualTreeItemData("Remove text outside string in biosource qualifiers", EMacroFieldType::eBiosourceText)
255 {
256 }
257 
258 const vector<string>& CRmvOutsideBsrcTreeItemData::GetKeywords() const
259 {
261 }
262 
264 {
265  TArgumentsVector args{ GetBsrcArgs()[0], GetBsrcArgs()[1] };
266  copy(GetDelimiterArgs().begin(), GetDelimiterArgs().end(), back_inserter(args));
267  copy(GetRmvOutsideArgs().begin(), GetRmvOutsideArgs().end(), back_inserter(args));
268  x_LoadPanel(parent, "RemoveOutsideStringSourceQual", args);
269 
271  m_Panel->SetControlValues(kField, fieldnames);
272 
273  m_Panel->GetArgumentList().Attach(NMItemData::OnBeforeCheck);
274  m_Panel->GetArgumentList().Attach(NMItemData::OnAfterCheck);
275 }
276 
278 {
279  if (m_ArgList[kField].Empty()) return kEmptyStr;
280  string function;
283  if (path.find(',') != NPOS) {
284  vector<string> tokens;
285  NStr::Split(path, ",", tokens);
286 
287  _ASSERT(tokens.size() == 2);
288  // it is either an orgmod or a soubsource modifier
289  string rt_var = "obj";
290  function = NMItemData::GetResolveFuncForQual(tokens[0], tokens[1], rt_var, constraints);
291 
293  function += "(\"" + NMItemData::GetEditableFieldForPair(m_ArgList[kField].GetValue(), rt_var, false) + "\", ";
294  }
295  else {
297  function += "(\"" + path + "\", ";
298  }
299 
300  function += x_GetMarkedTextFunction() + ", " + kCaseInsensRmv + ", " + kWholeWordRmv + ");";
301  return function;
302 }
303 
305 {
306  return { CMacroFunction_Resolve::GetFuncName(), CMacroFunction_RemoveOutside::GetFuncName() };
307 }
308 
309 
310 // CRmvOutsideStrCommQualTreeItemData
312  : CRmvOutsideQualTreeItemData("Remove text outside string in structured comment fields", EMacroFieldType::eStructComment)
313 {
314 }
315 
317 {
319  copy(GetRmvOutsideArgs().begin(), GetRmvOutsideArgs().end(), back_inserter(args));
320  args.push_back(GetOptionalArgs()[5]);
321  x_LoadPanel(parent, "RemoveOutsideStringStrCommQual", args);
322 
323  vector<string> fieldnames = CMacroEditorContext::GetInstance().GetFieldNames(m_FieldType);
324  m_Panel->SetControlValues(kField, fieldnames);
325  m_Panel->SetSelection(kField, 0);
326 
327  m_Panel->GetArgumentList().Attach(NMItemData::OnStructCommFieldChanged);
328  m_Panel->GetArgumentList().Attach(NMItemData::OnBeforeCheck);
329  m_Panel->GetArgumentList().Attach(NMItemData::OnAfterCheck);
330 }
331 
333 {
334  string descr = GetDelimiterDescr(m_ArgList) + "in ";
336  return descr;
337 }
338 
340 {
341  string field_name = (m_ArgList[kStrCommField].GetShown()) ? m_ArgList[kStrCommField].GetValue() : kEmptyStr;
342  string rt_var = "obj";
343  string function = NMItemData::GetResolveFuncForStrCommQual(m_ArgList[kField].GetValue(), field_name, rt_var, constraints);
344 
345 
347  if (NStr::EqualNocase(m_ArgList[kField].GetValue().get(), "Field name")) {
348  function += "(\"" + rt_var + ".label.str\", ";
349  }
350  else {
351  function += "(\"" + rt_var + ".data.str\", ";
352  }
353 
354  function += x_GetMarkedTextFunction() + ", " + kCaseInsensRmv + ", " + kWholeWordRmv + ");";
355  return function;
356 }
357 
359 {
360  return { CMacroFunction_RemoveOutside::GetFuncName(), CMacroFunction_Resolve::GetFuncName() };
361 }
362 
363 // CRmvOutsideRNAQualTreeItemData
365  : CRmvOutsideQualTreeItemData("Remove text outside string in RNA qualifiers", EMacroFieldType::eRNA)
366 {
367 }
368 
370 {
372  copy(GetRmvOutsideArgs().begin(), GetRmvOutsideArgs().end(), back_inserter(args));
373  args.push_back(GetOptionalArgs()[3]);
374  args.push_back(GetOptionalArgs()[4]);
375  x_LoadPanel(parent, "RemoveOutsideStringRNAQual", args);
376 
377  vector<string> rnas = CMacroEditorContext::GetInstance().GetRNATypes();
378  m_Panel->SetControlValues(kRNAType, rnas);
379  m_Panel->SetSelection(kRNAType, 0);
380  vector<string> class_types = CMacroEditorContext::GetInstance().GetncRNAClassTypes();
381  m_Panel->SetControlValues(kncRNAClass, class_types);
382  vector<string> fieldnames = CMacroEditorContext::GetInstance().GetFieldNames(m_FieldType);
383  m_Panel->SetControlValues(kField, fieldnames);
384 
385  m_Panel->GetArgumentList().Attach(NMItemData::OnRnaTypeChanged);
386  m_Panel->GetArgumentList().Attach(NMItemData::OnBeforeCheck);
387  m_Panel->GetArgumentList().Attach(NMItemData::OnAfterCheck);
388 }
389 
391 {
393  bool modified = (new_target != m_Target);
394  m_Target = new_target;
395  m_SelectedField = m_ArgList[kRNAType].GetValue();
396  return modified;
397 }
398 
400 {
401  string descr = GetDelimiterDescr(m_ArgList) + "in ";
402  if (m_ArgList[kncRNAClass].GetEnabled() && !m_ArgList[kncRNAClass].Empty()) {
403  descr += " " + m_ArgList[kncRNAClass].GetValue();
404  }
405  descr += " " + m_ArgList[kRNAType].GetValue() + " ";
406  if (m_ArgList[kRNAType].GetValue() == "any") {
407  descr += "RNA ";
408  }
409  descr += m_ArgList[kField].GetValue();
410  return descr;
411 }
412 
414 {
416 
417  string function;
418  if (NStr::StartsWith(m_ArgList[kField].GetValue().get(), "gene")) {
420  NMItemData::WrapInQuotes(gene_field);
422  function += "(\"gene\", " + gene_field + ", ";
423  }
424  else {
425  string path = CMacroEditorContext::GetInstance().GetAsnPathToFieldName(m_ArgList[kRNAType].GetValue() + " " + m_ArgList[kField].GetValue(), m_FieldType);
426  if (path.find(',') != NPOS) {
427  vector<string> tokens;
428  NStr::Split(path, ",", tokens);
429 
430  _ASSERT(tokens.size() == 2);
431  string rt_var = "obj";
432  function = NMItemData::GetResolveFuncForQual(tokens[0], tokens[1], rt_var, constraints);
433 
435  function += "(\"" + NMItemData::GetEditableFieldForPair(tokens[1], rt_var, true) + "\", ";
436  }
437  else {
439  function += "(\"" + path + "\", ";
440  }
441  }
442 
443  function += x_GetMarkedTextFunction() + ", " + kCaseInsensRmv + ", " + kWholeWordRmv + ");";
444  return function;
445 }
446 
448 {
449  return { CMacroFunction_Resolve::GetFuncName(), CMacroFunction_RemoveOutside::GetFuncName(), CMacroFunction_RmvOutsideRelFeatQual::GetFuncName() };
450 }
451 
452 
453 // CRmvOutsideProteinQualTreeItemData
455  : CRmvOutsideQualTreeItemData("Remove text outside string in protein (CDS product) fields", EMacroFieldType::eProtein)
456 {
457 }
458 
460 {
462  copy(GetRmvOutsideArgs().begin(), GetRmvOutsideArgs().end(), back_inserter(args));
463  args.push_back(GetOptionalArgs()[2]);
464  x_LoadPanel(parent, "RemoveOutsideStringProteinQual", args);
465 
466  vector<string> fieldnames = CMacroEditorContext::GetInstance().GetFieldNames(m_FieldType);
467  m_Panel->SetControlValues(kField, fieldnames);
468 
469  m_Panel->GetArgumentList().Attach(NMItemData::OnBeforeCheck);
470  m_Panel->GetArgumentList().Attach(NMItemData::OnAfterCheck);
471  m_Panel->GetArgumentList().Attach(NMItemData::OnProteinNameSingle);
472 }
473 
475 {
478  return descr;
479 }
480 
482 {
484 }
485 
487 {
488  string function;
491  // place the constraint in the Do section
492  string rt_var = "obj";
493  bool remove_constraint = true;
494  string res_function = NMItemData::GetResolveFuncForMultiValuedQual(path, rt_var, constraints, remove_constraint);
495 
496  if (res_function.empty()) {
498  function += "(\"" + path + "\", ";
499  }
500  else {
501  function += res_function;
503  function += "(" + rt_var + ", ";
504  }
505  }
506  else {
508  function += "(\"" + path + "\", ";
509  }
510 
511  function += x_GetMarkedTextFunction();
512  function += ", " + kCaseInsensRmv + ", " + kWholeWordRmv + ", " + kUpdatemRNA + ");";
513  return function;
514 }
515 
517 {
518  return { CMacroFunction_Resolve::GetFuncName(),
520 }
521 
522 // CRmvOutsideFeatQualTreeItemData
524  : CRmvOutsideQualTreeItemData("Remove text outside string in feature qualifiers", EMacroFieldType::eFeatQualifiers)
525 {
526 }
527 
529 {
531  copy(GetRmvOutsideArgs().begin() + 1, GetRmvOutsideArgs().end(), back_inserter(args));
532  for (size_t index = 0; index < 3; ++index) {
533  args.push_back(GetOptionalArgs()[index]);
534  }
535  x_LoadPanel(parent, "RemoveOutsideStringFeatureQual", args);
536 
537  vector<string> features = CMacroEditorContext::GetInstance().GetFeatureTypes();
538  m_Panel->SetControlValues(kFeatType, features);
539  vector<string> qualifiers = CMacroEditorContext::GetInstance().GetFeatQualifiers();
540  m_Panel->SetControlValues(kFeatQual, qualifiers);
541 
542  m_Panel->GetArgumentList().Attach(NMItemData::OnBeforeCheck);
543  m_Panel->GetArgumentList().Attach(NMItemData::OnAfterCheck);
544  m_Panel->GetArgumentList().Attach(NMItemData::OnProteinNameSingle);
545 }
546 
548 {
550  bool modified = (new_target != m_Target);
551  m_Target = new_target;
552  m_SelectedField = m_ArgList[kFeatType].GetValue();
553  return modified;
554 }
555 
557 {
558  string descr = GetDelimiterDescr(m_ArgList) + "in ";
559  descr += m_ArgList[kFeatType].GetValue() + " " + m_ArgList[kFeatQual].GetValue();
561  return descr;
562 }
563 
565 {
567 }
568 
570 {
572 
573  string function;
576  // place the constraint in the Do section
577  string rt_var = "obj";
578  bool remove_constraint = true;
579  function = NMItemData::GetResolveFuncForMultiValuedQual(path, rt_var, constraints, remove_constraint);
580 
581  if (function.empty()) {
583  function += "(\"" + path + "\", ";
584  }
585  else {
587  function += "(" + rt_var + ", ";
588  }
589  }
590  else if (path.find(',') != NPOS) {
591  vector<string> tokens;
592  NStr::Split(path, ",", tokens);
593  _ASSERT(tokens.size() == 2);
594 
595  string rt_var = "obj";
596  if (!NStr::EqualNocase(m_ArgList[kFeatType].GetValue().get(), "gene") && CMacroEditorContext::s_IsGeneQualifier(tokens[1])) {
597  function = NMItemData::GetResolveFuncForGeneQuals(tokens[0], tokens[1], rt_var, constraints);
598 
600  function += "(" + rt_var + ", ";
601  }
602  else {
603  function = NMItemData::GetResolveFuncForQual(tokens[0], tokens[1], rt_var, constraints);
604 
606  function += "(\"" + NMItemData::GetEditableFieldForPair(m_ArgList[kFeatQual].GetValue(), rt_var, true) + "\", ";
607  }
608  }
609  else {
611  function += "(\"" + path + "\", ";
612  }
613 
614  function += x_GetMarkedTextFunction();
615  function += ", " + kCaseInsensRmv + ", " + kWholeWordRmv + ", " + kUpdatemRNA + ");";
616  return function;
617 }
618 
619 
620 
621 
EMacroFieldType m_FieldType
for actions such as appply/edit/etc.
vector< string > x_GetPubFunctions() const
static bool s_IsGeneQualifier(const string &field)
vector< string > GetFeatureTypes(bool for_removal=false, bool to_create=false, bool include_all=false) const
vector< string > GetRNATypes() const
string GetAsnPathToFieldName(const string &field, EMacroFieldType type, const string &target=kEmptyStr)
vector< string > GetncRNAClassTypes(bool include_any=true) const
static CMacroEditorContext & GetInstance()
vector< string > GetFeatQualifiers() const
const vector< string > & GetBsrcKeywords() const
vector< string > GetFieldNames(EMacroFieldType type) const
virtual void x_AddParamPanel(wxWindow *parent)
virtual const vector< string > & GetKeywords() const
virtual vector< string > GetFunctionNames() const
virtual string GetFunction(TConstraints &constraints) const
virtual string GetFunction(TConstraints &constraints) const
virtual void x_AddParamPanel(wxWindow *parent)
virtual void x_AddParamPanel(wxWindow *parent)
virtual string GetFunction(TConstraints &constraints) const
virtual vector< string > GetFunctionNames() const
virtual string GetMacroDescription() const
virtual vector< string > GetFunctionNames() const
virtual string GetFunction(TConstraints &constraints) const
virtual void x_AddParamPanel(wxWindow *parent)
CRmvOutsideQualTreeItemData(const string &description, EMacroFieldType type)
virtual void x_AddParamPanel(wxWindow *parent)
virtual vector< string > GetFunctionNames() const
virtual string GetFunction(TConstraints &constraints) const
virtual vector< string > GetFunctionNames() const
virtual void x_AddParamPanel(wxWindow *parent)
virtual string GetFunction(TConstraints &constraints) const
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
Definition: tempstr.hpp:65
void x_LoadPanel(wxWindow *parent, const string &panel_name, const TArgumentsVector &arguments)
unique_ptr< CMacroPanelLoader > m_Panel
constructed panel for specifying function arguments
vector< pair< string, string > > TConstraints
bool Empty(const CNcbiOstrstream &src)
Definition: fileutil.cpp:523
#define true
Definition: bool.h:35
static CTempString GetFuncName()
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define kEmptyStr
Definition: ncbistr.hpp:123
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
Definition: ncbistr.cpp:3452
#define NPOS
Definition: ncbistr.hpp:133
static const string BoolToString(bool value)
Convert bool to string.
Definition: ncbistr.cpp:2806
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
Definition: ncbistr.hpp:5406
static bool EqualNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive equality of a substring with another string.
Definition: ncbistr.hpp:5347
vector< macro::SArgMetaData > TArgumentsVector
USING_SCOPE(objects)
CTempString UpdateTargetForFeatures(const string &feature, const string &qualifier, bool for_removal=false)
string GetResolveFuncForDBLink(const string &field, string &rt_var, TConstraints &constraints, bool &found_constraint)
void OnStructCommFieldChanged(CArgumentList &list, CArgument &arg)
bool MultipleValuesAllowed(const string &field)
void UpdateConstraintsForFeatures(TConstraints &constraints, const string &feature)
string GetStructCommQualDescr(const CArgumentList &arg_list)
string GetResolveFuncForMultiValuedQual(const string &field, const string &rt_var, TConstraints &constraints, bool remove_constraint)
string GetResolveFuncForQual(const string &container, const string &field, const string &rt_var, TConstraints &constraints, bool remove_constraint=true)
Generates the definition of rt_var based on input "field".
string GetUpdatemRNADescription(const CArgument &arg)
void OnProteinNameSingle(CArgumentList &list, CArgument &arg)
CTempString UpdateTargetForMolinfo(const string &molinfo_type)
string GetResolveFuncForGeneQuals(const string &container, const string &field, const string &rt_var, TConstraints &constraints, bool remove_constraint=true)
void OnAfterCheck(CArgumentList &list, CArgument &arg)
string GetDelimiterDescr(const string &del)
CTempString UpdateTargetForRnas(const string &rna_type)
void WrapInQuotes(string &str)
string GetEditableFieldForPair(const string &field, const string &rt_var, bool is_feature)
string GetResolveFuncForStrCommQual(const string &field, const string &field_name, const string &rt_var, TConstraints &constraints)
EMacroFieldType GetSourceTypeInSinglePanel(const CArgumentList &arg_list)
void OnRnaTypeChanged(CArgumentList &list, CArgument &arg)
void UpdateConstraintsForRnas(TConstraints &constraints, const CArgumentList &arg_list)
void UpdateConstraintsForMisc(TConstraints &constraints, const string &fieldname, const string &target)
void OnBeforeCheck(CArgumentList &list, CArgument &arg)
string GetResolveFuncForPubQual(const string &field, string &rt_var, TConstraints &constraints)
string GetUpdatemRNAVar(const CArgumentList &arg_list)
const TArgumentsVector & GetRmvOutsideArgs()
const string kDigitsRight
const string kLetterRight
const string kTextLeft
const string kRmvLeft
const string kBefore
const string kFeatQual
const string kField
const string kDigitsLeft
const string kLetterLeft
const string kAfter
const string kRNAType
const TArgumentsVector & GetDelimiterArgs()
const string kncRNAClass
const string kWholeWordRmv
const TArgumentsVector & GetOptionalArgs()
const string kDelLeft
const string kFeatType
const string kDelRight
const TArgumentsVector & GetBsrcArgs()
const string kTextRight
const string kRmvRight
const string kUpdatemRNA
const string kStrCommField
const string kCaseInsensRmv
constexpr bool empty(list< Ts... >) noexcept
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1227
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
Definition: njn_matrix.hpp:613
static int match(PCRE2_SPTR start_eptr, PCRE2_SPTR start_ecode, uint16_t top_bracket, PCRE2_SIZE frame_size, pcre2_match_data *match_data, match_block *mb)
Definition: pcre2_match.c:594
Definition: type.c:6
#define _ASSERT
Modified on Fri Sep 20 14:57:31 2024 by modify_doxy.py rev. 669887