aboutsummaryrefslogtreecommitdiff
path: root/libbutl/tab-parser.mxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2021-09-28 19:24:31 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2021-09-28 20:29:59 +0300
commitdf1ef68cd8e8582724ce1192bfc202e0b9aeaf0c (patch)
treeb731ca4c68e60c00c7e7d499dbf4868ee7b71f44 /libbutl/tab-parser.mxx
parent7a4fc37f264cdb67f2f83fa92703c869215bbc86 (diff)
Get rid of C++ modules related code and rename *.mxx files to *.hxx
Diffstat (limited to 'libbutl/tab-parser.mxx')
-rw-r--r--libbutl/tab-parser.mxx84
1 files changed, 0 insertions, 84 deletions
diff --git a/libbutl/tab-parser.mxx b/libbutl/tab-parser.mxx
deleted file mode 100644
index a7f7e01..0000000
--- a/libbutl/tab-parser.mxx
+++ /dev/null
@@ -1,84 +0,0 @@
-// file : libbutl/tab-parser.mxx -*- C++ -*-
-// license : MIT; see accompanying LICENSE file
-
-#ifndef __cpp_modules_ts
-#pragma once
-#endif
-
-// C includes.
-
-#ifndef __cpp_lib_modules_ts
-#include <iosfwd>
-#include <string>
-#include <vector>
-#include <cstdint> // uint64_t
-#include <stdexcept> // runtime_error
-#endif
-
-// Other includes.
-
-#ifdef __cpp_modules_ts
-export module butl.tab_parser;
-#ifdef __cpp_lib_modules_ts
-import std.core;
-import std.io;
-#endif
-#endif
-
-#include <libbutl/export.hxx>
-
-LIBBUTL_MODEXPORT namespace butl
-{
- class LIBBUTL_SYMEXPORT tab_parsing: public std::runtime_error
- {
- public:
- tab_parsing (const std::string& name,
- std::uint64_t line,
- std::uint64_t column,
- const std::string& description);
-
- std::string name;
- std::uint64_t line;
- std::uint64_t column;
- std::string description;
- };
-
- // Line and columns are useful for issuing diagnostics about invalid or
- // missing fields.
- //
- struct tab_field
- {
- std::string value; // Field string (quoting preserved).
- std::uint64_t column; // Field start column number (one-based).
- };
-
- struct tab_fields: std::vector<tab_field>
- {
- std::uint64_t line; // Line number (one-based).
- std::uint64_t end_column; // End-of-line column (line length).
- };
-
- // Read and parse lines consisting of space-separated fields. Field can
- // contain single or double quoted substrings (with spaces) which are
- // interpreted but preserved. No escaping of the quote characters is
- // supported. Blank lines and lines that start with # (collectively called
- // empty lines) are ignored.
- //
- class LIBBUTL_SYMEXPORT tab_parser
- {
- public:
- tab_parser (std::istream& is, const std::string& name)
- : is_ (is), name_ (name) {}
-
- // Return next line of fields. Skip empty lines. Empty result denotes the
- // end of stream.
- //
- tab_fields
- next ();
-
- private:
- std::istream& is_;
- const std::string name_;
- std::uint64_t line_ = 0;
- };
-}