X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Flisp%2Fwriter.hpp;h=a9909a7482779f9388d291613660342eefa6bae6;hb=1980142d4600d3834e774d410798b47358aa555a;hp=758a70e7f878bf480afc8f0a32d0753cb550cca6;hpb=07ddaed2a657e4d2a3d038fed223fc5827159caf;p=supertux.git diff --git a/src/lisp/writer.hpp b/src/lisp/writer.hpp index 758a70e7f..a9909a748 100644 --- a/src/lisp/writer.hpp +++ b/src/lisp/writer.hpp @@ -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,53 +12,59 @@ // 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. +// along with this program. If not, see . -#ifndef SUPERTUX_LISPWRITER_H -#define SUPERTUX_LISPWRITER_H +#ifndef HEADER_SUPERTUX_LISP_WRITER_HPP +#define HEADER_SUPERTUX_LISP_WRITER_HPP -#include #include #include -namespace lisp +namespace lisp { + +class Writer { +public: + Writer(const std::string& filename); + Writer(std::ostream* out); + ~Writer(); + + void write_comment(const std::string& comment); - class Writer - { - public: - Writer(const std::string& filename); - Writer(std::ostream* out); - ~Writer(); + void start_list(const std::string& listname, bool string = false); - void write_comment(const std::string& comment); + void write(const std::string& name, int value); + void write(const std::string& name, float value); + void write(const std::string& name, const std::string& value, + bool translatable = false); + void write(const std::string& name, const char* value, + bool translatable = false) { write(name, static_cast(value), translatable); } + void write(const std::string& name, bool value); + void write(const std::string& name, const std::vector& value); + void write(const std::string& name, const std::vector& value); + void write(const std::string& name, const std::vector& value); + void write(const std::string& name, const std::vector& value); + // add more write-functions when needed... - void start_list(const std::string& listname, bool string = false); + void end_list(const std::string& listname); - void write_int(const std::string& name, int value); - void write_float(const std::string& name, float value); - void write_string(const std::string& name, const std::string& value, - bool translatable = false); - void write_bool(const std::string& name, bool value); - void write_int_vector(const std::string& name, const std::vector& value); - void write_int_vector(const std::string& name, const std::vector& value); - void write_float_vector(const std::string& name, const std::vector& value); - // add more write-functions when needed... +private: + void write_escaped_string(const std::string& str); + void indent(); - void end_list(const std::string& listname); +private: + std::ostream* out; + bool out_owned; + int indent_depth; + std::vector lists; - private: - void write_escaped_string(const std::string& str); - void indent(); +private: + Writer(const Writer&); + Writer & operator=(const Writer&); +}; - std::ostream* out; - bool out_owned; - int indent_depth; - std::vector lists; - }; - } //namespace lisp #endif //SUPERTUX_LISPWRITER_H +/* EOF */