Better string constants

Carl Gay <[email protected]>
Newsgroups gmane.comp.lang.dylan.gwydion.devel
Message-ID <CALekcH3_b=PzxWC8E3_AcDhsyyuwnJLDqzbSdtnpehbWFSbuqw@mail.gmail.com>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.