lama_byterun/byterun/include/runtime_externs.h

166 lines
3.7 KiB
C
Raw Normal View History

2024-11-02 01:19:54 +03:00
#pragma once
2024-10-31 21:08:48 +03:00
#include <assert.h>
#include <ctype.h>
#include <errno.h>
#include <limits.h>
#include <regex.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
#include <time.h>
#include "../../runtime/runtime_common.h"
// ---
2024-11-02 01:19:54 +03:00
void Lassert(void *f, char *s, ...);
2024-10-31 21:08:48 +03:00
// Gets a raw data_header
2024-11-02 01:19:54 +03:00
aint LkindOf(void *p);
2024-10-31 21:08:48 +03:00
// Compare s-exprs tags
2024-11-02 01:19:54 +03:00
aint LcompareTags(void *p, void *q);
2024-10-31 21:08:48 +03:00
// Functional synonym for built-in operator ":";
void *Ls__Infix_58(void *p, void *q);
// Functional synonym for built-in operator "!!";
2024-11-02 01:19:54 +03:00
aint Ls__Infix_3333(void *p, void *q);
2024-10-31 21:08:48 +03:00
// Functional synonym for built-in operator "&&";
2024-11-02 01:19:54 +03:00
aint Ls__Infix_3838(void *p, void *q);
2024-10-31 21:08:48 +03:00
// Functional synonym for built-in operator "==";
2024-11-02 01:19:54 +03:00
aint Ls__Infix_6161(void *p, void *q);
2024-10-31 21:08:48 +03:00
// Functional synonym for built-in operator "!=";
2024-11-02 01:19:54 +03:00
aint Ls__Infix_3361(void *p, void *q);
2024-10-31 21:08:48 +03:00
// Functional synonym for built-in operator "<=";
2024-11-02 01:19:54 +03:00
aint Ls__Infix_6061(void *p, void *q);
2024-10-31 21:08:48 +03:00
// Functional synonym for built-in operator "<";
2024-11-02 01:19:54 +03:00
aint Ls__Infix_60(void *p, void *q);
2024-10-31 21:08:48 +03:00
// Functional synonym for built-in operator ">=";
2024-11-02 01:19:54 +03:00
aint Ls__Infix_6261(void *p, void *q);
2024-10-31 21:08:48 +03:00
// Functional synonym for built-in operator ">";
2024-11-02 01:19:54 +03:00
aint Ls__Infix_62(void *p, void *q);
2024-10-31 21:08:48 +03:00
// Functional synonym for built-in operator "+";
2024-11-02 01:19:54 +03:00
aint Ls__Infix_43(void *p, void *q);
2024-10-31 21:08:48 +03:00
// Functional synonym for built-in operator "-";
2024-11-02 01:19:54 +03:00
aint Ls__Infix_45(void *p, void *q);
2024-10-31 21:08:48 +03:00
// Functional synonym for built-in operator "*";
2024-11-02 01:19:54 +03:00
aint Ls__Infix_42(void *p, void *q);
2024-10-31 21:08:48 +03:00
// Functional synonym for built-in operator "/";
2024-11-02 01:19:54 +03:00
aint Ls__Infix_47(void *p, void *q);
2024-10-31 21:08:48 +03:00
// Functional synonym for built-in operator "%";
2024-11-02 01:19:54 +03:00
aint Ls__Infix_37(void *p, void *q);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
aint Llength(void *p);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
aint LtagHash(char *s);
char *de_hash(aint n);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
aint Luppercase(void *v);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
aint Llowercase(void *v);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
aint LmatchSubString(char *subj, char *patt, aint pos);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
void *Lsubstring(aint *args /*void *subj, aint p, aint l*/);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
regex_t *Lregexp(char *regexp);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
aint LregexpMatch(struct re_pattern_buffer *b, char *s, aint pos);
2024-10-31 21:08:48 +03:00
void *Lclone(void *p);
2024-11-02 01:19:54 +03:00
aint inner_hash(aint depth, auint acc, void *p);
2024-10-31 21:08:48 +03:00
void *LstringInt(char *b);
2024-11-02 01:19:54 +03:00
aint Lhash(void *p);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
aint LflatCompare(void *p, void *q);
aint Lcompare(void *p, void *q);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
void *Belem(void *p, aint i);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
void *LmakeArray(aint length);
void *LmakeString(aint length);
2024-10-31 21:08:48 +03:00
void *Bstring(aint *p);
void *Lstringcat(aint *p);
void *Lstring(aint *p);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
void *Bclosure(aint *args, aint bn);
void *Barray(aint *args, aint bn);
void *Bsexp(aint *args, aint bn);
aint Btag(void *d, aint t, aint n);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
aint get_tag(data *d);
aint get_len(data *d);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
aint Barray_patt(void *d, aint n);
aint Bstring_patt(void *x, void *y);
aint Bclosure_tag_patt(void *x);
aint Bboxed_patt(void *x);
aint Bunboxed_patt(void *x);
aint Barray_tag_patt(void *x);
aint Bstring_tag_patt(void *x);
aint Bsexp_tag_patt(void *x);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
void *Bsta(void *v, aint i, void *x);
2024-10-31 21:08:48 +03:00
void Lfailure(char *s, ...);
void LprintfPerror(char *s, ...);
2024-11-02 01:19:54 +03:00
void Bmatch_failure(void *v, char *fname, aint line, aint col);
2024-10-31 21:08:48 +03:00
extern void * /*Lstrcat*/ Li__Infix_4343(aint *args /* void *a, void *b */);
2024-10-31 21:08:48 +03:00
void *Lsprintf(char *fmt, ...);
void *LgetEnv(char *var);
2024-11-02 01:19:54 +03:00
aint Lsystem(char *cmd);
2024-10-31 21:08:48 +03:00
void Lfprintf(FILE *f, char *s, ...);
void Lprintf(char *s, ...);
FILE *Lfopen(char *f, char *m);
void Lfclose(FILE *f);
void *LreadLine();
void *Lfread(char *fname);
void Lfwrite(char *fname, char *contents);
void *Lfexists(char *fname);
void *Lfst(void *v);
void *Lsnd(void *v);
void *Lhd(void *v);
void *Ltl(void *v);
/* Lread is an implementation of the "read" construct */
2024-11-02 01:19:54 +03:00
aint Lread();
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
aint Lbinoperror(void);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
aint Lbinoperror2(void);
2024-10-31 21:08:48 +03:00
/* Lwrite is an implementation of the "write" construct */
2024-11-02 01:19:54 +03:00
aint Lwrite(aint n);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
aint Lrandom(aint n);
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
aint Ltime();
2024-10-31 21:08:48 +03:00
2024-11-02 01:19:54 +03:00
void set_args(aint argc, char *argv[]);