UNPKG

@abaplint/core

Version:
30 lines 1.41 kB
"use strict"; 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