X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Flisp%2Fparser.cpp;h=294d9aa3833faf0f34a66653701848b2f24f3cd8;hb=12a28b64dcce9c7ff706451b4f3aecd201cc8a5f;hp=a558adc1aa33f34f4909fd7de5be89842587bd60;hpb=fea3446f05e1e7673607b835c269d3e8d1929ab3;p=supertux.git diff --git a/src/lisp/parser.cpp b/src/lisp/parser.cpp index a558adc1a..294d9aa38 100644 --- a/src/lisp/parser.cpp +++ b/src/lisp/parser.cpp @@ -1,12 +1,10 @@ -// $Id$ -// // 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 -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. +// 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 @@ -14,34 +12,34 @@ // 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, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -#include +// along with this program. If not, see . #include #include -#include -#include -#include -#include "tinygettext/tinygettext.hpp" -#include "physfs/physfs_stream.hpp" -#include "parser.hpp" -#include "lisp.hpp" +#include "lisp/lisp.hpp" +#include "lisp/parser.hpp" #include "obstack/obstackpp.hpp" +#include "physfs/physfs_stream.hpp" +#include "tinygettext/tinygettext.hpp" -#include "gameconfig.hpp" +#include "supertux/gameconfig.hpp" -namespace lisp -{ +namespace lisp { -Parser::Parser(bool translate) - : lexer(0), dictionary_manager(0), dictionary(0) +Parser::Parser(bool translate) : + lexer(0), + filename(), + dictionary_manager(0), + dictionary(0), + token(), + obst() { if(translate) { dictionary_manager = new TinyGetText::DictionaryManager(); dictionary_manager->set_charset("UTF-8"); - if (config && (config->locale != "")) dictionary_manager->set_language(config->locale); + if (g_config && (g_config->locale != "")) + dictionary_manager->set_language(g_config->locale); } obstack_init(&obst); @@ -107,7 +105,7 @@ Parser::parse_error(const char* msg) const { std::stringstream emsg; emsg << "Parse Error at '" << filename << "' line " << lexer->getLineNumber() - << ": " << msg; + << ": " << msg; throw std::runtime_error(emsg.str()); } @@ -117,7 +115,7 @@ Parser::read() Lisp* result; switch(token) { case Lexer::TOKEN_EOF: { - parse_error("Unexpected EOF."); + parse_error("Unexpected EOF."); } case Lexer::TOKEN_CLOSE_PAREN: { parse_error("Unexpected ')'."); @@ -133,11 +131,11 @@ Parser::read() } if(token == Lexer::TOKEN_SYMBOL && - strcmp(lexer->getString(), "_") == 0) { + strcmp(lexer->getString(), "_") == 0) { // evaluate translation function (_ str) in place here token = lexer->getNextToken(); if(token != Lexer::TOKEN_STRING) - parse_error("Expected string after '(_'"); + parse_error("Expected string after '(_'"); result = new(obst) Lisp(Lisp::TYPE_STRING); if(dictionary) { @@ -151,7 +149,7 @@ Parser::read() } token = lexer->getNextToken(); if(token != Lexer::TOKEN_CLOSE_PAREN) - parse_error("Expected ')' after '(_ string'"); + parse_error("Expected ')' after '(_ string'"); break; } @@ -210,3 +208,5 @@ Parser::read() } } // end of namespace lisp + +/* EOF */