Add documentation
This commit is contained in:
54
DOC_EN.MD
54
DOC_EN.MD
@@ -0,0 +1,54 @@
|
|||||||
|
# AGPascalTokenizer
|
||||||
|
|
||||||
|
Tokenizer Library for Delphi/FPC. Based on [PyPascalTokenizer](https://github.com/Artem3213212/PyPascalTokenizer) work by [Artem Gavrilov](https://github.com/Artem3213212).
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
### TToken struct
|
||||||
|
|
||||||
|
TToken is a `record` type of:
|
||||||
|
|
||||||
|
* Text: `string` with token text.
|
||||||
|
* &begin: `TTokenizerPos` with start position of token.
|
||||||
|
* &end: `TTokenizerPos` with end position of token.
|
||||||
|
* ended: `boolean` flag, true if it was the last token.
|
||||||
|
|
||||||
|
Has Create constructor with all values.
|
||||||
|
|
||||||
|
### TTokenizerPos
|
||||||
|
|
||||||
|
`record`, saves position of token if format:
|
||||||
|
|
||||||
|
* x: `integer` platform-depend-base (`NEXTGEN`) character index in line.
|
||||||
|
* y: `integer` 0-based line index.
|
||||||
|
|
||||||
|
### `Class` PasTokenizer
|
||||||
|
|
||||||
|
Main class of tokenizer.
|
||||||
|
|
||||||
|
* s: `TStrings` private, use constructor. List of source code strings.
|
||||||
|
* get_next(): function, returns `TToken`. Get next token and change end pos
|
||||||
|
* read_next(): function, not implemented, get next token, but don't change end pos.
|
||||||
|
* is_ended(): function, not implemented, check if text ended.
|
||||||
|
|
||||||
|
Has constructor Create with `s` param.
|
||||||
|
|
||||||
|
### `Class` PasTokenizerStack
|
||||||
|
|
||||||
|
Not implemented.
|
||||||
|
|
||||||
|
### `Class` PasTokenizerParallelStack
|
||||||
|
|
||||||
|
Not implemented.
|
||||||
|
|
||||||
|
## Utils
|
||||||
|
|
||||||
|
Helper functions to analyze token text.
|
||||||
|
|
||||||
|
* is_name(s: `string`): `boolean` Check for valid identifier (can be reserved word too).
|
||||||
|
* is_comment(s: `string`): `boolean` Check for valid comment.
|
||||||
|
* is_string(s: `string`): `boolean` Check for string constant.
|
||||||
|
|
||||||
|
## Author
|
||||||
|
|
||||||
|
[Artem Gavrilov](https://github.com/Artem3213212) and [Vladislav Utkin](https://github.com/viad00).
|
||||||
|
|||||||
54
DOC_RU.MD
Normal file
54
DOC_RU.MD
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# AGPascalTokenizer
|
||||||
|
|
||||||
|
Библиотека токенайзер для Delphi/FPC. Основана на работе [PyPascalTokenizer](https://github.com/Artem3213212/PyPascalTokenizer) [Артёма Гаврилова](https://github.com/Artem3213212).
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
### TToken
|
||||||
|
|
||||||
|
TToken это тип `record` из:
|
||||||
|
|
||||||
|
* Text: `string` с текстом токена.
|
||||||
|
* &begin: `TTokenizerPos` со стартовой позицией токена.
|
||||||
|
* &end: `TTokenizerPos` с конечной позицией токена.
|
||||||
|
* ended: `boolean` Истина, если это был постедний токен.
|
||||||
|
|
||||||
|
Имеет конструктор Create с перечисленными переменными.
|
||||||
|
|
||||||
|
### TTokenizerPos
|
||||||
|
|
||||||
|
тип `record`, сохраняет позицию в формате:
|
||||||
|
|
||||||
|
* x: `integer` начало зависит от платформы (`NEXTGEN`), индекс символа в строке.
|
||||||
|
* y: `integer` начало с 0, номер строки.
|
||||||
|
|
||||||
|
### `Class` PasTokenizer
|
||||||
|
|
||||||
|
Главный класс токенайзера.
|
||||||
|
|
||||||
|
* s: `TStrings` приватная, используйте конструктор. Список строк исходного кода.
|
||||||
|
* get_next(): функция, возвращает `TToken`. Возвращает следующий токен и изменяет свою позицию.
|
||||||
|
* read_next(): функция, не имплементированно, Возвращает следующий токен, не изменяя свою позицию.
|
||||||
|
* is_ended(): функция, не имплементированно, проверка что текст закончился.
|
||||||
|
|
||||||
|
Имеет конструктор Create с параметром `s`.
|
||||||
|
|
||||||
|
### `Class` PasTokenizerStack
|
||||||
|
|
||||||
|
Не имплементированно.
|
||||||
|
|
||||||
|
### `Class` PasTokenizerParallelStack
|
||||||
|
|
||||||
|
Не имплементированно.
|
||||||
|
|
||||||
|
## Утилиты
|
||||||
|
|
||||||
|
Вспомогательные функции для анализа текста.
|
||||||
|
|
||||||
|
* is_name(s: `string`): `boolean` Проверка что идентификатор правильный.
|
||||||
|
* is_comment(s: `string`): `boolean` Проверка что комментарий правильный.
|
||||||
|
* is_string(s: `string`): `boolean` Проверка что это строковое значение.
|
||||||
|
|
||||||
|
## Авторы
|
||||||
|
|
||||||
|
[Артём Гаврилов](https://github.com/Artem3213212) и [Владислав Уткин](https://github.com/viad00).
|
||||||
Reference in New Issue
Block a user