extra/multiline checks for EOF now
parent
acf236342c
commit
b08907ef27
|
@ -7,8 +7,11 @@ IN: multiline
|
|||
lexer get dup next-line line-text ;
|
||||
|
||||
: (parse-here) ( -- )
|
||||
next-line-text dup ";" =
|
||||
[ drop lexer get next-line ] [ % "\n" % (parse-here) ] if ;
|
||||
next-line-text [
|
||||
dup ";" =
|
||||
[ drop lexer get next-line ]
|
||||
[ % "\n" % (parse-here) ] if
|
||||
] [ ";" unexpected-eof ] if* ;
|
||||
|
||||
: parse-here ( -- str )
|
||||
[ (parse-here) ] "" make 1 head*
|
||||
|
@ -19,11 +22,13 @@ IN: multiline
|
|||
parse-here 1quotation define ; parsing
|
||||
|
||||
: (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-multiline-string)
|
||||
] if* ;
|
||||
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-multiline-string)
|
||||
] if*
|
||||
] [ nip unexpected-eof ] if* ;
|
||||
|
||||
: parse-multiline-string ( end-text -- str )
|
||||
[
|
||||
|
|
Loading…
Reference in New Issue