42 lines
1.0 KiB
C
42 lines
1.0 KiB
C
|
#pragma once
|
|||
|
#include "xast_parse.h"
|
|||
|
#include <QHash>
|
|||
|
|
|||
|
namespace compare {
|
|||
|
enum class Type {
|
|||
|
UpstreamAlter,
|
|||
|
FragmentAlter
|
|||
|
};
|
|||
|
|
|||
|
class Compare {
|
|||
|
private:
|
|||
|
QHash<QString, std::shared_ptr<xast_parse::StoryDefine>> _graph_base;
|
|||
|
|
|||
|
public:
|
|||
|
explicit Compare(const QHash<QString, std::shared_ptr<xast_parse::StoryDefine>>& graph);
|
|||
|
|
|||
|
const QHash<QString, std::shared_ptr<xast_parse::StoryDefine>> &graphBind() const;
|
|||
|
|
|||
|
QList<std::shared_ptr<xast_parse::FragmentDefine>> changeCompare(Type type,
|
|||
|
const QHash<QString, std::shared_ptr<xast_parse::StoryDefine>>& g_old) const;
|
|||
|
|
|||
|
private:
|
|||
|
/*
|
|||
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱȽ<EFBFBD>
|
|||
|
* @param a <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param b <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @return true-<EFBFBD>б<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
bool fragment_check(std::shared_ptr<xast_parse::FragmentDefine> a, std::shared_ptr<xast_parse::FragmentDefine> b) const;
|
|||
|
/*
|
|||
|
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱȽ<EFBFBD>
|
|||
|
* @param a <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param b <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @return true-<EFBFBD>б<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*/
|
|||
|
bool upstream_check(std::shared_ptr<xast_parse::IElementSlice> a, std::shared_ptr<xast_parse::IElementSlice> b) const;
|
|||
|
};
|
|||
|
|
|||
|
}
|
|||
|
|