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

100% Statements 40/40
100% Branches 1/1
100% Functions 1/1
100% Lines 40/40

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 38 39 40 411x 1x 1x 1x 1x 1x 1x 1x 1x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 1x 1x  
import {IStatement} from "./_statement";
import {verNotLang, seq, plus, altPrio, opt, per, plusPrio} from "../combi";
import {Field, Source, Target, SimpleSource3, Cond, ProvideFieldName} from "../expressions";
import {LanguageVersion} from "../../../version";
import {IStatementRunnable} from "../statement_runnable";
 
export class Provide implements IStatement {
 
  public getMatcher(): IStatementRunnable {
 
    const list = plusPrio(altPrio("*", ProvideFieldName));
 
    const fields = seq("FIELDS",
                       list,
                       "FROM",
                       Source,
                       "INTO",
                       Target,
                       "VALID",
                       Field,
                       "BOUNDS",
                       Field,
                       "AND",
                       Field);
 
    const from = seq("FROM", Source);
 
    const fieldList = seq(plus(list), from);
 
    const where = seq("WHERE", Cond);
    const between = seq("BETWEEN", SimpleSource3, "AND", SimpleSource3);
 
    const ret = seq("PROVIDE",
                    altPrio(plusPrio(fields), plusPrio(fieldList)),
                    opt(per(between, where)));
 
    return verNotLang(LanguageVersion.Cloud, ret);
  }
 
}