top | up | prev | next

ExpressionBinder Class

Definition at line 37 of ExpressionBinder.cpp

Constructors

ExpressionBinder(const Span& span_, const boost::uuids::uuid& moduleId_, BoundCompileUnit& boundCompileUnit_, BoundFunction* boundFunction_, ContainerScope* containerScope_, StatementBinder* statementBinder_, bool lvalue_)

Member Functions

void BindArrow(Node& node, const std::u32string& name)
void BindBinaryOp(BinaryNode& binaryNode, const std::u32string& groupName)
void BindBinaryOp(BoundExpression* left, BoundExpression* right, Node& node, const std::u32string& groupName)
void BindDerefExpr(Node& node)
void BindSymbol(Symbol* symbol, IdentifierNode* idNode)
void BindUnaryOp(BoundExpression* operand, Node& node, const std::u32string& groupName)
void BindUnaryOp(UnaryNode& unaryNode, const std::u32string& groupName)
std::unique_ptr<BoundExpression> GetExpression()
void Visit(AddNode& addNode) override
void Visit(AddrOfNode& addrOfNode) override
void Visit(ArrowNode& arrowNode) override
void Visit(AsNode& asNode) override
void Visit(BaseNode& baseNode) override
void Visit(BitAndNode& bitAndNode) override
void Visit(BitOrNode& bitOrNode) override
void Visit(BitXorNode& bitXorNode) override
void Visit(BoolNode& boolNode) override
void Visit(BooleanLiteralNode& booleanLiteralNode) override
void Visit(ByteLiteralNode& byteLiteralNode) override
void Visit(ByteNode& byteNode) override
void Visit(CastNode& castNode) override
void Visit(CharLiteralNode& charLiteralNode) override
void Visit(CharNode& charNode) override
void Visit(ComplementNode& complementNode) override
void Visit(ConjunctionNode& conjunctionNode) override
void Visit(ConstructNode& constructNode) override
void Visit(DerefNode& derefNode) override
void Visit(DisjunctionNode& disjunctionNode) override
void Visit(DivNode& divNode) override
void Visit(DotNode& dotNode) override
void Visit(DoubleLiteralNode& doubleLiteralNode) override
void Visit(DoubleNode& doubleNode) override
void Visit(EqualNode& equalNode) override
void Visit(FloatLiteralNode& floatLiteralNode) override
void Visit(FloatNode& floatNode) override
void Visit(FunctionPtrNode& functionPtrNode) override
void Visit(GreaterNode& greaterNode) override
void Visit(GreaterOrEqualNode& greaterOrEqualNode) override
void Visit(IdentifierNode& identifierNode) override
void Visit(IndexingNode& indexingNode) override
void Visit(IntLiteralNode& intLiteralNode) override
void Visit(IntNode& intNode) override
void Visit(InvokeNode& invokeNode) override
void Visit(IsNode& isNode) override
void Visit(LessNode& lessNode) override
void Visit(LessOrEqualNode& lessOrEqualNode) override
void Visit(LongLiteralNode& longLiteralNode) override
void Visit(LongNode& longNode) override
void Visit(MulNode& mulNode) override
void Visit(NewNode& newNode) override
void Visit(NotEqualNode& notEqualNode) override
void Visit(NotNode& notNode) override
void Visit(NullLiteralNode& nullLiteralNode) override
void Visit(ParameterNode& parameterNode) override
void Visit(ParenthesizedExpressionNode& parenthesizedExpressionNode) override
void Visit(PostfixDecrementNode& postfixDecrementNode) override
void Visit(PostfixIncrementNode& postfixIncrementNode) override
void Visit(PrefixDecrementNode& prefixDecrementNode) override
void Visit(PrefixIncrementNode& prefixIncrementNode) override
void Visit(RemNode& remNode) override
void Visit(SByteLiteralNode& sbyteLiteralNode) override
void Visit(SByteNode& sbyteNode) override
void Visit(ShiftLeftNode& shiftLeftNode) override
void Visit(ShiftRightNode& shiftRightNode) override
void Visit(ShortLiteralNode& shortLiteralNode) override
void Visit(ShortNode& shortNode) override
void Visit(SizeOfNode& sizeOfNode) override
void Visit(StringLiteralNode& stringLiteralNode) override
void Visit(SubNode& subNode) override
void Visit(TemplateIdNode& templateIdNode) override
void Visit(ThisNode& thisNode) override
void Visit(TypeIdNode& typeIdNode) override
void Visit(TypeNameNode& typeNameNode) override
void Visit(UCharLiteralNode& ucharLiteralNode) override
void Visit(UCharNode& ucharNode) override
void Visit(UIntLiteralNode& uintLiteralNode) override
void Visit(UIntNode& uintNode) override
void Visit(ULongLiteralNode& ulongLiteralNode) override
void Visit(ULongNode& ulongNode) override
void Visit(UShortLiteralNode& ushortLiteralNode) override
void Visit(UShortNode& ushortNode) override
void Visit(UStringLiteralNode& ustringLiteralNode) override
void Visit(UnaryMinusNode& unaryMinusNode) override
void Visit(UnaryPlusNode& unaryPlusNode) override
void Visit(UuidLiteralNode& uuidLiteralNode) override
void Visit(VoidNode& voidNode) override
void Visit(WCharLiteralNode& wcharLiteralNode) override
void Visit(WCharNode& wcharNode) override
void Visit(WStringLiteralNode& wstringLiteralNode) override

Member Variables

BoundCompileUnit& boundCompileUnit
BoundFunction* boundFunction
ContainerScope* containerScope
std::unique_ptr<BoundExpression> expression
bool inhibitCompile
bool lvalue
Module* module
boost::uuids::uuid moduleId
Span span
StatementBinder* statementBinder
SymbolTable& symbolTable

Constructor Details

ExpressionBinder Constructor

cmajor::binder::ExpressionBinder::ExpressionBinder(const Span & span_, const boost::uuids::uuid& moduleId_, BoundCompileUnit & boundCompileUnit_, BoundFunction * boundFunction_, ContainerScope* containerScope_, StatementBinder * statementBinder_, bool lvalue_)

Definition at line 148 of ExpressionBinder.cpp :
 149 :
 150 span(span_)moduleId(moduleId_)boundCompileUnit(boundCompileUnit_)symbolTable(boundCompileUnit.GetSymbolTable())module(&boundCompileUnit.GetModule())
 151 boundFunction(boundFunction_)containerScope(containerScope_)statementBinder(statementBinder_)lvalue(lvalue_)inhibitCompile(false)
 152 {
 153 }


Declaration at line 40 of ExpressionBinder.cpp


Member Function Details

BindArrow Member Function

void cmajor::binder::ExpressionBinder::BindArrow(Node & node, const std::u32string& name)

Definition at line 1200 of ExpressionBinder.cpp
Declaration at line 85 of ExpressionBinder.cpp

Calls: cmajor::binder::BoundCompileUnit::GetConversion , cmajor::binder::BoundFunction::AddTemporaryDestructorCall , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::BoundFunctionCall::AddArgument , cmajor::binder::BoundFunctionCall::Arguments , cmajor::binder::BoundMemberVariable::GetMemberVariableSymbol , cmajor::binder::BoundMemberVariable::SetClassPtr , cmajor::binder::ExpressionBinder::BindArrow , cmajor::binder::ExpressionBinder::BindSymbol , cmajor::binder::ExpressionBinder::BindUnaryOp , cmajor::symbols::FunctionSymbol::CreateTemporary , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::IsStatic , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId

Called by: cmajor::binder::ExpressionBinder::BindArrow , cmajor::binder::ExpressionBinder::Visit


BindBinaryOp Member Function

void cmajor::binder::ExpressionBinder::BindBinaryOp(BinaryNode & binaryNode, const std::u32string& groupName)

Definition at line 222 of ExpressionBinder.cpp :
 223 {
 224     binaryNode.Left()->Accept(*this);
 225     BoundExpression* left = expression.release();
 226     binaryNode.Right()->Accept(*this);
 227     BoundExpression* right = expression.release();
 228     BindBinaryOp(leftrightbinaryNodegroupName);
 229 }


Declaration at line 142 of ExpressionBinder.cpp

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp , sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept

Called by: cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit


BindBinaryOp Member Function

void cmajor::binder::ExpressionBinder::BindBinaryOp(BoundExpression * left, BoundExpression * right, Node & node, const std::u32string& groupName)

Definition at line 231 of ExpressionBinder.cpp
Declaration at line 143 of ExpressionBinder.cpp

Calls: cmajor::binder::BoundExpression::GetType , cmajor::binder::BoundFunction::AddTemporaryDestructorCall , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::symbols::FunctionSymbol::CreateTemporary , cmajor::symbols::Symbol::ClassOrNsScope , cmajor::symbols::TypeSymbol::BaseType , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId

Called by: cmajor::binder::ExpressionBinder::BindBinaryOp , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit


BindDerefExpr Member Function

void cmajor::binder::ExpressionBinder::BindDerefExpr(Node & node)

Definition at line 1550 of ExpressionBinder.cpp
Declaration at line 144 of ExpressionBinder.cpp

Calls: cmajor::binder::ExpressionBinder::BindUnaryOp , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId

Called by: cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit


BindSymbol Member Function

void cmajor::binder::ExpressionBinder::BindSymbol(Symbol* symbol, IdentifierNode * idNode)

Definition at line 293 of ExpressionBinder.cpp
Declaration at line 145 of ExpressionBinder.cpp

Calls: cmajor::binder::BoundCompileUnit::GetCompileUnitNode , cmajor::binder::BoundCompileUnit::GetConversion , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::BoundFunctionGroupExpression::SetClassPtr , cmajor::binder::BoundMemberVariable::SetClassPtr , cmajor::binder::BoundMemberVariable::SetStaticInitNeeded , cmajor::symbols::FunctionSymbol::GetThisParam , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId

Called by: cmajor::binder::ExpressionBinder::BindArrow , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit


BindUnaryOp Member Function

void cmajor::binder::ExpressionBinder::BindUnaryOp(BoundExpression * operand, Node & node, const std::u32string& groupName)

Definition at line 155 of ExpressionBinder.cpp
Declaration at line 128 of ExpressionBinder.cpp

Calls: cmajor::binder::BoundExpression::GetType , cmajor::binder::BoundFunction::AddTemporaryDestructorCall , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::symbols::FunctionSymbol::CreateTemporary , cmajor::symbols::Symbol::ClassOrNsScope , cmajor::symbols::TypeSymbol::BaseType , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId

Called by: cmajor::binder::ExpressionBinder::BindArrow , cmajor::binder::ExpressionBinder::BindDerefExpr , cmajor::binder::ExpressionBinder::BindUnaryOp , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit


BindUnaryOp Member Function

void cmajor::binder::ExpressionBinder::BindUnaryOp(UnaryNode & unaryNode, const std::u32string& groupName)

Definition at line 215 of ExpressionBinder.cpp :
 216 {
 217     unaryNode.Subject()->Accept(*this);
 218     BoundExpression* operand = expression.release();
 219     BindUnaryOp(operandunaryNodegroupName);
 220 }


Declaration at line 141 of ExpressionBinder.cpp

Calls: cmajor::binder::ExpressionBinder::BindUnaryOp , sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject

Called by: cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit


GetExpression Member Function

std::unique_ptr<BoundExpression > cmajor::binder::ExpressionBinder::GetExpression()

Definition at line 42 of ExpressionBinder.cpp :
  42 { return std::move(expression); }


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(AddNode & addNode) override

Definition at line 1432 of ExpressionBinder.cpp :
1433 {
1434     BindBinaryOp(addNodeU"operator+");
1435 }


Declaration at line 99 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(AddrOfNode & addrOfNode) override

Definition at line 1587 of ExpressionBinder.cpp
Declaration at line 110 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::UnaryNode::Subject


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ArrowNode & arrowNode) override

Definition at line 1314 of ExpressionBinder.cpp
Declaration at line 84 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::SetLatestIdentifier , cmajor::binder::ExpressionBinder::BindArrow , cmajor::binder::ExpressionBinder::BindUnaryOp , sngcm::ast::ArrowNode::MemberId , sngcm::ast::IdentifierNode::Str , sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::UnaryNode::Subject


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(AsNode & asNode) override

Definition at line 1673 of ExpressionBinder.cpp
Declaration at line 113 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::symbols::FunctionSymbol::CreateTemporary , sngcm::ast::AsNode::Expr , sngcm::ast::AsNode::TargetTypeExpr , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(BaseNode & baseNode) override

Definition at line 2650 of ExpressionBinder.cpp
Declaration at line 125 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::GetConversion , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::symbols::FunctionSymbol::GetThisParam , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(BitAndNode & bitAndNode) override

Definition at line 1376 of ExpressionBinder.cpp :
1377 {
1378     BindBinaryOp(bitAndNodeU"operator&");
1379 }


Declaration at line 90 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(BitOrNode & bitOrNode) override

Definition at line 1366 of ExpressionBinder.cpp :
1367 {
1368     BindBinaryOp(bitOrNodeU"operator|");
1369 }


Declaration at line 88 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(BitXorNode & bitXorNode) override

Definition at line 1371 of ExpressionBinder.cpp :
1372 {
1373     BindBinaryOp(bitXorNodeU"operator^");
1374 }


Declaration at line 89 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(BoolNode & boolNode) override

Definition at line 620 of ExpressionBinder.cpp :
 621 {
 622     expression.reset(new BoundTypeExpression(boolNode.GetSpan()boolNode.ModuleId()symbolTable.GetTypeByName(U"bool")));
 623 }


Declaration at line 44 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(BooleanLiteralNode & booleanLiteralNode) override

Definition at line 695 of ExpressionBinder.cpp :
 696 {
 697     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new BoolValue(booleanLiteralNode.GetSpan()booleanLiteralNode.ModuleId()booleanLiteralNode.Value()))symbolTable.GetTypeByName(U"bool")));
 698 }


Declaration at line 60 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::BooleanLiteralNode::Value , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ByteLiteralNode & byteLiteralNode) override

Definition at line 705 of ExpressionBinder.cpp :
 706 {
 707     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new ByteValue(byteLiteralNode.GetSpan()byteLiteralNode.ModuleId()byteLiteralNode.Value()))symbolTable.GetTypeByName(U"byte")));
 708 }


Declaration at line 62 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ByteLiteralNode::Value , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ByteNode & byteNode) override

Definition at line 630 of ExpressionBinder.cpp :
 631 {
 632     expression.reset(new BoundTypeExpression(byteNode.GetSpan()byteNode.ModuleId()symbolTable.GetTypeByName(U"byte")));
 633 }


Declaration at line 46 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(CastNode & castNode) override

Definition at line 2450 of ExpressionBinder.cpp
Declaration at line 121 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundFunction::AddTemporaryDestructorCall , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::BoundFunctionCall::AddArgument , cmajor::binder::BoundFunctionCall::Arguments , cmajor::symbols::FunctionSymbol::CreateTemporary , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::SourceModuleId , sngcm::ast::CastNode::SourceExpr , sngcm::ast::CastNode::TargetTypeExpr , sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(CharLiteralNode & charLiteralNode) override

Definition at line 750 of ExpressionBinder.cpp :
 751 {
 752     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new CharValue(charLiteralNode.GetSpan()charLiteralNode.ModuleId()charLiteralNode.Value()))symbolTable.GetTypeByName(U"char")));
 753 }


Declaration at line 71 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::CharLiteralNode::Value , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(CharNode & charNode) override

Definition at line 675 of ExpressionBinder.cpp :
 676 {
 677     expression.reset(new BoundTypeExpression(charNode.GetSpan()charNode.ModuleId()symbolTable.GetTypeByName(U"char")));
 678 }


Declaration at line 55 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ComplementNode & complementNode) override

Definition at line 1609 of ExpressionBinder.cpp :
1610 {
1611     BindUnaryOp(complementNodeU"operator~");
1612 }


Declaration at line 111 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindUnaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ConjunctionNode & conjunctionNode) override

Definition at line 1356 of ExpressionBinder.cpp :
1357 {
1358     std::unique_ptr<BoundExpression> left = BindExpression(conjunctionNode.Left()boundCompileUnitboundFunctioncontainerScopestatementBinder);
1359     std::unique_ptr<BoundExpression> right = BindExpression(conjunctionNode.Right()boundCompileUnitboundFunctioncontainerScopestatementBinder);
1360     BoundConjunction* boundConjunction = new BoundConjunction(conjunctionNode.GetSpan()conjunctionNode.ModuleId()std::move(left)std::move(right)symbolTable.GetTypeByName(U"bool"));
1361     LocalVariableSymbol* temporary = boundFunction->GetFunctionSymbol()->CreateTemporary(symbolTable.GetTypeByName(U"bool")conjunctionNode.GetSpan()conjunctionNode.ModuleId());
1362     boundConjunction->SetTemporary(new BoundLocalVariable(conjunctionNode.GetSpan()conjunctionNode.ModuleId()temporary));
1363     expression.reset(boundConjunction);
1364 }


Declaration at line 87 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundConjunction::SetTemporary , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::symbols::FunctionSymbol::CreateTemporary , sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ConstructNode & constructNode) override

Definition at line 2542 of ExpressionBinder.cpp
Declaration at line 122 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::CastNode::Accept , sngcm::ast::ConstructNode::Arguments , sngcm::ast::ConstructNode::TypeExpr , sngcm::ast::Node::Accept , sngcm::ast::Node::Clone , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::NodeList::Count


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(DerefNode & derefNode) override

Definition at line 1581 of ExpressionBinder.cpp :
1582 {
1583     derefNode.Subject()->Accept(*this);
1584     BindDerefExpr(derefNode);
1585 }


Declaration at line 109 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindDerefExpr , sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(DisjunctionNode & disjunctionNode) override

Definition at line 1346 of ExpressionBinder.cpp :
1347 {
1348     std::unique_ptr<BoundExpression> left = BindExpression(disjunctionNode.Left()boundCompileUnitboundFunctioncontainerScopestatementBinder);
1349     std::unique_ptr<BoundExpression> right = BindExpression(disjunctionNode.Right()boundCompileUnitboundFunctioncontainerScopestatementBinder);
1350     BoundDisjunction* boundDisjunction = new BoundDisjunction(disjunctionNode.GetSpan()disjunctionNode.ModuleId()std::move(left)std::move(right)symbolTable.GetTypeByName(U"bool"));
1351     LocalVariableSymbol* temporary = boundFunction->GetFunctionSymbol()->CreateTemporary(symbolTable.GetTypeByName(U"bool")disjunctionNode.GetSpan()disjunctionNode.ModuleId());
1352     boundDisjunction->SetTemporary(new BoundLocalVariable(disjunctionNode.GetSpan()disjunctionNode.ModuleId()temporary));
1353     expression.reset(boundDisjunction);
1354 }


Declaration at line 86 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundDisjunction::SetTemporary , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::symbols::FunctionSymbol::CreateTemporary , sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(DivNode & divNode) override

Definition at line 1447 of ExpressionBinder.cpp :
1448 {
1449     BindBinaryOp(divNodeU"operator/");
1450 }


Declaration at line 102 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(DotNode & dotNode) override

Definition at line 953 of ExpressionBinder.cpp
Declaration at line 83 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::GetConversion , cmajor::binder::BoundCompileUnit::GetLatestIdentifier , cmajor::binder::BoundCompileUnit::SetLatestIdentifier , cmajor::binder::BoundExpression::GetType , cmajor::binder::BoundFunctionGroupExpression::SetClassPtr , cmajor::binder::BoundFunctionGroupExpression::SetQualifiedScope , cmajor::binder::BoundFunctionGroupExpression::SetScopeQualified , cmajor::binder::BoundMemberVariable::GetMemberVariableSymbol , cmajor::binder::BoundMemberVariable::SetClassPtr , cmajor::binder::BoundNamespaceExpression::Ns , cmajor::binder::BoundNode::GetBoundNodeType , cmajor::binder::ExpressionBinder::BindSymbol , cmajor::symbols::ContainerSymbol::GetContainerScope , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::IsStatic , sngcm::ast::DotNode::MemberId , sngcm::ast::IdentifierNode::Str , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::UnaryNode::Subject


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(DoubleLiteralNode & doubleLiteralNode) override

Definition at line 745 of ExpressionBinder.cpp :
 746 {
 747     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new DoubleValue(doubleLiteralNode.GetSpan()doubleLiteralNode.ModuleId()doubleLiteralNode.Value()))symbolTable.GetTypeByName(U"double")));
 748 }


Declaration at line 70 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::DoubleLiteralNode::Value , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(DoubleNode & doubleNode) override

Definition at line 670 of ExpressionBinder.cpp :
 671 {
 672     expression.reset(new BoundTypeExpression(doubleNode.GetSpan()doubleNode.ModuleId()symbolTable.GetTypeByName(U"double")));
 673 }


Declaration at line 54 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(EqualNode & equalNode) override

Definition at line 1381 of ExpressionBinder.cpp :
1382 {
1383     BindBinaryOp(equalNodeU"operator==");
1384 }


Declaration at line 91 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(FloatLiteralNode & floatLiteralNode) override

Definition at line 740 of ExpressionBinder.cpp :
 741 {
 742     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new FloatValue(floatLiteralNode.GetSpan()floatLiteralNode.ModuleId()floatLiteralNode.Value()))symbolTable.GetTypeByName(U"float")));
 743 }


Declaration at line 69 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::FloatLiteralNode::Value , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(FloatNode & floatNode) override

Definition at line 665 of ExpressionBinder.cpp :
 666 {
 667     expression.reset(new BoundTypeExpression(floatNode.GetSpan()floatNode.ModuleId()symbolTable.GetTypeByName(U"float")));
 668 }


Declaration at line 53 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(FunctionPtrNode & functionPtrNode) override

Definition at line 2699 of ExpressionBinder.cpp :
2700 {
2701     BoundExpression* boundExpression = static_cast<BoundFunctionPtr*>(functionPtrNode.GetBoundExpression());
2702     expression.reset(boundExpression->Clone());
2703 }


Declaration at line 127 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundExpression::Clone , sngcm::ast::FunctionPtrNode::GetBoundExpression


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(GreaterNode & greaterNode) override

Definition at line 1397 of ExpressionBinder.cpp :
1398 {
1399     greaterNode.Left()->Accept(*this);
1400     BoundExpression* left = expression.release();
1401     greaterNode.Right()->Accept(*this);
1402     BoundExpression* right = expression.release();
1403     BindBinaryOp(rightleftgreaterNodeU"operator<");
1404 }


Declaration at line 94 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp , sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(GreaterOrEqualNode & greaterOrEqualNode) override

Definition at line 1416 of ExpressionBinder.cpp :
1417 {
1418     BindBinaryOp(greaterOrEqualNodeU"operator<");
1419     BindUnaryOp(expression.release()greaterOrEqualNodeU"operator!");
1420 }


Declaration at line 96 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp , cmajor::binder::ExpressionBinder::BindUnaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(IdentifierNode & identifierNode) override

Definition at line 795 of ExpressionBinder.cpp
Declaration at line 80 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::FileScopes , cmajor::binder::BoundCompileUnit::SetLatestIdentifier , cmajor::binder::ExpressionBinder::BindSymbol , sngcm::ast::IdentifierNode::Str , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(IndexingNode & indexingNode) override

Definition at line 1734 of ExpressionBinder.cpp
Declaration at line 114 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp , cmajor::binder::ExpressionBinder::BindDerefExpr , sngcm::ast::IndexingNode::Index , sngcm::ast::IndexingNode::Subject , sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(IntLiteralNode & intLiteralNode) override

Definition at line 720 of ExpressionBinder.cpp :
 721 {
 722     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new IntValue(intLiteralNode.GetSpan()intLiteralNode.ModuleId()intLiteralNode.Value()))symbolTable.GetTypeByName(U"int")));
 723 }


Declaration at line 65 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::IntLiteralNode::Value , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(IntNode & intNode) override

Definition at line 645 of ExpressionBinder.cpp :
 646 {
 647     expression.reset(new BoundTypeExpression(intNode.GetSpan()intNode.ModuleId()symbolTable.GetTypeByName(U"int")));
 648 }


Declaration at line 49 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(InvokeNode & invokeNode) override

Definition at line 1769 of ExpressionBinder.cpp
Declaration at line 115 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundClassDelegateCall::AddArgument , cmajor::binder::BoundClassDelegateCall::Arguments , cmajor::binder::BoundCompileUnit::GetConversion , cmajor::binder::BoundCompileUnit::GetLatestIdentifier , cmajor::binder::BoundCompileUnit::SetLatestIdentifier , cmajor::binder::BoundDelegateCall::AddArgument , cmajor::binder::BoundDelegateCall::Arguments , cmajor::binder::BoundExpression::GetType , cmajor::binder::BoundFunction::AddTemporaryDestructorCall , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::BoundFunctionGroupExpression::ClassPtr , cmajor::binder::BoundFunctionGroupExpression::FunctionGroup , cmajor::binder::BoundFunctionGroupExpression::IsScopeQualified , cmajor::binder::BoundFunctionGroupExpression::QualifiedScope , cmajor::binder::BoundFunctionGroupExpression::ReleaseClassPtr , cmajor::binder::BoundFunctionGroupExpression::TemplateArgumentTypes , cmajor::binder::BoundMemberExpression::ClassPtr , cmajor::binder::BoundMemberExpression::Member , cmajor::binder::BoundMemberExpression::ReleaseClassPtr , cmajor::binder::BoundNode::GetBoundNodeType , cmajor::binder::StatementBinder::InsideCatch , cmajor::symbols::FunctionSymbol::CreateTemporary , cmajor::symbols::FunctionSymbol::GetThisParam , cmajor::symbols::Symbol::ClassInterfaceOrNsScope , cmajor::symbols::TypeSymbol::BaseType , sngcm::ast::InvokeNode::Arguments , sngcm::ast::InvokeNode::Subject , sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::NodeList::Count


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(IsNode & isNode) override

Definition at line 1614 of ExpressionBinder.cpp
Declaration at line 112 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::symbols::FunctionSymbol::CreateTemporary , sngcm::ast::IsNode::Expr , sngcm::ast::IsNode::TargetTypeExpr , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(LessNode & lessNode) override

Definition at line 1392 of ExpressionBinder.cpp :
1393 {
1394     BindBinaryOp(lessNodeU"operator<");
1395 }


Declaration at line 93 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(LessOrEqualNode & lessOrEqualNode) override

Definition at line 1406 of ExpressionBinder.cpp :
1407 {
1408     lessOrEqualNode.Left()->Accept(*this);
1409     BoundExpression* left = expression.release();
1410     lessOrEqualNode.Right()->Accept(*this);
1411     BoundExpression* right = expression.release();
1412     BindBinaryOp(rightleftlessOrEqualNodeU"operator<");
1413     BindUnaryOp(expression.release()lessOrEqualNodeU"operator!");
1414 }


Declaration at line 95 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp , cmajor::binder::ExpressionBinder::BindUnaryOp , sngcm::ast::BinaryNode::Left , sngcm::ast::BinaryNode::Right , sngcm::ast::Node::Accept


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(LongLiteralNode & longLiteralNode) override

Definition at line 730 of ExpressionBinder.cpp :
 731 {
 732     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new LongValue(longLiteralNode.GetSpan()longLiteralNode.ModuleId()longLiteralNode.Value()))symbolTable.GetTypeByName(U"long")));
 733 }


Declaration at line 67 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::LongLiteralNode::Value , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(LongNode & longNode) override

Definition at line 655 of ExpressionBinder.cpp :
 656 {
 657     expression.reset(new BoundTypeExpression(longNode.GetSpan()longNode.ModuleId()symbolTable.GetTypeByName(U"long")));
 658 }


Declaration at line 51 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(MulNode & mulNode) override

Definition at line 1442 of ExpressionBinder.cpp :
1443 {
1444     BindBinaryOp(mulNodeU"operator*");
1445 }


Declaration at line 101 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(NewNode & newNode) override

Definition at line 2585 of ExpressionBinder.cpp
Declaration at line 123 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::GetModule , cmajor::symbols::Module::IsSymbolDefined , sngcm::ast::CastNode::Accept , sngcm::ast::InvokeNode::AddArgument , sngcm::ast::NewNode::Arguments , sngcm::ast::NewNode::TypeExpr , sngcm::ast::Node::Clone , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::NodeList::Count , sngcm::ast::TypeNameNode::SetStatic


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(NotEqualNode & notEqualNode) override

Definition at line 1386 of ExpressionBinder.cpp :
1387 {
1388     BindBinaryOp(notEqualNodeU"operator==");
1389     BindUnaryOp(expression.release()notEqualNodeU"operator!");
1390 }


Declaration at line 92 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp , cmajor::binder::ExpressionBinder::BindUnaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(NotNode & notNode) override

Definition at line 1457 of ExpressionBinder.cpp :
1458 {
1459     BindUnaryOp(notNodeU"operator!");
1460 }


Declaration at line 104 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindUnaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(NullLiteralNode & nullLiteralNode) override

Definition at line 783 of ExpressionBinder.cpp :
 784 {
 785     TypeSymbol* nullPtrType = symbolTable.GetTypeByName(U"@nullptr_type");
 786     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new NullValue(nullLiteralNode.GetSpan()nullLiteralNode.ModuleId()nullPtrType))nullPtrType));
 787 }


Declaration at line 77 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ParameterNode & parameterNode) override

Definition at line 916 of ExpressionBinder.cpp
Declaration at line 82 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::FileScopes , sngcm::ast::IdentifierNode::Str , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::ParameterNode::Id


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ParenthesizedExpressionNode & parenthesizedExpressionNode) override

Definition at line 2694 of ExpressionBinder.cpp :
2695 {
2696     parenthesizedExpressionNode.Subject()->Accept(*this);
2697 }


Declaration at line 126 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::UnaryNode::Subject


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(PostfixDecrementNode & postfixDecrementNode) override

Definition at line 2309 of ExpressionBinder.cpp
Declaration at line 117 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::StatementBinder::CompileStatement , cmajor::binder::StatementBinder::CompilingThrow , sngcm::ast::Node::Accept , sngcm::ast::Node::Clone , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::UnaryNode::Subject


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(PostfixIncrementNode & postfixIncrementNode) override

Definition at line 2267 of ExpressionBinder.cpp
Declaration at line 116 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::StatementBinder::CompileStatement , cmajor::binder::StatementBinder::CompilingThrow , sngcm::ast::Node::Accept , sngcm::ast::Node::Clone , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::UnaryNode::Subject


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(PrefixDecrementNode & prefixDecrementNode) override

Definition at line 1511 of ExpressionBinder.cpp
Declaration at line 108 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindUnaryOp , cmajor::binder::StatementBinder::CompileStatement , cmajor::binder::StatementBinder::CompilingThrow , sngcm::ast::Node::Accept , sngcm::ast::Node::Clone , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::UnaryNode::Subject


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(PrefixIncrementNode & prefixIncrementNode) override

Definition at line 1472 of ExpressionBinder.cpp
Declaration at line 107 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindUnaryOp , cmajor::binder::StatementBinder::CompileStatement , cmajor::binder::StatementBinder::CompilingThrow , sngcm::ast::Node::Accept , sngcm::ast::Node::Clone , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::UnaryNode::Subject


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(RemNode & remNode) override

Definition at line 1452 of ExpressionBinder.cpp :
1453 {
1454     BindBinaryOp(remNodeU"operator%");
1455 }


Declaration at line 103 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(SByteLiteralNode & sbyteLiteralNode) override

Definition at line 700 of ExpressionBinder.cpp :
 701 {
 702     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new SByteValue(sbyteLiteralNode.GetSpan()sbyteLiteralNode.ModuleId()sbyteLiteralNode.Value()))symbolTable.GetTypeByName(U"sbyte")));
 703 }


Declaration at line 61 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::SByteLiteralNode::Value


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(SByteNode & sbyteNode) override

Definition at line 625 of ExpressionBinder.cpp :
 626 {
 627     expression.reset(new BoundTypeExpression(sbyteNode.GetSpan()sbyteNode.ModuleId()symbolTable.GetTypeByName(U"sbyte")));
 628 }


Declaration at line 45 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ShiftLeftNode & shiftLeftNode) override

Definition at line 1422 of ExpressionBinder.cpp :
1423 {
1424     BindBinaryOp(shiftLeftNodeU"operator<<");
1425 }


Declaration at line 97 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ShiftRightNode & shiftRightNode) override

Definition at line 1427 of ExpressionBinder.cpp :
1428 {
1429     BindBinaryOp(shiftRightNodeU"operator>>");
1430 }


Declaration at line 98 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ShortLiteralNode & shortLiteralNode) override

Definition at line 710 of ExpressionBinder.cpp :
 711 {
 712     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new ShortValue(shortLiteralNode.GetSpan()shortLiteralNode.ModuleId()shortLiteralNode.Value()))symbolTable.GetTypeByName(U"short")));
 713 }


Declaration at line 63 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::ShortLiteralNode::Value


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ShortNode & shortNode) override

Definition at line 635 of ExpressionBinder.cpp :
 636 {
 637     expression.reset(new BoundTypeExpression(shortNode.GetSpan()shortNode.ModuleId()symbolTable.GetTypeByName(U"short")));
 638 }


Declaration at line 47 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(SizeOfNode & sizeOfNode) override

Definition at line 2351 of ExpressionBinder.cpp
Declaration at line 118 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::SizeOfNode::Expression


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(StringLiteralNode & stringLiteralNode) override

Definition at line 765 of ExpressionBinder.cpp :
 766 {
 767     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new StringValue(stringLiteralNode.GetSpan()stringLiteralNode.ModuleId()boundCompileUnit.Install(stringLiteralNode.Value())stringLiteralNode.Value()))
 768         symbolTable.GetTypeByName(U"char")->AddConst(stringLiteralNode.GetSpan()stringLiteralNode.ModuleId())->AddPointer(stringLiteralNode.GetSpan()stringLiteralNode.ModuleId())));
 769 }


Declaration at line 74 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::Install , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::StringLiteralNode::Value


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(SubNode & subNode) override

Definition at line 1437 of ExpressionBinder.cpp :
1438 {
1439     BindBinaryOp(subNodeU"operator-");
1440 }


Declaration at line 100 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindBinaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(TemplateIdNode & templateIdNode) override

Definition at line 821 of ExpressionBinder.cpp
Declaration at line 81 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::GetClassTemplateRepository , cmajor::binder::BoundExpression::GetType , cmajor::binder::BoundFunctionGroupExpression::SetTemplateArgumentTypes , cmajor::binder::BoundMemberExpression::Member , cmajor::binder::BoundNode::GetBoundNodeType , cmajor::binder::ClassTemplateRepository::BindClassTemplateSpecialization , cmajor::binder::ClassTemplateRepository::ResolveDefaultTemplateArguments , sngcm::ast::Node::Accept , sngcm::ast::Node::GetNodeType , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::NodeList::Count , sngcm::ast::TemplateIdNode::Primary , sngcm::ast::TemplateIdNode::TemplateArguments


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ThisNode & thisNode) override

Definition at line 2636 of ExpressionBinder.cpp
Declaration at line 124 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::symbols::FunctionSymbol::GetThisParam , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(TypeIdNode & typeIdNode) override

Definition at line 2418 of ExpressionBinder.cpp
Declaration at line 120 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::SourceModuleId , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::TypeIdNode::Expression


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(TypeNameNode & typeNameNode) override

Definition at line 2370 of ExpressionBinder.cpp
Declaration at line 119 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundDereferenceExpression::Subject , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::TypeNameNode::Expression , sngcm::ast::TypeNameNode::Static


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(UCharLiteralNode & ucharLiteralNode) override

Definition at line 760 of ExpressionBinder.cpp :
 761 {
 762     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new UCharValue(ucharLiteralNode.GetSpan()ucharLiteralNode.ModuleId()ucharLiteralNode.Value()))symbolTable.GetTypeByName(U"uchar")));
 763 }


Declaration at line 73 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::UCharLiteralNode::Value


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(UCharNode & ucharNode) override

Definition at line 685 of ExpressionBinder.cpp :
 686 {
 687     expression.reset(new BoundTypeExpression(ucharNode.GetSpan()ucharNode.ModuleId()symbolTable.GetTypeByName(U"uchar")));
 688 }


Declaration at line 57 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(UIntLiteralNode & uintLiteralNode) override

Definition at line 725 of ExpressionBinder.cpp :
 726 {
 727     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new UIntValue(uintLiteralNode.GetSpan()uintLiteralNode.ModuleId()uintLiteralNode.Value()))symbolTable.GetTypeByName(U"uint")));
 728 }


Declaration at line 66 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::UIntLiteralNode::Value


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(UIntNode & uintNode) override

Definition at line 650 of ExpressionBinder.cpp :
 651 {
 652     expression.reset(new BoundTypeExpression(uintNode.GetSpan()uintNode.ModuleId()symbolTable.GetTypeByName(U"uint")));
 653 }


Declaration at line 50 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ULongLiteralNode & ulongLiteralNode) override

Definition at line 735 of ExpressionBinder.cpp :
 736 {
 737     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new ULongValue(ulongLiteralNode.GetSpan()ulongLiteralNode.ModuleId()ulongLiteralNode.Value()))symbolTable.GetTypeByName(U"ulong")));
 738 }


Declaration at line 68 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::ULongLiteralNode::Value


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(ULongNode & ulongNode) override

Definition at line 660 of ExpressionBinder.cpp :
 661 {
 662     expression.reset(new BoundTypeExpression(ulongNode.GetSpan()ulongNode.ModuleId()symbolTable.GetTypeByName(U"ulong")));
 663 }


Declaration at line 52 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(UShortLiteralNode & ushortLiteralNode) override

Definition at line 715 of ExpressionBinder.cpp :
 716 {
 717     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new UShortValue(ushortLiteralNode.GetSpan()ushortLiteralNode.ModuleId()ushortLiteralNode.Value()))symbolTable.GetTypeByName(U"ushort")));
 718 }


Declaration at line 64 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::UShortLiteralNode::Value


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(UShortNode & ushortNode) override

Definition at line 640 of ExpressionBinder.cpp :
 641 {
 642     expression.reset(new BoundTypeExpression(ushortNode.GetSpan()ushortNode.ModuleId()symbolTable.GetTypeByName(U"ushort")));
 643 }


Declaration at line 48 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(UStringLiteralNode & ustringLiteralNode) override

Definition at line 777 of ExpressionBinder.cpp :
 778 {
 779     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new UStringValue(ustringLiteralNode.GetSpan()ustringLiteralNode.ModuleId()boundCompileUnit.Install(ustringLiteralNode.Value())ustringLiteralNode.Value()))
 780         symbolTable.GetTypeByName(U"uchar")->AddConst(ustringLiteralNode.GetSpan()ustringLiteralNode.ModuleId())->AddPointer(ustringLiteralNode.GetSpan()ustringLiteralNode.ModuleId())));
 781 }


Declaration at line 76 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::Install , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::UStringLiteralNode::Value


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(UnaryMinusNode & unaryMinusNode) override

Definition at line 1467 of ExpressionBinder.cpp :
1468 {
1469     BindUnaryOp(unaryMinusNodeU"operator-");
1470 }


Declaration at line 106 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindUnaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(UnaryPlusNode & unaryPlusNode) override

Definition at line 1462 of ExpressionBinder.cpp :
1463 {
1464     BindUnaryOp(unaryPlusNodeU"operator+");
1465 }


Declaration at line 105 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::ExpressionBinder::BindUnaryOp


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(UuidLiteralNode & uuidLiteralNode) override

Definition at line 789 of ExpressionBinder.cpp :
 790 {
 791     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new UuidValue(uuidLiteralNode.GetSpan()uuidLiteralNode.ModuleId()boundCompileUnit.Install(uuidLiteralNode.GetUuid())))
 792         symbolTable.GetTypeByName(U"void")->AddPointer(uuidLiteralNode.GetSpan()uuidLiteralNode.ModuleId())));
 793 }


Declaration at line 78 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::Install , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::UuidLiteralNode::GetUuid


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(VoidNode & voidNode) override

Definition at line 690 of ExpressionBinder.cpp :
 691 {
 692     expression.reset(new BoundTypeExpression(voidNode.GetSpan()voidNode.ModuleId()symbolTable.GetTypeByName(U"void")));
 693 }


Declaration at line 58 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(WCharLiteralNode & wcharLiteralNode) override

Definition at line 755 of ExpressionBinder.cpp :
 756 {
 757     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new WCharValue(wcharLiteralNode.GetSpan()wcharLiteralNode.ModuleId()wcharLiteralNode.Value()))symbolTable.GetTypeByName(U"wchar")));
 758 }


Declaration at line 72 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::WCharLiteralNode::Value


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(WCharNode & wcharNode) override

Definition at line 680 of ExpressionBinder.cpp :
 681 {
 682     expression.reset(new BoundTypeExpression(wcharNode.GetSpan()wcharNode.ModuleId()symbolTable.GetTypeByName(U"wchar")));
 683 }


Declaration at line 56 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

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


Visit Member Function

void cmajor::binder::ExpressionBinder::Visit(WStringLiteralNode & wstringLiteralNode) override

Definition at line 771 of ExpressionBinder.cpp :
 772 {
 773     expression.reset(new BoundLiteral(std::unique_ptr<Value>(new WStringValue(wstringLiteralNode.GetSpan()wstringLiteralNode.ModuleId()boundCompileUnit.Install(wstringLiteralNode.Value())wstringLiteralNode.Value()))
 774         symbolTable.GetTypeByName(U"wchar")->AddConst(wstringLiteralNode.GetSpan()wstringLiteralNode.ModuleId())->AddPointer(wstringLiteralNode.GetSpan()wstringLiteralNode.ModuleId())));
 775 }


Declaration at line 75 of ExpressionBinder.cpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::Install , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::WStringLiteralNode::Value


top | up | prev | next