Fix parser bug with multi-line tuple literals
parent
6a5dd26c52
commit
d2dd7288b3
|
@ -96,3 +96,16 @@ TUPLE: syntax-test bar baz ;
|
||||||
[ T{ syntax-test } ] [ T{ syntax-test } ] unit-test
|
[ T{ syntax-test } ] [ T{ syntax-test } ] unit-test
|
||||||
[ T{ syntax-test f { 2 3 } { 4 { 5 } } } ]
|
[ T{ syntax-test f { 2 3 } { 4 { 5 } } } ]
|
||||||
[ T{ syntax-test { bar { 2 3 } } { baz { 4 { 5 } } } } ] unit-test
|
[ 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
|
||||||
|
|
|
@ -86,6 +86,7 @@ ERROR: bad-literal-tuple ;
|
||||||
|
|
||||||
: parse-tuple-literal ( -- tuple )
|
: parse-tuple-literal ( -- tuple )
|
||||||
scan-word scan {
|
scan-word scan {
|
||||||
|
{ f [ unexpected-eof ] }
|
||||||
{ "f" [ \ } parse-until boa>tuple ] }
|
{ "f" [ \ } parse-until boa>tuple ] }
|
||||||
{ "{" [ parse-slot-values assoc>tuple ] }
|
{ "{" [ parse-slot-values assoc>tuple ] }
|
||||||
{ "}" [ new ] }
|
{ "}" [ new ] }
|
||||||
|
|
Loading…
Reference in New Issue