Files
AGPascalTokenizer/DOC_RU.MD
2019-04-15 19:27:49 +03:00

68 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AGPascalTokenizer
Библиотека токенайзер для Delphi/FPC. Основана на работе [PyPascalTokenizer](https://github.com/Artem3213212/PyPascalTokenizer) [Артёма Гаврилова](https://github.com/Artem3213212).
## API
### TAGToken
TAGToken это тип `record` из:
* Text: `string` с текстом токена.
* &begin: `TAGTokenizerPos` со стартовой позицией токена.
* &end: `TAGTokenizerPos` с конечной позицией токена.
* ended: `boolean` Истина, если это был постедний токен.
Имеет конструктор Create с перечисленными переменными.
### TAGTokenizerPos
тип `record`, сохраняет позицию в формате:
* x: `integer` начало зависит от платформы (`NEXTGEN`), индекс символа в строке.
* y: `integer` начало с 0, номер строки.
### `Class` TAGPasTokenizer
Главный класс токенайзера.
* get_next(): функция, возвращает `TAGToken`. Возвращает следующий токен и изменяет позицию.
* pos: `TAGTokenizerPos` свойство, содержит позицию где токенайзер .
* is_ended: `boolean` свойство, проверка что текст закончился.
Имеет конструктор Create с параметром `input`: `TStrings`.
### `Class` TAGPasTokenizerStack
Стек из токенов автоматически заполняется из input'а.
* Push(t: `TAGToken`) кладёт токен в стек.
* Pop(): `TAGToken` достать токен из стека.
* Last: `TAGToken` свойство, выдающееся вершина стека.
* is_ended: `boolean` свойство, проверка конца текста.
Имеет конструктор Create с параметрами `input`: `TStrings` и GetComments: `boolean=True`.
### `Class` TAGPasTokenizerParallelStack
Стек из токенов автоматически заполняется из input'а(во втором потоке).
* Push(t: `TAGToken`) кладёт токен в стек.
* Pop(): `TAGToken` достать токен из стека.
* Last: `TAGToken` свойство, выдающееся вершина стека.
* ended: `boolean` свойство, проверка конца текста.
Имеет конструктор Create с параметрами input: `TStrings`, GetComments: `boolean=True` и stackMax:`integer=1000`.
## Утилиты
Вспомогательные функции для анализа текста.
* IsName(s: `string`): `boolean` Проверка что идентификатор правильный.
* IsComment(s: `string`): `boolean` Проверка что комментарий правильный.
* IsString(s: `string`): `boolean` Проверка что это строковое значение.
## Авторы
[Артём Гаврилов](https://github.com/Artem3213212) и [Владислав Уткин](https://github.com/viad00).