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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | 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 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 {verNot, seq, opt, alt, per, altPrio} from "../combi";
import {Target, Source, Dynamic, FieldSub, Color, WriteOffsetLength} from "../expressions";
import {Version} from "../../../version";
import {IStatementRunnable} from "../statement_runnable";
export class Write implements IStatement {
public getMatcher(): IStatementRunnable {
const mask = seq("USING",
altPrio("NO EDIT MASK",
seq("EDIT MASK", Source)));
const onOff = alt(altPrio("ON", "OFF"), seq("=", FieldSub));
const dateFormat = altPrio("DD/MM/YY",
"MM/DD/YY",
"DD/MM/YYYY",
"MM/DD/YYYY",
"DDMMYY",
"MMDDYY",
"YYMMDD");
const as = seq("AS", altPrio("LINE", "ICON", "CHECKBOX", "SYMBOL"));
const to = seq("TO", Target);
const options = per(mask,
to,
seq("EXPONENT", Source),
"NO-GROUPING",
"NO-ZERO",
"CENTERED",
seq("INPUT", opt(onOff)),
"NO-GAP",
"LEFT-JUSTIFIED",
as,
seq("FRAMES", onOff),
seq("HOTSPOT", opt(onOff)),
"RIGHT-JUSTIFIED",
seq("TIME ZONE", Source),
seq("UNDER", Source),
seq("STYLE", Source),
seq("ROUND", Source),
seq("QUICKINFO", Source),
"ENVIRONMENT TIME FORMAT",
dateFormat,
seq("UNIT", Source),
seq("INTENSIFIED", opt(onOff)),
seq("INDEX", Source),
seq("DECIMALS", Source),
seq("INVERSE", opt(onOff)),
Color,
seq("CURRENCY", Source),
"RESET",
"NO-SIGN");
const ret = seq("WRITE", alt("AT /",
seq(opt(WriteOffsetLength),
alt(Source, Dynamic, "/"),
opt(options))));
return verNot(Version.Cloud, ret);
}
} |