3-string compiled mode; 'P' entries added

This commit is contained in:
ESL 2023-03-22 23:14:11 -04:00
parent ff388441e7
commit 351cc5ed9b
6 changed files with 1207 additions and 1195 deletions

20
i.c
View file

@ -19,7 +19,6 @@ static obj mkintegrable(struct intgtab_entry *);
static int integrable_type(struct intgtab_entry *pi); static int integrable_type(struct intgtab_entry *pi);
static const char *integrable_global(struct intgtab_entry *pi); static const char *integrable_global(struct intgtab_entry *pi);
static const char *integrable_code(struct intgtab_entry *pi, int n); static const char *integrable_code(struct intgtab_entry *pi, int n);
static void wrs_integrable(int argc, struct intgtab_entry *pe, obj port);
static obj *rds_intgtab(obj *r, obj *sp, obj *hp); static obj *rds_intgtab(obj *r, obj *sp, obj *hp);
static obj *rds_stox(obj *r, obj *sp, obj *hp); static obj *rds_stox(obj *r, obj *sp, obj *hp);
static obj *rds_stoc(obj *r, obj *sp, obj *hp); static obj *rds_stoc(obj *r, obj *sp, obj *hp);
@ -3615,19 +3614,25 @@ static obj *init_module(obj *r, obj *sp, obj *hp, const char **mod)
continue; continue;
} else if (name != 0 && name[0] == 'A' && name[1] == 0) { } else if (name != 0 && name[0] == 'A' && name[1] == 0) {
/* 'alias' entry: copy transformer */ /* 'alias' entry: copy transformer */
obj oldsym, sym, oldbnd, bnd, al; obj oldsym, sym, oldbnd, oldden, bnd, al;
struct intgtab_entry *pe;
ent += 1; name = ent[0], data = ent[1]; ent += 1; name = ent[0], data = ent[1];
assert(name != 0); assert(data != 0); assert(name != 0); assert(data != 0);
/* look for dst binding (we allow redefinition) */ /* look for dst binding (we allow redefinition) */
oldsym = mksymbol(internsym((char*)data)); oldsym = mksymbol(internsym((char*)data));
sym = mksymbol(internsym((char*)name)); sym = mksymbol(internsym((char*)name));
for (oldbnd = 0, al = al = cx__2Atransformers_2A; al != mknull(); al = cdr(al)) { for (oldbnd = 0, al = cx__2Atransformers_2A; al != mknull(); al = cdr(al)) {
obj ael = car(al); obj ael = car(al);
if (car(ael) != oldsym) continue; if (car(ael) != oldsym) continue;
oldbnd = ael; break; oldbnd = ael; break;
} }
assert(oldbnd); assert(ispair(oldbnd)); oldden = oldbnd ? cdr(oldbnd) : 0;
if (!oldbnd) continue; /* missing binding could be an auto-installed integrable */
if (!oldden && (pe = lookup_integrable(getsymbol(oldsym)))) {
oldden = mkintegrable(pe);
}
/* we should have it now */
assert(oldden); if (!oldden) continue;
/* look for existing binding (we allow redefinition) */ /* look for existing binding (we allow redefinition) */
for (bnd = 0, al = cx__2Atransformers_2A; al != mknull(); al = cdr(al)) { for (bnd = 0, al = cx__2Atransformers_2A; al != mknull(); al = cdr(al)) {
obj ael = car(al); obj ael = car(al);
@ -3635,7 +3640,7 @@ static obj *init_module(obj *r, obj *sp, obj *hp, const char **mod)
bnd = ael; break; bnd = ael; break;
} }
/* or add new binding */ /* or add new binding */
spush(oldbnd); /* protect from gc */ spush(oldden); /* protect from gc */
if (!bnd) { /* acons (sym . #f) */ if (!bnd) { /* acons (sym . #f) */
hreserve(hbsz(3)*2, sp-r); hreserve(hbsz(3)*2, sp-r);
*--hp = obj_from_bool(0); *--hp = sym; *--hp = obj_from_bool(0); *--hp = sym;
@ -3643,8 +3648,7 @@ static obj *init_module(obj *r, obj *sp, obj *hp, const char **mod)
*--hp = cx__2Atransformers_2A; *--hp = bnd; *--hp = cx__2Atransformers_2A; *--hp = bnd;
*--hp = obj_from_size(PAIR_BTAG); cx__2Atransformers_2A = hendblk(3); *--hp = obj_from_size(PAIR_BTAG); cx__2Atransformers_2A = hendblk(3);
} }
oldbnd = spop(); cdr(bnd) = spop(); /* oldden */
cdr(bnd) = cdr(oldbnd);
continue; continue;
} }
/* skipped prefix or no prefix */ /* skipped prefix or no prefix */

1503
k.c

File diff suppressed because it is too large Load diff

271
s.c
View file

@ -86,15 +86,15 @@ char *s_code[] = {
"l3:y12:syntax-rules;n;l2:l3:y1:_;py4:args;y4:body;;y3:...;;l3:y7:lambd" "l3:y12:syntax-rules;n;l2:l3:y1:_;py4:args;y4:body;;y3:...;;l3:y7:lambd"
"a*;l2:y4:args;py6:lambda;py4:args;y4:body;;;;y3:...;;;", "a*;l2:y4:args;py6:lambda;py4:args;y4:body;;;;y3:...;;;",
"C", 0, "P", "floor/",
"&0{%2.1,.1G4,.2,.2G3,@(y6:values)[22}@!(y6:floor/)", "%2.1,.1G4,.2,.2G3,@(y6:values)[22",
"C", 0, "P", "truncate/",
"&0{%2.1,.1G6,.2,.2G5,@(y6:values)[22}@!(y9:truncate/)", "%2.1,.1G6,.2,.2G5,@(y6:values)[22",
"C", 0, "P", "%append",
"&0{%!0.0,,#0.0,&1{%1.0u?{n]1}.0du?{.0a]1}${.2d,:0^[01},.1aL6]1}.!0.0^_" "%!0.0,,#0.0,&1{%1.0u?{n]1}.0du?{.0a]1}${.2d,:0^[01},.1aL6]1}.!0.0^_1[1"
"1[11}@!(y7:%25append)", "1",
"S", "append", "S", "append",
"l7:y12:syntax-rules;n;l2:l1:y1:_;;l2:y5:quote;n;;;l2:l2:y1:_;y1:x;;y1:" "l7:y12:syntax-rules;n;l2:l1:y1:_;;l2:y5:quote;n;;;l2:l2:y1:_;y1:x;;y1:"
@ -102,29 +102,27 @@ char *s_code[] = {
":y;y1:z;y3:...;;l3:y8:list-cat;y1:x;l4:y6:append;y1:y;y1:z;y3:...;;;;l" ":y;y1:z;y3:...;;l3:y8:list-cat;y1:x;l4:y6:append;y1:y;y1:z;y3:...;;;;l"
"2:y1:_;y7:%25append;;", "2:y1:_;y7:%25append;;",
"C", 0, "P", "%member",
"&0{%!2.0u?{.2,.2A2]3}.0a,.3,.3,,#0.0,&1{%3.1p?{${.3a,.3,.6[02}?{.1]3}." "%!2.0u?{.2,.2A2]3}.0a,.3,.3,,#0.0,&1{%3.1p?{${.3a,.3,.6[02}?{.1]3}.2,."
"2,.2d,.2,:0^[33}f]3}.!0.0^_1[33}@!(y7:%25member)", "2d,.2,:0^[33}f]3}.!0.0^_1[33",
"S", "member", "S", "member",
"l5:y12:syntax-rules;n;l2:l3:y1:_;y1:v;y1:l;;l3:y4:meme;y1:v;y1:l;;;l2:" "l5:y12:syntax-rules;n;l2:l3:y1:_;y1:v;y1:l;;l3:y4:meme;y1:v;y1:l;;;l2:"
"py1:_;y4:args;;py7:%25member;y4:args;;;l2:y1:_;y7:%25member;;", "py1:_;y4:args;;py7:%25member;y4:args;;;l2:y1:_;y7:%25member;;",
"C", 0, "P", "%assoc",
"&0{%!2.0u?{.2,.2A5]3}.0a,.3,.3,,#0.0,&1{%3.1p?{${.3aa,.3,.6[02}?{.1a]3" "%!2.0u?{.2,.2A5]3}.0a,.3,.3,,#0.0,&1{%3.1p?{${.3aa,.3,.6[02}?{.1a]3}.2"
"}.2,.2d,.2,:0^[33}f]3}.!0.0^_1[33}@!(y6:%25assoc)", ",.2d,.2,:0^[33}f]3}.!0.0^_1[33",
"S", "assoc", "S", "assoc",
"l5:y12:syntax-rules;n;l2:l3:y1:_;y1:v;y2:al;;l3:y4:asse;y1:v;y2:al;;;l" "l5:y12:syntax-rules;n;l2:l3:y1:_;y1:v;y2:al;;l3:y4:asse;y1:v;y2:al;;;l"
"2:py1:_;y4:args;;py6:%25assoc;y4:args;;;l2:y1:_;y6:%25assoc;;", "2:py1:_;y4:args;;py6:%25assoc;y4:args;;;l2:y1:_;y6:%25assoc;;",
"C", 0, "P", "list-copy",
"&0{%1.0,,#0.0,&1{%1.0p?{${.2d,:0^[01},.1ac]1}.0]1}.!0.0^_1[11}@!(y9:li" "%1.0,,#0.0,&1{%1.0p?{${.2d,:0^[01},.1ac]1}.0]1}.!0.0^_1[11",
"st-copy)",
"C", 0, "P", "%list*",
"&0{%!1.0,.2,,#0.0,&1{%2.1u?{.0]2}${.3d,.4a,:0^[02},.1c]2}.!0.0^_1[22}@" "%!1.0,.2,,#0.0,&1{%2.1u?{.0]2}${.3d,.4a,:0^[02},.1c]2}.!0.0^_1[22",
"!(y6:%25list*)",
"S", "list*", "S", "list*",
"l7:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;y1:x;;l2:l3:y1:_;y1:x;y1:y;;l3:" "l7:y12:syntax-rules;n;l2:l2:y1:_;y1:x;;y1:x;;l2:l3:y1:_;y1:x;y1:y;;l3:"
@ -134,9 +132,9 @@ char *s_code[] = {
"A", "cons*", "list*", "A", "cons*", "list*",
"C", 0, "P", "subvector->list",
"&0{%3n,'1,.4I-,,#0.3,.1,.6,&3{%2:0,.1I<?{.1]2}.1,.1,:2V4c,'1,.2I-,:1^[" "%3n,'1,.4I-,,#0.3,.1,.6,&3{%2:0,.1I<?{.1]2}.1,.1,:2V4c,'1,.2I-,:1^[22}"
"22}.!0.0^_1[32}@!(y15:subvector->list)", ".!0.0^_1[32",
"C", 0, "C", 0,
"&0{%3.2,.2,.2,@(y15:subvector->list)[33}%x,&0{%2.0V3,.2,.2,@(y15:subve" "&0{%3.2,.2,.2,@(y15:subvector->list)[33}%x,&0{%2.0V3,.2,.2,@(y15:subve"
@ -148,61 +146,56 @@ char *s_code[] = {
"l2:py1:_;y1:r;;py13:%25vector->list;y1:r;;;l2:y1:_;y13:%25vector->list" "l2:py1:_;y1:r;;py13:%25vector->list;y1:r;;;l2:y1:_;y13:%25vector->list"
";;", ";;",
"C", 0, "P", "subvector-copy!",
"&0{%5.1,.1V3I-,.4I+,.5In,.4,.3I>!?{.4,.3,,#0.3,.7,.6,.3,&4{%2:3,.2I<!," "%5.1,.1V3I-,.4I+,.5In,.4,.3I>!?{.4,.3,,#0.3,.7,.6,.3,&4{%2:3,.2I<!,.0?"
".0?{.0]3}.2,:2V4,.2,:1V5.2'1,.3I+,.2'1,.3I+,:0^[32}.!0.0^_1[62}'1,.1I-" "{.0]3}.2,:2V4,.2,:1V5.2'1,.3I+,.2'1,.3I+,:0^[32}.!0.0^_1[62}'1,.1I-,'1"
",'1,.6,.8I-I-,.4I+,,#0.7,.7,.6,.3,&4{%2:3,.2I<,.0?{.0]3}.2,:2V4,.2,:1V" ",.6,.8I-I-,.4I+,,#0.7,.7,.6,.3,&4{%2:3,.2I<,.0?{.0]3}.2,:2V4,.2,:1V5.2"
"5.2'1,.3I-,.2'1,.3I-,:0^[32}.!0.0^_1[62}@!(y15:subvector-copy!)", "'1,.3I-,.2'1,.3I-,:0^[32}.!0.0^_1[62",
"C", 0, "C", 0,
"&0{%5.4,.4,.4,.4,.4,@(y15:subvector-copy!)[55}%x,&0{%4.2V3,.4,.4,.4,.4" "&0{%5.4,.4,.4,.4,.4,@(y15:subvector-copy!)[55}%x,&0{%4.2V3,.4,.4,.4,.4"
",@(y15:subvector-copy!)[45}%x,&0{%3.2V3,'0,.4,.4,.4,@(y15:subvector-co" ",@(y15:subvector-copy!)[45}%x,&0{%3.2V3,'0,.4,.4,.4,@(y15:subvector-co"
"py!)[35}%x,&3{|30|41|52%%}@!(y12:vector-copy!)", "py!)[35}%x,&3{|30|41|52%%}@!(y12:vector-copy!)",
"C", 0, "P", "subvector",
"&0{%3f,.2,.4I-V2,${.5,.5,.5,'0,.6,@(y15:subvector-copy!)[05}.0]4}@!(y9" "%3f,.2,.4I-V2,${.5,.5,.5,'0,.6,@(y15:subvector-copy!)[05}.0]4",
":subvector)",
"C", 0, "C", 0,
"&0{%3.2,.2,.2,@(y9:subvector)[33}%x,&0{%2.0V3,.2,.2,@(y9:subvector)[23" "&0{%3.2,.2,.2,@(y9:subvector)[33}%x,&0{%2.0V3,.2,.2,@(y9:subvector)[23"
"}%x,&0{%1.0V3,'0,.2,@(y9:subvector)[13}%x,&3{|10|21|32%%}@!(y11:vector" "}%x,&0{%1.0V3,'0,.2,@(y9:subvector)[13}%x,&3{|10|21|32%%}@!(y11:vector"
"-copy)", "-copy)",
"C", 0, "P", "subvector-fill!",
"&0{%4.2,,#0.5,.4,.4,.3,&4{%1:3,.1I<!,.0?{.0]2}:2,.2,:1V5.1'1,.2I+,:0^[" "%4.2,,#0.5,.4,.4,.3,&4{%1:3,.1I<!,.0?{.0]2}:2,.2,:1V5.1'1,.2I+,:0^[21}"
"21}.!0.0^_1[41}@!(y15:subvector-fill!)", ".!0.0^_1[41",
"C", 0, "C", 0,
"&0{%4.3,.3,.3,.3,@(y15:subvector-fill!)[44}%x,&0{%3.0V3,.3,.3,.3,@(y15" "&0{%4.3,.3,.3,.3,@(y15:subvector-fill!)[44}%x,&0{%3.0V3,.3,.3,.3,@(y15"
":subvector-fill!)[34}%x,&0{%2.0V3,'0,.3,.3,@(y15:subvector-fill!)[24}%" ":subvector-fill!)[34}%x,&0{%2.0V3,'0,.3,.3,@(y15:subvector-fill!)[24}%"
"x,&3{|20|31|42%%}@!(y12:vector-fill!)", "x,&3{|20|31|42%%}@!(y12:vector-fill!)",
"C", 0, "P", "subvector-string-copy!",
"&0{%5.1,.1S3I-,.4I+,.5In,.4,.3,,#0.0,.5,.8,.6,&4{%2:0,.2I<!?{:2]2}.1,:" "%5.1,.1S3I-,.4I+,.5In,.4,.3,,#0.0,.5,.8,.6,&4{%2:0,.2I<!?{:2]2}.1,:1V4"
"1V4,.1,:2S5.1'1,.2I+,.1'1,.2I+,:3^[22}.!0.0^_1[62}@!(y22:subvector-str" ",.1,:2S5.1'1,.2I+,.1'1,.2I+,:3^[22}.!0.0^_1[62",
"ing-copy!)",
"C", 0, "P", "subvector->string",
"&0{%3.2,.2,.2,'0,'(c ),.6,.8I-S2,@(y22:subvector-string-copy!)[35}@!(y" "%3.2,.2,.2,'0,'(c ),.6,.8I-S2,@(y22:subvector-string-copy!)[35",
"17:subvector->string)",
"C", 0, "C", 0,
"&0{%3.2,.2,.2,@(y17:subvector->string)[33}%x,&0{%2.0V3,.2,.2,@(y17:sub" "&0{%3.2,.2,.2,@(y17:subvector->string)[33}%x,&0{%2.0V3,.2,.2,@(y17:sub"
"vector->string)[23}%x,&0{%1.0V3,'0,.2,@(y17:subvector->string)[13}%x,&" "vector->string)[23}%x,&0{%1.0V3,'0,.2,@(y17:subvector->string)[13}%x,&"
"3{|10|21|32%%}@!(y14:vector->string)", "3{|10|21|32%%}@!(y14:vector->string)",
"C", 0, "P", "vectors-sum-length",
"&0{%1'0,.1,,#0.0,&1{%2.0u?{.1]2}.0aV3,.2I+,.1d,:0^[22}.!0.0^_1[12}@!(y" "%1'0,.1,,#0.0,&1{%2.0u?{.1]2}.0aV3,.2I+,.1d,:0^[22}.!0.0^_1[12",
"18:vectors-sum-length)",
"C", 0, "P", "vectors-copy-into!",
"&0{%2'0,.2,,#0.0,.4,&2{%2.0u?{:0]2}.0d,.1a,.0V3,${.2,'0,.5,.9,:0,@(y15" "%2'0,.2,,#0.0,.4,&2{%2.0u?{:0]2}.0d,.1a,.0V3,${.2,'0,.5,.9,:0,@(y15:su"
":subvector-copy!)[05}.0,.5I+,.3,:1^[52}.!0.0^_1[22}@!(y18:vectors-copy" "bvector-copy!)[05}.0,.5I+,.3,:1^[52}.!0.0^_1[22",
"-into!)",
"C", 0, "P", "%vector-append",
"&0{%!0.0,f,${.4,@(y18:vectors-sum-length)[01}V2,@(y18:vectors-copy-int" "%!0.0,f,${.4,@(y18:vectors-sum-length)[01}V2,@(y18:vectors-copy-into!)"
"o!)[12}@!(y14:%25vector-append)", "[12",
"S", "vector-append", "S", "vector-append",
"l7:y12:syntax-rules;n;l2:l1:y1:_;;l2:y5:quote;v0:;;;l2:l2:y1:_;y1:x;;l" "l7:y12:syntax-rules;n;l2:l1:y1:_;;l2:y5:quote;v0:;;;l2:l2:y1:_;y1:x;;l"
@ -210,9 +203,9 @@ char *s_code[] = {
";l2:py1:_;y1:r;;py14:%25vector-append;y1:r;;;l2:y1:_;y14:%25vector-app" ";l2:py1:_;y1:r;;py14:%25vector-append;y1:r;;;l2:y1:_;y14:%25vector-app"
"end;;", "end;;",
"C", 0, "P", "substring->list",
"&0{%3n,'1,.4I-,,#0.3,.1,.6,&3{%2:0,.1I<?{.1]2}.1,.1,:2S4c,'1,.2I-,:1^[" "%3n,'1,.4I-,,#0.3,.1,.6,&3{%2:0,.1I<?{.1]2}.1,.1,:2S4c,'1,.2I-,:1^[22}"
"22}.!0.0^_1[32}@!(y15:substring->list)", ".!0.0^_1[32",
"C", 0, "C", 0,
"&0{%3.2,.2,.2,@(y15:substring->list)[33}%x,&0{%2.0S3,.2,.2,@(y15:subst" "&0{%3.2,.2,.2,@(y15:substring->list)[33}%x,&0{%2.0S3,.2,.2,@(y15:subst"
@ -224,11 +217,11 @@ char *s_code[] = {
"l2:py1:_;y1:r;;py13:%25string->list;y1:r;;;l2:y1:_;y13:%25string->list" "l2:py1:_;y1:r;;py13:%25string->list;y1:r;;;l2:y1:_;y13:%25string->list"
";;", ";;",
"C", 0, "P", "substring-copy!",
"&0{%5.1,.1S3I-,.4I+,.5In,.4,.3I>!?{.4,.3,,#0.3,.7,.6,.3,&4{%2:3,.2I<!," "%5.1,.1S3I-,.4I+,.5In,.4,.3I>!?{.4,.3,,#0.3,.7,.6,.3,&4{%2:3,.2I<!,.0?"
".0?{.0]3}.2,:2S4,.2,:1S5.2'1,.3I+,.2'1,.3I+,:0^[32}.!0.0^_1[62}'1,.1I-" "{.0]3}.2,:2S4,.2,:1S5.2'1,.3I+,.2'1,.3I+,:0^[32}.!0.0^_1[62}'1,.1I-,'1"
",'1,.6,.8I-I-,.4I+,,#0.7,.7,.6,.3,&4{%2:3,.2I<,.0?{.0]3}.2,:2S4,.2,:1S" ",.6,.8I-I-,.4I+,,#0.7,.7,.6,.3,&4{%2:3,.2I<,.0?{.0]3}.2,:2S4,.2,:1S5.2"
"5.2'1,.3I-,.2'1,.3I-,:0^[32}.!0.0^_1[62}@!(y15:substring-copy!)", "'1,.3I-,.2'1,.3I-,:0^[32}.!0.0^_1[62",
"C", 0, "C", 0,
"&0{%5.4,.4,.4,.4,.4,@(y15:substring-copy!)[55}%x,&0{%4.2S3,.4,.4,.4,.4" "&0{%5.4,.4,.4,.4,.4,@(y15:substring-copy!)[55}%x,&0{%4.2S3,.4,.4,.4,.4"
@ -239,50 +232,46 @@ char *s_code[] = {
"&0{%3.2,.2,.2S7]3}%x,&0{%2.0S3,.2,.2S7]2}%x,&0{%1.0S3,'0,.2S7]1}%x,&3{" "&0{%3.2,.2,.2S7]3}%x,&0{%2.0S3,.2,.2S7]2}%x,&0{%1.0S3,'0,.2S7]1}%x,&3{"
"|10|21|32%%}@!(y11:string-copy)", "|10|21|32%%}@!(y11:string-copy)",
"C", 0, "P", "substring-fill!",
"&0{%4.2,,#0.5,.4,.4,.3,&4{%1:3,.1I<!,.0?{.0]2}:2,.2,:1S5.1'1,.2I+,:0^[" "%4.2,,#0.5,.4,.4,.3,&4{%1:3,.1I<!,.0?{.0]2}:2,.2,:1S5.1'1,.2I+,:0^[21}"
"21}.!0.0^_1[41}@!(y15:substring-fill!)", ".!0.0^_1[41",
"C", 0, "C", 0,
"&0{%4.3,.3,.3,.3,@(y15:substring-fill!)[44}%x,&0{%3.0S3,.3,.3,.3,@(y15" "&0{%4.3,.3,.3,.3,@(y15:substring-fill!)[44}%x,&0{%3.0S3,.3,.3,.3,@(y15"
":substring-fill!)[34}%x,&0{%2.0S3,'0,.3,.3,@(y15:substring-fill!)[24}%" ":substring-fill!)[34}%x,&0{%2.0S3,'0,.3,.3,@(y15:substring-fill!)[24}%"
"x,&3{|20|31|42%%}@!(y12:string-fill!)", "x,&3{|20|31|42%%}@!(y12:string-fill!)",
"C", 0, "P", "substring-vector-copy!",
"&0{%5.1,.1V3I-,.4I+,.5In,.4,.3,,#0.0,.5,.8,.6,&4{%2:0,.2I<!?{:2]2}.1,:" "%5.1,.1V3I-,.4I+,.5In,.4,.3,,#0.0,.5,.8,.6,&4{%2:0,.2I<!?{:2]2}.1,:1S4"
"1S4,.1,:2V5.1'1,.2I+,.1'1,.2I+,:3^[22}.!0.0^_1[62}@!(y22:substring-vec" ",.1,:2V5.1'1,.2I+,.1'1,.2I+,:3^[22}.!0.0^_1[62",
"tor-copy!)",
"C", 0, "P", "substring->vector",
"&0{%3.2,.2,.2,'0,f,.6,.8I-V2,@(y22:substring-vector-copy!)[35}@!(y17:s" "%3.2,.2,.2,'0,f,.6,.8I-V2,@(y22:substring-vector-copy!)[35",
"ubstring->vector)",
"C", 0, "C", 0,
"&0{%3.2,.2,.2,@(y17:substring->vector)[33}%x,&0{%2.0S3,.2,.2,@(y17:sub" "&0{%3.2,.2,.2,@(y17:substring->vector)[33}%x,&0{%2.0S3,.2,.2,@(y17:sub"
"string->vector)[23}%x,&0{%1.0S3,'0,.2,@(y17:substring->vector)[13}%x,&" "string->vector)[23}%x,&0{%1.0S3,'0,.2,@(y17:substring->vector)[13}%x,&"
"3{|10|21|32%%}@!(y14:string->vector)", "3{|10|21|32%%}@!(y14:string->vector)",
"C", 0, "P", "strings-sum-length",
"&0{%1'0,.1,,#0.0,&1{%2.0u?{.1]2}.0aS3,.2I+,.1d,:0^[22}.!0.0^_1[12}@!(y" "%1'0,.1,,#0.0,&1{%2.0u?{.1]2}.0aS3,.2I+,.1d,:0^[22}.!0.0^_1[12",
"18:strings-sum-length)",
"C", 0, "P", "strings-copy-into!",
"&0{%2'0,.2,,#0.0,.4,&2{%2.0u?{:0]2}.0d,.1a,.0S3,${.2,'0,.5,.9,:0,@(y15" "%2'0,.2,,#0.0,.4,&2{%2.0u?{:0]2}.0d,.1a,.0S3,${.2,'0,.5,.9,:0,@(y15:su"
":substring-copy!)[05}.0,.5I+,.3,:1^[52}.!0.0^_1[22}@!(y18:strings-copy" "bstring-copy!)[05}.0,.5I+,.3,:1^[52}.!0.0^_1[22",
"-into!)",
"C", 0, "P", "%string-append",
"&0{%!0.0,'(c ),${.4,@(y18:strings-sum-length)[01}S2,@(y18:strings-copy" "%!0.0,'(c ),${.4,@(y18:strings-sum-length)[01}S2,@(y18:strings-copy-in"
"-into!)[12}@!(y14:%25string-append)", "to!)[12",
"S", "string-append", "S", "string-append",
"l7:y12:syntax-rules;n;l2:l1:y1:_;;s0:;;l2:l2:y1:_;y1:x;;l2:y4:%25cks;y" "l7:y12:syntax-rules;n;l2:l1:y1:_;;s0:;;l2:l2:y1:_;y1:x;;l2:y4:%25cks;y"
"1:x;;;l2:l3:y1:_;y1:x;y1:y;;l3:y10:string-cat;y1:x;y1:y;;;l2:py1:_;y1:" "1:x;;;l2:l3:y1:_;y1:x;y1:y;;l3:y10:string-cat;y1:x;y1:y;;;l2:py1:_;y1:"
"r;;py14:%25string-append;y1:r;;;l2:y1:_;y14:%25string-append;;", "r;;py14:%25string-append;y1:r;;;l2:y1:_;y14:%25string-append;;",
"C", 0, "P", "%apply",
"&0{%!2${.2,.5,,#0.0,&1{%2.1u?{.0]2}${.3d,.4a,:0^[02},.1c]2}.!0.0^_1[02" "%!2${.2,.5,,#0.0,&1{%2.1u?{.0]2}${.3d,.4a,:0^[02},.1c]2}.!0.0^_1[02},."
"},.2,@(y13:apply-to-list)[32}@!(y6:%25apply)", "2,@(y13:apply-to-list)[32",
"S", "apply", "S", "apply",
"l6:y12:syntax-rules;n;l2:l3:y1:_;y1:p;y1:l;;l3:y13:apply-to-list;y1:p;" "l6:y12:syntax-rules;n;l2:l3:y1:_;y1:p;y1:l;;l3:y13:apply-to-list;y1:p;"
@ -290,8 +279,8 @@ char *s_code[] = {
"p;l5:y5:list*;y1:a;y1:b;y3:...;y1:l;;;;l2:py1:_;y4:args;;py6:%25apply;" "p;l5:y5:list*;y1:a;y1:b;y3:...;y1:l;;;;l2:py1:_;y4:args;;py6:%25apply;"
"y4:args;;;l2:y1:_;y6:%25apply;;", "y4:args;;;l2:y1:_;y6:%25apply;;",
"C", 0, "P", "%call/cc",
"&0{%1k1,.0,.2[21}@!(y8:%25call/cc)", "%1k1,.0,.2[21",
"S", "call/cc", "S", "call/cc",
"l5:y12:syntax-rules;n;l2:l2:y1:_;y1:p;;l3:y5:letcc;y1:k;l2:y1:p;y1:k;;" "l5:y12:syntax-rules;n;l2:l2:y1:_;y1:p;;l3:y5:letcc;y1:k;l2:y1:p;y1:k;;"
@ -299,40 +288,37 @@ char *s_code[] = {
"A", "call-with-current-continuation", "call/cc", "A", "call-with-current-continuation", "call/cc",
"C", 0, "P", "%map1",
"&0{%2n,.2,,#0.0,.4,&2{%2.0p?{.1,${.3a,:0[01}c,.1d,:1^[22}.1A9]2}.!0.0^" "%2n,.2,,#0.0,.4,&2{%2.0p?{.1,${.3a,:0[01}c,.1d,:1^[22}.1A9]2}.!0.0^_1["
"_1[22}@!(y5:%25map1)", "22",
"C", 0, "P", "%map2",
"&0{%3n,.3,.3,,#0.0,.5,&2{%3.0p?{.1p}{f}?{.2,${.4a,.4a,:0[02}c,.2d,.2d," "%3n,.3,.3,,#0.0,.5,&2{%3.0p?{.1p}{f}?{.2,${.4a,.4a,:0[02}c,.2d,.2d,:1^"
":1^[33}.2A9]3}.!0.0^_1[33}@!(y5:%25map2)", "[33}.2A9]3}.!0.0^_1[33",
"C", 0, "P", "%map",
"&0{%!2.0u?{.2,.2,@(y5:%25map1)[32}.0du?{.0a,.3,.3,@(y5:%25map2)[33}n,." "%!2.0u?{.2,.2,@(y5:%25map1)[32}.0du?{.0a,.3,.3,@(y5:%25map2)[33}n,.1,."
"1,.4c,,#0.0,.5,&2{%2${.2,,#0.0,&1{%1.0u,.0?{.0]2}.1ap?{.1d,:0^[21}f]2}" "4c,,#0.0,.5,&2{%2${.2,,#0.0,&1{%1.0u,.0?{.0]2}.1ap?{.1d,:0^[21}f]2}.!0"
".!0.0^_1[01}?{.1,${${.5,@(y3:car),@(y5:%25map1)[02},:0,@(y13:apply-to-" ".0^_1[01}?{.1,${${.5,@(y3:car),@(y5:%25map1)[02},:0,@(y13:apply-to-lis"
"list)[02}c,${.3,@(y3:cdr),@(y5:%25map1)[02},:1^[22}.1A9]2}.!0.0^_1[32}" "t)[02}c,${.3,@(y3:cdr),@(y5:%25map1)[02},:1^[22}.1A9]2}.!0.0^_1[32",
"@!(y4:%25map)",
"S", "map", "S", "map",
"l6:y12:syntax-rules;n;l2:l3:y1:_;y1:p;y1:l;;l3:y5:%25map1;y1:p;y1:l;;;" "l6:y12:syntax-rules;n;l2:l3:y1:_;y1:p;y1:l;;l3:y5:%25map1;y1:p;y1:l;;;"
"l2:l4:y1:_;y1:p;y2:l1;y2:l2;;l4:y5:%25map2;y1:p;y2:l1;y2:l2;;;l2:py1:_" "l2:l4:y1:_;y1:p;y2:l1;y2:l2;;l4:y5:%25map2;y1:p;y2:l1;y2:l2;;;l2:py1:_"
";y4:args;;py4:%25map;y4:args;;;l2:y1:_;y4:%25map;;", ";y4:args;;py4:%25map;y4:args;;;l2:y1:_;y4:%25map;;",
"C", 0, "P", "%for-each1",
"&0{%2.1,,#0.2,.1,&2{%1.0p?{${.2a,:1[01}.0d,:0^[11}]1}.!0.0^_1[21}@!(y1" "%2.1,,#0.2,.1,&2{%1.0p?{${.2a,:1[01}.0d,:0^[11}]1}.!0.0^_1[21",
"0:%25for-each1)",
"C", 0, "P", "%for-each2",
"&0{%3.2,.2,,#0.3,.1,&2{%2.0p?{.1p}{f}?{${.3a,.3a,:1[02}.1d,.1d,:0^[22}" "%3.2,.2,,#0.3,.1,&2{%2.0p?{.1p}{f}?{${.3a,.3a,:1[02}.1d,.1d,:0^[22}]2}"
"]2}.!0.0^_1[32}@!(y10:%25for-each2)", ".!0.0^_1[32",
"C", 0, "P", "%for-each",
"&0{%!2.0u?{.2,.2,@(y10:%25for-each1)[32}.0du?{.0a,.3,.3,@(y10:%25for-e" "%!2.0u?{.2,.2,@(y10:%25for-each1)[32}.0du?{.0a,.3,.3,@(y10:%25for-each"
"ach2)[33}.0,.3c,,#0.3,.1,&2{%1${.2,,#0.0,&1{%1.0u,.0?{.0]2}.1ap?{.1d,:" "2)[33}.0,.3c,,#0.3,.1,&2{%1${.2,,#0.0,&1{%1.0u,.0?{.0]2}.1ap?{.1d,:0^["
"0^[21}f]2}.!0.0^_1[01}?{${${.4,@(y3:car),@(y5:%25map1)[02},:1,@(y13:ap" "21}f]2}.!0.0^_1[01}?{${${.4,@(y3:car),@(y5:%25map1)[02},:1,@(y13:apply"
"ply-to-list)[02}${.2,@(y3:cdr),@(y5:%25map1)[02},:0^[11}]1}.!0.0^_1[31" "-to-list)[02}${.2,@(y3:cdr),@(y5:%25map1)[02},:0^[11}]1}.!0.0^_1[31",
"}@!(y9:%25for-each)",
"S", "for-each", "S", "for-each",
"l6:y12:syntax-rules;n;l2:l3:y1:_;y1:p;y1:l;;l3:y10:%25for-each1;y1:p;y" "l6:y12:syntax-rules;n;l2:l3:y1:_;y1:p;y1:l;;l3:y10:%25for-each1;y1:p;y"
@ -340,51 +326,48 @@ char *s_code[] = {
"2;;;l2:py1:_;y4:args;;py9:%25for-each;y4:args;;;l2:y1:_;y9:%25for-each" "2;;;l2:py1:_;y4:args;;py9:%25for-each;y4:args;;;l2:y1:_;y9:%25for-each"
";;", ";;",
"C", 0, "P", "string-map",
"&0{%!2.0u?{.2S3,'(c ),.1S2,'0,,#0.0,.3,.8,.8,.7,&5{%1:0,.1I<!?{:3]1}${" "%!2.0u?{.2S3,'(c ),.1S2,'0,,#0.0,.3,.8,.8,.7,&5{%1:0,.1I<!?{:3]1}${.2,"
".2,:2S4,:1[01},.1,:3S5.0'1,.1I+,:4^[11}.!0.0^_1[51}${${.4,.7c,@(y13:%2" ":2S4,:1[01},.1,:3S5.0'1,.1I+,:4^[11}.!0.0^_1[51}${${.4,.7c,@(y13:%25st"
"5string->list),@(y5:%25map1)[02},.4c,@(y4:%25map),@(y13:apply-to-list)" "ring->list),@(y5:%25map1)[02},.4c,@(y4:%25map),@(y13:apply-to-list)[02"
"[02}X3]3}@!(y10:string-map)", "}X3]3",
"C", 0, "P", "vector-map",
"&0{%!2.0u?{.2V3,f,.1V2,'0,,#0.0,.3,.8,.8,.7,&5{%1:0,.1I<!?{:3]1}${.2,:" "%!2.0u?{.2V3,f,.1V2,'0,,#0.0,.3,.8,.8,.7,&5{%1:0,.1I<!?{:3]1}${.2,:2V4"
"2V4,:1[01},.1,:3V5.0'1,.1I+,:4^[11}.!0.0^_1[51}${${.4,.7c,@(y13:%25vec" ",:1[01},.1,:3V5.0'1,.1I+,:4^[11}.!0.0^_1[51}${${.4,.7c,@(y13:%25vector"
"tor->list),@(y5:%25map1)[02},.4c,@(y4:%25map),@(y13:apply-to-list)[02}" "->list),@(y5:%25map1)[02},.4c,@(y4:%25map),@(y13:apply-to-list)[02}X1]"
"X1]3}@!(y10:vector-map)", "3",
"C", 0, "P", "string-for-each",
"&0{%!2.0u?{.2S3,'0,,#0.2,.6,.6,.3,&4{%1:3,.1I<!,.0?{.0]2}${.3,:2S4,:1[" "%!2.0u?{.2S3,'0,,#0.2,.6,.6,.3,&4{%1:3,.1I<!,.0?{.0]2}${.3,:2S4,:1[01}"
"01}.1'1,.2I+,:0^[21}.!0.0^_1[41}${.2,.5c,@(y13:%25string->list),@(y5:%" ".1'1,.2I+,:0^[21}.!0.0^_1[41}${.2,.5c,@(y13:%25string->list),@(y5:%25m"
"25map1)[02},.2c,@(y9:%25for-each),@(y13:apply-to-list)[32}@!(y15:strin" "ap1)[02},.2c,@(y9:%25for-each),@(y13:apply-to-list)[32",
"g-for-each)",
"C", 0, "P", "vector-for-each",
"&0{%!2.0u?{.2V3,'0,,#0.2,.6,.6,.3,&4{%1:3,.1I<!,.0?{.0]2}${.3,:2V4,:1[" "%!2.0u?{.2V3,'0,,#0.2,.6,.6,.3,&4{%1:3,.1I<!,.0?{.0]2}${.3,:2V4,:1[01}"
"01}.1'1,.2I+,:0^[21}.!0.0^_1[41}${.2,.5c,@(y13:%25vector->list),@(y5:%" ".1'1,.2I+,:0^[21}.!0.0^_1[41}${.2,.5c,@(y13:%25vector->list),@(y5:%25m"
"25map1)[02},.2c,@(y9:%25for-each),@(y13:apply-to-list)[32}@!(y15:vecto" "ap1)[02},.2c,@(y9:%25for-each),@(y13:apply-to-list)[32",
"r-for-each)",
"C", 0, "P", "port?",
"&0{%1.0P00,.0?{.0]2}.1P01]2}@!(y5:port?)", "%1.0P00,.0?{.0]2}.1P01]2",
"C", 0, "P", "close-port",
"&0{%1.0P00?{.0P60}.0P01?{.0P61]1}]1}@!(y10:close-port)", "%1.0P00?{.0P60}.0P01?{.0P61]1}]1",
"C", 0, "P", "call-with-port",
"&0{%2.0,&1{%!0${:0,@(y10:close-port)[01}.0,@(y6:values),@(y13:apply-to" "%2.0,&1{%!0${:0,@(y10:close-port)[01}.0,@(y6:values),@(y13:apply-to-li"
"-list)[12},.1,.3,&2{%0:1,:0[01},@(y16:call-with-values)[22}@!(y14:call" "st)[12},.1,.3,&2{%0:1,:0[01},@(y16:call-with-values)[22",
"-with-port)",
"C", 0, "P", "call-with-input-file",
"&0{%2.1,.1P40,@(y14:call-with-port)[22}@!(y20:call-with-input-file)", "%2.1,.1P40,@(y14:call-with-port)[22",
"C", 0, "P", "call-with-output-file",
"&0{%2.1,.1P41,@(y14:call-with-port)[22}@!(y21:call-with-output-file)", "%2.1,.1P41,@(y14:call-with-port)[22",
"C", 0, "P", "read-line",
"&0{%!0P51,.1u?{P10}{.1a},t,,#0.2,.4,.2,&3{%1:2R0,.0R8,.0?{.0}{'(c%0a)," "%!0P51,.1u?{P10}{.1a},t,,#0.2,.4,.2,&3{%1:2R0,.0R8,.0?{.0}{'(c%0a),.2C"
".2C=}_1?{.0R8?{.1}{f}?{.0]2}:1P9,:1P61.0]3}'(c%0d),.1C=?{f,:0^[21}:1,." "=}_1?{.0R8?{.1}{f}?{.0]2}:1P9,:1P61.0]3}'(c%0d),.1C=?{f,:0^[21}:1,.1W0"
"1W0f,:0^[21}.!0.0^_1[31}@!(y9:read-line)", "f,:0^[21}.!0.0^_1[31",
0, 0 0, 0, 0
}; };

View file

@ -1201,7 +1201,18 @@
(display-code cstr oport) (newline oport)) (display-code cstr oport) (newline oport))
(define (process-define id xlam oport) (define (process-define id xlam oport)
(process-command (list 'set! id xlam) oport)) (define cstr (compile-to-string xlam))
(let ([len (string-length cstr)])
(cond [(and (eq? (car xlam) 'lambda)
(> len 4)
(char=? (string-ref cstr 0) #\&)
(char=? (string-ref cstr 1) #\0)
(char=? (string-ref cstr 2) #\{)
(char=? (string-ref cstr (fx- len 1)) #\}))
(newline oport)
(display " \"P\", \"" oport) (display id oport) (display "\",\n" oport)
(display-code (substring cstr 3 (fx- len 1)) oport) (newline oport)]
[else (process-command (list 'set! id xlam) oport)])))
(define (scan-top-form x) (define (scan-top-form x)
(cond (cond
@ -1285,7 +1296,7 @@
(unless (eof-object? x) (unless (eof-object? x)
(process-top-form x oport) (process-top-form x oport)
(loop (read iport)))) (loop (read iport))))
(display "\n 0, 0\n};\n" oport) (display "\n 0, 0, 0\n};\n" oport)
(close-input-port iport)) (close-input-port iport))

View file

@ -200,16 +200,15 @@
; define | define-syntax ; top-level only ; define | define-syntax ; top-level only
; <transformer> -> <procedure of exp and env returning exp> ; <transformer> -> <procedure of exp and env returning exp>
(define val-core? pair?) (define-syntax val-core? pair?)
(define (val-special? val) (not (pair? val))) (define (val-special? val) (not (pair? val)))
(define-syntax binding? pair?)
(define binding? pair?) (define-syntax make-binding cons)
(define make-binding cons) (define-syntax binding-val cdr)
(define binding-val cdr) (define (binding-special? bnd) (val-special? (cdr bnd)))
(define (binding-special? bnd) (val-special? (cdr bnd))) (define-syntax binding-sym car)
(define binding-sym car) (define-syntax binding-set-val! set-cdr!)
(define binding-set-val! set-cdr!) (define-syntax find-top-binding assq)
(define find-top-binding assq)
(define (new-id den) (define p (list den)) (lambda () p)) (define (new-id den) (define p (list den)) (lambda () p))
(define (old-den id) (car (id))) (define (old-den id) (car (id)))

574
t.c
View file

@ -2,26 +2,24 @@
char *t_code[] = { char *t_code[] = {
0, "P", "set-member?",
"&0{%2.1u?{f]2}.1a,.1q?{t]2}.1d,.1,@(y11:set-member?)[22}@!(y11:set-mem" "%2.1u?{f]2}.1a,.1q?{t]2}.1d,.1,@(y11:set-member?)[22",
"ber?)",
0, "P", "set-cons",
"&0{%2${.3,.3,@(y11:set-member?)[02}?{.1]2}.1,.1c]2}@!(y8:set-cons)", "%2${.3,.3,@(y11:set-member?)[02}?{.1]2}.1,.1c]2",
0, "P", "set-union",
"&0{%2.0u?{.1]2}${.3,.3a,@(y8:set-cons)[02},.1d,@(y9:set-union)[22}@!(y" "%2.0u?{.1]2}${.3,.3a,@(y8:set-cons)[02},.1d,@(y9:set-union)[22",
"9:set-union)",
0, "P", "set-minus",
"&0{%2.0u?{n]2}${.3,.3a,@(y11:set-member?)[02}?{.1,.1d,@(y9:set-minus)[" "%2.0u?{n]2}${.3,.3a,@(y11:set-member?)[02}?{.1,.1d,@(y9:set-minus)[22}"
"22}${.3,.3d,@(y9:set-minus)[02},.1ac]2}@!(y9:set-minus)", "${.3,.3d,@(y9:set-minus)[02},.1ac]2",
0, "P", "set-intersect",
"&0{%2.0u?{n]2}${.3,.3a,@(y11:set-member?)[02}?{${.3,.3d,@(y13:set-inte" "%2.0u?{n]2}${.3,.3a,@(y11:set-member?)[02}?{${.3,.3d,@(y13:set-interse"
"rsect)[02},.1ac]2}.1,.1d,@(y13:set-intersect)[22}@!(y13:set-intersect)", "ct)[02},.1ac]2}.1,.1d,@(y13:set-intersect)[22",
"record-case", "S", "record-case",
"l6:y12:syntax-rules;l1:y4:else;;l2:l4:y11:record-case;py2:pa;y2:ir;;y6" "l6:y12:syntax-rules;l1:y4:else;;l2:l4:y11:record-case;py2:pa;y2:ir;;y6"
":clause;y3:...;;l3:y3:let;l1:l2:y2:id;py2:pa;y2:ir;;;;l4:y11:record-ca" ":clause;y3:...;;l3:y3:let;l1:l2:y2:id;py2:pa;y2:ir;;;;l4:y11:record-ca"
"se;y2:id;y6:clause;y3:...;;;;l2:l2:y11:record-case;y2:id;;l2:y5:quote;" "se;y2:id;y6:clause;y3:...;;;;l2:l2:y11:record-case;y2:id;;l2:y5:quote;"
@ -32,347 +30,315 @@ char *t_code[] = {
"y3:...;;l2:y3:cdr;y2:id;;;l4:y11:record-case;y2:id;y6:clause;y3:...;;;" "y3:...;;l2:y3:cdr;y2:id;;;l4:y11:record-case;y2:id;y6:clause;y3:...;;;"
";", ";",
0, "P", "syntax-match?",
"&0{%2'(y1:*),.1q,.0?{.0]3}.1,.3e,.0?{.0]4}.2p?{'(y1:$),.3aq?{.2dp?{.2d" "%2'(y1:*),.1q,.0?{.0]3}.1,.3e,.0?{.0]4}.2p?{'(y1:$),.3aq?{.2dp?{.2ddu}"
"du}{f}}{f}?{.2da,.4q]4}.2dp?{'(y3:...),.3daq?{.2ddu}{f}}{f}?{.2a,,#0.0" "{f}}{f}?{.2da,.4q]4}.2dp?{'(y3:...),.3daq?{.2ddu}{f}}{f}?{.2a,,#0.0,.2"
",.2,&2{%1.0u,.0?{.0]2}.1p?{${.3a,:0,@(y13:syntax-match?)[02}?{.1d,:1^[" ",&2{%1.0u,.0?{.0]2}.1p?{${.3a,:0,@(y13:syntax-match?)[02}?{.1d,:1^[21}"
"21}f]2}f]2}.!0.5,.1^[61}.3p?{${.5a,.5a,@(y13:syntax-match?)[02}?{.3d,." "f]2}f]2}.!0.5,.1^[61}.3p?{${.5a,.5a,@(y13:syntax-match?)[02}?{.3d,.3d,"
"3d,@(y13:syntax-match?)[42}f]4}f]4}f]4}@!(y13:syntax-match?)", "@(y13:syntax-match?)[42}f]4}f]4}f]4",
0, "C", 0,
"'0,#0.0,&1{%!0'1,:0^I+:!0.0u?{'(i10),:0^X6,'(s1:#)S6X5]1}.0aY0?{'(i10)" "'0,#0.0,&1{%!0'1,:0^I+:!0.0u?{'(i10),:0^X6,'(s1:#)S6X5]1}.0aY0?{'(i10)"
",:0^X6,'(s1:#)S6,.1aX4S6X5]1}'0:!0]1}_1@!(y6:gensym)", ",:0^X6,'(s1:#)S6,.1aX4S6X5]1}'0:!0]1}_1@!(y6:gensym)",
0, "P", "posq",
"&0{%2'0,.2,,#0.0,.4,&2{%2.0u?{f]2}.0a,:0q?{.1]2}'1,.2I+,.1d,:1^[22}.!0" "%2'0,.2,,#0.0,.4,&2{%2.0u?{f]2}.0a,:0q?{.1]2}'1,.2I+,.1d,:1^[22}.!0.0^"
".0^_1[22}@!(y4:posq)", "_1[22",
0, "P", "list-diff",
"&0{%2.0u,.0?{.0}{.2,.2q}_1?{n]2}${.3,.3d,@(y9:list-diff)[02},.1ac]2}@!" "%2.0u,.0?{.0}{.2,.2q}_1?{n]2}${.3,.3d,@(y9:list-diff)[02},.1ac]2",
"(y9:list-diff)",
0, "P", "pair*",
"&0{%!1.0,.2,,#0.0,&1{%2.1u?{.0]2}${.3d,.4a,:0^[02},.1c]2}.!0.0^_1[22}@" "%!1.0,.2,,#0.0,&1{%2.1u?{.0]2}${.3d,.4a,:0^[02},.1c]2}.!0.0^_1[22",
"!(y5:pair*)",
0, "P", "andmap",
"&0{%2.1p?{${.3a,.3[01}?{.1d,.1,@(y6:andmap)[22}f]2}t]2}@!(y6:andmap)", "%2.1p?{${.3a,.3[01}?{.1d,.1,@(y6:andmap)[22}f]2}t]2",
0, "P", "list1?",
"&0{%1.0p?{.0du]1}f]1}@!(y6:list1?)", "%1.0p?{.0du]1}f]1",
0, "P", "list1+?",
"&0{%1.0p?{.0dL0]1}f]1}@!(y7:list1+?)", "%1.0p?{.0dL0]1}f]1",
0, "P", "list2?",
"&0{%1.0p?{.0d,@(y6:list1?)[11}f]1}@!(y6:list2?)", "%1.0p?{.0d,@(y6:list1?)[11}f]1",
0, "P", "list2+?",
"&0{%1.0p?{.0d,@(y7:list1+?)[11}f]1}@!(y7:list2+?)", "%1.0p?{.0d,@(y7:list1+?)[11}f]1",
0, "P", "idslist?",
"&0{%1.0u?{t]1}.0p?{${.2a,@(y3:id?)[01}?{.0d,@(y8:idslist?)[11}f]1}.0,@" "%1.0u?{t]1}.0p?{${.2a,@(y3:id?)[01}?{.0d,@(y8:idslist?)[11}f]1}.0,@(y3"
"(y3:id?)[11}@!(y8:idslist?)", ":id?)[11",
0, "P", "normalize-arity",
"&0{%1${.2,@(y6:list2?)[01}?{.0aI0?{.0daY1}{f}}{f}?{.0]1}.0,'0,,#0.0,&1" "%1${.2,@(y6:list2?)[01}?{.0aI0?{.0daY1}{f}}{f}?{.0]1}.0,'0,,#0.0,&1{%2"
"{%2.1p?{.1d,.1,'1I+,:0^[22}.1u?{f,.1,l2]2}t,.1,l2]2}.!0.0^_1[12}@!(y15" ".1p?{.1d,.1,'1I+,:0^[22}.1u?{f,.1,l2]2}t,.1,l2]2}.!0.0^_1[12",
":normalize-arity)",
0, "P", "flatten-idslist",
"&0{%1.0L0?{.0]1}n,.1,,#0.0,&1{%2.0p?{.1,.1ac,.1d,:0^[22}.0u?{.1A9]2}.1" "%1.0L0?{.0]1}n,.1,,#0.0,&1{%2.0p?{.1,.1ac,.1d,:0^[22}.0u?{.1A9]2}.1A9,"
"A9,.1c]2}.!0.0^_1[12}@!(y15:flatten-idslist)", ".1c]2}.!0.0^_1[12",
0, "P", "idslist-req-count",
"&0{%1.0p?{${.2d,@(y17:idslist-req-count)[01},'1I+]1}'0]1}@!(y17:idslis" "%1.0p?{${.2d,@(y17:idslist-req-count)[01},'1I+]1}'0]1",
"t-req-count)",
0, "A", "val-core?", "pair?",
"@(y5:pair?)@!(y9:val-core?)",
0, "P", "val-special?",
"&0{%1.0p~]1}@!(y12:val-special?)", "%1.0p~]1",
0, "A", "binding?", "pair?",
"@(y5:pair?)@!(y8:binding?)",
0, "A", "make-binding", "cons",
"@(y4:cons)@!(y12:make-binding)",
0, "A", "binding-val", "cdr",
"@(y3:cdr)@!(y11:binding-val)",
0, "P", "binding-special?",
"&0{%1.0d,@(y12:val-special?)[11}@!(y16:binding-special?)", "%1.0d,@(y12:val-special?)[11",
0, "A", "binding-sym", "car",
"@(y3:car)@!(y11:binding-sym)",
0, "A", "binding-set-val!", "set-cdr!",
"@(y8:set-cdr!)@!(y16:binding-set-val!)",
0, "A", "find-top-binding", "assq",
"@(y4:assq)@!(y16:find-top-binding)",
0, "P", "new-id",
"&0{%1,#0.1,l1.!0.0,&1{%0:0^]0}]2}@!(y6:new-id)", "%1,#0.1,l1.!0.0,&1{%0:0^]0}]2",
0, "P", "old-den",
"&0{%1${.2[00}a]1}@!(y7:old-den)", "%1${.2[00}a]1",
0, "P", "id?",
"&0{%1.0Y0,.0?{.0]2}.1K0]2}@!(y3:id?)", "%1.0Y0,.0?{.0]2}.1K0]2",
0, "P", "id->sym",
"&0{%1.0Y0?{.0]1}${.2,@(y7:old-den)[01},@(y8:den->sym)[11}@!(y7:id->sym" "%1.0Y0?{.0]1}${.2,@(y7:old-den)[01},@(y8:den->sym)[11",
")",
0, "P", "den->sym",
"&0{%1.0Y0?{.0]1}.0,@(y11:binding-sym)[11}@!(y8:den->sym)", "%1.0Y0?{.0]1}.0a]1",
0, "P", "empty-xenv",
"&0{%1.0Y0?{.0]1}.0,@(y7:old-den)[11}@!(y10:empty-xenv)", "%1.0Y0?{.0]1}.0,@(y7:old-den)[11",
0, "P", "extend-xenv",
"&0{%3.0,.3,.3,&3{%1.0,:0q?{:1]1}.0,:2[11}]3}@!(y11:extend-xenv)", "%3.0,.3,.3,&3{%1.0,:0q?{:1]1}.0,:2[11}]3",
0, "P", "add-binding",
"&0{%3${.3,${.5,@(y7:id->sym)[01},@(y12:make-binding)[02},.1,.4,@(y11:e" "%3.1,${.3,@(y7:id->sym)[01}c,.1,.4,@(y11:extend-xenv)[33",
"xtend-xenv)[33}@!(y11:add-binding)",
0, "P", "add-var",
"&0{%3${.3,'(y3:ref),l2,${.5,@(y7:id->sym)[01},@(y12:make-binding)[02}," "%3.1,'(y3:ref),l2,${.3,@(y7:id->sym)[01}c,.1,.4,@(y11:extend-xenv)[33",
".1,.4,@(y11:extend-xenv)[33}@!(y7:add-var)",
0, "P", "x-error",
"&0{%!1.0,.2,'(s13:transformer: )S6,@(y6:error*)[22}@!(y7:x-error)", "%!1.0,.2,'(s13:transformer: )S6,@(y6:error*)[22",
0, "P", "xform",
"&0{%3${.3,@(y3:id?)[01}?{${.4,.4,@(y9:xform-ref)[02},.1?{.0]4}.0U0?{.0" "%3${.3,@(y3:id?)[01}?{${.4,.4,@(y9:xform-ref)[02},.1?{.0]4}.0U0?{.0U7,"
"U7,'(y3:ref),l2]4}.0K0?{.3,${.6,.6,.5[02},.3,@(y5:xform)[43}.0p~?{.0,'" "'(y3:ref),l2]4}.0K0?{.3,${.6,.6,.5[02},.3,@(y5:xform)[43}.0p~?{.0,'(s2"
"(s27:improper use of syntax form),@(y7:x-error)[42}.0]4}.1p~?{.2,.2,l1" "7:improper use of syntax form),@(y7:x-error)[42}.0]4}.1p~?{.2,.2,l1,@("
",@(y11:xform-quote)[32}.1a,.2d,${.6,.4,t,@(y5:xform)[03},.0,'(l1:y6:sy" "y11:xform-quote)[32}.1a,.2d,${.6,.4,t,@(y5:xform)[03},.0,'(l1:y6:synta"
"ntax;),.1A1?{.2a]7}'(l1:y5:quote;),.1A1?{.6,.3,@(y11:xform-quote)[72}'" "x;),.1A1?{.2a]7}'(l1:y5:quote;),.1A1?{.6,.3,@(y11:xform-quote)[72}'(l1"
"(l1:y4:set!;),.1A1?{.6,.3,@(y10:xform-set!)[72}'(l1:y4:set&;),.1A1?{.6" ":y4:set!;),.1A1?{.6,.3,@(y10:xform-set!)[72}'(l1:y4:set&;),.1A1?{.6,.3"
",.3,@(y10:xform-set&)[72}'(l1:y5:begin;),.1A1?{.6,.3,@(y11:xform-begin" ",@(y10:xform-set&)[72}'(l1:y5:begin;),.1A1?{.6,.3,@(y11:xform-begin)[7"
")[72}'(l1:y2:if;),.1A1?{.6,.3,@(y8:xform-if)[72}'(l1:y6:lambda;),.1A1?" "2}'(l1:y2:if;),.1A1?{.6,.3,@(y8:xform-if)[72}'(l1:y6:lambda;),.1A1?{.6"
"{.6,.3,@(y12:xform-lambda)[72}'(l1:y7:lambda*;),.1A1?{.6,.3,@(y13:xfor" ",.3,@(y12:xform-lambda)[72}'(l1:y7:lambda*;),.1A1?{.6,.3,@(y13:xform-l"
"m-lambda*)[72}'(l1:y13:syntax-lambda;),.1A1?{.6,.3,@(y19:xform-syntax-" "ambda*)[72}'(l1:y13:syntax-lambda;),.1A1?{.6,.3,@(y19:xform-syntax-lam"
"lambda)[72}'(l1:y5:letcc;),.1A1?{.6,.3,@(y11:xform-letcc)[72}'(l1:y6:w" "bda)[72}'(l1:y5:letcc;),.1A1?{.6,.3,@(y11:xform-letcc)[72}'(l1:y6:with"
"ithcc;),.1A1?{.6,.3,@(y12:xform-withcc)[72}'(l1:y4:body;),.1A1?{.6,.3," "cc;),.1A1?{.6,.3,@(y12:xform-withcc)[72}'(l1:y4:body;),.1A1?{.6,.3,@(y"
"@(y10:xform-body)[72}'(l1:y6:define;),.1A1?{.6,.3,@(y12:xform-define)[" "10:xform-body)[72}'(l1:y6:define;),.1A1?{.6,.3,@(y12:xform-define)[72}"
"72}'(l1:y13:define-syntax;),.1A1?{.6,.3,@(y19:xform-define-syntax)[72}" "'(l1:y13:define-syntax;),.1A1?{.6,.3,@(y19:xform-define-syntax)[72}t?{"
"t?{.1U0?{.6,.3,.3,@(y16:xform-integrable)[73}.1K0?{.6,${.9,.9,.6[02},." ".1U0?{.6,.3,.3,@(y16:xform-integrable)[73}.1K0?{.6,${.9,.9,.6[02},.6,@"
"6,@(y5:xform)[73}.6,.3,.3,@(y10:xform-call)[73}f]7}@!(y5:xform)", "(y5:xform)[73}.6,.3,.3,@(y10:xform-call)[73}f]7",
0, "P", "xform-ref",
"&0{%2${.2,.4[01},.0Y0?{.0,'(y3:ref),l2]3}.0,@(y11:binding-val)[31}@!(y" "%2${.2,.4[01},.0Y0?{.0,'(y3:ref),l2]3}.0d]3",
"9:xform-ref)",
0, "P", "xform-quote",
"&0{%2${.2,@(y6:list1?)[01}?{${.2a,,#0.0,&1{%1${.2,@(y3:id?)[01}?{.0,@(" "%2${.2,@(y6:list1?)[01}?{${.2a,,#0.0,&1{%1${.2,@(y3:id?)[01}?{.0,@(y7:"
"y7:id->sym)[11}.0p?{${.2d,:0^[01},${.3a,:0^[01}c]1}.0V0?{${.2X0,:0^,@(" "id->sym)[11}.0p?{${.2d,:0^[01},${.3a,:0^[01}c]1}.0V0?{${.2X0,:0^,@(y5:"
"y5:%25map1)[02}X1]1}.0]1}.!0.0^_1[01},'(y5:quote),l2]2}.0,'(y5:quote)c" "%25map1)[02}X1]1}.0]1}.!0.0^_1[01},'(y5:quote),l2]2}.0,'(y5:quote)c,'("
",'(s19:improper quote form),@(y7:x-error)[22}@!(y11:xform-quote)", "s19:improper quote form),@(y7:x-error)[22",
0, "P", "xform-set!",
"&0{%2${.2,@(y6:list2?)[01}?{${.2a,@(y3:id?)[01}}{f}?{${.3,.3da,f,@(y5:" "%2${.2,@(y6:list2?)[01}?{${.2a,@(y3:id?)[01}}{f}?{${.3,.3da,f,@(y5:xfo"
"xform)[03},${.3a,.5[01},.0Y0?{.1,.1,'(y4:set!),l3]4}${.2,@(y16:binding" "rm)[03},${.3a,.5[01},.0Y0?{.1,.1,'(y4:set!),l3]4}${.2,@(y16:binding-sp"
"-special?)[01}?{${.3,.3,@(y16:binding-set-val!)[02}'(l1:y5:begin;)]4}$" "ecial?)[01}?{.1,.1d!'(l1:y5:begin;)]4}.0d,'(y3:ref),.1aq?{.2,.1da,'(y4"
"{.2,@(y11:binding-val)[01},'(y3:ref),.1aq?{.2,.1da,'(y4:set!),l3]5}'(s" ":set!),l3]5}'(s27:set! to non-identifier form),@(y7:x-error)[51}.0,'(y"
"27:set! to non-identifier form),@(y7:x-error)[51}.0,'(y4:set!)c,'(s18:" "4:set!)c,'(s18:improper set! form),@(y7:x-error)[22",
"improper set! form),@(y7:x-error)[22}@!(y10:xform-set!)",
0, "P", "xform-set&",
"&0{%2${.2,@(y6:list1?)[01}?{${.2a,.4[01},.0Y0?{.0,'(y4:set&),l2]3}${.2" "%2${.2,@(y6:list1?)[01}?{${.2a,.4[01},.0Y0?{.0,'(y4:set&),l2]3}${.2,@("
",@(y16:binding-special?)[01}?{'(s22:set& of a non-variable),@(y7:x-err" "y16:binding-special?)[01}?{'(s22:set& of a non-variable),@(y7:x-error)"
"or)[31}${.2,@(y11:binding-val)[01},'(y3:ref),.1aq?{.0da,'(y4:set&),l2]" "[31}.0d,'(y3:ref),.1aq?{.0da,'(y4:set&),l2]4}'(s22:set& of a non-varia"
"4}'(s22:set& of a non-variable),@(y7:x-error)[41}.0,'(y4:set&)c,'(s18:" "ble),@(y7:x-error)[41}.0,'(y4:set&)c,'(s18:improper set& form),@(y7:x-"
"improper set& form),@(y7:x-error)[22}@!(y10:xform-set&)", "error)[22",
0, "P", "xform-begin",
"&0{%2.0L0?{${.2,.4,&1{%1:0,.1,f,@(y5:xform)[13},@(y5:%25map1)[02},.0p?" "%2.0L0?{${.2,.4,&1{%1:0,.1,f,@(y5:xform)[13},@(y5:%25map1)[02},.0p?{.0"
"{.0du}{f}?{.0a]3}.0,'(y5:begin)c]3}.0,'(y6:begin!)c,'(s19:improper beg" "du}{f}?{.0a]3}.0,'(y5:begin)c]3}.0,'(y6:begin!)c,'(s19:improper begin "
"in form),@(y7:x-error)[22}@!(y11:xform-begin)", "form),@(y7:x-error)[22",
0, "P", "xform-if",
"&0{%2.0L0?{${.2,.4,&1{%1:0,.1,f,@(y5:xform)[13},@(y5:%25map1)[02},.0g," "%2.0L0?{${.2,.4,&1{%1:0,.1,f,@(y5:xform)[13},@(y5:%25map1)[02},.0g,'(l"
"'(l1:i2;),.1A1?{'(l1:l1:y5:begin;;),.2L6,'(y2:if)c]4}'(l1:i3;),.1A1?{." "1:i2;),.1A1?{'(l1:l1:y5:begin;;),.2L6,'(y2:if)c]4}'(l1:i3;),.1A1?{.1,'"
"1,'(y2:if)c]4}t?{.2,'(y2:if)c,'(s17:malformed if form),@(y7:x-error)[4" "(y2:if)c]4}t?{.2,'(y2:if)c,'(s17:malformed if form),@(y7:x-error)[42}f"
"2}f]4}.0,'(y2:if)c,'(s16:improper if form),@(y7:x-error)[22}@!(y8:xfor" "]4}.0,'(y2:if)c,'(s16:improper if form),@(y7:x-error)[22",
"m-if)",
0, "P", "xform-call",
"&0{%3.1L0?{${.3,.5,&1{%1:0,.1,f,@(y5:xform)[13},@(y5:%25map1)[02},.0u?" "%3.1L0?{${.3,.5,&1{%1:0,.1,f,@(y5:xform)[13},@(y5:%25map1)[02},.0u?{'("
"{'(y6:lambda),.2aq?{.1dau}{f}}{f}?{.1dda]4}.0,.2,'(y4:call),@(y5:pair*" "y6:lambda),.2aq?{.1dau}{f}}{f}?{.1dda]4}.0,.2,'(y4:call),@(y5:pair*)[4"
")[43}.1,.1c,'(s20:improper application),@(y7:x-error)[32}@!(y10:xform-" "3}.1,.1c,'(s20:improper application),@(y7:x-error)[32",
"call)",
0, "P", "integrable-argc-match?",
"&0{%2.0,'(l1:c0;),.1A1?{'0,.3=]3}'(l1:c1;),.1A1?{'1,.3=]3}'(l1:c2;),.1" "%2.0,'(l1:c0;),.1A1?{'0,.3=]3}'(l1:c1;),.1A1?{'1,.3=]3}'(l1:c2;),.1A1?"
"A1?{'2,.3=]3}'(l1:c3;),.1A1?{'3,.3=]3}'(l1:cp;),.1A1?{'0,.3<!]3}'(l1:c" "{'2,.3=]3}'(l1:c3;),.1A1?{'3,.3=]3}'(l1:cp;),.1A1?{'0,.3<!]3}'(l1:cm;)"
"m;),.1A1?{'1,.3<!]3}'(l1:cc;),.1A1?{'2,.3<!]3}'(l1:cx;),.1A1?{'1,.3<!]" ",.1A1?{'1,.3<!]3}'(l1:cc;),.1A1?{'2,.3<!]3}'(l1:cx;),.1A1?{'1,.3<!]3}'"
"3}'(l1:cu;),.1A1?{'1,.3,,'0>!;>!]3}'(l1:cb;),.1A1?{'2,.3,,'1>!;>!]3}'(" "(l1:cu;),.1A1?{'1,.3,,'0>!;>!]3}'(l1:cb;),.1A1?{'2,.3,,'1>!;>!]3}'(l1:"
"l1:c#;),.1A1?{'0,.3<!]3}'(l1:c@;),.1A1?{f]3}t?{f]3}f]3}@!(y22:integrab" "c#;),.1A1?{'0,.3<!]3}'(l1:c@;),.1A1?{f]3}t?{f]3}f]3",
"le-argc-match?)",
0, "P", "xform-integrable",
"&0{%3${.3g,.3U6,@(y22:integrable-argc-match?)[02}?{${.3,.5,&1{%1:0,.1," "%3${.3g,.3U6,@(y22:integrable-argc-match?)[02}?{${.3,.5,&1{%1:0,.1,f,@"
"f,@(y5:xform)[13},@(y5:%25map1)[02},.1c,'(y10:integrable)c]3}.2,.2,.2U" "(y5:xform)[13},@(y5:%25map1)[02},.1c,'(y10:integrable)c]3}.2,.2,.2U7,'"
"7,'(y3:ref),l2,@(y10:xform-call)[33}@!(y16:xform-integrable)", "(y3:ref),l2,@(y10:xform-call)[33",
0, "P", "xform-lambda",
"&0{%2${.2,@(y7:list1+?)[01}?{${.2a,@(y8:idslist?)[01}}{f}?{n,.2,.2a,,#" "%2${.2,@(y7:list1+?)[01}?{${.2a,@(y8:idslist?)[01}}{f}?{n,.2,.2a,,#0.4"
"0.4,.1,&2{%3.0p?{.0a,${${.4,@(y7:id->sym)[01},@(y6:gensym)[01},.4,.1c," ",.1,&2{%3.0p?{.0a,${${.4,@(y7:id->sym)[01},@(y6:gensym)[01},.4,.1c,${."
"${.6,.4,.6,@(y7:add-var)[03},.4d,:0^[53}.0u?{${.3,:1d,@(y10:xform-body" "6,.4,.6,@(y7:add-var)[03},.4d,:0^[53}.0u?{${.3,:1d,@(y10:xform-body)[0"
")[02},.3A8,'(y6:lambda),l3]3}.0,${${.4,@(y7:id->sym)[01},@(y6:gensym)[" "2},.3A8,'(y6:lambda),l3]3}.0,${${.4,@(y7:id->sym)[01},@(y6:gensym)[01}"
"01},${.5,.3,.5,@(y7:add-var)[03},${.2,:1d,@(y10:xform-body)[02},.2,.7A" ",${.5,.3,.5,@(y7:add-var)[03},${.2,:1d,@(y10:xform-body)[02},.2,.7A8L6"
"8L6,'(y6:lambda),l3]6}.!0.0^_1[23}.0,'(y6:lambda)c,'(s20:improper lamb" ",'(y6:lambda),l3]6}.!0.0^_1[23}.0,'(y6:lambda)c,'(s20:improper lambda "
"da body),@(y7:x-error)[22}@!(y12:xform-lambda)", "body),@(y7:x-error)[22",
0, "P", "xform-lambda*",
"&0{%2.0L0?{${.2,.4,&1{%1${.2,@(y6:list2?)[01}?{${.2a,@(y6:list2?)[01}?" "%2.0L0?{${.2,.4,&1{%1${.2,@(y6:list2?)[01}?{${.2a,@(y6:list2?)[01}?{.0"
"{.0aaI0?{.0adaY1}{f}}{f},.0?{.0}{${.3a,@(y8:idslist?)[01}}_1}{f}?{${:0" "aaI0?{.0adaY1}{f}}{f},.0?{.0}{${.3a,@(y8:idslist?)[01}}_1}{f}?{${:0,.3"
",.3da,f,@(y5:xform)[03},${.3a,@(y15:normalize-arity)[01},l2]1}.0,'(s23" "da,f,@(y5:xform)[03},${.3a,@(y15:normalize-arity)[01},l2]1}.0,'(s23:im"
":improper lambda* clause),@(y7:x-error)[12},@(y5:%25map1)[02},'(y7:lam" "proper lambda* clause),@(y7:x-error)[12},@(y5:%25map1)[02},'(y7:lambda"
"bda*)c]2}.0,'(y7:lambda*)c,'(s21:improper lambda* form),@(y7:x-error)[" "*)c]2}.0,'(y7:lambda*)c,'(s21:improper lambda* form),@(y7:x-error)[22",
"22}@!(y13:xform-lambda*)",
0, "P", "xform-syntax-lambda",
"&0{%2${.2,@(y7:list2+?)[01}?{${.2a,@(y3:id?),@(y6:andmap)[02}}{f}?{.0d" "%2${.2,@(y7:list2+?)[01}?{${.2a,@(y3:id?),@(y6:andmap)[02}}{f}?{.0d,.2"
",.2,.2a,.2,.1,.3,&3{%2${.2,@(y7:list1+?)[01}?{.0dg,:1gI=}{f}?{:0,.1d,:" ",.2a,.2,.1,.3,&3{%2${.2,@(y7:list1+?)[01}?{.0dg,:1gI=}{f}?{:0,.1d,:1,,"
"1,,#0.5,.1,:2,&3{%3.0u?{${.4,:0,@(y10:xform-body)[02},'(y6:syntax),l2]" "#0.5,.1,:2,&3{%3.0u?{${.4,:0,@(y10:xform-body)[02},'(y6:syntax),l2]3}$"
"3}${.4,${:2,.7a,t,@(y5:xform)[03},.4a,@(y11:add-binding)[03},.2d,.2d,:" "{.4,${:2,.7a,t,@(y5:xform)[03},.4a,@(y11:add-binding)[03},.2d,.2d,:1^["
"1^[33}.!0.0^_1[23}.0,'(s33:invalif syntax-lambda application),@(y7:x-e" "33}.!0.0^_1[23}.0,'(s33:invalif syntax-lambda application),@(y7:x-erro"
"rror)[22}]5}.0,'(y13:syntax-lambda)c,'(s27:improper syntax-lambda body" "r)[22}]5}.0,'(y13:syntax-lambda)c,'(s27:improper syntax-lambda body),@"
"),@(y7:x-error)[22}@!(y19:xform-syntax-lambda)", "(y7:x-error)[22",
0, "P", "xform-letcc",
"&0{%2${.2,@(y7:list2+?)[01}?{${.2a,@(y3:id?)[01}}{f}?{.0a,${${.4,@(y7:" "%2${.2,@(y7:list2+?)[01}?{${.2a,@(y3:id?)[01}}{f}?{.0a,${${.4,@(y7:id-"
"id->sym)[01},@(y6:gensym)[01},${${.7,.5,.7,@(y7:add-var)[03},.5d,@(y10" ">sym)[01},@(y6:gensym)[01},${${.7,.5,.7,@(y7:add-var)[03},.5d,@(y10:xf"
":xform-body)[02},.1,'(y5:letcc),l3]4}.0,'(y5:letcc)c,'(s19:improper le" "orm-body)[02},.1,'(y5:letcc),l3]4}.0,'(y5:letcc)c,'(s19:improper letcc"
"tcc form),@(y7:x-error)[22}@!(y11:xform-letcc)", " form),@(y7:x-error)[22",
0, "P", "xform-withcc",
"&0{%2${.2,@(y7:list2+?)[01}?{${.3,.3d,@(y10:xform-body)[02},${.4,.4a,f" "%2${.2,@(y7:list2+?)[01}?{${.3,.3d,@(y10:xform-body)[02},${.4,.4a,f,@("
",@(y5:xform)[03},'(y6:withcc),l3]2}.0,'(y6:withcc)c,'(s20:improper wit" "y5:xform)[03},'(y6:withcc),l3]2}.0,'(y6:withcc)c,'(s20:improper withcc"
"hcc form),@(y7:x-error)[22}@!(y12:xform-withcc)", " form),@(y7:x-error)[22",
0, "P", "xform-body",
"&0{%2.0u?{'(y5:begin),l1]2}.0,n,n,n,.5,,#0.0,&1{%5.4p?{.4ap}{f}?{.4d,." "%2.0u?{'(y5:begin),l1]2}.0,n,n,n,.5,,#0.0,&1{%5.4p?{.4ap}{f}?{.4d,.5a,"
"5a,.0a,${.5,.3,t,@(y5:xform)[03},.0,'(l1:y5:begin;),.1A1?{.4,.4dL6,.9," ".0a,${.5,.3,t,@(y5:xform)[03},.0,'(l1:y5:begin;),.1A1?{.4,.4dL6,.9,.9,"
".9,.9,.9,:0^[(i10)5}'(l1:y6:define;),.1A1?{.3da,.4dda,${${.5,@(y7:id->" ".9,.9,:0^[(i10)5}'(l1:y6:define;),.1A1?{.3da,.4dda,${${.5,@(y7:id->sym"
"sym)[01},@(y6:gensym)[01},${.(i10),.3,.6,@(y7:add-var)[03},.8,.(i13),." ")[01},@(y6:gensym)[01},${.(i10),.3,.6,@(y7:add-var)[03},.8,.(i13),.3c,"
"3c,.(i13),.5c,.(i13),.7c,.4,:0^[(i14)5}'(l1:y13:define-syntax;),.1A1?{" ".(i13),.5c,.(i13),.7c,.4,:0^[(i14)5}'(l1:y13:define-syntax;),.1A1?{.3d"
".3da,.4dda,${.9,'(l1:y9:undefined;),.5,@(y11:add-binding)[03},.7,.(i12" "a,.4dda,${.9,'(l1:y9:undefined;),.5,@(y11:add-binding)[03},.7,.(i12),t"
"),tc,.(i12),.4c,.(i12),.6c,.4,:0^[(i13)5}t?{.1K0?{.4,${.8,.7,.6[02}c,." "c,.(i12),.4c,.(i12),.6c,.4,:0^[(i13)5}t?{.1K0?{.4,${.8,.7,.6[02}c,.9,."
"9,.9,.9,.9,:0^[(i10)5}.5,.(i10),.(i10)A8,.(i10)A8,.(i10)A8,@(y12:xform" "9,.9,.9,:0^[(i10)5}.5,.(i10),.(i10)A8,.(i10)A8,.(i10)A8,@(y12:xform-la"
"-labels)[(i10)5}f](i10)}.0,.5,.5A8,.5A8,.5A8,@(y12:xform-labels)[55}.!" "bels)[(i10)5}f](i10)}.0,.5,.5A8,.5A8,.5A8,@(y12:xform-labels)[55}.!0.0"
"0.0^_1[25}@!(y10:xform-body)", "^_1[25",
0, "P", "xform-labels",
"&0{%5n,n,.4,.4,.4,,#0.0,.(i11),.(i11),&3{%5.0u?{${:0,:1,&1{%1:0,.1,f,@" "%5n,n,.4,.4,.4,,#0.0,.(i11),.(i11),&3{%5.0u?{${:0,:1,&1{%1:0,.1,f,@(y5"
"(y5:xform)[13},@(y5:%25map1)[02},.4A8L6,.0p?{.0du}{f}?{.0a}{.0,'(y5:be" ":xform)[13},@(y5:%25map1)[02},.4A8L6,.0p?{.0du}{f}?{.0a}{.0,'(y5:begin"
"gin)c},.6u?{.0]7}${.8,&0{%1'(l1:y5:begin;)]1},@(y5:%25map1)[02},.1,.8A" ")c},.6u?{.0]7}${.8,&0{%1'(l1:y5:begin;)]1},@(y5:%25map1)[02},.1,.8A8,'"
"8,'(y6:lambda),l3,'(y4:call),@(y5:pair*)[73}.2aY0?{.4,.3ac,.4,${:1,.6a" "(y6:lambda),l3,'(y4:call),@(y5:pair*)[73}.2aY0?{.4,.3ac,.4,${:1,.6a,.6"
",.6a,l2,@(y10:xform-set!)[02}c,.4d,.4d,.4d,:2^[55}${${:1,.6a,t,@(y5:xf" "a,l2,@(y10:xform-set!)[02}c,.4d,.4d,.4d,:2^[55}${:1,.4a,t,@(y5:xform)["
"orm)[03},${.5a,:1[01},@(y16:binding-set-val!)[02}.4,.4,.4d,.4d,.4d,:2^" "03},${.3a,:1[01}d!.4,.4,.4d,.4d,.4d,:2^[55}.!0.0^_1[55",
"[55}.!0.0^_1[55}@!(y12:xform-labels)",
0, "P", "xform-define",
"&0{%2${.2,@(y6:list2?)[01}?{${.2a,@(y3:id?)[01}}{f}?{${.3,.3da,f,@(y5:" "%2${.2,@(y6:list2?)[01}?{${.2a,@(y3:id?)[01}}{f}?{${.3,.3da,f,@(y5:xfo"
"xform)[03},${.3a,@(y7:id->sym)[01},'(y6:define),l3]2}.0,'(y6:define)c," "rm)[03},${.3a,@(y7:id->sym)[01},'(y6:define),l3]2}.0,'(y6:define)c,'(s"
"'(s20:improper define form),@(y7:x-error)[22}@!(y12:xform-define)", "20:improper define form),@(y7:x-error)[22",
0, "P", "xform-define-syntax",
"&0{%2${.2,@(y6:list2?)[01}?{${.2a,@(y3:id?)[01}}{f}?{${.3,.3da,t,@(y5:" "%2${.2,@(y6:list2?)[01}?{${.2a,@(y3:id?)[01}}{f}?{${.3,.3da,t,@(y5:xfo"
"xform)[03},${.3a,@(y7:id->sym)[01},'(y13:define-syntax),l3]2}.0,'(y13:" "rm)[03},${.3a,@(y7:id->sym)[01},'(y13:define-syntax),l3]2}.0,'(y13:def"
"define-syntax)c,'(s27:improper define-syntax form),@(y7:x-error)[22}@!" "ine-syntax)c,'(s27:improper define-syntax form),@(y7:x-error)[22",
"(y19:xform-define-syntax)",
0, "C", 0,
"${&0{%2.0,'(s19:improper use of ...),@(y7:x-error)[22},'(y3:...),@(y12" "&0{%2.0,'(s19:improper use of ...),@(y7:x-error)[22},'(y3:...)c@!(y30:"
":make-binding)[02}@!(y30:denotation-of-default-ellipsis)", "denotation-of-default-ellipsis)",
0, "C", 0,
"@(y30:denotation-of-default-ellipsis),${'(y4:body),'(y4:body),@(y12:ma" "@(y30:denotation-of-default-ellipsis),'(y4:body),'(y4:body)c,'(y2:if),"
"ke-binding)[02},${'(y2:if),'(y2:if),@(y12:make-binding)[02},${'(y5:beg" "'(y2:if)c,'(y5:begin),'(y5:begin)c,'(y6:withcc),'(y6:withcc)c,'(y5:let"
"in),'(y5:begin),@(y12:make-binding)[02},${'(y6:withcc),'(y6:withcc),@(" "cc),'(y5:letcc)c,'(y13:syntax-lambda),'(y13:syntax-lambda)c,'(y7:lambd"
"y12:make-binding)[02},${'(y5:letcc),'(y5:letcc),@(y12:make-binding)[02" "a*),'(y7:lambda*)c,'(y6:lambda),'(y6:lambda)c,'(y4:set&),'(y4:set&)c,'"
"},${'(y13:syntax-lambda),'(y13:syntax-lambda),@(y12:make-binding)[02}," "(y4:set!),'(y4:set!)c,'(y5:quote),'(y5:quote)c,'(y13:define-syntax),'("
"${'(y7:lambda*),'(y7:lambda*),@(y12:make-binding)[02},${'(y6:lambda),'" "y13:define-syntax)c,'(y6:define),'(y6:define)c,'(y6:syntax),'(y6:synta"
"(y6:lambda),@(y12:make-binding)[02},${'(y4:set&),'(y4:set&),@(y12:make" "x)c,l(i15)@!(y14:*transformers*)",
"-binding)[02},${'(y4:set!),'(y4:set!),@(y12:make-binding)[02},${'(y5:q"
"uote),'(y5:quote),@(y12:make-binding)[02},${'(y13:define-syntax),'(y13"
":define-syntax),@(y12:make-binding)[02},${'(y6:define),'(y6:define),@("
"y12:make-binding)[02},${'(y6:syntax),'(y6:syntax),@(y12:make-binding)["
"02},l(i15)@!(y14:*transformers*)",
0, "P", "top-transformer-env",
"&0{%1${@(y14:*transformers*),.3,@(y16:find-top-binding)[02},${.2,@(y8:" "%1@(y14:*transformers*),.1A3,.0p?{.0d,.0p?{'(y12:syntax-rules),.1aq}{f"
"binding?)[01}?{${.2,@(y11:binding-val)[01},.0p?{'(y12:syntax-rules),.1" "}?{${.2,t,@(y9:transform)[02},.2d!}_1.0]2}.1Y0?{.1U5,.0?{.0}{.2,'(y3:r"
"aq}{f}?{${${.4,t,@(y9:transform)[02},.4,@(y16:binding-set-val!)[02}}_1" "ef),l2}_1,.2c,@(y14:*transformers*),.1c@!(y14:*transformers*).0]3}.1,@"
".0]2}.1Y0?{${.3U5,.0?{.0}{.4,'(y3:ref),l2}_1,.4,@(y12:make-binding)[02" "(y7:old-den)[21",
"},@(y14:*transformers*),.1c@!(y14:*transformers*).0]3}.1,@(y7:old-den)"
"[21}@!(y19:top-transformer-env)",
0, "P", "install-transformer!",
"&0{%2.1,${.3,@(y19:top-transformer-env)[01},@(y16:binding-set-val!)[22" "%2.1,${.3,@(y19:top-transformer-env)[01}d!]2",
"}@!(y20:install-transformer!)",
0, "P", "install-transformer-rules!",
"&0{%4${.5,.5,.5,@(y19:top-transformer-env),@(y13:syntax-rules*)[04},.1" "%4${.5,.5,.5,@(y19:top-transformer-env),@(y13:syntax-rules*)[04},.1,@("
",@(y20:install-transformer!)[42}@!(y26:install-transformer-rules!)", "y20:install-transformer!)[42",
0, "P", "transform",
"&0{%!2.0u?{@(y19:top-transformer-env)}{.0a},.3,.3,@(y5:xform)[33}@!(y9" "%!2.0u?{@(y19:top-transformer-env)}{.0a},.3,.3,@(y5:xform)[33",
":transform)",
0, "P", "syntax-rules*",
"&0{%4,,,,,,,#0#1#2#3#4#5#6.9,&1{%1:0,.1A0]1}.!0.0,&1{%1${.2,:0^[01}~]1" "%4,,,,,,,#0#1#2#3#4#5#6.9,&1{%1:0,.1A0]1}.!0.0,&1{%1${.2,:0^[01}~]1}.!"
"}.!1.3,&1{%1.0p?{.0a,:0^[11}f]1}.!2.7,.9,&2{%1:0?{:0,.1q]1}${.2,@(y3:i" "1.3,&1{%1.0p?{.0a,:0^[11}f]1}.!2.7,.9,&2{%1:0?{:0,.1q]1}${.2,@(y3:id?)"
"d?)[01}?{@(y30:denotation-of-default-ellipsis),${.3,:1[01}q]1}f]1}.!3." "[01}?{@(y30:denotation-of-default-ellipsis),${.3,:1[01}q]1}f]1}.!3.2,&"
"2,&1{%3n,.2,.2,,#0:0,.1,.8,&3{%3${.2,@(y3:id?)[01}?{.1?{${.2,:0[01}}{f" "1{%3n,.2,.2,,#0:0,.1,.8,&3{%3${.2,@(y3:id?)[01}?{.1?{${.2,:0[01}}{f}?{"
"}?{.2,.1c]3}.2]3}.0V0?{.2,.2,.2X0,:1^[33}.0p?{${.2d,:2^[01}?{${.4,.4,." ".2,.1c]3}.2]3}.0V0?{.2,.2,.2X0,:1^[33}.0p?{${.2d,:2^[01}?{${.4,.4,.4dd"
"4dd,:1^[03},t,.2a,:1^[33}${.4,.4,.4d,:1^[03},.2,.2a,:1^[33}.2]3}.!0.0^" ",:1^[03},t,.2a,:1^[33}${.4,.4,.4d,:1^[03},.2,.2a,:1^[33}.2]3}.!0.0^_1["
"_1[33}.!4.4,.2,.4,.3,.(i11),&5{%3k3,.0,,#0.1,&1{%0f,:0[01}.!0n,.5,.5,," "33}.!4.4,.2,.4,.3,.(i11),&5{%3k3,.0,,#0.1,&1{%0f,:0[01}.!0n,.5,.5,,#0."
"#0.4,.1,:4,:3,:2,:1,:0,.(i16),&8{%3,#0:7,.4,&2{%1.0?{:0]1}:1^[10}.!0${" "4,.1,:4,:3,:2,:1,:0,.(i16),&8{%3,#0:7,.4,&2{%1.0?{:0]1}:1^[10}.!0${.3,"
".3,@(y3:id?)[01}?{${.3,:2^[01}?{${.4,@(y3:id?)[01}?{${.3,:1[01},${.5,:" "@(y3:id?)[01}?{${.3,:2^[01}?{${.4,@(y3:id?)[01}?{${.3,:1[01},${.5,:0[0"
"0[01}q}{f},.1^[41}.3,.3,.3cc]4}.1V0?{.2V0,.0?{.0}{${:7^[00}}_1.3,.3X0," "1}q}{f},.1^[41}.3,.3,.3cc]4}.1V0?{.2V0,.0?{.0}{${:7^[00}}_1.3,.3X0,.3X"
".3X0,:6^[43}.1p~?{.2,.2e,.1^[41}${.3d,:3^[01}?{.1ddg,.3L0?{.3g}{${:7^[" "0,:6^[43}.1p~?{.2,.2e,.1^[41}${.3d,:3^[01}?{.1ddg,.3L0?{.3g}{${:7^[00}"
"00}},.1,.1I-,.0<0?{${:7^[00}}.0,.6A6,.3,.7A8A6A8,${:4^,t,.(i10)a,:5^[0" "},.1,.1I-,.0<0?{${:7^[00}}.0,.6A6,.3,.7A8A6A8,${:4^,t,.(i10)a,:5^[03},"
"3},,#0:6,.9,&2{%1${n,.3,:0a,:1^[03},@(y3:cdr),@(y5:%25map1)[12}.!0${.(" ",#0:6,.9,&2{%1${n,.3,:0a,:1^[03},@(y3:cdr),@(y5:%25map1)[12}.!0${.(i12"
"i12),.6,.(i12)dd,:6^[03},${${.7,.6^,@(y5:%25map1)[02},.5c,@(y4:list)c," "),.6,.(i12)dd,:6^[03},${${.7,.6^,@(y5:%25map1)[02},.5c,@(y4:list)c,@(y"
"@(y4:%25map),@(y13:apply-to-list)[02}L6](i11)}.2p?{${.5,.5d,.5d,:6^[03" "4:%25map),@(y13:apply-to-list)[02}L6](i11)}.2p?{${.5,.5d,.5d,:6^[03},."
"},.3a,.3a,:6^[43}:7^[40}.!0.0^_1[63}.!5.7,.2,.6,.5,&4{%3,,,#0#1#2${${." "3a,.3a,:6^[43}:7^[40}.!0.0^_1[63}.!5.7,.2,.6,.5,&4{%3,,,#0#1#2${${.9,&"
"9,&1{%1:0,.1A3~]1},t,.(i10),:1^[03},:3,&1{%1${${.4,:0[01},@(y6:new-id)" "1{%1:0,.1A3~]1},t,.(i10),:1^[03},:3,&1{%1${${.4,:0[01},@(y6:new-id)[01"
"[01},.1c]1},@(y5:%25map1)[02}.!0${:2^,f,.7,:1^[03}.!1.1,:1,&2{%1:1,&1{" "},.1c]1},@(y5:%25map1)[02}.!0${:2^,f,.7,:1^[03}.!1.1,:1,&2{%1:1,&1{%1:"
"%1:0^,.1A0]1},t,.2,:0^[13}.!2.5,.5,,#0.8,.4,:0,.8,.4,&5{%2.0,,#0.0,.4," "0^,.1A0]1},t,.2,:0^[13}.!2.5,.5,,#0.8,.4,:0,.8,.4,&5{%2.0,,#0.0,.4,:0,"
":0,:1,:2,:3,:4,&7{%1${.2,@(y3:id?)[01}?{:5,.1A3,.0?{.0}{:0,.2A3,.0?{.0" ":1,:2,:3,:4,&7{%1${.2,@(y3:id?)[01}?{:5,.1A3,.0?{.0}{:0,.2A3,.0?{.0}{:"
"}{:1^,.3A3}_1}_1d]1}.0V0?{${.2X0,:6^[01}X1]1}.0p?{${.2d,:2^[01}}{f}?{$" "1^,.3A3}_1}_1d]1}.0V0?{${.2X0,:6^[01}X1]1}.0p?{${.2d,:2^[01}}{f}?{${.2"
"{.2a,:3^[01},,,#0#1:5,&1{%1:0,.1A3d]1}.!0.2,.4,:4,&3{%!0${.2,:2,@(y4:c" "a,:3^[01},,,#0#1:5,&1{%1:0,.1A3d]1}.!0.2,.4,:4,&3{%!0${.2,:2,@(y4:cons"
"ons),@(y5:%25map2)[03},:1a,:0^[12}.!1.2u?{${.5dd,:6^[01},${.6a,:6^[01}" "),@(y5:%25map2)[03},:1a,:0^[12}.!1.2u?{${.5dd,:6^[01},${.6a,:6^[01}c]4"
"c]4}${.4,.3^,@(y5:%25map1)[02},${.6dd,:6^[01},${.3,.6^c,@(y4:%25map),@" "}${.4,.3^,@(y5:%25map1)[02},${.6dd,:6^[01},${.3,.6^c,@(y4:%25map),@(y1"
"(y13:apply-to-list)[02}L6]5}.0p?{${.2d,:6^[01},${.3a,:6^[01}c]1}.0]1}." "3:apply-to-list)[02}L6]5}.0p?{${.2d,:6^[01},${.3a,:6^[01}c]1}.0]1}.!0."
"!0.0^_1[21}.!0.0^_1[62}.!6.(i10),.7,.7,&3{%2:2,,#0:0,.3,.5,:1,.4,&5{%1" "0^_1[21}.!0.0^_1[62}.!6.(i10),.7,.7,&3{%2:2,,#0:0,.3,.5,:1,.4,&5{%1.0u"
".0u?{${:3,'(s14:invalid syntax),@(y7:x-error)[02}}.0a,.0a,.1da,${:2,:3" "?{${:3,'(s14:invalid syntax),@(y7:x-error)[02}}.0a,.0a,.1da,${:2,:3,.5"
",.5,:4^[03},.0?{.0,.0,.3,.5,:1^[63}.4d,:0^[51}.!0.0^_1[21}](i11)}@!(y1" ",:4^[03},.0?{.0,.0,.3,.5,:1^[63}.4d,:0^[51}.!0.0^_1[21}](i11)",
"3:syntax-rules*)",
0, "C", 0,
"${&0{%2,#0${${'(y6:syntax),'(y6:syntax),@(y12:make-binding)[02},@(y6:n" "${&0{%2,#0${'(y6:syntax),'(y6:syntax)c,@(y6:new-id)[01}.!0${.3da,@(y3:"
"ew-id)[01}.!0${.3da,@(y3:id?)[01}?{${.3ddd,.4dda,.5da,.7,@(y13:syntax-" "id?)[01}?{${.3ddd,.4dda,.5da,.7,@(y13:syntax-rules*)[04},.1^,l2]3}${.3"
"rules*)[04},.1^,l2]3}${.3dd,.4da,f,.7,@(y13:syntax-rules*)[04},.1^,l2]" "dd,.4da,f,.7,@(y13:syntax-rules*)[04},.1^,l2]3},'(y12:syntax-rules),@("
"3},'(y12:syntax-rules),@(y20:install-transformer!)[02}", "y20:install-transformer!)[02}",
0, "C", 0,
"${${@(y19:top-transformer-env),'(y6:define),'(y6:define),@(y11:add-bin" "${${@(y19:top-transformer-env),'(y6:define),'(y6:define),@(y11:add-bin"
"ding)[03},${'(l2:l2:py1:_;ppy4:name;y4:args;;y5:forms;;;l3:y6:define;y" "ding)[03},${'(l2:l2:py1:_;ppy4:name;y4:args;;y5:forms;;;l3:y6:define;y"
"4:name;py6:lambda;py4:args;y5:forms;;;;;l2:l3:y1:_;y4:name;y3:exp;;l3:" "4:name;py6:lambda;py4:args;y5:forms;;;;;l2:l3:y1:_;y4:name;y3:exp;;l3:"
"y6:define;y4:name;y3:exp;;;),n,f,.5,@(y13:syntax-rules*)[04}_1,'(y6:de" "y6:define;y4:name;y3:exp;;;),n,f,.5,@(y13:syntax-rules*)[04}_1,'(y6:de"
"fine),@(y20:install-transformer!)[02}", "fine),@(y20:install-transformer!)[02}",
"install-sr-transformer!", "S", "install-sr-transformer!",
"l4:y12:syntax-rules;l2:y5:quote;y12:syntax-rules;;l2:l3:y1:_;l2:y5:quo" "l4:y12:syntax-rules;l2:y5:quote;y12:syntax-rules;;l2:l3:y1:_;l2:y5:quo"
"te;y4:name;;py12:syntax-rules;pl2:y3:lit;y3:...;;y5:rules;;;;l5:y26:in" "te;y4:name;;py12:syntax-rules;pl2:y3:lit;y3:...;;y5:rules;;;;l5:y26:in"
"stall-transformer-rules!;l2:y5:quote;y4:name;;f;l2:y5:quote;l2:y3:lit;" "stall-transformer-rules!;l2:y5:quote;y4:name;;f;l2:y5:quote;l2:y3:lit;"
@ -381,45 +347,45 @@ char *t_code[] = {
"ll-transformer-rules!;l2:y5:quote;y4:name;;l2:y5:quote;y8:ellipsis;;l2" "ll-transformer-rules!;l2:y5:quote;y4:name;;l2:y5:quote;y8:ellipsis;;l2"
":y5:quote;l2:y3:lit;y3:...;;;l2:y5:quote;y5:rules;;;;", ":y5:quote;l2:y3:lit;y3:...;;;l2:y5:quote;y5:rules;;;;",
0, "C", 0,
"${'(l1:l2:py1:_;pl2:l2:y3:key;y5:trans;;y3:...;;y5:forms;;;py4:body;pl" "${'(l1:l2:py1:_;pl2:l2:y3:key;y5:trans;;y3:...;;y5:forms;;;py4:body;pl"
"3:y13:define-syntax;y3:key;y5:trans;;py3:...;y5:forms;;;;;),n,f,'(y13:" "3:y13:define-syntax;y3:key;y5:trans;;py3:...;y5:forms;;;;;),n,f,'(y13:"
"letrec-syntax),@(y26:install-transformer-rules!)[04}", "letrec-syntax),@(y26:install-transformer-rules!)[04}",
0, "C", 0,
"${'(l2:l2:py1:_;pn;y5:forms;;;py4:body;y5:forms;;;l2:py1:_;pl2:l2:y3:k" "${'(l2:l2:py1:_;pn;y5:forms;;;py4:body;y5:forms;;;l2:py1:_;pl2:l2:y3:k"
"ey;y5:trans;;y3:...;;y5:forms;;;l3:py13:syntax-lambda;pl2:y3:key;y3:.." "ey;y5:trans;;y3:...;;y5:forms;;;l3:py13:syntax-lambda;pl2:y3:key;y3:.."
".;;y5:forms;;;y5:trans;y3:...;;;),n,f,'(y10:let-syntax),@(y26:install-" ".;;y5:forms;;;y5:trans;y3:...;;;),n,f,'(y10:let-syntax),@(y26:install-"
"transformer-rules!)[04}", "transformer-rules!)[04}",
0, "C", 0,
"${'(l1:l2:py1:_;pl2:l2:y3:var;y4:init;;y3:...;;y5:forms;;;py4:body;pl3" "${'(l1:l2:py1:_;pl2:l2:y3:var;y4:init;;y3:...;;y5:forms;;;py4:body;pl3"
":y6:define;y3:var;y4:init;;py3:...;y5:forms;;;;;),n,f,'(y6:letrec),@(y" ":y6:define;y3:var;y4:init;;py3:...;y5:forms;;;;;),n,f,'(y6:letrec),@(y"
"26:install-transformer-rules!)[04}", "26:install-transformer-rules!)[04}",
0, "C", 0,
"${'(l2:l2:py1:_;pl2:l2:y3:var;y4:init;;y3:...;;y5:forms;;;l3:py6:lambd" "${'(l2:l2:py1:_;pl2:l2:y3:var;y4:init;;y3:...;;y5:forms;;;l3:py6:lambd"
"a;pl2:y3:var;y3:...;;y5:forms;;;y4:init;y3:...;;;l2:py1:_;py4:name;pl2" "a;pl2:y3:var;y3:...;;y5:forms;;;y4:init;y3:...;;;l2:py1:_;py4:name;pl2"
":l2:y3:var;y4:init;;y3:...;;y5:forms;;;;l3:l3:y6:letrec;l1:l2:y4:name;" ":l2:y3:var;y4:init;;y3:...;;y5:forms;;;;l3:l3:y6:letrec;l1:l2:y4:name;"
"py6:lambda;pl2:y3:var;y3:...;;y5:forms;;;;;y4:name;;y4:init;y3:...;;;)" "py6:lambda;pl2:y3:var;y3:...;;y5:forms;;;;;y4:name;;y4:init;y3:...;;;)"
",n,f,'(y3:let),@(y26:install-transformer-rules!)[04}", ",n,f,'(y3:let),@(y26:install-transformer-rules!)[04}",
0, "C", 0,
"${'(l2:l2:py1:_;pn;y5:forms;;;py4:body;y5:forms;;;l2:py1:_;ppy5:first;" "${'(l2:l2:py1:_;pn;y5:forms;;;py4:body;y5:forms;;;l2:py1:_;ppy5:first;"
"y4:more;;y5:forms;;;l3:y3:let;l1:y5:first;;py4:let*;py4:more;y5:forms;" "y4:more;;y5:forms;;;l3:y3:let;l1:y5:first;;py4:let*;py4:more;y5:forms;"
";;;;),n,f,'(y4:let*),@(y26:install-transformer-rules!)[04}", ";;;;),n,f,'(y4:let*),@(y26:install-transformer-rules!)[04}",
0, "C", 0,
"${'(l3:l2:l1:y1:_;;t;;l2:l2:y1:_;y4:test;;y4:test;;l2:py1:_;py4:test;y" "${'(l3:l2:l1:y1:_;;t;;l2:l2:y1:_;y4:test;;y4:test;;l2:py1:_;py4:test;y"
"5:tests;;;l4:y2:if;y4:test;py3:and;y5:tests;;f;;;),n,f,'(y3:and),@(y26" "5:tests;;;l4:y2:if;y4:test;py3:and;y5:tests;;f;;;),n,f,'(y3:and),@(y26"
":install-transformer-rules!)[04}", ":install-transformer-rules!)[04}",
0, "C", 0,
"${'(l3:l2:l1:y1:_;;f;;l2:l2:y1:_;y4:test;;y4:test;;l2:py1:_;py4:test;y" "${'(l3:l2:l1:y1:_;;f;;l2:l2:y1:_;y4:test;;y4:test;;l2:py1:_;py4:test;y"
"5:tests;;;l3:y3:let;l1:l2:y1:x;y4:test;;;l4:y2:if;y1:x;y1:x;py2:or;y5:" "5:tests;;;l3:y3:let;l1:l2:y1:x;y4:test;;;l4:y2:if;y1:x;y1:x;py2:or;y5:"
"tests;;;;;),n,f,'(y2:or),@(y26:install-transformer-rules!)[04}", "tests;;;;;),n,f,'(y2:or),@(y26:install-transformer-rules!)[04}",
0, "C", 0,
"${'(l5:l2:l1:y1:_;;f;;l2:l2:y1:_;py4:else;y4:exps;;;py5:begin;y4:exps;" "${'(l5:l2:l1:y1:_;;f;;l2:l2:y1:_;py4:else;y4:exps;;;py5:begin;y4:exps;"
";;l2:py1:_;pl1:y1:x;;y4:rest;;;l3:y2:or;y1:x;py4:cond;y4:rest;;;;l2:py" ";;l2:py1:_;pl1:y1:x;;y4:rest;;;l3:y2:or;y1:x;py4:cond;y4:rest;;;;l2:py"
"1:_;pl3:y1:x;y2:=>;y4:proc;;y4:rest;;;l3:y3:let;l1:l2:y3:tmp;y1:x;;;py" "1:_;pl3:y1:x;y2:=>;y4:proc;;y4:rest;;;l3:y3:let;l1:l2:y3:tmp;y1:x;;;py"
@ -428,23 +394,23 @@ char *t_code[] = {
"'(l2:y4:else;y2:=>;),f,'(y4:cond),@(y26:install-transformer-rules!)[04" "'(l2:y4:else;y2:=>;),f,'(y4:cond),@(y26:install-transformer-rules!)[04"
"}", "}",
0, "C", 0,
"${'(l2:l2:l3:y1:_;y1:k;y4:else;;t;;l2:l3:y1:_;y1:k;y5:atoms;;l3:y4:mem" "${'(l2:l2:l3:y1:_;y1:k;y4:else;;t;;l2:l3:y1:_;y1:k;y5:atoms;;l3:y4:mem"
"v;y1:k;l2:y5:quote;y5:atoms;;;;),'(l1:y4:else;),f,'(y9:case-test),@(y2" "v;y1:k;l2:y5:quote;y5:atoms;;;;),'(l1:y4:else;),f,'(y9:case-test),@(y2"
"6:install-transformer-rules!)[04}", "6:install-transformer-rules!)[04}",
0, "C", 0,
"${'(l1:l2:l4:y1:_;y1:x;py4:test;y5:exprs;;y3:...;;l3:y3:let;l1:l2:y3:k" "${'(l1:l2:l4:y1:_;y1:x;py4:test;y5:exprs;;y3:...;;l3:y3:let;l1:l2:y3:k"
"ey;y1:x;;;l3:y4:cond;pl3:y9:case-test;y3:key;y4:test;;y5:exprs;;y3:..." "ey;y1:x;;;l3:y4:cond;pl3:y9:case-test;y3:key;y4:test;;y5:exprs;;y3:..."
";;;;),n,f,'(y4:case),@(y26:install-transformer-rules!)[04}", ";;;;),n,f,'(y4:case),@(y26:install-transformer-rules!)[04}",
0, "C", 0,
"${'(l1:l2:l5:y1:_;l2:py3:var;py4:init;y4:step;;;y3:...;;y6:ending;y4:e" "${'(l1:l2:l5:y1:_;l2:py3:var;py4:init;y4:step;;;y3:...;;y6:ending;y4:e"
"xpr;y3:...;;l4:y3:let;y4:loop;l2:l2:y3:var;y4:init;;y3:...;;l3:y4:cond" "xpr;y3:...;;l4:y3:let;y4:loop;l2:l2:y3:var;y4:init;;y3:...;;l3:y4:cond"
";y6:ending;l4:y4:else;y4:expr;y3:...;l3:y4:loop;py5:begin;py3:var;y4:s" ";y6:ending;l4:y4:else;y4:expr;y3:...;l3:y4:loop;py5:begin;py3:var;y4:s"
"tep;;;y3:...;;;;;;),n,f,'(y2:do),@(y26:install-transformer-rules!)[04}", "tep;;;y3:...;;;;;;),n,f,'(y2:do),@(y26:install-transformer-rules!)[04}",
0, "C", 0,
"${'(l8:l2:l2:y1:_;l2:y7:unquote;y1:x;;;y1:x;;l2:l2:y1:_;pl2:y16:unquot" "${'(l8:l2:l2:y1:_;l2:y7:unquote;y1:x;;;y1:x;;l2:l2:y1:_;pl2:y16:unquot"
"e-splicing;y1:x;;y1:y;;;l3:y6:append;y1:x;l2:y10:quasiquote;y1:y;;;;l2" "e-splicing;y1:x;;y1:y;;;l3:y6:append;y1:x;l2:y10:quasiquote;y1:y;;;;l2"
":py1:_;pl2:y10:quasiquote;y1:x;;y1:d;;;l3:y4:cons;l2:y5:quote;y10:quas" ":py1:_;pl2:y10:quasiquote;y1:x;;y1:d;;;l3:y4:cons;l2:y5:quote;y10:quas"
@ -458,18 +424,18 @@ char *t_code[] = {
"d;;;l2:y5:quote;y1:x;;;),'(l3:y7:unquote;y16:unquote-splicing;y10:quas" "d;;;l2:y5:quote;y1:x;;;),'(l3:y7:unquote;y16:unquote-splicing;y10:quas"
"iquote;),f,'(y10:quasiquote),@(y26:install-transformer-rules!)[04}", "iquote;),f,'(y10:quasiquote),@(y26:install-transformer-rules!)[04}",
0, "C", 0,
"${'(l1:l2:py1:_;py4:test;y4:rest;;;l3:y2:if;y4:test;py5:begin;y4:rest;" "${'(l1:l2:py1:_;py4:test;y4:rest;;;l3:y2:if;y4:test;py5:begin;y4:rest;"
";;;),n,f,'(y4:when),@(y26:install-transformer-rules!)[04}", ";;;),n,f,'(y4:when),@(y26:install-transformer-rules!)[04}",
0, "C", 0,
"${'(l1:l2:py1:_;py4:test;y4:rest;;;l3:y2:if;l2:y3:not;y4:test;;py5:beg" "${'(l1:l2:py1:_;py4:test;y4:rest;;;l3:y2:if;l2:y3:not;y4:test;;py5:beg"
"in;y4:rest;;;;),n,f,'(y6:unless),@(y26:install-transformer-rules!)[04}", "in;y4:rest;;;;),n,f,'(y6:unless),@(y26:install-transformer-rules!)[04}",
0, "C", 0,
"${'(l1:l2:l3:y1:_;py4:args;y4:body;;y3:...;;l3:y7:lambda*;l2:y4:args;p" "${'(l1:l2:l3:y1:_;py4:args;y4:body;;y3:...;;l3:y7:lambda*;l2:y4:args;p"
"y6:lambda;py4:args;y4:body;;;;y3:...;;;),n,f,'(y11:case-lambda),@(y26:" "y6:lambda;py4:args;y4:body;;;;y3:...;;;),n,f,'(y11:case-lambda),@(y26:"
"install-transformer-rules!)[04}", "install-transformer-rules!)[04}",
0, 0 0, 0, 0
}; };