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

Sam Harwell sharwell at pixelminegames.com
Fri Feb 18 14:29:22 PST 2011


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/20110218/53660b47/attachment.html 


More information about the stringtemplate-interest mailing list