public CSharpWriter(ISyntaxWriter writer, ICciFilter filter, bool apiOnly, bool writeAssemblyAttributes = false) : base(filter) { _syntaxWriter = writer; _styleWriter = writer as IStyleSyntaxWriter; _declarationWriter = new CSDeclarationWriter(_syntaxWriter, filter, !apiOnly); _writeAssemblyAttributes = writeAssemblyAttributes; }
public CSDeclarationWriter(ISyntaxWriter writer, ICciFilter filter, bool forCompilation) { Contract.Requires(writer != null); _writer = writer; _filter = filter; _forCompilation = forCompilation; _forCompilationIncludeGlobalprefix = false; _platformNotSupportedExceptionMessage = null; _includeFakeAttributes = false; _alwaysIncludeBase = false; }
public static void WriteValue( this ISyntaxWriter writer, IValueNode node) { if (node is null) { return; } switch (node.Kind) { case NodeKind.IntValue: WriteIntValue(writer, (IntValueNode)node); break; case NodeKind.FloatValue: WriteFloatValue(writer, (FloatValueNode)node); break; case NodeKind.StringValue: WriteStringValue(writer, (StringValueNode)node); break; case NodeKind.BooleanValue: WriteBooleanValue(writer, (BooleanValueNode)node); break; case NodeKind.EnumValue: WriteEnumValue(writer, (EnumValueNode)node); break; case NodeKind.NullValue: WriteNullValue(writer); break; case NodeKind.ListValue: WriteListValue(writer, (ListValueNode)node); break; case NodeKind.ObjectValue: WriteObjectValue(writer, (ObjectValueNode)node); break; case NodeKind.Variable: WriteVariable(writer, (VariableNode)node); break; default: throw new NotSupportedException(); } }
public override async Task WriteAsync(ISyntaxWriter writer, CancellationToken cancellationToken) { if (writer == null) { throw new ArgumentNullException(nameof(writer)); } await writer.WriteCommentAsync($"PDF-{MajorVersion}.{MinorVersion}", cancellationToken); if (DocumentType == DocumentType.Binary) { await writer.WriteCommentAsync(BinaryMarker, cancellationToken); } }
private void VisitSchemaDefinitionBase(SchemaDefinitionNodeBase node, ISyntaxWriter writer) { writer.Write(Keywords.Schema); WriteDirectives(node.Directives, writer); WriteLeftBrace(writer); writer.Indent(); writer.WriteMany( node.OperationTypes, VisitOperationTypeDefinition, WriteLineOrSpace); writer.Unindent(); WriteRightBrace(writer); }
public static void WriteMany <T>( this ISyntaxWriter writer, IReadOnlyList <T> items, Action <T, ISyntaxWriter> action, Action <ISyntaxWriter> separator) { if (items.Count > 0) { action(items[0], writer); for (int i = 1; i < items.Count; i++) { separator(writer); action(items[i], writer); } } }
private void VisitUnionTypeDefinitionBase( UnionTypeDefinitionNodeBase node, ISyntaxWriter writer) { writer.Write(Keywords.Union); writer.WriteSpace(); writer.WriteName(node.Name); WriteDirectives(node.Directives, writer); writer.WriteSpace(); writer.Write('='); writer.WriteSpace(); writer.WriteMany(node.Types, (n, w) => writer.WriteNamedType(n), " | "); }
public static void WriteList <T>(this ISyntaxWriter writer, IEnumerable <T> list, Action <T> writeItem, string delimiter = ",", bool addSpaceAfterDelimiter = true) { bool first = true; foreach (T t in list) { if (!first) { writer.WriteSymbol(delimiter); if (addSpaceAfterDelimiter) { writer.WriteSpace(); } } writeItem(t); first = false; } }
private void VisitEnumTypeDefinitionBase( EnumTypeDefinitionNodeBase node, ISyntaxWriter writer) { writer.Write(Keywords.Enum); writer.WriteSpace(); writer.WriteName(node.Name); WriteDirectives(node.Directives, writer); WriteLeftBrace(writer); writer.Indent(); writer.WriteMany( node.Values, VisitEnumValueDefinition, WriteLineOrSpace); writer.Unindent(); WriteRightBrace(writer); }
public static void WriteSyntaxToken(this ISyntaxWriter writer, SyntaxToken token) { switch (token.Type) { default: case SyntaxTokenType.Literal: writer.Write(token.Token); break; case SyntaxTokenType.Symbol: writer.WriteSymbol(token.Token); break; case SyntaxTokenType.Identifier: writer.WriteIdentifier(token.Token); break; case SyntaxTokenType.Keyword: writer.WriteKeyword(token.Token); break; case SyntaxTokenType.TypeName: writer.WriteTypeName(token.Token); break; } }
public static IDisposable StartBraceBlock(this ISyntaxWriter writer, bool onNewLine) { if (onNewLine) { writer.WriteLine(); } else { writer.WriteSpace(); } writer.WriteSymbol("{"); writer.WriteLine(); writer.IndentLevel++; return(new Block(() => { writer.IndentLevel--; writer.WriteSymbol("}"); writer.WriteLine(); })); }
private void VisitInputObjectTypeDefinitionBase( InputObjectTypeDefinitionNodeBase node, ISyntaxWriter writer) { writer.Write(Keywords.Input); writer.WriteSpace(); writer.WriteName(node.Name); WriteDirectives(node.Directives, writer); WriteLeftBrace(writer); writer.Indent(); writer.WriteMany( node.Fields, VisitInputValueDefinition, WriteLineOrSpace); writer.Unindent(); WriteRightBrace(writer); }
private void VisitDocument(DocumentNode node, ISyntaxWriter writer) { if (node.Definitions.Count > 0) { VisitDefinition(node.Definitions[0], writer); for (int i = 1; i < node.Definitions.Count; i++) { if (_indented) { writer.WriteLine(); writer.WriteLine(); } else { writer.WriteSpace(); } VisitDefinition(node.Definitions[i], writer); } } }
private void VisitDirectiveDefinition( DirectiveDefinitionNode node, ISyntaxWriter writer) { WriteDescription(node.Description, writer); writer.Write(Keywords.Directive); writer.WriteSpace(); writer.Write('@'); writer.WriteName(node.Name); if (node.Arguments.Count > 0) { writer.Write("("); writer.WriteMany( node.Arguments, VisitArgumentValueDefinition, w => w.WriteSpace()); writer.Write(")"); } writer.WriteSpace(); if (node.IsRepeatable) { writer.Write(Keywords.Repeatable); writer.WriteSpace(); } writer.Write(Keywords.On); writer.WriteSpace(); writer.WriteMany(node.Locations, (n, w) => writer.WriteName(n), " | "); }
private void VisitObjectTypeDefinition(ObjectTypeDefinitionNode node, ISyntaxWriter writer) { WriteDescription(node.Description, writer); VisitObjectTypeDefinitionBase(node, writer); }
private void VisitArgumentValueDefinition( InputValueDefinitionNode node, ISyntaxWriter writer) { if (node.Description is { })
public static void WriteSpace(this ISyntaxWriter writer) { writer.Write(" "); }
private static void WriteAccessor(ISyntaxWriter syntaxWriter, IMethodDefinition method) { var accessorKeyword = GetAccessorKeyword(method); syntaxWriter.WriteKeyword(accessorKeyword); syntaxWriter.WriteSymbol(";"); }
/// <summary> /// Generate the document syntax for this element. /// </summary> /// <param name="writer"> /// The <see cref="ISyntaxWriter"/> to output the syntax of this element. /// </param> /// <param name="cancellationToken"> /// The token to monitor for cancellation requests. /// </param> /// <returns> /// A <see cref="Task"/> that represents the asynchronous write operation. /// </returns> /// <exception cref="ArgumentNullException"> /// <paramref name="writer"/> is <c>null</c>. /// </exception> public abstract Task WriteAsync(ISyntaxWriter writer, CancellationToken cancellationToken);
public static IDisposable StartBraceBlock(this ISyntaxWriter writer) { return(StartBraceBlock(writer, false)); }
private void VisitSchemaExtension(SchemaExtensionNode node, ISyntaxWriter writer) { writer.Write(Keywords.Extend); writer.WriteSpace(); VisitSchemaDefinitionBase(node, writer); }
public void Serialize(ISyntaxNode node, ISyntaxWriter writer) { switch (node.Kind) { case SyntaxKind.Name: writer.WriteName((NameNode)node); break; case SyntaxKind.Document: VisitDocument((DocumentNode)node, writer); break; case SyntaxKind.OperationDefinition: VisitOperationDefinition((OperationDefinitionNode)node, writer); break; case SyntaxKind.VariableDefinition: VisitVariableDefinition((VariableDefinitionNode)node, writer); break; case SyntaxKind.Variable: writer.WriteVariable((VariableNode)node); break; case SyntaxKind.SelectionSet: VisitSelectionSet((SelectionSetNode)node, writer); break; case SyntaxKind.Field: VisitField((FieldNode)node, writer); break; case SyntaxKind.Argument: writer.WriteArgument((ArgumentNode)node); break; case SyntaxKind.FragmentSpread: VisitFragmentSpread((FragmentSpreadNode)node, writer); break; case SyntaxKind.InlineFragment: VisitInlineFragment((InlineFragmentNode)node, writer); break; case SyntaxKind.FragmentDefinition: VisitFragmentDefinition((FragmentDefinitionNode)node, writer); break; case SyntaxKind.Directive: writer.WriteDirective((DirectiveNode)node); break; case SyntaxKind.NamedType: case SyntaxKind.ListType: case SyntaxKind.NonNullType: writer.WriteType((ITypeNode)node); break; case SyntaxKind.ListValue: case SyntaxKind.ObjectValue: case SyntaxKind.BooleanValue: case SyntaxKind.EnumValue: case SyntaxKind.FloatValue: case SyntaxKind.IntValue: case SyntaxKind.NullValue: case SyntaxKind.StringValue: writer.WriteValue((IValueNode)node); break; case SyntaxKind.ObjectField: writer.WriteObjectField((ObjectFieldNode)node); break; case SyntaxKind.SchemaDefinition: VisitSchemaDefinition((SchemaDefinitionNode)node, writer); break; case SyntaxKind.OperationTypeDefinition: VisitOperationTypeDefinition((OperationTypeDefinitionNode)node, writer); break; case SyntaxKind.ScalarTypeDefinition: VisitScalarTypeDefinition((ScalarTypeDefinitionNode)node, writer); break; case SyntaxKind.ObjectTypeDefinition: VisitObjectTypeDefinition((ObjectTypeDefinitionNode)node, writer); break; case SyntaxKind.FieldDefinition: VisitFieldDefinition((FieldDefinitionNode)node, writer); break; case SyntaxKind.InputValueDefinition: VisitInputValueDefinition((InputValueDefinitionNode)node, writer); break; case SyntaxKind.InterfaceTypeDefinition: VisitInterfaceTypeDefinition((InterfaceTypeDefinitionNode)node, writer); break; case SyntaxKind.UnionTypeDefinition: VisitUnionTypeDefinition((UnionTypeDefinitionNode)node, writer); break; case SyntaxKind.EnumTypeDefinition: VisitEnumTypeDefinition((EnumTypeDefinitionNode)node, writer); break; case SyntaxKind.EnumValueDefinition: VisitEnumValueDefinition((EnumValueDefinitionNode)node, writer); break; case SyntaxKind.InputObjectTypeDefinition: VisitInputObjectTypeDefinition((InputObjectTypeDefinitionNode)node, writer); break; case SyntaxKind.DirectiveDefinition: VisitDirectiveDefinition((DirectiveDefinitionNode)node, writer); break; case SyntaxKind.SchemaExtension: VisitSchemaExtension((SchemaExtensionNode)node, writer); break; case SyntaxKind.ScalarTypeExtension: VisitScalarTypeExtension((ScalarTypeExtensionNode)node, writer); break; case SyntaxKind.ObjectTypeExtension: VisitObjectTypeExtension((ObjectTypeExtensionNode)node, writer); break; case SyntaxKind.InterfaceTypeExtension: VisitInterfaceTypeExtension((InterfaceTypeExtensionNode)node, writer); break; case SyntaxKind.UnionTypeExtension: VisitUnionTypeExtension((UnionTypeExtensionNode)node, writer); break; case SyntaxKind.EnumTypeExtension: VisitEnumTypeExtension((EnumTypeExtensionNode)node, writer); break; case SyntaxKind.InputObjectTypeExtension: VisitInputObjectTypeExtension((InputObjectTypeExtensionNode)node, writer); break; default: ThrowHelper.NodeKindIsNotSupported(node.Kind); break; } }
public static void WriteName(this ISyntaxWriter writer, NameNode nameNode) { writer.Write(nameNode.Value); }
private void VisitObjectTypeExtension(ObjectTypeExtensionNode node, ISyntaxWriter writer) { writer.Write(Keywords.Extend); writer.WriteSpace(); VisitObjectTypeDefinitionBase(node, writer); }
public static void WriteFloatValue(this ISyntaxWriter writer, FloatValueNode node) { writer.Write(node.Value); }
private void VisitSchemaDefinition(SchemaDefinitionNode node, ISyntaxWriter writer) { WriteDescription(node.Description, writer); VisitSchemaDefinitionBase(node, writer); }
private void VisitDefinition(IDefinitionNode node, ISyntaxWriter writer) { switch (node.Kind) { case SyntaxKind.OperationDefinition: VisitOperationDefinition((OperationDefinitionNode)node, writer); break; case SyntaxKind.FragmentDefinition: VisitFragmentDefinition((FragmentDefinitionNode)node, writer); break; case SyntaxKind.SchemaDefinition: VisitSchemaDefinition((SchemaDefinitionNode)node, writer); break; case SyntaxKind.DirectiveDefinition: VisitDirectiveDefinition((DirectiveDefinitionNode)node, writer); break; case SyntaxKind.ScalarTypeDefinition: VisitScalarTypeDefinition((ScalarTypeDefinitionNode)node, writer); break; case SyntaxKind.ObjectTypeDefinition: VisitObjectTypeDefinition((ObjectTypeDefinitionNode)node, writer); break; case SyntaxKind.InputObjectTypeDefinition: VisitInputObjectTypeDefinition((InputObjectTypeDefinitionNode)node, writer); break; case SyntaxKind.InterfaceTypeDefinition: VisitInterfaceTypeDefinition((InterfaceTypeDefinitionNode)node, writer); break; case SyntaxKind.UnionTypeDefinition: VisitUnionTypeDefinition((UnionTypeDefinitionNode)node, writer); break; case SyntaxKind.EnumTypeDefinition: VisitEnumTypeDefinition((EnumTypeDefinitionNode)node, writer); break; case SyntaxKind.SchemaExtension: VisitSchemaExtension((SchemaExtensionNode)node, writer); break; case SyntaxKind.ScalarTypeExtension: VisitScalarTypeExtension((ScalarTypeExtensionNode)node, writer); break; case SyntaxKind.ObjectTypeExtension: VisitObjectTypeExtension((ObjectTypeExtensionNode)node, writer); break; case SyntaxKind.InterfaceTypeExtension: VisitInterfaceTypeExtension((InterfaceTypeExtensionNode)node, writer); break; case SyntaxKind.UnionTypeExtension: VisitUnionTypeExtension((UnionTypeExtensionNode)node, writer); break; case SyntaxKind.EnumTypeExtension: VisitEnumTypeExtension((EnumTypeExtensionNode)node, writer); break; case SyntaxKind.InputObjectTypeExtension: VisitInputObjectTypeExtension((InputObjectTypeExtensionNode)node, writer); break; default: ThrowHelper.NodeKindIsNotSupported(node.Kind); break; } }
private static void WriteEscapeCharacter( ISyntaxWriter writer, in char c)
public CSDeclarationWriter(ISyntaxWriter writer) : this(writer, new PublicOnlyCciFilter()) { }
public CSDeclarationWriter(ISyntaxWriter writer, ICciFilter filter) : this(writer, filter, true) { }
public CSDeclarationWriter(ISyntaxWriter writer, ICciFilter filter, bool forCompilation, bool includePseudoCustomAttributes = false) : this(writer, filter, forCompilation) { _includeFakeAttributes = includePseudoCustomAttributes; }
public TypeListWriter(ISyntaxWriter writer, ICciFilter filter) : base(filter) { _syntaxWriter = writer; _declarationWriter = new CSDeclarationWriter(_syntaxWriter, filter, false); }