]> gitweb.factorcode.org Git - factor.git/commitdiff
locals.parser: check for valid locals names.
authorJohn Benediktsson <mrjbq7@gmail.com>
Wed, 20 Mar 2013 16:48:55 +0000 (09:48 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Wed, 20 Mar 2013 16:48:55 +0000 (09:48 -0700)
basis/locals/parser/parser.factor

index ea1a07478fb5c751b52e659b045ec63c56d88cde..e59b6a8fc5dbdfa962e9667eda6c5e06a2cf5567 100644 (file)
@@ -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 [
         <local-reader>
         dup <local-writer> dup name>> ,,
     ] [ <local> ] if