From 018e1ba581ec6f01f069a45ec4cf89f152b44d5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Wed, 19 Mar 2025 15:41:36 +0100 Subject: remerge --- xsd/type-map/lexer.cxx | 131 ------------------------------------------------- 1 file changed, 131 deletions(-) delete mode 100644 xsd/type-map/lexer.cxx (limited to 'xsd/type-map/lexer.cxx') diff --git a/xsd/type-map/lexer.cxx b/xsd/type-map/lexer.cxx deleted file mode 100644 index ae318d1..0000000 --- a/xsd/type-map/lexer.cxx +++ /dev/null @@ -1,131 +0,0 @@ -// file : xsd/type-map/lexer.cxx -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#include - -#include - -using std::wcerr; -using std::endl; - -namespace TypeMap -{ - Lexer::Lexer (std::istream& is, String const& path) - : locale_ ("C"), is_ (is), path_ (path), line_ (1), comment_ (false) - { - is_.exceptions (std::ios_base::badbit); - } - - Lexer::Token Lexer:: - next () - { - if (held_lexeme_) - { - Token t (Token::punct, held_lexeme_, line_); - held_lexeme_.clear (); - return t; - } - - typedef std::char_traits Traits; - typedef Traits::char_type CharType; - typedef Traits::int_type IntType; - - IntType i; - CharType c ('\0'); - NarrowString lexeme; - - // Skip all whitespaces including comments. - // - while (!is_.eof ()) - { - i = is_.get (); - - if (i == Traits::eof ()) - break; - - c = Traits::to_char_type (i); - - if (comment_) - { - if (c == '\n') - comment_ = false; - } - else - { - if (!(std::isspace (c, locale_) || c == '#')) - break; - - if (c == '#') - comment_ = true; - } - - if (c == '\n') - ++line_; - } - - if (is_.eof ()) - return Token (Token::eos, L"", line_); - - bool quote (c == '"'); - - if (!quote) - lexeme += c; - - if (c != ';' && c != '{' && c != '}') - { - // Accumulate non-whitespace character sequence. - // - - while (!is_.eof ()) - { - i = is_.get (); - - if (i == Traits::eof ()) - break; - - c = Traits::to_char_type (i); - - if (!quote && c == '#') - { - comment_ = true; - break; - } - - if (std::isspace (c, locale_)) - { - if (c == '\n') - ++line_; - - if (!quote) - break; - } - - if (!quote && (c == ';' || c == '{' || c == '}')) - { - held_lexeme_ += c; - break; - } - - if (quote && c == '"') - break; - - lexeme += c; - } - - if (quote && c != '"') - { - wcerr << path_ << ":" << line_ << ": error: closing '\"' expected" - << endl; - - throw Failed (); - } - } - - if (!quote && (lexeme == ";" || lexeme == "{" || lexeme == "}")) - { - return Token (Token::punct, lexeme, line_); - } - else - return Token (Token::token, lexeme, line_); - } -} -- cgit v1.2.3