35 lines
1008 B
C#
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();
|
|
}
|
|
}
|