Multiline string literal naming

release
Daniel Ehrenberg 2007-12-12 00:33:36 -05:00
parent 637c1ad0e4
commit 34e29cd690
2 changed files with 7 additions and 7 deletions

View File

@ -14,8 +14,8 @@ HELP: parse-here
{ $values { "str" "a string" } }
{ $description "Parses a multiline string literal, as used by " { $link POSTPONE: STRING: } "." } ;
HELP: parse-literal
HELP: parse-multiline-string
{ $values { "end-text" "a string delineating the end" } { "str" "the parsed string" } }
{ $description "Parses a multiline string literal, as used by " { $link POSTPONE: <" } ". The end-text is the delimiter for the end." } ;
{ parse-here parse-literal } related-words
{ parse-here parse-multiline-string } related-words

View File

@ -18,18 +18,18 @@ IN: multiline
CREATE dup reset-generic
parse-here 1quotation define-compound ; parsing
: (parse-literal) ( start-index end-text -- end-index )
: (parse-multiline-string) ( start-index end-text -- end-index )
lexer get line-text 2dup start
[ rot dupd >r >r swap subseq % r> r> length + ] [
rot tail % "\n" % 0
lexer get next-line swap (parse-literal)
lexer get next-line swap (parse-multiline-string)
] if* ;
: parse-literal ( end-text -- str )
: parse-multiline-string ( end-text -- str )
[
lexer get lexer-column swap (parse-literal)
lexer get lexer-column swap (parse-multiline-string)
lexer get set-lexer-column
] "" make 1 tail 1 head* ;
: <"
"\">" parse-literal parsed ; parsing
"\">" parse-multiline-string parsed ; parsing