| using System; | |
| using System.Collections.Generic; | |
| using System.Linq; | |
| using System.Text; | |
| using OfficeOpenXml.FormulaParsing.LexicalAnalysis; | |
| using OfficeOpenXml.FormulaParsing.ExpressionGraph; | |
| using OfficeOpenXml.FormulaParsing.ExcelUtilities; | |
| using OfficeOpenXml.FormulaParsing; | |
| using OfficeOpenXml.FormulaParsing.Logging; | |
| namespace OfficeOpenXml.FormulaParsing | |
| { | |
| /// <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 | |
| { | |
| get { return Configuration.Logger != null; } | |
| } | |
| /// <summary> | |
| /// Factory method. | |
| /// </summary> | |
| /// <returns></returns> | |
| public static ParsingContext Create() | |
| { | |
| var context = new ParsingContext(); | |
| context.Configuration = ParsingConfiguration.Create(); | |
| context.Scopes = new ParsingScopes(context); | |
| return context; | |
| } | |
| void IParsingLifetimeEventHandler.ParsingCompleted() | |
| { | |
| } | |
| } | |
| } |