mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-22 21:32:31 +00:00
Add SectorLambda
This commit is contained in:
parent
741c836e9d
commit
f5831a62fa
21 changed files with 3275 additions and 0 deletions
65
tool/lambda/lib/blc.h
Normal file
65
tool/lambda/lib/blc.h
Normal file
|
@ -0,0 +1,65 @@
|
|||
#ifndef COSMOPOLITAN_TOOL_LAMBDA_LIB_BLC_H_
|
||||
#define COSMOPOLITAN_TOOL_LAMBDA_LIB_BLC_H_
|
||||
#include "libc/stdio/stdio.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
#define BUILTINS 4
|
||||
#define LOC 12
|
||||
#define TERMS 5000000
|
||||
|
||||
#define IOP 0 // code for gro, wr0, wr1, put
|
||||
#define VAR 1 // code for variable lookup
|
||||
#define APP 2 // code for applications
|
||||
#define ABS 3 // code for abstractions
|
||||
|
||||
struct Parse {
|
||||
int n;
|
||||
int i;
|
||||
};
|
||||
|
||||
struct Closure {
|
||||
struct Closure *next;
|
||||
struct Closure *envp;
|
||||
int refs;
|
||||
int term;
|
||||
};
|
||||
|
||||
extern char vlog;
|
||||
extern char slog;
|
||||
extern char alog;
|
||||
extern char rlog;
|
||||
extern char safer;
|
||||
extern char style;
|
||||
extern char binary;
|
||||
extern char noname;
|
||||
extern char asciiname;
|
||||
extern int ci;
|
||||
extern int co;
|
||||
extern long ip;
|
||||
extern long end;
|
||||
extern int heap;
|
||||
extern FILE *logh;
|
||||
extern int mem[TERMS];
|
||||
extern struct Closure root;
|
||||
extern struct Closure *envp;
|
||||
extern struct Closure *frep;
|
||||
extern struct Closure *contp;
|
||||
|
||||
char GetBit(FILE *);
|
||||
char NeedBit(FILE *);
|
||||
struct Parse Parse(int, FILE *);
|
||||
void Dump(int, int, FILE *);
|
||||
void Error(int, const char *, ...);
|
||||
void PrintLambda(int, int, int, int, FILE *);
|
||||
void PrintBinary(int, int, int, FILE *);
|
||||
void PrintDebruijn(int, int, int, FILE *);
|
||||
void PrintMachineState(FILE *);
|
||||
void PrintExpressions(FILE *, char, char);
|
||||
void Print(int, int, int, FILE *);
|
||||
void PrintVar(int, FILE *);
|
||||
void *Calloc(size_t, size_t);
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_TOOL_LAMBDA_LIB_BLC_H_ */
|
Loading…
Add table
Add a link
Reference in a new issue