UNPKG

@abaplint/core

Version:
55 lines 2.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Convert = void 0; const Expressions = require("../../2_statements/expressions"); const inline_data_1 = require("../expressions/inline_data"); const basic_1 = require("../../types/basic"); const source_1 = require("../expressions/source"); const target_1 = require("../expressions/target"); class Convert { runSyntax(node, input) { // todo, the source must be of a specific type for (const s of node.findDirectExpressions(Expressions.Source)) { source_1.Source.runSyntax(s, input); } const timeTargets = node.findExpressionsAfterToken("TIME"); for (const timeTarget of timeTargets) { const concat = node.concatTokens().toUpperCase(); if ((timeTarget === null || timeTarget === void 0 ? void 0 : timeTarget.get()) instanceof Expressions.Target) { const inline = timeTarget === null || timeTarget === void 0 ? void 0 : timeTarget.findDirectExpression(Expressions.InlineData); if (inline) { let targetType = new basic_1.TimeType(); if (concat.includes("DAYLIGHT SAVING TIME " + inline.concatTokens().toUpperCase())) { targetType = new basic_1.CharacterType(1); } inline_data_1.InlineData.runSyntax(inline, input, targetType); } else { target_1.Target.runSyntax(timeTarget, input); } } } const dateTarget = node.findExpressionAfterToken("DATE"); if ((dateTarget === null || dateTarget === void 0 ? void 0 : dateTarget.get()) instanceof Expressions.Target) { const inline = dateTarget === null || dateTarget === void 0 ? void 0 : dateTarget.findDirectExpression(Expressions.InlineData); if (inline) { inline_data_1.InlineData.runSyntax(inline, input, new basic_1.DateType()); } else { target_1.Target.runSyntax(dateTarget, input); } } const stampTarget = node.findExpressionAfterToken("STAMP"); if ((stampTarget === null || stampTarget === void 0 ? void 0 : stampTarget.get()) instanceof Expressions.Target) { const inline = stampTarget === null || stampTarget === void 0 ? void 0 : stampTarget.findDirectExpression(Expressions.InlineData); if (inline) { inline_data_1.InlineData.runSyntax(inline, input, new basic_1.PackedType(8, 4)); } else { target_1.Target.runSyntax(stampTarget, input); } } } } exports.Convert = Convert; //# sourceMappingURL=convert.js.map