All files / src/abap/1_lexer lexer_buffer.ts

100% Statements 30/30
100% Branches 7/7
100% Functions 5/5
100% Lines 30/30

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 311x 1x 1x 1x 8274x 8274x 1x 1x 867866x 867866x 867866x 1x 1x 255599x 255599x 1x 1x 255599x 255599x 1x 1x 2521x 2521x 16003x 5109x 5109x 16003x 2521x 2521x 1x  
export class LexerBuffer {
  private buf: string;
 
  public constructor() {
    this.buf = "";
  }
 
  public add(s: string): string {
    this.buf = this.buf + s;
    return this.buf;
  }
 
  public get(): string {
    return this.buf;
  }
 
  public clear(): void {
    this.buf = "";
  }
 
  public countIsEven(char: string): boolean {
    let count = 0;
    for (let i = 0; i < this.buf.length; i += 1) {
      if (this.buf.charAt(i) === char) {
        count += 1;
      }
    }
    return count % 2 === 0;
  }
}