On 11/18/05 3:11 PM, "Hartmut Kaiser"
Andreas Sæbjørnsen wrote: [SNIP]
I believe the problem lies in that the lexer does not recognize the '$' as a valid character within the name of macro definition.
Accordingly to the Standard the '$' character is _not_ part of the basic source character set (see 2.2.1 [lex.charset]). For this reason it won't get recognized as the part of a identifier.
Nope. Right answer, wrong reason. An identifier does _not_ have to be made solely of basic source characters (look in section 2.10 of the standard). A universal character name can also be part of an identifier. Not all UCNs are allowed in identifiers; the real problem is that the '$' character is _also_ in the excluded set of UCNs. (The list of allowed UCNs is in Annex E of the standard.) [SNIP]
What certainly could be done additionally is to add the '$' character to the valid basic source character set to allow identifiers conatining a '$', but this weakens the Standards conformance of Wave. Any suggestions?
Maybe it can be moved to the valid UCN list instead. This assumes that Wave is currently capable of UCN processing. Either way, you should make this optional, and disabled by default, to allow Standards conformance when needed. Other posts in this thread suggest that everyone out there accepts '$' as an identifier character. Was that intentional? I've never heard of anyone using '$' within an identifier until now. Maybe we should submit bug reports for everyone on their lexers. -- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com