add quoting vocab
parent
4367996678
commit
57bd819886
|
@ -0,0 +1 @@
|
||||||
|
Doug Coleman
|
|
@ -0,0 +1,32 @@
|
||||||
|
! Copyright (C) 2009 Doug Coleman.
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
USING: help.markup help.syntax strings ;
|
||||||
|
IN: quoting
|
||||||
|
|
||||||
|
HELP: quote?
|
||||||
|
{ $values
|
||||||
|
{ "ch" "a character" }
|
||||||
|
{ "?" "a boolean" }
|
||||||
|
}
|
||||||
|
{ $description "Returns true if the character is a single or double quote." } ;
|
||||||
|
|
||||||
|
HELP: quoted?
|
||||||
|
{ $values
|
||||||
|
{ "str" string }
|
||||||
|
{ "?" "a boolean" }
|
||||||
|
}
|
||||||
|
{ $description "Returns true if a string is surrounded by matching single or double quotes as the first and last characters." } ;
|
||||||
|
|
||||||
|
HELP: unquote
|
||||||
|
{ $values
|
||||||
|
{ "str" string }
|
||||||
|
{ "newstr" string }
|
||||||
|
}
|
||||||
|
{ $description "Removes a pair of matching single or double quotes from a string." } ;
|
||||||
|
|
||||||
|
ARTICLE: "quoting" "Quotation marks"
|
||||||
|
"The " { $vocab-link "quoting" } " vocabulary is for removing quotes from a string." $nl
|
||||||
|
"Removing quotes:"
|
||||||
|
{ $subsection unquote } ;
|
||||||
|
|
||||||
|
ABOUT: "quoting"
|
|
@ -0,0 +1,10 @@
|
||||||
|
! Copyright (C) 2009 Doug Coleman.
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
USING: tools.test quoting ;
|
||||||
|
IN: quoting.tests
|
||||||
|
|
||||||
|
|
||||||
|
[ "abc" ] [ "'abc'" unquote ] unit-test
|
||||||
|
[ "abc" ] [ "\"abc\"" unquote ] unit-test
|
||||||
|
[ "'abc" ] [ "'abc" unquote ] unit-test
|
||||||
|
[ "abc'" ] [ "abc'" unquote ] unit-test
|
|
@ -0,0 +1,16 @@
|
||||||
|
! Copyright (C) 2009 Doug Coleman.
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
USING: combinators.short-circuit kernel math sequences strings ;
|
||||||
|
IN: quoting
|
||||||
|
|
||||||
|
: quote? ( ch -- ? ) "'\"" member? ;
|
||||||
|
|
||||||
|
: quoted? ( str -- ? )
|
||||||
|
{
|
||||||
|
[ length 1 > ]
|
||||||
|
[ first quote? ]
|
||||||
|
[ [ first ] [ peek ] bi = ]
|
||||||
|
} 1&& ;
|
||||||
|
|
||||||
|
: unquote ( str -- newstr )
|
||||||
|
dup quoted? [ but-last-slice rest-slice >string ] when ;
|
Loading…
Reference in New Issue