Skip to content

Commit

Permalink
fixed mkcxxxr
Browse files Browse the repository at this point in the history
it wasn't outputting leading a's (they were represented as 0's)
  • Loading branch information
dragoncoder047 authored Apr 4, 2024
1 parent 966dc48 commit 34ed242
Showing 1 changed file with 62 additions and 13 deletions.
75 changes: 62 additions & 13 deletions tinobsy.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -165,27 +165,28 @@ object* markcons(vm*, object*);
if (maybe) return maybe; \
} while (0)

/* the following was generated by this python
def mkcxxxr(n):
if n == 0 or n == 1:
return f"#define c{'ad'[n]}r(x) ((x)->c{'ad'[n]}r)"
binstr = bin(n)[2:].replace('1', 'd').replace('0', 'a')
return f"#define c{binstr}r(x) c{binstr[0]}r(c{binstr[1:]}r(x))"
for i in range(64):
print(mkcxxxr(i))
*/

#define car(x) ((x)->car)
#define cdr(x) ((x)->cdr)
#define caar(x) car(car(x))
#define cadr(x) car(cdr(x))
#define cdar(x) cdr(car(x))
#define cddr(x) cdr(cdr(x))
#define caaar(x) car(caar(x))
#define caadr(x) car(cadr(x))
#define cadar(x) car(cdar(x))
#define caddr(x) car(cddr(x))
#define cdaar(x) cdr(caar(x))
#define cdadr(x) cdr(cadr(x))
#define cddar(x) cdr(cdar(x))
#define cdddr(x) cdr(cddr(x))
#define caaaar(x) car(caaar(x))
#define caaadr(x) car(caadr(x))
#define caadar(x) car(cadar(x))
#define caaddr(x) car(caddr(x))
#define cadaar(x) car(cdaar(x))
#define cadadr(x) car(cdadr(x))
#define caddar(x) car(cddar(x))
#define cadddr(x) car(cdddr(x))
#define cdaaar(x) cdr(caaar(x))
#define cdaadr(x) cdr(caadr(x))
#define cdadar(x) cdr(cadar(x))
Expand All @@ -194,6 +195,22 @@ for i in range(64):
#define cddadr(x) cdr(cdadr(x))
#define cdddar(x) cdr(cddar(x))
#define cddddr(x) cdr(cdddr(x))
#define caaaaar(x) car(caaaar(x))
#define caaaadr(x) car(caaadr(x))
#define caaadar(x) car(caadar(x))
#define caaaddr(x) car(caaddr(x))
#define caadaar(x) car(cadaar(x))
#define caadadr(x) car(cadadr(x))
#define caaddar(x) car(caddar(x))
#define caadddr(x) car(cadddr(x))
#define cadaaar(x) car(cdaaar(x))
#define cadaadr(x) car(cdaadr(x))
#define cadadar(x) car(cdadar(x))
#define cadaddr(x) car(cdaddr(x))
#define caddaar(x) car(cddaar(x))
#define caddadr(x) car(cddadr(x))
#define cadddar(x) car(cdddar(x))
#define caddddr(x) car(cddddr(x))
#define cdaaaar(x) cdr(caaaar(x))
#define cdaaadr(x) cdr(caaadr(x))
#define cdaadar(x) cdr(caadar(x))
Expand All @@ -210,6 +227,38 @@ for i in range(64):
#define cdddadr(x) cdr(cddadr(x))
#define cddddar(x) cdr(cdddar(x))
#define cdddddr(x) cdr(cddddr(x))
#define caaaaaar(x) car(caaaaar(x))
#define caaaaadr(x) car(caaaadr(x))
#define caaaadar(x) car(caaadar(x))
#define caaaaddr(x) car(caaaddr(x))
#define caaadaar(x) car(caadaar(x))
#define caaadadr(x) car(caadadr(x))
#define caaaddar(x) car(caaddar(x))
#define caaadddr(x) car(caadddr(x))
#define caadaaar(x) car(cadaaar(x))
#define caadaadr(x) car(cadaadr(x))
#define caadadar(x) car(cadadar(x))
#define caadaddr(x) car(cadaddr(x))
#define caaddaar(x) car(caddaar(x))
#define caaddadr(x) car(caddadr(x))
#define caadddar(x) car(cadddar(x))
#define caaddddr(x) car(caddddr(x))
#define cadaaaar(x) car(cdaaaar(x))
#define cadaaadr(x) car(cdaaadr(x))
#define cadaadar(x) car(cdaadar(x))
#define cadaaddr(x) car(cdaaddr(x))
#define cadadaar(x) car(cdadaar(x))
#define cadadadr(x) car(cdadadr(x))
#define cadaddar(x) car(cdaddar(x))
#define cadadddr(x) car(cdadddr(x))
#define caddaaar(x) car(cddaaar(x))
#define caddaadr(x) car(cddaadr(x))
#define caddadar(x) car(cddadar(x))
#define caddaddr(x) car(cddaddr(x))
#define cadddaar(x) car(cdddaar(x))
#define cadddadr(x) car(cdddadr(x))
#define caddddar(x) car(cddddar(x))
#define cadddddr(x) car(cdddddr(x))
#define cdaaaaar(x) cdr(caaaaar(x))
#define cdaaaadr(x) cdr(caaaadr(x))
#define cdaaadar(x) cdr(caaadar(x))
Expand Down

0 comments on commit 34ed242

Please sign in to comment.