[Rd] [WISH / PATCH] possibility to split string literals across multiple lines

William Dunlap
Wed, 14 Jun 2017 15:12:38 -0000

If you are changing the parser (which is a major change) you
might consider treating strings in the C/C++ way:
   char *s = "A"
                   "B";
means the same as
   char *s = "AB";

I am not a big fan of that syntax but it is widely used.

A backslash at the end of the line leads to errors when you accidently
put a space after the backslash and the editor doesn't flag it.

Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Wed, Jun 14, 2017 at 3:58 AM, Andreas Kersting <r-devel at
akersting.de>
wrote:

> Hi,
>
> I would really like to have a way to split long string literals across
> multiple lines in R.
>
> Currently, if a string literal spans multiple lines, there is no way to
> inhibit the introduction of newline characters:
>
> > "aaa
> + bbb"
> [1] "aaa\nbbb"
>
>
> If a line ends with a backslash, it is just ignored:
>
> > "aaa\
> + bbb"
> [1] "aaa\nbbb"
>
>
> We could use this fact to implement string splitting in a fairly
> backward-compatible way, since currently such trailing backslashes should
> hardly be used as they do not have any effect. The attached patch makes the
> parser ignore a newline character directly following a backslash:
>
> > "aaa\
> + bbb"
> [1] "aaabbb"
>
>
> I personally would also prefer if leading blanks (spaces and tabs) in the
> second line are ignored to allow for proper indentation:
>
> >   "aaa \
> +    bbb"
> [1] "aaa bbb"
>
> >   "aaa\
> +    \ bbb"
> [1] "aaa bbb"
>
> This is also implemented by this patch.
>
>
> An alternative approach could be to have something like
>
> ("aaa "
> "bbb")
>
> or
>
> ("aaa ",
> "bbb")
>
> be interpreted as "aaa bbb".
>
> I don't know the ins and outs of the parser of R (hence: please very
> carefully review the attached patch), but I guess this would be more work
> to implement!?
>
>
> What do you think? Is there anybody else who is missing this feature in
> the first place?
>
> Regards,
> Andreas
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

	[[alternative HTML version deleted]]