Updated documents

Jim Dehnert dehnert at baalbek.engr.sgi.com
Tue May 9 22:51:56 UTC 2000


> From samuel at indetermi.net  Tue May  9 11:23:47 2000
> 
> dehnert at baalbek.engr.sgi.com (Jim Dehnert) writes:
> 
>   Jim> Please take a good look at the once-again-modified nested name
>   Jim> grammar 
> 
> I'm having a hard time wrapping my brain around this one.  For one
> thing, there's no way for a <compound-name> to start with a namespace's
> <source-name>, I think.  Either one of these productions
> 
>     <compound-name> ::= <component-name>
>     <unqualified-name> ::= <namespace source-name>
>
> is required.

Yes.  I added the first.

> However, can we dispense with some more of C++ syntax and simplify
> this?  For instance, these rules I think generate the manglings we
> want (though they also produce more illegal syntax, like two sets of
> template args in a row):
> 
>     <nested-name>     ::= N [<CV-qualifiers>] <scoped-name> E
> 
>     <scoped-name>     ::= <substitution>
> 		      ::= <scope-component>
> 		      ::= <scoped-name> <scope-component>
> 		      ::= <scoped-name> <template-args>
> 
>     <scope-component> ::= <source-name>
> 		      ::= <operator-name>
> 		      ::= <special-name>
> 		      ::= <builtin-type>
> 		      ::= <function-type>
> 		      ::= <array-type>
> 		      ::= <pointer-to-member-type>
> 
> Thoughts?

Well, there's a tradeoff here.  Certainly the simpler grammar is easier
to understand, _until_ the reader starts to worry that he's not
understanding all the cases that need to be dealt with.  My inclination
is to stick with the more precise grammar if we can keep it reasonable,
in the belief that this will yield fewer concerned questions.

Jim

-	    Jim Dehnert		dehnert at sgi.com
				(650)933-4272




More information about the cxx-abi-dev mailing list