[snip]*{"Foo\0Bar\0Baz"}->{var}; or *{"Foo\0Bar\0Baz\0var"};
I think Dan was proposing the first and that's fine. I think the second would be a mistake.
Using a character that won't collide with HLL has a disadvantage in the general case:
1) ALL qualfied names (not some) have to be translated/mangled.
What is the benefit, then, if all HLL compilers have to mangle it anyway?
It be a bit friendlier to make the scope resolution operator something that at least 1 or 2 languages use as their own already; then all the rest still have to mangle.
Benefits:
-Some languages don't have to translate, so they win. -Parrot hackers don't have to write 'Foo\0Bar\0Baz'! -Compiler hackers have enough headaches without worrying about handling strings with embedded null characters.
-Melvin
PS: I still haven't seen Dan say if he has some other neat cheat trick in mind for using \0. I can see that it would be pretty fast for tokenizing Foo\0Bar\0Baz into its components given C strcpy semantics.