Commit b68e25
2025-12-07 11:27:03 feagor: -/-| /dev/null .. Python/Pygments.md | |
| @@ 0,0 1,34 @@ | |
| + | # Pygments, типы токенов |
| + | |
| + | Основная идея подсветки кода, как это реализовано в Pygments, заключается в том, что исходный текст сначала разбивается на небольшие фрагменты — токены, а каждому токену присваивается тип токена, который определяет его семантическую роль в коде (например, ключевое слово, строка или комментарий). |
| + | |
| + | Тип токена затем используется для определения того, как этот фрагмент кода должен быть стилизован (например, "красный и жирный" для ключевых слов). |
| + | В Pygments используется иерархическая система типов токенов, где каждый тип является подтипом более общего. Основные (глобальные) типы токенов и их подтипы включают: |
| + | Основные типы токенов Pygments |
| + | Общий тип токена (Parent Token) Примеры подтипов и их назначение |
| + | Token.Keyword `(Ключевое слово) Ключевые слова языка программирования.` |
| + | - Keyword.Builtin `(Встроенное ключевое слово)` |
| + | - Keyword.Control `(Управляющая конструкция, напр., if, for)` |
| + | - Keyword.Type `(Ключевое слово типа, напр., class, def)` |
| + | Token.Name (Имя) `Идентификаторы, переменные, имена функций.` |
| + | - Name.Function `(Имя функции)` |
| + | - Name.Variable `(Имя переменной)` |
| + | - Name.Class `(Имя класса)` |
| + | Token.Literal `(Литерал) Постоянные значения в коде.` |
| + | - Literal.String `(Строковый литерал, напр., "Hello")` |
| + | - Literal.Number `(Числовой литерал)` |
| + | - Literal.Number.Integer `(Целое число)` |
| + | - Literal.Number.Float `(Число с плавающей запятой)` |
| + | Token.Comment `(Комментарий) Блоки комментариев в коде.` |
| + | - Comment.Single `(Однострочный комментарий)` |
| + | - Comment.Multi `(Многострочный комментарий)` |
| + | - Comment.Doc `(Документирующий комментарий)` |
| + | Token.Operator (Оператор) `Символы, выполняющие операции (напр., +, -, *, ==).` |
| + | Token.Punctuation (Пунктуация) `Разделители и знаки препинания (напр., [, (, ,, ;).` |
| + | Token.Text (Текст) `Любые текстовые данные, не соответствующие другим токенам.` |
| + | - Text.Whitespace `(Пробелы)` |
| + | Token.Generic (Общий) `Используется для разметки специального контента, например, в выводе терминала.` |
| + | - Generic.Heading `(Заголовок)` |
| + | - Generic.Error `(Сообщение об ошибке)` |
| + | Token.Error (Ошибка) `Токен, представляющий синтаксическую ошибку, обнаруженную лексером.` |
| + | Token.Other (Прочее) `Специальные токены для данных, не соответствующих парсеру (напр., HTML-разметка внутри PHP-кода).` |