top | up | prev | next

ConceptNode Class

Definition at line 315 of Concept.hpp

Constructors

ConceptNode(NodeType nodeType_, const Span& span_)
ConceptNode(NodeType nodeType_, const Span& span_, Specifiers specifiers_, IdentifierNode* id_)
ConceptNode(const Span& span_)
ConceptNode(const Span& span_, Specifiers specifiers_, IdentifierNode* id_)

Member Functions

void Accept(Visitor& visitor) override
void AddAxiom(AxiomNode* axiom_)
void AddConstraint(ConstraintNode* constraint)
void AddTypeParameter(IdentifierNode* typeParameter)
int Arity() const
const NodeList<AxiomNode>& Axioms() const
const Span& BeginBraceSpan() const
Node* Clone(CloneContext& cloneContext) const override
const NodeList<ConstraintNode>& Constraints() const
const Span& EndBraceSpan() const
Specifiers GetSpecifiers() const override
const IdentifierNode* Id() const
IdentifierNode* Id()
bool IsCommonConceptNode() const virtual
bool IsConceptNode() const override
void Read(AstReader& reader) override
ConceptIdNode* Refinement()
void SetBeginBraceSpan(const Span& beginBraceSpan_)
void SetEndBraceSpan(const Span& endBraceSpan_)
void SetRefinement(ConceptIdNode* refinement_)
const NodeList<IdentifierNode>& TypeParameters() const
void Write(AstWriter& writer) override

Member Variables

NodeList<AxiomNode> axioms
Span beginBraceSpan
NodeList<ConstraintNode> constraints
Span endBraceSpan
std::unique_ptr<IdentifierNode> id
std::unique_ptr<ConceptIdNode> refinement
Specifiers specifiers
NodeList<IdentifierNode> typeParameters

Constructor Details

ConceptNode Constructor

sngcm::ast::ConceptNode::ConceptNode(NodeType nodeType_, const Span& span_)

Definition at line 794 of Concept.cpp :
 794 : Node(nodeType_span_)specifiers(Specifiers::none)id()typeParameters()refinement()constraints()axioms()
 795 {
 796 }


Declaration at line 319 of Concept.hpp


ConceptNode Constructor

sngcm::ast::ConceptNode::ConceptNode(NodeType nodeType_, const Span& span_, Specifiers specifiers_, IdentifierNode * id_)

Definition at line 804 of Concept.cpp :
 804 :
 805 Node(nodeType_span_)specifiers(specifiers_)id(id_)typeParameters()refinement()constraints()axioms()
 806 {
 807     id->SetParent(this);
 808 }


Declaration at line 321 of Concept.hpp


ConceptNode Constructor

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

Definition at line 790 of Concept.cpp :
 790 : Node(NodeType::conceptNodespan_)specifiers(Specifiers::none)id()typeParameters()refinement()constraints()axioms()
 791 {
 792 }


Declaration at line 318 of Concept.hpp


ConceptNode Constructor

sngcm::ast::ConceptNode::ConceptNode(const Span& span_, Specifiers specifiers_, IdentifierNode * id_)

Definition at line 798 of Concept.cpp :
 798 :
 799 Node(NodeType::conceptNodespan_)specifiers(specifiers_)id(id_)typeParameters()refinement()constraints()axioms()
 800 {
 801     id->SetParent(this);
 802 }


Declaration at line 320 of Concept.hpp


Member Function Details

Accept Member Function

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

Definition at line 837 of Concept.cpp :
 838 {
 839     visitor.Visit(*this);
 840 }


Declaration at line 323 of Concept.hpp

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

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


AddAxiom Member Function

void sngcm::ast::ConceptNode::AddAxiom(AxiomNode * axiom_)

Definition at line 900 of Concept.cpp :
 901 {
 902     axiom_->SetParent(this);
 903     axioms.Add(axiom_);
 904 }


Declaration at line 337 of Concept.hpp

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

Called by: sngcm::ast::ConceptNode::Clone


AddConstraint Member Function

void sngcm::ast::ConceptNode::AddConstraint(ConstraintNode * constraint)

Definition at line 894 of Concept.cpp :
 895 {
 896     constraint->SetParent(this);
 897     constraints.Add(constraint);
 898 }


Declaration at line 335 of Concept.hpp

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

Called by: sngcm::ast::ConceptNode::Clone


AddTypeParameter Member Function

void sngcm::ast::ConceptNode::AddTypeParameter(IdentifierNode * typeParameter)

Definition at line 882 of Concept.cpp :
 883 {
 884     typeParameter->SetParent(this);
 885     typeParameters.Add(typeParameter);
 886 }


Declaration at line 332 of Concept.hpp

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

Called by: sngcm::ast::ConceptNode::Clone


Arity Member Function

int sngcm::ast::ConceptNode::Arity() const

Definition at line 330 of Concept.hpp :
330 { return typeParameters.Count(); }

Calls: sngcm::ast::NodeList::Count


Axioms Member Function

const NodeList <AxiomNode >& sngcm::ast::ConceptNode::Axioms() const

Definition at line 338 of Concept.hpp :
338 { return axioms; }

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


BeginBraceSpan Member Function

const Span& sngcm::ast::ConceptNode::BeginBraceSpan() const

Definition at line 341 of Concept.hpp :
341 { return beginBraceSpan; }


Clone Member Function

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

Definition at line 810 of Concept.cpp
Declaration at line 322 of Concept.hpp

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

Calls: sngcm::ast::ConceptNode::AddAxiom , sngcm::ast::ConceptNode::AddConstraint , sngcm::ast::ConceptNode::AddTypeParameter , sngcm::ast::ConceptNode::Clone , sngcm::ast::ConceptNode::SetBeginBraceSpan , sngcm::ast::ConceptNode::SetEndBraceSpan , sngcm::ast::ConceptNode::SetRefinement , sngcm::ast::Node::GetSpan , sngcm::ast::NodeList::Count

Called by: sngcm::ast::ConceptNode::Clone


Constraints Member Function

const NodeList <ConstraintNode >& sngcm::ast::ConceptNode::Constraints() const

Definition at line 336 of Concept.hpp :
336 { return constraints; }

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


EndBraceSpan Member Function

const Span& sngcm::ast::ConceptNode::EndBraceSpan() const

Definition at line 343 of Concept.hpp :
343 { return endBraceSpan; }


GetSpecifiers Member Function

Specifiers sngcm::ast::ConceptNode::GetSpecifiers() const override

Definition at line 339 of Concept.hpp :
339 { return specifiers; }

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

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


Id Member Function

const IdentifierNode * sngcm::ast::ConceptNode::Id() const

Definition at line 328 of Concept.hpp :
328 { return id.get(); }


Id Member Function

IdentifierNode * sngcm::ast::ConceptNode::Id()

Definition at line 329 of Concept.hpp :
329 { return id.get(); }

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


IsCommonConceptNode Member Function

bool sngcm::ast::ConceptNode::IsCommonConceptNode() const virtual

Definition at line 327 of Concept.hpp :
327 { return false; }

Derived class overrides: sngcm::ast::CommonConceptNode::IsCommonConceptNode


IsConceptNode Member Function

bool sngcm::ast::ConceptNode::IsConceptNode() const override

Definition at line 326 of Concept.hpp :
326 { return true; }

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


Read Member Function

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

Definition at line 860 of Concept.cpp
Declaration at line 325 of Concept.hpp

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

Calls: sngcm::ast::AstReader::GetBinaryReader , sngcm::ast::AstReader::ReadConceptIdNode , sngcm::ast::AstReader::ReadIdentifierNode , sngcm::ast::AstReader::ReadSpan , sngcm::ast::AstReader::ReadSpecifiers , sngcm::ast::Node::Read , sngcm::ast::Node::SetParent , sngcm::ast::NodeList::Read , sngcm::ast::NodeList::SetParent , soulng::util::BinaryReader::ReadBool


Refinement Member Function

ConceptIdNode * sngcm::ast::ConceptNode::Refinement()

Definition at line 334 of Concept.hpp :
334 { return refinement.get(); }

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


SetBeginBraceSpan Member Function

void sngcm::ast::ConceptNode::SetBeginBraceSpan(const Span& beginBraceSpan_)

Definition at line 340 of Concept.hpp :
340 { beginBraceSpan = beginBraceSpan_; }

Called by: sngcm::ast::ConceptNode::Clone


SetEndBraceSpan Member Function

void sngcm::ast::ConceptNode::SetEndBraceSpan(const Span& endBraceSpan_)

Definition at line 342 of Concept.hpp :
342 { endBraceSpan = endBraceSpan_; }

Called by: sngcm::ast::ConceptNode::Clone


SetRefinement Member Function

void sngcm::ast::ConceptNode::SetRefinement(ConceptIdNode * refinement_)

Definition at line 888 of Concept.cpp :
 889 {
 890     refinement.reset(refinement_);
 891     refinement->SetParent(this);
 892 }


Declaration at line 333 of Concept.hpp

Calls: sngcm::ast::Node::SetParent

Called by: sngcm::ast::ConceptNode::Clone


TypeParameters Member Function

const NodeList <IdentifierNode >& sngcm::ast::ConceptNode::TypeParameters() const

Definition at line 331 of Concept.hpp :
331 { return typeParameters; }

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


Write Member Function

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

Definition at line 842 of Concept.cpp
Declaration at line 324 of Concept.hpp

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

Calls: sngcm::ast::AstWriter::GetBinaryWriter , sngcm::ast::AstWriter::Write , sngcm::ast::AstWriter::Write , sngcm::ast::Node::Write , sngcm::ast::NodeList::Write , soulng::util::BinaryWriter::Write


top | up | prev | next