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