in lib/generator.js [546:574]
visitInit(ast, types, level) {
assert.equal(ast.type, 'init');
types.forEach((item) => {
let comments = DSL.comment.getFrontComments(this.comments, item.tokenRange[0]);
this.visitComments(comments, level + 1);
this.emit('/**\n', level + 1);
this.emit(' * @var ', level+ 1);
this.visitType(item.value);
this.emit('\n');
this.emit(' */\n', level + 1);
this.emit(`protected $${_vid(item.vid)};\n`, level + 1);
this.emit('\n');
});
this.emit('\n');
this.visitAnnotation(ast.annotation, level + 1);
let comments = DSL.comment.getFrontComments(this.comments, ast.tokenRange[0]);
this.visitComments(comments, level + 1);
if (ast.initBody) {
this.emit('public function __construct', level + 1);
this.visitParams(ast.params, level);
this.emit('\n');
this.emit('{\n', level + 1);
this.visitStmts(ast.initBody, level + 2);
this.emit('}\n', level + 1);
this.emit('\n');
}
}