keithlisp/lisp_string.h

24 lines
652 B
C

#ifndef _LISP_STRING_H
#define _LISP_STRING_H
#include <string.h>
#include <stdio.h>
#include "dbg_malloc.h"
#include "lisp_types.h"
__attribute__((always_inline)) static inline int lisp_string_len(lisp_string* lstr) {
return *((int*) lstr);
}
__attribute__((always_inline)) static inline char* lisp_string_data(lisp_string* lstr) {
return lstr + sizeof(int);
}
char* lisp_string_create(char* str);
char* lisp_string_create_raw(char* buf, int len);
char* lisp_string_alloc(int len);
lisp_string* lisp_string_copy(lisp_string* lstr);
int lisp_string_cmp(lisp_string* a_lstr, lisp_string* b_lstr);
void lisp_string_print(lisp_string* lstr);
#endif