in lib/enum_generator.js [36:74]
emitEnumBody(ast, enumType, level) {
assert.equal(ast.type, 'enumBody');
let node;
for (let i = 0; i < ast.nodes.length; i++) {
node = ast.nodes[i];
let comments = DSL.comment.getFrontComments(this.ctx.comments, node.tokenRange[0]);
this.visitComments(comments, level);
const fieldName = _name(node.fieldName);
const value = getEnumAttr(node, 'value') || fieldName;
const description = getEnumAttr(node, 'description');
if (enumType === 'String') {
this.emit(`${fieldName}("${value}"`, level);
} else if (enumType === 'Number' || enumType === 'Integer') {
this.emit(`${fieldName}(${value}`, level);
} else if (enumType === 'Long') {
this.emit(`${fieldName}(${value}L`, level);
} else if (enumType === 'Float') {
this.emit(`${fieldName}(${value}F`, level);
} else if (enumType === 'Double') {
this.emit(`${fieldName}(${value}D`, level);
}
this.emit(`, "${description}")`);
this.emitln(`,`);
this.emitln();
}
this.emitln(`UNKNOWN_VALUE(null, "UNKNOWN_VALUE");`, level);
this.emitln();
if (node) {
//find the last node's back comment
let comments = DSL.comment.getBetweenComments(this.ctx.comments, node.tokenRange[0], ast.tokenRange[1]);
this.visitComments(comments, level);
}
if (ast.nodes.length === 0) {
//empty block's comment
let comments = DSL.comment.getBetweenComments(this.ctx.comments, ast.tokenRange[0], ast.tokenRange[1]);
this.visitComments(comments, level);
}
}