aboutsummaryrefslogtreecommitdiff
path: root/butl/tab-parser.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'butl/tab-parser.cxx')
-rw-r--r--butl/tab-parser.cxx88
1 files changed, 0 insertions, 88 deletions
diff --git a/butl/tab-parser.cxx b/butl/tab-parser.cxx
deleted file mode 100644
index 4743e69..0000000
--- a/butl/tab-parser.cxx
+++ /dev/null
@@ -1,88 +0,0 @@
-// file : butl/tab-parser.cxx -*- C++ -*-
-// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
-// license : MIT; see accompanying LICENSE file
-
-#include <butl/tab-parser>
-
-#include <cassert>
-#include <sstream>
-
-#include <butl/string-parser>
-
-using namespace std;
-
-namespace butl
-{
- using parsing = tab_parsing;
-
- // tab_parser
- //
- tab_fields tab_parser::
- next ()
- {
- tab_fields r;
-
- // Read lines until a non-empty one or EOF is encountered. In the first
- // case parse the line and bail out.
- //
- // Note that we check for character presence in the stream prior to the
- // getline() call, to prevent it from setting the failbit.
- //
- while (!is_.eof () && is_.peek () != istream::traits_type::eof ())
- {
- string s;
- getline (is_, s);
-
- ++line_;
-
- // Skip empty line.
- //
- auto i (s.begin ());
- auto e (s.end ());
- for (; i != e && (*i == ' ' || *i == '\t'); ++i) ; // Skip spaces.
-
- if (i == e || *i == '#')
- continue;
-
- r.line = line_;
- r.end_column = s.size () + 1; // Newline position.
-
- vector<std::pair<string, size_t>> sp;
-
- try
- {
- sp = string_parser::parse_quoted_position (s, false);
- }
- catch (const invalid_string& e)
- {
- throw parsing (name_, line_, e.position + 1, e.what ());
- }
-
- for (auto& s: sp)
- r.emplace_back (tab_field ({move (s.first), s.second + 1}));
-
- break;
- }
-
- return r;
- }
-
- // tab_parsing
- //
- static string
- format (const string& n, uint64_t l, uint64_t c, const string& d)
- {
- ostringstream os;
- if (!n.empty ())
- os << n << ':';
- os << l << ':' << c << ": error: " << d;
- return os.str ();
- }
-
- tab_parsing::
- tab_parsing (const string& n, uint64_t l, uint64_t c, const string& d)
- : runtime_error (format (n, l, c, d)),
- name (n), line (l), column (c), description (d)
- {
- }
-}