src/lexer_scanner.h

changeset 88
5def6ff8b466
parent 87
8f65914e7046
child 89
029a330a9bef
--- a/src/lexer_scanner.h	Sun Feb 02 01:50:23 2014 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-/*
-	Copyright 2012-2014 Santeri Piippo
-	All rights reserved.
-
-	Redistribution and use in source and binary forms, with or without
-	modification, are permitted provided that the following conditions
-	are met:
-
-	1. Redistributions of source code must retain the above copyright
-	   notice, this list of conditions and the following disclaimer.
-	2. Redistributions in binary form must reproduce the above copyright
-	   notice, this list of conditions and the following disclaimer in the
-	   documentation and/or other materials provided with the distribution.
-	3. The name of the author may not be used to endorse or promote products
-	   derived from this software without specific prior written permission.
-
-	THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-	IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-	OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-	IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-	INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-	NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-	DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-	THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-	THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef BOTC_LEXER_SCANNER_H
-#define BOTC_LEXER_SCANNER_H
-
-#include <climits>
-#include "main.h"
-
-class lexer_scanner
-{
-	types:
-		struct position_info
-		{
-			char*	pos;
-			char*	line_break_pos;
-			int		line;
-		};
-
-		// Flags for check_string()
-		enum
-		{
-			f_check_word = (1 << 0),   // must be followed by whitespace
-			f_check_peek = (1 << 1),   // don't advance cursor
-		};
-
-	public:
-		static inline bool is_symbol_char (char c, bool allow_numbers)
-		{
-			if (allow_numbers && (c >= '0' && c <= '9'))
-				return true;
-
-			return (c >= 'a' && c <= 'z') ||
-				   (c >= 'A' && c <= 'Z') ||
-				   (c == '_');
-		}
-
-		lexer_scanner (FILE* fp);
-		~lexer_scanner();
-		bool get_next_token();
-		string read_line();
-
-		inline const string& get_token_text() const
-		{
-			return m_token_text;
-		}
-
-		inline int get_line() const
-		{
-			return m_line;
-		}
-
-		inline int get_column() const
-		{
-			return m_ptr - m_line_break_pos;
-		}
-
-		inline e_token get_token_type() const
-		{
-			return m_token_type;
-		}
-
-		static string get_token_string (e_token a);
-
-	private:
-		char*			m_data;
-		char*			m_ptr;
-		char*			m_line_break_pos;
-		string			m_token_text,
-						m_last_token;
-		e_token			m_token_type;
-		int				m_line;
-
-		bool			check_string (const char* c, int flags = 0);
-
-		// Yields a copy of the current position information.
-		position_info	get_position() const;
-
-		// Sets the current position based on given data.
-		void			set_position (const position_info& a);
-
-		// Skips one character
-		void			skip();
-
-		// Skips many characters
-		void			skip (int chars);
-};
-
-#endif // BOTC_LEXER_SCANNER_H

mercurial