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
: 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 ;