[stringtemplate-interest] ST4: Early evaluation of default	arguments
    Sam Harwell 
    sharwell at pixelminegames.com
       
    Sun May  1 10:59:43 PDT 2011
    
    
  
IMO, properties of objects evaluated during the ST rendering process should
never have side effects. Ever. It just gets possible to cover all possible
semantics if that's allowed.
 
Given this, there is no difference between {.} and ({.}). Within a given
scope, a template always evaluates to the same result, rather it's one time
or twenty. :)
 
If you are passing  template as a parameter to another template, then it
could be evaluated in different scopes (potentially with different results).
If you want it to always have the same result, you can pass it in
(parenthesis) to evaluate it to a string before passing it as a parameter.
 
Sam
 
From: stringtemplate-interest-bounces at antlr.org
[mailto:stringtemplate-interest-bounces at antlr.org] On Behalf Of Udo
Borkowski
Sent: Saturday, April 30, 2011 5:39 AM
To: stringtemplate-interest Template
Subject: [stringtemplate-interest] ST4: Early evaluation of default
arguments
 
Currently the only way to enforce early evaluation of template default
arguments is through the syntax:
 
     p = {<(...)>}
 
I.e. one can only early evaluate anonymous template that contain just an
expression tag.
 
 
It would be nice to also support early evaluation on any kind of anonymous
template.
 
E.g. in
http://www.antlr.org/pipermail/stringtemplate-interest/2009-August/002097.ht
ml Ter gave the following example:
if(cond, block, label={end<(uniq)>}) ::= << ... >>
 
However this will not give the expected result in ST4 (early evaluation of
"end<(uniq)>").
 
Maybe we could extend the syntax for default arguments to also support
      p = ({ ... })
 
i.e. putting "( . )" around the template forces early evaluation?
 
 
What do others think?
 
Udo
 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/stringtemplate-interest/attachments/20110501/dec7601c/attachment.html 
    
    
More information about the stringtemplate-interest
mailing list