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 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import {seq, opt, alt, ver, Expression, altPrio, plus, optPrio, failStar} from "../combi";
import {FieldSub, Field} from ".";
import {Version} from "../../../version";
import {IStatementRunnable} from "../statement_runnable";
export class TypeTableKey extends Expression {
public getRunnable(): IStatementRunnable {
const uniqueness = alt("NON-UNIQUE", "UNIQUE");
const defaultKey = "DEFAULT KEY";
const emptyKey = ver(Version.v740sp02, "EMPTY KEY", Version.OpenABAP);
const components = plus(alt(seq("WITH", failStar()), FieldSub));
const further = seq(alt("WITHOUT", "WITH"), "FURTHER SECONDARY KEYS");
const alias = seq("ALIAS", Field);
const key = seq("WITH",
opt(uniqueness),
altPrio(defaultKey, emptyKey,
seq(opt(alt("SORTED", "HASHED")),
"KEY",
alt(seq(Field, opt(alias), "COMPONENTS", components),
components))),
optPrio(further),
optPrio("READ-ONLY"));
return key;
}
}
|