top | up | prev | next

MultiParamConstraintNode Class

Definition at line 130 of Concept.hpp

Constructors

MultiParamConstraintNode(const Span& span_)
MultiParamConstraintNode(const Span& span_, IdentifierNode* conceptId_)

Member Functions

void Accept(Visitor& visitor) override
void AddTypeExpr(Node* typeExpr)
Node* Clone(CloneContext& cloneContext) const override
const IdentifierNode* ConceptId() const
IdentifierNode* ConceptId()
void Read(AstReader& reader) override
std::string ToString() const override
const NodeList<Node>& TypeExprs() const
void Write(AstWriter& writer) override

Member Variables

std::unique_ptr<IdentifierNode> conceptId
NodeList<Node> typeExprs

Constructor Details

MultiParamConstraintNode Constructor

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

Definition at line 259 of Concept.cpp :
 259 : ConstraintNode(NodeType::multiParamConstraintNodespan_)conceptId()typeExprs()
 260 {
 261 }


Declaration at line 133 of Concept.hpp


MultiParamConstraintNode Constructor

sngcm::ast::MultiParamConstraintNode::MultiParamConstraintNode(const Span& span_, IdentifierNode * conceptId_)

Definition at line 263 of Concept.cpp :
 263 : ConstraintNode(NodeType::multiParamConstraintNodespan_)conceptId(conceptId_)typeExprs()
 264 {
 265     conceptId->SetParent(this);
 266 }


Declaration at line 134 of Concept.hpp


Member Function Details

Accept Member Function

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

Definition at line 279 of Concept.cpp :
 280 {
 281     visitor.Visit(*this);
 282 }


Declaration at line 136 of Concept.hpp

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

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


AddTypeExpr Member Function

void sngcm::ast::MultiParamConstraintNode::AddTypeExpr(Node * typeExpr)

Definition at line 300 of Concept.cpp :
 301 {
 302     typeExpr->SetParent(this);
 303     typeExprs.Add(typeExpr);
 304 }


Declaration at line 142 of Concept.hpp

Calls: sngcm::ast::Node::SetParent , sngcm::ast::NodeList::Add

Called by: sngcm::ast::MultiParamConstraintNode::Clone


Clone Member Function

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

Definition at line 268 of Concept.cpp :
 269 {
 270     MultiParamConstraintNode* clone = new MultiParamConstraintNode(GetSpan()static_cast<IdentifierNode*>(conceptId->Clone(cloneContext)));
 271     int n = typeExprs.Count();
 272     for (int i = 0; i < n; ++i)
 273     {
 274         clone->AddTypeExpr(typeExprs[i]->Clone(cloneContext));
 275     }
 276     return clone;
 277 }


Declaration at line 135 of Concept.hpp

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

Calls: sngcm::ast::MultiParamConstraintNode::AddTypeExpr , sngcm::ast::MultiParamConstraintNode::Clone , sngcm::ast::Node::GetSpan , sngcm::ast::NodeList::Count

Called by: sngcm::ast::MultiParamConstraintNode::Clone


ConceptId Member Function

const IdentifierNode * sngcm::ast::MultiParamConstraintNode::ConceptId() const

Definition at line 139 of Concept.hpp :
139 { return conceptId.get(); }


ConceptId Member Function

IdentifierNode * sngcm::ast::MultiParamConstraintNode::ConceptId()

Definition at line 140 of Concept.hpp :
140 { return conceptId.get(); }

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


Read Member Function

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

Definition at line 291 of Concept.cpp :
 292 {
 293     ConstraintNode::Read(reader);
 294     conceptId.reset(reader.ReadIdentifierNode());
 295     conceptId->SetParent(this);
 296     typeExprs.Read(reader);
 297     typeExprs.SetParent(this);
 298 }


Declaration at line 138 of Concept.hpp

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

Calls: sngcm::ast::AstReader::ReadIdentifierNode , sngcm::ast::Node::Read , sngcm::ast::Node::SetParent , sngcm::ast::NodeList::Read , sngcm::ast::NodeList::SetParent


ToString Member Function

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

Definition at line 306 of Concept.cpp
Declaration at line 143 of Concept.hpp

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

Calls: sngcm::ast::MultiParamConstraintNode::ToString , sngcm::ast::NodeList::Count

Called by: sngcm::ast::MultiParamConstraintNode::ToString


TypeExprs Member Function

const NodeList <Node >& sngcm::ast::MultiParamConstraintNode::TypeExprs() const

Definition at line 141 of Concept.hpp :
141 { return typeExprs; }

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


Write Member Function

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

Definition at line 284 of Concept.cpp :
 285 {
 286     ConstraintNode::Write(writer);
 287     writer.Write(conceptId.get());
 288     typeExprs.Write(writer);
 289 }


Declaration at line 137 of Concept.hpp

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

Calls: sngcm::ast::Node::Write , sngcm::ast::NodeList::Write


top | up | prev | next