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 507669x 507669x 1x 1x 1x 1x 1x 1x 48321x 48321x 1x 1x 408845x 408845x 1x 1x 2070198x 2070198x 1x 1x 3581x 3581x 1x 1x 45127x 45127x 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];
  }
 
}