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