multi-line string literals.


(Doug McKenna) #1

It was not obvious reading this proposal whether comment lines or empty lines could be inserted in the middle of the multi-line string (MLS).

For instance, would the following be syntactically legal or not:

let cat = "<catalog>

          /* Add as many book specs here as you want */

          " <book id=\"bk101\" empty=\"\">
          " <author>\(author)</author>
          " </book>

          // More to come

          "</catalog>"

As someone who has had to write C source code that outputs boilerplate and customized code in another language, I think it should be legal to comment on the structure of a multi-line string at the most direct and appropriate spot within that string, without ill effect, as illustrated above.

What this means is that the failure to end a line with a " when that line begins with " means looking ahead not just to the next input line, but to the next non-blank (after stripping any comments and/or trailing whitespace) line that begins with a " (legal continuation of MLS), or anything else (illegal continuation of MLS).

- Doug McKenna