grammerVar()

in src/langs/cpp/combinator.js [1288:1306]


  grammerVar(emitter, gram, emitType = true) {
    let name = gram.name ? gram.name : gram.key;
    name = _name(name);
    if (gram.varType === 'static_class') {
      emitter.emit(`${name}::class`);
    } else if (gram.varType === 'var' || gram.varType === 'const') {
      if (!this.hasStatement(name) && emitType) {
        emitter.emit(`shared_ptr<${this.emitType(gram.type)}> ${name}`);
        this.addStatement(name, gram.type, true);
      } else {
        emitter.emit(`${name}`);
      }
      if (!this.hasStatement(name)) {
        this.addStatement(name, gram.type);
      }
    } else {
      debug.stack(gram);
    }
  }