mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-12 14:09:12 +00:00
Add LISP interpreter
This commit is contained in:
parent
4f98ad1054
commit
d31bebdd2d
84 changed files with 9081 additions and 0 deletions
135
tool/plinko/lib/index.h
Normal file
135
tool/plinko/lib/index.h
Normal file
|
@ -0,0 +1,135 @@
|
|||
#ifndef COSMOPOLITAN_TOOL_PLINKO_LIB_INDEX_H_
|
||||
#define COSMOPOLITAN_TOOL_PLINKO_LIB_INDEX_H_
|
||||
#include "tool/plinko/lib/error.h"
|
||||
#include "tool/plinko/lib/plinko.h"
|
||||
#include "tool/plinko/lib/stack.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
forceinline nosideeffect int Head(int x) {
|
||||
if (x <= 0) return LO(Get(x));
|
||||
Push(x);
|
||||
Raise(kCar);
|
||||
}
|
||||
|
||||
forceinline nosideeffect int Tail(int x) {
|
||||
if (x <= 0) return HI(Get(x));
|
||||
Push(x);
|
||||
Raise(kCdr);
|
||||
}
|
||||
|
||||
forceinline nosideeffect int Cadr(int x) {
|
||||
return Head(Tail(x));
|
||||
}
|
||||
|
||||
forceinline nosideeffect int Caddr(int x) {
|
||||
return Head(Tail(Tail(x)));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Caar(int X) {
|
||||
return Head(Head(X));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cdar(int X) {
|
||||
return Tail(Head(X));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cddr(int X) {
|
||||
return Tail(Tail(X));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Caaar(int X) {
|
||||
return Head(Head(Head(X)));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Caadr(int X) {
|
||||
return Head(Head(Tail(X)));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cadar(int X) {
|
||||
return Head(Tail(Head(X)));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cdaar(int X) {
|
||||
return Tail(Head(Head(X)));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cdadr(int X) {
|
||||
return Tail(Head(Tail(X)));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cddar(int X) {
|
||||
return Tail(Tail(Head(X)));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cdddr(int X) {
|
||||
return Tail(Tail(Tail(X)));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Caaaar(int X) {
|
||||
return Head(Head(Head(Head(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Caaadr(int X) {
|
||||
return Head(Head(Head(Tail(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Caadar(int X) {
|
||||
return Head(Head(Tail(Head(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Caaddr(int X) {
|
||||
return Head(Head(Tail(Tail(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cadaar(int X) {
|
||||
return Head(Tail(Head(Head(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cadadr(int X) {
|
||||
return Head(Tail(Head(Tail(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Caddar(int X) {
|
||||
return Head(Tail(Tail(Head(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cadddr(int X) {
|
||||
return Head(Tail(Tail(Tail(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cdaaar(int X) {
|
||||
return Tail(Head(Head(Head(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cdaadr(int X) {
|
||||
return Tail(Head(Head(Tail(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cdadar(int X) {
|
||||
return Tail(Head(Tail(Head(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cdaddr(int X) {
|
||||
return Tail(Head(Tail(Tail(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cddaar(int X) {
|
||||
return Tail(Tail(Head(Head(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cddadr(int X) {
|
||||
return Tail(Tail(Head(Tail(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cdddar(int X) {
|
||||
return Tail(Tail(Tail(Head(X))));
|
||||
}
|
||||
|
||||
static inline nosideeffect int Cddddr(int X) {
|
||||
return Tail(Tail(Tail(Tail(X))));
|
||||
}
|
||||
|
||||
COSMOPOLITAN_C_END_
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_TOOL_PLINKO_LIB_INDEX_H_ */
|
Loading…
Add table
Add a link
Reference in a new issue