This machine mirrors various open-source projects.
20 Gbit/s uplink.
If there are any issues or you want another project mirrored, please contact
mirror-service -=AT=- netcologne DOT de !
00001 // $Id: lisp_writer.hxx,v 1.3 2003/01/08 23:14:59 grumbel Exp $ 00002 // 00003 // Construo - A wire-frame construction game 00004 // Copyright (C) 2002 Ingo Ruhnke <grumbel@gmx.de> 00005 // 00006 // This program is free software; you can redistribute it and/or 00007 // modify it under the terms of the GNU General Public License 00008 // as published by the Free Software Foundation; either version 2 00009 // of the License, or (at your option) any later version. 00010 // 00011 // This program is distributed in the hope that it will be useful, 00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 // GNU General Public License for more details. 00015 // 00016 // You should have received a copy of the GNU General Public License 00017 // along with this program; if not, write to the Free Software 00018 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00019 00020 #ifndef HEADER_CONSTRUO_LISP_WRITER_HXX 00021 #define HEADER_CONSTRUO_LISP_WRITER_HXX 00022 00023 #include <vector> 00024 00025 #include "lispreader.hxx" 00026 #include "vector2d.hxx" 00027 00029 class LispWriter 00030 { 00031 private: 00032 std::vector<lisp_object_t*> lisp_objs; 00033 00034 void append (lisp_object_t* obj); 00035 lisp_object_t* make_list3 (lisp_object_t*, lisp_object_t*, lisp_object_t*); 00036 lisp_object_t* make_list2 (lisp_object_t*, lisp_object_t*); 00037 public: 00038 LispWriter (const char* name); 00039 void write_vector (const char* name, const Vector2d& pos); 00040 void write_float (const char* name, float f); 00041 void write_int (const char* name, int i); 00042 void write_boolean (const char* name, bool b); 00043 void write_string (const char* name, const char* str); 00044 void write_symbol (const char* name, const char* symname); 00045 void write_lisp_obj(const char* name, lisp_object_t* lst); 00046 00048 lisp_object_t* create_lisp (); 00049 }; 00050 00051 #endif 00052 00053 /* EOF */