         lexer get advance-char
     ] if ;
 
-DEFER: (parse-long-string)
+DEFER: ((parse-multiline-string))
 
 : parse-found-token ( i string token -- )
     [ lexer-before % ] dip
     CHAR: \ = [
-        lexer get [ next-char , ] [ next-char , ] bi (parse-long-string)
+        lexer get [ next-char , ] [ next-char , ] bi ((parse-multiline-string))
     ] [
         dup rest-begins? [
             end-string-parse
         ] [
-            lexer get next-char , (parse-long-string)
+            lexer get next-char , ((parse-multiline-string))
         ] if
     ] if ;
 
 ERROR: trailing-characters string ;
 
-: (parse-long-string) ( string -- )
+: ((parse-multiline-string)) ( string -- )
     lexer get still-parsing? [
         dup first find-next-token [
             parse-found-token
         ] [
             drop lexer get next-line%
-            (parse-long-string)
+            ((parse-multiline-string))
         ] if*
     ] [
         unexpected-eof
     ] if ;
 
+: (parse-multiline-string) ( string -- string' )
+    [ ((parse-multiline-string)) ] "" make ;
+
 PRIVATE>
-
-: parse-long-string ( string -- string' )
-    [ (parse-long-string) ] "" make ;
 
 : parse-multiline-string ( -- string )
     lexer get rest-of-line "\"\"" head? [

        escaped-char-expected
    ] if ;

: next-line% ( lexer -- )
    [ rest-of-line % ]
    [ next-line "\n" % ] bi ;

: rest-begins? ( string -- ? )
    [
        lexer get [ line-text>> ] [ column>> ] bi tail-slice

        lexer get (>>column)
    ] bi ;

: rest-of-line ( lexer -- seq )
    [ line-text>> ] [ column>> ] bi tail-slice ;

