mirror of
https://github.com/false-schemers/skint.git
synced 2024-12-27 21:58:53 +01:00
3-string compiled mode; 'P' entries added
This commit is contained in:
parent
ff388441e7
commit
351cc5ed9b
6 changed files with 1207 additions and 1195 deletions
20
i.c
20
i.c
|
@ -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 */
|
||||||
|
|
271
s.c
271
s.c
|
@ -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
|
||||||
};
|
};
|
||||||
|
|
15
src/k.sf
15
src/k.sf
|
@ -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))
|
||||||
|
|
||||||
|
|
||||||
|
|
19
src/t.scm
19
src/t.scm
|
@ -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
574
t.c
|
@ -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
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue