grammerReturn()

in src/langs/cpp/combinator.js [1814:1833]


  grammerReturn(emitter, gram) {
    if (is.void(this.funcReturnType)) {
      emitter.emit('return');
      return;
    }
    emitter.emit('return ');
    if (gram.type === 'null') {
      this.grammerValue(emitter, new GrammerValue('null'), false, false);
    } else if (gram.type === 'grammer') {
      let returnPointer = this.isPointerType(this.funcReturnType);
      if (this.isPointerVar(gram.expr) && !returnPointer) {
        emitter.emit('*');
      }
      this.grammer(emitter, gram.expr, false, false);
    } else if (gram.type === 'string') {
      emitter.emit('string("")');
    } else {
      this.grammer(emitter, gram.expr, false, false);
    }
  }