Subject: Re: [PATCH] Add support for binary includes.

From: Scott Wood <[email-masked]>
Date: Fri, 30 May 2008 13:54:59 -0500

David Gibson wrote:
> What I don't like is the combination of the two.  Using the /word/
> form in (1) suggests that each /word/ is a lexically distinct symbol
> with functions in different contexts: consider /dts-v1/, /include/,
> /memreserve/ - they're all used only in their own distinct context.
> Use of /word/s in (2) would suggest that each /word/ is just an
> identifier for a different function, and should all be usable in a
> similar grammtical context - which won't be true of /memreserve/,
> /dts-v1/ and any other truly lexically distinct symbols we need to
> add.

I don't understand this conclusion -- I wouldn't expect to be able to 
use "for" or "while" at file scope of C code, just because I can use 
"struct", "int", or "sizeof" there.  The slashes are simply a way of 
creating reserved words, some of which happen to be function-like.

> So, I like the notion of functions like this, but with identifiers
> that aren't /word/s.  Re-invoking the "least surprise to C
> programmers" principle, in general I think the identifiers should be
> as C identifiers (i.e. [a-zA-Z_][a-zA-Z0-9_]*).

That would make it difficult to have function-like syntax outside of 
properties.

>  With one caveat, it's
> not essential but it might be worthwhile to make built-in function
> identifiers obviously distinct from user-defined ones (if we add those
> in future).

We have a way to make them obviously distinct -- slashes. :-)

-Scott