Description
JPlag always had the assumption that a match (meaning two matching subsequences of tokens between two programs) has the same length on both sides. Note that this does not mean the code fragments that were matched have the same length, but the number of tokens that represent these code fragments is the same.
In the future, we want to move away from this assumption. Especially when using defence mechanisms like subsequence match merging, matches can have different lengths. We circumvented this issue by removing tokens in the past. In the future, we want to change how we represent matches by introducing two lengths for each side of a match (see #2268).
This has almost no effect on users. The main difference is a change in the API:
JPlag/core/src/main/java/de/jplag/Match.java
Lines 3 to 10 in df45b33
This change would introduce two lengths per match.