Fix parser bug with multi-line tuple literals

db4
Slava Pestov 2008-10-08 23:43:37 -05:00
parent 6a5dd26c52
commit d2dd7288b3
2 changed files with 14 additions and 0 deletions
core/classes/tuple/parser

View File

@ -96,3 +96,16 @@ TUPLE: syntax-test bar baz ;
[ T{ syntax-test } ] [ T{ syntax-test } ] unit-test
[ T{ syntax-test f { 2 3 } { 4 { 5 } } } ]
[ T{ syntax-test { bar { 2 3 } } { baz { 4 { 5 } } } } ] unit-test
! Corner case
TUPLE: parsing-corner-case x ;
[ T{ parsing-corner-case f 3 } ] [
{
"USE: classes.tuple.parser.tests"
"T{ parsing-corner-case"
" f"
" 3"
"}"
} "\n" join eval
] unit-test

View File

@ -86,6 +86,7 @@ ERROR: bad-literal-tuple ;
: parse-tuple-literal ( -- tuple )
scan-word scan {
{ f [ unexpected-eof ] }
{ "f" [ \ } parse-until boa>tuple ] }
{ "{" [ parse-slot-values assoc>tuple ] }
{ "}" [ new ] }