@abaplint/core
Version:
abaplint - Core API
37 lines • 2.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MessageSource = void 0;
const Expressions = require("../../2_statements/expressions");
const source_1 = require("./source");
class MessageSource {
static runSyntax(node, input) {
var _a, _b, _c, _d, _e;
for (const f of node.findDirectExpressions(Expressions.Source)) {
source_1.Source.runSyntax(f, input);
}
if (node.getFirstToken().getStr().toUpperCase() === "ID") {
const id = (_a = node.findExpressionAfterToken("ID")) === null || _a === void 0 ? void 0 : _a.concatTokens();
let number = (_b = node.findDirectExpression(Expressions.MessageNumber)) === null || _b === void 0 ? void 0 : _b.concatTokens();
if (number === undefined) {
const num = (_c = node.findExpressionAfterToken("NUMBER")) === null || _c === void 0 ? void 0 : _c.concatTokens();
if (num === null || num === void 0 ? void 0 : num.startsWith("'")) {
number = num.substring(1, num.length - 1).toUpperCase();
}
}
if ((id === null || id === void 0 ? void 0 : id.startsWith("'")) && number) {
const messageClass = id.substring(1, id.length - 1).toUpperCase();
input.scope.getMSAGReferences().addUsing(input.filename, node.getFirstToken(), messageClass, number);
}
}
else {
const typeAndNumber = (_d = node.findDirectExpression(Expressions.MessageTypeAndNumber)) === null || _d === void 0 ? void 0 : _d.concatTokens();
const messageNumber = typeAndNumber === null || typeAndNumber === void 0 ? void 0 : typeAndNumber.substring(1);
const messageClass = (_e = node.findDirectExpression(Expressions.MessageClass)) === null || _e === void 0 ? void 0 : _e.concatTokens().toUpperCase();
if (messageNumber && messageClass) {
input.scope.getMSAGReferences().addUsing(input.filename, node.getFirstToken(), messageClass, messageNumber);
}
}
}
}
exports.MessageSource = MessageSource;
//# sourceMappingURL=message_source.js.map