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 | 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 1x 1x | import {IStatement} from "./_statement";
import {verNot, str, seq, altPrio, per, opt} from "../combi";
import {Target, Source} from "../expressions";
import {Version} from "../../../version";
import {IStatementRunnable} from "../statement_runnable";
export class OpenDataset implements IStatement {
public getMatcher(): IStatementRunnable {
const mode = seq("IN",
opt("LEGACY"),
altPrio("BINARY MODE", "TEXT MODE"));
const code = seq("CODE PAGE", Source);
const direction = seq("FOR", altPrio("OUTPUT", "INPUT", "UPDATE", "APPENDING"));
const encoding = seq("ENCODING", altPrio("DEFAULT", "UTF-8", "NON-UNICODE"));
const pos = seq("AT POSITION", Source);
const message = seq("MESSAGE", Target);
const ignoring = str("IGNORING CONVERSION ERRORS");
const replacement = seq("REPLACEMENT CHARACTER", Source);
const bom = str("SKIPPING BYTE-ORDER MARK");
const wbom = str("WITH BYTE-ORDER MARK");
const type = seq("TYPE", Source);
const filter = seq("FILTER", Source);
const linetype = altPrio("SMART", "NATIVE", "UNIX");
const feed = seq("WITH", linetype, "LINEFEED");
const windows = str("WITH WINDOWS LINEFEED");
const ret = seq("OPEN DATASET",
Source,
opt(per(direction, type, mode, wbom, replacement, filter, encoding, pos, message, ignoring, bom, code, feed, windows)));
return verNot(Version.Cloud, ret);
}
} |