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

Udo Borkowski ub at abego-software.de
Sat Feb 19 00:12:02 PST 2011


Hi Sam,

> <(upper(n)); format="%-15s">


thanks, that works fine. 

I tried something similar but it didn't worked because I didn't used the "toString" operator (…). Grrr.


Udo

On 18.02.2011, at 23:29, Sam Harwell 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
>  

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/stringtemplate-interest/attachments/20110219/e193acc9/attachment-0001.html 


More information about the stringtemplate-interest mailing list