UNPKG

@tripsnek/tmf

Version:

TypeScript Modeling Framework - A TypeScript port of the Eclipse Modeling Framework (EMF)

26 lines 2.82 kB
/** * Source code generation for .ts file that implements an EEnum. * * @tripsnek */ export class TGeneratorEnum { generate(eEnum) { return `/** * Source-gen code for ${eEnum.getName()} enumeration. */ export enum ${eEnum.getName()} { ${this.generateLiterals(eEnum)}} `; } generateLiterals(eEnum) { let result = ``; for (let i = 0; i < eEnum.getELiterals().size(); i++) { const literal = eEnum.getELiterals().get(i); const name = literal.getName(); const value = `'${literal.getName()}'` || i; result += ` ${name} = ${value},\n`; } return result; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGdlbmVyYXRvci1lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zb3VyY2UtZ2VuZXJhdG9ycy90Z2VuZXJhdG9yLWVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBQ2xCLFFBQVEsQ0FBQyxLQUFZO1FBQzFCLE9BQU87eUJBQ2MsS0FBSyxDQUFDLE9BQU8sRUFBRTs7Y0FFMUIsS0FBSyxDQUFDLE9BQU8sRUFBRTtFQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0NBQzdCLENBQUM7SUFDQSxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsS0FBWTtRQUNuQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3JELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQy9CLE1BQU0sS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzVDLE1BQU0sSUFBSSxLQUFLLElBQUksTUFBTSxLQUFLLEtBQUssQ0FBQztRQUN0QyxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRUVudW0gfSBmcm9tICcuLi9tZXRhbW9kZWwvYXBpL2VlbnVtLmpzJztcclxuXHJcbi8qKlxyXG4gKiBTb3VyY2UgY29kZSBnZW5lcmF0aW9uIGZvciAudHMgZmlsZSB0aGF0IGltcGxlbWVudHMgYW4gRUVudW0uXHJcbiAqXHJcbiAqIEB0cmlwc25la1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRHZW5lcmF0b3JFbnVtIHtcclxuICBwdWJsaWMgZ2VuZXJhdGUoZUVudW06IEVFbnVtKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgLyoqXHJcbiAqIFNvdXJjZS1nZW4gY29kZSBmb3IgJHtlRW51bS5nZXROYW1lKCl9IGVudW1lcmF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gJHtlRW51bS5nZXROYW1lKCl9IHtcclxuJHt0aGlzLmdlbmVyYXRlTGl0ZXJhbHMoZUVudW0pfX1cclxuYDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2VuZXJhdGVMaXRlcmFscyhlRW51bTogRUVudW0pOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9IGBgO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlRW51bS5nZXRFTGl0ZXJhbHMoKS5zaXplKCk7IGkrKykge1xyXG4gICAgICBjb25zdCBsaXRlcmFsID0gZUVudW0uZ2V0RUxpdGVyYWxzKCkuZ2V0KGkpO1xyXG4gICAgICBjb25zdCBuYW1lID0gbGl0ZXJhbC5nZXROYW1lKCk7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gYCcke2xpdGVyYWwuZ2V0TmFtZSgpfSdgIHx8IGk7XHJcbiAgICAgIHJlc3VsdCArPSBgICAke25hbWV9ID0gJHt2YWx1ZX0sXFxuYDtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==