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

100% Statements 25/25
100% Branches 4/4
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 125x 125x 125x 135x 7x 7x 135x 135x 135x 134x 134x 135x 125x 125x 1x 1x
import * as Expressions from "../../2_statements/expressions";
import {ExpressionNode, StatementNode} from "../../nodes";
import {Dynamic} from "./dynamic";
import {DatabaseTable, DatabaseTableSource} from "./database_table";
import {SyntaxInput} from "../_syntax_input";
 
export class SQLFrom {
 
  public runSyntax(node: ExpressionNode | StatementNode, input: SyntaxInput): 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, input);
      }
 
      const dbtab = from.findFirstExpression(Expressions.DatabaseTable);
      if (dbtab !== undefined) {
        ret.push(new DatabaseTable().runSyntax(dbtab, input));
      }
    }
    return ret;
  }
 
}