Skip to content

Commit 412804b

Browse files
committed
cond compiler stable
1 parent 67c0e9f commit 412804b

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

compiler3.lisp

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
( LETREC COMPILE
2+
( COMPILE LAMBDA ( E )
3+
( COMP E ( QUOTE NIL ) ( QUOTE ( 4 21 ) ) ) )
4+
( COMP LAMBDA ( E N C )
5+
( COND ( ( ATOM E ) ( CONS ( QUOTE 1 ) ( CONS ( LOCATION E N ) C ) ) )
6+
( ( EQ ( CAR E ) ( QUOTE QUOTE ) ) ( CONS ( QUOTE 2 ) ( CONS ( CAR ( CDR E ) ) C ) ) )
7+
( ( EQ ( CAR E ) ( QUOTE ADD ) ) ( COMP ( CAR ( CDR E ) ) N ( COMP ( CAR ( CDR ( CDR E ) ) ) N ( CONS ( QUOTE 15 ) C ) ) ) )
8+
( ( EQ ( CAR E ) ( QUOTE SUB ) ) ( COMP ( CAR ( CDR E ) ) N ( COMP ( CAR ( CDR ( CDR E ) ) ) N ( CONS ( QUOTE 16 ) C ) ) ) )
9+
( ( EQ ( CAR E ) ( QUOTE MUL ) ) ( COMP ( CAR ( CDR E ) ) N ( COMP ( CAR ( CDR ( CDR E ) ) ) N ( CONS ( QUOTE 17 ) C ) ) ) )
10+
( ( EQ ( CAR E ) ( QUOTE DIV ) ) ( COMP ( CAR ( CDR E ) ) N ( COMP ( CAR ( CDR ( CDR E ) ) ) N ( CONS ( QUOTE 18 ) C ) ) ) )
11+
( ( EQ ( CAR E ) ( QUOTE REM ) ) ( COMP ( CAR ( CDR E ) ) N ( COMP ( CAR ( CDR ( CDR E ) ) ) N ( CONS ( QUOTE 19 ) C ) ) ) )
12+
( ( EQ ( CAR E ) ( QUOTE LEQ ) ) ( COMP ( CAR ( CDR E ) ) N ( COMP ( CAR ( CDR ( CDR E ) ) ) N ( CONS ( QUOTE 20 ) C ) ) ) )
13+
( ( EQ ( CAR E ) ( QUOTE EQ ) ) ( COMP ( CAR ( CDR E ) ) N ( COMP ( CAR ( CDR ( CDR E ) ) ) N ( CONS ( QUOTE 14 ) C ) ) ) )
14+
( ( EQ ( CAR E ) ( QUOTE CAR ) ) ( COMP ( CAR ( CDR E ) ) N ( CONS ( QUOTE 10 ) C ) ) )
15+
( ( EQ ( CAR E ) ( QUOTE CDR ) ) ( COMP ( CAR ( CDR E ) ) N ( CONS ( QUOTE 11 ) C ) ) )
16+
( ( EQ ( CAR E ) ( QUOTE ATOM ) ) ( COMP ( CAR ( CDR E ) ) N ( CONS ( QUOTE 12 ) C ) ) )
17+
( ( EQ ( CAR E ) ( QUOTE CONS ) ) ( COMP ( CAR ( CDR ( CDR E ) ) ) N ( COMP ( CAR ( CDR E ) ) N ( CONS ( QUOTE 13 ) C ) ) ) )
18+
( ( EQ ( CAR E ) ( QUOTE IF ) ) ( LET ( COMP ( CAR ( CDR E ) ) N ( CONS ( QUOTE 8 ) ( CONS THENPT ( CONS ELSEPT C ) ) ) )
19+
( THENPT COMP ( CAR ( CDR ( CDR E ) ) ) N ( QUOTE ( 9 ) ) )
20+
( ELSEPT COMP ( CAR ( CDR ( CDR ( CDR E ) ) ) ) N ( QUOTE ( 9 ) ) ) ) )
21+
( ( EQ ( CAR E ) ( QUOTE COND ) ) ( COMPCOND ( CDR E ) N C ) )
22+
( ( EQ ( CAR E ) ( QUOTE LAMBDA ) ) ( LET ( CONS ( QUOTE 3 ) ( CONS BODY C ) )
23+
( BODY COMP ( CAR ( CDR ( CDR E ) ) ) ( CONS ( CAR ( CDR E ) ) N ) ( QUOTE ( 5 ) ) ) ) )
24+
( ( EQ ( CAR E ) ( QUOTE LET ) ) ( LET ( LET ( COMPLIS ARGS N ( CONS ( QUOTE 3 ) ( CONS BODY ( CONS ( QUOTE 4 ) C ) ) ) )
25+
( BODY COMP ( CAR ( CDR E ) ) M ( QUOTE ( 5 ) ) ) )
26+
( M CONS ( VARS ( CDR ( CDR E ) ) ) N )
27+
( ARGS EXPRS ( CDR ( CDR E ) ) ) ) )
28+
( ( EQ ( CAR E ) ( QUOTE LETREC ) ) ( LET ( LET ( CONS ( QUOTE 6 ) ( COMPLIS ARGS M ( CONS ( QUOTE 3 ) ( CONS BODY ( CONS ( QUOTE 7 ) C ) ) ) ) )
29+
( BODY COMP ( CAR ( CDR E ) ) M ( QUOTE ( 5 ) ) ) )
30+
( M CONS ( VARS ( CDR ( CDR E ) ) ) N )
31+
( ARGS EXPRS ( CDR ( CDR E ) ) ) ) )
32+
( ( QUOTE T ) ( COMPLIS ( CDR E ) N ( COMP ( CAR E ) N ( CONS ( QUOTE 4 ) C ) ) ) ) ) )
33+
34+
( COMPLIS LAMBDA ( E N C )
35+
( IF ( EQ E ( QUOTE NIL ) ) ( CONS ( QUOTE 2 ) ( CONS ( QUOTE NIL ) C ) )
36+
( COMPLIS ( CDR E ) N ( COMP ( CAR E ) N ( CONS ( QUOTE 13 ) C ) ) ) ) )
37+
( LOCATION LAMBDA ( E N )
38+
( LETREC
39+
( IF ( MEMBER E ( CAR N ) ) ( CONS ( QUOTE 0 ) ( POSN E ( CAR N ) ) )
40+
( INCAR ( LOCATION E ( CDR N ) ) ) )
41+
( MEMBER LAMBDA ( E N )
42+
( IF ( EQ N ( QUOTE NIL ) ) ( QUOTE F )
43+
( IF ( EQ E ( CAR N ) ) ( QUOTE T ) ( MEMBER E ( CDR N ) ) ) ) )
44+
( POSN LAMBDA ( E N )
45+
( IF ( EQ E ( CAR N ) ) ( QUOTE 0 ) ( ADD ( QUOTE 1 ) ( POSN E ( CDR N ) ) ) ) )
46+
( INCAR LAMBDA ( L ) ( CONS ( ADD ( QUOTE 1 ) ( CAR L ) ) ( CDR L ) ) ) ) )
47+
( VARS LAMBDA ( D )
48+
( IF ( EQ D ( QUOTE NIL ) ) ( QUOTE NIL )
49+
( CONS ( CAR ( CAR D ) ) ( VARS ( CDR D ) ) ) ) )
50+
( EXPRS LAMBDA ( D )
51+
( IF ( EQ D ( QUOTE NIL ) ) ( QUOTE NIL )
52+
( CONS ( CDR ( CAR D ) ) ( EXPRS ( CDR D ) ) ) ) )
53+
( COMPCOND LAMBDA ( E N C )
54+
( IF ( EQ E ( QUOTE NIL ) ) ( CONS ( QUOTE 2 ) ( CONS ( QUOTE NIL ) C ) )
55+
( LET ( COMP ( CAR ( CAR E ) ) N ( CONS ( QUOTE 8 )
56+
( CONS THENPT ( CONS ELSEPT C ) ) ) )
57+
( THENPT COMP ( CAR ( CDR ( CAR E ) ) ) N ( QUOTE ( 9 ) ) )
58+
( ELSEPT COMPCOND ( CDR E ) N ( QUOTE ( 9 ) ) ) ) ) ) )

0 commit comments

Comments
 (0)