top | up | prev | next

RValueRefNode Class

Definition at line 44 of TypeExpr.hpp

Constructors

RValueRefNode(const Span& span_)
RValueRefNode(const Span& span_, 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

RValueRefNode Constructor

sngcm::ast::RValueRefNode::RValueRefNode(const Span& span_)

Definition at line 87 of TypeExpr.cpp :
 87 : Node(NodeType::rvalueRefNodespan_)
 88 {
 89 }


Declaration at line 47 of TypeExpr.hpp


RValueRefNode Constructor

sngcm::ast::RValueRefNode::RValueRefNode(const Span& span_, Node * subject_)

Definition at line 91 of TypeExpr.cpp :
 91 : Node(NodeType::rvalueRefNodespan_)subject(subject_)
 92 {
 93     subject->SetParent(this);
 94 }


Declaration at line 48 of TypeExpr.hpp


Member Function Details

Accept Member Function

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

Definition at line 101 of TypeExpr.cpp :
102 {
103     visitor.Visit(*this);
104 }


Declaration at line 50 of TypeExpr.hpp

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

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


Clone Member Function

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

Definition at line 96 of TypeExpr.cpp :
 97 {
 98     return new RValueRefNode(GetSpan()subject->Clone(cloneContext));
 99 }


Declaration at line 49 of TypeExpr.hpp

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

Calls: sngcm::ast::Node::GetSpan , sngcm::ast::RValueRefNode::Clone

Called by: sngcm::ast::RValueRefNode::Clone


Read Member Function

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

Definition at line 112 of TypeExpr.cpp :
113 {
114     Node::Read(reader);
115     subject.reset(reader.ReadNode());
116     subject->SetParent(this);
117 }


Declaration at line 52 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::RValueRefNode::Subject() const

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


Subject Member Function

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

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

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


ToString Member Function

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

Definition at line 119 of TypeExpr.cpp :
120 {
121     return subject->ToString() + "&&";
122 }


Declaration at line 53 of TypeExpr.hpp

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

Calls: sngcm::ast::RValueRefNode::ToString

Called by: sngcm::ast::RValueRefNode::ToString


Write Member Function

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

Definition at line 106 of TypeExpr.cpp :
107 {
108     Node::Write(writer);
109     writer.Write(subject.get());
110 }


Declaration at line 51 of TypeExpr.hpp

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

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


top | up | prev | next