import type { TokenInfo } from "../types";
import type { TokenInfoPass } from "./TokenInfoPass";
export class SortTokenPass implements TokenInfoPass {
process(tokens: TokenInfo[]): TokenInfo[] {
return tokens.sort((a, b) => {
// First compare start line
if (a.span.start.line !== b.span.start.line) {
return a.span.start.line - b.span.start.line;
}
// If on same line, compare start column
return a.span.start.column - b.span.start.column;
});
}
}
Sort Token Pass
Sorts tokens by their start position to ensure consistent processing order