From 0d952e6cab7106ecf94a848f7261a3441ea2b241 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Thu, 1 Jan 2015 15:08:58 +0100 Subject: Replaced TextCursor with Location header --- src/core/common/TextCursor.hpp | 168 ----------------------------------------- 1 file changed, 168 deletions(-) delete mode 100644 src/core/common/TextCursor.hpp (limited to 'src/core/common/TextCursor.hpp') diff --git a/src/core/common/TextCursor.hpp b/src/core/common/TextCursor.hpp deleted file mode 100644 index 2633345..0000000 --- a/src/core/common/TextCursor.hpp +++ /dev/null @@ -1,168 +0,0 @@ -/* - Ousía - Copyright (C) 2014, 2015 Benjamin Paaßen, Andreas Stöckel - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -#ifndef _OUSIA_TEXT_CURSOR_HPP_ -#define _OUSIA_TEXT_CURSOR_HPP_ - -namespace ousia { -namespace TextCursor { - -/** - * Type used for representing line or column positions. - */ -using PosType = unsigned int; - -/** - * Struct representing a position within the text. A position is defined by a - * byte offset (which is always reproducable), a line number and a column - * number. - */ -struct Position { - /** - * Current line, starting with one. - */ - PosType line; - - /** - * Current column, starting with one. - */ - PosType column; - - /** - * Current byte offset. - */ - size_t offs; - - /** - * Default constructor of the Position struct, initializes all memebers - * with zero. - */ - Position() : line(0), column(0), offs(0) {} - - /** - * Creates a new Position struct with only a line and no column. - * - * @param line is the line number. - * @param column is the column number. - */ - Position(PosType line) : line(line), column(0), offs(0) {} - - /** - * Creates a new Position struct with a line and column. - * - * @param line is the line number. - * @param column is the column number. - */ - Position(PosType line, PosType column) : line(line), column(column), offs(0) - { - } - - /** - * Creates a new Position struct with a line, column and byte offset. - * - * @param line is the line number. - * @param column is the column number. - * @param offs is the byte offset. - */ - Position(PosType line, PosType column, size_t offs) - : line(line), column(column), offs(offs) - { - } - - /** - * Returns true, if the line number is valid, false otherwise. - * - * @return true for valid line numbers. - */ - bool hasLine() const { return line > 0; } - - /** - * Returns true, if the column number is valid, false otherwise. - * - * @return true for valid column numbers. - */ - bool hasColumn() const { return column > 0; } -}; - -/** - * Represents the current context a CharReader is in. Used for building error - * messages. - */ -struct Context { - /** - * Set to the content of the current line. - */ - std::string text; - - /** - * Relative position (in characters) within that line. May point to - * locations beyond the text content. - */ - PosType relPos; - - /** - * Set to true if the beginning of the line has been truncated (because - * the reader position is too far away from the actual position of the - * line). - */ - bool truncatedStart; - - /** - * Set to true if the end of the line has been truncated (because the - * reader position is too far away from the actual end position of the - * line. - */ - bool truncatedEnd; - - /** - * Default constructor, initializes all members with zero values. - */ - Context() : text(), relPos(0), truncatedStart(false), truncatedEnd(false) {} - - /** - * Constructor of the Context class. - * - * @param text is the current line the text cursor is at. - * @param relPos is the relative position of the text cursor within that - * line. - * @param truncatedStart specifies whether the text was truncated at the - * beginning. - * @param truncatedEnd specifies whether the text was truncated at the - * end. - */ - Context(std::string text, size_t relPos, bool truncatedStart, - bool truncatedEnd) - : text(std::move(text)), - relPos(relPos), - truncatedStart(truncatedStart), - truncatedEnd(truncatedEnd) - { - } - - /** - * Returns true the context text is not empty. - * - * @return true if the context is valid and e.g. should be printed. - */ - bool valid() const { return !text.empty(); } -}; -} -} - -#endif /* _OUSIA_TEXT_CURSOR_HPP_ */ - -- cgit v1.2.3