@abaplint/transpiler
Version:
28 lines • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FieldAssignmentTranspiler = void 0;
const core_1 = require("@abaplint/core");
const chunk_1 = require("../chunk");
const abaplint = require("@abaplint/core");
const source_1 = require("./source");
class FieldAssignmentTranspiler {
transpile(node, traversal, context) {
const ret = new chunk_1.Chunk();
const field = node.findDirectExpression(core_1.Expressions.FieldSub);
if (field === undefined) {
throw new Error("FieldAssignmentTranspiler, Expected FieldSub");
}
const source = node.findDirectExpression(core_1.Expressions.Source);
if (source === undefined) {
throw new Error("FieldAssignmentTranspiler, Expected Source");
}
if (context instanceof abaplint.BasicTypes.StructureType) {
context = context.getComponentByName(field.concatTokens());
}
const sourc = new source_1.SourceTranspiler().transpile(source, traversal, context).getCode();
ret.appendString(`.setField("${field.concatTokens().toLowerCase()}", ${sourc})`);
return ret;
}
}
exports.FieldAssignmentTranspiler = FieldAssignmentTranspiler;
//# sourceMappingURL=field_assignment.js.map