| using System; |
| |
| namespace AppsheetEpplus; |
| |
| /// <summary> |
| /// Represents a parsing of a single input or workbook addrses. |
| /// </summary> |
| public class ParsingScope : IDisposable { |
| private readonly ParsingScopes _parsingScopes; |
| |
| public ParsingScope(ParsingScopes parsingScopes, RangeAddress address) |
| : this(parsingScopes, null, address) {} |
| |
| public ParsingScope(ParsingScopes parsingScopes, ParsingScope parent, RangeAddress address) { |
| _parsingScopes = parsingScopes; |
| Parent = parent; |
| Address = address; |
| } |
| |
| /// <summary> |
| /// Id of the scope. |
| /// </summary> |
| public Guid ScopeId { get; private set; } = Guid.NewGuid(); |
| |
| /// <summary> |
| /// The calling scope. |
| /// </summary> |
| public ParsingScope Parent { get; private set; } |
| |
| /// <summary> |
| /// The address of the cell currently beeing parsed. |
| /// </summary> |
| public RangeAddress Address { get; private set; } |
| |
| /// <summary> |
| /// True if the current scope is a Subtotal function beeing executed. |
| /// </summary> |
| public bool IsSubtotal { get; set; } |
| |
| public void Dispose() { |
| _parsingScopes.KillScope(this); |
| } |
| } |