top | up | prev | next

ScopedValue Class

Definition at line 37 of Evaluator.cpp

Constructors

ScopedValue(const Span& span_, const boost::uuids::uuid& moduleId_, ContainerSymbol* containerSymbol_)

Member Functions

Value* As(TypeSymbol* targetType, bool cast, const Span& span, const boost::uuids::uuid& moduleId, bool dontThrow) const override
Value* Clone() const override
const ContainerSymbol* GetContainerSymbol() const
ContainerSymbol* GetContainerSymbol()
Value* GetSubject() override
TypeSymbol* GetType(SymbolTable* symbolTable) override
void* IrValue(Emitter& emitter) override
bool IsComplete() const override
bool IsScopedValue() const override
void Read(BinaryReader& reader) override
void SetSubject(Value* subject_)
void SetType(TypeSymbol* type_) override
void Write(BinaryWriter& writer) override

Member Variables

ContainerSymbol* containerSymbol
std::unique_ptr<Value> subject
TypeSymbol* type

Constructor Details

ScopedValue Constructor

cmajor::binder::ScopedValue::ScopedValue(const Span& span_, const boost::uuids::uuid& moduleId_, ContainerSymbol* containerSymbol_)

Definition at line 60 of Evaluator.cpp :
  60 :
  61 Value(span_moduleId_ValueType::none)containerSymbol(containerSymbol_)type(nullptr)
  62 {
  63 }


Declaration at line 40 of Evaluator.cpp


Member Function Details

As Member Function

Value* cmajor::binder::ScopedValue::As(TypeSymbol* targetType, bool cast, const Span& span, const boost::uuids::uuid& moduleId, bool dontThrow) const override

Definition at line 48 of Evaluator.cpp :
  48 { Assert(false"scoped value cannot be converted"); return nullptr; }


Clone Member Function

Value* cmajor::binder::ScopedValue::Clone() const override

Definition at line 45 of Evaluator.cpp :
  45 { Assert(false"scoped value cannot be cloned"); return nullptr; }


GetContainerSymbol Member Function

const ContainerSymbol* cmajor::binder::ScopedValue::GetContainerSymbol() const

Definition at line 43 of Evaluator.cpp :
  43 { return containerSymbol; }


GetContainerSymbol Member Function

ContainerSymbol* cmajor::binder::ScopedValue::GetContainerSymbol()

Definition at line 44 of Evaluator.cpp :
  44 { return containerSymbol; }

Called by: cmajor::binder::Evaluator::Visit


GetSubject Member Function

Value* cmajor::binder::ScopedValue::GetSubject() override

Definition at line 52 of Evaluator.cpp :
  52 { return subject.get(); }

Called by: cmajor::binder::Evaluator::Visit


GetType Member Function

TypeSymbol* cmajor::binder::ScopedValue::GetType(SymbolTable* symbolTable) override

Definition at line 50 of Evaluator.cpp :
  50 { return type; }

Called by: cmajor::binder::Evaluator::Visit


IrValue Member Function

void * cmajor::binder::ScopedValue::IrValue(Emitter& emitter) override

Definition at line 49 of Evaluator.cpp :
  49 { Assert(false"scoped value does not have ir value"); return nullptr; }


IsComplete Member Function

bool cmajor::binder::ScopedValue::IsComplete() const override

Definition at line 41 of Evaluator.cpp :
  41 { return false; }


IsScopedValue Member Function

bool cmajor::binder::ScopedValue::IsScopedValue() const override

Definition at line 42 of Evaluator.cpp :
  42 { return true; }


Read Member Function

void cmajor::binder::ScopedValue::Read(BinaryReader& reader) override

Definition at line 47 of Evaluator.cpp :
  47 {}


SetSubject Member Function

void cmajor::binder::ScopedValue::SetSubject(Value* subject_)

Definition at line 53 of Evaluator.cpp :
  53 { subject.reset(subject_); }

Called by: cmajor::binder::Evaluator::Visit


SetType Member Function

void cmajor::binder::ScopedValue::SetType(TypeSymbol* type_) override

Definition at line 51 of Evaluator.cpp :
  51 { type = type_; }

Called by: cmajor::binder::Evaluator::Visit


Write Member Function

void cmajor::binder::ScopedValue::Write(BinaryWriter& writer) override

Definition at line 46 of Evaluator.cpp :
  46 {}


top | up | prev | next