[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] #\@ starting an identifiers

On Fri, Oct 11, 2013 at 1:47 AM, John Cowan <cowan@x> wrote:
Michael Montague scripsit:

> The lexical rules given in 7.1.1 do not allow #\@ as the initial
> character of an identifier.  One of the quasiquote examples and the note
> above, assume that identifiers can start with #\@.
> I assume that the lexical rules are correct and #\@ is not allowed as an
> initial character of an identifier.

It is not allowed in the standard language.  However, it is a legitimate
implementation extension to the lexical syntax, in which case the note
in 4.2.8 applies.

Actually, this was ticket #12 in the second ballot, which
sides with the prose in section 2.1:

  An identifier is any sequence of letters, digits, and "extended
  identifier characters" provided that it does not have a prefix
  which is a valid number.

The formal syntax was updated partially to allow identifiers
beginning with - or +, but <special initial> was not updated
to include additional ASCII characters.  I believe @ is the
only character missing from that list.

@ in particular is important because it makes the SSAX
syntax retroactively valid.


Scheme-reports mailing list