@abaplint/core
Version:
abaplint - Core API
30 lines • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ClassData = void 0;
const Expressions = require("../../2_statements/expressions");
const Statements = require("../../2_statements/statements");
const nodes_1 = require("../../nodes");
const _typed_identifier_1 = require("../../types/_typed_identifier");
const Basic = require("../../types/basic");
const class_data_1 = require("../statements/class_data");
class ClassData {
runSyntax(node, input) {
const name = node.findFirstExpression(Expressions.NamespaceSimpleName).getFirstToken();
const values = {};
const components = [];
for (const c of node.getChildren()) {
const ctyp = c.get();
if (c instanceof nodes_1.StatementNode && ctyp instanceof Statements.ClassData) {
const found = new class_data_1.ClassData().runSyntax(c, input);
if (found) {
components.push({ name: found.getName(), type: found.getType() });
values[found.getName()] = found.getValue();
}
}
// todo, nested structures and INCLUDES
}
return new _typed_identifier_1.TypedIdentifier(name, input.filename, new Basic.StructureType(components), ["static" /* IdentifierMeta.Static */], values);
}
}
exports.ClassData = ClassData;
//# sourceMappingURL=class_data.js.map