[antlr-interest] StringTemplate naming question

matthew ford Matthew.Ford at forward.com.au
Tue Jul 13 15:08:03 PDT 2004


Yes that reservered name has always worried me.

In WebStringTempatesV2 I have introduced the concept of root and current
contexts
The root context is referred to by .  (dot)
the current context is referred to by ..  (doubledot)
Although I handle lists without embedded or sub-templates the concept can
still
be applied to StringTemplates

In WebStringTemplatesV2 instead of
> $names:{<b>$attr$</b>}$
where names is a list, you would say
$[list names]  <!-- this sets each item in the names list as the current
context one at a time-->
<b>$[..]</b>
$[endlist]

where the $[..] returns the current context. I.e the
current item of the name list being processed.

Applying this to StringTemplates
> $names:{<b>$attr$</b>}$
would become
> $names:{<b>$..$</b>}$

If names had the structure
firstname, surname
That is names is a list of maps or beans that contain entries for firstname
and surname
then
> $names:{<b>$attr.firstname$ $attr.surname$</b>}$
would become (under this proposal)
> $names:{<b>$firstname$ $surname$</b>}$
because by default attributes are always looked upwithin the current context
$firstname$ is the same as $..firstname$

if you want to lookup an attribute in the root context then you would use
> $names:{$.title$ <b>$firstname$ $surname$</b>}$
where title exists at the top level (the same level as names)
in $.title$   the leading .  (dot) indicates you are accessing the root
context not the
current context.

Applying this to sub-template calls
gives
$names:list()$
where
the list sub-template contains just
${<b>$..$</b>}$
or
${<b>$.$</b>}$

since initially the root and current context are the same within a template
or sub-template

The use of . and .. removes the need for a pre-defined argument name.
matthew
----- Original Message ----- 
From: "Terence Parr" <parrt at cs.usfca.edu>
To: <antlr-interest at yahoogroups.com>
Sent: Wednesday, July 14, 2004 6:15 AM
Subject: [antlr-interest] StringTemplate naming question


> Howdy...for you StringTemplate users...currently I use $attr$ or <attr>
> to refer to the default attribute that iterates over a list.  For
> example,
>
> $names:{<b>$attr$</b>}$
>
> I'm going to change the name as I don't like attr.  How about $it$ (as
> in "it" or "iterator")?  How about $obj$?
>
> Thanks,
> Ter
> --
> CS Professor & Grad Director, University of San Francisco
> Creator, ANTLR Parser Generator, http://www.antlr.org
> Cofounder, http://www.jguru.com
> Cofounder, http://www.knowspam.net enjoy email again!
> Cofounder, http://www.peerscope.com pure link sharing
>
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>
>



 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/antlr-interest/

<*> To unsubscribe from this group, send an email to:
    antlr-interest-unsubscribe at yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



More information about the antlr-interest mailing list