From 873795ff5e371e7d9adb098692ec355f0620cd97 Mon Sep 17 00:00:00 2001 From: Vlad Utkin Date: Sun, 28 Oct 2018 19:00:25 +0300 Subject: [PATCH] Add documentation --- DOC_EN.MD | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ DOC_RU.MD | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 DOC_RU.MD diff --git a/DOC_EN.MD b/DOC_EN.MD index e69de29..c983fb0 100644 --- a/DOC_EN.MD +++ b/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). diff --git a/DOC_RU.MD b/DOC_RU.MD new file mode 100644 index 0000000..2a2af0f --- /dev/null +++ b/DOC_RU.MD @@ -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).