| 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() {} | |
| } |