@abaplint/transpiler
Version:
50 lines • 2.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConvertTranspiler = void 0;
const abaplint = require("@abaplint/core");
const expressions_1 = require("../expressions");
const chunk_1 = require("../chunk");
class ConvertTranspiler {
transpile(node, traversal) {
const source = [];
const target = [];
const date = node.findExpressionAfterToken("DATE");
if (date?.get() instanceof abaplint.Expressions.Source) {
source.push("date: " + new expressions_1.SourceTranspiler().transpile(date, traversal).getCode());
}
else if (date?.get() instanceof abaplint.Expressions.Target) {
target.push("date: " + new expressions_1.TargetTranspiler().transpile(date, traversal).getCode());
}
const time = node.findExpressionAfterToken("TIME");
if (time?.get() instanceof abaplint.Expressions.Source) {
source.push("time: " + new expressions_1.SourceTranspiler().transpile(time, traversal).getCode());
}
else if (time?.get() instanceof abaplint.Expressions.Target) {
target.push("time: " + new expressions_1.TargetTranspiler().transpile(time, traversal).getCode());
}
const stamp = node.findExpressionAfterToken("STAMP");
if (stamp?.get() instanceof abaplint.Expressions.Source) {
source.push("stamp: " + new expressions_1.SourceTranspiler().transpile(stamp, traversal).getCode());
}
else if (stamp?.get() instanceof abaplint.Expressions.Target) {
target.push("stamp: " + new expressions_1.TargetTranspiler().transpile(stamp, traversal).getCode());
}
const utclong = node.findExpressionAfterToken("UTCLONG");
if (utclong?.get() instanceof abaplint.Expressions.Source) {
source.push("utclong: " + new expressions_1.SourceTranspiler().transpile(utclong, traversal).getCode());
}
else if (utclong?.get() instanceof abaplint.Expressions.Target) {
target.push("utclong: " + new expressions_1.TargetTranspiler().transpile(utclong, traversal).getCode());
}
const zone = node.findExpressionAfterToken("ZONE");
if (zone?.get() instanceof abaplint.Expressions.Source) {
source.push("zone: " + new expressions_1.SourceTranspiler().transpile(zone, traversal).getCode());
}
else if (zone?.get() instanceof abaplint.Expressions.Target) {
target.push("zone: " + new expressions_1.TargetTranspiler().transpile(zone, traversal).getCode());
}
return new chunk_1.Chunk(`abap.statements.convert({${source.join(",")}}, {${target.join(",")}});`);
}
}
exports.ConvertTranspiler = ConvertTranspiler;
//# sourceMappingURL=convert.js.map