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 | 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 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), 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", "TRANSPORTING ALL FIELDS", seq("TRANSPORTING", TransportingFields), "BINARY SEARCH"); return seq("READ TABLE", alt(SimpleSource2, ver(Version.v740sp02, Source)), opt(perm)); } } |