Пример #1
0
 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();
 }
Пример #2
0
 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();
 }
Пример #3
0
 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();
 }
Пример #4
0
        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();
        }