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

94.44% Statements 34/36
100% Branches 6/6
100% Functions 6/6
94.44% Lines 34/36

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 361x 1x 1x 1x 1x 1x 1x 230982x 230982x 230982x 1x 1x 1x     1x 1x 3190396x 3190396x 1x 1x 99625x 99625x 1x 1x 138033x 138033x 1x 1x 55288x 55288x 1x 1x 16426x 16426x 1x
import {Position} from "../../../position";
 
export abstract class AbstractToken {
  private readonly start: Position;
  private readonly str: string;
 
  public constructor(start: Position, str: string) {
    this.start = start;
    this.str = str;
  }
 
  // 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 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);
  }
}