Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

lispreader.hxx File Reference

#include <stdio.h>

Include dependency graph for lispreader.hxx:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Compounds

struct  _lisp_object_t
struct  lisp_stream_t

Defines

#define LISP_STREAM_FILE   1
#define LISP_STREAM_STRING   2
#define LISP_STREAM_ANY   3
#define LISP_TYPE_INTERNAL   -3
#define LISP_TYPE_PARSE_ERROR   -2
#define LISP_TYPE_EOF   -1
#define LISP_TYPE_NIL   0
#define LISP_TYPE_SYMBOL   1
#define LISP_TYPE_INTEGER   2
#define LISP_TYPE_STRING   3
#define LISP_TYPE_REAL   4
#define LISP_TYPE_CONS   5
#define LISP_TYPE_PATTERN_CONS   6
#define LISP_TYPE_BOOLEAN   7
#define LISP_TYPE_PATTERN_VAR   8
#define LISP_PATTERN_ANY   1
#define LISP_PATTERN_SYMBOL   2
#define LISP_PATTERN_STRING   3
#define LISP_PATTERN_INTEGER   4
#define LISP_PATTERN_REAL   5
#define LISP_PATTERN_BOOLEAN   6
#define LISP_PATTERN_LIST   7
#define LISP_PATTERN_OR   8
#define lisp_nil()   ((lisp_object_t*)0)
#define lisp_nil_p(obj)   (obj == 0)
#define lisp_integer_p(obj)   (lisp_type((obj)) == LISP_TYPE_INTEGER)
#define lisp_real_p(obj)   (lisp_type((obj)) == LISP_TYPE_REAL)
#define lisp_symbol_p(obj)   (lisp_type((obj)) == LISP_TYPE_SYMBOL)
#define lisp_string_p(obj)   (lisp_type((obj)) == LISP_TYPE_STRING)
#define lisp_cons_p(obj)   (lisp_type((obj)) == LISP_TYPE_CONS)
#define lisp_boolean_p(obj)   (lisp_type((obj)) == LISP_TYPE_BOOLEAN)

Typedefs

typedef _lisp_object_t lisp_object_t

Functions

lisp_stream_t * lisp_stream_init_file (lisp_stream_t *stream, FILE *file)
lisp_stream_t * lisp_stream_init_string (lisp_stream_t *stream, char *buf)
lisp_stream_t * lisp_stream_init_any (lisp_stream_t *stream, void *data, int(*next_char)(void *data), void(*unget_char)(char c, void *data))
lisp_object_t * lisp_read (lisp_stream_t *in)
void lisp_free (lisp_object_t *obj)
lisp_object_t * lisp_read_from_string (const char *buf)
int lisp_compile_pattern (lisp_object_t **obj, int *num_subs)
int lisp_match_pattern (lisp_object_t *pattern, lisp_object_t *obj, lisp_object_t **vars, int num_subs)
int lisp_match_string (const char *pattern_string, lisp_object_t *obj, lisp_object_t **vars)
int lisp_type (lisp_object_t *obj)
int lisp_integer (lisp_object_t *obj)
float lisp_real (lisp_object_t *obj)
char * lisp_symbol (lisp_object_t *obj)
char * lisp_string (lisp_object_t *obj)
int lisp_boolean (lisp_object_t *obj)
lisp_object_t * lisp_car (lisp_object_t *obj)
lisp_object_t * lisp_cdr (lisp_object_t *obj)
lisp_object_t * lisp_cxr (lisp_object_t *obj, const char *x)
lisp_object_t * lisp_make_integer (int value)
lisp_object_t * lisp_make_real (float value)
lisp_object_t * lisp_make_symbol (const char *value)
lisp_object_t * lisp_make_string (const char *value)
lisp_object_t * lisp_make_cons (lisp_object_t *car, lisp_object_t *cdr)
lisp_object_t * lisp_make_boolean (int value)
int lisp_list_length (lisp_object_t *obj)
lisp_object_t * lisp_list_nth_cdr (lisp_object_t *obj, int index)
lisp_object_t * lisp_list_nth (lisp_object_t *obj, int index)
void lisp_dump (lisp_object_t *obj, FILE *out)


Define Documentation

#define lisp_boolean_p (  obj    )     (lisp_type((obj)) == LISP_TYPE_BOOLEAN)
 

Definition at line 148 of file lispreader.hxx.

#define lisp_cons_p (  obj    )     (lisp_type((obj)) == LISP_TYPE_CONS)
 

Definition at line 147 of file lispreader.hxx.

#define lisp_integer_p (  obj    )     (lisp_type((obj)) == LISP_TYPE_INTEGER)
 

Definition at line 143 of file lispreader.hxx.

 
#define lisp_nil (    )     ((lisp_object_t*)0)
 

Definition at line 140 of file lispreader.hxx.

Referenced by LispWriter::create_lisp(), and lisp_read().

#define lisp_nil_p (  obj    )     (obj == 0)
 

Definition at line 142 of file lispreader.hxx.

Referenced by lisp_read(), and ParticleFactory::ParticleFactory().

#define LISP_PATTERN_ANY   1
 

Definition at line 45 of file lispreader.hxx.

#define LISP_PATTERN_BOOLEAN   6
 

Definition at line 50 of file lispreader.hxx.

#define LISP_PATTERN_INTEGER   4
 

Definition at line 48 of file lispreader.hxx.

#define LISP_PATTERN_LIST   7
 

Definition at line 51 of file lispreader.hxx.

#define LISP_PATTERN_OR   8
 

Definition at line 52 of file lispreader.hxx.

#define LISP_PATTERN_REAL   5
 

Definition at line 49 of file lispreader.hxx.

#define LISP_PATTERN_STRING   3
 

Definition at line 47 of file lispreader.hxx.

#define LISP_PATTERN_SYMBOL   2
 

Definition at line 46 of file lispreader.hxx.

#define lisp_real_p (  obj    )     (lisp_type((obj)) == LISP_TYPE_REAL)
 

Definition at line 144 of file lispreader.hxx.

#define LISP_STREAM_ANY   3
 

Definition at line 30 of file lispreader.hxx.

Referenced by lisp_stream_init_any().

#define LISP_STREAM_FILE   1
 

Definition at line 28 of file lispreader.hxx.

Referenced by lisp_stream_init_file().

#define LISP_STREAM_STRING   2
 

Definition at line 29 of file lispreader.hxx.

Referenced by lisp_stream_init_string().

#define lisp_string_p (  obj    )     (lisp_type((obj)) == LISP_TYPE_STRING)
 

Definition at line 146 of file lispreader.hxx.

#define lisp_symbol_p (  obj    )     (lisp_type((obj)) == LISP_TYPE_SYMBOL)
 

Definition at line 145 of file lispreader.hxx.

Referenced by World::World().

#define LISP_TYPE_BOOLEAN   7
 

Definition at line 42 of file lispreader.hxx.

Referenced by lisp_dump().

#define LISP_TYPE_CONS   5
 

Definition at line 40 of file lispreader.hxx.

Referenced by lisp_car(), lisp_dump(), and lisp_free().

#define LISP_TYPE_EOF   -1
 

Definition at line 34 of file lispreader.hxx.

Referenced by lisp_dump(), lisp_free(), and World::World().

#define LISP_TYPE_INTEGER   2
 

Definition at line 37 of file lispreader.hxx.

Referenced by lisp_dump(), and lisp_real().

#define LISP_TYPE_INTERNAL   -3
 

Definition at line 32 of file lispreader.hxx.

Referenced by lisp_free().

#define LISP_TYPE_NIL   0
 

Definition at line 35 of file lispreader.hxx.

Referenced by lisp_type().

#define LISP_TYPE_PARSE_ERROR   -2
 

Definition at line 33 of file lispreader.hxx.

Referenced by lisp_dump(), lisp_free(), and World::World().

#define LISP_TYPE_PATTERN_CONS   6
 

Definition at line 41 of file lispreader.hxx.

Referenced by lisp_car(), lisp_dump(), and lisp_free().

#define LISP_TYPE_PATTERN_VAR   8
 

Definition at line 43 of file lispreader.hxx.

Referenced by lisp_free().

#define LISP_TYPE_REAL   4
 

Definition at line 39 of file lispreader.hxx.

Referenced by lisp_dump().

#define LISP_TYPE_STRING   3
 

Definition at line 38 of file lispreader.hxx.

Referenced by lisp_dump(), lisp_free(), and lisp_string().

#define LISP_TYPE_SYMBOL   1
 

Definition at line 36 of file lispreader.hxx.

Referenced by lisp_dump(), and lisp_free().


Typedef Documentation

typedef struct _lisp_object_t lisp_object_t
 

Definition at line 75 of file lispreader.hxx.


Function Documentation

int lisp_boolean (  lisp_object_t *    obj ) 
 

Definition at line 557 of file lispreader.cxx.

References _lisp_object_t::type, and _lisp_object_t::v.

Referenced by lisp_dump(), and LispReader::read_bool().

lisp_object_t* lisp_car (  lisp_object_t *    obj ) 
 

Definition at line 575 of file lispreader.cxx.

References LISP_TYPE_CONS, LISP_TYPE_PATTERN_CONS, ConstruoError::raise(), _lisp_object_t::type, and _lisp_object_t::v.

Referenced by lisp_cxr(), lisp_dump(), ParticleFactory::ParticleFactory(), LispReader::read_bool(), LispReader::read_float(), LispReader::read_int(), LispReader::read_vector(), and World::World().

lisp_object_t* lisp_cdr (  lisp_object_t *    obj ) 
 

Definition at line 584 of file lispreader.cxx.

References _lisp_object_t::type, and _lisp_object_t::v.

Referenced by lisp_cxr(), lisp_dump(), ParticleFactory::ParticleFactory(), LispReader::read_vector(), Spring::Spring(), and World::World().

int lisp_compile_pattern (  lisp_object_t **    obj,
int *    num_subs
) 
 

lisp_object_t* lisp_cxr (  lisp_object_t *    obj,
const char *    x
) 
 

Definition at line 592 of file lispreader.cxx.

References lisp_car(), and lisp_cdr().

void lisp_dump (  lisp_object_t *    obj,
FILE *    out
) 
 

Definition at line 649 of file lispreader.cxx.

References lisp_boolean(), lisp_car(), lisp_cdr(), lisp_integer(), lisp_real(), lisp_string(), lisp_symbol(), lisp_type(), LISP_TYPE_BOOLEAN, LISP_TYPE_CONS, LISP_TYPE_EOF, LISP_TYPE_INTEGER, LISP_TYPE_PARSE_ERROR, LISP_TYPE_PATTERN_CONS, LISP_TYPE_REAL, LISP_TYPE_STRING, and LISP_TYPE_SYMBOL.

Referenced by World::write_lisp(), and ParticleFactory::write_lisp().

void lisp_free (  lisp_object_t *    obj ) 
 

Definition at line 483 of file lispreader.cxx.

References LISP_TYPE_CONS, LISP_TYPE_EOF, LISP_TYPE_INTERNAL, LISP_TYPE_PARSE_ERROR, LISP_TYPE_PATTERN_CONS, LISP_TYPE_PATTERN_VAR, LISP_TYPE_STRING, LISP_TYPE_SYMBOL, _lisp_object_t::type, and _lisp_object_t::v.

Referenced by lisp_read(), World::World(), World::write_lisp(), and ParticleFactory::write_lisp().

int lisp_integer (  lisp_object_t *    obj ) 
 

Definition at line 532 of file lispreader.cxx.

References _lisp_object_t::type, and _lisp_object_t::v.

Referenced by lisp_dump(), and LispReader::read_int().

int lisp_list_length (  lisp_object_t *    obj ) 
 

Definition at line 608 of file lispreader.cxx.

References _lisp_object_t::type, and _lisp_object_t::v.

lisp_object_t* lisp_list_nth (  lisp_object_t *    obj,
int    index
) 
 

Definition at line 639 of file lispreader.cxx.

References lisp_list_nth_cdr(), and _lisp_object_t::v.

lisp_object_t* lisp_list_nth_cdr (  lisp_object_t *    obj,
int    index
) 
 

Definition at line 624 of file lispreader.cxx.

References _lisp_object_t::type, and _lisp_object_t::v.

Referenced by lisp_list_nth().

lisp_object_t* lisp_make_boolean (  int    value ) 
 

Definition at line 365 of file lispreader.cxx.

References _lisp_object_t::v.

Referenced by lisp_read(), and LispWriter::write_boolean().

lisp_object_t* lisp_make_cons (  lisp_object_t *    car,
lisp_object_t *    cdr
) 
 

Definition at line 354 of file lispreader.cxx.

References _lisp_object_t::v.

Referenced by LispWriter::create_lisp(), and lisp_read().

lisp_object_t* lisp_make_integer (  int    value ) 
 

Definition at line 314 of file lispreader.cxx.

References _lisp_object_t::v.

Referenced by lisp_read(), and LispWriter::write_int().

lisp_object_t* lisp_make_real (  float    value ) 
 

Definition at line 324 of file lispreader.cxx.

References _lisp_object_t::v.

Referenced by lisp_read(), LispWriter::write_float(), and LispWriter::write_vector().

lisp_object_t* lisp_make_string (  const char *    value ) 
 

Definition at line 344 of file lispreader.cxx.

References _lisp_object_t::v.

Referenced by lisp_read(), and LispWriter::write_string().

lisp_object_t* lisp_make_symbol (  const char *    value ) 
 

Definition at line 334 of file lispreader.cxx.

References _lisp_object_t::v.

Referenced by lisp_read(), and LispWriter::write_symbol().

int lisp_match_pattern (  lisp_object_t *    pattern,
lisp_object_t *    obj,
lisp_object_t **    vars,
int    num_subs
) 
 

int lisp_match_string (  const char *    pattern_string,
lisp_object_t *    obj,
lisp_object_t **    vars
) 
 

lisp_object_t* lisp_read (  lisp_stream_t *    in ) 
 

Definition at line 386 of file lispreader.cxx.

References lisp_free(), lisp_make_boolean(), lisp_make_cons(), lisp_make_integer(), lisp_make_real(), lisp_make_string(), lisp_make_symbol(), lisp_nil, lisp_nil_p, TOKEN_CLOSE_PAREN, TOKEN_DOT, TOKEN_EOF, TOKEN_ERROR, TOKEN_FALSE, TOKEN_INTEGER, TOKEN_OPEN_PAREN, TOKEN_PATTERN_OPEN_PAREN, TOKEN_REAL, TOKEN_STRING, TOKEN_SYMBOL, TOKEN_TRUE, and _lisp_object_t::v.

Referenced by lisp_read_from_string(), and World::World().

lisp_object_t* lisp_read_from_string (  const char *    buf ) 
 

Definition at line 515 of file lispreader.cxx.

References lisp_read(), and lisp_stream_init_string().

float lisp_real (  lisp_object_t *    obj ) 
 

Definition at line 565 of file lispreader.cxx.

References LISP_TYPE_INTEGER, _lisp_object_t::type, and _lisp_object_t::v.

Referenced by lisp_dump(), LispReader::read_float(), and LispReader::read_vector().

lisp_stream_t* lisp_stream_init_any (  lisp_stream_t *    stream,
void *    data,
int(*    next_char)(void *data),
void(*    unget_char)(char c, void *data)
) 
 

Definition at line 299 of file lispreader.cxx.

References LISP_STREAM_ANY, lisp_stream_t::type, and lisp_stream_t::v.

lisp_stream_t* lisp_stream_init_file (  lisp_stream_t *    stream,
FILE *    file
) 
 

Definition at line 280 of file lispreader.cxx.

References LISP_STREAM_FILE, lisp_stream_t::type, and lisp_stream_t::v.

Referenced by World::World().

lisp_stream_t* lisp_stream_init_string (  lisp_stream_t *    stream,
char *    buf
) 
 

Definition at line 289 of file lispreader.cxx.

References LISP_STREAM_STRING, lisp_stream_t::type, and lisp_stream_t::v.

Referenced by lisp_read_from_string(), and World::World().

char* lisp_string (  lisp_object_t *    obj ) 
 

Definition at line 548 of file lispreader.cxx.

References LISP_TYPE_STRING, ConstruoError::raise(), _lisp_object_t::type, and _lisp_object_t::v.

Referenced by lisp_dump().

char* lisp_symbol (  lisp_object_t *    obj ) 
 

Definition at line 540 of file lispreader.cxx.

References _lisp_object_t::type, and _lisp_object_t::v.

Referenced by lisp_dump(), and World::World().

int lisp_type (  lisp_object_t *    obj ) 
 

Definition at line 524 of file lispreader.cxx.

References LISP_TYPE_NIL, and _lisp_object_t::type.

Referenced by lisp_dump().


Generated on Thu Jul 24 10:24:52 2003 for Construo by doxygen1.3-rc3