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 232369x 232369x 232369x 1x 1x 1x     1x 1x 3218847x 3218847x 1x 1x 100252x 100252x 1x 1x 138402x 138402x 1x 1x 55670x 55670x 1x 1x 16503x 16503x 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);
  }
}