Fixed autotools stuff
[construo.git] / lisp_writer.hxx
blob3c1b84c6a9161de0ba7e6b040ecc9b5ef8d8bc97
1 // $Id: lisp_writer.hxx,v 1.4 2003/07/24 10:10:02 grumbel Exp $
2 //
3 // Construo - A wire-frame construction game
4 // Copyright (C) 2002 Ingo Ruhnke <grumbel@gmx.de>
5 //
6 // This program is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU General Public License
8 // as published by the Free Software Foundation; either version 2
9 // of the License, or (at your option) any later version.
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 #ifndef HEADER_CONSTRUO_LISP_WRITER_HXX
21 #define HEADER_CONSTRUO_LISP_WRITER_HXX
23 #include <vector>
25 #include "lispreader.hxx"
26 #include "vector2d.hxx"
28 /** */
29 class LispWriter
31 private:
32 std::vector<lisp_object_t*> lisp_objs;
34 void append (lisp_object_t* obj);
35 lisp_object_t* make_list3 (lisp_object_t*, lisp_object_t*, lisp_object_t*);
36 lisp_object_t* make_list2 (lisp_object_t*, lisp_object_t*);
37 public:
38 LispWriter (const char* name);
39 void write_vector (const char* name, const Vector2d& pos);
40 void write_float (const char* name, float f);
41 void write_int (const char* name, int i);
42 void write_boolean (const char* name, bool b);
43 void write_string (const char* name, const char* str);
44 void write_symbol (const char* name, const char* symname);
45 void write_lisp_obj(const char* name, lisp_object_t* lst);
47 /** caller is responible to free the returned lisp_object_t */
48 lisp_object_t* create_lisp ();
51 #endif
53 /* EOF */