getNextMergedLine merged pairs of adjacent lines instead of merging them all with the first one.
Consider AnnotatedLine A, B and C.
The function merges A with B then B with C and returns a pointer to A.
A.Last is not updated when B and C are merged together. (A.Last == B.Last)
Subsequent lines need to be merged with the first.
By merging A with B then with C, A.Last points to the proper token. (A.Last == C.Last)