26#define BOOST_SPIRIT_NO_PREDEFINED_TERMINALS
27#define BOOST_SPIRIT_QI_DEBUG
43 template <attributes A>
46 std::string attributeString;
49 attributeString =
"symbol";
52 attributeString =
"format_string";
55 attributeString =
"field_length";
60 std::cerr << attributeString <<
" not supported yet" << std::endl;
65 bool parse(
const std::string& input,
size_t& pos) {
67 switch (*this->type_m) {
71 this->values_m.push_back(f);
80 this->values_m.push_back(d);
89 this->values_m.push_back(s);
98 this->values_m.push_back(l);
107 this->values_m.push_back(c);
116 this->values_m.push_back(s);
129 template <
typename Iterator>
131 template <
typename,
typename>
140 if (col.
name_m) out <<
"name = " << *col.
name_m <<
", ";
141 if (col.
type_m) out <<
"type = " << *col.
type_m <<
", ";
144 out <<
"order = " << col.
order_m;
bool parseQuotedString(std::string &value)
size_t getPosition() const
bool parseLong(long &value)
bool parseChar(char &value)
bool parseFloat(float &value)
bool parseDouble(double &value)
bool parseShort(short &value)
std::vector< variant_t > columnData_t
std::ostream & operator<<(std::ostream &out, const array &)
void operator()(column &col, Iterator) const
std::optional< std::string > name_m
std::optional< ast::datatype > type_m
bool parse(const std::string &input, size_t &pos)
ast::columnData_t values_m
bool checkMandatories() const
std::optional< std::string > units_m
std::optional< std::string > description_m
static unsigned int count_m