From 04a7a793d683eebce820767312ca7b8f6f83df40 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Wed, 20 Mar 2013 09:48:55 -0700 Subject: [PATCH] locals.parser: check for valid locals names. --- basis/locals/parser/parser.factor | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/basis/locals/parser/parser.factor b/basis/locals/parser/parser.factor index ea1a07478f..e59b6a8fc5 100644 --- a/basis/locals/parser/parser.factor +++ b/basis/locals/parser/parser.factor @@ -11,8 +11,13 @@ SYMBOL: in-lambda? : ?rewrite-closures ( form -- form' ) in-lambda? get [ 1array ] [ rewrite-closures ] if ; +ERROR: invalid-local-name name ; + +: check-local-name ( name -- name ) + dup { "]" "]!" } member? [ invalid-local-name ] when ; + : make-local ( name -- word ) - "!" ?tail [ + check-local-name "!" ?tail [ dup dup name>> ,, ] [ ] if