Boost logo

Boost Users :

From: Daryle Walker (darylew_at_[hidden])
Date: 2005-11-20 19:27:22


On 11/18/05 3:11 PM, "Hartmut Kaiser" <hartmut.kaiser_at_[hidden]> wrote:

> 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

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net