static void SerializeAttribute(IndentingWriter writer, Ast.Attribute attribute) { writer.Indent(); writer.Write("\n."); SerializeIdentifier(writer, attribute.Id); writer.Write(" ="); SerializeValue(writer, attribute.Value); writer.Dedent(); }
static void SerializeVariantList(IndentingWriter writer, Ast.VariantList variantList) { writer.Indent(); writer.Write("\n{"); foreach (var variant in variantList.Variants) { SerializeVariant(writer, variant); } writer.Write("\n}"); writer.Dedent(); }
static void SerializeVariant(IndentingWriter writer, Ast.Variant variant) { writer.Write('\n'); // squiffy indentation: 3 spaces for default, otherwise 4 if (variant.IsDefault) { writer.Write(" *"); } else { writer.Write(" "); } writer.Write('['); SerializeVariantKey(writer, variant.Key); writer.Write(']'); writer.Indent(); SerializeValue(writer, variant.Value); writer.Dedent(); }
static void SerializePattern(IndentingWriter writer, Ast.Pattern pattern) { writer.Indent(); if (pattern.Elements.Any(IncludesNewLine) || pattern.Elements.Any(IsSelectExpression)) { writer.Write('\n'); } else { writer.Write(' '); } foreach (var element in pattern.Elements) { SerializeElement(writer, element); } writer.Dedent(); }