]> gitweb.factorcode.org Git - factor.git/commitdiff
parser: add invalid-word-name, use it to check for redefining quotes.
authorJohn Benediktsson <mrjbq7@gmail.com>
Thu, 25 Apr 2013 22:41:20 +0000 (15:41 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Thu, 25 Apr 2013 22:41:20 +0000 (15:41 -0700)
core/parser/parser-tests.factor
core/parser/parser.factor

index 267fcb3eb71e009dd1faa0cfbf2ba18aef4f60ca..55ea673c3c33e5f5e9dc5d664cc7c041bf567e94 100644 (file)
@@ -35,6 +35,13 @@ unit-test
     eval( -- ) "USE: parser.tests hello" eval( -- string )
 ] unit-test
 
+[ "IN: parser.tests : \" ( -- n ) 123 ;" eval( -- ) ]
+[ error>> invalid-word-name? ] must-fail-with
+[ "IN: parser.tests : \"asdf ( -- n ) 123 ;" eval( -- ) ]
+[ error>> invalid-word-name? ] must-fail-with
+[ "IN: parser.tests : 123 ( -- n ) 123 ;" eval( -- ) ]
+[ error>> invalid-word-name? ] must-fail-with
+
 [ ]
 [ "! This is a comment, people." eval( -- ) ]
 unit-test
index 266f4c77ecde9ba0705b3012cddb85746a65d5c6..bba9bfe543d154e9170dab2c8ecef60203bba1f4 100644 (file)
@@ -71,11 +71,12 @@ ERROR: number-expected ;
 : scan-number ( -- number )
     (scan-token) parse-number ;
 
+ERROR: invalid-word-name string ;
+
 : scan-word-name ( -- string )
     scan-token
-    dup string>number [
-        "Word names cannot be numbers" throw
-    ] when ;
+    dup "\"" = [ t ] [ dup string>number ] if
+    [ invalid-word-name ] when ;
 
 : scan-new ( -- word )
     scan-word-name create-in ;