polserver/pol-core/bscript/compiler/optimizer/ShortCircuitCombiner.cpp
turleypol 1463b76c7c
Includes are now all relative to pol-core basefolder (#906)
* all except pol

* pol and includes under defines

* something weird has happened

* remove own folder from include searchpath

* fixed remaining, adapted include style for external headers

* missing include
2026-07-25 23:01:18 +02:00

32 lines
1 KiB
C++

#include "bscript/compiler/optimizer/ShortCircuitCombiner.h"
#include "bscript/compiler/Report.h"
#include "bscript/compiler/ast/BinaryOperatorShortCircuit.h"
namespace Pol::Bscript::Compiler
{
class ShortCircuitCombinerChildVisitor : public NodeVisitor
{
public:
ShortCircuitCombinerChildVisitor() = default;
void visit_children( Node& ) override {};
void visit_binary_operator_short_circuit( BinaryOperatorShortCircuit& child ) override
{
// its a child so no need to add convert instruction
child.generate_logical_convert = false;
};
};
ShortCircuitCombiner::ShortCircuitCombiner( Report& ) {}
void ShortCircuitCombiner::visit_children( Node& ) {}
void ShortCircuitCombiner::visit_binary_operator_short_circuit( BinaryOperatorShortCircuit& op )
{
// dont visit recursivly just direct both sides
ShortCircuitCombinerChildVisitor lhs_child{};
op.lhs().accept( lhs_child );
ShortCircuitCombinerChildVisitor rhs_child{};
op.rhs().accept( rhs_child );
}
} // namespace Pol::Bscript::Compiler