CSharpSourceEmitter.SourceEmitter.PrintArgumentList C# (CSharp) Method

PrintArgumentList() private method

private PrintArgumentList ( IEnumerable arguments, IEnumerable parameters ) : void
arguments IEnumerable
parameters IEnumerable
return void
    private void PrintArgumentList(IEnumerable<IExpression> arguments, IEnumerable<IParameterTypeInformation> parameters) {
      this.sourceEmitterOutput.Write("(");
      var paramEnum = parameters.GetEnumerator();
      bool paramIsValid = true;
      bool needComma = false;
      foreach (IExpression argument in arguments) {
        paramIsValid = paramIsValid && paramEnum.MoveNext();
        if (needComma) {
          this.PrintToken(CSharpToken.Comma);
          this.PrintToken(CSharpToken.Space);
        }
        var addressOf = argument as IAddressOf;
        if (addressOf != null) {
          string modifier = "ref ";
          if (paramIsValid) {
            var pardef = paramEnum.Current as IParameterDefinition;
            if (pardef != null && pardef.IsByReference && pardef.IsOut && !pardef.IsIn)
              modifier = "out ";
          }
          this.sourceEmitterOutput.Write(modifier);
          this.Traverse(addressOf.Expression);
        } else
          this.Traverse(argument);
        needComma = true;
      }
      this.sourceEmitterOutput.Write(")");
    }
SourceEmitter