29 #ifndef _MOD_READER_HPP_
30 #define _MOD_READER_HPP_
33 #include <unordered_map>
34 #include <unordered_set>
46 template<
typename _T1,
typename _T2>
47 CModData(_T1&& name, _T2&&
value) : m_name{ std::forward<_T1>(name) }, m_value{ std::forward<_T2>(
value) }
54 m_name = std::forward<_T>(name);
60 m_value = std::forward<_T>(
value);
65 m_attrib = std::forward<_T>(attrib);
69 return !m_attrib.empty();
108 void SetExcludedMods(
const vector<string>& excluded_mods);
109 void SetIgnoredMods(
const list<string>& ignored_mods);
116 void SetMods(
const TMods& mods);
118 const TMods& GetMods(
void)
const;
122 static const string& GetCanonicalName(
const TModEntry& mod_entry);
123 static const string& AssertReturnSingleValue(
const TModEntry& mod_entry);
124 static string GetCanonicalName(
const string& name);
127 static string x_GetNormalizedString(
const string& name);
128 static bool x_MultipleValuesAllowed(
const string& canonical_name);
129 static bool x_IsDeprecated(
const string& canonical_name);
171 static const string& x_GetModName(
const TModEntry& mod_entry);
172 static const string& x_GetModValue(
const TModEntry& mod_entry);
174 static bool x_TrySeqInstMod(
const TModEntry& mod_entry,
179 static void x_SetStrand(
const TModEntry& mod_entry,
184 static void x_SetMolecule(
const TModEntry& mod_entry,
189 static void x_SetMoleculeFromMolType(
const TModEntry& mod_entry,
192 static void x_SetTopology(
const TModEntry& mod_entry,
197 static void x_SetHist(
const TModEntry& mod_entry,
200 static void x_ReportInvalidValue(
const CModData& mod_data,
237 static bool x_FindBrackets(
const CTempString& line,
size_t& start,
size_t& stop,
size_t& eq_pos);
IObjtoolsListener * m_pMessageListener
list< CModData > TModList
FReportError FPostMessage
list< CModData > TSkippedMods
CModHandler::FReportError FReportError
CModHandler::TModEntry TModEntry
bool IsSetAttrib(void) const
CModData(_T1 &&name, _T2 &&value)
void SetAttrib(_T &&attrib)
const string & GetValue(void) const
void SetValue(_T &&value)
const string & GetName(void) const
const string & GetAttrib(void) const
function< void(const CModData &mod, const string &message, EDiagSev severity, EModSubcode subcode)> FReportError
map< string, list< CModData > > TMods
TNameSet m_IgnoredModifiers
list< CModData > TModList
unordered_map< string, string > TNameMap
TNameSet m_ExcludedModifiers
static const TNameMap sm_NameMap
static const TNameSet sm_MultipleValuesForbidden
static const TNameSet sm_DeprecatedModifiers
unordered_set< string > TNameSet
TMods::value_type TModEntry
CTempString implements a light-weight string on top of a storage buffer whose lifetime management is ...
CModHandler::TModList TModList
Include a standard set of the NCBI C++ Toolkit most basic headers.
EDiagSev
Severity level for the posted diagnostics.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
#define NCBI_XOBJREAD_EXPORT
double value_type
The numeric datatype used by the parser.
const GenericPointer< typename T::ValueType > T2 value
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)