[stringtemplate-interest] "".."" won't work

Sam Harwell sharwell at pixelminegames.com
Tue Apr 5 21:24:34 PDT 2011


I still don't see how <% %> would lead to implementation or usage problems.
Can anyone give a concrete example where it breaks?

 

The comments suggestion is completely impractical for the size templates I
work with, even with syntax highlighting.

 

That said, I just realized that it might make sense for <% %> to drop INDENT
tokens as well, for the following reasons:

 

.         Indentation doesn't make sense for a single-line token.

.         If someone wanted to insert whitespace in the middle of a line in
a single-line template, it wouldn't be at the beginning of a line.

 

Sam

 

From: stringtemplate-interest-bounces at antlr.org
[mailto:stringtemplate-interest-bounces at antlr.org] On Behalf Of Udo
Borkowski
Sent: Tuesday, April 05, 2011 10:10 PM
To: Terence Parr
Cc: stringtemplate-interest List
Subject: Re: [stringtemplate-interest] "".."" won't work

 

Let's get back to the original issue: 

we want to make templates more readable that currently packed in one line
(to avoid newline output):

Here's a simple example:
 
ruleRef(rule,label,elementIndex,args,scope) ::= <<
<if(label)><label>=<endif><if(scope)><scope:delegateName()>.<endif><rule.nam
e>(<args; separator=", ">);
>> 
 

Do we really need a new feature to achieve this? 

What about using stuff already implemented to improve readablity?

 

E.g. comments can be used to insert linebreaks that are visible in the
template but not rendered:

 

ruleRef(rule,label,elementIndex,args,scope) ::= <<<!
!><if(label)><!
!><label>=<!
!><endif><!
!><if(scope)><!
!><scope:delegateName()>.<!
!><endif><!
!><rule.name>(<args; separator=", ">);
>> 
 
With a proper syntax highlighting (which makes comments very "light") it
becomes even more readable:
 
ruleRef(rule,label,elementIndex,args,scope) ::= <<<!
!><if(label)><!
!><label>=<!
!><endif><!
!><if(scope)><!
!><scope:delegateName()>.<!
!><endif><!
!><rule.name>(<args; separator=", ">);
>> 
 
These comments can even be used to do indents, improving the readability
again:
 
ruleRef(rule,label,elementIndex,args,scope) ::= <<<!
!><if(label)><!
    !><label>=<!
!><endif><!
!><if(scope)><!
    !><scope:delegateName()>.<!
!><endif><!
!><rule.name>(<args; separator=", ">);
>> 
This final example looks very readable to me, even more readable than the
template we would write with the suggested "newline eating" syntax:

ruleRef(rule,label,elementIndex,args,scope) ::= <<<
<if(label)>
<label>=
<endif>
<if(scope)>
<scope:delegateName()>.
<endif>
<rule.name>(<args; separator=", ">);
>>> 

Of cause this "comment formatting" involves a little more typing, but this
can easily handled by any good editor (Ter: "... emacs is your friend ;)").
 
With this idea in mind, do we really need to add this "newline eating"
feature? 
 
To me the benefit does not look that big. As I have not yet written any real
long "one liners" I may not be the right person to judge this, so what do
others think?
 
Implementing the "line eating" feature has quite its difficulties, as we
noticed already. I have no doubt these issues can be solved, however I
assume "StringTemplate's overall design simplicity" (Sam Harwell) will be
bigger without it. 
 
 
Udo
 

On 05.04.2011, at 18:31, Terence Parr wrote:





yeah it was hassle flipping << >> to <% %> in Java.stg templates, though I'd
need to insert [..] or whatever just the same.  still open for debate :)

T

On Apr 5, 2011, at 5:03 AM, Udo Borkowski wrote:





Following this thread makes me think if extending the syntax through new
template delimiters ("", """, <% or whatsoever) is really a good idea. 

 

I assume we run into less problems (conflict with old syntax, escape issues
etc.) with just sticking to the old ones ("."  and <<.>>) and just add the
optional "[.]" template prefix, as already suggested earlier.

 

t() ::= [.]<<

.

.

.

>> 

 

Udo

 

 

 

On 05.04.2011, at 06:15, Terence Parr wrote:





oh right.  might work.

Ter

On Apr 4, 2011, at 8:06 PM, Sam Harwell wrote:





If you chose % as your delimiter, it would still be fine. The template
starts at <% and ends at %>.

 

<%%x%%>

 

Sam

 

From: Collin Fagan [mailto:collin.fagan at gmail.com] 
Sent: Monday, April 04, 2011 9:29 PM
To: Sam Harwell
Cc: Terence Parr; stringtemplate-interest List
Subject: Re: [stringtemplate-interest] "".."" won't work

 

I have no problem with <%...%> but that eliminates one character available
as a valid delimiters right?

I can't set the starting and ending delimiters to '%' and have %%...%% can
I?

Collin

On Mon, Apr 4, 2011 at 8:39 PM, Sam Harwell <sharwell at pixelminegames.com>
wrote:

If you want to emit the literal %> in the output, you can write it as %\>,
using the existing escape sequence without breaking anything.


Sam

-----Original Message-----
From: stringtemplate-interest-bounces at antlr.org
[mailto:stringtemplate-interest-bounces at antlr.org] On Behalf Of Terence Parr

Sent: Monday, April 04, 2011 8:07 PM
To: stringtemplate-interest List

Subject: Re: [stringtemplate-interest] "".."" won't work


On Apr 4, 2011, at 6:05 PM, Sam Harwell wrote:

> I guess with <%..%>, the escape character is still \>?
>
> This should work fine.

Well, shouldn't need any escape really...should be \%?
Ter
_______________________________________________
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

 

 

_______________________________________________
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

 

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


More information about the stringtemplate-interest mailing list