All files / src/abap/5_syntax/expressions sql_from.ts

100% Statements 25/25
100% Branches 6/6
100% Functions 1/1
100% Lines 25/25

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 251x 1x 1x 1x 1x 1x 1x 1x 1x 115x 115x 115x 121x 7x 7x 119x 119x 121x 118x 118x 121x 103x 103x 1x 1x
import * as Expressions from "../../2_statements/expressions";
import {ExpressionNode, StatementNode} from "../../nodes";
import {CurrentScope} from "../_current_scope";
import {Dynamic} from "./dynamic";
import {DatabaseTable, DatabaseTableSource} from "./database_table";
 
export class SQLFrom {
 
  public runSyntax(node: ExpressionNode | StatementNode, scope: CurrentScope, filename: string): DatabaseTableSource[] {
    const ret: DatabaseTableSource[] = [];
    const fromList = node.findAllExpressions(Expressions.SQLFromSource);
    for (const from of fromList) {
      for (const d of from.findAllExpressions(Expressions.Dynamic)) {
        new Dynamic().runSyntax(d, scope, filename);
      }
 
      const dbtab = from.findFirstExpression(Expressions.DatabaseTable);
      if (dbtab !== undefined) {
        ret.push(new DatabaseTable().runSyntax(dbtab, scope, filename));
      }
    }
    return ret;
  }
 
}