All files / src/abap/nodes _abstract_node.ts

100% Statements 35/35
100% Branches 6/6
100% Functions 6/6
100% Lines 35/35

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 351x 1x 1x 1x 1x 1x 1x 463144x 463144x 1x 1x 1x 1x 1x 1x 45871x 45871x 1x 1x 369326x 369326x 1x 1x 1865883x 1865883x 1x 1x 3382x 3382x 1x 1x 42687x 42687x 1x 1x
import {INode} from "./_inode";
import {AbstractToken} from "../1_lexer/tokens/abstract_token";
 
export abstract class AbstractNode<T extends INode> implements INode {
  protected children: T[];
 
  public constructor() {
    this.children = [];
  }
 
  public abstract get(): any;
  public abstract getFirstToken(): AbstractToken;
  public abstract getLastToken(): AbstractToken;
 
  public addChild(n: T) {
    this.children.push(n);
  }
 
  public setChildren(children: T[]) {
    this.children = children;
  }
 
  public getChildren(): readonly T[] {
    return this.children;
  }
 
  public getFirstChild(): T | undefined {
    return this.children[0];
  }
 
  public getLastChild(): T | undefined {
    return this.children[this.children.length - 1];
  }
 
}