<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 10, 2015 at 8:41 PM, Chris Lattner <span dir="ltr">&lt;<a href="mailto:clattner@apple.com" target="_blank">clattner@apple.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div><br></div><div>1) What concrete syntax should be used?  There are a lot of options in this space across a wide range of languages.  C++ has raw strings, and this page has more examples:</div><div><a href="http://rigaux.org/language-study/syntax-across-languages.html#StrngMltLine" target="_blank">http://rigaux.org/language-study/syntax-across-languages.html#StrngMltLine</a></div></div></div></blockquote><div><br></div><div><br></div><div><div class="gmail_default" style="font-family:verdana,sans-serif">​I am open to any and all suggestions, though I&#39;ve already stated my personal fondness for python&#39;s style. ;)​</div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div>2) Should escapes like \n be processed always, should they never be processed, or should they be processed by default but disable-able in the syntax?</div></div></div></blockquote><div><br></div><div><br></div><div><div class="gmail_default" style="font-family:verdana,sans-serif">I would want multi-line string literals to behave as much like normal string literals as possible for consistency. To optimize for developer happiness, to steal the ruby saying, unexpected behavior should be kept to a minimum. If \n works in a normal string literal, it should work in a multi-line string literal... even if you could just hit enter instead.</div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div>3) What other policy decisions make sense to expose on these literals?  Since this will be the “powerful form of string literals”, it makes sense to be the place to put weird knobs that are seldom used but important in various cases.</div></div></div></blockquote><div><br></div><div><br></div><div><div class="gmail_default" style="font-family:verdana,sans-serif">​I would have to depend entirely on you to inform me of both these knobs and use cases. ​I&#39;d love to hear about them, that&#39;s for sure.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">My initial goal was the minimal possible work required to decrease the noise of writing large blocks of multi-line text and not have to poke around too much in the lexer and parser code (being completely unfamiliar with the swift codebase, having it just become open source recently).</div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div>I assume that this would tie into the existing literal convertible protocols, and if/when escaping is supported that it would support interpolation as well.</div></div></div></blockquote><div><br></div><div><br></div><div><div class="gmail_default"><font face="verdana, sans-serif">​I actually wanted to re-use the same function for handling normal string literals so that the functionality available would be exactly the same, and the output would be the exact same `​tok::string_literal`.</font></div></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif">- Travis Tilley</font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div></div>
</div></div>