53e8e0b4071f3e7ca1caf4e8a016689a9c0e77efe3f9c9a51bab93744ddc0ca20a585425eaa0710640d9cc2114c3f78567bb7454bc9c55ec29e773130c0530 640 B

1234567891011121314151617181920
  1. import { ContiguousMultilineTokens } from './contiguousMultilineTokens.js';
  2. export class ContiguousMultilineTokensBuilder {
  3. constructor() {
  4. this._tokens = [];
  5. }
  6. add(lineNumber, lineTokens) {
  7. if (this._tokens.length > 0) {
  8. const last = this._tokens[this._tokens.length - 1];
  9. if (last.endLineNumber + 1 === lineNumber) {
  10. // append
  11. last.appendLineTokens(lineTokens);
  12. return;
  13. }
  14. }
  15. this._tokens.push(new ContiguousMultilineTokens(lineNumber, [lineTokens]));
  16. }
  17. finalize() {
  18. return this._tokens;
  19. }
  20. }