diff --git a/extra/modern/modern-tests.factor b/extra/modern/modern-tests.factor
index abca72deb4..b230f40f23 100644
--- a/extra/modern/modern-tests.factor
+++ b/extra/modern/modern-tests.factor
@@ -5,116 +5,121 @@ IN: modern.tests
! Comment
{
- { { "!" "" } }
+ {
+ { { "!" "" } }
+ }
} [ "!" string>literals >strings ] unit-test
{
- { { "!" " lol" } }
+ {
+ { { "!" " lol" } }
+ }
} [ "! lol" string>literals >strings ] unit-test
{
- { "lol!" }
+ { { "lol!" } }
} [ "lol!" string>literals >strings ] unit-test
{
- { { "!" "lol" } }
+ { { { "!" "lol" } } }
} [ "!lol" string>literals >strings ] unit-test
! Colon
{
- { ":asdf:" }
+ { { ":asdf:" } }
} [ ":asdf:" string>literals >strings ] unit-test
{
- { { "one:" "1" } }
+ { { { "one:" "1" } } }
} [ "one: 1" string>literals >strings ] unit-test
{
- { "1" ":>" "one" }
+ { { "1" } { ":>" } { "one" } }
} [ "1 :> one" string>literals >strings ] unit-test
{
- { { ":" { "foo" } ";" } }
+ { { { ":" { "foo" } ";" } } }
} [ ": foo ;" string>literals >strings ] unit-test
{
{
- { "FOO:" { "a" } }
- { "BAR:" { "b" } }
+ { { "FOO:" { "a" } } }
+ { { "BAR:" { "b" } } }
}
} [ "FOO: a BAR: b" string>literals >strings ] unit-test
{
{
- { "FOO:" { "a" } ";" }
+ { { "FOO:" { "a" } ";" } }
}
} [ "FOO: a ;" string>literals >strings ] unit-test
{
{
- { "FOO:" { "a" } "FOO;" }
+ { { "FOO:" { "a" } "FOO;" } }
}
} [ "FOO: a FOO;" string>literals >strings ] unit-test
! Acute
{
- { { "" } }
+ { { { "" } } }
} [ "" string>literals >strings ] unit-test
{
- { { "" } }
+ { { { "" } } }
} [ "" string>literals >strings ] unit-test
-{ { "" } } [ "" string>literals >strings ] unit-test
-{ { ">foo<" } } [ ">foo<" string>literals >strings ] unit-test
+{ { { "" } } } [ "" string>literals >strings ] unit-test
+{ { { ">foo<" } } } [ ">foo<" string>literals >strings ] unit-test
-{ { "foo>" } } [ "foo>" string>literals >strings ] unit-test
-{ { ">foo" } } [ ">foo" string>literals >strings ] unit-test
-{ { ">foo>" } } [ ">foo>" string>literals >strings ] unit-test
-{ { ">>foo>" } } [ ">>foo>" string>literals >strings ] unit-test
-{ { ">>foo>>" } } [ ">>foo>>" string>literals >strings ] unit-test
+{ { { "foo>" } } } [ "foo>" string>literals >strings ] unit-test
+{ { { ">foo" } } } [ ">foo" string>literals >strings ] unit-test
+{ { { ">foo>" } } } [ ">foo>" string>literals >strings ] unit-test
+{ { { ">>foo>" } } } [ ">>foo>" string>literals >strings ] unit-test
+{ { { ">>foo>>" } } } [ ">>foo>>" string>literals >strings ] unit-test
-{ { "foo<" } } [ "foo<" string>literals >strings ] unit-test
-{ { "literals >strings ] unit-test
-{ { "literals >strings ] unit-test
-{ { "<literals >strings ] unit-test
-{ { "<literals >strings ] unit-test
+{ { { "foo<" } } } [ "foo<" string>literals >strings ] unit-test
+{ { { "literals >strings ] unit-test
+{ { { "literals >strings ] unit-test
+{ { { "<literals >strings ] unit-test
+{ { { "<literals >strings ] unit-test
! Backslash \AVL{ foo\bar foo\bar{
{
- { { "SYNTAX:" { "\\AVL{" } } }
+ { { { "SYNTAX:" { "\\AVL{" } } } }
} [ "SYNTAX: \\AVL{" string>literals >strings ] unit-test
[ "\\" string>literals >strings ] must-fail ! \ alone should be legal eventually (?)
-{ { "\\FOO" } } [ "\\FOO" string>literals >strings ] unit-test
+
+{ { { "\\FOO" } } } [ "\\FOO" string>literals >strings ] unit-test
{
- { "foo\\bar" }
+ { { "foo\\bar" } }
} [ "foo\\bar" string>literals >strings ] unit-test
[ "foo\\bar{" string>literals >strings ] must-fail
{
- { { "foo\\bar{" { "1" } "}" } }
+ { { { "foo\\bar{" { "1" } "}" } } }
} [ "foo\\bar{ 1 }" string>literals >strings ] unit-test
-{ { { "char:" "\\{" } } } [ "char: \\{" string>literals >strings ] unit-test
+{ { { { "char:" "\\{" } } } } [ "char: \\{" string>literals >strings ] unit-test
[ "char: {" string>literals >strings ] must-fail
[ "char: [" string>literals >strings ] must-fail
[ "char: {" string>literals >strings ] must-fail
[ "char: \"" string>literals >strings ] must-fail
-{ { { "char:" "\\\\" } } } [ "char: \\\\" string>literals >strings ] unit-test
+{ { { { "char:" "\\\\" } } } } [ "char: \\\\" string>literals >strings ] unit-test
[ "char: \\" string>literals >strings ] must-fail ! char: \ should be legal eventually
! \ backslash going away someday
-{ { { "\\" "(" } } } [ "\\ (" string>literals >strings ] unit-test
+{ { { { "\\" "(" } } } } [ "\\ (" string>literals >strings ] unit-test
-{ { "\\[[" } } [ "\\[[" string>literals >strings ] unit-test
-{ { "\\[=[" } } [ "\\[=[" string>literals >strings ] unit-test
-{ { "\\[==[" } } [ "\\[==[" string>literals >strings ] unit-test
+{ { { "\\[[" } } } [ "\\[[" string>literals >strings ] unit-test
+{ { { "\\[=[" } } } [ "\\[=[" string>literals >strings ] unit-test
+{ { { "\\[==[" } } } [ "\\[==[" string>literals >strings ] unit-test
{ t } [ "FOO:" strict-upper? ] unit-test
@@ -133,34 +138,38 @@ IN: modern.tests
! Strings
{
- { { "url\"" "google.com" "\"" } }
+ { { { "url\"" "google.com" "\"" } } }
} [ [[ url"google.com" ]] string>literals >strings ] unit-test
{
- { { "\"" "google.com" "\"" } }
+ { { { "\"" "google.com" "\"" } } }
} [ [[ "google.com" ]] string>literals >strings ] unit-test
! Concatenated syntax
{
{
- { "(" { "a" "b" } ")" }
- { "[" { "a" "b" "+" } "]" }
- { "(" { "c" } ")" }
+ {
+ { "(" { "a" "b" } ")" }
+ { "[" { "a" "b" "+" } "]" }
+ { "(" { "c" } ")" }
+ }
}
} [ "( a b )[ a b + ]( c )" string>literals >strings ] unit-test
{
{
- { "(" { "a" "b" } ")" }
- { "[" { "a" "b" "+" } "]" }
- { "(" { "c" } ")" }
+ { { "(" { "a" "b" } ")" } }
+ { { "[" { "a" "b" "+" } "]" } }
+ { { "(" { "c" } ")" } }
}
} [ "( a b ) [ a b + ] ( c )" string>literals >strings ] unit-test
{
{
- { "\"" "abc" "\"" }
- { "[" { "0" } "]" }
+ {
+ { "\"" "abc" "\"" }
+ { "[" { "0" } "]" }
+ }
}
} [ "\"abc\"[ 0 ]" string>literals >strings ] unit-test
diff --git a/extra/modern/modern.factor b/extra/modern/modern.factor
index dec72646b4..8cc7dc8cda 100644
--- a/extra/modern/modern.factor
+++ b/extra/modern/modern.factor
@@ -214,7 +214,7 @@ ERROR: no-backslash-payload n string slice ;
! If the slice is 0 width, we stopped on whitespace.
! Advance the index and read again!
: read-token-or-whitespace ( n string slice -- n' string slice/f )
- dup length 0 = [ [ 1 + ] 2dip ] when ;
+ dup length 0 = [ [ 1 + ] 2dip drop lex-factor ] when ;
ERROR: mismatched-terminator n string slice ;
: read-terminator ( n string slice -- n' string slice ) ;