All files / src/abap/2_statements/statements provide.ts

100% Statements 38/38
100% Branches 1/1
100% Functions 1/1
100% Lines 38/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 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 1x 1x
import {IStatement} from "./_statement";
import {verNot, seq, plus, altPrio} from "../combi";
import {Field, Source, Target, SimpleSource3} from "../expressions";
import {Version} from "../../../version";
import {IStatementRunnable} from "../statement_runnable";
 
export class Provide implements IStatement {
 
  public getMatcher(): IStatementRunnable {
 
    const list = plus(altPrio("*", Field));
 
    const fields = seq("FIELDS",
                       list,
                       "FROM",
                       Source,
                       "INTO",
                       Target,
                       "VALID",
                       Field,
                       "BOUNDS",
                       Field,
                       "AND",
                       Field);
 
    const fieldList = altPrio(seq(list, "FROM", Source), list);
 
    const ret = seq("PROVIDE",
                    altPrio(plus(fields), plus(fieldList)),
                    "BETWEEN",
                    SimpleSource3,
                    "AND",
                    SimpleSource3);
 
    return verNot(Version.Cloud, ret);
  }
 
}