visitInit()

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');
    }
  }