### Описание класса htmlParser

Производит разбор HTML документа на его составляющие теги, а теги на составляющие поля. Буфферизует ввод-вывод, т.е. может производить разбор по мере добавления в него новых данных (строкового типа) и выдает информацию о разобранных тегах по мере из запрашивания.
Простенький пример использования:

    // открыть файл (например)
    h=fopen(filename)
    // проинициализировать новый parser - их кстати может быть несколько
    // например для чтения одновременно нескольких фреймов
    p=htmlParserNew()
    do while !fileeof(h)   // здесь может быть что-то типа url:read(20)
       // прочитать строку данных и скормить ее разборщику
       p:put(freadstr(h,20))
       // читать разобранные теги из буфера разборщика
       do while !p:empty()
       	? p:get()
       enddo
    enddo
    // принудительное закрытие разборки данных
    p:end()
    do while !p:empty()
       	? p:get()
    enddo

### Атрибуты/свойства

Они есть, но ими лучше не пользоваться, так как это внутренние данные и вам они не нужны - пользуйтесь методами.

### Методы/функции

#### функция htmlParserNew

Инициализирует новый parser - их может быть несколько. Параметров нет. Возвращает созданный объект.

#### метод html:put(str)

Добавить str в буффер для разбора данных и попытаться разобрать на составляющие.

#### метод html:get()

Параметров нет. Выдает из буффера проанализированные данные. Возращаемое значение может быть:
строковые данные - текст, расположенный между html-тегами.
NIL - просто новая строка или другие ничего не значащие данные
объект HTML_TAG - разобранный тег документа.

#### метод html:empty()

Проверяет есть ли разобранные теги в буффере разборщика

#### метод html:end()

Принудительное закрытие разборки данных. Даже если в буффере оставались незаконченые данные или теги, все равно неразобранные остатки данных будут принудительно добавлены в конечный тег и после этого очишен буффер.

© Ю.Хныкин, uri@itk.ru, 2000