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 | 1x 1x 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 1x 1x | import {IStatement} from "./_statement";
import {seq, alt, opt, altPrio, optPrio, plus, per, ver} from "../combi";
import {Field, Source, Dynamic, FieldSub, ComponentCompareSimple, ReadTableTarget, SimpleSource2} from "../expressions";
import {IStatementRunnable} from "../statement_runnable";
import {Version} from "../../../version";
import {TransportingFields} from "../expressions/transporting_fields";
export class ReadTable implements IStatement {
public getMatcher(): IStatementRunnable {
const comparing = seq("COMPARING", alt(plus(FieldSub), plus(Dynamic)));
const index = seq("INDEX", Source);
const components = seq(alt(Field, Dynamic), "COMPONENTS", ComponentCompareSimple);
const key = seq(altPrio("WITH KEY", "WITH TABLE KEY"),
alt(ComponentCompareSimple,
components,
seq(optPrio("="), Source)));
const using = seq("USING KEY", alt(Field, Dynamic));
const from = seq("FROM", Source);
const perm = per(alt(index, key, from),
ReadTableTarget,
using,
comparing,
"CASTING",
seq("TRANSPORTING", altPrio("ALL FIELDS", "NO FIELDS", TransportingFields)),
"BINARY SEARCH");
return seq("READ TABLE",
alt(SimpleSource2, ver(Version.v740sp02, Source, Version.OpenABAP)),
opt(perm));
}
} |