namespace Synopsis
class SymbolFactory

SymbolFactory populates a symbol table.

Public Enums Summary:
Language NONE, C99, CXX
references
source code
Public Member functions Summary:
 constructor SymbolFactory(Language = CXX)
references
source code

Create a symbol lookup table for the given language.

references
source code
source code
 void enter_scope(const PTree::ClassSpec*)
source code
 void enter_scope(const PTree::Node*)
source code
source code
source code
 void enter_scope(const PTree::Block*)
source code
 void leave_scope()
references
source code
 void declare(const PTree::Declaration*)
source code
 void declare(const PTree::Typedef*)
source code
 void declare(const PTree::EnumSpec*)
source code

declare the enumeration as a new TYPE as well as all the enumerators as CONST

 void declare(const PTree::NamespaceSpec*)
source code

declare the namespace as a new NAMESPACE

 void declare(const PTree::ClassSpec*)
source code

declare the class as a new TYPE

 void declare(const PTree::TemplateDecl*)
source code
 void declare(const PTree::TypeParameter*)
source code
source code
source code
source code
Private Typedefs Summary:
references
source code
Private Member functions Summary:
source code

Lookup the scope of a qualified name.

Private Data members Summary:
references
source code
references
source code
references
source code

When parsing a function definition the declarator is seen first, and thus a prototype is created to hold the parameters.

references
source code

When parsing a class or function template the template-parameter-list is seen first.

Enumerators Summary:
Public Member functions Details:
 constructor SymbolFactory(Language = CXX)
references
source code

Create a symbol lookup table for the given language. Right now only CXX is supported.

 void declare(const PTree::EnumSpec*)
source code

declare the enumeration as a new TYPE as well as all the enumerators as CONST

 void declare(const PTree::NamespaceSpec*)
source code

declare the namespace as a new NAMESPACE

 void declare(const PTree::ClassSpec*)
source code

declare the class as a new TYPE

Private Member functions Details:
source code

Lookup the scope of a qualified name. The encoded name is modified in place to refer to the unqualified name.

Private Data members Details:
references
source code

When parsing a function definition the declarator is seen first, and thus a prototype is created to hold the parameters. Later, when the function definition proper is seen, the symbols are transfered and the prototype is deleted.

references
source code

When parsing a class or function template the template-parameter-list is seen first. Since ClassSpec and Declarator don't know they are part of a template declaration, we cache it here so it gets consumed when the Class or PrototypeScope are created.