Add documentation

This commit is contained in:
2018-10-28 19:00:25 +03:00
parent 540f953c21
commit 873795ff5e
2 changed files with 108 additions and 0 deletions

View File

@@ -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).