X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Flisp%2Flexer.hpp;h=f85c86e15f05c9d71abd6df11fee0f3ca4ef2e1f;hb=aee6c4dede5a9c4fa0f7eb134fba61fef738a573;hp=5a2bc5948bfa620acba1fb463c260266c8bae76e;hpb=5b7f9214cb929399f1a855ef5807018a9447d510;p=supertux.git diff --git a/src/lisp/lexer.hpp b/src/lisp/lexer.hpp index 5a2bc5948..f85c86e15 100644 --- a/src/lisp/lexer.hpp +++ b/src/lisp/lexer.hpp @@ -1,7 +1,7 @@ // $Id$ // -// Copyright (C) 2004 Matthias Braun -// code in this file based on lispreader from Mark Probst +// SuperTux +// Copyright (C) 2006 Matthias Braun // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License @@ -36,7 +36,7 @@ public: TOKEN_TRUE, TOKEN_FALSE }; - + Lexer(std::istream& stream); ~Lexer(); @@ -45,21 +45,23 @@ public: { return token_string; } int getLineNumber() const { return linenumber; } - + private: enum { MAX_TOKEN_LENGTH = 16384, BUFFER_SIZE = 1024 }; - + inline void nextChar(); - + inline void addChar(); + std::istream& stream; bool eof; int linenumber; char buffer[BUFFER_SIZE+1]; char* bufend; - char* c; + char* bufpos; + int c; char token_string[MAX_TOKEN_LENGTH + 1]; int token_length; }; @@ -67,4 +69,3 @@ private: } // end of namespace lisp #endif -