Re: Better string constants
Dustin Voss <[email protected]>
| Newsgroups | gmane.comp.lang.dylan.gwydion.devel |
|---|---|
| Message-ID | <[email protected]> |
I agree with this. The only question is how to deal with the leading or trailing whitespace. I’m inclined to say “leave it.” User can add “.strip” at the end if he wants to get rid of it. On Feb 28, 2013, at 6:52 AM, Alfredo Beaumont <[email protected]> wrote: > I don't see any reason not to allow multiline strings with the actual syntax: > > " > A: { > a: 'a' > b: 'b' > c: 'c' > } > " > > An alternative syntax could be provided to avoid abusing escaping: > > """ > A: { > a: "a" > b: "b" > c: "c" > } > """ > > If coil works as shown by bruce i don't even think the alternative > syntax is too important. > I also don't think a raw syntax is worth a new syntax. > > Cheers > > 2013/2/28 Bruce Mitchener <[email protected]>: >> I'm +1 on """ ... """ >> >> But I'm +10 on being able to improve your life today. :) >> >> - Bruce >> >> >> >> On Thu, Feb 28, 2013 at 7:47 PM, Carl Gay <[email protected]> wrote: >>> >>> okay, that's fine with me as long as r-parser goes in common-dylan. We >>> still need """ though. >>> >>> >>> On Wed, Feb 27, 2013 at 10:58 PM, Bruce Mitchener >>> <[email protected]> wrote: >>>> >>>> It isn't a proposal that needs implementing. It works right now in every >>>> release since Open Dylan was open sourced. Go try it. >>>> >>>> - Bruce >>>> >>>> >>>> >>>> On Thu, Feb 28, 2013 at 10:54 AM, Carl Gay <[email protected]> wrote: >>>>> >>>>> Even if we implemented your proposal for parsers, I still think we need >>>>> better string literals. At least """, but we could conceivably implement #r >>>>> as parse-r. :-) >>>>> >>>>> >>>>> On Wed, Feb 27, 2013 at 10:00 PM, Bruce Mitchener >>>>> <[email protected]> wrote: >>>>>> >>>>>> define constant coil-parser = parse-coil; >>>>>> >>>>>> let c = #coil:[ >>>>>> >>>>>> A: { >>>>>> a: 'a' >>>>>> b: 'b' >>>>>> c: 'c' >>>>>> } >>>>>> ]; >>>>>> >>>>>> Suspect that works right now in OpenDylan 2012.1. >>>>>> >>>>>> - Bruce >>>>>> >>>>>> >>>>>> >>>>>> On Thu, Feb 28, 2013 at 9:55 AM, Carl Gay <[email protected]> wrote: >>>>>>> >>>>>>> I really want better string constant syntax in Dylan. Doing this sort >>>>>>> of thing... >>>>>>> >>>>>>> parse-coil("A: {\n" >>>>>>> " a: 'a'\n" >>>>>>> " b: 'b'\n" >>>>>>> " c: 'c'\n" >>>>>>> "}\n" >>>>>>> ... >>>>>>> or >>>>>>> "\"5\"" >>>>>>> >>>>>>> is really tedious and error prone. (Both of the above are from a test >>>>>>> suite.) >>>>>>> >>>>>>> We need two things: >>>>>>> (1) raw string literals >>>>>>> (2) multi-line strings >>>>>>> >>>>>>> Briefly, my suggestions are: >>>>>>> * Use """ for multiline backslash-interpreted strings. >>>>>>> * Use ` (backquote) for one-line raw strings. >>>>>>> * Use ``` for multi-line raw strings. >>>>>>> >>>>>>> `"5"` == "\"5\"" >>>>>>> `\d+\.` == "\\d+\\." >>>>>>> ```A: { >>>>>>> a: 'a' >>>>>>> b: 'b' >>>>>>> c: 'c' >>>>>>> }``` == the string near the top of this message. >>>>>>> >>>>>>> While I think it may be possible to use `...` for multi-line raw >>>>>>> strings (as Go does) it bothers me that there's no way to embed a backquote, >>>>>>> and also I like having the symmetry of "..." / """...""" and `...` / >>>>>>> ```...```. >>>>>>> >>>>>>> Another possibility I like is #r"..." and #r"""...""" for raw strings. >>>>>>> >>>>>>> Thoughts/opinions? >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> hackers mailing list >>>>>>> [email protected] >>>>>>> https://lists.opendylan.org/mailman/listinfo/hackers >>>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> hackers mailing list >>>>>> [email protected] >>>>>> https://lists.opendylan.org/mailman/listinfo/hackers >>>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> hackers mailing list >>>>> [email protected] >>>>> https://lists.opendylan.org/mailman/listinfo/hackers >>>>> >>>> >>>> >>>> _______________________________________________ >>>> hackers mailing list >>>> [email protected] >>>> https://lists.opendylan.org/mailman/listinfo/hackers >>>> >>> >>> >>> _______________________________________________ >>> hackers mailing list >>> [email protected] >>> https://lists.opendylan.org/mailman/listinfo/hackers >>> >> >> >> _______________________________________________ >> hackers mailing list >> [email protected] >> https://lists.opendylan.org/mailman/listinfo/hackers >> > _______________________________________________ > hackers mailing list > [email protected] > https://lists.opendylan.org/mailman/listinfo/hackers _______________________________________________ hackers mailing list [email protected] https://lists.opendylan.org/mailman/listinfo/hackers