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 41 42 43 44 45 46 47 48 49 50 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 1x 1x | import {IStatement} from "./_statement";
import {verNot, str, seq, opt, altPrio, per, regex as reg, optPrio} from "../combi";
import {Source, Constant, FieldChain, Dynamic, Field, FieldSub, RadioGroupName, Modif, TypeName, SimpleSource1, DatabaseTable, ConstantFieldLength, FieldOffset, FieldLength} from "../expressions";
import {Version} from "../../../version";
import {IStatementRunnable} from "../statement_runnable";
export class Parameter implements IStatement {
public getMatcher(): IStatementRunnable {
const para = altPrio("PARAMETER", "PARAMETERS");
const def = seq("DEFAULT", altPrio(Constant, FieldChain));
const radio = seq("RADIOBUTTON GROUP", RadioGroupName);
const type = seq(altPrio("TYPE", "LIKE"), altPrio(TypeName, Dynamic), optPrio(FieldOffset), optPrio(FieldLength));
const memory = seq("MEMORY ID", SimpleSource1);
const listbox = str("AS LISTBOX");
const cmd = seq("USER-COMMAND", reg(/^[\w\?\/]+$/));
const modif = seq("MODIF ID", Modif);
const visible = seq("VISIBLE LENGTH", Constant);
const length = seq("LENGTH", Constant);
const match = seq("MATCHCODE OBJECT", Field);
const decimals = seq("DECIMALS", Source);
const forTable = seq("FOR TABLE", DatabaseTable, opt("VALUE-REQUEST"));
const perm = per(type,
def,
"OBLIGATORY",
match,
cmd,
length,
decimals,
radio,
memory,
modif,
listbox,
visible,
forTable,
"VALUE CHECK",
"NO-DISPLAY",
"AS CHECKBOX",
"LOWER CASE");
const ret = seq(para,
FieldSub,
opt(ConstantFieldLength),
opt(perm));
return verNot(Version.Cloud, ret);
}
} |