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 ProgramasProgram ()
 
virtual const ProgramasProgram () const
 
virtual TranslationUnitasTranslationUnit ()
 
virtual const TranslationUnitasTranslationUnit () const
 
virtual DeclarationasDeclaration ()
 
virtual const DeclarationasDeclaration () const
 
const SymbolcontainingSymbol () const
 
virtual std::string toDisplayString () const =0
 

Protected Member Functions

 Symbol (SymbolImpl *p)
 
 Symbol (const Symbol &)=delete
 
Symboloperator= (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: