grammerCall()

in src/langs/swift/combinator.js [607:631]


  grammerCall(emitter, gram) {
    if (gram.type === 'sys_func' || gram.type === 'method') {
      if (gram.isAsync) {
        emitter.emit('try await ');
      } else if (gram.hasThrow) {
        emitter.emit('try ');
      }
      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.params, gram.isStatic) : '';
      emitter.emit(this.resolveCallPath(gram.path, params, gram));
    } else if (gram.type === 'prop' || gram.type === 'key') {
      emitter.emit(this.resolveCallPath(gram.path, '', gram));
    } else if (gram.type === 'super') {
      emitter.emit(`try super.init(${this.resolveParams(gram.params)})`);
    } else {
      debug.stack(gram);
    }
  }