From 52b3f7dee38b7a15e1b017e6a41ac63cbf6e95e8 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Mon, 8 Dec 2008 07:35:22 +0000 Subject: 2008-12-07 Gabriel Dos Reis * interp/g-opt.boot ($simpleVMoperators): New. (isSimpleVMForm): Likewise. (isFloatableVMForm): Likewise. (optLET): Likewise. Expand backend let-forms. * interp/c-util.boot (foldSpadcall): Look into LET and COND forms. (replaceSimpleFunctions): Likewise. (mutateCONDFormWithUnaryFunction): New. (mutateLETFormWithUnaryFunction): Likewise. * interp/compiler.boot (tryCourtesyCoercion): Split from coerce. (compRetractAlternative): Simplify. Now try courtesy coercions before retraction. (compRecoverAlternative): New. (compMatch): Simplify. Implement type recovery too. 2008-12-06 Gabriel Dos Reis * interp/compiler.boot (compRetractAlternative): New. (compMatch): Likewise. Use it to implement pattern macthing for retractable domains. * interp/parse.boot (parseAtAt): New. * interp/postpar.boot (postAtAt): Likewise. (postAlternatives): Likewise. (postMatch): Likewise. * interp/metalex.lisp (Keywords): Remove `otherwise' as keyword. * interp/fnewmeta.lisp (|PARSE-Match|): New local parser. * interp/newaux.lisp (@@): New token. Align wih interpreter. (otherwise): Remove binding specification. (case): Now also a Nud token. --- src/interp/newaux.lisp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/interp/newaux.lisp') diff --git a/src/interp/newaux.lisp b/src/interp/newaux.lisp index 816d4e29..c0027b68 100644 --- a/src/interp/newaux.lisp +++ b/src/interp/newaux.lisp @@ -117,7 +117,6 @@ (|has| 400 400) (|where| 121 104) ; must be 121 for SPAD, 126 for boot--> nboot (|when| 112 190) - (|otherwise| 119 190 (|PARSE-Suffix|)) (|is| 400 400) (|isnt| 400 400) (|and| 250 251) (|or| 200 201) (/\\ 250 251) (\\/ 200 201) @@ -159,6 +158,7 @@ (|iterate|) (|yield|) (|if| 130 0 (|PARSE-Conditional|)) ; was 130 + (|case| 130 190 (|PARSE-Match|)) (\| 0 190) (|suchthat|) (|then| 0 114) -- cgit v1.2.3