protected override void GenerateInner(CodeGenerator generator) { if (TargetObject.Precedence > PrecedenceGroup.Primary) { generator.Write(TokenType.Punctuation, '('); } TargetObject.Generate(generator); if (TargetObject.Precedence > PrecedenceGroup.Primary) { generator.Write(TokenType.Punctuation, ')'); } generator.Write(TokenType.Punctuation, '['); bool first = true; foreach (CodeExpression index in Indices) { if (first) { first = false; } else { generator.Write(TokenType.Punctuation, ','); generator.Write(TokenType.Space, ' '); } index.Generate(generator); } generator.Write(TokenType.Punctuation, ']'); }
protected override void GenerateInner(CodeGenerator generator) { bool needsTarget = true; if (TargetObject is CodeThisReferenceExpression) { needsTarget = generator.ContainsLocalByName(MethodName); } if (needsTarget) { if (TargetObject.Precedence > PrecedenceGroup.Primary) { generator.Write(TokenType.Punctuation, '('); } TargetObject.Generate(generator); if (TargetObject.Precedence > PrecedenceGroup.Primary) { generator.Write(TokenType.Punctuation, ')'); } generator.Write(TokenType.Punctuation, '.'); } generator.OutputIdentifier(TokenType.Identifier, MethodName); if (TypeArguments.Count > 0) { generator.Write(TokenType.Punctuation, '<'); bool first = true; foreach (var typeArgument in TypeArguments) { if (first) { first = false; } else { generator.Write(TokenType.Punctuation, ','); generator.Write(TokenType.Space, ' '); } typeArgument.Generate(generator); } generator.Write(TokenType.Punctuation, '>'); } }
protected override void GenerateInner(CodeGenerator generator) { bool needsTarget = true; if (TargetObject is CodeThisReferenceExpression) { needsTarget = generator.ContainsLocalByName(FieldName); } if (needsTarget) { if (TargetObject.Precedence > PrecedenceGroup.Primary) { generator.Write(TokenType.Punctuation, '('); } TargetObject.Generate(generator); if (TargetObject.Precedence > PrecedenceGroup.Primary) { generator.Write(TokenType.Punctuation, ')'); } generator.Write(TokenType.Punctuation, '.'); } generator.OutputIdentifier(TokenType.Identifier, FieldName); }