From 721434cb443ce1b1376ce068d62d8cd49b3fec18 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Fri, 17 Jun 2016 16:07:58 -0700 Subject: [PATCH] factor: add ![[ ]] and multiline to core. --- core/bootstrap/syntax.factor | 3 ++- core/modern/lexer/lexer-tests.factor | 16 +++++++++------- {language => core}/multiline/authors.txt | 0 .../multiline/multiline-docs.factor | 0 .../multiline/multiline-tests.factor | 0 {language => core}/multiline/multiline.factor | 0 {language => core}/multiline/summary.txt | 0 {language => core}/multiline/tags.txt | 0 core/syntax/syntax.factor | 14 +++++++++++++- language/bootstrap/compiler/compiler.factor | 2 +- 10 files changed, 25 insertions(+), 10 deletions(-) rename {language => core}/multiline/authors.txt (100%) rename {language => core}/multiline/multiline-docs.factor (100%) rename {language => core}/multiline/multiline-tests.factor (100%) rename {language => core}/multiline/multiline.factor (100%) rename {language => core}/multiline/summary.txt (100%) rename {language => core}/multiline/tags.txt (100%) diff --git a/core/bootstrap/syntax.factor b/core/bootstrap/syntax.factor index db70416931..d5e3ac071c 100644 --- a/core/bootstrap/syntax.factor +++ b/core/bootstrap/syntax.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2007, 2008 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: words words.symbol sequences vocabs kernel -compiler.units ; +compiler.units multiline ; in: bootstrap.syntax [ @@ -11,6 +11,7 @@ in: bootstrap.syntax "(" ":" ";" + "![[" "![=[" "![==[" "PRIVATE<" "B{" "BV{" diff --git a/core/modern/lexer/lexer-tests.factor b/core/modern/lexer/lexer-tests.factor index ced7d1c4a2..2dfc2fe099 100644 --- a/core/modern/lexer/lexer-tests.factor +++ b/core/modern/lexer/lexer-tests.factor @@ -3,11 +3,13 @@ USING: kernel modern.lexer sequences tools.test ; in: modern.lexer.tests -! { T{ slice f 0 8 "dinosaur" } f } [ -! "dinosaur" lex-til-whitespace -! ] unit-test +![[ +{ T{ slice f 0 8 "dinosaur" } f } [ + "dinosaur" lex-til-whitespace +] unit-test -! { f f } [ -! "dinosaur" -! [ lex-til-whitespace 2drop ] [ lex-til-whitespace ] bi -! ] unit-test \ No newline at end of file +{ f f } [ + "dinosaur" + [ lex-til-whitespace 2drop ] [ lex-til-whitespace ] bi +] unit-test +]] \ No newline at end of file diff --git a/language/multiline/authors.txt b/core/multiline/authors.txt similarity index 100% rename from language/multiline/authors.txt rename to core/multiline/authors.txt diff --git a/language/multiline/multiline-docs.factor b/core/multiline/multiline-docs.factor similarity index 100% rename from language/multiline/multiline-docs.factor rename to core/multiline/multiline-docs.factor diff --git a/language/multiline/multiline-tests.factor b/core/multiline/multiline-tests.factor similarity index 100% rename from language/multiline/multiline-tests.factor rename to core/multiline/multiline-tests.factor diff --git a/language/multiline/multiline.factor b/core/multiline/multiline.factor similarity index 100% rename from language/multiline/multiline.factor rename to core/multiline/multiline.factor diff --git a/language/multiline/summary.txt b/core/multiline/summary.txt similarity index 100% rename from language/multiline/summary.txt rename to core/multiline/summary.txt diff --git a/language/multiline/tags.txt b/core/multiline/tags.txt similarity index 100% rename from language/multiline/tags.txt rename to core/multiline/tags.txt diff --git a/core/syntax/syntax.factor b/core/syntax/syntax.factor index 7dfbc4d8b3..990ec84a87 100644 --- a/core/syntax/syntax.factor +++ b/core/syntax/syntax.factor @@ -12,7 +12,7 @@ lexer locals.errors locals.parser macros math memoize namespaces parser quotations sbufs sequences slots source-files splitting stack-checker strings strings.parser strings.parser.private typed vectors vocabs vocabs.parser words words.alias -words.constant words.symbol delegate.private hints ; +words.constant words.symbol delegate.private hints multiline ; in: bootstrap.syntax ! These words are defined as a top-level form, instead of with @@ -58,6 +58,18 @@ in: bootstrap.syntax { "_" "@" } define-fry-specifiers ! "@" [ "Only valid inside a fry" throw ] ( -- * ) define-fry-specifier + "![[" [ + "]]" parse-multiline-string drop + ] define-core-syntax + + "![=[" [ + "]=]" parse-multiline-string drop + ] define-core-syntax + + "![==[" [ + "]==]" parse-multiline-string drop + ] define-core-syntax + "PRIMITIVE:" [ current-vocab name>> scan-word scan-effect ";" expect ensure-primitive diff --git a/language/bootstrap/compiler/compiler.factor b/language/bootstrap/compiler/compiler.factor index 020c55df9d..91630f705b 100644 --- a/language/bootstrap/compiler/compiler.factor +++ b/language/bootstrap/compiler/compiler.factor @@ -65,7 +65,7 @@ gc { unify-variables - (balance-actual-depth) + balance-actual-depth } compile-unoptimized {