The Psyche Project
Classes | Public Member Functions | Protected Member Functions | List of all members
psy::C::ObjectDeclaration Class Reference

The ObjectDeclaration class. More...

#include <Declaration_Object.h>

Inheritance diagram for psy::C::ObjectDeclaration:
psy::C::Declaration psy::C::MIXIN_NameableSymbol psy::C::MIXIN_TypeableSymbol psy::C::Symbol psy::C::Enumerator psy::C::Field psy::C::Parameter psy::C::Variable

Classes

struct  ObjectDeclarationImpl
 

Public Member Functions

virtual const Identifier * identifier () const override
 
const Identifier * name () const
 
const Type * type () const
 
virtual ObjectDeclaration * asObjectDeclaration () override
 
virtual const ObjectDeclaration * asObjectDeclaration () const override
 
ObjectDeclarationKind kind () const
 
virtual Enumerator * asEnumerator ()
 
virtual const Enumerator * asEnumerator () const
 
virtual Field * asField ()
 
virtual const Field * asField () const
 
virtual Variable * asVariable ()
 
virtual const Variable * asVariable () const
 
virtual Parameter * asParameter ()
 
virtual const Parameter * asParameter () const
 
- Public Member Functions inherited from psy::C::Declaration
DeclarationKind kind () const
 
const Scope * enclosingScope () const
 
const NameSpace nameSpace () const
 
std::vector< SyntaxReference > declaringSyntaxReferences () const
 
Location location () const
 
virtual Declaration * asDeclaration () override
 
virtual const Declaration * asDeclaration () const override
 
virtual Function * asFunction ()
 
virtual const Function * asFunction () const
 
virtual TypeDeclaration * asTypeDeclaration ()
 
virtual const TypeDeclaration * asTypeDeclaration () const
 
- Public Member Functions inherited from psy::C::Symbol
SymbolKind kind () const
 
virtual Program * asProgram ()
 
virtual const Program * asProgram () const
 
virtual TranslationUnit * asTranslationUnit ()
 
virtual const TranslationUnit * asTranslationUnit () const
 
const Symbol * containingSymbol () const
 
virtual std::string toDisplayString () const =0
 

Protected Member Functions

ObjectDeclarationImpl * CAST () const
 
 ObjectDeclaration (const SyntaxTree *tree, const Symbol *containingSym, const Scope *enclosingScope, ObjectDeclarationKind objDeclK)
 
- Protected Member Functions inherited from psy::C::Declaration
 Declaration (SymbolImpl *p, DeclarationKind declK)
 
 Declaration (const Declaration &)=delete
 
Declaration & operator= (const Declaration &)=delete
 
- Protected Member Functions inherited from psy::C::Symbol
 Symbol (SymbolImpl *p)
 
 Symbol (const Symbol &)=delete
 
Symbol & operator= (const Symbol &)=delete
 

Additional Inherited Members

- Protected Attributes inherited from psy::C::Symbol
std::unique_ptr< SymbolImpl > impl_
 

Detailed Description

The ObjectDeclaration class.

Member Function Documentation

◆ asEnumerator() [1/2]

virtual Enumerator* psy::C::ObjectDeclaration::asEnumerator ( )
inlinevirtual

Cast this ObjectDeclaration.

Reimplemented in psy::C::Enumerator.

◆ asEnumerator() [2/2]

virtual const Enumerator* psy::C::ObjectDeclaration::asEnumerator ( ) const
inlinevirtual

Cast this Symbol as a ObjectDeclaration.

Reimplemented in psy::C::Enumerator.

◆ asField() [1/2]

virtual Field* psy::C::ObjectDeclaration::asField ( )
inlinevirtual

Cast this Symbol as a ObjectDeclaration.

Reimplemented in psy::C::Field.

◆ asField() [2/2]

virtual const Field* psy::C::ObjectDeclaration::asField ( ) const
inlinevirtual

Cast this Symbol as a ObjectDeclaration.

Reimplemented in psy::C::Field.

◆ asObjectDeclaration() [1/2]

virtual const ObjectDeclaration* psy::C::ObjectDeclaration::asObjectDeclaration ( ) const
inlineoverridevirtual

Cast this Symbol as a ObjectDeclaration.

Reimplemented from psy::C::Declaration.

◆ asObjectDeclaration() [2/2]

virtual ObjectDeclaration* psy::C::ObjectDeclaration::asObjectDeclaration ( )
inlineoverridevirtual

Cast this Symbol as a ObjectDeclaration.

Reimplemented from psy::C::Declaration.

◆ asParameter() [1/2]

virtual Parameter* psy::C::ObjectDeclaration::asParameter ( )
inlinevirtual

Cast this Symbol as a ObjectDeclaration.

Reimplemented in psy::C::Parameter.

◆ asParameter() [2/2]

virtual const Parameter* psy::C::ObjectDeclaration::asParameter ( ) const
inlinevirtual

Cast this Symbol as a ObjectDeclaration.

Reimplemented in psy::C::Parameter.

◆ asVariable() [1/2]

virtual Variable* psy::C::ObjectDeclaration::asVariable ( )
inlinevirtual

Cast this Symbol as a ObjectDeclaration.

Reimplemented in psy::C::Variable.

◆ asVariable() [2/2]

virtual const Variable* psy::C::ObjectDeclaration::asVariable ( ) const
inlinevirtual

Cast this Symbol as a ObjectDeclaration.

Reimplemented in psy::C::Variable.

◆ identifier()

virtual const Identifier* psy::C::ObjectDeclaration::identifier ( ) const
inlineoverridevirtual

The Identifier with which this Declaration is declared.

Implements psy::C::Declaration.

◆ kind()

ObjectDeclarationKind ObjectDeclaration::kind ( ) const

The ObjectDeclarationKind of this ObjectDeclaration.

◆ name()

const Identifier * ObjectDeclaration::name ( ) const

The Identifier that names this ObjectDeclaration.

◆ type()

const Type * ObjectDeclaration::type ( ) const

The Type of this value.


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