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 570164x 570164x 1x 1x 1x 1x 1x 1x 50047x 50047x 1x 1x 465402x 465402x 1x 1x 2333280x 2333280x 1x 1x 3618x 3618x 1x 1x 46319x 46319x 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];
  }
 
}