masters-thesis/op-finder/OperationAnalyzer.hpp

24 lines
786 B
C++

//
// Created by erki on 24.02.21.
//
#ifndef C_ANALYZER_OPERATIONANALYZER_HPP
#define C_ANALYZER_OPERATIONANALYZER_HPP
#include <clang/AST/AST.h>
class OperationAnalyzer
{
public:
void processAssignment(const clang::BinaryOperator* op, const clang::SourceManager& source_manager);
void processBinaryArithmetic(const clang::BinaryOperator* op, const clang::SourceManager& source_manager);
void processCompoundAssignment(const clang::CompoundAssignOperator* op, const clang::SourceManager& source_manager);
void processUnaryArithmetic(const clang::UnaryOperator* op, const clang::SourceManager& source_manager);
private:
void _processExpressionTypes(const clang::Expr* source, const clang::Expr* lhs, const clang::Expr* rhs);
};
#endif //C_ANALYZER_OPERATIONANALYZER_HPP