@abaplint/core
Version:
abaplint - Core API
30 lines • 2.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SyntaxCheck = void 0;
const combi_1 = require("../combi");
const expressions_1 = require("../expressions");
const version_1 = require("../../../version");
class SyntaxCheck {
getMatcher() {
const program = (0, combi_1.seq)("PROGRAM", expressions_1.Source);
const offset = (0, combi_1.seq)("OFFSET", expressions_1.Target);
const frame = (0, combi_1.seq)("FRAME ENTRY", expressions_1.Target);
const include = (0, combi_1.seq)("INCLUDE", expressions_1.Target);
const trace = (0, combi_1.seq)("TRACE-TABLE", expressions_1.Target);
const line = (0, combi_1.seq)("LINE", expressions_1.Target);
const word = (0, combi_1.seq)("WORD", expressions_1.Target);
const messageId = (0, combi_1.seq)("MESSAGE-ID", expressions_1.Target);
const message = (0, combi_1.seq)("MESSAGE", expressions_1.Target);
const id = (0, combi_1.seq)("ID", expressions_1.Source, "TABLE", expressions_1.Target);
const replacing = (0, combi_1.seq)("REPLACING", expressions_1.Target);
const directory = (0, combi_1.seq)("DIRECTORY ENTRY", expressions_1.Source);
const dump = (0, combi_1.seq)("SHORTDUMP-ID", expressions_1.Source);
const filter = (0, combi_1.seq)("FILTER", expressions_1.Source);
const syntax = (0, combi_1.seq)((0, combi_1.optPrio)("PROGRAM"), expressions_1.Source, (0, combi_1.per)(message, line, word, offset, program, replacing, directory, frame, include, messageId, trace, dump, filter, (0, combi_1.plus)(id)));
const dynpro = (0, combi_1.seq)("DYNPRO", expressions_1.Source, expressions_1.Source, expressions_1.Source, expressions_1.Source, (0, combi_1.per)(message, line, word, offset, messageId, trace));
const ret = (0, combi_1.seq)("SYNTAX-CHECK FOR", (0, combi_1.alt)(syntax, dynpro));
return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
}
}
exports.SyntaxCheck = SyntaxCheck;
//# sourceMappingURL=syntax_check.js.map