blob: 629ea91f80d1ad2534589001179f03883ebc762b [file] [log] [blame]
namespace AppsheetEpplus;
/// <summary>
/// Parsing context
/// </summary>
public class ParsingContext : IParsingLifetimeEventHandler {
private ParsingContext() {}
/// <summary>
/// The <see cref="FormulaParser"/> of the current context.
/// </summary>
public FormulaParser Parser { get; set; }
/// <summary>
/// The <see cref="ExcelDataProvider"/> is an abstraction on top of
/// Excel, in this case EPPlus.
/// </summary>
public ExcelDataProvider ExcelDataProvider { get; set; }
/// <summary>
/// Utility for handling addresses
/// </summary>
public RangeAddressFactory RangeAddressFactory { get; set; }
/// <summary>
/// <see cref="INameValueProvider"/> of the current context
/// </summary>
public INameValueProvider NameValueProvider { get; set; }
/// <summary>
/// Configuration
/// </summary>
public ParsingConfiguration Configuration { get; set; }
/// <summary>
/// Scopes, a scope represents the parsing of a cell or a value.
/// </summary>
public ParsingScopes Scopes { get; private set; }
/// <summary>
/// Returns true if a <see cref="IFormulaParserLogger"/> is attached to the parser.
/// </summary>
public bool Debug => Configuration.Logger != null;
/// <summary>
/// Factory method.
/// </summary>
/// <returns></returns>
public static ParsingContext Create() {
var context = new ParsingContext();
context.Configuration = ParsingConfiguration.Create();
context.Scopes = new(context);
return context;
}
void IParsingLifetimeEventHandler.ParsingCompleted() {}
}