emitParams()

in src/langs/cpp/combinator.js [753:776]


  emitParams(emitter, params = []) {
    let tmp = [];
    params.forEach(param => {
      if (is.any(param.type)) {
        tmp.push(`const boost::any &${_avoidKeywords(param.key)}`);
        this.addStatement(param.key, param.type, false);
      } else {
        tmp.push(`shared_ptr<${this.emitType(param.type)}> ${_avoidKeywords(param.key)}`);
        this.addStatement(param.key, param.type, true);
      }
    });
    let emit = new Emitter(this.config);
    let str;
    if (tmp.length > 3) {
      let curr_row_len = emitter.currRow().length;
      str = tmp.join(`,${emit.eol}${' '.repeat(curr_row_len)}`);
    } else {
      str = tmp.join(', ');
    }
    if (emitter instanceof Emitter) {
      emitter.emit(str);
    }
    return str;
  }