"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]>