58 throw std::runtime_error(
"Error in DefaultParser: out of bounds.");
66 return it ==
m_parsedData.end() ? std::vector<std::string>() : it->second;
71 std::vector<std::vector<std::string>> result;
74 result.push_back(it->second);
accept_int_t m_isSkipLineNumber
accept_string_t m_isValidLineContent
std::vector< std::vector< std::string > > parsedData() const override
Returns 2D vector representing parsed text. Skipped lines are not present.
std::map< size_t, std::vector< std::string > > m_parsedData
DefaultParser(const ParserOptions &options)
std::string getLine(size_t index) const override
Returns a pair representing raw line and flag describing parsing results.
std::vector< std::string > m_rawData
correspondence of parsed data to original line index
line_splitter_t m_line_splitter
void process(const std::vector< std::string > &raw_data) override
Parse data representing content of ASCII file.
std::vector< std::string > parseResults(size_t index) const override
Returns parsed text for given line index.
size_t totalLineCount() const override
Returns total number of lines in raw data.
DAREFLCORE_EXPORT accept_int_t CreateLineNumberPatternValidator(const std::string &pattern)
Creates a callback to define if given line number satisfies line number pattern.
DAREFLCORE_EXPORT line_splitter_t CreateSeparatorBasedSplitter(const std::string &separator)
Creates line splitter based on separator.
DAREFLCORE_EXPORT accept_string_t CreateLinePrefixValidator(const std::string &prefix_to_exclude)
Creates a callback to define if given line has a valid content for further parsing.
Based on Qt example "codeeditor" Copyright (C) 2016 The Qt Company Ltd.
Parser options to process multi column ASCII files.
std::string m_skip_index_pattern
pattern denoting line to skip (i.e. '1,10-12,42')
std::string m_header_prefix
prefix denoting header line
std::string m_separator
column separator