diff --git a/extra/modern/compiler/compiler.factor b/extra/modern/compiler/compiler.factor index e0fb617f3b..a96a11a4a2 100644 --- a/extra/modern/compiler/compiler.factor +++ b/extra/modern/compiler/compiler.factor @@ -62,6 +62,7 @@ ARITY: \SLOT: 1 ARITY: \SYMBOL: 1 ARITY: \UNUSE: 1 ARITY: \USE: 1 +! ARITY: \USING: 0 : get-arity ( string -- n/f ) arities get at ; diff --git a/extra/modern/modern-tests.factor b/extra/modern/modern-tests.factor index b230f40f23..c50ebea43c 100644 --- a/extra/modern/modern-tests.factor +++ b/extra/modern/modern-tests.factor @@ -5,121 +5,111 @@ 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 @@ -138,13 +128,22 @@ 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 +{ + { + { "(" { "a" "b" } ")" } + { "[" { "a" "b" "+" } "]" } + { "(" { "c" } ")" } + } +} [ "( a b ) [ a b + ] ( c )" string>literals >strings ] unit-test + +![[ ! Concatenated syntax { { @@ -156,15 +155,6 @@ IN: modern.tests } } [ "( a b )[ a b + ]( c )" string>literals >strings ] unit-test -{ - { - { { "(" { "a" "b" } ")" } } - { { "[" { "a" "b" "+" } "]" } } - { { "(" { "c" } ")" } } - } -} [ "( a b ) [ a b + ] ( c )" string>literals >strings ] unit-test - - { { { @@ -173,3 +163,4 @@ IN: modern.tests } } } [ "\"abc\"[ 0 ]" string>literals >strings ] unit-test +]]