API documentation

#include <textparser.h>

Type definitions

using CCP = char const*

Pointer to a constant string.

using CCPC = CCP const

Constant pointer to a constant string.

Functions

bool strmatch(CCPC begin, CCPC end, CCPC str)

String comparison.

Parameters:
  • begin[in] Pointer to the first C string.

  • end[in] Pointer to end of the first C string.

  • str[in] Pointer to the second C string.

Types

template<class T>
struct Container_

Generic container.

Template Parameters:

T – Value type.

Subclassed by Category< T, labels >, Number< T, base >

Public Members

T value

Value.

template<class T, size_t base>
struct Number : public Container_<T>

Integer number.

Template Parameters:
  • T – Integer type.

  • base – Integer base.

template<CCP truth>
struct Bool : public Container_<bool>

Boolean.

Template Parameters:

truth – Truth value.

template<class T, CCP *labels>
struct Category : public Container_<T>

Category.

Template Parameters:
  • T – Integer type.

  • labels – Labels.

Class definitions

class TextParser

Line based text parser.

Public Functions

TextParser(CCPC delimiter)

Constructor.

Parameters:

delimiter[in] Field delimiter.

TextParser(CCPC delimiter, CCPC eol)

Constructor.

Parameters:
  • delimiter[in] Field delimiter.

  • eol[in] Line delimiter.

void parse(char &result, CCPC begin, CCPC end) const

Parse a field.

Parameters:
  • result[out] Result.

  • begin[in] Pointer to C string.

  • end[in] Pointer to end of C string.

void parse(double &result, CCPC begin, CCPC end) const

Parse a field.

Parameters:
  • result[out] Result.

  • begin[in] Pointer to C string.

  • end[in] Pointer to end of C string.

void parse(float &result, CCPC begin, CCPC end) const

Parse a field.

Parameters:
  • result[out] Result.

  • begin[in] Pointer to C string.

  • end[in] Pointer to end of C string.

template<size_t n>
void parse(char (&result)[n], CCPC begin, CCPC end) const

Parse a field.

Template Parameters:

n – String length.

Parameters:
  • result[out] Result.

  • begin[in] Pointer to C string.

  • end[in] Pointer to end of C string.

template<CCP truth>
void parse(Bool<truth> &result, CCPC begin, CCPC end) const

Parse a field.

Template Parameters:

truth – Truth value.

Parameters:
  • result[out] Result.

  • begin[in] Pointer to C string.

  • end[in] Pointer to end of C string.

template<class T, size_t base>
void parse(Number<T, base> &result, CCPC begin, CCPC end) const

Parse a field.

Template Parameters:
  • T – Integer type.

  • base – Integer base.

Parameters:
  • result[out] Result.

  • begin[in] Pointer to C string.

  • end[in] Pointer to end of C string.

template<class T, CCP *labels>
void parse(Category<T, labels> &result, CCPC begin, CCPC end) const

Parse a field.

Template Parameters:
  • T – Integer type.

  • labels – Labels.

Parameters:
  • result[out] Result.

  • begin[in] Pointer to C string.

  • end[in] Pointer to end of C string.

template<class T>
void parse(T &result, CCPC begin, CCPC end) const

Parse a field.

Template Parameters:

T – Integer type.

Parameters:
  • result[out] Result.

  • begin[in] Pointer to C string.

  • end[in] Pointer to end of C string.

template<class ...Ts>
void parseLine(CCPC line, Ts&... args) const

Parse a line.

Template Parameters:

Ts – Output variable types.

Parameters:
  • line[in] Line to be parsed.

  • args[out] Variables to hold the parsed data.