@abaplint/transpiler
Version:
30 lines • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SQLGroupByTranspiler = void 0;
const abaplint = require("@abaplint/core");
const chunk_1 = require("../chunk");
const sql_field_name_1 = require("./sql_field_name");
class SQLGroupByTranspiler {
transpile(node, traversal) {
const fields = [];
for (const f of node.getChildren()) {
if (f instanceof abaplint.Nodes.TokenNode) {
// keywords
continue;
}
else if (f instanceof abaplint.Nodes.ExpressionNode && f.get() instanceof abaplint.Expressions.SQLFieldName) {
const code = new sql_field_name_1.SQLFieldNameTranspiler().transpile(f, traversal).getCode();
fields.push(code);
}
else {
const concat = f.concatTokens();
if (concat !== ",") {
fields.push(concat);
}
}
}
return new chunk_1.Chunk().appendString("GROUP BY ").append(fields.join(", "), node, traversal);
}
}
exports.SQLGroupByTranspiler = SQLGroupByTranspiler;
//# sourceMappingURL=sql_group_by.js.map