Blame
|
1 | # Pygments, типы токенов |
||||||
| 2 | ||||||||
| 3 | Основная идея подсветки кода, как это реализовано в Pygments, заключается в том, что исходный текст сначала разбивается на небольшие фрагменты — токены, а каждому токену присваивается тип токена, который определяет его семантическую роль в коде (например, ключевое слово, строка или комментарий). |
|||||||
| 4 | ||||||||
| 5 | Тип токена затем используется для определения того, как этот фрагмент кода должен быть стилизован (например, "красный и жирный" для ключевых слов). |
|||||||
| 6 | В Pygments используется иерархическая система типов токенов, где каждый тип является подтипом более общего. Основные (глобальные) типы токенов и их подтипы включают: |
|||||||
| 7 | Основные типы токенов Pygments |
|||||||
| 8 | Общий тип токена (Parent Token) Примеры подтипов и их назначение |
|||||||
| 9 | Token.Keyword `(Ключевое слово) Ключевые слова языка программирования.` |
|||||||
| 10 | - Keyword.Builtin `(Встроенное ключевое слово)` |
|||||||
| 11 | - Keyword.Control `(Управляющая конструкция, напр., if, for)` |
|||||||
| 12 | - Keyword.Type `(Ключевое слово типа, напр., class, def)` |
|||||||
| 13 | Token.Name (Имя) `Идентификаторы, переменные, имена функций.` |
|||||||
| 14 | - Name.Function `(Имя функции)` |
|||||||
| 15 | - Name.Variable `(Имя переменной)` |
|||||||
| 16 | - Name.Class `(Имя класса)` |
|||||||
| 17 | Token.Literal `(Литерал) Постоянные значения в коде.` |
|||||||
| 18 | - Literal.String `(Строковый литерал, напр., "Hello")` |
|||||||
| 19 | - Literal.Number `(Числовой литерал)` |
|||||||
| 20 | - Literal.Number.Integer `(Целое число)` |
|||||||
| 21 | - Literal.Number.Float `(Число с плавающей запятой)` |
|||||||
| 22 | Token.Comment `(Комментарий) Блоки комментариев в коде.` |
|||||||
| 23 | - Comment.Single `(Однострочный комментарий)` |
|||||||
| 24 | - Comment.Multi `(Многострочный комментарий)` |
|||||||
| 25 | - Comment.Doc `(Документирующий комментарий)` |
|||||||
| 26 | Token.Operator (Оператор) `Символы, выполняющие операции (напр., +, -, *, ==).` |
|||||||
| 27 | Token.Punctuation (Пунктуация) `Разделители и знаки препинания (напр., [, (, ,, ;).` |
|||||||
| 28 | Token.Text (Текст) `Любые текстовые данные, не соответствующие другим токенам.` |
|||||||
| 29 | - Text.Whitespace `(Пробелы)` |
|||||||
| 30 | Token.Generic (Общий) `Используется для разметки специального контента, например, в выводе терминала.` |
|||||||
| 31 | - Generic.Heading `(Заголовок)` |
|||||||
| 32 | - Generic.Error `(Сообщение об ошибке)` |
|||||||
| 33 | Token.Error (Ошибка) `Токен, представляющий синтаксическую ошибку, обнаруженную лексером.` |
|||||||
| 34 | Token.Other (Прочее) `Специальные токены для данных, не соответствующих парсеру (напр., HTML-разметка внутри PHP-кода).` |
|||||||