grammerCall()

in src/langs/cpp/combinator.js [1508:1527]


  grammerCall(emitter, gram) {
    if (gram.type === 'sys_func' || gram.type === 'method') {
      const resolve_method = _resolveGrammerCall(gram, this.dependencies);
      if (resolve_method !== null) {
        if (!modules[resolve_method]) {
          debug.stack(`Unsupported method : ${resolve_method}`);
        }
        modules[resolve_method].call(this, emitter, gram);
        return;
      }
      let params = gram.params.length > 0 ? this.resolveParams(gram) : '';
      emitter.emit(this.resolveCallPath(gram.path, params, gram));
    } else if (gram.type === 'prop') {
      emitter.emit(this.resolveCallPath(gram.path, '', gram));
    } else if (gram.type === 'key') {
      emitter.emit(this.resolveCallPath(gram.path, '', gram));
    } else {
      debug.stack(gram);
    }
  }