aspnetcore/src/Microsoft.AspNetCore.Razor..../Intermediate/IntermediateNodeBuilder.cs

35 lines
1008 B
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;
namespace Microsoft.AspNetCore.Razor.Language.Intermediate
{
internal abstract class IntermediateNodeBuilder
{
public static IntermediateNodeBuilder Create(IntermediateNode root)
{
if (root == null)
{
throw new ArgumentNullException(nameof(root));
}
var builder = new DefaultRazorIntermediateNodeBuilder();
builder.Push(root);
return builder;
}
public abstract IntermediateNode Current { get; }
public abstract void Add(IntermediateNode node);
public abstract void Insert(int index, IntermediateNode node);
public abstract IntermediateNode Build();
public abstract void Push(IntermediateNode node);
public abstract IntermediateNode Pop();
}
}