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.

geir

-- 
Geir Magnusson Jr.                               [EMAIL PROTECTED]
Dakota tribal wisdom: "when you discover you are riding a dead horse,
the best strategy is to dismount."

Reply via email to