visitParams()

in lib/generator.js [722:754]


  visitParams(ast, level, env) {
    assert.equal(ast.type, 'params');
    env.pointerParams = [];
    this.emit('(');
    for (var i = 0; i < ast.params.length; i++) {
      if (i !== 0) {
        this.emit(', ');
      }
      const node = ast.params[i];
      assert.equal(node.type, 'param');
      const name = _name(node.paramName);
      env.pointerParams.push(_avoidReserveName(name));
      this.emit(`${_avoidReserveName(name)}`);
      if (node.paramType) {
        const paramType = node.paramType;
        this.emit(` `);
        this.visitPointerType(paramType, level, env);
      }
    }

    if(env.yieldFunc) {
      if(ast.params.length > 0) {
        this.emit(', ');
      }
      this.emit('_yield chan ');
      this.visitPointerType(env.returnType, level, env);
      if(env.hasThrow) {
        this.emit(', _yieldErr chan error');
      }
    }

    this.emit(')');
  }