Files

221 lines
6.0 KiB
Plaintext

(DEFPROP WORKER (LAMBDA NIL (PROG (SENTENCE SOBLIST KEYSTACK)
A (INITIALIZE)
(READIN)
(ANALYZE)
(TERPRI)
(TERPRI)
(CLEANUP)
(GO A)
)) EXPR)
(DEFPROP INITIALIZE (LAMBDA NIL
(SETQ SOBLIST (APPEND OBLIST (SETQ SENTENCE (SETQ KEYSTACK NIL))))
) EXPR)
(DEFPROP READIN (LAMBDA NIL (PROG (WORD LETTER FLAG TERMINAL)
A (COND ((NULL (READWORD))(GO B)))
(MAKESENTENCE)
(SETKEYSTACK)
B (BREAKANALYZE)
(COND ((NOT FLAG)(GO A)))
(SETQ SENTENCE (REVERSE SENTENCE))
)) EXPR)
(DEFPROP ANALYZE (LAMBDA NIL (PROG (RULES PARSELIST DECOMP)
(SETQ KEYSTACK (APPEND KEYSTACK (LIST (GET (QUOTE NONE)
(COND ((ZEROP (SETQ FLIPFLOP (PLUS 2 (MINUS FLIPFLOP))))
(QUOTE MEM))((QUOTE LASTRESORT)))))))
A (SETQ RULES (GET (CAR KEYSTACK)(QUOTE RULES)))
B (SETQ DECOMP (CAAR (COND
((ATOM (CAR RULES))(SETQ RULES (GET (CAR RULES)(QUOTE RULES))))
(RULES) )))
(SETQ PARSELIST NIL)
(COND ((NOT (TEST DECOMP SENTENCE))(SETQ RULES (CDR RULES)))
((AND (NOT (ATOM (CAR (SETQ RULES (CAR (ADVANCE))))))
(NOT (EQ (CAAR RULES)(QUOTE PRE))))
(RETURN (SENTPRINT (RECONSTRUCT (CAR RULES)))))
((NOT (ATOM (CAR RULES)))
(SETQ SENTENCE (RECONSTRUCT (CADAR RULES)))
(SETQ RULES (CDDAR RULES)) )
((EQ (CAR RULES)(QUOTE NEWKEY))
(SETQ KEYSTACK (CDR KEYSTACK))
(GO A)))
(GO B)
)) EXPR)
(DEFPROP CLEANUP (LAMBDA NIL (PROG (NOBLIST)
(SETQ NOBLIST OBLIST)
A (RPLACA NOBLIST (CAR SOBLIST))
(COND ((SETQ NOBLIST (CDR NOBLIST))
(SETQ SOBLIST (CDR SOBLIST))
(GO A)))
)) EXPR)
(DEFPROP READWORD (LAMBDA NIL (PROG NIL
(SETQ WORD NIL)
A (COND ((SETQ FLAG (GET (SETQ LETTER (READCH))(QUOTE BREAK)))
(RETURN (COND (WORD (SETQ WORD (READLIST
(REVERSE WORD))))))))
(SETQ WORD (CONS LETTER WORD))
(GO A)
)) EXPR)
(DEFPROP MAKESENTENCE (LAMBDA NIL
(SETQ SENTENCE (CONS (COND
((SETQ FLAG (GET WORD (QUOTE TRANSLATION))) FLAG)
(WORD))
SENTENCE))
) EXPR)
(DEFPROP SETKEYSTACK (LAMBDA NIL (COND
((AND (SETQ FLAG (GET WORD (QUOTE PRIORITY)))
KEYSTACK
(GREATERP FLAG (GET (CAR KEYSTACK)(QUOTE PRIORITY))))
(SETQ KEYSTACK (CONS WORD KEYSTACK)))
(FLAG (SETQ KEYSTACK (APPEND KEYSTACK (LIST WORD))))
)) EXPR)
(DEFPROP BREAKANALYZE (LAMBDA NIL (COND
((EQ LETTER (INTERN (ASCII 15)))
(SETQ FLAG TERMINAL)(SETQ TERMINAL T))
((AND (SETQ FLAG (GET LETTER (QUOTE PUNCTUATION)))
KEYSTACK)
(GOBBLE))
(FLAG (SETQ SENTENCE (SETQ FLAG NIL)))
((NOT (EQ LETTER (INTERN (ASCII 12))))(SETQ TERMINAL NIL))
)) EXPR)
(DEFPROP TEST (LAMBDA (D S) (PROG NIL
G (DISINI (QUOTE FOO))
(DISPRINT KEYSTACK)
(DISPRINT SENTENCE)
(DISPRINT RULES)
(DISPRINT DECOMP)
(READCH)
(COND ((NULL D)(RETURN (COND ((NOT S) (SETQ
PARSELIST (REVERSE PARSELIST))))))
((NOT (COND ((NUMBERP (CAR D)) (COND
((ZEROP (CAR D))(TEST5))
((TEST3 (CAR D) NIL))))
((TEST4 (CAR D))(TEST2))
)) (RETURN NIL)))
(SETQ D (CDR D))
(GO G)
)) EXPR)
(DEFPROP ADVANCE (LAMBDA NIL (RPLACA
(CDAR RULES)
(COND ((NULL (CDADAR RULES))(CDDAR RULES))
((CDADAR RULES)) )
)) EXPR)
(DEFPROP SENTPRINT (LAMBDA (ANS) (PROG NIL
A (PRIN1 (CAR ANS))
(COND ((SETQ ANS (CDR ANS))
(COND ((GREATERP (FLATSIZE (CAR ANS))(ADD1 (CHRCT)))
(TERPRI))
((PRINC (QUOTE / ))) )
(GO A)) )
(MEMORY)
)) EXPR)
(DEFPROP RECONSTRUCT (LAMBDA (R) (COND
((NULL R) NIL)
((NUMBERP (CAR R))(APPEND (RECO1 (CAR R) PARSELIST)
(RECONSTRUCT (CDR R))))
((CONS (CAR R)(RECONSTRUCT (CDR R))))
)) EXPR)
(DEFPROP GOBBLE (LAMBDA NIL (PROG NIL
A (SETQ LETTER (READCH))
(BREAKANALYZE)
(COND ((NOT FLAG)(GO A)))
)) EXPR)
(DEFPROP TEST1 (LAMBDA (PROPL X) (COND
((NULL PROPL) NIL)
((GET X (CAR PROPL)) T)
((TEST1 (CDR PROPL) X))
)) EXPR)
(DEFPROP TEST2 (LAMBDA NIL (PROG NIL
(SETQ PARSELIST (CONS (LIST (CAR S)) PARSELIST))
(SETQ S (CDR S))
(RETURN T)
)) EXPR)
(DEFPROP TEST3 (LAMBDA (X L) (COND
((ZEROP X)(SETQ PARSELIST (CONS (REVERSE L) PARSELIST)))
(S (TEST3 (SUB1 X)(CONS (CAR S)(PROG2 (SETQ S (CDR S)) L))))
)) EXPR)
(DEFPROP TEST4 (LAMBDA (D) (COND ((NULL S) NIL)
((ATOM D) (EQ D (CAR S)))
((CAR D) (MEMBER (CAR S) D))
((TEST1 (CDR D) (CAR S)))
)) EXPR)
(DEFPROP TEST5 (LAMBDA NIL (PROG (L)
(COND ((NULL (CDR D)) (SETQ PARSELIST
(CONS S PARSELIST))
(RETURN (NOT (SETQ S NIL)))))
A (COND ((TEST4 (CADR D))(RETURN (SETQ PARSELIST (CONS
(REVERSE L) PARSELIST))))
((AND (SETQ L (CONS (CAR S) L)) (SETQ S (CDR S)))
(GO A)) )
)) EXPR)
(DEFPROP RECO1 (LAMBDA (X P) (COND
((GREATERP X 1)(RECO1 (SUB1 X)(CDR P)))
((CAR P))
)) EXPR)
(DEFPROP MEMORY (LAMBDA NIL (PROG (PARSELIST X)
(COND ((AND (SETQ RULES (GET (CAR KEYSTACK)(QUOTE MEMR)))
(TEST (CAAR RULES) SENTENCE))
(RPLACA (SETQ X (CDAR (GET (GET (QUOTE NONE)(QUOTE MEM))
(QUOTE RULES))))
(APPEND (CAR X) (LIST (RECONSTRUCT (CAAR (ADVANCE)))))
))) )) EXPR)
(SETQ FLIPFLOP 0)
(DEFPROP ASCII (LAMBDA (X)(LIST (CAR NIL)(QUOTE PNAME)(LIST (CDDR
(LSH X 29.)))))EXPR)
((LAMBDA (X) (PROG NIL
A (COND ((NULL X) (RETURN NIL)))
(PUTPROP (CAR X) T (QUOTE BREAK))
(SETQ X (CDR X))
(GO A)
))(LIST (QUOTE / )(INTERN (ASCII 12))(INTERN (ASCII 13))
(INTERN (ASCII 14))(INTERN (ASCII 15))(INTERN (ASCII 11))))
((LAMBDA (X) (PROG NIL
A (COND ((NULL X) (RETURN NIL)))
(PUTPROP (CAR X) T (QUOTE BREAK))
(PUTPROP (CAR X) T (QUOTE PUNCTUATION))
(SETQ X (CDR X))
(GO A)
)) (QUOTE (/. /, /( /) ! ? : ;)))
(PUTPROP (QUOTE NONE)(LIST (CAR NIL)(QUOTE RULES)(QUOTE
(((0)(NIL)(I AM NOT SURE I UNDERSTAND YOU FULLY)
(PLEASE GO ON)(WHAT DOES THAT SUGGEST TO YOU)(DO YOU
FEEL STRONGLY ABOUT DISCUSSING SUCH THINGS))) ))(QUOTE
LASTRESORT))
(PUTPROP (QUOTE NONE)(LIST (CAR NIL) (QUOTE RULES)
(LIST (LIST (LIST 0)(LIST NIL)(GET (QUOTE NONE)(QUOTE LASTRESORT))))
)(QUOTE MEM))
(ARRAY FOO NIL 1700)
(SETQ DISLIST (LIST (GET (QUOTE FOO)(QUOTE SUBR))))
(DEFPROP DISPRINT (LAMBDA (X) (PROG2 (DISAD (QUOTE FOO) ()
(QUOTE /
))(DISAD (QUOTE FOO) T X)))EXPR)
ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü ü