top | up | prev | next

Evaluator Class

Definition at line 586 of Evaluator.cpp

Constructors

Evaluator(BoundCompileUnit& boundCompileUnit_, ContainerScope* containerScope_, TypeSymbol* targetType_, ValueType targetValueType_, bool cast_, bool dontThrow_, BoundFunction* currentFunction_, const Span& span_, const boost::uuids::uuid& moduleId_)

Member Functions

bool Error() const
void EvaluateAdditivePointerOp(const Span& span, Operator op, const std::unique_ptr<Value>& left, const std::unique_ptr<Value>& right)
void EvaluateBinOp(BinaryNode& node, BinaryOperatorFun* fun)
void EvaluateBinOp(BinaryNode& node, BinaryOperatorFun* fun, Operator op)
void EvaluateConstantSymbol(ConstantSymbol* constantSymbol, const Span& span)
void EvaluateEnumConstantSymbol(EnumConstantSymbol* enumConstantSymbol, const Span& span)
void EvaluateSymbol(Symbol* symbol, const Span& span)
void EvaluateUnaryOp(UnaryNode& node, UnaryOperatorFun* fun)
std::unique_ptr<Value> GetValue()
void Visit(AddNode& addNode) override
void Visit(AddrOfNode& addrOfNode) override
void Visit(AliasNode& aliasNode) override
void Visit(ArrayLiteralNode& arrayLiteralNode) override
void Visit(ArrowNode& arrowNode) override
void Visit(AsNode& asNode) override
void Visit(AssertStatementNode& assertStatementNode) override
void Visit(AssignmentStatementNode& assignmentStatementNode) 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(BreakStatementNode& breakStatementNode) override
void Visit(ByteLiteralNode& byteLiteralNode) override
void Visit(ByteNode& byteNode) override
void Visit(CaseStatementNode& caseStatementNode) override
void Visit(CastNode& castNode) override
void Visit(CatchNode& catchNode) override
void Visit(CharLiteralNode& charLiteralNode) override
void Visit(CharNode& charNode) override
void Visit(ClassDelegateNode& classDelegateNode) override
void Visit(ClassNode& classNode) override
void Visit(ComplementNode& complementNode) override
void Visit(CompoundStatementNode& compoundStatementNode) override
void Visit(ConditionalCompilationConjunctionNode& conditionalCompilationConjunctionNode) override
void Visit(ConditionalCompilationDisjunctionNode& conditionalCompilationDisjunctionNode) override
void Visit(ConditionalCompilationNotNode& conditionalCompilationNotNode) override
void Visit(ConditionalCompilationPartNode& conditionalCompilationPartNode) override
void Visit(ConditionalCompilationPrimaryNode& conditionalCompilationPrimaryNode) override
void Visit(ConditionalCompilationStatementNode& conditionalCompilationStatementNode) override
void Visit(ConjunctionNode& conjunctionNode) override
void Visit(ConstructNode& constructNode) override
void Visit(ConstructionStatementNode& constructionStatementNode) override
void Visit(ConstructorNode& constructorNode) override
void Visit(ContinueStatementNode& continueStatementNode) override
void Visit(ConversionFunctionNode& conversionFunctionNode) override
void Visit(DefaultStatementNode& defaultStatementNode) override
void Visit(DelegateNode& delegateNode) override
void Visit(DeleteStatementNode& deleteStatementNode) override
void Visit(DerefNode& derefNode) override
void Visit(DestroyStatementNode& destroyStatementNode) override
void Visit(DestructorNode& destructorNode) override
void Visit(DisjunctionNode& disjunctionNode) override
void Visit(DivNode& divNode) override
void Visit(DoStatementNode& doStatementNode) override
void Visit(DotNode& dotNode) override
void Visit(DoubleLiteralNode& doubleLiteralNode) override
void Visit(DoubleNode& doubleNode) override
void Visit(EmptyStatementNode& emptyStatementNode) override
void Visit(EqualNode& equalNode) override
void Visit(EquivalenceNode& equivalenceNode) override
void Visit(ExpressionStatementNode& expressionStatementNode) override
void Visit(FloatLiteralNode& floatLiteralNode) override
void Visit(FloatNode& floatNode) override
void Visit(ForStatementNode& forStatementNode) override
void Visit(FunctionNode& functionNode) override
void Visit(GotoCaseStatementNode& gotoCaseStatementNode) override
void Visit(GotoDefaultStatementNode& gotoDefaultStatementNode) override
void Visit(GotoStatementNode& gotoStatementNode) override
void Visit(GreaterNode& greaterNode) override
void Visit(GreaterOrEqualNode& greaterOrEqualNode) override
void Visit(IdentifierNode& identifierNode) override
void Visit(IfStatementNode& ifStatementNode) override
void Visit(ImplicationNode& implicationNode) override
void Visit(IndexingNode& indexingNode) override
void Visit(IntLiteralNode& intLiteralNode) override
void Visit(IntNode& intNode) override
void Visit(InterfaceNode& interfaceNode) 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(MemberFunctionNode& memberFunctionNode) override
void Visit(MemberVariableNode& memberVariableNode) override
void Visit(MulNode& mulNode) override
void Visit(NamespaceImportNode& namespaceImportNode) override
void Visit(NewNode& newNode) override
void Visit(NotEqualNode& notEqualNode) override
void Visit(NotNode& notNode) override
void Visit(NullLiteralNode& nullLiteralNode) 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(RangeForStatementNode& rangeForStatementNode) override
void Visit(RemNode& remNode) override
void Visit(ReturnStatementNode& returnStatementNode) 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(StaticConstructorNode& staticConstructorNode) override
void Visit(StringLiteralNode& stringLiteralNode) override
void Visit(StructuredLiteralNode& structuredLiteralNode) override
void Visit(SubNode& subNode) override
void Visit(SwitchStatementNode& switchStatementNode) override
void Visit(TemplateIdNode& templateIdNode) override
void Visit(ThisNode& thisNode) override
void Visit(ThrowStatementNode& throwStatementNode) override
void Visit(TryStatementNode& tryStatementNode) 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(VoidNode& voidNode) override
void Visit(WCharLiteralNode& wcharLiteralNode) override
void Visit(WCharNode& wcharNode) override
void Visit(WStringLiteralNode& wstringLiteralNode) override
void Visit(WhileStatementNode& whileStatementNode) override

Member Variables

std::vector<std::unique_ptr<Value>> argumentValues
BoundCompileUnit& boundCompileUnit
bool broke
bool cast
ContainerScope* containerScope
bool continued
ClassTypeSymbol* currentClassType
DeclarationBlock* currentDeclarationBlock
FileScope* currentFileScope
BoundFunction* currentFunction
bool dontThrow
bool error
bool lvalue
Module* module
boost::uuids::uuid moduleId
ContainerScope* qualifiedScope
bool returned
Span span
std::unique_ptr<Value> structureReferenceValue
SymbolTable* symbolTable
TypeSymbol* targetType
VariableValueSymbol* targetValueSymbol
ValueType targetValueType
std::vector<TypeSymbol*> templateTypeArguments
std::unique_ptr<Value> value

Constructor Details

Evaluator Constructor

cmajor::binder::Evaluator::Evaluator(BoundCompileUnit & boundCompileUnit_, ContainerScope* containerScope_, TypeSymbol* targetType_, ValueType targetValueType_, bool cast_, bool dontThrow_, BoundFunction * currentFunction_, const Span& span_, const boost::uuids::uuid& moduleId_)

Definition at line 760 of Evaluator.cpp :
 761 :
 762 boundCompileUnit(boundCompileUnit_)symbolTable(&boundCompileUnit.GetSymbolTable())module(&boundCompileUnit.GetModule())
 763 containerScope(containerScope_)qualifiedScope(nullptr)cast(cast_)dontThrow(dontThrow_)error(false)
 764 returned(false)broke(false)continued(false)lvalue(false)currentFunction(currentFunction_)currentDeclarationBlock(nullptr)currentFileScope(nullptr)currentClassType(nullptr)
 765 span(span_)moduleId(moduleId_)value()targetType(targetType_)targetValueType(targetValueType_)targetValueSymbol(nullptr)
 766 {
 767 }


Declaration at line 589 of Evaluator.cpp


Member Function Details

Error Member Function

bool cmajor::binder::Evaluator::Error() const

Definition at line 591 of Evaluator.cpp :
 591 { return error; }


EvaluateAdditivePointerOp Member Function

void cmajor::binder::Evaluator::EvaluateAdditivePointerOp(const Span& span, Operator op, const std::unique_ptr<Value>& left, const std::unique_ptr<Value>& right)

Definition at line 869 of Evaluator.cpp
Declaration at line 753 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::GetValue

Called by: cmajor::binder::Evaluator::EvaluateBinOp


EvaluateBinOp Member Function

void cmajor::binder::Evaluator::EvaluateBinOp(BinaryNode& node, BinaryOperatorFun* fun)

Definition at line 769 of Evaluator.cpp :
 770 {
 771     EvaluateBinOp(nodefunOperator::other);
 772 }


Declaration at line 751 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp

Called by: cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit


EvaluateBinOp Member Function

void cmajor::binder::Evaluator::EvaluateBinOp(BinaryNode& node, BinaryOperatorFun* fun, Operator op)

Definition at line 774 of Evaluator.cpp
Declaration at line 752 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateAdditivePointerOp , cmajor::binder::Evaluator::GetValue

Called by: cmajor::binder::Evaluator::EvaluateBinOp , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit


EvaluateConstantSymbol Member Function

void cmajor::binder::Evaluator::EvaluateConstantSymbol(ConstantSymbol* constantSymbol, const Span& span)

Definition at line 3088 of Evaluator.cpp
Declaration at line 756 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::GetValue , cmajor::binder::TypeBinder::SetContainerScope

Called by: cmajor::binder::Evaluator::EvaluateSymbol


EvaluateEnumConstantSymbol Member Function

void cmajor::binder::Evaluator::EvaluateEnumConstantSymbol(EnumConstantSymbol* enumConstantSymbol, const Span& span)

Definition at line 3151 of Evaluator.cpp
Declaration at line 757 of Evaluator.cpp

Calls: cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::Evaluator::GetValue , cmajor::binder::TypeBinder::SetContainerScope , cmajor::symbols::SymbolTable::GetNode

Called by: cmajor::binder::Evaluator::EvaluateSymbol


EvaluateSymbol Member Function

void cmajor::binder::Evaluator::EvaluateSymbol(Symbol* symbol, const Span& span)

Definition at line 3041 of Evaluator.cpp
Declaration at line 755 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateConstantSymbol , cmajor::binder::Evaluator::EvaluateEnumConstantSymbol , cmajor::binder::VariableValueSymbol::GetValue

Called by: cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit


EvaluateUnaryOp Member Function

void cmajor::binder::Evaluator::EvaluateUnaryOp(UnaryNode& node, UnaryOperatorFun* fun)

Definition at line 1014 of Evaluator.cpp
Declaration at line 754 of Evaluator.cpp

Called by: cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit


GetValue Member Function

std::unique_ptr<Value> cmajor::binder::Evaluator::GetValue()

Definition at line 1066 of Evaluator.cpp :
1067 {
1068     if (error)
1069     {
1070         return std::unique_ptr<Value>();
1071     }
1072     return std::move(value);
1073 }


Declaration at line 592 of Evaluator.cpp

Called by: cmajor::binder::Evaluator::EvaluateAdditivePointerOp , cmajor::binder::Evaluator::EvaluateBinOp , cmajor::binder::Evaluator::EvaluateConstantSymbol , cmajor::binder::Evaluator::EvaluateEnumConstantSymbol , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit , cmajor::binder::Evaluator::Visit


Visit Member Function

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

Definition at line 3382 of Evaluator.cpp :
3383 {
3384     EvaluateBinOp(addNodeaddOperator::add);
3385 }


Declaration at line 697 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

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

Definition at line 3558 of Evaluator.cpp :
3559 {
3560     if (dontThrow)
3561     {
3562         error = true;
3563     }
3564     else
3565     {
3566         ThrowCannotEvaluateStatically(spanmoduleIdaddrOfNode.GetSpan()addrOfNode.ModuleId());
3567     }
3568 }


Declaration at line 708 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(AliasNode& aliasNode) override

Definition at line 1583 of Evaluator.cpp :
1584 {
1585     if (currentFileScope)
1586     {
1587         currentFileScope->InstallAlias(containerScope&aliasNode);
1588     }
1589 }


Declaration at line 595 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ArrayLiteralNode& arrayLiteralNode) override

Definition at line 2750 of Evaluator.cpp
Declaration at line 674 of Evaluator.cpp


Visit Member Function

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

Definition at line 3281 of Evaluator.cpp :
3282 {
3283     if (dontThrow)
3284     {
3285         error = true;
3286     }
3287     else
3288     {
3289         ThrowCannotEvaluateStatically(spanmoduleIdarrowNode.GetSpan()arrowNode.ModuleId());
3290     }
3291 }


Declaration at line 681 of Evaluator.cpp


Visit Member Function

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

Definition at line 3587 of Evaluator.cpp :
3588 {
3589     if (dontThrow)
3590     {
3591         error = true;
3592     }
3593     else
3594     {
3595         ThrowCannotEvaluateStatically(spanmoduleIdasNode.GetSpan()asNode.ModuleId());
3596     }
3597 }


Declaration at line 711 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(AssertStatementNode& assertStatementNode) override

Definition at line 2356 of Evaluator.cpp
Declaration at line 632 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::GetValue


Visit Member Function

void cmajor::binder::Evaluator::Visit(AssignmentStatementNode& assignmentStatementNode) override

Definition at line 2162 of Evaluator.cpp
Declaration at line 620 of Evaluator.cpp

Calls: cmajor::binder::VariableValueSymbol::SetValue


Visit Member Function

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

Definition at line 4049 of Evaluator.cpp :
4050 {
4051     if (dontThrow)
4052     {
4053         error = true;
4054     }
4055     else
4056     {
4057         ThrowCannotEvaluateStatically(spanmoduleIdbaseNode.GetSpan()baseNode.ModuleId());
4058     }
4059 }


Declaration at line 723 of Evaluator.cpp


Visit Member Function

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

Definition at line 3337 of Evaluator.cpp :
3338 {
3339     EvaluateBinOp(bitAndNodebitAnd);
3340 }


Declaration at line 688 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

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

Definition at line 3327 of Evaluator.cpp :
3328 {
3329     EvaluateBinOp(bitOrNodebitOr);
3330 }


Declaration at line 686 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

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

Definition at line 3332 of Evaluator.cpp :
3333 {
3334     EvaluateBinOp(bitXorNodebitXor);
3335 }


Declaration at line 687 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

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

Definition at line 2480 of Evaluator.cpp :
2481 {
2482     if (dontThrow)
2483     {
2484         error = true;
2485     }
2486     else
2487     {
2488         ThrowCannotEvaluateStatically(spanmoduleIdboolNode.GetSpan()boolNode.ModuleId());
2489     }
2490 }


Declaration at line 640 of Evaluator.cpp


Visit Member Function

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

Definition at line 2660 of Evaluator.cpp :
2661 {
2662     value.reset(new BoolValue(booleanLiteralNode.GetSpan()booleanLiteralNode.ModuleId()booleanLiteralNode.Value()));
2663 }


Declaration at line 656 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(BreakStatementNode& breakStatementNode) override

Definition at line 1977 of Evaluator.cpp :
1978 {
1979     broke = true;
1980 }


Declaration at line 614 of Evaluator.cpp


Visit Member Function

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

Definition at line 2670 of Evaluator.cpp :
2671 {
2672     value.reset(new ByteValue(byteLiteralNode.GetSpan()byteLiteralNode.ModuleId()byteLiteralNode.Value()));
2673 }


Declaration at line 658 of Evaluator.cpp


Visit Member Function

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

Definition at line 2504 of Evaluator.cpp :
2505 {
2506     if (dontThrow)
2507     {
2508         error = true;
2509     }
2510     else
2511     {
2512         ThrowCannotEvaluateStatically(spanmoduleIdbyteNode.GetSpan()byteNode.ModuleId());
2513     }
2514 }


Declaration at line 642 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(CaseStatementNode& caseStatementNode) override

Definition at line 2263 of Evaluator.cpp
Declaration at line 625 of Evaluator.cpp


Visit Member Function

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

Definition at line 3990 of Evaluator.cpp
Declaration at line 719 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(CatchNode& catchNode) override

Definition at line 2343 of Evaluator.cpp
Declaration at line 631 of Evaluator.cpp


Visit Member Function

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

Definition at line 2715 of Evaluator.cpp :
2716 {
2717     value.reset(new CharValue(charLiteralNode.GetSpan()charLiteralNode.ModuleId()charLiteralNode.Value()));
2718 }


Declaration at line 667 of Evaluator.cpp


Visit Member Function

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

Definition at line 2612 of Evaluator.cpp :
2613 {
2614     if (dontThrow)
2615     {
2616         error = true;
2617     }
2618     else
2619     {
2620         ThrowCannotEvaluateStatically(spanmoduleIdcharNode.GetSpan()charNode.ModuleId());
2621     }
2622 }


Declaration at line 651 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ClassDelegateNode& classDelegateNode) override

Definition at line 1661 of Evaluator.cpp
Declaration at line 606 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ClassNode& classNode) override

Definition at line 1591 of Evaluator.cpp
Declaration at line 597 of Evaluator.cpp


Visit Member Function

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

Definition at line 3570 of Evaluator.cpp :
3571 {
3572     EvaluateUnaryOp(complementNodecomplement);
3573 }


Declaration at line 709 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateUnaryOp


Visit Member Function

void cmajor::binder::Evaluator::Visit(CompoundStatementNode& compoundStatementNode) override

Definition at line 1674 of Evaluator.cpp
Declaration at line 608 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ConditionalCompilationConjunctionNode& conditionalCompilationConjunctionNode) override

Definition at line 2428 of Evaluator.cpp
Declaration at line 635 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ConditionalCompilationDisjunctionNode& conditionalCompilationDisjunctionNode) override

Definition at line 2415 of Evaluator.cpp
Declaration at line 634 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ConditionalCompilationNotNode& conditionalCompilationNotNode) override

Definition at line 2441 of Evaluator.cpp
Declaration at line 636 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ConditionalCompilationPartNode& conditionalCompilationPartNode) override

Definition at line 2402 of Evaluator.cpp
Declaration at line 633 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ConditionalCompilationPrimaryNode& conditionalCompilationPrimaryNode) override

Definition at line 2454 of Evaluator.cpp
Declaration at line 637 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ConditionalCompilationStatementNode& conditionalCompilationStatementNode) override

Definition at line 2467 of Evaluator.cpp
Declaration at line 638 of Evaluator.cpp


Visit Member Function

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

Definition at line 3322 of Evaluator.cpp :
3323 {
3324     EvaluateBinOp(conjunctionNodeconjunction);
3325 }


Declaration at line 685 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

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

Definition at line 4013 of Evaluator.cpp :
4014 {
4015     if (dontThrow)
4016     {
4017         error = true;
4018     }
4019     else
4020     {
4021         ThrowCannotEvaluateStatically(spanmoduleIdconstructNode.GetSpan()constructNode.ModuleId());
4022     }
4023 }


Declaration at line 720 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ConstructionStatementNode& constructionStatementNode) override

Definition at line 2000 of Evaluator.cpp
Declaration at line 617 of Evaluator.cpp

Calls: cmajor::binder::BoundCompileUnit::GetFunctionNodeFor


Visit Member Function

void cmajor::binder::Evaluator::Visit(ConstructorNode& constructorNode) override

Definition at line 1165 of Evaluator.cpp
Declaration at line 599 of Evaluator.cpp

Calls: cmajor::binder::BoundCompileUnit::AddFileScope , cmajor::binder::BoundCompileUnit::GetFunctionNodeFor , cmajor::binder::BoundCompileUnit::RemoveLastFileScope


Visit Member Function

void cmajor::binder::Evaluator::Visit(ContinueStatementNode& continueStatementNode) override

Definition at line 1982 of Evaluator.cpp :
1983 {
1984     continued = true;
1985 }


Declaration at line 615 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ConversionFunctionNode& conversionFunctionNode) override

Definition at line 1562 of Evaluator.cpp
Declaration at line 602 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(DefaultStatementNode& defaultStatementNode) override

Definition at line 2277 of Evaluator.cpp
Declaration at line 626 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(DelegateNode& delegateNode) override

Definition at line 1648 of Evaluator.cpp
Declaration at line 605 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(DeleteStatementNode& deleteStatementNode) override

Definition at line 2136 of Evaluator.cpp
Declaration at line 618 of Evaluator.cpp


Visit Member Function

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

Definition at line 3526 of Evaluator.cpp
Declaration at line 707 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(DestroyStatementNode& destroyStatementNode) override

Definition at line 2149 of Evaluator.cpp
Declaration at line 619 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(DestructorNode& destructorNode) override

Definition at line 1617 of Evaluator.cpp
Declaration at line 600 of Evaluator.cpp


Visit Member Function

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

Definition at line 3317 of Evaluator.cpp :
3318 {
3319     EvaluateBinOp(disjunctionNodedisjunction);
3320 }


Declaration at line 684 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

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

Definition at line 3397 of Evaluator.cpp :
3398 {
3399     EvaluateBinOp(divNodediv);
3400 }


Declaration at line 700 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

void cmajor::binder::Evaluator::Visit(DoStatementNode& doStatementNode) override

Definition at line 1810 of Evaluator.cpp
Declaration at line 612 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::GetValue


Visit Member Function

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

Definition at line 3185 of Evaluator.cpp
Declaration at line 680 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateSymbol , cmajor::binder::FunctionGroupValue::SetReceiver , cmajor::binder::ScopedValue::GetContainerSymbol , cmajor::binder::ScopedValue::GetType , cmajor::binder::ScopedValue::SetSubject , cmajor::binder::ScopedValue::SetType


Visit Member Function

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

Definition at line 2710 of Evaluator.cpp :
2711 {
2712     value.reset(new DoubleValue(doubleLiteralNode.GetSpan()doubleLiteralNode.ModuleId()doubleLiteralNode.Value()));
2713 }


Declaration at line 666 of Evaluator.cpp


Visit Member Function

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

Definition at line 2600 of Evaluator.cpp :
2601 {
2602     if (dontThrow)
2603     {
2604         error = true;
2605     }
2606     else
2607     {
2608         ThrowCannotEvaluateStatically(spanmoduleIddoubleNode.GetSpan()doubleNode.ModuleId());
2609     }
2610 }


Declaration at line 650 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(EmptyStatementNode& emptyStatementNode) override

Definition at line 2231 of Evaluator.cpp :
2232 {
2233 }


Declaration at line 622 of Evaluator.cpp


Visit Member Function

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

Definition at line 3342 of Evaluator.cpp :
3343 {
3344     EvaluateBinOp(equalNodeequalOperator::comparison);
3345 }


Declaration at line 689 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

void cmajor::binder::Evaluator::Visit(EquivalenceNode& equivalenceNode) override

Definition at line 3293 of Evaluator.cpp :
3294 {
3295     if (dontThrow)
3296     {
3297         error = true;
3298     }
3299     else
3300     {
3301         ThrowCannotEvaluateStatically(spanmoduleIdequivalenceNode.GetSpan()equivalenceNode.ModuleId());
3302     }
3303 }


Declaration at line 682 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ExpressionStatementNode& expressionStatementNode) override

Definition at line 2226 of Evaluator.cpp :
2227 {
2228     expressionStatementNode.Expression()->Accept(*this);
2229 }


Declaration at line 621 of Evaluator.cpp


Visit Member Function

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

Definition at line 2705 of Evaluator.cpp :
2706 {
2707     value.reset(new FloatValue(floatLiteralNode.GetSpan()floatLiteralNode.ModuleId()floatLiteralNode.Value()));
2708 }


Declaration at line 665 of Evaluator.cpp


Visit Member Function

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

Definition at line 2588 of Evaluator.cpp :
2589 {
2590     if (dontThrow)
2591     {
2592         error = true;
2593     }
2594     else
2595     {
2596         ThrowCannotEvaluateStatically(spanmoduleIdfloatNode.GetSpan()floatNode.ModuleId());
2597     }
2598 }


Declaration at line 649 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ForStatementNode& forStatementNode) override

Definition at line 1863 of Evaluator.cpp
Declaration at line 613 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::GetValue


Visit Member Function

void cmajor::binder::Evaluator::Visit(FunctionNode& functionNode) override

Definition at line 1075 of Evaluator.cpp
Declaration at line 596 of Evaluator.cpp

Calls: cmajor::binder::BoundCompileUnit::AddFileScope , cmajor::binder::BoundCompileUnit::RemoveLastFileScope


Visit Member Function

void cmajor::binder::Evaluator::Visit(GotoCaseStatementNode& gotoCaseStatementNode) override

Definition at line 2291 of Evaluator.cpp
Declaration at line 627 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(GotoDefaultStatementNode& gotoDefaultStatementNode) override

Definition at line 2304 of Evaluator.cpp
Declaration at line 628 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(GotoStatementNode& gotoStatementNode) override

Definition at line 1987 of Evaluator.cpp
Declaration at line 616 of Evaluator.cpp


Visit Member Function

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

Definition at line 3357 of Evaluator.cpp :
3358 {
3359     EvaluateBinOp(greaterNodegreaterOperator::comparison);
3360 }


Declaration at line 692 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

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

Definition at line 3367 of Evaluator.cpp :
3368 {
3369     EvaluateBinOp(greaterOrEqualNodegreaterEqualOperator::comparison);
3370 }


Declaration at line 694 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

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

Definition at line 2971 of Evaluator.cpp
Declaration at line 677 of Evaluator.cpp

Calls: cmajor::binder::BoundCompileUnit::FileScopes , cmajor::binder::Evaluator::EvaluateSymbol


Visit Member Function

void cmajor::binder::Evaluator::Visit(IfStatementNode& ifStatementNode) override

Definition at line 1708 of Evaluator.cpp
Declaration at line 610 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::GetValue


Visit Member Function

void cmajor::binder::Evaluator::Visit(ImplicationNode& implicationNode) override

Definition at line 3305 of Evaluator.cpp :
3306 {
3307     if (dontThrow)
3308     {
3309         error = true;
3310     }
3311     else
3312     {
3313         ThrowCannotEvaluateStatically(spanmoduleIdimplicationNode.GetSpan()implicationNode.ModuleId());
3314     }
3315 }


Declaration at line 683 of Evaluator.cpp


Visit Member Function

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

Definition at line 3599 of Evaluator.cpp
Declaration at line 712 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::GetValue


Visit Member Function

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

Definition at line 2685 of Evaluator.cpp :
2686 {
2687     value.reset(new IntValue(intLiteralNode.GetSpan()intLiteralNode.ModuleId()intLiteralNode.Value()));
2688 }


Declaration at line 661 of Evaluator.cpp


Visit Member Function

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

Definition at line 2540 of Evaluator.cpp :
2541 {
2542     if (dontThrow)
2543     {
2544         error = true;
2545     }
2546     else
2547     {
2548         ThrowCannotEvaluateStatically(spanmoduleIdintNode.GetSpan()intNode.ModuleId());
2549     }
2550 }


Declaration at line 645 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(InterfaceNode& interfaceNode) override

Definition at line 1635 of Evaluator.cpp
Declaration at line 604 of Evaluator.cpp


Visit Member Function

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

Definition at line 3665 of Evaluator.cpp
Declaration at line 713 of Evaluator.cpp

Calls: cmajor::binder::BoundCompileUnit::GetFunctionNodeFor , cmajor::binder::FunctionGroupValue::FunctionGroup , cmajor::binder::FunctionGroupValue::QualifiedScope , cmajor::binder::FunctionGroupValue::Receiver , cmajor::binder::FunctionGroupValue::TemplateTypeArguments , cmajor::binder::ScopedValue::GetSubject


Visit Member Function

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

Definition at line 3575 of Evaluator.cpp :
3576 {
3577     if (dontThrow)
3578     {
3579         error = true;
3580     }
3581     else
3582     {
3583         ThrowCannotEvaluateStatically(spanmoduleIdisNode.GetSpan()isNode.ModuleId());
3584     }
3585 }


Declaration at line 710 of Evaluator.cpp


Visit Member Function

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

Definition at line 3352 of Evaluator.cpp :
3353 {
3354     EvaluateBinOp(lessNodelessOperator::comparison);
3355 }


Declaration at line 691 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

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

Definition at line 3362 of Evaluator.cpp :
3363 {
3364     EvaluateBinOp(lessOrEqualNodelessEqualOperator::comparison);
3365 }


Declaration at line 693 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

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

Definition at line 2695 of Evaluator.cpp :
2696 {
2697     value.reset(new LongValue(longLiteralNode.GetSpan()longLiteralNode.ModuleId()longLiteralNode.Value()));
2698 }


Declaration at line 663 of Evaluator.cpp


Visit Member Function

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

Definition at line 2564 of Evaluator.cpp :
2565 {
2566     if (dontThrow)
2567     {
2568         error = true;
2569     }
2570     else
2571     {
2572         ThrowCannotEvaluateStatically(spanmoduleIdlongNode.GetSpan()longNode.ModuleId());
2573     }
2574 }


Declaration at line 647 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(MemberFunctionNode& memberFunctionNode) override

Definition at line 1436 of Evaluator.cpp
Declaration at line 601 of Evaluator.cpp

Calls: cmajor::binder::BoundCompileUnit::AddFileScope , cmajor::binder::BoundCompileUnit::RemoveLastFileScope


Visit Member Function

void cmajor::binder::Evaluator::Visit(MemberVariableNode& memberVariableNode) override

Definition at line 1630 of Evaluator.cpp :
1631 {
1632     memberVariableNode.Id()->Accept(*this);
1633 }


Declaration at line 603 of Evaluator.cpp


Visit Member Function

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

Definition at line 3392 of Evaluator.cpp :
3393 {
3394     EvaluateBinOp(mulNodemul);
3395 }


Declaration at line 699 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

void cmajor::binder::Evaluator::Visit(NamespaceImportNode& namespaceImportNode) override

Definition at line 1575 of Evaluator.cpp :
1576 {
1577     if (currentFileScope)
1578     {
1579         currentFileScope->InstallNamespaceImport(containerScope&namespaceImportNode);
1580     }
1581 }


Declaration at line 594 of Evaluator.cpp


Visit Member Function

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

Definition at line 4025 of Evaluator.cpp :
4026 {
4027     if (dontThrow)
4028     {
4029         error = true;
4030     }
4031     else
4032     {
4033         ThrowCannotEvaluateStatically(spanmoduleIdnewNode.GetSpan()newNode.ModuleId());
4034     }
4035 }


Declaration at line 721 of Evaluator.cpp


Visit Member Function

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

Definition at line 3347 of Evaluator.cpp :
3348 {
3349     EvaluateBinOp(notEqualNodenotEqualOperator::comparison);
3350 }


Declaration at line 690 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

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

Definition at line 3407 of Evaluator.cpp :
3408 {
3409     EvaluateUnaryOp(notNodelogicalNot);
3410 }


Declaration at line 702 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateUnaryOp


Visit Member Function

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

Definition at line 2745 of Evaluator.cpp :
2746 {
2747     value.reset(new NullValue(nullLiteralNode.GetSpan()nullLiteralNode.ModuleId()symbolTable->GetTypeByName(U"@nullptr_type")));
2748 }


Declaration at line 673 of Evaluator.cpp


Visit Member Function

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

Definition at line 4061 of Evaluator.cpp :
4062 {
4063     parenthesizedExpressionNode.Subject()->Accept(*this);
4064 }


Declaration at line 724 of Evaluator.cpp


Visit Member Function

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

Definition at line 3918 of Evaluator.cpp
Declaration at line 715 of Evaluator.cpp


Visit Member Function

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

Definition at line 3884 of Evaluator.cpp
Declaration at line 714 of Evaluator.cpp


Visit Member Function

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

Definition at line 3476 of Evaluator.cpp
Declaration at line 706 of Evaluator.cpp


Visit Member Function

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

Definition at line 3422 of Evaluator.cpp
Declaration at line 705 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(RangeForStatementNode& rangeForStatementNode) override

Definition at line 2235 of Evaluator.cpp
Declaration at line 623 of Evaluator.cpp


Visit Member Function

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

Definition at line 3402 of Evaluator.cpp :
3403 {
3404     EvaluateBinOp(remNoderem);
3405 }


Declaration at line 701 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ReturnStatementNode& returnStatementNode) override

Definition at line 1698 of Evaluator.cpp :
1699 {
1700     if (returnStatementNode.Expression())
1701     {
1702         returnStatementNode.Expression()->Accept(*this);
1703         if (error) return;
1704     }
1705     returned = true;
1706 }


Declaration at line 609 of Evaluator.cpp


Visit Member Function

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

Definition at line 2665 of Evaluator.cpp :
2666 {
2667     value.reset(new SByteValue(sbyteLiteralNode.GetSpan()sbyteLiteralNode.ModuleId()sbyteLiteralNode.Value()));
2668 }


Declaration at line 657 of Evaluator.cpp


Visit Member Function

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

Definition at line 2492 of Evaluator.cpp :
2493 {
2494     if (dontThrow)
2495     {
2496         error = true;
2497     }
2498     else
2499     {
2500         ThrowCannotEvaluateStatically(spanmoduleIdsbyteNode.GetSpan()sbyteNode.ModuleId());
2501     }
2502 }


Declaration at line 641 of Evaluator.cpp


Visit Member Function

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

Definition at line 3372 of Evaluator.cpp :
3373 {
3374     EvaluateBinOp(shiftLeftNodeshiftLeft);
3375 }


Declaration at line 695 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

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

Definition at line 3377 of Evaluator.cpp :
3378 {
3379     EvaluateBinOp(shiftRightNodeshiftRight);
3380 }


Declaration at line 696 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

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

Definition at line 2675 of Evaluator.cpp :
2676 {
2677     value.reset(new ShortValue(shortLiteralNode.GetSpan()shortLiteralNode.ModuleId()shortLiteralNode.Value()));
2678 }


Declaration at line 659 of Evaluator.cpp


Visit Member Function

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

Definition at line 2516 of Evaluator.cpp :
2517 {
2518     if (dontThrow)
2519     {
2520         error = true;
2521     }
2522     else
2523     {
2524         ThrowCannotEvaluateStatically(spanmoduleIdshortNode.GetSpan()shortNode.ModuleId());
2525     }
2526 }


Declaration at line 643 of Evaluator.cpp


Visit Member Function

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

Definition at line 3954 of Evaluator.cpp :
3955 {
3956     if (dontThrow)
3957     {
3958         error = true;
3959     }
3960     else
3961     {
3962         ThrowCannotEvaluateStatically(spanmoduleIdsizeOfNode.GetSpan()sizeOfNode.ModuleId());
3963     }
3964 }


Declaration at line 716 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(StaticConstructorNode& staticConstructorNode) override

Definition at line 1604 of Evaluator.cpp
Declaration at line 598 of Evaluator.cpp


Visit Member Function

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

Definition at line 2730 of Evaluator.cpp :
2731 {
2732     value.reset(new StringValue(stringLiteralNode.GetSpan()stringLiteralNode.ModuleId()boundCompileUnit.Install(stringLiteralNode.Value())stringLiteralNode.Value()));
2733 }


Declaration at line 670 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(StructuredLiteralNode& structuredLiteralNode) override

Definition at line 2815 of Evaluator.cpp
Declaration at line 675 of Evaluator.cpp

Calls: cmajor::binder::BoundCompileUnit::GetFunctionNodeFor , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::TypeBinder::SetContainerScope , cmajor::symbols::SymbolTable::GetNodeNoThrow


Visit Member Function

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

Definition at line 3387 of Evaluator.cpp :
3388 {
3389     EvaluateBinOp(subNodesubOperator::sub);
3390 }


Declaration at line 698 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateBinOp


Visit Member Function

void cmajor::binder::Evaluator::Visit(SwitchStatementNode& switchStatementNode) override

Definition at line 2249 of Evaluator.cpp
Declaration at line 624 of Evaluator.cpp


Visit Member Function

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

Definition at line 3010 of Evaluator.cpp
Declaration at line 678 of Evaluator.cpp

Calls: cmajor::binder::FunctionGroupValue::FunctionGroup , cmajor::binder::FunctionGroupValue::SetTemplateTypeArguments


Visit Member Function

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

Definition at line 4037 of Evaluator.cpp :
4038 {
4039     if (dontThrow)
4040     {
4041         error = true;
4042     }
4043     else
4044     {
4045         ThrowCannotEvaluateStatically(spanmoduleIdthisNode.GetSpan()thisNode.ModuleId());
4046     }
4047 }


Declaration at line 722 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(ThrowStatementNode& throwStatementNode) override

Definition at line 2317 of Evaluator.cpp
Declaration at line 629 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(TryStatementNode& tryStatementNode) override

Definition at line 2330 of Evaluator.cpp
Declaration at line 630 of Evaluator.cpp


Visit Member Function

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

Definition at line 3978 of Evaluator.cpp :
3979 {
3980     if (dontThrow)
3981     {
3982         error = true;
3983     }
3984     else
3985     {
3986         ThrowCannotEvaluateStatically(spanmoduleIdtypeIdNode.GetSpan()typeIdNode.ModuleId());
3987     }
3988 }


Declaration at line 718 of Evaluator.cpp


Visit Member Function

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

Definition at line 3966 of Evaluator.cpp :
3967 {
3968     if (dontThrow)
3969     {
3970         error = true;
3971     }
3972     else
3973     {
3974         ThrowCannotEvaluateStatically(spanmoduleIdtypeNameNode.GetSpan()typeNameNode.ModuleId());
3975     }
3976 }


Declaration at line 717 of Evaluator.cpp


Visit Member Function

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

Definition at line 2725 of Evaluator.cpp :
2726 {
2727     value.reset(new UCharValue(ucharLiteralNode.GetSpan()ucharLiteralNode.ModuleId()ucharLiteralNode.Value()));
2728 }


Declaration at line 669 of Evaluator.cpp


Visit Member Function

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

Definition at line 2636 of Evaluator.cpp :
2637 {
2638     if (dontThrow)
2639     {
2640         error = true;
2641     }
2642     else
2643     {
2644         ThrowCannotEvaluateStatically(spanmoduleIducharNode.GetSpan()ucharNode.ModuleId());
2645     }
2646 }


Declaration at line 653 of Evaluator.cpp


Visit Member Function

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

Definition at line 2690 of Evaluator.cpp :
2691 {
2692     value.reset(new UIntValue(uintLiteralNode.GetSpan()uintLiteralNode.ModuleId()uintLiteralNode.Value()));
2693 }


Declaration at line 662 of Evaluator.cpp


Visit Member Function

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

Definition at line 2552 of Evaluator.cpp :
2553 {
2554     if (dontThrow)
2555     {
2556         error = true;
2557     }
2558     else
2559     {
2560         ThrowCannotEvaluateStatically(spanmoduleIduintNode.GetSpan()uintNode.ModuleId());
2561     }
2562 }


Declaration at line 646 of Evaluator.cpp


Visit Member Function

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

Definition at line 2700 of Evaluator.cpp :
2701 {
2702     value.reset(new ULongValue(ulongLiteralNode.GetSpan()ulongLiteralNode.ModuleId()ulongLiteralNode.Value()));
2703 }


Declaration at line 664 of Evaluator.cpp


Visit Member Function

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

Definition at line 2576 of Evaluator.cpp :
2577 {
2578     if (dontThrow)
2579     {
2580         error = true;
2581     }
2582     else
2583     {
2584         ThrowCannotEvaluateStatically(spanmoduleIdulongNode.GetSpan()ulongNode.ModuleId());
2585     }
2586 }


Declaration at line 648 of Evaluator.cpp


Visit Member Function

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

Definition at line 2680 of Evaluator.cpp :
2681 {
2682     value.reset(new UShortValue(ushortLiteralNode.GetSpan()ushortLiteralNode.ModuleId()ushortLiteralNode.Value()));
2683 }


Declaration at line 660 of Evaluator.cpp


Visit Member Function

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

Definition at line 2528 of Evaluator.cpp :
2529 {
2530     if (dontThrow)
2531     {
2532         error = true;
2533     }
2534     else
2535     {
2536         ThrowCannotEvaluateStatically(spanmoduleIdushortNode.GetSpan()ushortNode.ModuleId());
2537     }
2538 }


Declaration at line 644 of Evaluator.cpp


Visit Member Function

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

Definition at line 2740 of Evaluator.cpp :
2741 {
2742     value.reset(new UStringValue(ustringLiteralNode.GetSpan()ustringLiteralNode.ModuleId()boundCompileUnit.Install(ustringLiteralNode.Value())ustringLiteralNode.Value()));
2743 }


Declaration at line 672 of Evaluator.cpp


Visit Member Function

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

Definition at line 3417 of Evaluator.cpp :
3418 {
3419     EvaluateUnaryOp(unaryMinusNodeunaryMinus);
3420 }


Declaration at line 704 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateUnaryOp


Visit Member Function

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

Definition at line 3412 of Evaluator.cpp :
3413 {
3414     EvaluateUnaryOp(unaryPlusNodeunaryPlus);
3415 }


Declaration at line 703 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::EvaluateUnaryOp


Visit Member Function

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

Definition at line 2648 of Evaluator.cpp :
2649 {
2650     if (dontThrow)
2651     {
2652         error = true;
2653     }
2654     else
2655     {
2656         ThrowCannotEvaluateStatically(spanmoduleIdvoidNode.GetSpan()voidNode.ModuleId());
2657     }
2658 }


Declaration at line 654 of Evaluator.cpp


Visit Member Function

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

Definition at line 2720 of Evaluator.cpp :
2721 {
2722     value.reset(new WCharValue(wcharLiteralNode.GetSpan()wcharLiteralNode.ModuleId()wcharLiteralNode.Value()));
2723 }


Declaration at line 668 of Evaluator.cpp


Visit Member Function

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

Definition at line 2624 of Evaluator.cpp :
2625 {
2626     if (dontThrow)
2627     {
2628         error = true;
2629     }
2630     else
2631     {
2632         ThrowCannotEvaluateStatically(spanmoduleIdwcharNode.GetSpan()wcharNode.ModuleId());
2633     }
2634 }


Declaration at line 652 of Evaluator.cpp


Visit Member Function

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

Definition at line 2735 of Evaluator.cpp :
2736 {
2737     value.reset(new WStringValue(wstringLiteralNode.GetSpan()wstringLiteralNode.ModuleId()boundCompileUnit.Install(wstringLiteralNode.Value())wstringLiteralNode.Value()));
2738 }


Declaration at line 671 of Evaluator.cpp


Visit Member Function

void cmajor::binder::Evaluator::Visit(WhileStatementNode& whileStatementNode) override

Definition at line 1737 of Evaluator.cpp
Declaration at line 611 of Evaluator.cpp

Calls: cmajor::binder::Evaluator::GetValue


top | up | prev | next