47 lines
1.3 KiB
C#
47 lines
1.3 KiB
C#
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System.IO;
|
|
using Microsoft.AspNetCore.Razor.Language.Intermediate;
|
|
|
|
namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests
|
|
{
|
|
public static class IntermediateNodeSerializer
|
|
{
|
|
public static string Serialize(IntermediateNode node)
|
|
{
|
|
using (var writer = new StringWriter())
|
|
{
|
|
var walker = new Walker(writer);
|
|
walker.Visit(node);
|
|
|
|
return writer.ToString();
|
|
}
|
|
}
|
|
|
|
private class Walker : IntermediateNodeWalker
|
|
{
|
|
private readonly IntermediateNodeWriter _visitor;
|
|
private readonly TextWriter _writer;
|
|
|
|
public Walker(TextWriter writer)
|
|
{
|
|
_visitor = new IntermediateNodeWriter(writer);
|
|
_writer = writer;
|
|
}
|
|
|
|
public TextWriter Writer { get; }
|
|
|
|
public override void VisitDefault(IntermediateNode node)
|
|
{
|
|
_visitor.Visit(node);
|
|
_writer.WriteLine();
|
|
|
|
_visitor.Depth++;
|
|
base.VisitDefault(node);
|
|
_visitor.Depth--;
|
|
}
|
|
}
|
|
}
|
|
}
|