"Geir Magnusson Jr." wrote:
> 
> I just can't seem to think about escape's clearly in the morning.
> 
> #\set and #\\set have the same problem that has plagued people
> implementing escape since the earth cooled... how do I get #\\set in the
> output? and then, how do I implement $\\\set, and then...
> 
> So I am going forward with
> \$foo->$foo
> \\$foo -> \<foo>
> \\\$foo -> \$foo
> 
> because while I really do like $\foo better, because of the symmetry
> with $!foo, we still have to implement $\foo, $\\foo, $\\\foo etc as a
> bind-from-the-left escape, and then Gunnar's obeservation about
> intuitiveness is 100% right, namely it isn't intuitive.  He must have
> assumed that I wasn't an idiot and that I would remember that either way
> we have to support n or n+1 '\' characters if we want to be able to
> produce any desired output.  But I didn't, and I expect he won't make
> _that_ mistake again :)
> 
> So unless there is an even vaguely compelling argument why I shouldn't
> do this (  ("\\")*$ref ) I am going forward with it a little later after
> caffine has kicked in.
> 
> Also, I will repeat what I felt was an important thing from this thread
> :
> 
>  I believe that something is a reference if and only
>  if it has a value in the Context.  Otherwise it is schmoo, with the
> exception of
>  the $!<ref> construct.  This is the way the current parser behaves.
> 
>     THIS MAY BE AN ASSUMPTION ON MY PART THAT IS INCORRECT.
> 
>      The following VTL :
>          $foo
>          $!foo
>          #set $foo = "hi!"
>          $foo
> 
>      outputs:
>          $foo
> 
>          hi!
> 
>  (lets not argue about the blank line.... it is correct according to
>  precise whitespace handling rules)
> 
>  I believe it is correct.  You have the option of saying to the
>  parser with $!foo : "Hey, if this isn't a ref, don't output anything"
> as
>  well as "Hey, it's schmoo!" with $foo not backed by something in the
>  Context.
> 
>  Another way: You can take any content, scatter in your VTL, and if
> there
>  are and $foo type elements in the original material, you don't have to
>  go back and escape them or something so they will appear as they are in
>  the original content.  So adding VTL is an 'active' thing on the
>  designers part, whereas the 'passive' view says that any $foo is a
>  reference.  This is how WM behaves (or they have fixed it...), and I
>  hated it.
> 
> I think this discussion is helpful.  I came into this project with some
> assumptions that all may not share, and I want to make sure that I am
> aligned with the group on this.

I'm quite happy with what's outlined here.  I see no need for $\var
instead of \$var (in this case, symmetry be damned).
-- 

Daniel Rall <[EMAIL PROTECTED]>

Reply via email to