All files / src/abap/1_lexer/tokens abstract_token.ts

95.23% Statements 40/42
100% Branches 7/7
100% Functions 7/7
95.23% Lines 40/42

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 421x 1x 1x 1x 1x 1x 1x 1x 244821x 244821x 244821x 244821x 1x 1x 1x     1x 1x 1446475x 1446475x 1x 1x 2837094x 2837094x 1x 1x 102283x 102283x 1x 1x 144475x 144475x 1x 1x 56751x 56751x 1x 1x 16985x 16985x 1x
import {Position} from "../../../position";
 
export abstract class AbstractToken {
  private readonly start: Position;
  private readonly str: string;
  private readonly strUpper: string;
 
  public constructor(start: Position, str: string) {
    this.start = start;
    this.str = str;
    this.strUpper = str.toUpperCase();
  }
 
  // special function, for debugging purposes, see https://github.com/abaplint/abaplint/pull/3137
  public [Symbol.for("debug.description")](){
    return `${this.constructor.name} ${this.str}`;
  }
 
  public getStr(): string {
    return this.str;
  }
 
  public getUpperStr(): string {
    return this.strUpper;
  }
 
  public getRow(): number {
    return this.start.getRow();
  }
 
  public getCol(): number {
    return this.start.getCol();
  }
 
  public getStart(): Position {
    return this.start;
  }
 
  public getEnd(): Position {
    return new Position(this.start.getRow(), this.start.getCol() + this.str.length);
  }
}