|
| | Diff () |
| |
| | Diff (const sequence &a, const sequence &b) |
| |
| | Diff (const sequence &a, const sequence &b, bool deletesFirst) |
| |
| | Diff (const sequence &a, const sequence &b, const comparator &comp) |
| |
| | Diff (const sequence &a, const sequence &b, bool deleteFirst, const comparator &comp) |
| |
| | ~Diff () |
| |
| long long | getEditDistance () const |
| |
| Lcs< elem > | getLcs () const |
| |
| elemVec | getLcsVec () const |
| |
| Ses< elem > | getSes () const |
| |
| uniHunkVec | getUniHunks () const |
| |
| bool | isHuge () const |
| |
| void | onHuge () |
| |
| void | offHuge () |
| |
| bool | isUnserious () const |
| |
| void | onUnserious () |
| |
| void | offUnserious () |
| |
| void | onOnlyEditDistance () |
| |
| bool | hugeEnabled () const |
| |
| void | enableHuge () |
| |
| void | disableHuge () |
| |
| bool | trivialEnabled () const |
| |
| void | enableTrivial () const |
| |
| void | disableTrivial () |
| |
| void | editDistanceOnlyEnabled () |
| |
| sequence | uniPatch (const sequence &seq) |
| |
| sequence | patch (const sequence &seq) const |
| |
| void | compose () |
| |
| template<typename stream > |
| void | printSES (stream &out) const |
| |
| void | printSES (ostream &out=cout) const |
| |
| template<typename stream , template< typename SEET, typename STRT > class PT> |
| void | printSES (stream &out) const |
| |
| template<typename stream > |
| void | printUnifiedFormat (stream &out) const |
| |
| void | printUnifiedFormat (ostream &out=cout) const |
| |
| void | composeUnifiedHunks () |
| |
template<typename elem, typename sequence = vector< elem >, typename comparator = Compare< elem >>
class dtl::Diff< elem, sequence, comparator >
diff class template sequence must support random_access_iterator.
Definition at line 48 of file Diff.hpp.
template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
| void dtl::Diff< elem, sequence, comparator >::compose |
( |
| ) |
|
|
inline |
compose Longest Common Subsequence and Shortest Edit Script. The algorithm implemented here is based on "An O(NP) Sequence Comparison Algorithm" described by Sun Wu, Udi Manber and Gene Myers
Definition at line 258 of file Diff.hpp.
References dtl::Diff< elem, sequence, comparator >::delta, dtl::Diff< elem, sequence, comparator >::editDistance, dtl::Diff< elem, sequence, comparator >::editDistanceOnly, dtl::Diff< elem, sequence, comparator >::fp, dtl::Diff< elem, sequence, comparator >::isHuge(), dtl::Diff< elem, sequence, comparator >::M, dtl::MAX_CORDINATES_SIZE, dtl::Diff< elem, sequence, comparator >::N, dtl::Diff< elem, sequence, comparator >::offset, dtl::Diff< elem, sequence, comparator >::path, dtl::Diff< elem, sequence, comparator >::pathCordinates, dtl::Diff< elem, sequence, comparator >::recordSequence(), dtl::Diff< elem, sequence, comparator >::snake(), dtl::Point::x, and dtl::Point::y.
Referenced by compareFiles(), and FileRevisions::diff().
template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
template<typename stream >
| static Ses< elem > dtl::Diff< elem, sequence, comparator >::composeSesFromStream |
( |
stream & |
st | ) |
|
|
inlinestatic |
template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
| void dtl::Diff< elem, sequence, comparator >::composeUnifiedHunks |
( |
| ) |
|
|
inline |
compose Unified Format Hunks from Shortest Edit Script
Definition at line 371 of file Diff.hpp.
References dtl::uniHunk< sesElem >::a, dtl::eleminfo::afterIdx, dtl::uniHunk< sesElem >::b, dtl::eleminfo::beforeIdx, dtl::uniHunk< sesElem >::c, dtl::uniHunk< sesElem >::change, dtl::uniHunk< sesElem >::common, dtl::uniHunk< sesElem >::d, dtl::DTL_CONTEXT_SIZE, dtl::DTL_SEPARATE_SIZE, dtl::uniHunk< sesElem >::inc_dec_count, dtl::Diff< elem, sequence, comparator >::joinSesVec(), dtl::Diff< elem, sequence, comparator >::ses, dtl::SES_ADD, dtl::SES_COMMON, dtl::SES_DELETE, dtl::eleminfo::type, dtl::Diff< elem, sequence, comparator >::uniHunks, and dtl::Diff< elem, sequence, comparator >::wasSwapped().
Referenced by compareFiles(), and FileRevisions::diff().
template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
template<typename stream >
| static void dtl::Diff< elem, sequence, comparator >::printSES |
( |
const Ses< elem > & |
s, |
|
|
stream & |
out |
|
) |
| |
|
inlinestatic |
template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
template<typename stream >
| void dtl::Diff< elem, sequence, comparator >::printSES |
( |
stream & |
out | ) |
const |
|
inline |
template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
template<typename stream , template< typename SEET, typename STRT > class PT>
| void dtl::Diff< elem, sequence, comparator >::printSES |
( |
stream & |
out | ) |
const |
|
inline |
template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
template<typename stream >
| static void dtl::Diff< elem, sequence, comparator >::printUnifiedFormat |
( |
const uniHunkVec & |
hunks, |
|
|
stream & |
out |
|
) |
| |
|
inlinestatic |
print unified format difference with given unified format hunks
Definition at line 360 of file Diff.hpp.
template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
template<typename stream >
| void dtl::Diff< elem, sequence, comparator >::printUnifiedFormat |
( |
stream & |
out | ) |
const |
|
inline |
template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
| void dtl::Diff< elem, sequence, comparator >::recordOddSequence |
( |
long long |
idx, |
|
|
long long |
length, |
|
|
sequence_const_iter |
it, |
|
|
const edit_t |
et |
|
) |
| |
|
inlineprivate |
template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
record SES and LCS
Definition at line 577 of file Diff.hpp.
References dtl::Diff< elem, sequence, comparator >::B, dtl::Diff< elem, sequence, comparator >::delta, dtl::Diff< elem, sequence, comparator >::fp, dtl::Diff< elem, sequence, comparator >::lcs, dtl::Diff< elem, sequence, comparator >::M, dtl::Diff< elem, sequence, comparator >::N, dtl::Diff< elem, sequence, comparator >::offset, dtl::Diff< elem, sequence, comparator >::path, dtl::Diff< elem, sequence, comparator >::recordOddSequence(), dtl::Diff< elem, sequence, comparator >::ses, dtl::SES_ADD, dtl::SES_COMMON, dtl::SES_DELETE, dtl::Diff< elem, sequence, comparator >::trivialEnabled(), and dtl::Diff< elem, sequence, comparator >::wasSwapped().
Referenced by dtl::Diff< elem, sequence, comparator >::compose().
template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
| long long dtl::Diff< elem, sequence, comparator >::snake |
( |
const long long & |
k, |
|
|
const long long & |
above, |
|
|
const long long & |
below |
|
) |
| |
|
inlineprivate |
search shortest path and record the path
Definition at line 557 of file Diff.hpp.
References dtl::Diff< elem, sequence, comparator >::B, dtl::Diff< elem, sequence, comparator >::cmp, dtl::Diff< elem, sequence, comparator >::editDistanceOnly, dtl::Point::k, dtl::Diff< elem, sequence, comparator >::M, max, dtl::Diff< elem, sequence, comparator >::N, dtl::Diff< elem, sequence, comparator >::offset, dtl::Diff< elem, sequence, comparator >::path, dtl::Diff< elem, sequence, comparator >::pathCordinates, dtl::Diff< elem, sequence, comparator >::swapped, dtl::Point::x, and dtl::Point::y.
Referenced by dtl::Diff< elem, sequence, comparator >::compose().
template<typename elem , typename sequence = vector< elem >, typename comparator = Compare< elem >>
| sequence dtl::Diff< elem, sequence, comparator >::uniPatch |
( |
const sequence & |
seq | ) |
|
|
inline |