parser: add invalid-word-name, use it to check for redefining quotes.
parent
00eeb07680
commit
2b7d53b7d1
|
@ -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
|
||||
|
|
|
@ -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 ;
|
||||
|
|
Loading…
Reference in New Issue