The Psyche Project
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
psy::C::Symbol Class Referenceabstract

The Symbol class. More...

#include <Symbol.h>

Inheritance diagram for psy::C::Symbol:
psy::C::Declaration psy::C::Program psy::C::TranslationUnit psy::C::Function psy::C::ObjectDeclaration psy::C::TypeDeclaration psy::C::Enumerator psy::C::Field psy::C::Parameter psy::C::Variable psy::C::TagTypeDeclaration psy::C::Typedef psy::C::Enum psy::C::Struct psy::C::Union

Public Member Functions

SymbolKind kind () const
 
virtual Program * asProgram ()
 
virtual const Program * asProgram () const
 
virtual TranslationUnit * asTranslationUnit ()
 
virtual const TranslationUnit * asTranslationUnit () const
 
virtual Declaration * asDeclaration ()
 
virtual const Declaration * asDeclaration () const
 
const Symbol * containingSymbol () const
 
virtual std::string toDisplayString () const =0
 

Protected Member Functions

 Symbol (SymbolImpl *p)
 
 Symbol (const Symbol &)=delete
 
Symbol & operator= (const Symbol &)=delete
 

Protected Attributes

std::unique_ptr< SymbolImpl > impl_
 

Detailed Description

The Symbol class.

Note
This API is inspired by that of Microsoft.CodeAnalysis.ISymbol from Roslyn, the .NET Compiler Platform.

Member Function Documentation

◆ containingSymbol()

const Symbol * Symbol::containingSymbol ( ) const

The Symbol that contains this Symbol.

◆ kind()

SymbolKind Symbol::kind ( ) const

The SymbolKind of this Symbol.

◆ toDisplayString()

virtual std::string psy::C::Symbol::toDisplayString ( ) const
pure virtual

The documentation for this class was generated from the following files: