aboutsummaryrefslogtreecommitdiff
path: root/src/interp/i-spec1.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-12-08 07:35:22 +0000
committerdos-reis <gdr@axiomatics.org>2008-12-08 07:35:22 +0000
commit52b3f7dee38b7a15e1b017e6a41ac63cbf6e95e8 (patch)
tree9f6023cdfd57bf982486d866ba32252d304b659e /src/interp/i-spec1.boot
parentdec92cd40550e8532d36502dd75d6f9d639d7f7c (diff)
downloadopen-axiom-52b3f7dee38b7a15e1b017e6a41ac63cbf6e95e8.tar.gz
2008-12-07 Gabriel Dos Reis <gdr@cs.tamu.edu>
* 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 <gdr@cs.tamu.edu> * 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.
Diffstat (limited to 'src/interp/i-spec1.boot')
-rw-r--r--src/interp/i-spec1.boot6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/interp/i-spec1.boot b/src/interp/i-spec1.boot
index ee6d9787..8cc56925 100644
--- a/src/interp/i-spec1.boot
+++ b/src/interp/i-spec1.boot
@@ -42,7 +42,7 @@ $specialOps := '(
ADEF AlgExtension _and _case COERCE COLLECT construct Declare DEF Dollar
equation error free has IF _is _isnt iterate _break %LET _local MDEF _or
pretend QUOTE REDUCE REPEAT _return SEQ TARGET tuple typeOf _where
- _[_|_|_] %Macro %MLambda %Import %Export %Inline %With %Add)
+ _[_|_|_] %Macro %MLambda %Import %Export %Inline %With %Add %Match)
$repeatLabel := NIL
$breakCount := 0
@@ -1134,9 +1134,7 @@ declare(var,mode) ==
if var is ['free,v] then
upfreeWithType(v,mode)
var := v
- not IDENTP(var) =>
- throwKeyedMsg("S2IS0016",[STRINGIMAGE var])
- var in '(% %%) => throwKeyedMsg("S2IS0050",[var])
+ validateVariableNameOrElse var
if get(var,'isInterpreterFunction,$e) then
mode isnt ['Mapping,.,:args] =>
throwKeyedMsg("S2IS0017",[var,mode])