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

94.73% Statements 36/38
85.71% Branches 6/7
100% Functions 1/1
94.73% Lines 36/38

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 35 36 37 381x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 21x 21x 13x 13x 13x 13x     13x 21x 21x 7x 7x 21x 21x 9x 9x 21x 21x 18x 15x 15x 18x 21x 21x 1x
import * as Expressions from "../../2_statements/expressions";
import {ExpressionNode} from "../../nodes";
import {VoidType} from "../../types/basic";
import {ComponentCompare} from "./component_compare";
import {InlineData} from "./inline_data";
import {FSTarget} from "./fstarget";
import {Target} from "./target";
import {SyntaxInput} from "../_syntax_input";
import {Source} from "./source";
 
export class LoopGroupBy {
  public runSyntax(node: ExpressionNode, input: SyntaxInput): void {
 
    for (const t of node.findAllExpressions(Expressions.Target)) {
      const inline = t.findDirectExpression(Expressions.InlineData);
      if (inline) {
        new InlineData().runSyntax(inline, input, new VoidType("todoGroupBy"));
      } else {
        new Target().runSyntax(t, input);
      }
    }
 
    for (const t of node.findAllExpressions(Expressions.FSTarget)) {
      new FSTarget().runSyntax(t, input, new VoidType("todoGroupBy"));
    }
 
    for (const t of node.findDirectExpressions(Expressions.Source)) {
      new Source().runSyntax(t, input, new VoidType("todoGroupBy"));
    }
 
    for (const c of node.findDirectExpressions(Expressions.LoopGroupByComponent)) {
      for (const t of c.findDirectExpressions(Expressions.ComponentCompareSingle)) {
        new ComponentCompare().runSyntax(t, input);
      }
    }
 
  }
}