Vince's CSV Parser
|
Abstract base class which provides CSV parsing logic. More...
#include <basic_csv_parser.hpp>
Inherited by csv::internals::MmapParser, and csv::internals::StreamParser< TStream >.
Public Member Functions | |
IBasicCSVParser (const CSVFormat &, const ColNamesPtr &) | |
IBasicCSVParser (const ParseFlagMap &parse_flags, const WhitespaceMap &ws_flags) | |
bool | eof () |
Whether or not we have reached the end of source. | |
virtual void | next (size_t bytes)=0 |
Parse the next block of data. | |
void | end_feed () |
Indicate the last block of data has been parsed. | |
CONSTEXPR_17 ParseFlags | parse_flag (const char ch) const noexcept |
CONSTEXPR_17 ParseFlags | compound_parse_flag (const char ch) const noexcept |
CONSTEXPR bool | utf8_bom () const |
Whether or not this CSV has a UTF-8 byte order mark. | |
void | set_output (RowCollection &rows) |
Protected Member Functions | |
CONSTEXPR bool | no_chunk () const |
Whether or not source needs to be read in chunks. | |
size_t | parse () |
Parse the current chunk of data *. More... | |
void | reset_data_ptr () |
Create a new RawCSVDataPtr for a new chunk of data. | |
Protected Attributes | |
Current Parser State | |
CSVRow | current_row |
RawCSVDataPtr | data_ptr = nullptr |
ColNamesPtr | _col_names = nullptr |
CSVFieldList * | fields = nullptr |
int | field_start = UNINITIALIZED_FIELD |
size_t | field_length = 0 |
ParseFlagMap | _parse_flags |
An array where the (i + 128)th slot gives the ParseFlags for ASCII character i. | |
Current Stream/File State | |
bool | _eof = false |
size_t | source_size = 0 |
The size of the incoming CSV. | |
Abstract base class which provides CSV parsing logic.
Concrete implementations may customize this logic across different input sources, such as memory mapped files, stringstreams, etc...
Definition at line 195 of file basic_csv_parser.hpp.
|
protected |
Parse the current chunk of data *.
Definition at line 122 of file basic_csv_parser.cpp.