[stringtemplate-interest] Using the "format" option with a template calls
Terence Parr
parrt at cs.usfca.edu
Wed Jan 26 16:49:28 PST 2011
Actually, do you have an STRenderer? t() yields an ST not a string.
Ter
On Jan 25, 2011, at 4:07 PM, Udo Borkowski wrote:
>> Hi. does <(t()); format="upper"> work?
>
> Nearly. It seems it eats (leading) white spaces.
>
> Here my little example group:
> -------------------
> t() ::= <<
> abc
>>>
>
> main() ::= <<
> «t()»
> «t();format="upper"»
> «(t());format="upper"»
> «t().render;format="upper"»
>>>
> -----------------
> Rendering main will produce this output:
> -----------------
> abc
> abc
> ABC
> ABC
> -----------------
> 3rd line is the (t()) case, 4th line produced by my ST ObjectAdapter.
>
> Udo
>
> On 25.01.2011, at 20:45, Terence Parr wrote:
>
>> Hi. does <(t()); format="upper"> work?
>> Ter
>> On Jan 25, 2011, at 12:56 AM, Udo Borkowski wrote:
>>
>>> While the "format" option work fine with attributes, like in
>>>
>>> <attr;format="upper">
>>>
>>> it does not seem to work when used together with template invocations, like:
>>>
>>> <t();format="upper">
>>>
>>> I don't know if this is intended (e.g. because of performance reasons) or a bug. I personally would like to have the format option also work in the latter situation. E.g. when I "refactor" my templates it happens data once stored in an attribute moves into a template. This was not possible when the "format" option is used.
>>>
>>>
>>> I am currently working around this by using a custom ObjectModelAdapter for ST, using this code:
>>>
>>> public Object getProperty(ST self, Object o, Object property,
>>> String propertyName) throws STNoSuchPropertyException {
>>> if ("render".equals(propertyName) && (o instanceof ST)) {
>>> return ((ST) o).render();
>>> }
>>> return super.getProperty(self, o, property, propertyName);
>>> }
>>>
>>> This way the above example looks like this:
>>>
>>> <t().render;format="upper">
>>>
>>> While this works fine I am still wondering if the "format" options should also work for the simple template call, too.
>>>
>>> What do you think?
>>>
>>> Udo
>>>
>>> _______________________________________________
>>> stringtemplate-interest mailing list
>>> stringtemplate-interest at antlr.org
>>> http://www.antlr.org/mailman/listinfo/stringtemplate-interest
>>
>> _______________________________________________
>> stringtemplate-interest mailing list
>> stringtemplate-interest at antlr.org
>> http://www.antlr.org/mailman/listinfo/stringtemplate-interest
>
More information about the stringtemplate-interest
mailing list