top | up | prev | next

MultiParamConstraintNode Class

Definition at line 130 of Concept.hpp

Constructors

MultiParamConstraintNode(const Span& span_, const boost::uuids::uuid& moduleId_)
MultiParamConstraintNode(const Span& span_, const boost::uuids::uuid& moduleId_, 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_, const boost::uuids::uuid& moduleId_)

Definition at line 271 of Concept.cpp :
 271 :
 272 ConstraintNode(NodeType::multiParamConstraintNodespan_moduleId_)conceptId()typeExprs()
 273 {
 274 }


Declaration at line 133 of Concept.hpp


MultiParamConstraintNode Constructor

sngcm::ast::MultiParamConstraintNode::MultiParamConstraintNode(const Span& span_, const boost::uuids::uuid& moduleId_, IdentifierNode * conceptId_)

Definition at line 276 of Concept.cpp :
 276 :
 277 ConstraintNode(NodeType::multiParamConstraintNodespan_moduleId_)conceptId(conceptId_)typeExprs()
 278 {
 279     conceptId->SetParent(this);
 280 }


Declaration at line 134 of Concept.hpp


Member Function Details

Accept Member Function

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

Definition at line 293 of Concept.cpp :
 294 {
 295     visitor.Visit(*this);
 296 }


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 314 of Concept.cpp :
 315 {
 316     typeExpr->SetParent(this);
 317     typeExprs.Add(typeExpr);
 318 }


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 282 of Concept.cpp :
 283 {
 284     MultiParamConstraintNode* clone = new MultiParamConstraintNode(GetSpan()ModuleId()static_cast<IdentifierNode*>(conceptId->Clone(cloneContext)));
 285     int n = typeExprs.Count();
 286     for (int i = 0; i < n; ++i)
 287     {
 288         clone->AddTypeExpr(typeExprs[i]->Clone(cloneContext));
 289     }
 290     return clone;
 291 }


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::Node::ModuleId , 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 305 of Concept.cpp :
 306 {
 307     ConstraintNode::Read(reader);
 308     conceptId.reset(reader.ReadIdentifierNode());
 309     conceptId->SetParent(this);
 310     typeExprs.Read(reader);
 311     typeExprs.SetParent(this);
 312 }


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 320 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 298 of Concept.cpp :
 299 {
 300     ConstraintNode::Write(writer);
 301     writer.Write(conceptId.get());
 302     typeExprs.Write(writer);
 303 }


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