top | up | prev | next

LValueRefNode Class

Definition at line 28 of TypeExpr.hpp

Constructors

LValueRefNode(const Span& span_, const boost::uuids::uuid& moduleId_)
LValueRefNode(const Span& span_, const boost::uuids::uuid& moduleId_, Node* subject_)

Member Functions

void Accept(Visitor& visitor) override
Node* Clone(CloneContext& cloneContext) const override
void Read(AstReader& reader) override
const Node* Subject() const
Node* Subject()
std::string ToString() const override
void Write(AstWriter& writer) override

Member Variables

std::unique_ptr<Node> subject

Constructor Details

LValueRefNode Constructor

sngcm::ast::LValueRefNode::LValueRefNode(const Span& span_, const boost::uuids::uuid& moduleId_)

Definition at line 51 of TypeExpr.cpp :
 51 : Node(NodeType::lvalueRefNodespan_moduleId_)
 52 {
 53 }


Declaration at line 31 of TypeExpr.hpp


LValueRefNode Constructor

sngcm::ast::LValueRefNode::LValueRefNode(const Span& span_, const boost::uuids::uuid& moduleId_, Node * subject_)

Definition at line 55 of TypeExpr.cpp :
 55 :
 56 Node(NodeType::lvalueRefNodespan_moduleId_)subject(subject_)
 57 {
 58     subject->SetParent(this);
 59 }


Declaration at line 32 of TypeExpr.hpp


Member Function Details

Accept Member Function

void sngcm::ast::LValueRefNode::Accept(Visitor & visitor) override

Definition at line 67 of TypeExpr.cpp :
 68 {
 69     visitor.Visit(*this);
 70 }


Declaration at line 34 of TypeExpr.hpp

Base class overridden functions: sngcm::ast::Node::Accept

Calls: sngcm::ast::Visitor::Visit


Clone Member Function

Node * sngcm::ast::LValueRefNode::Clone(CloneContext & cloneContext) const override

Definition at line 61 of TypeExpr.cpp :
 62 {
 63     LValueRefNode* clone = new LValueRefNode(GetSpan()ModuleId()subject->Clone(cloneContext));
 64     return clone;
 65 }


Declaration at line 33 of TypeExpr.hpp

Base class overridden functions: sngcm::ast::Node::Clone

Calls: sngcm::ast::LValueRefNode::Clone , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId

Called by: sngcm::ast::LValueRefNode::Clone


Read Member Function

void sngcm::ast::LValueRefNode::Read(AstReader & reader) override

Definition at line 78 of TypeExpr.cpp :
 79 {
 80     Node::Read(reader);
 81     subject.reset(reader.ReadNode());
 82     subject->SetParent(this);
 83 }


Declaration at line 36 of TypeExpr.hpp

Base class overridden functions: sngcm::ast::Node::Read

Calls: sngcm::ast::AstReader::ReadNode , sngcm::ast::Node::Read , sngcm::ast::Node::SetParent


Subject Member Function

const Node * sngcm::ast::LValueRefNode::Subject() const

Definition at line 38 of TypeExpr.hpp :
38 { return subject.get(); }


Subject Member Function

Node * sngcm::ast::LValueRefNode::Subject()

Definition at line 39 of TypeExpr.hpp :
39 { return subject.get(); }

Called by: sngcm::ast::SourceWriter::Visit


ToString Member Function

std::string sngcm::ast::LValueRefNode::ToString() const override

Definition at line 85 of TypeExpr.cpp :
 86 {
 87     return subject->ToString() + "&";
 88 }


Declaration at line 37 of TypeExpr.hpp

Base class overridden functions: sngcm::ast::Node::ToString

Calls: sngcm::ast::LValueRefNode::ToString

Called by: sngcm::ast::LValueRefNode::ToString


Write Member Function

void sngcm::ast::LValueRefNode::Write(AstWriter & writer) override

Definition at line 72 of TypeExpr.cpp :
 73 {
 74     Node::Write(writer);
 75     writer.Write(subject.get());
 76 }


Declaration at line 35 of TypeExpr.hpp

Base class overridden functions: sngcm::ast::Node::Write

Calls: sngcm::ast::Node::Write


top | up | prev | next