From 060a98a01a7b28fb539e663b89fbc4755beef9ea Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Mon, 4 Sep 2017 14:26:17 -0500 Subject: [PATCH] modern: Fix unit tests --- extra/modern/modern-tests.factor | 101 +++++++++++++++++-------------- extra/modern/modern.factor | 2 +- 2 files changed, 56 insertions(+), 47 deletions(-) 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 ) ;