/*
*
* An XmlReader implementation for loading SGML (including HTML) converting it
* to well formed XML, by adding missing quotes, empty attribute values, ignoring
* duplicate attributes, case folding on tag names, adding missing closing tags
* based on SGML DTD information, and so on.
*
* Copyright (c) 2002 Microsoft Corporation. All rights reserved.
*
* Chris Lovett
*
*/
import { __extends } from "tslib";
/* MD 2/27/13
 * This software is being re-used under the Microsoft Public License (MS-PL):
 * -----------------------------------------------------------------------------
 * This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the
 * license, do not use the software.
 *
 * 1. Definitions
 * The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law.
 * A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes
 * its contribution under this license. "Licensed patents" are a contributor's patent claims that read directly on its contribution.
 *
 * 2. Grant of Rights
 * (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each
 *     contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare
 *     derivative works of its contribution, and distribute its contribution or any derivative works that you create.
 * (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each
 *     contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use,
 *     sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution
 *     in the software.
 *
 * 3. Conditions and Limitations
 * (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
 * (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license
 *     from such contributor to the software ends automatically.
 * (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are
 *     present in the software.
 * (D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete
 *     copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may
 *     only do so under a license that complies with this license.
 * (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions.
 *     You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your
 *     local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
 * -----------------------------------------------------------------------------
 *
 * Note: edits have also been made to support namespace prefixes. Those changes are tagged with the following comment:
 * // MD - Added support for namespaces
 *
 * In addition, the public classes have been made internal and the namespace has been changed from Sgml to
 * Infragistics.Documents.Excel.Serialization.Excel2007.Sgml
 *
 * Also, I updated the code to work with Silverlight and WinRT.
 */
import { Base, markType } from "igniteui-angular-core";
import { arrayCopy2, arrayCopy1 } from "igniteui-angular-core";
/**
 * @hidden
 */
var HWStack = /** @class */ /*@__PURE__*/ (function (_super) {
    __extends(HWStack, _super);
    function HWStack(a) {
        var _this = _super.call(this) || this;
        _this.a = null;
        _this.e = 0;
        _this.b = 0;
        _this.d = 0;
        _this.d = a;
        return _this;
    }
    Object.defineProperty(HWStack.prototype, "c", {
        get: function () {
            return this.b;
        },
        set: function (a) {
            this.b = a;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(HWStack.prototype, "f", {
        get: function () {
            return this.e;
        },
        enumerable: false,
        configurable: true
    });
    HWStack.prototype.item = function (a, b) {
        if (arguments.length === 2) {
            this.a[a] = b;
            return b;
        }
        else {
            return (a >= 0 && a < this.e) ? this.a[a] : null;
        }
    };
    HWStack.prototype.h = function () {
        this.b--;
        if (this.b > 0) {
            return this.a[this.b - 1];
        }
        return null;
    };
    HWStack.prototype.i = function () {
        if (this.b == this.e) {
            var a = this.e + this.d;
            var b = new Array(a);
            if (this.a != null) {
                arrayCopy2(this.a, b, this.e);
            }
            this.e = a;
            this.a = b;
        }
        return this.a[this.b++];
    };
    HWStack.prototype.j = function (a) {
        this.a[a] = null;
        arrayCopy1(this.a, a + 1, this.a, a, this.b - a - 1);
        this.b--;
    };
    HWStack.$t = markType(HWStack, 'HWStack');
    return HWStack;
}(Base));
export { HWStack };
