[stringtemplate-interest] [ST4] How to apply multiple "format"s to an expression?

Collin Fagan collin.fagan at gmail.com
Fri Feb 18 14:53:42 PST 2011


*This could actually be done by extending the ObjectModelAdaptor model
adapter to have it check for such a method.*

Such an adapter is available as part of
STRUM<http://sourceforge.net/apps/mediawiki/project-strum/index.php?title=Main_Page>
.

   - PublicMethodModelAdapter<http://project-strum.svn.sourceforge.net/viewvc/project-strum/trunk/strum-project/strum/src/main/java/com/collinfagan/strum/adaptors/PublicMethodModelAdapter.java?revision=8&view=markup>-
access any public method from ST

Humm ... but it would be interesting to build a Renderer that took a
delimited set of format parameters.

<n;format="%15s,upper">

Of course comma works great here but not for the general case .. maybe make
the delimiter a parameter to the renderer? I might slap something together
to try it out.

Collin

On Fri, Feb 18, 2011 at 4:29 PM, Sam Harwell <sharwell at pixelminegames.com>wrote:

> Does this work:
>
>
>
> <(upper(n)); format="%-15s">
>
>
>
> With this definition of upper(x)?
>
>
>
> upper(x) ::= <<
>
> <x; format="upper">
>
> >>
>
>
>
> Also, here’s an interesting case where if <x.y> checked for a method y()
> (zero parameters and non-void return value), you could use <n.toUpperCase;
> format="%-15s">. This could actually be done by extending the
> ObjectModelAdaptor model adapter to have it check for such a method.
>
>
>
> Sam
>
>
>
> *From:* stringtemplate-interest-bounces at antlr.org [mailto:
> stringtemplate-interest-bounces at antlr.org] *On Behalf Of *Udo Borkowski
> *Sent:* Friday, February 18, 2011 4:02 PM
> *To:* stringtemplate-interest List
> *Subject:* [stringtemplate-interest] [ST4] How to apply multiple "format"s
> to an expression?
>
>
>
> Hi,
>
>
>
> I would like to generate a constant definition like this:
>
>
>
>             public static final int ABC             = 123;
>
>             public static final int GHIJKLMN        = 456;
>
>
>
> To make sure the "="s are aligned I can use the Java String format padding
> feature, e.g. use a template like this:
>
>
>
> t1(n,v) ::= <<
>
> public static final int «n;*format="%-15s"*» = «v»;
>
> >>
>
>
>
> However the name is given in mixed case and I need to "upper" it, e.g. with
> something like this:
>
>
>
> t2(n,v) ::= <<
>
> public static final int «n;*format="upper"*» = «v»;
>
> >>
>
>
>
> Is there a way to combine both formats, so I get an uppercased, right
> padded name?
>
>
>
>
>
> Udo
>
>
>
> _______________________________________________
> stringtemplate-interest mailing list
> stringtemplate-interest at antlr.org
> http://www.antlr.org/mailman/listinfo/stringtemplate-interest
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/stringtemplate-interest/attachments/20110218/732fd7d5/attachment.html 


More information about the stringtemplate-interest mailing list