Proposal: Embedded Expressions for String Statements

Mark Mahieu markmahieu at googlemail.com
Fri Mar 20 17:20:33 PDT 2009


Hi Stefan,

Do you have any thoughts about how this new form of String might be
internationalized?
Mark


2009/3/21 Stefan Schulz <schulz at e-spirit.de>

> In the light of the discussions on how to markup embedded expressions,
> it seems a really good idea to introduce a new form of String
> expressions (e.g. using a back-tick or triple-quotes as delimiter),
> which captures embedded expressions and "escape-free" and multiline
> Strings at the same time. For example by having ${ as new escape
> sequence introducing embedded expressions and $\ to introduce escape
> characters (where $\{ would escape from embedded expressions, $\\ from
> escape characters and, e.g., $\n would be a line break). I'm not sure
> about the $foo form, though.
> While it seems to require more characters now for escaping, the chances
> are quite high that the two sequences ${ and $\ are rare in normal text
> and the common sequences \n and \t can be replaced by using the
> multiline feature.
> It requires a bit more on pre-scanning the code, but this is only at
> compile-time when transforming the new String to old String, I think.
>
> Stefan
>
> John Rose schrieb:
> > I wrote the spec. draft and implementation (in antlr) for Groovy
> > gstring syntax; I did the work with the intention of helping the JSR
> > 241 Groovy standard.  It could work in Java with adjustments, and the
> > Groovy spec. is detailed enough to be a starting point.   I don't
> > really have time to work on it though. That's why I haven't done a
> > proposal.
> >
> > For Java, to extend the string syntax and emphasize that a new string
> > is being constructed, I recommend this:
> >
> >    new "$foo, ${bar}s."
> >
> > The new kwd enables the dollars. Other details to be taken from the
> > Groovy spec.
> >
> > Best wishes,
> >
> > -- John  (on my iPhone)
> >
> > On Mar 19, 2009, at 8:33 AM, phil swenson <phil.swenson at gmail.com>
> > wrote:
> >
> >  > funny, i just joined the list specifically to ask about this subject.
> >  >
> >  > why not just copy the groovy implementation of this?   $var or $
> >  > {expresion} ?
> >  > in groovy it would be:
> >  > "[$field1, $field2, $field3]"
> >  >
> >  > or with the explicit expression syntax:
> >  > "[${field1}, ${field2}, ${field3}]"
> >  >
> >  >
> >  > I hate escape characters :)
> >  >
> >  >
> >  > On Thu, Mar 19, 2009 at 2:03 AM, Schulz, Stefan <schulz at e-spirit.de>
> >  > wrote:
> >  >> The concat-variant to me is even worse readable than the original +-
> >  >> notation, having three consecutive commas in between.
> >  >> The proposal already mentions concatenation of any kind as
> >  >> alternative, although not mentioning concat(). Maybe worth expanding.
> >  >>
> >  >> Stefan
> >  >>
> >  >>> -----Original Message-----
> >  >>> From: rssh at gradsoft.com.ua [mailto:rssh at gradsoft.com.ua]
> >  >>> Sent: Wednesday, March 18, 2009 8:58 PM
> >  >>> To: Howard Lovatt
> >  >>> Cc: coin-dev at openjdk.java.net; Schulz, Stefan
> >  >>> Subject: Re: Proposal: Embedded Expressions for String Statements
> >  >>>
> >  >>>> I like Stefan's proposed syntax and as a way of a motivating
> >  >>>> example
> >  >>>> consider writing a toString method that gives the field
> >  >>> values within
> >  >>>> square brackets, now you would write:
> >  >>>>
> >  >>>>     "[" + field1 + ", " + field2 + ", " + field3 + "]"
> >  >>>>
> >  >>>> With the proposal you would say:
> >  >>>>
> >  >>>>     "[\{field1}, \{field2}, \{field3}]"
> >  >>>>
> >  >>>> Which I find clearer.
> >  >>>>
> >  >>>
> >  >>> Just note: now we can use much cleaner
> >  >>>  concat( field1, ',' , field2, ',' field3 )
> >  >>>
> >  >>>
> >  >>>
> >  >>>> Many thanks to Stefan for writing this up formally.
> >  >>>>
> >  >>>>
> >  >>>
> >  >>>
> >  >>>
> >  >>>
> >  >>
> >  >>
> >  >
> >
>
>



More information about the coin-dev mailing list