UNPKG

@abaplint/core

Version:
43 lines 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Write = void 0; const Expressions = require("../../2_statements/expressions"); const source_1 = require("../expressions/source"); const target_1 = require("../expressions/target"); const dynamic_1 = require("../expressions/dynamic"); const _type_utils_1 = require("../_type_utils"); const field_chain_1 = require("../expressions/field_chain"); const _reference_1 = require("../_reference"); const _syntax_input_1 = require("../_syntax_input"); class Write { runSyntax(node, input) { // todo, more var _a; let second = node.getChildren()[1]; if (second.get() instanceof Expressions.WriteOffsetLength) { second = node.getChildren()[2]; } for (const s of node.findDirectExpressions(Expressions.Source)) { const type = source_1.Source.runSyntax(s, input); if (s === second && new _type_utils_1.TypeUtils(input.scope).isCharLike(type) === false && new _type_utils_1.TypeUtils(input.scope).isHexLike(type) === false) { const message = "Source not character like"; input.issues.push((0, _syntax_input_1.syntaxIssue)(input, s.getFirstToken(), message)); return; } } for (const s of ((_a = node.findDirectExpression(Expressions.WriteOffsetLength)) === null || _a === void 0 ? void 0 : _a.findDirectExpressions(Expressions.SimpleFieldChain2)) || []) { field_chain_1.FieldChain.runSyntax(s, input, _reference_1.ReferenceType.DataReadReference); } for (const s of node.findAllExpressions(Expressions.Dynamic)) { dynamic_1.Dynamic.runSyntax(s, input); } const target = node.findDirectExpression(Expressions.Target); if (target) { target_1.Target.runSyntax(target, input); } } } exports.Write = Write; //# sourceMappingURL=write.js.map