Tuple parsing didn't handle line breaks properly; if scan returns f, must throw unexpected-eof
parent
3e75e0f8b5
commit
b4d3473d5e
|
@ -109,3 +109,36 @@ TUPLE: parsing-corner-case x ;
|
||||||
"}"
|
"}"
|
||||||
} "\n" join eval
|
} "\n" join eval
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
[ T{ parsing-corner-case f 3 } ] [
|
||||||
|
{
|
||||||
|
"USE: classes.tuple.parser.tests"
|
||||||
|
"T{ parsing-corner-case"
|
||||||
|
" { x 3 }"
|
||||||
|
"}"
|
||||||
|
} "\n" join eval
|
||||||
|
] unit-test
|
||||||
|
|
||||||
|
[ T{ parsing-corner-case f 3 } ] [
|
||||||
|
{
|
||||||
|
"USE: classes.tuple.parser.tests"
|
||||||
|
"T{ parsing-corner-case {"
|
||||||
|
" x 3 }"
|
||||||
|
"}"
|
||||||
|
} "\n" join eval
|
||||||
|
] unit-test
|
||||||
|
|
||||||
|
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"USE: classes.tuple.parser.tests T{ parsing-corner-case"
|
||||||
|
" { x 3 }"
|
||||||
|
} "\n" join eval
|
||||||
|
] [ error>> unexpected-eof? ] must-fail-with
|
||||||
|
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"USE: classes.tuple.parser.tests T{ parsing-corner-case {"
|
||||||
|
" x 3 }"
|
||||||
|
} "\n" join eval
|
||||||
|
] [ error>> unexpected-eof? ] must-fail-with
|
||||||
|
|
|
@ -60,14 +60,19 @@ ERROR: invalid-slot-name name ;
|
||||||
dup check-duplicate-slots
|
dup check-duplicate-slots
|
||||||
3dup check-slot-shadowing ;
|
3dup check-slot-shadowing ;
|
||||||
|
|
||||||
: parse-slot-value ( -- )
|
|
||||||
scan scan-object 2array , scan "}" assert= ;
|
|
||||||
|
|
||||||
ERROR: bad-literal-tuple ;
|
ERROR: bad-literal-tuple ;
|
||||||
|
|
||||||
|
: parse-slot-value ( -- )
|
||||||
|
scan scan-object 2array , scan {
|
||||||
|
{ f [ unexpected-eof ] }
|
||||||
|
{ "}" [ ] }
|
||||||
|
[ bad-literal-tuple ]
|
||||||
|
} case ;
|
||||||
|
|
||||||
: (parse-slot-values) ( -- )
|
: (parse-slot-values) ( -- )
|
||||||
parse-slot-value
|
parse-slot-value
|
||||||
scan {
|
scan {
|
||||||
|
{ f [ unexpected-eof ] }
|
||||||
{ "{" [ (parse-slot-values) ] }
|
{ "{" [ (parse-slot-values) ] }
|
||||||
{ "}" [ ] }
|
{ "}" [ ] }
|
||||||
[ bad-literal-tuple ]
|
[ bad-literal-tuple ]
|
||||||
|
|
Loading…
Reference in New Issue