You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
737 B
34 lines
737 B
#ifndef _LIBSE_H
|
|
#define _LIBSE_H
|
|
#include <stdio.h>
|
|
|
|
typedef struct {
|
|
void* ptr;
|
|
int size;
|
|
int alloced;
|
|
|
|
int sexpr;
|
|
} car_t;
|
|
|
|
typedef struct cons {
|
|
union {
|
|
void* ptr;
|
|
car_t car;
|
|
};
|
|
struct cons* cdr;
|
|
} list_t;
|
|
|
|
#define SET_PARSE_NIL (1<<0)
|
|
#define SET_PARSE_QUOTE (1<<1)
|
|
#define SET_PARSE_ESCAPE (1<<2)
|
|
#define SET_PARSE_INSENSITIVE (1<<3)
|
|
|
|
#define SETP_DEFAULT (SET_PARSE_QUOTE | SET_PARSE_ESCAPE)
|
|
#define SETP_LISP (SETP_DEFAULT | SET_PARSE_INSENSITIVE | SET_PARSE_NIL)
|
|
|
|
list_t* se_parse(const char* sexpr, unsigned int flags); //Parse string into list.
|
|
void se_free(list_t* list); //Free whole list.
|
|
void se_print(FILE* fp, const list_t* list); //Print list to fp, if fp is NULL, print to stdout.
|
|
|
|
#endif /* _LIBSE_H */
|