Thread overview | |||||
---|---|---|---|---|---|
|
June 14, 2002 Multi line strings | ||||
---|---|---|---|---|
| ||||
Walter how would you feel about a multiline string delimiter. For example I currently have this string that I use as part of a unit test for a parser. It would be a nice to write it like this, where """ indicates a string that spans over more that one line. char[] test1 = """ variable=value var = "Hello there" truth=true number=456 newdict=foo{ testv=false aaa=Hello } thelist=[ 12 34 "beagle" ["its log" 12 ] hot { foo=bar } ] """; Instead it's written like this which is a little harder to deal with. char[] test1 = "variable=value\n" "var = \"Hello there\"\n" "truth=true\n" "number=456\n" "newdict=foo{\n" " testv=false\n" " aaa=Hello\n" "}\n" "thelist=[ 12 34 \"beagle\" [\"its log\" 12 ] hot { foo=bar } ]\n" "\n"; The only problem I see is that different platforms have different end of line character sequences. |
June 14, 2002 Re: Multi line strings | ||||
---|---|---|---|---|
| ||||
Posted in reply to Patrick Down | Hi, > Walter how would you feel about a multiline string delimiter. In shell scripts you have "here documents", and they are quite handy :-) They would be handy in D too. > The only problem I see is that different platforms have different end of line character sequences. That could be solved by explicitly specifying how end-of-line characters should be represented. Something like this: char[] document = here("\n",EOF) variable=value var = "Hello there" truth=true number=456 newdict=foo{ testv=false aaa=Hello } thelist=[ 12 34 "beagle" ["its log" 12 ] hot { foo=bar } ] EOF "here" would then be a keyword recognized by the lexer, the first argument specifies the end-of-line representation, and the second argument is an identifier used to mark the end of the string. One thing a don't like about here documents as they work in shell scripts, is that they either breaks indention, or they introduce unwanted indention in the here document. Regards, Martin M. Pedersen |
June 14, 2002 Re: Multi line strings | ||||
---|---|---|---|---|
| ||||
Posted in reply to Martin M. Pedersen | "Martin M. Pedersen" <mmp@www.moeller-pedersen.dk> wrote in news:aedahl$ctk$1@digitaldaemon.com: > Hi, > >> Walter how would you feel about a multiline string delimiter. > > In shell scripts you have "here documents", and they are quite handy :-) They would be handy in D too. > >> The only problem I see is that different platforms have different end of line character sequences. > > That could be solved by explicitly specifying how end-of-line > characters should be represented. > Something like this: > > char[] document = here("\n",EOF) > variable=value > var = "Hello there" > truth=true > number=456 > newdict=foo{ > testv=false > aaa=Hello > } > thelist=[ 12 34 "beagle" ["its log" 12 ] hot { foo=bar } ] > EOF Yes this would be an ideal solution. |
Copyright © 1999-2021 by the D Language Foundation