Skip to content

index.md

Bezděk Miroslav edited this page Apr 5, 2022 · 1 revision

Welcome to LVM wiki documentation

Data types (v0.5.0):

struct typedef pointer to struct pointer to pointer to struct
gc_s gc_t *gc_p **gc_pp
text_s text_t *text_p **text_pp
token_s token_t *token_p N/A
function_s function_t *function_p N/A
closure_s closure_t *closure_p N/A
list_s list_t *list_p N/A
vector_s vector_t *vector_p N/A
hashmap_s hashmap_t *hashmap_p N/A
env_s env_t *env_p **env_pp
error_s error_t *error_p N/A
comment_s comment_t *comment_p N/A
mal_s mal_t *mal_p **mal_pp
lvm_s lvm_t *lvm_p **lvm_pp

Functions (v0.5.0):

text_p text_append(lvm_p this, text_p text, char item);

text_p text_concat(lvm_p this, text_p text, char *item);

text_p text_offset(lvm_p this, text_p text, size_t offset);

int text_cmp(lvm_p this, text_p text, char *item);

int text_cmp_text(lvm_p this, text_p text, text_p item);

void text_free(lvm_p this, gc_p text);

function_p function_make(lvm_p this, mal_p (*definition)(lvm_p this, mal_p params), text_p name);

closure_p closure_make(lvm_p this, env_p env, mal_p parameters, mal_p definition, mal_p more);

bool list_append(lvm_p this, list_p list, mal_p mal);

text_p list_more_text(lvm_p this, list_p list, mal_p more);

list_p list_offset(lvm_p this, list_p original, size_t offset);

list_p list_params(lvm_p this, list_p original);

mal_p list_find(lvm_p this, list_p list, mal_p symbol);

mal_p list_equal(lvm_p this, list_p list0, list_p list1);

void list_free(lvm_p this, gc_p list);

bool vector_append(lvm_p this, vector_p vector, mal_p mal);

mal_p vector_equal(lvm_p this, vector_p vector0, vector_p vector1);

void vector_free(lvm_p this, gc_p vector);

bool hashmap_set(lvm_p this, hashmap_p hashmap, mal_p key, mal_p value);

bool hashmap_get(lvm_p this, hashmap_p hashmap, mal_p key, mal_pp value);

bool hashmap_get_by_text(lvm_p this, hashmap_p hashmap, text_p key, mal_pp value);

bool hashmap_append(lvm_p this, hashmap_p hashmap, mal_p mal);

mal_p hashmap_equal(lvm_p this, hashmap_p hashmap0, hashmap_p hashmap1);

void hashmap_free(lvm_p this, gc_p hashmap);

env_p env_make(lvm_p this, env_p outer, list_p symbols, list_p exprs, mal_p more, size_t init);

bool env_set(lvm_p this, env_p env, mal_p key, mal_p value);

bool env_get(lvm_p this, env_p env, mal_p key, mal_pp value);

bool env_get_by_text(lvm_p this, env_p env, text_p key, mal_pp value);

text_p env_text(lvm_p this, env_p env);

void env_free(lvm_p this, gc_p env);:

char *readline(lvm_p this, char *prompt);

mal_p mal_error(lvm_p this, error_type type, text_p text);

mal_p mal_boolean(lvm_p this, bool boolean);

mal_p mal_symbol(lvm_p this, text_p symbol);

mal_p mal_keyword(lvm_p this, text_p keyword);

mal_p mal_string(lvm_p this, text_p string);

mal_p mal_list(mal_p this, list_p list);

mal_p mal_vector(lvm_p this, vector_p vector);

mal_p mal_hashmap(lvm_p this, hashmap_p hashmap);

mal_p mal_integer(lvm_p this, long integer);

mal_p mal_decimal(lvm_p this, double decimal);

mal_p mal_as_str(lvm_p this, mal_p args, bool readable, char *separator);

text_p mal_print(lvm_p this, mal_p mal, bool readable);

void mal_free(lvm_p this, gc_p mal);

void lvm_gc(lvm_p this);

void lvm_free(lvm_pp this);

mal_p eval_ast(lvm_p this, mal_p ast, env_p env);

mal_p eval_list(lvm_p this, list_p original, env_p env);

mal_p eval_vector(lvm_p this, vector_p original, env_p env);

mal_p eval_hashmap(lvm_p this, hashmap_p original, env_p env);

mal_p eval_def_bang(lvm_p this, mal_p ast, env_p env);

mal_p eval_let_star(lvm_p this, mal_p ast, env_pp outer);

mal_p eval_if(lvm_p this, mal_p ast, env_pp env);

mal_p eval_fn_star(lvm_p this, mal_p ast, env_p env);

mal_p eval_do(lvm_p this, mal_p ast, env_p env);

mal_p core_add(lvm_p this, mal_p args);

mal_p core_sub(lvm_p this, mal_p args);

mal_p core_mul(lvm_p this, mal_p args);

mal_p core_div(lvm_p this, mal_p args);

mal_p core_eq(lvm_p this, mal_p args);

mal_p core_lt(lvm_p this, mal_p args);

mal_p core_le(lvm_p this, mal_p args);

mal_p core_gt(lvm_p this, mal_p args);

mal_p core_ge(lvm_p this, mal_p args);

mal_p core_list(lvm_p this, mal_p args);

mal_p core_vector(lvm_p this, mal_p args);

mal_p core_hashmap(lvm_p this, mal_p args);

mal_p core_zip(lvm_p this, mal_p args);

mal_p core_listp(lvm_p this, mal_p args);

mal_p core_vectorp(lvm_p this, mal_p args);

mal_p core_hashmapp(lvm_p this, mal_p args);

mal_p core_envp(lvm_p this, mal_p args);

mal_p core_emptyp(lvm_p this, mal_p args);

mal_p core_count(lvm_p this, mal_p args);

mal_p core_pr_str(lvm_p this, mal_p args);

mal_p core_str(lvm_p this, mal_p args);

mal_p core_prn(lvm_p this, mal_p args);

mal_p core_println(lvm_p this, mal_p args);

mal_p core_type(lvm_p this, mal_p args);

mal_p lvm_eval(lvm_p this, mal_p ast, env_p env);

char *lvm_print(lvm_p this, mal_p value);


Clone this wiki locally