Next: Paren List Symbols, Previous: Brace List Symbols, Up: Syntactic Symbols [Index]
External language definition blocks also have their own syntactic symbols. In this example:
1: extern "C"
2: {
3: int thing_one( int );
4: int thing_two( double );
5: }
line 2 is given the extern-lang-open syntax, while line 5 is given
the extern-lang-close syntax. The analysis for line 3 yields:
((inextern-lang) (topmost-intro 14))
where inextern-lang is a modifier similar in purpose to
inclass.
There are various other top level blocks like extern, and they
are all treated in the same way except that the symbols are named after
the keyword that introduces the block. E.g. C++ namespace blocks get
the three symbols namespace-open, namespace-close and
innamespace. The currently recognized top level blocks are:
extern-lang-open, extern-lang-close, inextern-langextern blocks in C and C++.40
namespace-open, namespace-close, innamespacenamespace blocks in C++.
module-open, module-close, inmodulemodule blocks in CORBA IDL.
composition-open, composition-close, incompositioncomposition blocks in CORBA CIDL.
These should logically be
named extern-open, extern-close and inextern, but
that isn’t the case for historical reasons.