f378c357c1fa88fc5ccc80e2f04311b7ddf358496da400ba2e51b78470a89959425c5f3fff7976c96c56738f535cba0b6aa73a56f9fc9c2a6ddfb9802132a2 781 B

123456789101112131415161718192021222324252627282930
  1. /**
  2. * Represents contiguous tokens over a contiguous range of lines.
  3. */
  4. export class ContiguousMultilineTokens {
  5. constructor(startLineNumber, tokens) {
  6. this._startLineNumber = startLineNumber;
  7. this._tokens = tokens;
  8. }
  9. /**
  10. * (Inclusive) start line number for these tokens.
  11. */
  12. get startLineNumber() {
  13. return this._startLineNumber;
  14. }
  15. /**
  16. * (Inclusive) end line number for these tokens.
  17. */
  18. get endLineNumber() {
  19. return this._startLineNumber + this._tokens.length - 1;
  20. }
  21. /**
  22. * @see {@link _tokens}
  23. */
  24. getLineTokens(lineNumber) {
  25. return this._tokens[lineNumber - this._startLineNumber];
  26. }
  27. appendLineTokens(lineTokens) {
  28. this._tokens.push(lineTokens);
  29. }
  30. }